desenvolvendo aplicações apex mais seguras anderson ... aplicacoes... · +110 desenvolvedores...

48
Desenvolvendo aplicações Apex mais seguras Anderson Rodrigues Ferreira

Upload: lekhuong

Post on 09-Feb-2019

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

Desenvolvendo aplicações Apex mais segurasAnderson Rodrigues Ferreira

Page 2: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

D&5&nv0lv&nd0 @pl1c@ç0&5 @p&x m@15 5&6ur@5

@nd&r50n R0dr1gu&5 F&rr&1r@

Page 3: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

Desenvolvendo aplicações Apex mais seguras

Anderson Rodrigues Ferreira

Page 4: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

Quem sou

–Engenheiro de computação

–Pós-graduação em Segurança da Informação

–MBA em Gestão de TI

–Gerente de desenvolvimento descentralizado

–Certificação Oracle Apex Expert

–Certificação Oracle Database SQL Expert

–Professional Scrum Master

Page 5: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

+110 desenvolvedores

+150 sistemas Apex

+400k pageviews/dia

Resumo dos números no TCU

Page 6: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

Curso Básico de Apex – TCU

https://contas.tcu.gov.br/ead/course/view.php?id=301(Pode acessar como Visitante!)

+1,4k visitantes ao curso

Page 7: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

Apex Gaming Competition 2015

• Vencedores

Page 8: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

Presidente do TCU

David Peake (Gerente do Apex da Oracle dos Estados Unidos)

Mais de 240 presentes de Mais de 70 instituições

Palestrantes dos 3 Poderesda República e de empresas

Apex Tour Latinoamérica 2015

Page 9: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

Apex Tour Latinoamérica 2016

Inscrições em breve!

Page 10: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

Aviso

• As opiniões aqui expressadas não são necessariamente as do TCU!

• Por favor, perguntas ao final da apresentação!

Page 11: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

Sumáriol Introduçãol URL Tamperingl SQL injectionl Cross-site scriptingl Conclusão

Page 12: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

Sumáriol Introduçãol URL Tamperingl SQL injectionl Cross-site scriptingl Conclusão

Page 13: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

l Principais livros

Introdução

Page 14: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

Apex é seguro?

Oracle testa rigorosamente. Amplamente utilizado internamente pela Oracle.

Oracle Database Cloud Schema Service https://cloud.oracle.com/database Oracle Store https://shop.oracle.com/pls/ostore/f?p=dstore:home:0 Oracle Learning Library https://apexapps.oracle.com/pls/apex/f?p=44785:1

Diversas agências militares utilizam. Desenvolvedores deixam aplicações inseguras.

Page 15: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

http://joelkallman.blogspot.com.br/2016/01/is-oracle-application-express-secure.html

Introdução

Page 16: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

Introdução

Principais softwares de segurança Apex

https://apexsec.recx.co.uk/ http://www.sumnertech.com/apex-sert.html

Page 17: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

Vulnerabilidades

Apex sofre das mesmas vulnerabilidades de outras tecnologias web!

Page 18: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

Sumáriol Introduçãol Access controll SQL injectionl Cross-site scriptingl Conclusão

Page 19: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

Não tente fazer isso em casa!

Page 20: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

URL Tampering

Acessar indevidamente pela URL páginas antigas ou sem autorização

Page 21: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

URL Tampering

Para corrigir: ajuste a autorização da página ou deixe a página sem acesso URL

Page 22: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

Desconto em compras!

Nova chamada de URL gera comportamentos inesperados

Page 23: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

URL Tampering

Acesso a pedidos indevidos

Page 24: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

URL Tampering

Para resolver: ative “Proteção de estado de sessão” na aplicação, página e item

Page 25: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

É possível modificar o html pelo Browser Development Tool!

Page 26: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

Delete process row executa!

O submit do botão foi alterado para DELETE

Page 27: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

Sumáriol Introduçãol Access controll SQL injectionl Cross-site scriptingl Conclusão

Page 28: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

SQL injection

Foco: Servidor de banco de dados

Comando SQL malicioso executado no banco de dados da aplicação

Page 29: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

SQL injection

Campo de pesquisa vulnerável Acesso indevido (1 OR 1=1) Consulta outras informações (UNION)

Page 30: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

SQL injection

SELECT * FROM pedido WHERE COD = &PX_COD_PEDIDO.

1 OR 1=1

1 UNION SELECT cod, login, null, null, senha FROM usuario

Page 31: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

● Ver todos os pedidos

– 0 OR 1=1

● Obter o owner

– 0 UNION SELECT 1, ''&OWNER.'', null, null, null FROM dual

● Obter os nomes das tabelas

– 0 UNION select null, table_name, null, null, null from all_tables where owner = ''OTNTOUR16''

● Obter a descrição da tabela

– 0 UNION select null, column_name, null, null, data_type from all_tab_columns where owner = ''OTNTOUR16'' and table_name = ''USUARIO''

● Obter o login e senha de todos os usuários

– 0 UNION select null, login, null, null, senha from usuario

SQL injection

Page 32: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

Evite string de substituição/concatenação Use bind variable ou v function

Cuidado com SQL dinâmicos! Execute sempre validação no lado do servidor

Não confie em javascripts

Como evitar SQL injection?

Page 33: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

Como evitar SQL injection?

Utilize tamanho e tipo de campos adequados

Evite dados sensíveis em claro no banco

Limite privilégios de acesso

Page 34: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

Sumáriol Introduçãol Access controll SQL injectionl Cross-site scriptingl Conclusão

Page 35: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

Cross-site scripting

Foco: Outros usuários

Script (javascript) malicioso injetado na aplicação

XSS

Page 36: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

Cross-site scripting

Pode roubar dados e até mesmo a sessão

Page 37: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

Cross-site scripting

Código javascript em entrada do usuário

Page 38: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

Cross-site scripting

Script executado no browser

Page 39: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

Cross-site scripting

Usuário pode ser direcionado para página de login falsa

Senha enviada por e-mail!

Page 40: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

Cross-site scripting

Para resolver: dados fornecidos pelo usuário devem ser escapados htf.escape_sc

Apex 5 ● API APEX_ESCAPE● Sufixo de string de substituição

#USER_INPUT!HTML# #USER_INPUT!ATTR# #USER_INPUT!JS#

Page 41: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

Cross-site scripting

api.oracleapex.com

Page 42: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

Sumáriol Introduçãol Access controll SQL injectionl Cross-site scriptingl Conclusão

Page 43: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

Conclusão

Page 44: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

Autenticação

Autorização

Proteção de estado de sessão

Conclusão

Apex possui diversos dispositivos de segurança!

Page 45: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

Vulnerabilidades

Apex sofre das mesmas vulnerabilidades de outras tecnologias web!

Page 46: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

Conclusão

Apex é seguro! Pessoas deixam as aplicações inseguras!

Page 48: Desenvolvendo aplicações Apex mais seguras Anderson ... aplicacoes... · +110 desenvolvedores +150 sistemas Apex +400k pageviews/dia Resumo dos números no TCU

Anderson Rodrigues FerreiraTribunal de Contas da União

[email protected]: http://desenvolvedorapex.blogspot.com.br

Twitter: @andersonrf81

Desenvolvendo aplicações Apex mais seguras

Muito obrigado!