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
![Page 1: Auditoria segurança em linguagens de programação](https://reader030.fdocumentos.com/reader030/viewer/2022021506/587c241e1a28abb5068b6db3/html5/thumbnails/1.jpg)
Segurança em Linguagens de Programação
Auditoria e Segurança de Sistemas de Informação
![Page 2: Auditoria segurança em linguagens de programação](https://reader030.fdocumentos.com/reader030/viewer/2022021506/587c241e1a28abb5068b6db3/html5/thumbnails/2.jpg)
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
![Page 3: Auditoria segurança em linguagens de programação](https://reader030.fdocumentos.com/reader030/viewer/2022021506/587c241e1a28abb5068b6db3/html5/thumbnails/3.jpg)
Introdução
![Page 4: Auditoria segurança em linguagens de programação](https://reader030.fdocumentos.com/reader030/viewer/2022021506/587c241e1a28abb5068b6db3/html5/thumbnails/4.jpg)
Tratamento dos dados de entrada
![Page 5: Auditoria segurança em linguagens de programação](https://reader030.fdocumentos.com/reader030/viewer/2022021506/587c241e1a28abb5068b6db3/html5/thumbnails/5.jpg)
O que pode ocorrer de tão ruim se não tratar os dados de entrada?
![Page 6: Auditoria segurança em linguagens de programação](https://reader030.fdocumentos.com/reader030/viewer/2022021506/587c241e1a28abb5068b6db3/html5/thumbnails/6.jpg)
Como isso poderia ser solucionado?
![Page 7: Auditoria segurança em linguagens de programação](https://reader030.fdocumentos.com/reader030/viewer/2022021506/587c241e1a28abb5068b6db3/html5/thumbnails/7.jpg)
Expressões regulares!
![Page 8: Auditoria segurança em linguagens de programação](https://reader030.fdocumentos.com/reader030/viewer/2022021506/587c241e1a28abb5068b6db3/html5/thumbnails/8.jpg)
Prevenção de ataque SQL Injection
![Page 9: Auditoria segurança em linguagens de programação](https://reader030.fdocumentos.com/reader030/viewer/2022021506/587c241e1a28abb5068b6db3/html5/thumbnails/9.jpg)
Javaversões antigas
preparedStatement = connection.
prepareStatement("INSERT INTO Person
(name, email) VALUES ('" + person.
getName() + "', '" + person.getEmail() + "'");
preparedStatement.executeUpdate();
![Page 10: Auditoria segurança em linguagens de programação](https://reader030.fdocumentos.com/reader030/viewer/2022021506/587c241e1a28abb5068b6db3/html5/thumbnails/10.jpg)
Exemplo
![Page 11: Auditoria segurança em linguagens de programação](https://reader030.fdocumentos.com/reader030/viewer/2022021506/587c241e1a28abb5068b6db3/html5/thumbnails/11.jpg)
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
![Page 12: Auditoria segurança em linguagens de programação](https://reader030.fdocumentos.com/reader030/viewer/2022021506/587c241e1a28abb5068b6db3/html5/thumbnails/12.jpg)
Valor de parâmetro
username
select * from user where username='admin' OR '1'='1' and password=' '
![Page 13: Auditoria segurança em linguagens de programação](https://reader030.fdocumentos.com/reader030/viewer/2022021506/587c241e1a28abb5068b6db3/html5/thumbnails/13.jpg)
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();
![Page 14: Auditoria segurança em linguagens de programação](https://reader030.fdocumentos.com/reader030/viewer/2022021506/587c241e1a28abb5068b6db3/html5/thumbnails/14.jpg)
SecurityManager
![Page 15: Auditoria segurança em linguagens de programação](https://reader030.fdocumentos.com/reader030/viewer/2022021506/587c241e1a28abb5068b6db3/html5/thumbnails/15.jpg)
O que é SecurityManager é uma classe que permite criar uma politica de segurança para acesso as classes ou metodos.
![Page 16: Auditoria segurança em linguagens de programação](https://reader030.fdocumentos.com/reader030/viewer/2022021506/587c241e1a28abb5068b6db3/html5/thumbnails/16.jpg)
Onde é utilizada Refaction
![Page 17: Auditoria segurança em linguagens de programação](https://reader030.fdocumentos.com/reader030/viewer/2022021506/587c241e1a28abb5068b6db3/html5/thumbnails/17.jpg)
O que houve Brecha permite a partir de um exploid o sistema ou processo ter acesso total aos arquivos.
![Page 18: Auditoria segurança em linguagens de programação](https://reader030.fdocumentos.com/reader030/viewer/2022021506/587c241e1a28abb5068b6db3/html5/thumbnails/18.jpg)
Vulnerabilidades da linguagem C
![Page 19: Auditoria segurança em linguagens de programação](https://reader030.fdocumentos.com/reader030/viewer/2022021506/587c241e1a28abb5068b6db3/html5/thumbnails/19.jpg)
Funções inseguras Strcpy e Strcat
![Page 20: Auditoria segurança em linguagens de programação](https://reader030.fdocumentos.com/reader030/viewer/2022021506/587c241e1a28abb5068b6db3/html5/thumbnails/20.jpg)
Abertura para injeção de código malicioso!
![Page 21: Auditoria segurança em linguagens de programação](https://reader030.fdocumentos.com/reader030/viewer/2022021506/587c241e1a28abb5068b6db3/html5/thumbnails/21.jpg)
Exemplo
![Page 22: Auditoria segurança em linguagens de programação](https://reader030.fdocumentos.com/reader030/viewer/2022021506/587c241e1a28abb5068b6db3/html5/thumbnails/22.jpg)
Exemplo
![Page 23: Auditoria segurança em linguagens de programação](https://reader030.fdocumentos.com/reader030/viewer/2022021506/587c241e1a28abb5068b6db3/html5/thumbnails/23.jpg)
Vulnerabilidades da linguagem PHP
![Page 24: Auditoria segurança em linguagens de programação](https://reader030.fdocumentos.com/reader030/viewer/2022021506/587c241e1a28abb5068b6db3/html5/thumbnails/24.jpg)
Vulnerabilidade baseada na permissão da execução de código malicioso à nvel
servidor!
Execução Remota de
Código
![Page 25: Auditoria segurança em linguagens de programação](https://reader030.fdocumentos.com/reader030/viewer/2022021506/587c241e1a28abb5068b6db3/html5/thumbnails/25.jpg)
Diretiva Register_globals
● Diretiva do PHP que controla a disponi- bilidade de variáveis "globais" em um script PHP.
![Page 26: Auditoria segurança em linguagens de programação](https://reader030.fdocumentos.com/reader030/viewer/2022021506/587c241e1a28abb5068b6db3/html5/thumbnails/26.jpg)
Exemplo
![Page 27: Auditoria segurança em linguagens de programação](https://reader030.fdocumentos.com/reader030/viewer/2022021506/587c241e1a28abb5068b6db3/html5/thumbnails/27.jpg)
![Page 28: Auditoria segurança em linguagens de programação](https://reader030.fdocumentos.com/reader030/viewer/2022021506/587c241e1a28abb5068b6db3/html5/thumbnails/28.jpg)
Arquivos IncludeMétodo ao qual um usuario malicioso pode obter o conjunto de senhas ou até mesmo redirecionar o arquivo para outro endereço.
![Page 29: Auditoria segurança em linguagens de programação](https://reader030.fdocumentos.com/reader030/viewer/2022021506/587c241e1a28abb5068b6db3/html5/thumbnails/29.jpg)
![Page 30: Auditoria segurança em linguagens de programação](https://reader030.fdocumentos.com/reader030/viewer/2022021506/587c241e1a28abb5068b6db3/html5/thumbnails/30.jpg)
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.