SlideShare une entreprise Scribd logo
1  sur  28
Télécharger pour lire hors ligne
Hackeando as
principais dicas de
desenvolvimento
seguro.
Nem tudo o que reluz é ouro.
Quem somos?!
Thiago DiebLenon Leite
ASZone?! 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 será atacado.
● Um dia a morte chegará.
Incertezas
● Meu sistema será atacado ?
● Estou realmente seguro ?
● Escrevi o código da forma certa ?
● Como ele invadiu ?
● Como ele invadiu de novo ?
● ET existe mesmo ?
Hacking VS Desenvolvimento
Quem conhece?
Hacking VS Desenvolvimento
● Robin-Seggelmann - Desenvolvedor do Opennssl.
● Responsável pelo HeartBleed, desde 2011.
● Revisor - Dr Stephen Henson, até então não deu sinal.
“em uma das novas funcionalidades, infelizmente, eu me
esqueci de validar uma variável contendo um
comprimento”
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
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
Sql Injection
Artigos relevantes de como evitar sql injection.
Será mesmo ?
● http://phpbrasil.com/artigo/v5Ejt4VOld2r/anti-sql-injection--solucao-global
● http://www.vivaolinux.com.br/script/Funcao-Anti-MySQL-Injection-Proteja-
sua-aplicacao
…. Hackeando dicas ….
Sql Injection
Segredo:
*_replace => Age na identificação de algum item setado e altera por outro
parametro que desejar.
Exemplo:
“Select login,senha from tabela_x” => “login,senha tabela_x”
$sql = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop
table|show tables|#|*|--|)/"), "" ,$sql);
Bypass:
“Sele*ct login,senha frofromm tabela_x” =>
“Select login,senha from tabela_x”
Sql Injection
Conclusão
● 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
File Upload
Artigos relevantes de como evitar file upload.
Será mesmo ?
● 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
…. Hackeando dicas ….
File Upload
Segredo:
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
Conclusõ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”
Local File Download / Disclosure
Local File Download / Disclosure
Artigos relevantes sobre o tema.
Será mesmo ?
● 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
…. Hackeando dicas ….
Local File Download / Disclosure
Segredo:
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
Conclusõ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.
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;
http://www.aszone.com.br
@ThiagoDieb
@LenonLeite

Contenu connexe

Tendances

Testes de unidade e TDD SoLiSC 2011
Testes de unidade e TDD SoLiSC 2011Testes de unidade e TDD SoLiSC 2011
Testes de unidade e TDD SoLiSC 2011Luís Cobucci
 
Automatizando seus testes com Robot Framework
Automatizando seus testes com Robot FrameworkAutomatizando seus testes com Robot Framework
Automatizando seus testes com Robot FrameworkClaudenir Freitas
 
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 de integração em microservices
Testes de integração em microservicesTestes de integração em microservices
Testes de integração em microservicesClaudenir Freitas
 
Zend Framework Estrutura e TDD
Zend Framework Estrutura e TDDZend Framework Estrutura e TDD
Zend Framework Estrutura e TDDPHP Day Curitiba
 
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
 
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
 
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
 
Migrations for Java (Javou #4 - JavaCE)
Migrations for Java (Javou #4 - JavaCE)Migrations for Java (Javou #4 - JavaCE)
Migrations for Java (Javou #4 - JavaCE)Rafael Ponte
 
Segurança em PHP: O que você precisa saber
Segurança em PHP: O que você precisa saberSegurança em PHP: O que você precisa saber
Segurança em PHP: O que você precisa saberJota Júnior
 
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)Rafael Ponte
 
Desafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSFDesafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSFRafael Ponte
 
1001 maneiras de debugar o WordPress
1001 maneiras de debugar o WordPress1001 maneiras de debugar o WordPress
1001 maneiras de debugar o WordPressRudá Almeida
 
Desenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2pyDesenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2pyRelsi Maron
 
JUnit - Selenium
JUnit - SeleniumJUnit - Selenium
JUnit - SeleniumCaue Guerra
 
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
 

Tendances (18)

Testes de unidade e TDD SoLiSC 2011
Testes de unidade e TDD SoLiSC 2011Testes de unidade e TDD SoLiSC 2011
Testes de unidade e TDD SoLiSC 2011
 
Automatizando seus testes com Robot Framework
Automatizando seus testes com Robot FrameworkAutomatizando seus testes com Robot Framework
Automatizando seus testes com Robot Framework
 
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 de integração em microservices
Testes de integração em microservicesTestes de integração em microservices
Testes de integração em microservices
 
Zend Framework Estrutura e TDD
Zend Framework Estrutura e TDDZend Framework Estrutura e TDD
Zend Framework Estrutura e TDD
 
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!
 
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
 
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
 
Migrations for Java (Javou #4 - JavaCE)
Migrations for Java (Javou #4 - JavaCE)Migrations for Java (Javou #4 - JavaCE)
Migrations for Java (Javou #4 - JavaCE)
 
Segurança em PHP: O que você precisa saber
Segurança em PHP: O que você precisa saberSegurança em PHP: O que você precisa saber
Segurança em PHP: O que você precisa saber
 
Como fazer boas libs
Como fazer boas libs Como fazer boas libs
Como fazer boas libs
 
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
 
Desafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSFDesafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSF
 
1001 maneiras de debugar o WordPress
1001 maneiras de debugar o WordPress1001 maneiras de debugar o WordPress
1001 maneiras de debugar o WordPress
 
Desenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2pyDesenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2py
 
JUnit - Selenium
JUnit - SeleniumJUnit - Selenium
JUnit - Selenium
 
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 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
 

Similaire à Hackeando dicas de desenvolvimento seguro

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
 
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
 
Palestra criando aplicações seguras com php (2)
Palestra  criando aplicações seguras com php (2)Palestra  criando aplicações seguras com php (2)
Palestra criando aplicações seguras com php (2)Leandro Lugaresi
 
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
 
Erick Belluci Tedeschi - Segurança em WordPress
Erick Belluci Tedeschi - Segurança em WordPressErick Belluci Tedeschi - Segurança em WordPress
Erick Belluci Tedeschi - Segurança em WordPressiMasters
 
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
 
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
 
Identifique brechas, proteja sua aplicação | Php avenger e octopus
Identifique brechas, proteja sua aplicação | Php avenger e octopusIdentifique brechas, proteja sua aplicação | Php avenger e octopus
Identifique brechas, proteja sua aplicação | Php avenger e octopusLeonn Leite
 
CJR Apresenta: OWASP TOP10
CJR Apresenta: OWASP TOP10CJR Apresenta: OWASP TOP10
CJR Apresenta: OWASP TOP10CJR, UnB
 
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
 
TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...
TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...
TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...tdc-globalcode
 
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
 
Palestra: Pentest - Intrusão de Redes
Palestra: Pentest - Intrusão de RedesPalestra: Pentest - Intrusão de Redes
Palestra: Pentest - Intrusão de RedesBruno Alexandre
 

Similaire à Hackeando dicas de desenvolvimento seguro (20)

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...
 
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
 
Palestra criando aplicações seguras com php (2)
Palestra  criando aplicações seguras com php (2)Palestra  criando aplicações seguras com php (2)
Palestra criando aplicações seguras com php (2)
 
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
 
Erick Belluci Tedeschi - Segurança em WordPress
Erick Belluci Tedeschi - Segurança em WordPressErick Belluci Tedeschi - Segurança em WordPress
Erick Belluci Tedeschi - Segurança em WordPress
 
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
 
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
 
Desenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPDesenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHP
 
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)
 
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
 
Identifique brechas, proteja sua aplicação | Php avenger e octopus
Identifique brechas, proteja sua aplicação | Php avenger e octopusIdentifique brechas, proteja sua aplicação | Php avenger e octopus
Identifique brechas, proteja sua aplicação | Php avenger e octopus
 
CJR Apresenta: OWASP TOP10
CJR Apresenta: OWASP TOP10CJR Apresenta: OWASP TOP10
CJR Apresenta: OWASP TOP10
 
Sql injection
Sql injectionSql injection
Sql injection
 
Defensive Programming - by Alcyon Junior
Defensive Programming - by Alcyon JuniorDefensive Programming - by Alcyon Junior
Defensive Programming - by Alcyon Junior
 
OWASP - Ferramentas
OWASP - FerramentasOWASP - Ferramentas
OWASP - Ferramentas
 
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...
 
TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...
TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...
TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...
 
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
 
Palestra: Pentest - Intrusão de Redes
Palestra: Pentest - Intrusão de RedesPalestra: Pentest - Intrusão de Redes
Palestra: Pentest - Intrusão de Redes
 

Plus de 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
 

Plus de 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
 

Hackeando dicas de desenvolvimento seguro

  • 1. Hackeando as principais dicas de desenvolvimento seguro. Nem tudo o que reluz é ouro.
  • 4. Certezas ● Sistemas a prova de balas não existe. ● O sucesso do ataque só existe se o outro lado falhar. ● Sempre falhamos. ● Que ainda será atacado. ● Um dia a morte chegará.
  • 5. Incertezas ● Meu sistema será atacado ? ● Estou realmente seguro ? ● Escrevi o código da forma certa ? ● Como ele invadiu ? ● Como ele invadiu de novo ? ● ET existe mesmo ?
  • 7. Hacking VS Desenvolvimento ● Robin-Seggelmann - Desenvolvedor do Opennssl. ● Responsável pelo HeartBleed, desde 2011. ● Revisor - Dr Stephen Henson, até então não deu sinal. “em uma das novas funcionalidades, infelizmente, eu me esqueci de validar uma variável contendo um comprimento”
  • 8. 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; +
  • 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 Artigos relevantes de como evitar sql injection. Será mesmo ? ● http://phpbrasil.com/artigo/v5Ejt4VOld2r/anti-sql-injection--solucao-global ● http://www.vivaolinux.com.br/script/Funcao-Anti-MySQL-Injection-Proteja- sua-aplicacao …. Hackeando dicas ….
  • 14. Sql Injection Segredo: *_replace => Age na identificação de algum item setado e altera por outro parametro que desejar. Exemplo: “Select login,senha from tabela_x” => “login,senha tabela_x” $sql = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|*|--|)/"), "" ,$sql); Bypass: “Sele*ct login,senha frofromm tabela_x” => “Select login,senha from tabela_x”
  • 15. Sql Injection Conclusão ● 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.”
  • 18. File Upload Artigos relevantes de como evitar file upload. Será mesmo ? ● 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 …. Hackeando dicas ….
  • 19. File Upload Segredo: 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
  • 20. File Upload Conclusõ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.
  • 21. Local File Download / Disclosure “É a vulnerabilidade que possibilita a apresentação ou o download de arquivos, independente da linguagem: php, asp, java, etc”
  • 22. Local File Download / Disclosure
  • 23. Local File Download / Disclosure Artigos relevantes sobre o tema. Será mesmo ? ● 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 …. Hackeando dicas ….
  • 24. Local File Download / Disclosure Segredo: 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.
  • 25. Local File Download / Disclosure Conclusõ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.
  • 27. 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;