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 — это платформа для передачи знаний о безопасном написании кода.

60715959 месяцев назадПроверено 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
    
    Скачать инструмент