terça-feira, 16 de julho de 2013

ROADSEC em Curitiba



O ROADSEC é um evento que irá passar pelas principais capitais do país levando conteúdo de qualidade e dando oportunidade a palestrantes locais.

O evento acontece no dia 21/09/2013 na Universidade Positivo. Realize sua inscrição e obtenha mais informações sobre o evento.

Palestrantes Confirmados

  • Anderson Ramos: Carreira em Segurança da Informação 
  • Thiago Musa: Pagamento Móvel e Segurança - O que Você Deveria Conhecer Sobre Isso 
  • Ulisses Albuquerque: Em Breve 
  • Wagner Elias: Um pouco sobre segurança em desenvolvimento de software

A Conviso é a apoiadora do evento em Curitiba e conta com a sua presença.

quinta-feira, 11 de julho de 2013

Publicado o OWASP Top 10 2013

A nova versão dos Top 10 riscos para aplicações web da OWASP

Saiu a publicação da nova versão oficial do OWASP Top 10 2013 [1]. Ela já estava disponível para visualização e comentários, porém agora foi lançada na versão oficial [2]. Para quem ainda não conhece a OWASP (Open Web Application Security Project) é uma organização internacional, criada em 2003, sem fins lucrativos que visa fornecer recursos, documentos e ferramentas para a melhoria da segurança das aplicações no mundo todo. Mais informações sobre o OWASP e suas atividades poderão sem encontradas em www.owasp.org.

O OWASP Top 10 é um documento que demostra um consenso geral entre os profissionais de segurança, listando os 10 riscos mais comuns entre as aplicações web e definido por ordem de importância. A listagem dessas vulnerabilidades começou em 2004 e normalmente a cada 3 anos é realizado uma revisão da lista de acordo com estatísticas de várias organizações e empresas.

Então, nesses últimos 3 anos tivemos grandes mudanças? Inicialmente veja na tabela abaixo as diferenças entre o Top 10 2010 e o 2013:


Analisando a tabela observaremos que houve algumas mudanças, o A2 não é mais Cross-Site Scripting (XSS) e sim Broken Authentication and Session Management. A razão principal desta mudança é que as falhas de XSS estão sendo mais facilmente encontradas e mitigadas e os frameworks de desenvolvimento já possuem em sua maioria mecanismos de proteção inclusos contra este tipo de falha, embora ainda seja comum encontrar as mesmas em sites e produtos que testamos. Quanto às falhas de autenticação, estas são mais difíceis de serem verificadas e encontradas por scanners automatizados e por isso diversas aplicações web possuem algum problema relacionado, por menor que seja.

O A7 - Insecure Cryptographic Storage  unificou-se com o A9 - Insufficient Transport Layer Protection para formar o A6 - Sensitive Data Exposure, visto que ambos tratavam da proteção de dados sensíveis, o primeiro no armazenamento e o segundo no transporte.

O novo A7 - Missing Function Level Access Control se tornou uma ampliação do antigo A8 - Failure to Restrict URL Access, abordando todos os problemas relativos a controle de acesso da aplicação. Ele visa proteger o acesso não autorizado a funcionalidades do sistema.

E o novo A9 - Using Known Vulnerable Components está relacionado a grande utilização de códigos e bibliotecas de terceiros sem a devida atualização e verificação de segurança dos mesmos. A utilização de frameworks ou bibliotecas vulneráveis pode facilmente tornar seu sistema vulnerável caso alguma falha seja identificada para aquele componente utilizado. Muitas empresas e organizações não dão o devido cuidado a este tipo de problema por achar que um código de terceiro é seguro por natureza. Se todo mundo usa, então não deve ter problema não é mesmo? Ledo engano. É muito importante que durante análises de vulnerabilidades e auditorias de código esses componentes sejam devidamente avaliados e testados em buscas de falhas que possam comprometer toda a aplicação que os utiliza. Alguns exemplos desse tipo de falha e o impacto que elas podem causar podem ser identificadas no Spring Remote Code Execution [3] e o Apache CXF Authentication Bypass (CVE-2012-3451) [4].

Apesar destas mudanças os outros itens permaneceram intactos, mudando apenas de posição no ranking da lista. É importante que sua aplicação esteja protegida destes riscos, mas que não se limite apenas ao Top 10, pois existem outras vulnerabilidades que não são abordadas nesta lista mas que também podem causar grande impacto caso sua aplicação esteja vulnerável.



quarta-feira, 19 de junho de 2013

Github Hacking for fun and... sensitive data search!

Conviso Research and Development Team is usually reading thousands and thousands of information daily and we make some filters and pay attention to some special words. We saw a very interesting post at Full Disclosure about advanced GitHub Search.

Right after reading what we shared in our internal list, this information and a little bit of Github Hacking proved that GitHub is a Disneyland of information leakage. We tried a lot of different searches and some interesting or I could say, VERY INTERESTING, as you see below.

Private Key



FTP information



E-mail information









MySQL Password / History


How about finding some possible 0days? Backdoors? Hell yeah! It's possible too.
Check out this GitHub "Dork":

stars:>1000 forks:>100 extension:php "eval(preg_replace("

We searched for big projects who have more than 1000 stars, 100 forks, files with PHP extension and a possible flaw that allows Remote Code Execution.



Check out other prefixes that might help you keeping your search improved GitHub Search Cheat Sheet.
Lots of FUN isn't ? We could probably find just about anything, the sky is the limit!

So to make our lives easier we developed a tool to grab those information in a more automated way:


You can check the code and download it from here (but keep in mind that it is still in beta version).

Take care about what information you share. Lots of sensitive information could probably be over there. Search for information about your company before the bad guys do.

sexta-feira, 17 de maio de 2013

Conviso presente no CIAB 2013: Espaço Inovação


Foram anunciadas as empresas Brasileiras que estarão presentes no Espaço Inovação do CIAB. Com muita honra (e trabalho árduo por anos), a  Conviso foi uma das empresas escolhidas para expor sua ferramenta de Gestão de Risco, o Conviso Security Compliance (CSC).

O Espaço Inovação é uma iniciativa do Instituto de Tecnologia de Software e Serviços (ITS) para a promoção da inovação nas empresas brasileiras de pequeno e médio porte. O ITS atua junto das mais importantes exposições setoriais de TI e Telecomunicações do país, expondo por meio de um estande coletivo soluções inovadoras e criteriosamente selecionadas. No setor de Finanças e Bancos, acontece anualmente o Espaço Inovação no CIAB FEBRABAN, uma parceria que se iniciou em 2005. Já na área de telecomunicações, acontece o Espaço Inovação  no mesmo formato de estande coletivo, é realizado na FUTURECOM. Atualmente também se estabelecem negociações para expandir o modelo para outros setores como saúde e acessibilidade . No Espaço Inovação a análise do mérito da solução precede a seleção, tornando as empresas expositoras merecedoras do destaque. As inscrições são feitas com antecedência de três meses da exposição e submetidas a analise de um comitê de especialistas. São as soluções e não a empresa o foco da seleção. Durante a avaliação são considerados os aspectos de tecnologia, negócios e impactos no setor.

No Conviso Security Compliance (CSC) você poderá customizar relatórios, integrar informações de diferentes fornecedores, gerenciamento centralizado, acompanhamento de correção e delegação de tarefas paras as falhas encontradas, seguindo as melhores práticas. Junto com a interface de Gestão, o Conviso Security Compliance possui módulos auxiliares que garantem um ciclo completo de proteção e Gestão de forma simplificada e eficaz.

Conviso Security Compliance

  • Análise de Risco: suporta as análises de risco e conformidade recebendo dados externos e com seus recursos como o scanner Accuracy e o Conviso Intelligence fornecendo base de conhecimento para Testes de invasão; Auditoria de Código; Modelagem de ameaças.
  • Gestão de Risco: gerencie o tratamento das vulnerabilidades identificadas nas análises, definindo um plano de ação com os responsáveis e as respectivas datas. Informação útil para gestão e auditorias.
  • Aplicar Controles: Utilizando a base de conhecimento do Conviso Intelligence ou a solução de hardening e baselines do Conviso Armature.
  • Métricas: acompanhe a evolução e melhoria contínua do tratamento das vulnerabilidades a partir de métricas e um dashboard customizável.

Quer conhecer melhor a ferramenta? Requisite uma demonstração https://www.conviso.com.br/produtos.php

Esperamos encontrá-los no CIAB.

segunda-feira, 6 de maio de 2013

Hackeando o post "Hacking com controle remoto da sua TV"

Ocorreu uma discussão extremamente interessante sobre o artigo anterior  que escrevi, chamado "Hacking com controle remoto da sua TV". No post apresentei um código com a funcionalidade de mapear teclas de um controle remoto e esse código teria uma possível vulnerabilidade na função “serialread()”.

No seguinte código, não temos limitação para escrita na variável “buf” e dependendo de alguns fatos isso poderia resultar em um stack buffer overflow.

Embora seja visível um possível Buffer Overflow, precisamos ter uma prova de conceito. A
entrada vem de uma comunicação “serial” e isso seria um problema para testar nossos “payloads”. Uma opção seria programar um “fuzzer” no arduino, assim como na imagem abaixo.
O exemplo acima envia uma sequência crescente de caracteres 'A', mas no nosso caso, enviando uma “string” única longa já demonstra o problema de corrupção de memória.
 Compilando o código com adição do argumento “-g” e “-fno-stack-protector”, depois rodando com GDB, podemos ver os seguintes detalhes.

Ao enviar uma string contendo 64 letras 'A' concatenadas com 10 letras 'B', temos então um crash.  Ao ver o valor de “fd”, vamos notar seu valor ser “66” ao invés de “8”. Podemos ver
que foi possível mudar o valor de “fd”, entretanto isso não é o suficiente para conseguir execução de código. Logo de forma conseguir mais informações, resolvi testar com a ferramenta “pmcma”.
( https://github.com/toucan-system/pmcma )
 Embora seja evidente o problema, não pareceu ser explorável, mesmo podendo escrever no  endereço de retorno da função “main()” , não foi possível fazer algo por conta da função “exit()”.

De forma mitigar o ocorrido, podemos seguir o seguinte exemplo para limitar o buffer no código:






Código teve adição da variável “max”, trabalhando em conjunto com variável “ i ”, para contar a leitura dos elementos do buffer, só então limitar o loop até o valor da variável “max”.

Então podemos chamar a função da seguinte forma “serialread(fd,buffer,’\n’ ,62);”, repare o último argumento, variável “max”, este valor seria responsável para definir o limite no buffer, fazendo lembrar funções do OpenBSD como strlcpy() e strlcat(),  que também  necessitam do tamanho do buffer para limitação.

Exemplo de um “Overflow”

Talvez poder escrever um valor em uma variável não pareça tão útil no nosso caso, entretanto em alguns casos pode nos levar para algum graal, tenha em mente um sistema  qualquer,em um cenário bem menor, onde temos seguinte código:



Embora seja teoricamente impossível fazer o programa mostrar a mensagem “Welcome to MaTriX Ne0 !”, pelo simples fato de não ter nada na variável “auth”, notamos a variável “login
recebendo um valor que não foi limitado, logo se o valor ultrapassar 12 caracteres podemos ter problemas.

Explorando essa vulnerabilidade entorno da variável “login”, logo acabamos escrevendo na variável “auth” qualquer valor, isso ocorre pois a pilha(stack) cresce ao contrário.
 

Além de fazer isso, seria interessante  ver se foi escrito algo na “EIP”(instruction pointer),se sim tentar algo como “ret2libc”.



Conclusão

Concluímos então, que até mesmo entradas via serial podem ser suscetíveis a alguma vulnerabilidade, por este fato todas entradas de dados devem ser limitadas para evitar problemas de corrupção de memória.