SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Downloaden Sie, um offline zu lesen
Hacker do bem,
quebrando as
principais dicas de
desenvolvimento
seguro.
@ThiagoDieb
http://www.aszone.com.br
Certezas
● Sistemas a prova de balas não existe.
● O sucesso do ataque só existe se o outro lado falhar.
● Sempre falhamos.
● Que ainda seremos atacados.
● Um dia a morte chegará.
Incertezas
● Estou realmente seguro ?
● Escrevi o código da forma certa ?
● Meu sistema será mesmo atacado ?
● Como ele invadiu ?
● Como ele invadiu de novo ?
● ET existe ?
Hacking VS Desenvolvimento
Alguém conhece este senhor ?
Desenvolvedor do OpenSSL
Programador
Possue origem Alemã
Responsável por uma das maiores
vulnerabilidades de 2014
Hacking VS Desenvolvimento
“em uma das novas funcionalidades, infelizmente, eu me
esqueci de validar uma variável contendo um comprimento”
Robin-Seggelmann
Responsável pelo HeartBleed, desde 2011.
Revisor - Dr Stephen Henson, até então não deu sinal.
Hacking VS Desenvolvimento
Falha
2412 /* Read type and payload length first */
2413 hbtype = *p++;
2414 n2s(p, payload);
2415 pl = p;
Correção
+ /* Read type and payload length first */
+ if (1 + 2 + 16 > s->s3->rrec.length)
+ return 0; /* silently discard */
+ hbtype = *p++;
+ n2s(p, payload);
+ if (1 + 2 + payload + 16 > s->s3->rrec.length)
+ return 0; /* silently discard per RFC 6520 sec. 4 */
+ pl = p;
Hacking VS Desenvolvimento
Desenvolvimento Seguro
● Muitos desafios
● Procedimentos complexos
● Poucos conhecem
● Não garante 100% de segurança
OWASP - Top 10
A1 - Injection
A2 - Broken Authentication and Session Management
A3 - Cross-Site Scripting (XSS)
A4 - Insecure Direct Object References
A5 - Security Misconfiguration
A6 - Sensitive Data Exposure
A7 - Missing Function Level Access Control
A8 - Cross-Site Request Forgery (CSRF)
A9 - Using Components with Known Vulnerabilities
A10 - Unvalidated Redirects and Forwards
Sql Injection
“Ataque que proporciona o invasor
inserir ou manipular consultas SQL`s
utilizadas por uma aplicação”
Sql Injection
Como resolver o problema ?
Sql Injection
Resultados de uma simples
busca resolveria ?
● http://phpbrasil.com/artigo/v5Ejt4VOld2r/anti-sql-injection--solucao-global
● http://www.vivaolinux.com.br/script/Funcao-Anti-MySQL-Injection-Proteja-
sua-aplicacao
Será mesmo ?
Sql Injection
Onde está o erro?
Bypass:
“Sele*ct login,senha frofromm tabela_x”
“Select login,senha from tabela_x
Exemplo:
“Select login,senha from tabela_x” =>
“login,senha tabela_x”
preg_replace(sql_regcase("/
(from|select|insert|delete|where|dro
p table|show tables|#|*|--|)/"), ""
,$sql);
Sql Injection
Considerações
● Sempre aplique validação nas entradas de dados, exemplo:
○ Inteiros - valide como inteiro
○ Strings - exclua as aspas
○ true, false - converta para bollean
● Utilize camada de abstração de dados (ORM).
● Recurso a Prepared Statements.
File Upload
“Vulnerabilidade que permite efetuar upload
de algum arquivo, no qual o sistema não
está preparado.”
File Upload
Resultados de uma simples busca
resolveria ?
● http://www.uolhost.com.br/faq/hospedagem/como-fazer-o-upload-de-
arquivos-via-php.html#rmcl
● http://wiki.locaweb.com/pt-br/PHP_-_Upload_de_arquivos
Será mesmo ?
File Upload
http://www.uolhost.com.br/faq/hospedagem/como-fazer-o-upload-de-arquivos-
via-php.html#rmcl
● Simplesmente não valida nada, e ainda diz pra usar 777 na pasta.
http://wiki.locaweb.com/pt-br/PHP_-_Upload_de_arquivos
● if (!(eregi(".php$", $_FILES[arquivo][name]))) {
● Esqueceu que apache interpreta, .php3, .php5
File Upload
Considerações
● Ajustar as configurações dos serviços WEB;
● IIS merece atenção;
● Não confie apenas no mimetype ou extensão;
● Atenção a permissões de pastas, arquivos e usuários;
● Monitoramento constante;
● Trabalhe com aplicações em ambientes segregados;
● Verifique todas possíbilidades do white ou blacklist da função.
Local File Download /
Disclosure
“É a vulnerabilidade que possibilita a
apresentação ou o download de arquivos,
independente da linguagem: php, asp, java,
etc”
Resultados de uma simples busca
resolveria ?
● https://www.developphp.com/video/PHP/Force-File-Download-
Dialog-In-Browser-Tutorial
● http://www.devmedia.com.br/forcar-download-de-arquivos-
com-php/17097
Será mesmo ?
Local File Download /
Disclosure
https://www.developphp.com/video/PHP/Force-File-Download-
Dialog-In-Browser-Tutorial
● Alteramos o html do hidden inserindo “../” e o arquivo que queremos.
http://www.devmedia.com.br/forcar-download-de-arquivos-
com-php/17097
● Realmente valida php, mas esquecem que existe arquivos de
configurações em ini,yml,inc.
Local File Download /
Disclosure
Considerações
● Validação do lado do Servidor
● Crie filtros por "whitelist".
● Defina previamente o caminho das pastas.
● Não permita navegação - “../”
● Validação por registro na base de dados.
Local File Download /
Disclosure
Desenvolvimento Seguro
Microsoft SDL OpenSAMMOWASP
Conclusão
● Segurança não é uma coisa e sim um estado.
● Segurança em primeiro plano, ela pode acabar detonar sua imagem
● Pense como hacker, pense diferente, ataque a si próprio;
● Monitore seus sistemas;
● Busque utilizer diretrizes de desenvolvimento seguro;
● A equipe de Infraestrutura não é seu inimigo, confie neles.
● Nunca esqueça de fazer "Code review" e "Par programming";
● Use como regra: Pentest em cada ciclo de desenvolvimento;
● Infraestrutura voltada para segurança;
● Analise logs e movimentações estranhas;
● Mantenha informado e atualizado sempre sobre segurança;
Contribua !
https://joind.in/15205
Obrigado
@ThiagoDieb
http://www.aszone.com.br

Weitere ähnliche Inhalte

Was ist angesagt?

TDCPOA2018 - Trilha Python - Testes de Performance com Locust
TDCPOA2018 - Trilha Python - Testes de Performance com LocustTDCPOA2018 - Trilha Python - Testes de Performance com Locust
TDCPOA2018 - Trilha Python - Testes de Performance com LocustMayara Fernandes
 
Teste de aplicações web com selenium
Teste de aplicações web com seleniumTeste de aplicações web com selenium
Teste de aplicações web com seleniumMayron Cachina
 
Selenium Workshop
Selenium Workshop Selenium Workshop
Selenium Workshop Thoughtworks
 
Zend Framework Estrutura e TDD
Zend Framework Estrutura e TDDZend Framework Estrutura e TDD
Zend Framework Estrutura e TDDPHP Day Curitiba
 
Testes com TestLink e Selenium
Testes com TestLink e SeleniumTestes com TestLink e Selenium
Testes com TestLink e SeleniumAndré Thiago
 
Assespro pr-workshop-robot framework
Assespro pr-workshop-robot frameworkAssespro pr-workshop-robot framework
Assespro pr-workshop-robot frameworkMayara Fernandes
 
Automação de Testes com Robot Framework - GUTS-SC
Automação de Testes com Robot Framework - GUTS-SCAutomação de Testes com Robot Framework - GUTS-SC
Automação de Testes com Robot Framework - GUTS-SCMayara Fernandes
 
Selenium
SeleniumSelenium
Seleniumfatec
 
Ideais Cowabunga - Headless Testing com GhostDriver
Ideais Cowabunga - Headless Testing com GhostDriverIdeais Cowabunga - Headless Testing com GhostDriver
Ideais Cowabunga - Headless Testing com GhostDriverStefan Teixeira
 
Palestra TDD - TDC - 2016
Palestra TDD - TDC - 2016Palestra TDD - TDC - 2016
Palestra TDD - TDC - 2016Bruno Maomeh
 
Automatizando seus testes com Robot Framework
Automatizando seus testes com Robot FrameworkAutomatizando seus testes com Robot Framework
Automatizando seus testes com Robot FrameworkClaudenir Freitas
 
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiTDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiMayara Fernandes
 
Testes unitários como ferramentas de design de código
Testes unitários como ferramentas de design de códigoTestes unitários como ferramentas de design de código
Testes unitários como ferramentas de design de códigoPaula Grangeiro
 
Robot Framework no DevTests #34
Robot Framework no DevTests #34Robot Framework no DevTests #34
Robot Framework no DevTests #34Mayara Fernandes
 
#1 Robot Floripa - Robot Framework: O que é? Onde vive? Do que se alimenta?
#1 Robot Floripa - Robot Framework: O que é? Onde vive? Do que se alimenta?#1 Robot Floripa - Robot Framework: O que é? Onde vive? Do que se alimenta?
#1 Robot Floripa - Robot Framework: O que é? Onde vive? Do que se alimenta?Mayara Fernandes
 
iMasters Intercon Dev WordPress - Segurança em WordPress
iMasters Intercon Dev WordPress - Segurança em WordPressiMasters Intercon Dev WordPress - Segurança em WordPress
iMasters Intercon Dev WordPress - Segurança em WordPressErick Belluci Tedeschi
 
Testes Funcionais e Estruturais utilizando Selenium IDE e Cobertura
Testes Funcionais e Estruturais utilizando Selenium IDE e CoberturaTestes Funcionais e Estruturais utilizando Selenium IDE e Cobertura
Testes Funcionais e Estruturais utilizando Selenium IDE e CoberturaTiago Antônio da Silva
 

Was ist angesagt? (20)

TDCPOA2018 - Trilha Python - Testes de Performance com Locust
TDCPOA2018 - Trilha Python - Testes de Performance com LocustTDCPOA2018 - Trilha Python - Testes de Performance com Locust
TDCPOA2018 - Trilha Python - Testes de Performance com Locust
 
Teste de aplicações web com selenium
Teste de aplicações web com seleniumTeste de aplicações web com selenium
Teste de aplicações web com selenium
 
Selenium Workshop
Selenium Workshop Selenium Workshop
Selenium Workshop
 
Zend Framework Estrutura e TDD
Zend Framework Estrutura e TDDZend Framework Estrutura e TDD
Zend Framework Estrutura e TDD
 
Testes com TestLink e Selenium
Testes com TestLink e SeleniumTestes com TestLink e Selenium
Testes com TestLink e Selenium
 
Assespro pr-workshop-robot framework
Assespro pr-workshop-robot frameworkAssespro pr-workshop-robot framework
Assespro pr-workshop-robot framework
 
Selenium: visão geral
Selenium: visão geralSelenium: visão geral
Selenium: visão geral
 
Automação de Testes com Robot Framework - GUTS-SC
Automação de Testes com Robot Framework - GUTS-SCAutomação de Testes com Robot Framework - GUTS-SC
Automação de Testes com Robot Framework - GUTS-SC
 
Selenium
SeleniumSelenium
Selenium
 
Ideais Cowabunga - Headless Testing com GhostDriver
Ideais Cowabunga - Headless Testing com GhostDriverIdeais Cowabunga - Headless Testing com GhostDriver
Ideais Cowabunga - Headless Testing com GhostDriver
 
Palestra TDD - TDC - 2016
Palestra TDD - TDC - 2016Palestra TDD - TDC - 2016
Palestra TDD - TDC - 2016
 
Automatizando seus testes com Robot Framework
Automatizando seus testes com Robot FrameworkAutomatizando seus testes com Robot Framework
Automatizando seus testes com Robot Framework
 
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiTDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
 
Testes unitários como ferramentas de design de código
Testes unitários como ferramentas de design de códigoTestes unitários como ferramentas de design de código
Testes unitários como ferramentas de design de código
 
Robot Framework no DevTests #34
Robot Framework no DevTests #34Robot Framework no DevTests #34
Robot Framework no DevTests #34
 
Palestra TDD Javou! #08 2016
Palestra TDD Javou! #08 2016Palestra TDD Javou! #08 2016
Palestra TDD Javou! #08 2016
 
#1 Robot Floripa - Robot Framework: O que é? Onde vive? Do que se alimenta?
#1 Robot Floripa - Robot Framework: O que é? Onde vive? Do que se alimenta?#1 Robot Floripa - Robot Framework: O que é? Onde vive? Do que se alimenta?
#1 Robot Floripa - Robot Framework: O que é? Onde vive? Do que se alimenta?
 
iMasters Intercon Dev WordPress - Segurança em WordPress
iMasters Intercon Dev WordPress - Segurança em WordPressiMasters Intercon Dev WordPress - Segurança em WordPress
iMasters Intercon Dev WordPress - Segurança em WordPress
 
Testes Funcionais e Estruturais utilizando Selenium IDE e Cobertura
Testes Funcionais e Estruturais utilizando Selenium IDE e CoberturaTestes Funcionais e Estruturais utilizando Selenium IDE e Cobertura
Testes Funcionais e Estruturais utilizando Selenium IDE e Cobertura
 
Selenium ide apresentação
Selenium ide   apresentaçãoSelenium ide   apresentação
Selenium ide apresentação
 

Ähnlich wie Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de desenvolvimento seguro

Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...
Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...
Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...Thiago Dieb
 
Palestra - Darkmira Tour PHP 2016 - A ilusão das referências sobre desenvolv...
Palestra - Darkmira Tour PHP 2016  - A ilusão das referências sobre desenvolv...Palestra - Darkmira Tour PHP 2016  - A ilusão das referências sobre desenvolv...
Palestra - Darkmira Tour PHP 2016 - A ilusão das referências sobre desenvolv...Thiago Dieb
 
Segurança em PHP - Blinde seu código de você mesmo!
Segurança em PHP - Blinde seu código de você mesmo!Segurança em PHP - Blinde seu código de você mesmo!
Segurança em PHP - Blinde seu código de você mesmo!Gustavo Neves
 
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas ( Versão Segi...
 Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas ( Versão Segi... Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas ( Versão Segi...
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas ( Versão Segi...Alexandro Silva
 
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
Proteja sua Hovercraft: Mantendo sua nave livre dos SentinelasProteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
Proteja sua Hovercraft: Mantendo sua nave livre dos SentinelasSegInfo
 
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...Magno Logan
 
Top 5 vulnerabilidades_em_aplicacoes_web
Top 5 vulnerabilidades_em_aplicacoes_webTop 5 vulnerabilidades_em_aplicacoes_web
Top 5 vulnerabilidades_em_aplicacoes_webLuis Asensio
 
Top 5 vulnerabilidades_em_aplicacoes_web_e_seu
Top 5 vulnerabilidades_em_aplicacoes_web_e_seuTop 5 vulnerabilidades_em_aplicacoes_web_e_seu
Top 5 vulnerabilidades_em_aplicacoes_web_e_seuLuis Asensio
 
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEEAppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEEMagno Logan
 
Desenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPDesenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPFlavio Souza
 
Palestra: Pentest - Intrusão de Redes
Palestra: Pentest - Intrusão de RedesPalestra: Pentest - Intrusão de Redes
Palestra: Pentest - Intrusão de RedesBruno Alexandre
 
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesPalestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesClavis Segurança da Informação
 
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
Proteja sua Hovercraft: Mantendo sua nave livre dos SentinelasProteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
Proteja sua Hovercraft: Mantendo sua nave livre dos SentinelasAlexandro Silva
 
Desenvolvimento de software seguro
Desenvolvimento de software seguroDesenvolvimento de software seguro
Desenvolvimento de software seguroCharles Fortes
 
Aprendendo a criar plugins para o Wordpress - Richard Barros
Aprendendo a criar plugins para o Wordpress - Richard BarrosAprendendo a criar plugins para o Wordpress - Richard Barros
Aprendendo a criar plugins para o Wordpress - Richard BarrosRichard Barros
 

Ähnlich wie Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de desenvolvimento seguro (20)

Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...
Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...
Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...
 
Palestra - Darkmira Tour PHP 2016 - A ilusão das referências sobre desenvolv...
Palestra - Darkmira Tour PHP 2016  - A ilusão das referências sobre desenvolv...Palestra - Darkmira Tour PHP 2016  - A ilusão das referências sobre desenvolv...
Palestra - Darkmira Tour PHP 2016 - A ilusão das referências sobre desenvolv...
 
Segurança em PHP - Blinde seu código de você mesmo!
Segurança em PHP - Blinde seu código de você mesmo!Segurança em PHP - Blinde seu código de você mesmo!
Segurança em PHP - Blinde seu código de você mesmo!
 
Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010
Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010
Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010
 
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas ( Versão Segi...
 Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas ( Versão Segi... Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas ( Versão Segi...
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas ( Versão Segi...
 
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
Proteja sua Hovercraft: Mantendo sua nave livre dos SentinelasProteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
 
OWASP - Ferramentas
OWASP - FerramentasOWASP - Ferramentas
OWASP - Ferramentas
 
Testes de Segurança de Software (tech-ed 2008)
Testes de Segurança de Software (tech-ed 2008)Testes de Segurança de Software (tech-ed 2008)
Testes de Segurança de Software (tech-ed 2008)
 
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
 
Top 5 vulnerabilidades_em_aplicacoes_web
Top 5 vulnerabilidades_em_aplicacoes_webTop 5 vulnerabilidades_em_aplicacoes_web
Top 5 vulnerabilidades_em_aplicacoes_web
 
Top 5 vulnerabilidades_em_aplicacoes_web_e_seu
Top 5 vulnerabilidades_em_aplicacoes_web_e_seuTop 5 vulnerabilidades_em_aplicacoes_web_e_seu
Top 5 vulnerabilidades_em_aplicacoes_web_e_seu
 
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEEAppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
 
Desenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPDesenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHP
 
Ferranentas OWASP
Ferranentas OWASPFerranentas OWASP
Ferranentas OWASP
 
Palestra: Pentest - Intrusão de Redes
Palestra: Pentest - Intrusão de RedesPalestra: Pentest - Intrusão de Redes
Palestra: Pentest - Intrusão de Redes
 
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesPalestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
 
Teste de segurança do lado servidor - Nível 1
Teste de segurança do lado servidor - Nível 1Teste de segurança do lado servidor - Nível 1
Teste de segurança do lado servidor - Nível 1
 
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
Proteja sua Hovercraft: Mantendo sua nave livre dos SentinelasProteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
 
Desenvolvimento de software seguro
Desenvolvimento de software seguroDesenvolvimento de software seguro
Desenvolvimento de software seguro
 
Aprendendo a criar plugins para o Wordpress - Richard Barros
Aprendendo a criar plugins para o Wordpress - Richard BarrosAprendendo a criar plugins para o Wordpress - Richard Barros
Aprendendo a criar plugins para o Wordpress - Richard Barros
 

Mehr von Thiago Dieb

Agile Day - Gestão de Projetos com Métodos ágeis de Larga escala:Fatores d...
Agile Day - Gestão de Projetos com Métodos ágeis de Larga escala:Fatores d...Agile Day - Gestão de Projetos com Métodos ágeis de Larga escala:Fatores d...
Agile Day - Gestão de Projetos com Métodos ágeis de Larga escala:Fatores d...Thiago Dieb
 
Agile trends 2021 - Ser líder ou ser liderado, qual o mais difícil
Agile trends 2021  - Ser líder ou ser liderado,  qual o mais difícilAgile trends 2021  - Ser líder ou ser liderado,  qual o mais difícil
Agile trends 2021 - Ser líder ou ser liderado, qual o mais difícilThiago Dieb
 
TDC 2017 SP - NoSQL - Sistema de busca na administração pública, com MongoDb ...
TDC 2017 SP - NoSQL - Sistema de busca na administração pública, com MongoDb ...TDC 2017 SP - NoSQL - Sistema de busca na administração pública, com MongoDb ...
TDC 2017 SP - NoSQL - Sistema de busca na administração pública, com MongoDb ...Thiago Dieb
 
TDC 2017 SP - Agile Coaching - Os segredos e os benefícios de se tornar um pr...
TDC 2017 SP - Agile Coaching - Os segredos e os benefícios de se tornar um pr...TDC 2017 SP - Agile Coaching - Os segredos e os benefícios de se tornar um pr...
TDC 2017 SP - Agile Coaching - Os segredos e os benefícios de se tornar um pr...Thiago Dieb
 
15º encontro de gerenciamento de projetos #15 egp - Metodologia ágil a favo...
15º encontro de gerenciamento de projetos   #15 egp - Metodologia ágil a favo...15º encontro de gerenciamento de projetos   #15 egp - Metodologia ágil a favo...
15º encontro de gerenciamento de projetos #15 egp - Metodologia ágil a favo...Thiago Dieb
 
Scrum Gathering Rio 2015 - Como fazer um portal de 25 milhões de usuários em ...
Scrum Gathering Rio 2015 - Como fazer um portal de 25 milhões de usuários em ...Scrum Gathering Rio 2015 - Como fazer um portal de 25 milhões de usuários em ...
Scrum Gathering Rio 2015 - Como fazer um portal de 25 milhões de usuários em ...Thiago Dieb
 
WordCamp Belo Horizonte 2015 | Hackers vs WordPress – A Rebelião das Máquinas
WordCamp Belo Horizonte 2015 | Hackers vs WordPress – A Rebelião das MáquinasWordCamp Belo Horizonte 2015 | Hackers vs WordPress – A Rebelião das Máquinas
WordCamp Belo Horizonte 2015 | Hackers vs WordPress – A Rebelião das MáquinasThiago Dieb
 
Flisol DF 2015 - WordPress vs Hacker . blindando seu WordPress
Flisol DF 2015 - WordPress vs Hacker . blindando seu WordPressFlisol DF 2015 - WordPress vs Hacker . blindando seu WordPress
Flisol DF 2015 - WordPress vs Hacker . blindando seu WordPressThiago Dieb
 
Fisl 16 – WordPress vs Hacker – descubra o que ainda é preciso saber para bl...
Fisl 16 – WordPress vs Hacker – descubra o que ainda é preciso saber para bl...Fisl 16 – WordPress vs Hacker – descubra o que ainda é preciso saber para bl...
Fisl 16 – WordPress vs Hacker – descubra o que ainda é preciso saber para bl...Thiago Dieb
 
Facsenac - De hacker e louco, todo mundo tem um pouco
Facsenac - De hacker e louco, todo mundo tem um poucoFacsenac - De hacker e louco, todo mundo tem um pouco
Facsenac - De hacker e louco, todo mundo tem um poucoThiago Dieb
 
Meetup WordPress Brasília 2014 - WordPress vs Hacker
 Meetup WordPress Brasília 2014 - WordPress vs Hacker Meetup WordPress Brasília 2014 - WordPress vs Hacker
Meetup WordPress Brasília 2014 - WordPress vs HackerThiago Dieb
 
Fisl 16 - Como informar os resultados da eleição antes do tse
Fisl 16 - Como informar os resultados da eleição antes do tseFisl 16 - Como informar os resultados da eleição antes do tse
Fisl 16 - Como informar os resultados da eleição antes do tseThiago Dieb
 
Drupalcamp SP 2015 - Como uma Empresa Pública pode construir seu legado utili...
Drupalcamp SP 2015 - Como uma Empresa Pública pode construir seu legado utili...Drupalcamp SP 2015 - Como uma Empresa Pública pode construir seu legado utili...
Drupalcamp SP 2015 - Como uma Empresa Pública pode construir seu legado utili...Thiago Dieb
 
Palestra DFJUG #java20 anos - Web Hacking - desenvolva na defesa, jogando no...
Palestra DFJUG #java20 anos  - Web Hacking - desenvolva na defesa, jogando no...Palestra DFJUG #java20 anos  - Web Hacking - desenvolva na defesa, jogando no...
Palestra DFJUG #java20 anos - Web Hacking - desenvolva na defesa, jogando no...Thiago Dieb
 
Minicurso de Lógica e Linguagem Java 6.0
Minicurso de Lógica e Linguagem Java 6.0Minicurso de Lógica e Linguagem Java 6.0
Minicurso de Lógica e Linguagem Java 6.0Thiago Dieb
 

Mehr von Thiago Dieb (15)

Agile Day - Gestão de Projetos com Métodos ágeis de Larga escala:Fatores d...
Agile Day - Gestão de Projetos com Métodos ágeis de Larga escala:Fatores d...Agile Day - Gestão de Projetos com Métodos ágeis de Larga escala:Fatores d...
Agile Day - Gestão de Projetos com Métodos ágeis de Larga escala:Fatores d...
 
Agile trends 2021 - Ser líder ou ser liderado, qual o mais difícil
Agile trends 2021  - Ser líder ou ser liderado,  qual o mais difícilAgile trends 2021  - Ser líder ou ser liderado,  qual o mais difícil
Agile trends 2021 - Ser líder ou ser liderado, qual o mais difícil
 
TDC 2017 SP - NoSQL - Sistema de busca na administração pública, com MongoDb ...
TDC 2017 SP - NoSQL - Sistema de busca na administração pública, com MongoDb ...TDC 2017 SP - NoSQL - Sistema de busca na administração pública, com MongoDb ...
TDC 2017 SP - NoSQL - Sistema de busca na administração pública, com MongoDb ...
 
TDC 2017 SP - Agile Coaching - Os segredos e os benefícios de se tornar um pr...
TDC 2017 SP - Agile Coaching - Os segredos e os benefícios de se tornar um pr...TDC 2017 SP - Agile Coaching - Os segredos e os benefícios de se tornar um pr...
TDC 2017 SP - Agile Coaching - Os segredos e os benefícios de se tornar um pr...
 
15º encontro de gerenciamento de projetos #15 egp - Metodologia ágil a favo...
15º encontro de gerenciamento de projetos   #15 egp - Metodologia ágil a favo...15º encontro de gerenciamento de projetos   #15 egp - Metodologia ágil a favo...
15º encontro de gerenciamento de projetos #15 egp - Metodologia ágil a favo...
 
Scrum Gathering Rio 2015 - Como fazer um portal de 25 milhões de usuários em ...
Scrum Gathering Rio 2015 - Como fazer um portal de 25 milhões de usuários em ...Scrum Gathering Rio 2015 - Como fazer um portal de 25 milhões de usuários em ...
Scrum Gathering Rio 2015 - Como fazer um portal de 25 milhões de usuários em ...
 
WordCamp Belo Horizonte 2015 | Hackers vs WordPress – A Rebelião das Máquinas
WordCamp Belo Horizonte 2015 | Hackers vs WordPress – A Rebelião das MáquinasWordCamp Belo Horizonte 2015 | Hackers vs WordPress – A Rebelião das Máquinas
WordCamp Belo Horizonte 2015 | Hackers vs WordPress – A Rebelião das Máquinas
 
Flisol DF 2015 - WordPress vs Hacker . blindando seu WordPress
Flisol DF 2015 - WordPress vs Hacker . blindando seu WordPressFlisol DF 2015 - WordPress vs Hacker . blindando seu WordPress
Flisol DF 2015 - WordPress vs Hacker . blindando seu WordPress
 
Fisl 16 – WordPress vs Hacker – descubra o que ainda é preciso saber para bl...
Fisl 16 – WordPress vs Hacker – descubra o que ainda é preciso saber para bl...Fisl 16 – WordPress vs Hacker – descubra o que ainda é preciso saber para bl...
Fisl 16 – WordPress vs Hacker – descubra o que ainda é preciso saber para bl...
 
Facsenac - De hacker e louco, todo mundo tem um pouco
Facsenac - De hacker e louco, todo mundo tem um poucoFacsenac - De hacker e louco, todo mundo tem um pouco
Facsenac - De hacker e louco, todo mundo tem um pouco
 
Meetup WordPress Brasília 2014 - WordPress vs Hacker
 Meetup WordPress Brasília 2014 - WordPress vs Hacker Meetup WordPress Brasília 2014 - WordPress vs Hacker
Meetup WordPress Brasília 2014 - WordPress vs Hacker
 
Fisl 16 - Como informar os resultados da eleição antes do tse
Fisl 16 - Como informar os resultados da eleição antes do tseFisl 16 - Como informar os resultados da eleição antes do tse
Fisl 16 - Como informar os resultados da eleição antes do tse
 
Drupalcamp SP 2015 - Como uma Empresa Pública pode construir seu legado utili...
Drupalcamp SP 2015 - Como uma Empresa Pública pode construir seu legado utili...Drupalcamp SP 2015 - Como uma Empresa Pública pode construir seu legado utili...
Drupalcamp SP 2015 - Como uma Empresa Pública pode construir seu legado utili...
 
Palestra DFJUG #java20 anos - Web Hacking - desenvolva na defesa, jogando no...
Palestra DFJUG #java20 anos  - Web Hacking - desenvolva na defesa, jogando no...Palestra DFJUG #java20 anos  - Web Hacking - desenvolva na defesa, jogando no...
Palestra DFJUG #java20 anos - Web Hacking - desenvolva na defesa, jogando no...
 
Minicurso de Lógica e Linguagem Java 6.0
Minicurso de Lógica e Linguagem Java 6.0Minicurso de Lógica e Linguagem Java 6.0
Minicurso de Lógica e Linguagem Java 6.0
 

Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de desenvolvimento seguro

  • 1. Hacker do bem, quebrando as principais dicas de desenvolvimento seguro. @ThiagoDieb
  • 3. Certezas ● Sistemas a prova de balas não existe. ● O sucesso do ataque só existe se o outro lado falhar. ● Sempre falhamos. ● Que ainda seremos atacados. ● Um dia a morte chegará.
  • 4. Incertezas ● Estou realmente seguro ? ● Escrevi o código da forma certa ? ● Meu sistema será mesmo atacado ? ● Como ele invadiu ? ● Como ele invadiu de novo ? ● ET existe ?
  • 5. Hacking VS Desenvolvimento Alguém conhece este senhor ? Desenvolvedor do OpenSSL Programador Possue origem Alemã Responsável por uma das maiores vulnerabilidades de 2014
  • 6. Hacking VS Desenvolvimento “em uma das novas funcionalidades, infelizmente, eu me esqueci de validar uma variável contendo um comprimento” Robin-Seggelmann Responsável pelo HeartBleed, desde 2011. Revisor - Dr Stephen Henson, até então não deu sinal.
  • 7. Hacking VS Desenvolvimento Falha 2412 /* Read type and payload length first */ 2413 hbtype = *p++; 2414 n2s(p, payload); 2415 pl = p; Correção + /* Read type and payload length first */ + if (1 + 2 + 16 > s->s3->rrec.length) + return 0; /* silently discard */ + hbtype = *p++; + n2s(p, payload); + if (1 + 2 + payload + 16 > s->s3->rrec.length) + return 0; /* silently discard per RFC 6520 sec. 4 */ + pl = p;
  • 9. Desenvolvimento Seguro ● Muitos desafios ● Procedimentos complexos ● Poucos conhecem ● Não garante 100% de segurança
  • 10. OWASP - Top 10 A1 - Injection A2 - Broken Authentication and Session Management A3 - Cross-Site Scripting (XSS) A4 - Insecure Direct Object References A5 - Security Misconfiguration A6 - Sensitive Data Exposure A7 - Missing Function Level Access Control A8 - Cross-Site Request Forgery (CSRF) A9 - Using Components with Known Vulnerabilities A10 - Unvalidated Redirects and Forwards
  • 11. Sql Injection “Ataque que proporciona o invasor inserir ou manipular consultas SQL`s utilizadas por uma aplicação”
  • 13. Sql Injection Resultados de uma simples busca resolveria ? ● http://phpbrasil.com/artigo/v5Ejt4VOld2r/anti-sql-injection--solucao-global ● http://www.vivaolinux.com.br/script/Funcao-Anti-MySQL-Injection-Proteja- sua-aplicacao Será mesmo ?
  • 14. Sql Injection Onde está o erro? Bypass: “Sele*ct login,senha frofromm tabela_x” “Select login,senha from tabela_x Exemplo: “Select login,senha from tabela_x” => “login,senha tabela_x” preg_replace(sql_regcase("/ (from|select|insert|delete|where|dro p table|show tables|#|*|--|)/"), "" ,$sql);
  • 15. Sql Injection Considerações ● Sempre aplique validação nas entradas de dados, exemplo: ○ Inteiros - valide como inteiro ○ Strings - exclua as aspas ○ true, false - converta para bollean ● Utilize camada de abstração de dados (ORM). ● Recurso a Prepared Statements.
  • 16. File Upload “Vulnerabilidade que permite efetuar upload de algum arquivo, no qual o sistema não está preparado.”
  • 17. File Upload Resultados de uma simples busca resolveria ? ● http://www.uolhost.com.br/faq/hospedagem/como-fazer-o-upload-de- arquivos-via-php.html#rmcl ● http://wiki.locaweb.com/pt-br/PHP_-_Upload_de_arquivos Será mesmo ?
  • 18. File Upload http://www.uolhost.com.br/faq/hospedagem/como-fazer-o-upload-de-arquivos- via-php.html#rmcl ● Simplesmente não valida nada, e ainda diz pra usar 777 na pasta. http://wiki.locaweb.com/pt-br/PHP_-_Upload_de_arquivos ● if (!(eregi(".php$", $_FILES[arquivo][name]))) { ● Esqueceu que apache interpreta, .php3, .php5
  • 19. File Upload Considerações ● Ajustar as configurações dos serviços WEB; ● IIS merece atenção; ● Não confie apenas no mimetype ou extensão; ● Atenção a permissões de pastas, arquivos e usuários; ● Monitoramento constante; ● Trabalhe com aplicações em ambientes segregados; ● Verifique todas possíbilidades do white ou blacklist da função.
  • 20. Local File Download / Disclosure “É a vulnerabilidade que possibilita a apresentação ou o download de arquivos, independente da linguagem: php, asp, java, etc”
  • 21. Resultados de uma simples busca resolveria ? ● https://www.developphp.com/video/PHP/Force-File-Download- Dialog-In-Browser-Tutorial ● http://www.devmedia.com.br/forcar-download-de-arquivos- com-php/17097 Será mesmo ? Local File Download / Disclosure
  • 22. https://www.developphp.com/video/PHP/Force-File-Download- Dialog-In-Browser-Tutorial ● Alteramos o html do hidden inserindo “../” e o arquivo que queremos. http://www.devmedia.com.br/forcar-download-de-arquivos- com-php/17097 ● Realmente valida php, mas esquecem que existe arquivos de configurações em ini,yml,inc. Local File Download / Disclosure
  • 23. Considerações ● Validação do lado do Servidor ● Crie filtros por "whitelist". ● Defina previamente o caminho das pastas. ● Não permita navegação - “../” ● Validação por registro na base de dados. Local File Download / Disclosure
  • 25. Conclusão ● Segurança não é uma coisa e sim um estado. ● Segurança em primeiro plano, ela pode acabar detonar sua imagem ● Pense como hacker, pense diferente, ataque a si próprio; ● Monitore seus sistemas; ● Busque utilizer diretrizes de desenvolvimento seguro; ● A equipe de Infraestrutura não é seu inimigo, confie neles. ● Nunca esqueça de fazer "Code review" e "Par programming"; ● Use como regra: Pentest em cada ciclo de desenvolvimento; ● Infraestrutura voltada para segurança; ● Analise logs e movimentações estranhas; ● Mantenha informado e atualizado sempre sobre segurança;