Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
SecureCodingDojo — Secure Coding Dojo — это платформа для передачи знаний о безопасном написании кода. | Kitploit
Инструменты/GitHubGitHub/owasp/securecodingdojo
Анализ уязвимостейАнализ КодаВеб-безопасностьCTFТестирование на ПроникновениеDevSecOpsАутентификацияОбучение и ОбразованиеЛаборатории и Практика
GitHubowasp/securecodingdojo

SecureCodingDojo

Secure Coding Dojo — это платформа для передачи знаний о безопасном написании кода.

6071598 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий
Сайт

О Secure Coding Dojo

Secure Coding Dojo — это платформа для проведения обучения безопасному программированию. Хотя она поставляется с собственным уязвимым обучающим приложением (сайт Insecure.Inc), учебный портал можно использовать вместе с другими обучающими приложениями. Сильной стороной платформы являются её расширяемость и интеграция с часто используемой платформой для совместной разработки Slack. Учебный портал можно легко развернуть в облаке; ниже приведены инструкции по настройке AWS Elastic Beanstalk.

Обязательно также загляните в wiki для получения дополнительных сведений о развёртывании и установке Dojo.

Демонстрация

Скачайте демо, чтобы ознакомиться с учебным порталом и приложением Insecure.Inc.

Также посмотрите в /screenshots Альтернативный текст

Попробуйте

Следующие шаги позволят получить базовую конфигурацию Dojo. Для расширенной конфигурации и интеграций обратитесь к wiki

  • Установите последнюю версию Docker.

  • Склонируйте репозиторий с помощью Git

  • Перейдите в корневой каталог репозитория

  • Настройте переменную окружения DATA_DIR как точку монтирования для файлов dojo. В *nix/mac измените .bash_profile следующим образом

    export DATA_DIR="/YOUR_DATA_DIR"

  • На Mac необходимо разрешить Docker доступ к этому каталогу в Docker > Preferences > File Sharing

  • Перезапустите терминал

  • Запустите с помощью

    docker-compose up

Зачем ещё один сайт для обучения безопасности?

Хотя открытые обучающие сайты для преподавания концепций безопасности приложений не новы, целевой аудиторией этих сайтов были пентестеры и этичные хакеры. Secure Coding Dojo в первую очередь предназначен как платформа доставки обучения для разработчиков, и вот почему:

  • Он интегрируется со Slack для аутентификации
  • Он позволяет группировать участников по их командам разработки
  • Он позволяет командам отслеживать прогресс и соревноваться друг с другом
  • Каждый урок построен как пара атака/защита. Разработчики могут наблюдать слабости программного обеспечения, выполняя атаку, а после решения задачи узнают о соответствующих защитных механизмах (фрагментах кода)
  • Предопределённые уроки основаны на самых опасных ошибках программного обеспечения MITRE (также известных как SANS 25), поэтому акцент делается на ошибках программного обеспечения, а не на техниках атак
  • Предопределённые хакерские задания созданы для начального уровня и поддерживают вовлечённость разработчиков
    • На других обучающих сайтах или CTF в заданиях есть элемент головоломки, что отлично подходит для аудитории пентестеров, но может снизить интерес некоторых разработчиков. В Secure Coding Dojo основное внимание уделяется демонстрации уязвимости.
    • Есть подсказки, которые помогают разработчикам при эксплуатации проблемы, чтобы не застрять.

SecureCodingDojo и требования соответствия

Хотя мы не гарантируем соответствие, обучение может использоваться для удовлетворения требований соответствия, таких как PCI 6.5.a. См. документ учебной программы Insecure.Inc о соответствии SANS 25 / OWASP Top 10 / PCI 6.5

Предварительные требования для разработки

Учебный портал

  • Установите VS Code
  • node/npm (разрабатывалось на v10)
  • ОПЦИОНАЛЬНО: сервер MySQL + MySQL Workbench (разрабатывалось на MySQL 5.7)

Insecure.Inc

  • Разработано на Java EE
  • Последняя версия Eclipse Java EE (разрабатывалось на Neon) + Java 1.8 + Tomcat 8 для обучающего приложения Insecure.Inc

Инструкции по настройке среды разработки

Учебный портал

  • Подробнее на wiki

Insecure.Inc

  • Подробнее на wiki

Сборка

Учебный портал

  • Запустите скрипт ./buildTrainingPortal.sh. Он создаст docker-образ и пакет для AWS Elastic Beanstalk

Insecure.Inc

  • Щёлкните правой кнопкой мыши по проекту, чтобы экспортировать его как файл .war, и поместите его в папку /webapps вашей установки Tomcat 8.

Размещение Insecure.Inc

Загляните в wiki.

Развёртывание учебного портала

Дополнительная информация на wiki.

Инструкции по настройке Slack

Вам потребуется создать приложение Slack для аутентификации.

  • Перейдите на https://api.slack.com/
  • Нажмите Start Building и следуйте подсказкам, чтобы создать приложение Slack в вашей команде разработки Slack
  • После создания приложения вы сможете получить учётные данные приложения для настройки вашего config.json
  • Настройте URL-адреса перенаправления в разделе OAuth & Permissions. Например, для настройки localhost URL перенаправления будет: http://localhost:8081/public/slack/callback

Инструкции по настройке Google

Аутентификацию Google также можно настроить в config.json. Вам потребуется учётная запись разработчика Google и необходимо получить учётные данные OAuth в консоли Google API: https://console.developers.google.com

В этом же месте вы настроите свой домен и авторизованные URI перенаправления. Например, для настройки localhost URL перенаправления будет: http://localhost:8081/public/google/callback

Инструкции по настройке локальной аутентификации

Для небольших команд или предварительно настроенных образов аутентификация Slack или Google может быть недоступна. В этом случае вы можете настроить аутентификацию с использованием локального файла.

Дополнительную информацию смотрите в wiki.

  • Скопируйте localUsers.json.sample в localUsers.json
  • Добавьте строку в config.json, которая указывает localUsersPath
  • У локальной аутентификации есть несколько ограничений, таких как отсутствие блокировки учётной записи, истечения срока действия пароля и т.д.

Инструкции по настройке БД

Если вы не настроите БД, учебный портал просто будет использовать локальную БД SQLite.

Вы также можете установить MySQL и создать БД и учётные данные для этой БД. Запомните имя пользователя и пароль — они понадобятся позже.

Сиды ключей шифрования и переменные окружения

Вам нужно настроить ключи шифрования как переменные окружения ОС. В *nix/mac измените .bash_profile следующим образом

root@kitploit:~
export ENC_KEY="put something random here"
export ENC_KEY_IV="put something random here"

Следующее предназначено для предотвращения генерации участниками собственных кодов заданий.

root@kitploit:~
export CHALLENGE_MASTER_SALT="put something random here"

Расширение Secure Coding Dojo

Вы можете добавлять новые уроки, следуя модели существующих.

Задания

Задания определены в ./trainingportal/static/lessons Файл definitions.json указывает на соответствующее HTML-описание задания, ссылку для запуска и соответствующие блоки кода по идентификатору блока кода. Следуйте уже определённым примерам, чтобы создать новое.

root@kitploit:~
.
+-- /trainingportal/static/lessons
|   +-- modules.json //configuration file where lesson modules are defined
|   +-- /attack-grams //visual representations of attacks included in challenge descriptions
|   +-- /blackBelt //lesson module
|       +--definitions.json //individual lesson definitions
|       +--cwe494.md // html or markdown file including the lesson description
|       +--cwe494.sol.md //solution for the lesson
|       ....
|       +--quiz.html 
|   +-- /secondDegreeBlackBelt

Блоки кода

Блоки кода определены в ./trainingportal/static/codeBlocks. Эта папка имеет аналогичную структуру с json определения и набором HTML-файлов для каждого задания.

root@kitploit:~
.
+-- /trainingportal/static/codeBlocks
|   +-- codeBlocksDefinitions.json //configuration file where code blocks are defined
|   +-- authenticationByDefault.html //code block description html
|   ...
|   +-- useStrongDataEncryption.html
Скачать инструмент