Segurança em aplicações Web Exemplos e Casos Práticos em Nuno Lopes, NEIIST – 7º Ciclo de Apresentações. 28/Março/2007.

Slides:



Advertisements
Apresentações semelhantes
What the bad guys will try and what ASP.NET 2.0 does to protect you! Rui Quintino DevScope
Advertisements

Novas Tecnologias Microsoft.
Pontifícia Universidade Católica de Campinas
OWASP AppSec Brazil 2010, Campinas, SP
Segurança em PHP Exemplos e Casos Práticos Nuno Lopes, NEIIST – 3º Ciclo de Apresentações. 17/Março/2005.
Engenharia de Software Alessandro Cruz Marcelo Brandão Theodoro Júnior
Trac é uma ferramenta open source e de interface web para controle de projetos de desenvolvimento de software. O objetivo do software é ajudar o desenvolvedor.
Luiz Miguel Picelli Sanches – Script em php - Formulário Scripts no formato PHP.
Sensores de Presença R. Johnson
ITA - Instituto Tecnológico de Aeronáutica Aula #1.1 – Tutorial de Web Services utilizando o NetBeans 5.5 Disciplina: CE 262 – Ontologias e Web Semântica.
III – Uso da Infraestrutura Tecnológica Tecnologias de Informação e Comunicação em Desenvolvimento de Produtos III – Uso da Infraestrutura Tecnológica.
Linguagens Formais e Tradutores Linguagens Regulares (Revisão)
Cookies e Sessões Mauro César Lopes. Mecanismos para guardar estados entre requisições HTTP HTTP é um protocolo sem estado Uma requisição é independente.
Outros – Fring Acesse o browser do seu celular o link e clique em Download.
Segurança em Web 2.0 Paola Garcia Juarez
Ferramenta para teste de software
Formação IPv6 - RCTS Componente Prática – Parte II.
Desenvolvimento de Soluções WEB Escopos de uma Aplicação Web
Wagner Elias > Extreme Web Hacking São Paulo, 09/11/2008
Marcos Aurélio Rodrigues
Programação WEB Apresentação.
Prof. Eduardo Mantovani Prof. Fábio de P. Santos AES 2007.
Classificação de Ataques
Aula PHPdoc Prof. Naércio Filho Técnico em Informática
Por André Luis e Arthur Kalsing Mini-curso de PHP.
Curso básico de PHP 1 Vantagens: Gratuito Multiplataforma Estável Rapidez Comunicação.
Unicode and the Unicode logo are trademarks of Unicode, Inc., used with permission ŬŋǐcøðΣ PHP meets Nuno Lopes, NEIIST – 4º Ciclo de Apresentações, 13/Outubro/2005.
Servlets: Redirecionamento, Atributos e Sessões
Autenticação em Aplicações Web Notas para a disciplina de Segurança Informática Pedro Félix Instituto.
Arquitecturas de extensão do servidor HTTP CGI | ISAPI : ASP, ASP.NET Programação na Internet Secção de Programação ISEL-DEETC-LEIC Luis Falcão -
Arquitecturas de extensão do servidor HTTP Arquitecturas de extensão do servidor HTTP CGI e ISAPI: ASP, ASP.NET Programação na Internet Secção de Sistemas.
Gestão de Redes e Sistemas Distribuídos
Construindo uma aplicação PHP à Prova de Balas
Segurança em aplicações Web
Demo Quick Start Web Shop Invoicing
Treinamento AJAX Segurança
 Muitas aplicações se faz necessário o acompanhamento da navegação do usuário armazenando informações específicas de cada um.  É comum hoje em dia acessarmos.
CONCURSO FLEXFORM COMO É FEITA A VOTAÇÃO, SEGURANÇA E VALIDAÇÃO DOS VOTOS.
Programação WEB Variáveis Globais Get x Post Manipulação de Arquivos
Soluções usando Microsoft conteúdo Management Server 2002 Connector for SharePoint Technologies - MVP Exchange Server
CET-IMRSI ARST S I P S D P Luis Ribeiro Nº 61962
José Francisco PHP & MySQL. Os slides originais são parte do material de cursos anteriores do curso de PHP, ministrados por Sérgio Clemente.
UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO 1 Pilha de Protocolos Multimídia.
Educast.fccn.pt Procedimento de Upload de Vídeos por FTP Nelson Dias.
IIS Web Server.
Sistema de Identificação OpenID
Bruno Inojosa MCP.NET Framework.NET com C#. Aula V  Tópicos abordados:  Desenvolvendo para internet (Parte III) Gerenciamento de Estados User Controls.
Aula 4 Prof. Naércio Filho Técnico em Informática
FERRAMENTAS DE DESENVOLVIMENTO WEB Apresentação. Prof. Norton Glaser  Professor universitário desde 2005  Ministra aulas na Fatec Ipiranga e Fatec SC.
ASP.NET Conteúdo Introdução
M e 5633-M1 Análise e Propostas (Fénix) Concepção Centrada no Utilizador 30 de Outubro de 2003 Alexandre Carvalho, 5501-M
Treinamento PHP Módulo 1 PHP Básico Waelson Negreiros waelson.com.br “Está conosco o Senhor dos Exércitos”
INE 5630 Segurança da Informação
Tema 2: Técnicas de desenvolvimento seguro
Aula 5 – Formulários GET – POST - REQUEST
Aula 5 – Formulários GET – POST - REQUEST
COOKIES ► Variáveis armazenadas no computador do usuário. ► Podem ser acessados pelo usuário. ► Não é recomendado para armazenar informações sigilosas.
TÉCNICO EM INFORMÁTICA Linguagem e Técnica de Programação III PROF. MARCELO N. SANTOS
Programação Segura em Java Acadêmicos: André Mendes Duarte Deiwys Luciano Grumovski Gustavo Heidrich Grunwald 1-19.
O QUE É UMA BOTNET? Uma botnet é simplesmente um rede de computadores conectados a um controle central, essa central pode ser um outro computador pessoal.
Tecnologia e Programação WEB Ambiente de Laboratório Lab03.
Domínios, Redes, Arquitetura da Web, Linguágens de Marcação
Responseware Como cadastrar seu usuário e participar da votação
Introdução e integração das tecnologias
Diges Feltrin Guizelini
Prof. Eng. Diego A. G. Ribeiro
Wordpress.
Armazenamento no Cliente e Cookies com JS
LAMP – Linux Apache MySql e PHP
Alojamento e programação Web. HTML – Hypertext Markup Language   nuno santos 
Transcrição da apresentação:

Segurança em aplicações Web Exemplos e Casos Práticos em Nuno Lopes, NEIIST – 7º Ciclo de Apresentações. 28/Março/2007

Agenda: Register Globals Paths Cross-Site Scripting (XSS) Response Splitting / Header Injection Mail Injection Cross-Site Request Forgeries (CSRF) SQL Injection Session Hijacking Links Questões

Agenda: Register Globals Paths Cross-Site Scripting (XSS) Response Splitting / Header Injection Mail Injection Cross-Site Request Forgeries (CSRF) SQL Injection Session Hijacking Links Questões

Register Globals Configuração do PHP insegura Não usar / desactivar !! script.php?autenticado=1 <?php $autenticado = false; if ($_POST[user] === 'user' (...) ?> register_globals=Off

Agenda: Register Globals Paths Cross-Site Scripting (XSS) Response Splitting / Header Injection Mail Injection Cross-Site Request Forgeries (CSRF) SQL Injection Session Hijacking Links Questões

Paths Includes perigosos levam a execução remota de código Visualização de ficheiros confidenciais script.php?file= script.php?file=../../../../etc/passwd basename() / dirname() realpath() pathinfo() allow_url_fopen/include=Off

Paths Execução de comandos no servidor script.php?opts=-la | rm –fr * escapeshellarg() escapeshellcmd() safe_mode=On (be careful..) script.php?p=script.php%00.html

Agenda: Register Globals Paths Cross-Site Scripting (XSS) Response Splitting / Header Injection Mail Injection Cross-Site Request Forgeries (CSRF) SQL Injection Session Hijacking Links Questões

Cross-Site Scripting (XSS) Inserção de HTML/JavaScript numa página (através de variáveis não filtradas) Permite roubo de sessões, passwords, etc.. document.location = ' + document.cookie strip_tags() htmlentities() / htmlspecialchars()

Agenda: Register Globals Paths Cross-Site Scripting (XSS) Response Splitting / Header Injection Mail Injection Cross-Site Request Forgeries (CSRF) SQL Injection Session Hijacking Links Questões

Response Splitting / Header Injection Inserção de headers HTTP no cliente Perigos similares ao XSS script.php?p=\r\nSet-Cookie: key=val

Agenda: Register Globals Paths Cross-Site Scripting (XSS) Response Splitting / Header Injection Mail Injection Cross-Site Request Forgeries (CSRF) SQL Injection Session Hijacking Links Questões

Mail Injection Maioritariamente usado para envio de SPAM

Agenda: Register Globals Paths Cross-Site Scripting (XSS) Response Splitting / Header Injection Mail Injection Cross-Site Request Forgeries (CSRF) SQL Injection Session Hijacking Links Questões

Cross-Site Request Forgeries (CSRF) Método pouco usado em exploits (por enquanto…) Mas muito poderoso e difícil de defender Bastante transversal "sea surf" [img] body=some+naughty+words&submit=go[/img]

Cross-Site Request Forgeries (CSRF) Não há receitas, depende do programa Usar POST em vez de GET Forçar o uso de forms próprios via TOKEN aleatório "sea surf"

Agenda: Register Globals Paths Cross-Site Scripting (XSS) Response Splitting / Header Injection Mail Injection Cross-Site Request Forgeries (CSRF) SQL Injection Session Hijacking Links Questões

SQL Injection Fácil de evitar: Filtrar dados por tipo Usar aspas Prepared statements Não mostrar erros (i.e. mysql_error())

SQL Injection script.php?user=admin' OR '1'='1&pass= SELECT * FROM tabela WHERE user='admin' OR '1'='1' AND pass=' '

SQL Injection Usar cast explícito para inteiros mysql_real_escape_estring() Usar hashes nos códigos (md5()/sha1()) Cuidado com wildcards (...LIKE %aeiou%) Atenção às queries múltiplas 50) display_user_error(); ?>

Agenda: Register Globals Paths Cross-Site Scripting (XSS) Response Splitting / Header Injection Mail Injection Cross-Site Request Forgeries (CSRF) SQL Injection Session Hijacking Links Questões

Session Hijacking Roubo de sessões Sem SSL, fazer lock ao User Agent Usar SSL e fazer lock ao IP (e ao certificado do cliente) Usar apenas cookies (evita URLs do tipo script.php?PHPSESSID=jfh92lpgmc7s6fj e ataques pelo HTTP REFERER)

Session Fixation Advém de Engenharia Social Usar session_regenerate_id() depois do login Sessão do atacante deve ficar sem privilégios

Agenda: Register Globals Paths Cross-Site Scripting (XSS) Response Splitting / Header Injection Mail Injection Cross-Site Request Forgeries (CSRF) SQL Injection Session Hijacking Links Questões

Links php.net/manual/security ilia.ws/files/quebec_security2007.pdf mega.ist.utl.pt/~ncpl/pres/

Agenda: Register Globals Paths Cross-Site Scripting (XSS) Response Splitting / Header Injection Mail Injection Cross-Site Request Forgeries (CSRF) SQL Injection Session Hijacking Links Questões