Palestra criando aplicações seguras com php (2)

430 visualizações

Publicada em

Uma abordagem sobre técnicas de segurança para aplicações desenvolvidas em PHP, necessárias a qualquer um que tenha interesse em montar um software confiável. Irei abordar maneiras de reduzir os riscos de ataques, maneiras de proteger os usuários da sua aplicação e apresentar algumas bibliotecas e ferramentas Open Source para ajudar neste processo.

Publicada em: Software
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
430
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
18
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Palestra criando aplicações seguras com php (2)

  1. 1. Criando aplicações seguras com PHP Leandro Lugaresi TcheLinux - Bento Gonçalves - 08/11/14
  2. 2. Quem sou eu? → Graduado em Análise e desenvolvimento de sistemas pela Ftec Bento Gonçalves → Desenvolvedor com 3 anos de experiência em PHP/MySQL → Apaixonado por segurança e pelo mundo open source https://github.com/leandro-lugaresi http://www.leandrolugaresi.com.br/
  3. 3. Por onde começar? → Estude! ⤷ http://br.phptherightway.com/ ⤷ https://www.owasp.org ⤷ https://github.com/php/php-langspec/ ⤷ http://www.amazon.com/Essential-PHP-Security-Chris- Shiflett/dp/059600656X/ ⤷ http://www.amazon.com/Pro-PHP-Security-Application- Implementation/dp/1430233184/ ⤷ http://www.phpit.com.br/artigos/hangout-construindo-uma-aplicacao-php- a-prova-de-balas.phpit → Não confie no seu usuário → Utilize bibliotecas e frameworks (modernos) reconhecidos pelo mercado.
  4. 4. OWASP top 10 https://www.owasp.org/index.php/Main_Page http://owasptop10.googlecode.com/files/OWASP_Top_10_-_2013_Brazilian_Portuguese.
  5. 5. Códigos de terceiros O Composer foi sem dúvidas uma das melhores coisas que aconteceram para o PHP nos últimos anos. Ele tornou a obtenção de código de terceiros muito mais fácil, porém deve se ter alguns cuidados na sua utilização. → Utilize bibliotecas e complementos estáveis e que tenham uma comunidade em torno delas; → Identificar os componentes e suas versões que você está usando, incluindo todas as suas dependências; → Monitorar a segurança destes componentes. Ferramentas para auxiliar no trabalho: → https://security.sensiolabs.org/check → https://www.versioneye.com/
  6. 6. Trabalhando com Erros Funções: → error_reporting() - Nível de erro a ser reportado → display_errors() - Exibir ou não os erros na tela Aprenda a trabalhar com logs! Bibliotecas: → monolog/monolog → zendframework/zend-log
  7. 7. Sanitização Toda entrada deve ser filtrada e toda saída deve ser “escapada” Funções do php: → htmlspecialchars() → htmlentities() → escapeshellcmd() → escapeshellarg() → filter_input() → strip_tags() Bibliotecas: → HTMLPurifier → OWASP AntiSamy → Templates Engines (Twig, Smarty)
  8. 8. SQL Injection Definição: Injeção de instruções SQL dentro de uma consulta (query). Como evitar: → addslashes() → mysql_real_scape_string() → Prepared Statements → ORM* ORM librarys: → Doctrine 2 → RedBean → Propel
  9. 9. Passwords Opções inseguras: → Texto plano/ base64 → MD4, MD5 → SHA1, SHA256, SHA512 Problemas: → Foram feitos para serem velozes → GPUs modernas podem realizar 200M/s interações SHA512 - hashcat Opções seguras: → Bcrypt → PBKDF2 Observações: → Bcrypt cost >= 14 → PBKDF2 interations = 100000
  10. 10. Criptografia Não utilize: → DES → 3DES → ECB mode Opções seguras: → AES (rijndael-128) → rijndael-256 → blowfish Bibliotecas: → zendframework/zend-crypt → http://phpsec.owasp.org/ Importante! Não utilize rand() e mt_rand(), elas não são opções seguras. Utilize openssl_random_pseudo_bytes() ou mcrypt_create_iv() com o parâmetro MCRYPT_DEV_URANDOM.
  11. 11. Two Step Authentication Para o usuário ter a senha roubada é mais fácil do que você pensa! A verificação em duas etapas (2FA) pode ajudar a manter afastadas pessoas má intencionadas, mesmo que elas saibam a senha do seu usuário. Funcionamento: Adição de uma camada a mais de segurança. Após o login ser feito o servidor manda um código verificador através de SMS, e-mail, hardware token ou algum app instalado em seu smartphone. Problemas: A implementação de um sistema 2FA é geralmente custosa pois é necessário a contratação de uma empresa que preste este serviço.
  12. 12. Google Authenticator O Google Authenticator é um aplicativo para Android, IPhone e BlackBarry, ele é utilizado pelo Google nas verificações em duas etapas de seus serviços. O aplicativo acabou virando um serviço gratuito e pode ser utilizado por outros sistemas que queiram implementar o 2FA. Informações complementares: → https://www.google.com/landing/2step/index.html → https://code.google.com/p/google-authenticator/ → https://github.com/leandro-lugaresi/google-authenticator
  13. 13. Muito Obrigado :)

×