Tuesday, March 14, 2017

Linguagens de programação para segurança cibernética


Assembly

     Oh, a ruína da minha existência, Assembly. Este idioma é o mais próximo que você pode chegar a programação em linguagem de máquina, com que também é um dos melhores idiomas para saber quando se lida com a segurança cibernética. Se você está depurando um programa para encontrar vulnerabilidades no código, como estouro de buffer, ou você está engenharia reversa de um programa de malware, é extremamente benéfico para conhecer esse idioma. A linguagem assembly permite que você fale diretamente com a memória de um computador e forçá-lo a executar instruções que você pode não ser capaz de obtê-lo para executar utilizando outros idiomas.

     Uma das outras razões que este idioma ainda é amplamente utilizado e / ou capaz de ser lido por especialistas em segurança até hoje é que mesmo "C" permite a montagem em linha. Ser capaz de empurrar e mover instruções que devem ser executadas pode ser extremamente útil quando se tenta forçar um programa a fazer algo diferente do que foi planejado. A fim de realmente entender o que você está fazendo quando a programação de montagem, você definitivamente precisa entender como processadores e memória ler e escrever instruções para e entre si.

C
     A linguagem C é outra linguagem que existe há bastante tempo. Muitos programas ainda funcionam com base em C e muitas explorações também. A vantagem de C é que ele pode ser portado para praticamente qualquer sistema operacional apenas compilando para ser lido por qualquer sistema operacional que você precisa para ser executado em. Como C é uma linguagem de nível superior ao Assembly, também é mais fácil de ler. Onde assembly é escrito de tal maneira que você está interagindo diretamente com a memória, C é mais leitor amigável e é realmente compilado sem você se preocupar sobre como ele interage com a memória. Isso não quer dizer que você não precisa se preocupar com a codificação segura e evitar coisas como o buffer overflows.
Python

     Algumas das linguagens de programação mais fáceis de aprender são as linguagens de script. Python é uma das linguagens de script mais populares e existem até muitas ferramentas de segurança escritas em python. Uma das ferramentas mais populares é o SEToolkit. Outros usaram python para criar sua própria variação de um scanner nmap, ou com diferentes módulos importados que podem ser usados para puxar para baixo todos os tweets em um twitter de pessoas. As declarações em python são muito bruscas e tornam muito mais fácil escrever. Declaração como "imprimir", "se" e "enquanto" fazer exatamente o que eles dizem, sem a necessidade de decifrar. Imprimir imprime o que você colocar em citações para a tela, se começa e if / else bloco de código, e enquanto começa naturalmente um loop de tempo. Há muito mais para ele, e sim, mesmo "C" tem declarações como estas, embora a forma como algumas dessas declarações têm de ser escritas são mais enroladas.

     Outra vantagem para python é que você pode realmente usá-lo para escrever suas próprias explorações. Embora ao contrário de "C" o sistema de destino tem que realmente ter o interpretador python já instalado ou então não haverá nada para ler o código. Como tal, é benéfico para validar que um intérprete python já está instalado no sistema de destino que você está tentando explorar.

Pensamentos finais
     Agora, de forma alguma é uma lista abrangente de línguas para aprender ou até mesmo o que todos podem fazer, mas é um ponto de partida. Por ser capaz de ler pelo menos a montagem e C você se torna um recurso inestimável para reverter engenheiros. Se você pode escrever em assembly e C você se torna essencial para explorar desenvolvedores, engenheiros reversos e testadores de penetração. Exploits escritos por você mesmo fornecem assinaturas diferentes que permitirão que você ignore muitos scanners anti-vírus que dependem de assinaturas já conhecidas. Se você pode trabalhar com python que você pode utilizar muitas das ferramentas incorporadas em distribuições de segurança, bem como se tornar um recurso valioso para testes de penetração de aplicativos web. Isso ocorre porque python também pode ser usado para automatizar SQLi e outros testes de aplicativos da web.
Postado por Derek Scheller Jr às 19:40

SQL vs NoSQL: as diferenças

O banco de dados SQL (Structured Query Language) foi um mecanismo primário de armazenamento de dados criado há mais de quatro décadas. O ...