White Hat Hacking

Quando se escreve sobre hacking, convém relembrar que o ordenamento jurídico e a respectiva legislação têm por finalidade a protecção de valores pessoais e patrimoniais; a evolução legislativa, nesta matéria, conduziu Portugal à adopção da lei do cibercrime em conformidade com directrizes europeias; actualmente os litígios resultantes de ataques contra sistemas de informação gozam do foro penal.
A segurança informática tem constituído, sobretudo a partir de finais do séc. XX, motivo de preocupação acrescida e, cada vez mais emergente; assim, após uma breve introdução a algumas falhas informáticas elementares e conhecidas do grande público, será efectuada uma ligeira abordagem a uma nova técnica de hacking, que se pensa, tendencialmente crescente com o desenvolvimento da internet e, desde logo, do IPv6 para a internet das coisas.
A precursora da internet, a Arpanet, teve o seu início ligada à segurança militar mas o foco de atenção é agora a segurança da informação em sistemas informatizados. Falar de segurança, qualquer que seja, é sempre abordar um binómio de antagonismo; na realidade apenas se conseguem invadir sistemas pouco seguros ou desprotegidos, esta regra também se aplica aos problemas de cibersegurança. Nesta matéria, os conhecimentos técnicos ombreiam com a imaginação e criatividade; ainda há poucos anos era possível, com um programa simples e inocente, o Neobook, destinado a criar livros electrónicos interactivos e apresentações, com uma interface intuitiva e fácil, semelhante à programação orientada por objectos mas sem qualquer linha de código, fazer ficheiros autoexecutáveis(*.exe) e screensavers(*.scr) para o sistema operativo Windows, que poderiam funcionar como vírus informáticos capazes de, entre tantas e variadas tarefas maléficas, apagar por exemplo o Regedit ou quaisquer outros, ficheiros fundamentais do sistema que ficava inoperacional; com a divulgação pública de conhecimentos sobre informática e a protecção aos Emails, fornecida pelos provedores de serviços de internet e outras empresas, assim como a substituição dos monitores, ou ecrãs, de feixes de raios catódicos para os de cristais líquidos este tipo de vírus informático, assim como outros, por exemplo, simples Keyloggers desenvolvidos em Visual Basic, tornaram-se raros.
Com a enorme proliferação, desenvolvimento e divulgação, de softwares livres e de código aberto tornam-se, cada vez mais, obsoletos programas editores de recursos, como o Reshacker que edita e recompila executáveis mas também altera ficheiros tipo dynamic link library(*.dll), capazes de modificar o aspecto gráfico de softwares; a engenharia reversa que também utiliza editores hexadecimais, verá na sua aplicação aos softwares proprietários uma utilidade sucessivamente diminuída pelo que terá de migrar para aplicações de criptografia.
O binómio antagónico dualista da segurança informática é de tal magnitude que, quando no início da década de 1990, a internet se começou a divulgar em Portugal, havia bancos cujos motivos propagandísticos motivavam a oferta, nas suas instalações, de consultas aos seus produtos bancários via internet e, nessa altura, diziam as pessoas muito claramente e sem qualquer inibição, à porta desses bancos, que eles apenas bloqueavam o encerramento do browser com o rato e se esqueciam que simplesmente carregando nas teclas, Alt e F4 em simultâneo, o browser encerrava e se podia imediatamente entrar no sistema e até na rede informática interna; mais tarde, com a evolução da segurança, este tipo de incursões deixou de ser possível pois tentavam bloquear tudo, até as portas da impressora, mas os rumores continuavam e as pessoas afirmavam que em alguns bancos portugueses se deixava o help do browser activo e este help podia ser impresso através de uma impressora escolhida na rede interna o que se transformava numa abertura para o sistema informático.
Muitos jovens e criançada gostavam de brincar com os computadores expostos ao público, por exemplo, nas lojas de computadores onde os vendedores procuravam bloquear a sua utilização mas, frequentemente, afirmavam que o simples desligar a máquina e reiniciar em modo segurança já permitia entrar no sistema, por vezes até alterar a imagem de fundo do ecrã; mas também, diziam eles, bastava com o teclado, iniciar o task management do computador e terminar o programa que estava a impedir o controlo da máquina; a brincadeira de alterar o fundo da imagem do ecrã, era um prenúncio do actual ataque tipo deface a páginas Web, parece que essas criancices e brincadeiras foram evoluindo chegando mais tarde, já na altura em que os telemóveis permitiam fotografar e comunicar com o computador por bluetooth, a ser possível disfarçadamente fotografar o responsável pela segurança do computador e depois, sem ele saber, alterar o fundo do ecrã colocando-lhe a própria imagem desse responsável numa atitude infantil de troça. Alguns grupos de jovens e crianças iam brincar com os computadores expostos ao público em lojas do cidadão lisboeta, com navegação web através de browsers com permissões restritas, depois para zombarem dos administradores do sistema desligavam o navegador e entravam na rede interna verificando as várias relações de proximidade entre instituições públicas e privadas, enquanto, em frente a esses computadores, riam em altas gargalhadas e comentavam as suas façanhas de intrusão; curiosamente alguns desses jovens comentavam ali, em público e alta voz, que enquanto acompanhavam os pais e familiares a consultas em clínicas privadas e hospitais, conseguiam, pela rede interna, entrar nas directorias reservadas às respectivas administrações.
Pela sua importância a segurança informática foi ganhando relevo pelo que também os administradores dos sistemas tomavam mais atenção; quando os meios de comunicação começaram a dar relevo a ataques de hacking, os jovens brincavam que bastava um simples ping ao servidor, com o prompt de comandos, ou então usar telnet na porta 23, para deixar os administradores do sistema paranóicos. Como em todos os problemas de segurança, o binómio ataque / defesa caminha conjuntamente assim, relatando as suas façanhas, os jovens revelavam que quando o Windows estava realmente impenetrável bastava arrancar com um Live Cd, e mais tarde USB, de Linux como o Gentoo, o Mandrake ou outro, para ter acesso a todos os dados guardados no Windows; alguns garantiam que o arranque em Linux permitia até, em bibliotecas públicas de Lisboa navegar na web, furando todo o controlo informatizado do tempo de navegação, que os bibliotecários tentavam impor; outros em regozijo de alegria e prazer garantiam que nestas bibliotecas, ainda que navegando em Windows, iniciavam a navegação na internet mas, de vez enquanto, passavam para a rede interna, ou intranet, e conseguiam consultar dados ai colocados.
Com a evolução da internet sob o protocolo TCP/IP e o conhecimento crescente de que o endereço IP pode funcionar como identificador surgiu a ideia de anonimato na web; a rede Tor é uma espécie de virtual private network (VPN), também designada deep web, que ganhou proeminência já que os seus ficheiros e páginas web terminam em *.onion e, não sendo rastreados, também não são indexados nem pesquisados por browsers normais porém, comentavam alguns, nesta rede, é possível encontrar acidentalmente informações, entre tantas outras, como o perfil psicológico do militar da marinha norte americana ou características de navios de guerra; embora não conseguissem descobrir a origem e a veracidade de tais informações.
As preocupações com a segurança informática tornaram-se numa prioridade actual, há imensas ferramentas de hacking para pentesters, tanto para o sistema operativo Linux como para os outros, o desenvolvimento de software para segurança informática continua mas, o futuro parece avançar com a evolução dos browsers, do IPv6 e da internet das coisas, pelo que chegou agora o momento de abordar um NOVO CONCEITO DE HACKING: INJECÇÃO DE INSTRUÇÕES DE COMANDO; como sempre ocorre com as novas invenções e descobertas, existem precedentes; a técnica bastante conhecida de atacar bases ou bancos de dados utilizando Structured Query Language(SQL) – injection, também designada SQL Injection, é uma realidade actual; a INJECÇÃO DE INSTRUÇÕES DE COMANDO surge como uma evolução conceitual da SQL Injection, no entanto tem uma abrangência mais lata e uma utilidade prática que ultrapassa a sua anterior.
A invasão por man-in-the-middle tem uma abrangência conceptual muito lata mas depois, na prática, apenas se usam alguns dos seus aspectos técnicos, por oposição a INJECÇÃO DE INSTRUÇÕES DE COMANDO tem uma grande abrangência conceptual mas também uma enorme diversidade na técnica da sua aplicabilidade prática.
Para entender a injecção de comandos instrutórios, ou injecção de instruções de comando, torna-se necessário primeiro compreender o funcionamento básico dos computadores; na realidade sabe-se que é na unidade de processamento central (CPU) que, para efeitos de invasão hacking, ocorrem os fenómenos considerados mais importantes, o resto são periféricos. Na CPU existem circuitos eléctricos divididos conceptualmente em unidades lógicas, de controlo e os registadores que formados por circuitos de tipo flip-flop funcionam como memória a ser imediatamente processada, notar que a memória RAM usa condensadores e a memória fixa usa periféricos como o disco rígido ou outros; quando num circuito eléctrico há passagem de corrente diz-se que este adopta, por exemplo, o valor lógico um (1), se não há passagem de corrente adopta o valor lógico zero (0). O computador funciona assim, através da passagem, ou não, de corrente eléctrica em determinados circuitos eléctricos do seu processador e os valores lógicos zero e um constituem exactamente aquela fronteira da interacção entre o ser humano e a máquina. Com zeros e uns constrói-se uma linguagem que a máquina entende, designada linguagem máquina; com algumas instruções elementares constrói-se a linguagem Assembly que está muito próxima da linguagem máquina, evoluindo constroem-se linguagens cada vez mais fáceis de ser entendidas pelo ser humano mas afastadas da máquina. As linguagens têm códigos que a máquina precisa interpretar e os programas informáticos são algoritmos de decisão pré estabelecida que, por um lado, podem ser compilados ou transformados como um todo numa linguagem entendível pela máquina, por outro lado podem ser interpretados por programas intermédios também designados máquinas virtuais que os vão transformando em linguagem máquina.
Em termos de redes informáticas as linguagens de programação interpretadas podem correr do lado do servidor como é o caso do PHP, ASP, Python, entre outras, ou do lado do cliente como, por exemplo, o Javascript que é interpretado pelo browser. Na realidade, todas as instruções, comandos ou código que sejam introduzidos num browser vão ser transformados em dígitos binários ou bits que serão enviados através da rede para o computador distante e por isso o browser ou navegador pode ser encarado como um programa intermédio ou máquina virtual que interpreta uma linguagem própria do ser humano e a transforma numa outra linguagem mais próxima da máquina; é agora que surge o conceito de INJECÇÃO DE INSTRUÇÕES DE COMANDO contemplando, do lado do cliente, o uso de qualquer programa semelhante a um browser ou navegador para, enviando código, instruções ou comandos, interferir e alterar o processador do servidor.
Há vários protocolos web, como o HTTP, FTP, SMTP, POP, IMAP e outros, pelos quais podem ser usados programas interpretadores intermédios semelhantes a navegadores; por exemplo, quando qualquer browser usa o Hypertext Transfer Protocol (HTTP) está a enviar comandos ao servidor, através do seu Uniform Resource Locator (URL), como GET, POST, PUT, DELET ou HEAD que, assim como o código interpretado e outras instruções, também podem ser enviados através de formulários, muitos dos quais presentes em páginas web; repare-se que quando se efectua uma simples pesquisa na internet, o que se está a fazer é a utilizar um motor de pesquisa para enviar instruções através do campo de um formulário presente numa página web, que o browser interpreta e transforma numa linguagem próxima da máquina, para depois retornar o resultado dessa pesquisa.
A INJECÇÃO DE INSTRUÇÕES DE COMANDO é assim, resumidamente, a utilização de todos os recursos que um qualquer navegador permite, para enviar códigos, instruções e comandos capazes de alterar e controlar o processador de um computador, através de uma rede de computadores. Agora apenas é necessário conhecer as zonas ou locais de acesso através de um browser e a linguagem de script que corre num servidor para lhe enviar os respectivos códigos ou então enviar instruções e comandos directamente através desses locais do browser; é muito importante notar que para controlar o computador remoto são sempre necessárias falhas de segurança.
Doutor Patrício Leite, 21 de Abril de 2018