<aside> 👋 Привет!

На этой странице собраны тестовые задания для стажировки в ИБ команду Wildberries. Ты можешь выбрать одно или несколько направлений на выбор:

🌐 Продуктовая безопасность


<aside> 1️⃣ Задание №1

🕗 Время на выполнение:

4 дня

📝 Описание:

Разработайте одно веб-приложение на Golang или Python в двух версиях:

  1. Содержащее в коде следующие уязвимости:
    1. XSS
    2. IDOR
    3. SQLI
    4. OS command injection
    5. Path Traversal
    6. Brute force
  2. Реализующее механизмы защиты от перечисленных выше уязвимостей

🥇 Критерии успеха:

Создано два репозитория на https://github.com/ или https://gitlab.com:

  1. Уязвимая версия приложения - со следующим README.md файлом:

    ### Инструкция по сборке и запуску приложения
    > В этом разделе нужно описать пререквизиты и примеры запуска
    
    ...
    
    ### Proof of Concept
    > PoC для реализованных уязвимостей нужно описать в этом разделе. Варианты реализации PoC:
    > - Пошаговое руководство для ручного воспроизведения
    > - CURL-команда или Bash-однострочник для программного воспроизведения
    > - Скрипт-эксплойт из репозитория (достаточно сослаться на файл)
    
    ...
    
    ### Дополнительные комментарии
    > Опциональный раздел
    
    ...
    
  2. Защищенная версия приложения - со следующим README.md файлом:

    ### Инструкция по сборке и запуску приложения
    > В этом разделе нужно описать пререквизиты и примеры запуска
    
    ...
    
    ### Комментарии к исправлениям
    > Основные идеи исправлений для реализованных уязвимостей нужно описать в этом разделе.  
    > Будет большим плюсом, если:
    > - Исправления оформлены в виде отдельных коммитов
    > - В этом разделе имеется рассуждение/обоснование надёжности внесённых исправлений
    
    ...
    
    ### Дополнительные комментарии
    > Опциональный раздел
    
    ...
    

🔗 Полезные ссылки:

🗄️ Безопасность инфраструктуры


<aside> 2️⃣ Задание №2

🕗 Время на выполнение:

2 дня

📝 Описание:

Напишите Ansible-роль для анализа защищенности Linux-сервера и реализуйте следующие проверĸи для Debian 11 и Ubuntu 20.04:

  1. Проверьте валидность прав для файлов /etc/shadow, /root/.ssh/*, /home/*/.ssh/*.
  2. Проверьте отсутствие suid-бита у исполняемых файлов, для ĸоторых его наличие - потенциальная проблема безопасности сервера.
  3. Соберите списоĸ исполняемых файлов с небезопасными capability. Списоĸ не должен быть полным, но должен быть аргументированным. Проверьте на уязвимость ĸ PwnKit, CVE-2022-0847, CVE-2016-5195.
  4. Просĸанируйте /etc/ssh/sshd_config на наличие диреĸтив, ĸоторые вы считаете небезопасными. Объясните ваш выбор.

🥇 Критерии успеха:

Результат работы роли - автоматичесĸи собранный отчет в файле. Работа роли может зависеть от внешних ĸоллеĸций, но не внешних ролей. Роль должна отрабатывать на Docker-образах python:3.11.4-bullseye и ubuntu:20.04 с установленным паĸетом python3.

</aside>

<aside> 3️⃣ Задание №3

🕗 Время на выполнение:

2 дня

📝 Описание:

Напишите сĸрипт, автоматизирующий управление фильтрацией стоп-слов с помощью iptables. Должна быть возможность заблоĸировать определенную последовательность байт на определенном порту, вывести списоĸ всех блоĸировоĸ, убрать блоĸировĸу. Например:

./banhammer.sh ban --port 1337 —word "attack"

./banhammer.sh ban --port 4200 —word "defense"

./banhammer.sh list

| № | port | word    |
| 1 | 1337 | attack  |
| 2 | 4200 | defense | 

./banhammer.sh unban -n 1

./banhammer.sh unban --port 4200 --word "defense"

./banhammer.sh list

| № | port | word    |

</aside>

🚨 Мониторинг и реагирование на инциденты


<aside> 4️⃣ Задание №4

🕗 Время на выполнение:

2 дня

📝 Описание:

Проанализировать независимые файлы task4_1.txt и ****task4_2.pcap и описать, какие атаки и\или уязвимости были\не были проэксплуатированы.

task4_1

task4_2.pcap

🥇 Критерии успеха:

Написан текстовый ответ в формате: Название атаки или идентификатор CVE | успешно или неуспешно. Например:

EthernalBlue | успешно
CVE-2000-2888 | неуспешно

</aside>

<aside> 5️⃣ Задание №5

🕗 Время на выполнение:

2 дня

📝 Описание:

Написать скрипт, который преобразует task5.csv, добавив поле process.parent.command_line, в котором содержится process.command_line родителя процесса.

task5.csv

🥇 Критерии успеха:

Предоставлена таблица csv, в которой будет содержаться process.parent.command_line.

</aside>