Caríssimos leitores, este artigo fala um pouco sobre quais as vulnerabilidades mais comuns no software e é feita também uma breve análise de quais os ataques mais diferidos no mundo da internet.
Um dos dos maiores conceitos por de trás da segurança de qualquer software é o de vulnerabilidade. Nos dias que correm, a maior parte das empresas produtoras de software preocupam-se em demasia com a sua produção e desenvolvimento em massa, e a curto prazo, para que tenham um retorno quase imediato. Por norma, quando isto acontece, a componente de SI (Segurança Informática) do software é esquecida, e não admira que num futuro próximo, se deparem com problemas a níveis de segurança, devido às falhas (vulnerabilidades / bugs) cometidos.
“Segurança não é um produto que se pode comprar da prateleira, mas que consiste de políticas, pessoas, processos e tecnologia“ (Kevin Mitinik).
Uma vulnerabilidade é um defeito do sistema (software), que pode por em causa o seu bom funcionamento. Esta poderá ser explorada por um atacante, com o intuito de alterar as políticas de segurança do mesmo.
Comummente as vulnerabilidade podem ser classificadas em três tipo:
1. Vulnerabilidade de projecto: – Uma vulnerabilidade oriunda da projecção do sistema, como por exemplo, o mecanismo de autenticação (login) do sistema ser fraco.
2. Vulnerabilidade de codificação: – Uma vulnerabilidade cometida durante o desenvolvimento do código, o chamado bug. Um exemplo e tradicional bug, é a falta de verificação de limites de escrita num buffer. Consequentemente, esta falha levará a possíveis ataques intitulados de buffer overflow.
3. Vulnerabilidade operacional: – É um vulnerabilidade causada pelo sistema onde o software “habita”. Por exemplo, a falta de password no sistema operativo onde o software está instalado.
No mundo da segurança, um ataque é uma acção maliciosa que visa activar uma ou mais vulnerabilidades. Estes ataques têm como objectivo usar as vulnerabilidades do sistema por forma a criar uma intrusão.
É sabido que o ser humano erra, portanto uma das estimativas geralmente aceite para bugs e vulnerabilidades num software é a seguinte:
-“Qualquer pacote de software tem entre 5 a 50 bugs por cada 1000 linhas de código-fonte.“
Quando uma vulnerabilidade vem à baila, imediatamente a empresa produtora desse software, cria e aloca recursos para o desenvolvimento de um patch de correcção do sistema. No entanto, para que este patch seja desenvolvido, já uma análise ao sistema foi consumada por uma equipa de curiosos na área de segurança (atacantes / hackers). Tanto as empresas de software como os atacantes, juntam aos mãos e caminham de igual forma na descoberta / remendos de vulnerabilidades do software, vantagem esta para os atacantes, visto que, para que uma vulnerabilidade seja descoberta e o devido patch fixado, é necessária uma análise com real detalhe ao sistema.
Quando uma equipa de atacantes descobre uma ou mais vulnerabilidade num sistema essas chamam-se vulnerabilidades dia zero (zero day). Consequentemente os ataques diferidos são também apelidados de ataque dia zero, (zero day attack).
Uma explicação simplista para as definições acima, é o máximo aproveitamento da vulnerabilidade descoberta no sistema. Se um atacante descobre no imediato momento uma vulnerabilidade no sistema operativo (e.g. Android), quer tirar o maior partido dela, visto que uma possível correcção (patch) poderá ser fixado.
Ataques na Internet
Os ataques podem ser classificados de diferentes formas. No dia-a-dia, tem-se falado imenso dos ataques na internet.
Os motivos que levam os atacantes a disferir ataques na internet são bastante diversos, variando da simples diversão até a realização de acções criminosas. Alguns exemplos são:
Demonstração de poder: mostrar a uma empresa que ela pode ser invadida .
Prestígio: vangloriar-se, perante outros atacantes, por ter conseguido invadir computadores.
Motivações financeiras: colectar e utilizar informações confidenciais de utilizadores para aplicar ataques (Phishing (ver no blog.).
Motivações ideológicas: tornar inacessível ou invadir sites que divulguem conteúdo contrário à opinião do atacante.
Motivações comerciais: tornar inacessível ou invadir sites e computadores de empresas concorrentes.
Para alcançar estes objectivos, os ataques na internet sofrem na sua maioria de algumas técnicas, nomeadamente:
1. Exploração de vulnerabilidades – Fazer uso de exploits para intrusão no sistema, como explicado no capítulo anterior.)
2. Varrimento de redes (Scan) – Varrimento de redes (scan), é uma técnica que consiste em efectuar pesquisas minuciosas em redes, com o objectivo de identificar computadores activos e colectar informações sobre eles como, por exemplo, serviços disponibilizados e programas instalados, versões do sistema operativo, quais as portas abertas no sistema, etc.
Este varrimento em redes pode ser usado de duas formas possíveis:
– Legítima: por pessoas devidamente autorizadas. (e.g. Administradores de rede.)
–Maliciosa: por atacantes / piratas informáticos / hackers.
3. Falsificação de e-mail (E-mail spoofing) – Esta técnica é usada quando se pretende alterar o cabeçalho de um e-mail, de forma a aparentar que foi enviado por outra entidade. Ataques deste tipo são bastante usados para propagação de códigos maliciosos, envio de spams e em ataques de phishing.
Ver no blog: Análise de Phishing – Paypal
4. Sniffing – É uma técnica que consiste em inspeccionar o tráfego numa rede de computadores, por meio do uso de programas específicos chamados de sniffers. Mais uma vez e como no varrimento de redes, este pode ser efectuado de duas formas possíveis, legítima e maliciosa.
5. Força bruta (Brute force) – Um ataque de força bruta, ou brute force, consiste em adivinhar, por tentativa e erro, dados de inicio de sessão, por exemplo, logins em páginas administrativas. Sendo este um método pouco ortodoxo, hoje em em dia um atacante define à priori quais as possíveis password teste. A este tipo de ataques chama-se: Ataque Dicionário.
6. Desfiguração de página (Defacement) – É uma técnica que consiste em alterar o conteúdo de uma página de um site. Existem diversas técnicas, como SQLi (SQL Injection) até XSS (Cross-site scripting).
7. Negação de serviço (DoS e DDoS) – Negação de serviço, ou DoS (Denial of Service), é uma técnica pela qual um atacante utiliza um computador para “derrubar” um serviço, um computador ou uma rede ligada à internet. Quando utilizado de forma coordenada e distribuída, ou seja, quando um conjunto de computadores é utilizado no ataque, recebe o nome de negação de serviço distribuído, ou DDoS (Distributed Denial of Service). Este último, normalmente, é organizada em torno de uma botnet.
Espero que tenham ficado minimamente esclarecidos sobre o tema das vulnerabilidades no software e quais os ataques mais usados na internet.
Alguma dúvida, comente.
Boa Continuação!
————–
O porquê de tutoriais em português?
Na sua maior parte, a internet está cansada de partilhar tutoriais em inglês.
—————–
Artigos relacionados:
Na sua maior parte, a internet está cansada de partilhar tutoriais em inglês.
—————–
Artigos relacionados: