Auditoria segurança em linguagens de programação
-
Upload
laercio-mesquita -
Category
Technology
-
view
138 -
download
6
Transcript of Auditoria segurança em linguagens de programação
Segurança em Linguagens de Programação
Auditoria e Segurança de Sistemas de Informação
Programação
Introdução
Tratamento dos dados de entrada
Prevenção de ataque SQL Injection com Java
Vulnerabilidades da linguagem C
Vulnerabilidades da linguagem PHP
Referências
Introdução
Tratamento dos dados de entrada
O que pode ocorrer de tão ruim se não tratar os dados de entrada?
Como isso poderia ser solucionado?
Expressões regulares!
Prevenção de ataque SQL Injection
Javaversões antigas
preparedStatement = connection.
prepareStatement("INSERT INTO Person
(name, email) VALUES ('" + person.
getName() + "', '" + person.getEmail() + "'");
preparedStatement.executeUpdate();
Exemplo
conn = pool.getConnection( );String sql = "select * from user where username='" + username +"' and password='" + password + "'";stmt = conn.createStatement();rs = stmt.executeQuery(sql);if (rs.next()) {loggedIn = true;
out.println("Successfully logged in");} else {
out.println("Username and/or password not recognized");}
Abertura para ataque
Valor de parâmetro
username
select * from user where username='admin' OR '1'='1' and password=' '
PrepareStatement implementação segura
preparedStatement = connection.prepareStatement("INSERT INTO Person (name, email, birthdate, photo) VALUES (?, ?, ?, ?)");preparedStatement.setString(1,person.getName());preparedStatement.setString(2, person.getEmail());preparedStatement.setTimestamp(3, new Timestamp(person.getBirthdate().getTime()));preparedStatement.setBinaryStream(4, person.getPhoto());preparedStatement.executeUpdate();
SecurityManager
O que é SecurityManager é uma classe que permite criar uma politica de segurança para acesso as classes ou metodos.
Onde é utilizada Refaction
O que houve Brecha permite a partir de um exploid o sistema ou processo ter acesso total aos arquivos.
Vulnerabilidades da linguagem C
Funções inseguras Strcpy e Strcat
Abertura para injeção de código malicioso!
Exemplo
Exemplo
Vulnerabilidades da linguagem PHP
Vulnerabilidade baseada na permissão da execução de código malicioso à nvel
servidor!
Execução Remota de
Código
Diretiva Register_globals
● Diretiva do PHP que controla a disponi- bilidade de variáveis "globais" em um script PHP.
Exemplo
Arquivos IncludeMétodo ao qual um usuario malicioso pode obter o conjunto de senhas ou até mesmo redirecionar o arquivo para outro endereço.
Referências
LEVANDOSKI, Fausto. Análise de vulnerabilidades de um código escrito em C.
Universidade do Vale do Rios dos Sinos (UNISINOS), 2011.
WIKIPÉDIA. Expressão Regular. Disponível em: <https://pt.wikipedia.
org/wiki/Expressão_regular> Acesso em 24/01/2016
MERCES, Fernando. Especificações da linguagem C. Disponível em:
<http://www.mentebinaria.com.br/artigos/0x1c/0x1c-cspecs.html#1> Acesso em
24/01/2016
PAUL,Mano. Código (In)seguro. Disponível em:< http://www.las.ic.unicamp.
br/paulo/cursos/segc/mat.extra/isc-codigo.seguro.pdf>
http://insights.sei.cmu.edu/cert/2013/01/anatomy-of-java-exploits.html
VIEIRA, Diego. Principais Falhas de Segurança em PHP . Disponível em: <http:
//phpbrasil.com/artigo/cA6agoMO2lP/2/principais-falhas-de-seguranca-em-php>
Acesso em 24/01/2016.