
O Secure Coding Dojo é uma plataforma para fornecer conhecimento de codificação segura.
O Secure Coding Dojo é uma plataforma para fornecer treinamento em codificação segura. Embora venha com seu próprio aplicativo de treinamento vulnerável (o site Insecure.Inc), o portal de treinamento pode ser usado em conjunto com outros aplicativos de treinamento. A força da plataforma está na sua extensibilidade e na integração com a plataforma de colaboração de desenvolvimento comumente usada, o Slack. O portal de treinamento pode ser facilmente configurado na nuvem e as instruções para a configuração no AWS Elastic Beanstalk estão disponíveis abaixo.
Não deixe de verificar também a wiki para mais detalhes sobre a implantação e instalação do Dojo.
Baixe a demo para ter uma noção do portal de treinamento e do aplicativo Insecure.Inc.
Dê uma olhada também em /screenshots

Os passos a seguir fornecem a configuração básica do Dojo. Para configuração avançada e integrações, consulte a wiki
Instale a versão mais recente do Docker.
Faça um git clone do repositório
Mude o diretório para a raiz do repositório
Configure uma variável de ambiente DATA_DIR como ponto de montagem para os arquivos do dojo. Em *nix/mac, modifique o .bash_profile da seguinte forma:
export DATA_DIR="/YOUR_DATA_DIR"
No Mac, você deve permitir que o Docker acesse este diretório em Docker > Preferences > File Sharing
Reinicie o terminal
Execute com:
docker-compose up
Embora sites de treinamento de código aberto para ensinar conceitos de segurança de aplicações não sejam novidade, o público-alvo desses sites tem sido pentesters e hackers éticos. O Secure Coding Dojo é pensado principalmente como uma plataforma de treinamento para desenvolvedores, e aqui está o porquê:
Embora não garantamos conformidade, o treinamento pode ser usado para atender a requisitos de conformidade como PCI 6.5.a. Consulte o documento de currículo do Insecure.Inc sobre o mapeamento para SANS 25/ OWASP Top 10 / PCI 6.5
Portal de treinamento
Insecure.Inc
Portal de treinamento
Insecure.inc
Portal de treinamento
Insecure.Inc
Consulte a wiki.
Mais informações na wiki.
Você precisará criar um aplicativo Slack para autenticação.
A autenticação do Google também pode ser configurada no config.json. Você precisará de uma conta de desenvolvedor do Google e obter as credenciais OAuth no console da API do Google: https://console.developers.google.com
No mesmo local, você configurará seu domínio e as URIs de redirecionamento autorizadas. Por exemplo, para uma configuração localhost, a URL de redirecionamento seria: http://localhost:8081/public/google/callback
Para equipes pequenas ou imagens pré-configuradas, a autenticação via Slack ou Google pode não ser uma opção. Nesse cenário, você pode configurar a autenticação usando um arquivo local simples.
Consulte a wiki para mais informações.
Se você não configurar um banco de dados, o portal de treinamento usará apenas um banco de dados SQLite local.
Você também pode instalar o MySQL e criar um banco de dados e credenciais para esse banco. Anote seu nome de usuário e senha, pois precisará deles mais tarde.
Você precisará configurar chaves de criptografia como variáveis de ambiente do sistema operacional. Em *nix/mac, modifique o .bash_profile da seguinte forma:
export ENC_KEY="put something random here"
export ENC_KEY_IV="put something random here"
O seguinte serve para impedir que os participantes gerem seus próprios códigos de desafio.
export CHALLENGE_MASTER_SALT="put something random here"
Você pode adicionar novas lições seguindo o modelo das existentes.
Os desafios são definidos em ./trainingportal/static/lessons O arquivo definitions.json aponta para a descrição html do desafio correspondente, o link de execução e os blocos de código correspondentes pelo id do bloco de código. Siga os exemplos já definidos para criar um novo.