com direitos de administração, com um nome comum). Esta é a principal diferença para um trojan, que geralmente é um arquivo executável. Buffer Overflow Buffer overflows são conseqüência direta de péssimos hábitos de programação. Consiste em enviar para um programa que espera por uma entrada de dados qualquer, informações inconsistentes ou que não estão de acordo com o padrão de entrada de dados. De forma resumida, seria mais ou menos tentar encaixar uma bola de basquete em um buraco de golf. Em programas que não tratam a consistência dos dados de entrada, pode haver uma desestruturação do código em execução, permitindo que código estranho seja enviado e executado. Imagine um buffer de entrada de dados configurado para receber 32 bytes. Imagine agora que este mesmo buffer não possui uma checagem da consistência dos dados. Agora, tente enviar mais do que 32 bytes. Isso normalmente estourará o buffer (buffer overflow), e normalmente, o que passar de 32 bytes, invadirá outras áreas de memória do sistema. Dependendo de que áreas sejam estas, é possível fazer com que esta “carga extra” também seja executada. É exatamente aí onde mora o perigo. As formas mais comuns de buffer overflow são encontradas em servidores web e de FTP. Ao se submeter uma URL muito grande (geralmente acima de 150 caracteres) o servidor para de responder. Vários softwares servidores Web e FTP famosos já foram vítimas de tais vulnerabilidades, como o Apache Web Romulo Moacyr Cholewa – http://www.rmc.eti.br, agosto de 2001. Vide “Distribuição / Cópia” neste material para maiores detalhes. Romulo Moacyr Cholewa – http://www.rmc.eti.br, agosto de 2001. Vide “Distribuição / Cópia” neste material para maiores detalhes. Server, o Internet Information Server, o Serv-U FTP Server, War FTP d, entre outros. No ambiente UNIX, existem ou existiram diversas vulnerabilidades deste tipo nos servidores de SMTP (envio de correio) e POP3 (recebimento de correio). A critério de exemplo, uma pesquisa sobre “buffer overflow” em um site de segurança como o http://www.securiteam.com retorna em média 1300 páginas, APENAS relativas à segurança. Password Crackers Os password crackers são em sua grande maioria programas de ataque de força bruta, que tentarão, dada uma combinação possível, cada combinação até descobrir qual é a senha. Os algoritmos de criptografia empregados geralmente são conhecidos publicamente. Sua segurança reside em sua chave. Contudo, esta chave é secreta. Asim sendo, o password cracker aplicará o algoritmo em cada combinação possível de letras até achar aquela que seja igual a senha criptografada original. Geralmente os password crackers são lentos, e sua eficiência depende inteiramente da qualidade das senhas. Senhas dífícieis para um passowrd cracker são aquelas que possuem letras, números, e caracteres de pontuação, como “! @#$%&*()[]{}-_=+<,>.?/”. Contudo, a melhor senha sempre será aquela sem sentido, randômica, e que use tais caracteres. Um típico password cracker levará algo em torno de 2 a 3 anos de trabalho para quebrar uma senha de 7 caracteres, com estas características. Para cada novo caractere adicionado ao tamanho da senha, a dificuldade e o tempo sobem em ordem exponencial. Uma senha com 14 caracteres com tais características levaria milhares de anos. Com isso, chegamos a conclusão de que a senha ideal hoje possui pelo menos 12 a 14 caracteres, e as características descritas acima. Além dos password crackers típicos, que usam a força bruta, existem aqueles que se baseiam em vulnerabilidades dos algoritmos de criptografia empregados. Estes não atacam por força bruta, mas revertendo o processo de criptografia, geralmente baseado em algoritmo, ou quanto se tem o conhecimento das chaves. Alguns dos password crackers mais famosos: L0pht Heavy Industries / @Stake“L0phtCrack” ou LC3 (Windows NT/2000) http://www.atstake.com/research/lc3/index.html Crack 4.1 / 5.0 (UNIX) http://www.crypto.dircon.co.uk/download/c50-faq.html http://www.deter.com/unix/software/crack_4.1.tar.gz Winzip / RAR / ARJ Password Crackers http://www.password-crackers.com/crack.html NAT (NetBIOS Auditing Tool) http://bbs.ee.ntu.edu.tw/boards/Security/6/16.html http://nmrc.org/faqs/hackfaq/hackfaq-14.html#ss14.6 http://www.fastlane.net/~thegnome/files/snt/index.html Diversos http://www.lostpassword.com/ Romulo Moacyr Cholewa – http://www.rmc.eti.br, agosto de 2001. Vide “Distribuição / Cópia” neste material para maiores detalhes. Romulo Moacyr Cholewa – http://www.rmc.eti.br, agosto de 2001. Vide “Distribuição / Cópia” neste material para maiores detalhes. Para acelerar o processo de quebra / descoberta das senhas, a maioria dos password crackers podem ser alimentados com um dicionário de palavras construído pelo usuário. Assim, você pode alimentar o dicionário com palavras mais objetivas, aumentando a possibilidade de acerto. Exploits Exploits são pequenos scripts ou programas que exploram uma vulnerabilidade de segurança. Seria mais ou menos como encontrar um furo numa cortina, enfiar os dois dedos, e arrebentar o furo. Geralmente são códigos locais (precisam ser executados no computador que se deseja comprometer), apesar de existirem exploits remotos (via rede). O nome “exploit” também é atribuido as vulnerabilidades descobertas em softwares (sistemas operacionais, servidores, programas em geral). Existem diversos sites de segurança que falam sobre exploits mais recentes. Os mais famosos são: RootShell http://www.rootshell.com Internet Security Systems Xforce http://xforce.iss.net SecuriTeam http://www.securiteam.com CIAC (Computer Incident Advisory Capability) http://ciac.llnl.gov/ CERT (Computer Emergency Response Team) http://www.cert.org Man-in-the-Middle Os ataques do tipo man-in-the-middle são usados em sistemas de segurança baseados em token. Consiste em interceptar o tráfego entre dois computadores, e, para ambos, continuar parecendo que a comunicação é direta. Contudo, a entidade que intercepta o tráfego também o altera, de forma que a requisição de rede pareça original e autêntica. São ataques bastante difíceis de ocorrer, pois geralmente requerem grande conhecimento de programação e da rede que se deseja comprometer. Normalmente, ataques MITM (Man-in-the-Middle) requerem que um dos pontos de conexão já tenha sido comprometido (como o provedor a qual você está conectado, ou o fornecedor da rede onde se encontra o servidor que se deseja acessar). A maioria dos ataques MITM é usada contra sistemas criptográficos. Para maiores informações: How to brake RSA http://gaia.cs.umass.edu/cs653-1998/notes/ch9-1/sld001.htm Romulo Moacyr Cholewa – http://www.rmc.eti.br, agosto de 2001. Vide “Distribuição / Cópia” neste material para maiores detalhes. Romulo Moacyr Cholewa – http://www.rmc.eti.br, agosto de 2001. Vide “Distribuição / Cópia” neste material para maiores detalhes. 6. Outros Tipos de Ataques Existem outros tipos de ataque que, se não permitem uma quebra de segurança direta, como o comprometimento das informações armazenadas em um servidor, ajudam nos ataques de invasão, muitas vezes até tornando-os possíveis. DoS (Denial of Service) Como o próprio nome sugere, ataques deste tipo geralmente não compromentem a privacidade dos dados. A finalidade de um ataque DoS é tirar um serviço, servidor, computador ou até mesmo uma rede do ar. Os ataques do tipo DoS são usados muitas vezes em conjunto com invasões, ou porque alguns tipos de invasões exigem que determinados computadores não estejam funcionando (como no caso do spoofing) ou para despistar / desviar a atenção da invasão em si. Ataques DoS também são usados simplesmente para “atrapalhar” ou desacreditar