
Kurukshetra: Un framework para enseñar codificación segura mediante la resolución interactiva de problemas.
Kurukshetra es un framework web desarrollado con el objetivo de ser el primer framework de código abierto que proporciona una base sólida para alojar desafíos de codificación segura razonablemente complejos, al tiempo que ofrece la capacidad de ejecutar cada desafío de manera eficiente y dinámica según la entrada del usuario en un entorno sandbox seguro.
Kurukshetra se compone de dos componentes: el backend escrito en PHP, que gestiona y aprovecha el sistema Docker subyacente para proporcionar el sandbox seguro para la ejecución de desafíos, y el frontend, que es una aplicación web orientada al usuario que proporciona todos los controles necesarios para que el administrador pueda alojar y modificar los desafíos, y el usuario pueda ejecutar y ver el resultado de cada una de sus entradas.
Kurukshetra ha sido probado tanto en Ubuntu/Debian (distribuciones basadas en apt-get) como en Mac OS. Idealmente debería funcionar con cualquier distribución basada en Linux que tenga instalados PHP 7.2, MySQL y Docker (junto con la API remota habilitada).
Hay algunos paquetes necesarios antes de proceder con la instalación:
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/ con permiso de escritura para el usuario www-dataLa instalación es tan simple como mover los archivos descargados a la raíz 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 para el usuario www-data (consulte uploads/README.md).http://localhost o http://127.0.0.1 para ir a la instalación (se redirigirá automáticamente a /installation/).
Client ID y Client secret de Google OAuth y asegúrese de que la URL de redirección esté configurada en la ruta http://your-domain.com/login/index.phpKurukshetra utiliza las API de Docker para ejecutar el código enviado por el usuario. Se requiere una configuración única antes de poder usar las API de Docker, que es la siguiente:
docker pull phusion/baseimage:latestcd installation/optional/docker build -t kurukshetra .Alternativamente, puede ejecutar python install.py desde el directorio installation/optional, lo cual instalará Docker (si no está instalado) y configurará la imagen de Docker de Kurukshetra automáticamente.
Las siguientes son algunas ideas que tenemos en mente para continuar con Kurukshetra. Si tiene alguna idea o solicitud de funcionalidad que no esté listada a continuación, no dude en crear un issue en GitHub.
Soporte para más lenguajes, incluyendo pero no limitado a Java, Node.js y Ruby on Rails.
Escribir más desafíos junto con pruebas unitarias para cubrir todas las vulnerabilidades del OWASP Top 10.
Gamificación de todo el framework mediante la introducción de un marcador basado en puntos de resolución de desafíos (los puntos predefinidos ya están disponibles para los desafíos según la dificultad).
Personas increíbles que construyeron este proyecto:
Anirudh Anand (@a0xnirudh)
Mohan KK (@MohanKallepalli)
Arjun T U (@arjunkikz)
Durga Subramanian (@0xdug)
Ankur Bhargava (@_AnkurB)
Prajal Kulkarni (@prajalkulkarni)