Exploits são pequenos programas ou códigos que exploram vulnerabilidades específicas para comprometer sistemas. Eles se aproveitam de erros de implementação que permitem comportamentos inesperados, como buffer overflows que executam códigos maliciosos. Exploits podem ser usados em ataques de negação de serviço ou para roubar informações através de técnicas como spoofing de IP.
2. "É um termo genérico para descrever pequenos utilitários ou
exemplos de código que podem ser usados para explorar
vulnerabilidades específicas. Eles podem ser tanto usados
de forma "stand alone", ou seja, serem usados diretamente,
quanto serem incorporados em vírus, cavalos de tróia,
ferramentas de detecção de vulnerabilidades e outros tipos
de programas."
3. Como funcionam os Exploits
Os exploits tiram proveito de erros de implementação dos
sistemas, que muitas vezes ao receber entradas devidamente
formatadas, ou apresentarem informações que deveriam estar
ocultas, possibilitam a usuários mal intencionados obter
comportamentos inesperados do sistema.
Seu funcionamento consiste portanto no aproveitamento
destas anomalias pelos usuários mal intencionados.
4. Exemplos de Exploits
Sasser
● Um dos primeiros vírus para PC.
● Não era necessário o usuário abrir um arquivo para ser infectado.
● Contaminação por Exploits
○ Porta de rede do PC era explorada.
○ Uma série de comandos era enviado ao PC.
○ Este código instalava o vírus no computador.
● Utiliza a porta do RPC do windows para invadir o PC.
Ping da morte
● Bug presente em versões mais antigas do Solaris (SUN)
○ Era enviado um datagrama informando um tamanho maior que o real
da informação. Nesta circunstância, o servidor ficava em modo de
espera, o que ocasionava sua queda por DOS.
5. Tipos de Exploits
● Spoofing do IP
● Chaves Compartilhadas
● Vulnerabilidades do Serviço
● Vulnerabilidade de Aplicação
● Ataques de negação de Serviço
● Buffer Overflow
6. Spoofing do IP
● Alteração do endereço IP para parecer como outra máquina
● Uma máquina remota age como um módulo em sua rede
local, encontra vulnerabilidades em seus servidores e
instala um programa backdoor ou trojan horse para obter
controle sobre seus recursos de rede.
7. Chaves Compartilhadas Default
● Serviços seguros às vezes empacotam chaves de
segurança default para desenvolvimento ou para testes de
avaliação. Se estas chaves permanacerem inalteradas e
estiverem localizadas em um ambiente de produção na
Internet, qualquer usuário com as mesmas chaves default
tem acesso a este recurso de chave compartilhada e a
quaisquer informações importantes contidas neste.
8. Vulnerabilidades do Serviço
● Um hacker encontra um defeito em um serviço executado
pela Internet através desta vulnerabilidade. O hacker
compromete o sistema inteiro e quaisquer dados que este
possa conter; e também é possível que comprometa outros
sistemas da rede.
9. Vulnerabilidades da Aplicação
● Hackers encontram falhas em aplicações de computadores
pessoais e estações de trabalho (como clientes de e-mail) e
executam código arbitrário, implantando trojans para
comprometer ou danificar os sistemas futuramente. Exploits
podem ocorrer no futuro se a estação de trabalho
comprometida tiver privilégios administrativos sobre o resto
da rede.
10. Ataques de negação de serviço
(Denial of Service (DoS))
● Um grupo de pessoas coordena um ataque a recursos de
rede ou de servidor de uma empresa enviando pacotes não
autorizados para a máquina alvo (um servidor, um roteador
ou uma estação de trabalho). Isto força o recurso a ficar
indisponível aos usuários legítimos.
11. Espionagem do tráfego de rede
● Coleta de dados que trafegam entre dois computadores
ativos em uma rede através do eavesdropping na conexão
entre estes dois módulos.
Eavesdropping (computadores) é uma técnica de hacking que se baseia na violação da
confidencialidade.
12. Buffer Overflow
Os exploits quase sempre se aproveitam de uma falha
chamada de buffer overflow (estouro de buffer). O estouro
acontece quando o programa tenta alocar uma área na
memória maior do que ele teria direito naquele momento,
gerando assim uma falha no sistema.
Essa situação possibilita que um código malicioso seja
executado nesse momento, podendo roubar e/ou apagar
informações do sistema computacional.
13. Um exemplo de exploit
void ProcessaParm(char *arg);
void main(int argc, char *argv[]){
if (argc > 1){
printf(”Param: %sn”,argv[1]);
ProcessaParm(argv[1]);
}
}
void ProcessaParm(char *arg){
char buffer[10];
strcpy(buffer,arg);
printf(buffer);
}
PROBLEMA: se a string contida em arg tiver mais que 10 carateres
haverá um “buffer overflow”.
15. No Open Source
No mundo open source, quando é descoberta uma falha,
rapidamente a comunidade resolve a mesma, e provavelmente
libera uma correção para o problema. Um exemplo, é o CMS
escrito em PHP, WordPress, que a última falha de segurança
descoberta no mesmo, não demorou 24 horas para que uma
versão de correção fosse liberada.
16. No mundo do Software Pago
Geralmente, quando estamos no mundo do Software Pago, em
alguns casos, as atualizações podem demorar mais a serem
lançadas, por ter um processo de desenvolvimento mais
burocrático e demorado.
17. Curiosidade Histórica
O primeiro "produto" Apple foi na
realidade um exploit
Blue box: aparelho criado por John T.
Draper (Capt. Crunch) para burlar
companhias telefônicas obtendo ligações
telefônicas nacionais e internacionais
gratuitas
18. Conclusão
Com a evolução das tecnologias, os chamados hackers, ou
crackers, muitas vezes estão a frente, no quesito segurança,
portanto é sempre importante manter os sistemas atualizados,
para que as vulnerabilidades conhecidas não tenham efeito em
seus sistemas.