Bem-vindo caro leitor, ávido por conhecimento… Como havia informado no artigo anterior (Introdução), este é o segundo artigo da série “A estrada para as ameaças?”.
Pegue sua xícara de café, acomode-se de forma confortável e vamos a mais um artigo da série “The (al)Most Comprehensive History” – uma pesquisa contextualizando eventos anteriores à ameaça digital.
O Alvorecer
Apenas para recordar: me propus a ir além das análises convencionais e tentarei trazer uma perspectiva diferente. Este é um estudo de caso do WannaCry, não uma análise do próprio.
“O Alvorecer” é o artigo (capítulo, se preferir) onde teorias, conceitos e ecossistemas são criados, favorecendo-se “O Alvorecer” dos worms.
Analisando-se, é possível perceber uma cadeia de eventos que possibilitaram o aparecimento de determinadas ameaças digitais. Desta forma, iniciaremos nossa linha do tempo, onde apresento uma pesquisa, que vai além das análises convencionais, contextualizando eventos anteriores à ameaça digital, os quais culminaram com o aparecimento do WannaCry, em Maio de 2017.
1972
Em nossa linha do tempo, nos encontramos no alvorecer do que seria conhecido mundialmente como Internet – vejam que neste período o termo Internet ainda não havia sido cunhado…
O sistema que se tornou a base da expansão da Internet (Unix) ainda era um sistema jovem, criado por Ken Thompson e Dennis Ritchie, ambos do AT&T Bell Laboratories (Bell Labs), em 1969, portanto o UNIX tinha apenas 3 anos de idade.
Em Junho de 1972 é lançada a segunda versão (Version 2) do UNIX, introduzindo novas chamadas de sistema (system calls), novos comandos e a linguagem C, desenvolvida por Brian Kernighan and Dennis Ritchie, ambos da Bell Labs – neste ano iniciou-se o desenvolvimento do UNIX nesta nova linguagem, proporcionando um avanço no desenvolvimento do sistema operacional.
CURIOSIDADE – Vocês sabem a diferença de UNIX (todas as letras maiúsculas) e Unix (somente a letra U maiúscula)? UNIX (todas as letras maiúsculas) é marca registrada da Bell Labs, enquanto Unix (somente a letra U maiúscula) serve para descrever um sistema operacional baseado no UNIX.
Neste mesmo ano, em Outubro, James P. Anderson descreve no trabalho “Computer Security Technology Planning Study”, para a U.S. Air Force, os requerimentos para segurança de computadores, descrevendo uma série de ataques possíveis. Entre estes ataques está descrito um ataque chamado de “Incomplete Parameter Checking”, o que hoje conhecemos como vulnerabilidade do tipo buffer-overflow, e um dos principais vetores de ataque utilizado pelos worms – desde o Morris Worm até o atual WannaCry.
Anderson descreve: “The attack was developed along the following lines. First an instruction transferring control to a predetermined point in the users program was loaded into a register. Next, a system call was made that caused the register(s) to be stored (saved by the system) in system space. […] All parameters checks passed, and control was returned to the user in supervisory state giving him control of the system.”
1975
Então, em Março de 1975, John Brunner cunha o termo tapeworm com o lançamento de seu livro “The Shockwave Riders”, dando origem para o que hoje conhecemos como worms.
CURIOSIDADE – Este também é o ano que é lançada a versão 6 (Version 6) do UNIX, sendo o primeiro a ser amplamente disponível fora do Bell Labs – a primeira versão do BSD foi derivada desta versão.
1977
Outubro de 1977, este é o mês em que a Digital Equipment Corporation (DEC) lança o Virtual Address eXtension (VAX), que veio para substituir os antigos PDP-11, elevando os endereços de 16-bit para 32-bit.
1979
Em 11 de Novembro de 1979, Robert T. Morris e Ken Thompson, ambos do Bell Labs, apresentam o trabalho “Password security: A Case History” na Communications of the ACM (Vol. 22, Issue 11, Pages 594-597), reportando os problemas na criação de senhas pelos usuários de UNIX.
Morris e Thompson descrevem: “Human beings being what they are, there is a strong tendency for people to choose relatively short and simple passwords that they can remember.”
1980
Em 1 de Maio de 1980, John F. Shoch e Jon A. Hupp, ambos do Xerox Palo Alto Research Center (PARC), descrevem, no IEN 159, o primeiro trabalho reportando experiências com programas que se autorreplicam pelas máquinas conectadas em rede para utilizar o tempo ocioso.
CURIOSIDADE – Vocês sabiam que a Microsoft também lançou sua própria versão de Unix? Em 1980, a AT&T Corporation licenciou uma versão do UNIX para a Microsoft Corporation, ficando conhecida esta versão como Xenix, sendo descontinuada após o lançamento de 1989… Mais tarde, a Santa Cruz Operation (SCO) adquiriu os direitos.
1982
Finalmente em 3 de Março de 1982, John F. Shoch e Jon A. Hupp, ambos do PARC, apresentam o trabalho “The “Worm” Programs – Early Experience with a Distributed Computation” na Communications of the ACM (Vol. 25, Issue 3, Pages 172-180).
Shoch e Hupp descrevem: “The worm programs were an experiment in the development of distributed computations: programs that span machine boundaries and also replicate themselves in idle machines.”
1983
Em Agosto de 1983, o Computer Systems Research Group (CSRG) da University of California (Berkeley) lança a versão 4.2 do BSD, conhecida como 4.2BSD, um sistema operacional Unix, que, entre outras coisas, foi adotado como base para alguns sistemas proprietários derivados (exemplo: ULTRIX da DEC e SunOS da SUN) e deu origem a diversos projetos open-source (FreeBSD, OpenBSD, NetBSD, Darwin e TrueOS).
Esta foi a versão que introduziu os códigos para redes TCP/IP, sendo amplamente utilizados por diversos sistemas operacionais modernos (exemplo: Windows, macOS, iOS, etc.). Até então, o Unix tinha um dos piores suporte às redes. Os primeiros experimentos com Ethernet não foram satisfatórios. Uma instalação feia, mas útil, chamada UUCP (Unix to Unix Copy Program), foi desenvolvida no Bell Labs para distribuir software em linhas telefônicas convencionais via modem.
CURIOSIDADE – Vocês se recordam do ataque LAND, quais os sistemas operacionais afetados e a razão? LAND é um ataque de Denial-of-Service, descoberto em 1997, onde, através de um pacote de rede, permite que as máquinas entrem em um LOOP infinito.
- Sistemas afetados: AIX, AmigaOS, BeOS, BSDi, DG/UX, Digital VMS, FreeBSD, HP-UX, IBM AS/400 OS7400, IRIX, macOS, MVS OS390, NetApp, NetBSD, NeXTSTEP, Novell, OpenBSD, OpenVMS, QNX, Rhapsody, SCO Unix, SunOS e Windows.
- Alguns equipamentos afetados: 3Com e Cisco.
- Todos compartilhavam códigos para redes TCP/IP, derivados do BSD.
O 4.2BSD também introduziu o pacote rlogin, que incluía os programas rsh e rcp, entre outros.
1985
Em 25 de Fevereiro de 1985, Robert T. Morris, do Bell Labs, apresentam o trabalho “A Weakness in the 4.2BSD Unix TCP/IP Software”, onde descreve falhas de confiança, atualmente conhecidas como CVE-1999-0651.
Vocês se recordam dos arquivos .rhosts, .rlogin, .forward, e /etc/hosts.equiv?
Morris descreve: “The 4.2 Berkeley Software Distribution of the Unix operating system (4.2BSD for short) features an extensive body of software based on the ‘TCP/IP‘ family of protocols. In particular, each 4.2BSD system ‘trusts’ some set of other systems, allowing users logged into trusted systems to execute commands via a TCP/IP network without supplying a password.”
Lembre-se que Robert T. Morris é da Bell Labs, a criadora do UNIX, portanto podemos supor que há uma rivalidade com a Berkley Software Distribution.
19 de Setembro de 1985, este é o dia em que a Sun Microsystems lança o SUN-3, uma série de computadores UNIX com linhas tanto para estação de trabalho quanto para servidor.
1986
Em Agosto de 1986, o CSRG da Berkeley lança a versão 4.3 do BSD, conhecida como 4.3BSD.
CURIOSIDADE — Desta forma, o ecossistema para um futuro worm está finalmente criado.
1987
Este é o ano que começa um dos mistérios e tem início algumas intrigas, pois, de acordo com os trabalhos apresentados por Eugene H. Spafford, da Purdue University, o professor Rick Rashid, da Carnegie-Mellon University (CMU), testemunhou, durante o julgamento de Robert T. Morris Jr., que ele (Robert T. Morris Jr.) havia reportado a vulnerabilidade do tipo buffer-overflow no fingerd, para a equipe de administradores de sistema, um ano antes da propagação do Morris Worm.
Exatamente, Robert T. Morris Jr. é filho de Robert T. Morris, que, além do Bell Labs, também era chefe do National Computer Security Center, um esforço público da National Security Agency (NSA) em segurança de computadores.
1988
Novamente um pouco de mistério e intriga, pois de acordo com os trabalhos apresentados por por Eugene H. Spafford, da Purdue University, em Maio de 1988, alguns alunos da UC Santa Cruz conseguem penetrar a segurança de computadores utilizando uma vulnerabilidade no fingerd, semelhante à utilizada pelo Morris Worm, porém não foi reportado para a Berkeley.
A Internet ainda não era como a conhecemos atualmente, sendo uma rede de computadores interligando diversas outras redes, entre elas: ARPANet, MILNET, NSFNet, CSNet, etc…
Finalmente em 2 de Novembro de 1988, o primeiro worm é propagado na Internet, dando início a uma nova era de ameaças. Ele ficou conhecido como Morris Worm, Great Worm ou Internet Worm.
Este worm explora três vulnerabilidades, sendo elas:
- Falhas de confiança no rsh (514/TCP) e rexec (512/TCP), apresentadas em 25 de Fevereiro de 1985 e atualmente conhecidas como CVE-1999-0651;
- Comando DEBUG do sendmail (25/TCP), atualmente conhecida como CVE-1999-0095;
- E vulnerabilidade do tipo buffer-overflow no fingerd (79/TCP), a qual tanto pode ter sido reportada por Robert T. Morris Jr. quanto pode ter sido encontrada por alunos da UC Santa Cruz.
CURIOSIDADE – Algumas considerações sobre o Morris Worm:
- Este worm afetou sistemas operacionais derivados do BSD em máquinas VAX e SUN-3.
- Alguns erros foram apontados no código do worm, mas o principal deles, o qual criava um grande impacto nas máquinas afetadas, era sua propagação descontrolada, isto é, o worm propagou-se independentemente da máquina já ter sido afetada – caracterizando um Denial-of-Service.
- O comando rsh não precisava de nova autenticação, ao contrário do rexec, portanto esta foi a razão pela qual o worm utilizava técnicas de brute-force.
- A chamada crypt() introduzida pelo worm era seis vezes mais eficiente (rápida) que a pública.
- A vulnerabilidade do tipo buffer-overflow no fingerd somente era explorada em VAX, levantando algumas hipóteses: a. Robert T. Morris Jr. não possui conhecimento específico em máquinas SUN-3 ou não tinha acesso a estas máquinas; b. Robert T. Morris Jr. não é o autor deste trecho do código.
- A vulnerabilidade do tipo buffer-overflow no fingerd foi a primeira a ser explorada publicamente e estava presente na chamada gets().
- O worm tentava enviar um pacote UDP, sem sucesso, para berkeley.edu aproximadamente a cada quinze propagações, levantando a hipótese que o autor possuía acesso a esta máquina e, muito provavelmente, monitorava a propagação do worm.
- Quando o U.S. Secret Service invadiu a casa de Bloodaxe, membro famoso do grupo Legion of Doom (LOD), foi encontrado uma cópia do worm.
- O Computer Emergency and Response Team (CERT), ao contrário do que muitos autores apresentam, não foi criado única e especificamente devido a propagação do worm, mas sim devido a uma série de incidentes ocorridos no final de 1988, o que, consequentemente, incluí a propagação do worm.
Até o próximo artigo…
1 Comentários
Ótimo artigo! Essa série vai dar um livro hein!
Abraço.