Para aqueles que se perguntam como é hackear outro sistema, o Google criou um novo laboratório chamado Jarlsberg, contendo uma aplicação web recheada de falhas de segurança prontas a serem exploradas por desenvolvedores que querem aprender algumas das possíveis vulnerabilidades, como usuários maliciosos usam essas falhas e o que pode ser feito para previni-las.
O laboratório está organizado em torno de diferentes tipos de vulnerabilidades de segurança, e para cada uma existe uma tarefa para achar e explorar essas falhas. Também o laboratório usa três técnicas principais:
- Caixa-preta – o código fonte da aplicação está oculto e o usuário necessita advinhar como o servidor funciona para explorar as falhas de segurança.
- Caixa-branca – o código fonte (Python) da aplicação é semelhante ao código de alguma aplicação open source. O usuário pode ler as linhas para achar as fraquezas.
- Caixa-cinza – o laboratório oferece algumas dicas de como a aplicação está escrita sem mostrar totalmente o código fonte.
O Jarlsberg utiliza uma série de funcionalidades que foram criadas para facilitar o ataque ao aplicativo:
- HTML em Snippets: Usuários podem incluir um subconjunto do HTML em seus snippets.
- Upload de arquivo: Usuários podem fazer upload de arquivos para o servidor, e.g., para incluir imagens nos seus snippets.
- Administração web: Administradores de sistema podem gerenciar o sistema utilizando uma interface web.
- Novas contas: Usuários podem criar suas próprias contas.
- Linguagem de template: Jarlsberg Template Language(JTL) é uma nova linguagem que faz escrever páginas web mais facilmente, conectando diretamente com o banco de dados. A documentação do JTL pode ser encontrada em
jarlsberg/jtl.py
.- AJAX: Jarlsberg utiliza AJAX para implementar o refresh na sua home e snippets page. Você pode ignorar as partes de AJAX do Jarlsberg exceto aos desafios que pedem para focalizar no AJAX em específico.
O Jarlsberg possui as seguintes falhas de segurança a serem descobertas, exploradas e consertadas:
- Cross-site Scripting (XSS)
- Cross-site Request Forgery (XSRF)
- Cross-site Script Inclusion (CSSI)
- Client-state Manipulation
- Path Traversal
- Denial of Service (DoS)
- Execução de código
- Vulnerabilidades de configuração
- Vulnerabilidades de AJAX
O laboratório pode ser rodado localmente para você ter o controle completo de todo o processo de aprendizado ou pode ser rodado como uma instância na cloud do Google. Maior parte do laboratório foi liberada sobre o Creative Commons Attribution 3.0, enquanto outras partes sobre a licença Creative Commons Attribution-No Derivative Works 3.0, fazendo isso ideal para universidades e organizações que desejam treinar seus estudantes ou empregados para entenderem e protegerem seus sistemas de falhas de segurança.