Как создать безопасную домашнюю лабораторию безопасности
Самая безопасная и полезная первая конфигурация — это VM с Kali и OWASP Juice Shop в сети только для хоста. И не спешите покупать mini PC, пока не поймёте, какое упражнение будут выполнять эти две машины.
Большинство домашних лабораторий терпят неудачу ещё до первого сканирования, потому что владелец купил оборудование вместо того, чтобы выбрать вопрос. Умеренный по характеристикам хост с одной изолированной целью может научить большему, чем дорогая стойка с VM, которую вы тратите все выходные на восстановление.
Это руководство проведёт вас через первые выходные. Начните с выбора навыка. Определите характеристики хоста, изолируйте сеть и проверьте лабораторию. Затем расширьте её для offensive-, defensive- или malware-analysis работы.
В этой статье
- Выберите навык до того, как выбирать машину
- Минимальный хост, который не заставит вас возненавидеть виртуализацию
- Постройте сеть так, чтобы ошибка оставалась внутри лаборатории
- Создайте Kali и одну цель за первые выходные
- Snapshots, разрешения и заметки — часть лаборатории
- Добавьте мониторинг, когда захотите изучать detection вместе с exploitation
- Malware analysis — это отдельная лаборатория, а не следующая target VM
- Переходите на Proxmox только тогда, когда текущая конфигурация становится ограничением
Выберите навык до того, как выбирать машину
Домашняя лаборатория безопасности может выполнять четыре разные задачи:
- Offensive practice использует Kali или Parrot, инструменты разведки, web-прокси и уязвимые цели.
- Blue-team practice требует логов, сгенерированного attack traffic, видимости конечных точек и сетевой телеметрии.
- Malware analysis требует выделенной среды detonation и значительно более строгой изоляции.
- General security research может быть сосредоточено на DNS, VPN, hardening, сетевых средствах контроля или экспериментах с инфраструктурой.
Руководство Lance Grover по домашней лаборатории приводит разумный аргумент: почти никому не следует создавать все четыре варианта одновременно. Сначала выберите один вопрос.
Для этого руководства спросите себя: можете ли вы безопасно обнаружить и задокументировать уязвимость веб-приложения? В качестве рабочего примера используется Kali и OWASP Juice Shop. В конце вы обнаружите и задокументируете один сервис, сохраните доказательства, восстановите базовое состояние и напишете заметку по устранению проблемы.
Ваша сертификация определяет акцент. Для OSCP посвятите выходные enumeration, exploitation и подготовке отчёта. Для CEH v13 сосредоточьтесь на web testing и обнаружении уязвимостей. Для SOC оставьте атакующего и цель, а затем добавьте телеметрию.
Ethical Hacking Institute описывает лабораторию как место для практики всего пути — от разведки до подготовки отчёта. Это правильная модель мышления. Запуск Kali — начало, а не достижение.
Минимальный хост, который не заставит вас возненавидеть виртуализацию
Для этой конфигурации приоритетом является RAM: 16GB — рабочий вариант, а 32GB — комфортный. Восемь гигабайт — минимальный объём, при котором система загрузится, но я не рекомендовал бы его новичку.
Диапазоны оборудования Grover оценивают бывший в употреблении бизнес-десктоп примерно в $60–150, mini PC — в $250–400, а выделенный hypervisor host — в $500 или больше. Эти цифры относятся к хосту, а не ко всем компонентам лаборатории.
| Уровень хоста | Целевой объём RAM | Лучшее применение | Примерная стоимость хоста |
|---|---|---|---|
| Самый дешёвый реалистичный старт | 16GB | Kali и одна лёгкая цель | $60–150 |
| Комфортный стартовый хост | 32GB | Kali, Windows, несколько целей или периодический мониторинг | $250–400 |
| Выделенный lab host | 64GB+ | Несколько постоянно работающих ролей и воспроизводимая инфраструктура | $500+ |
Подержанного OptiPlex или EliteDesk часто достаточно для первого уровня. Компактной альтернативой является mini PC. Для хранения данных 256GB хватит для минимальной лаборатории; 512GB обеспечит более комфортный запас, а накопитель большего объёма станет полезен, если вы храните несколько образов Windows, snapshots или данные мониторинга.
В руководстве koushikos по лаборатории 8GB RAM и SSD на 256GB указаны как минимальные требования к оборудованию, а 16GB или больше и NVMe-накопитель на 512GB — в рекомендуемой конфигурации. Ethical Hacking Institute также считает 16GB минимальным объёмом для двух или трёх одновременно работающих VM и рекомендует 32GB или больше.
Эти цифры описывают разные рабочие нагрузки. Шестнадцать гигабайт разумно использовать для Kali и одной лёгкой цели. При добавлении Windows, Ghidra или VM мониторинга нехватка памяти появляется быстро. Grover описывает запуск Windows, Kali и Ghidra на 16GB до того, как система перестала справляться с нагрузкой. Его совет прост: «купите столько RAM, сколько, по вашему мнению, вам понадобится, а затем купите ещё».
Никто не назовёт гарантированное количество VM, основываясь только на объёме RAM; результат определяют накладные расходы hypervisor, host OS, образы целей и рабочая нагрузка мониторинга. Перед покупкой дополнительного оборудования измерьте нагрузку на память своей машины.
Если у вас уже есть компьютер с 16GB и бесплатное ПО hypervisor, дополнительные расходы могут составить ноль. Покупка бывшего в употреблении бизнес-десктопа с 16GB даёт реалистичные затраты на оборудование примерно $60–150. Суммы $520–790 в руководстве koushikos описывают более полную конфигурацию, чем минимальная сборка для первых выходных.
Постройте сеть так, чтобы ошибка оставалась внутри лаборатории
«Используйте VLAN» — ленивый совет для первых выходных; сеть только для хоста проще проверить. Устанавливайте уязвимые системы только после проверки каждого виртуального адаптера.
Начальная топология:
Хост-машина подключается к изолированной виртуальной сети с Kali attacker VM и Juice Shop target
Сеть только для хоста соединяет хост и участвующие VM, не предоставляя им обычного пути в интернет. Внутренняя сеть соединяет VM друг с другом, исключая хост. NAT даёт VM маршрут в интернет; используйте его только для контролируемых обновлений, а затем удаляйте с уязвимых целей.
Bridged adapter напрямую помещает VM в ту же физическую сеть, что и ваши домашние устройства. Не подключайте уязвимые VM в bridge к домашней LAN. Один случайно включённый bridged adapter может вывести лабораторию в вашу домашнюю сеть.
Не допускайте пересечения подсети лаборатории с домашней сетью. Одинаковые частные диапазоны делают маршрутизацию непонятной именно тогда, когда вам нужно знать, куда направляется трафик.
Примеры Grover со smart TV и термостатом также показывают важный момент: DNS-фильтрация не является изоляцией. Его smart TV обходил Pi-hole с помощью жёстко заданного 8.8.8.8, а термостат устанавливал исходящие соединения с 23 внешними IP-адресами. Средства контроля, зависящие от сотрудничества устройства, слабее сетевой границы.
Docker требует такой же осторожности. Контейнеры используют общее ядро хоста, поэтому контейнеризованные цели требуют строгой изоляции от хоста и домашней сети. Для первой конфигурации target VM проще понять и проще восстановить.
Создайте Kali и одну цель за первые выходные
Используйте этот план с пятницы по воскресенье как примерное расписание. Время зависит от загрузок, оборудования хоста и способа установки цели.
Установите и изолируйте лабораторию в пятницу
VirtualBox — доступный стандартный вариант для десктопа. VMware Workstation или Player предлагает другой зрелый вариант для десктопа, а Hyper-V естественно подходит для хостов Windows. Proxmox может подождать.
Установите выбранный hypervisor. В VirtualBox откройте Tools, затем Network Manager, затем Host-only Networks. Создайте одну сеть только для хоста и оставьте DHCP включённым, если у вас нет причины управлять адресами вручную. В других hypervisor используются другие названия. Вам нужна частная виртуальная сеть без bridged connection.
Если hypervisor сообщает, что VT-x или AMD-V недоступен, проверьте BIOS или UEFI, прежде чем устранять неполадки VM.
Создайте две машины:
- Kali: один host-only adapter; добавляйте NAT только на время обновления.
- Juice Shop: один host-only adapter.
- Host: доступ к host-only network для администрирования.
Не предоставляйте каждой VM все адаптеры.
Создайте атакующую машину и цель в субботу
Установите Kali Linux в качестве attacker VM. Выделите 4–8GB RAM, если хост может это позволить, оставив достаточно памяти для host operating system. Parrot — разумная альтернатива, но в этом рабочем примере используется Kali.
Для Juice Shop используйте готовый образ VM, если он доступен из источника распространения цели. В противном случае запустите Juice Shop внутри небольшой Linux VM, единственным сетевым адаптером которой будет host-only. Не запускайте цель непосредственно в домашней сети. Если вы используете контейнер, держите контейнер и его хост в одной изолированной границе лаборатории.
Другая цель изменит упражнение. DVWA и WebGoat подходят для web testing. Metasploitable 2 охватывает более широкий вводный exploitation. Образы VulnHub предлагают другие намеренно уязвимые системы. Эти цели не являются взаимозаменяемыми.
Временно используйте NAT для обновлений, затем отключите его от Juice Shop.
Проверьте, протестируйте и подготовьте отчёт в воскресенье
Проверьте режим адаптера каждой VM в hypervisor. Конфигурация считается успешной, когда:
- Kali может отправлять ping или подключаться к сервису цели через сеть лаборатории.
- У цели один адаптер, адрес из диапазона лаборатории и отсутствует маршрут по умолчанию.
- Домашняя LAN не может обратиться к адресу цели.
- Ни у одной VM нет bridged adapter.
Из Kali проверьте адрес и таблицу маршрутизации:
ip addr
ip route
ping -c 3 <target-ip>
Определите host-only network по адресу, показанному ip addr, и маршруту, показанному ip route. Например, если у Kali адрес 192.168.56.10/24, изолированный диапазон лаборатории — 192.168.56.0/24. Используйте свой фактический диапазон и сканируйте только этот изолированный диапазон:
nmap -sn 192.168.56.0/24
nmap -sV -p- <target-ip>
Первое сканирование должно найти машины лаборатории. Второе определяет сервисы на цели. Проверьте адаптер цели и маршрут по умолчанию внутри самой VM или через hypervisor; одна только проверка адреса не доказывает изоляцию.
Откройте Juice Shop в браузере и выберите Burp Suite или OWASP ZAP. Выберите один intercepting proxy. Выполните map приложения и определите одну уязвимость. Сохраните запрос, ответ, затронутую функцию и скриншоты или вывод терминала, подтверждающие обнаружение.
Проводите всё тестирование в пределах документированной области Juice Shop. Не переходите из лаборатории на хост или в домашнюю сеть.
Завершите работу коротким отчётом, содержащим:
- Область и дату
- Топологию лаборатории
- Адрес и версию цели
- Шаги воспроизведения
- Доказательства
- Влияние на безопасность
- Устранение проблемы
Загружающаяся VM с Kali почти ничего не доказывает. Именно отчёт делает упражнение полезным.
Snapshots, разрешения и заметки — часть лаборатории
Сделайте чистый snapshot после того, как граница сети пройдёт проверки:
juice-shop-baseline-YYYY-MM-DD
Перед exploitation или крупным изменением конфигурации сделайте ещё один snapshot. Намеренно восстановите baseline и убедитесь, что Kali и Juice Shop по-прежнему взаимодействуют. Snapshots должны быть частью рабочего процесса тестирования. Используйте их как точки восстановления лаборатории.
Как отмечает ITU Online, «Хорошие лаборатории скучно обслуживать». В этом и заключается смысл. Скучная инфраструктура оставляет время для упражнения.
Записывайте:
- Имена и роли VM
- Выделенные ресурсы памяти и CPU
- Сетевые адаптеры
- Подсеть и адреса лаборатории
- Версию цели
- Выполненные команды
- Находки и доказательства
- Имена snapshots
- Шаги очистки
Если вы используете Git, не храните credentials, private samples и чувствительные данные в repository. Скрипты, заметки и write-ups могут стать полезным материалом для портфолио, если показывают, что именно вы тестировали и как пришли к результату.
Тестируйте системы, которыми владеете; для сторонних систем получите явное письменное разрешение до начала тестирования. Избегайте cracked tools или software. Лаборатория, которой вы владеете и которую изолируете, удерживает практику в пределах контролируемой вами границы.
Перед тем как считать выходные завершёнными, запишите цель. Подтвердите режимы адаптеров, восстановите baseline snapshot, сохраните доказательства и напишите remediation.
Добавьте мониторинг, когда захотите изучать detection вместе с exploitation
Blue-team lab начинается с трафика и вопроса. Пустая панель SIEM — это ещё одна задача по обслуживанию.
Оставьте Kali и цель, затем добавьте роль мониторинга. Создавайте контролируемый attack traffic и исследуйте полученные логи конечных точек и сетевую телеметрию. Shield Operations и Ethical Hacking Institute относят Wazuh к видимости конечных точек, а Zeek или Suricata — к detection, ориентированному на сеть. Elastic может централизовать события и выполнять их поиск, но также добавляет требования к ресурсам и обслуживанию.
Используйте такую последовательность:
- Начните с логов цели и атакующего.
- Добавьте Wazuh, когда понадобится видимость конечных точек.
- Добавьте Zeek или Suricata, когда понадобится network detection.
- Рассмотрите Elastic после создания рабочего процесса расследования.
В таблице распределения VM руководства koushikos для SIEM указано ориентировочное выделение 4–8 vCPU и 8–16GB RAM. Используйте это как плановый ориентир, а не как универсальный минимум. Результат определяют выбранный инструмент и объём событий.
Пусть Kali выполнит discovery против цели, а затем спросите, какие доказательства должен обнаружить защитник. Этот вопрос превращает exploit в практику detection.
Malware analysis — это отдельная лаборатория, а не следующая target VM
Malware analysis требует более строгой границы, чем обычное web testing. Планируйте выделенную detonation environment, строгие сетевые ограничения, snapshots и такие инструменты, как Cuckoo или CAPEv2. По возможности держите её отдельно от домашней сети и повседневной offensive lab.
Стерильная Windows VM может вести себя иначе, чем реальная конечная точка. Grover описывает случаи, когда malware распознаёт sandbox и отказывается выполнять detonation. Придание VM вида используемой системы для обхода такого поведения выходит за рамки этого руководства и не является безопасным шагом для новичка.
Используйте контролируемую сеть и сохраняйте чистую restore point перед анализом. Не храните в среде персональные данные и реальные credentials. Смысл заключается в containment: определите, что может покинуть лабораторию, прежде чем вводить sample.
Лаборатория с Kali и Juice Shop для первых выходных — неподходящая среда для выполнения malware. Если вы не можете объяснить, как sample не сможет попасть в домашнюю сеть, остановитесь на этом.
Переходите на Proxmox только тогда, когда текущая конфигурация становится ограничением
Proxmox — полезный следующий шаг, когда текущая конфигурация становится ограничением. Переходите на него, когда несколько постоянно работающих VM, воспроизводимые виртуальные сети или конкуренция за ресурсы превращают десктопный hypervisor в узкое место.
Разумный порядок обновления:
- Добавьте RAM.
- Увеличьте объём SSD или NVMe.
- Зарезервируйте ресурсы для мониторинга.
- Перейдите на выделенное hypervisor и сетевое оборудование, когда постоянные сервисы потребуют этого.
- Для хоста, на котором хранятся credentials, заметки или samples, добавьте полное шифрование диска и пароль BIOS; они защищают саму машину в случае потери или физического доступа к ней.
Перед каждым упражнением выполняйте одну и ту же предварительную проверку:
- Запишите цель и область.
- Проверьте режим каждого адаптера.
- Подтвердите baseline snapshot.
- Запишите условие остановки.
Затем выполните упражнение, сохраните доказательства и напишите remediation. Расширяйте лабораторию только тогда, когда следующий вопрос требует ещё одной машины.