Escolar Documentos
Profissional Documentos
Cultura Documentos
Crditos
Agenda
Cenrio
Conseqncia Complexidade
Problemas
Problemas
Problemas
Problemas
int main (int argc, char **argv) { .... char DirSpec[MAX_PATH+1]; printf(Diretrio destino = %s.\n,argv[1]); strncpy(DirSpec,argv[1],strlen(argv[1])+1); ... }
Problemas
Cross-Site Scripting
<c:if test=${param.sayHello}> Hello ${param.name} ! </c:if>
Nunca foi nossa inteno que o cdigo que est ali fosse utilizado em produo Ryan Asleson
Problemas
Solues (Erradas)
Mais Esforo
Desenvolvedores capacitados e esforados Pedir que no cometam os mesmos erros Nem todos sero especialistas em segurana Implementar segurana de forma correta requer feedback
Mais testes
PenTest na verso final Ataque os problemas encontrados
Paredes mais grossas no resolvem se vc. precisa de janelas e portas Time de segurana vira gargalo
PenTest bom para evidenciar o problema Corrigir problemas no torna o sistema seguro
Solues - Correta
Segurana no ciclo de vida
Solues
Segurana no ciclo de vida - Hoje
Planejamento
Construo
Testes
Operao
Solues
Segurana no ciclo de vida
Planejamento
Construo
Testes
Operao
Avaliao de Riscos Reviso de Cdigo Requisitos de Segurana Segurana praticada por no especialistas
Anlise Esttica
Viso Geral Dissecando uma ferramenta de anlise esttica Anlise esttica na prtica O que vem a seguir ?
Analisa o cdigo sem execut-lo Capaz de contemplar um nmero bem maior de possibilidades do que um ser humano em testes convencionais No possui conhecimento prvio do que o cdigo deve(ria?) fazer Precisa de informaes sobre o que se quer encontrar
Analise Esttica
Verificao de tipos Validao de regras/estilos de codificao Entendimento de programas Validao formal/Validao de propriedades Identificao de bugs Anlise de segurana
Rpida se comparada a anlise manual Rpida se comparada a um teste de execuo Cobertura completa e consistente Aporta o conhecimento de segurana embutido na mesma para o processo Facilita o processo de reviso por no-especialistas em segurana
Pontos Negativos
Dificuldade de uso por no-especialistas
Modelo Cdigo-fonte
Linguagens Suportadas
Suporte s linguagens e dialetos relevantes
Capacidade
Habilidade de tratar milhes de linhas de cdigo
Base de Regras
Modelagem de regras e propriedades de segurana
... porem:
Decompilao pode ser no trivial A perda do contexto prejudica a anlise Remediao requer os fontes para apresentao dos resultados
Regras utilizadas
getInputFromNetwork() : ps-condio = resultado inseguro copyBuffer(arg1,arg2): ps-condio = contedo de arg1 igual ao de arg2 exec(arg1): pr-condio = arg1 deve ser seguro
A interface de apresentao to importante quanto a anlise em si. No mostrar resultados incorretos mais de uma vez
Bonito este seu cdigo, hein ?
Falsos-Positivos
Modelo incompleto/incorreto Anlise :conservadora Sua ferramenta s aponta bobagem ! Melhor sobrar do que faltar !
Falsos-Negativos
Modelo incompleto/incorreto Ausncia de regras especficas Anlise relaxada
Objeo Demora demais para rodar Encontra muitos falsos-positivos No adequado nossa forma de trabalho
Traduo Segurana no problema meu Segurana no problema meu Segurana no problema meu
Densidade de Vulnerabilidades
Mantenha o foco
As ferramentas so capazes de identificar diversos tipo de problema: Iniba a maioria Foque nos problemas de entendimento mais fcil e relevantes
Mensure os resultados
Resultados encontrados pela ferramenta Vulnerabilidades resolvidas
Concluso
Erros acontecem: esteja preparado Segurana faz parte do desenvolvimento Para auditores: A ferramenta torna vivel e eficiente a anlise de cdigo Para programadores: A ferramenta aporta conhecimento em segurana Componentes crticos de uma boa soluo:
Algortmos Regras Apresentao Plano de adoo
Dvidas ?
DVI
Obrigado !