Apache, mod_ssl, falha de renegociação e segmentação insegura

1

Eu tenho um servidor CentOS 7 recém-instalado, rodando o Apache httpd 2.4.6 e notei que seus logs de auditoria crescem muito rápido, com muitas entradas como esta:

type=ANOM_ABEND msg=audit(06/02/15 15:44:09.341:906003) : auid=unset uid=apache gid=apache ses=unset subj=system_u:system_r:httpd_t:s0 pid=44258 comm=httpd reason="memory violation" sig=SIGSEGV

Anexar o depurador a um processo filho apache aleatório e aguardar a falha dá:

Program received signal SIGSEGV, Segmentation fault.                                                                                                                                          
0x00007f8433bf47f8 in main_arena () from /lib64/libc.so.6                                                                                                                                     
(gdb) backtrace                                                                                                                                                                               
#0  0x00007f8433bf47f8 in main_arena () from /lib64/libc.so.6                                                                                                                                 
#1  0x00007f8428e4de43 in ssl_hook_Access () from /etc/httpd/modules/mod_ssl.so                                                                                                               
#2  0x00007f8435370490 in ap_run_access_checker ()                                                                                                                                            
#3  0x00007f8435372d75 in ap_process_request_internal ()                                                                                                                                      
#4  0x00007f843538dbe0 in ap_internal_redirect ()                                                                                                                                             
#5  0x00007f843538e074 in ap_process_async_request ()                                                                                                                                         
#6  0x00007f843538e404 in ap_process_request ()                                                                                                                                               
#7  0x00007f843538adb2 in ap_process_http_connection ()                                                                                                                                       
#8  0x00007f8435382e30 in ap_run_process_connection ()                                                                                                                                        
#9  0x00007f842acdc7ef in child_main () from /etc/httpd/modules/mod_mpm_prefork.so                                                                                                            
#10 0x00007f842acdca26 in make_child () from /etc/httpd/modules/mod_mpm_prefork.so                                                                                                            
#11 0x00007f842acdd6be in prefork_run () from /etc/httpd/modules/mod_mpm_prefork.so                                                                                                           
#12 0x00007f84353600fe in ap_run_mpm ()                                                                                                                                                       
#13 0x00007f8435359726 in main () 

Parece que é causado por mod_ssl. Observando os logs do httpd, posso correlacionar os seguintes eventos a partir de diferentes arquivos de log:

[Fri Feb 06 15:44:09.343116 2015] [ssl:error] [pid 44258] [client X.X.X.39:29260] AH02225: Re-negotiation request failed
[Fri Feb 06 15:44:09.343167 2015] [ssl:error] [pid 44258] SSL Library Error: error:14080152:SSL routines:SSL3_ACCEPT:unsafe legacy renegotiation disabled

e:

[Fri Feb 06 15:44:10.147381 2015] [core:notice] [pid 2689] AH00052: child pid 44258 exit signal Segmentation fault (11)

Portanto, por um lado, não quero permitir a renegociação SSL insegura no Apache httpd. Mas estou recebendo um ou dois erros como esses a cada segundo, o que significa 3 linhas de log nos logs do apache, 1 linha no log de auditoria e, bem, um processo filho do apache falhando.

É possível evitar que esses processos travem? Só porque a renegociação insegura do legado não é permitida, isso significa que ele precisa ser segmentado? Alguma idéia para melhorar esta situação?

PS: Versões de software:

  • OpenSSL 1.0.1e-fips 11 de fevereiro de 2013
  • Versão do servidor: Apache / 2.4.6 (CentOS); Servidor construído: Jan 12 2015 13:22:31
por Migtor 06.02.2015 / 16:14

0 respostas