
Kurukshetra - Un cadre pour enseigner le codage sécurisé par le biais de la résolution interactive de problèmes.
Kurukshetra est un framework web développé dans le but d'être le premier framework open source à fournir une base solide pour héberger des défis de codage sécurisé raisonnablement complexes, tout en offrant la possibilité d'exécuter chaque défi de manière efficace et dynamique en fonction des entrées utilisateur dans un environnement sandboxé sécurisé.
Kurukshetra est composé de deux éléments : le framework backend écrit en PHP, qui gère et exploite le système Docker sous-jacent pour fournir le sandbox sécurisé nécessaire à l'exécution des défis, et le frontend, une application web destinée aux utilisateurs offrant tous les contrôles nécessaires pour que l'administrateur puisse héberger et modifier les défis, et que l'utilisateur puisse exécuter et visualiser le résultat de chacune de ses entrées.
Kurukshetra a été testé à la fois sur Ubuntu/Debian (distributions basées sur apt-get) et Mac OS. Il devrait fonctionner idéalement avec toute distribution Linux disposant de PHP 7.2, MySQL et Docker (ainsi que l'API distante activée).
Quelques paquets sont nécessaires avant de procéder à l'installation :
sudo apt-get install gitsudo apt-ge install php7.2-curl php7.2-mbstring php7.2-mysql)sudo apt-get install mysql-server/var/config/ avec les droits d'écriture pour l'utilisateur www-dataL'installation est aussi simple que de déplacer les fichiers téléchargés dans la racine web :
git clone https://github.com/a0xnirudh/kurukshetra.git
cd kurukshetra
cp -r * /var/www/html/
chmod 755 -R /var/www/html
/var/www/html) : cp -r kurukshetra/* /var/www/htmlchmod 755 -R /var/www/html/challenges/uploads pour l'utilisateur www-data (voir uploads/README.md).http://localhost ou http://127.0.0.1 pour accéder à l'installation (redirection automatique vers /installation/).
Client ID et le Client secret de l'authentification Google OAuth, et assurez-vous que l'URL de redirection est définie sur http://votre-domaine.com/login/index.php.Kurukshetra utilise les API Docker pour exécuter le code soumis par l'utilisateur. Une configuration unique est nécessaire avant de pouvoir utiliser les API Docker :
docker pull phusion/baseimage:latestcd installation/optional/docker build -t kurukshetra .Vous pouvez également exécuter python install.py depuis le répertoire installation/optional. Cela installera Docker (s'il n'est pas déjà installé) et configurera automatiquement l'image Docker de Kurukshetra.
Voici quelques idées que nous avons en tête pour la suite de Kurukshetra. Si vous avez des idées ou des demandes de fonctionnalités non listées ci-dessous, n'hésitez pas à ouvrir un ticket sur GitHub.
Les personnes formidables qui ont construit ce projet :
Anirudh Anand (@a0xnirudh)
Mohan KK (@MohanKallepalli)
Arjun T U (@arjunkikz)
Durga Subramanian (@0xdug)
Ankur Bhargava (@_AnkurB)
Prajal Kulkarni (@prajalkulkarni)