
Kurukshetra - Фреймворк для обучения безопасному кодированию с помощью интерактивного решения задач.
Kurukshetra — это веб-фреймворк, разработанный с целью стать первым фреймворком с открытым исходным кодом, который обеспечивает надежную основу для размещения достаточно сложных задач по безопасному кодированию, сохраняя при этом возможность эффективно и динамически выполнять каждую задачу на основе пользовательского ввода в безопасной изолированной среде.
Kurukshetra состоит из двух компонентов: серверной части, написанной на PHP, которая управляет и использует базовую систему Docker для обеспечения безопасной песочницы для выполнения задач, и клиентской части — веб-приложения, предоставляющего все необходимые элементы управления для администратора (размещение и изменение задач) и для пользователя (выполнение и просмотр результата каждого ввода).
Kurukshetra был протестирован как на Ubuntu/Debian (дистрибутивы на основе apt-get), так и на Mac OS. В идеале он должен работать с любыми дистрибутивами на основе Linux, на которых установлены PHP 7.2, MySQL и Docker (с включенным удаленным API).
Перед установкой необходимо установить несколько пакетов:
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/ с правами на запись для пользователя www-dataУстановка проста: переместите загруженные файлы в корневой каталог веб-сервера:
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 права на запись для пользователя www-data (см. uploads/README.md).http://localhost или http://127.0.0.1, чтобы перейти к установке (произойдет автоматическое перенаправление на /installation/).
Идентификатор клиента и Секрет клиента Google OAuth и убедитесь, что URL перенаправления установлен на путь http://your-domain.com/login/index.phpKurukshetra использует API Docker для выполнения кода, отправленного пользователем. Требуется однократная настройка, прежде чем мы сможем использовать API Docker, которая описана ниже:
docker pull phusion/baseimage:latestcd installation/optional/docker build -t kurukshetra .В качестве альтернативы вы можете просто запустить python install.py из каталога installation/optional, который установит Docker (если он еще не установлен) и автоматически настроит образ Docker Kurukshetra.
Ниже приведены несколько идей, которые мы планируем реализовать в дальнейшем развитии Kurukshetra. Если у вас есть какие-либо идеи или запросы функций, не перечисленные ниже, не стесняйтесь создавать запрос на GitHub.
Поддержка большего количества языков, включая, помимо прочего, JAVA, NodeJs и Ruby on Rails.
Написать больше задач вместе с модульными тестами, охватывающими все 10 основных уязвимостей OWASP.
Геймификация всего фреймворка путем введения таблицы рекордов на основе очков за решение задач (предопределенные очки уже доступны для задач в зависимости от сложности).
Замечательные люди, создавшие этот проект:
Anirudh Anand (@a0xnirudh)
Mohan KK (@MohanKallepalli)
Arjun T U (@arjunkikz)
Durga Subramanian (@0xdug)
Ankur Bhargava (@_AnkurB)
Prajal Kulkarni (@prajalkulkarni)