⚠️ Важно: Docker — НЕ граница безопасности как VM. Для продвинутой малвари используйте нормальную VM со снапшотами. Docker подходит для первичной триажи и менее сложных образцов.
Краткое резюме
Docker-контейнеры для анализа малвари: изоляция (namespaces), одноразовость (--rm), воспроизводимость, лимиты ресурсов, сетевая изоляция.
Лаб-сетап:
- Сеть:
docker network create --driver bridge --internal --subnet 172.28.0.0/16 malware-net(--internalкритичен). - Образ:
FROM ubuntu:22.04+strace/ltrace/gdb/radare2/file/binutils/hexedit/tcpdump/python3+pip pefile yara-python capstone+ юзерanalyst+/samples /output. - Запуск с ограничениями:
docker run --network malware-net --cap-drop ALL --security-opt no-new-privileges:true --security-opt seccomp=default --read-only --tmpfs /tmp:rw,noexec,nosuid,size=100m --memory 512m --cpus 1 --pids-limit 100 -v samples:/samples:roи разбор флагов.
Воркфлоу:
- Статика:
file,strings,rabin2 -H,readelf -S, извлечение IOC (grep -E http, IP). - Динамика: отдельный контейнер
--network none,strace -f,ltrace,inotifywait,tcpdump -i any -w traffic.pcap. - Автоматизация:
analyze.sh(file/hashes/strings/headers/sections/IOCs поstrings.txt). - Кейс
loader.bin(иллюстративный,198.51.100.0/24,example.com): fingerprint (ELF 64-bit stripped no section header), энтропия.upx0 7.94(encrypted 2nd stage), статикаhxxp://update-cdn[.]example.com/gate.php+/tmp/.cache/.sysd, gdbbreak *0x...; x/12i $pc(xor (%rsi),%al; loop),x/sbase64 2nd stage, поведениеstrace -e network,execve(socket → connect 198.51.100.23:8443 → execve /tmp/.cache/.sysd), YARASuspected_XOR_Loader($xor_loop { 30 06 48 ff c6 48 ff c7 e2 f7 }), сетьtcpdump -r traffic.pcap(47 байт каждые 60с — beacon), цепочка static→entropy→strings→decode→beacon→signature→pcap. - Очистка:
docker stop,rmi,system prune -af --volumes, best practices (never--privileged, always--network none/internal, drop caps, read-only, лимиты, non-root,--rm), когда Docker не подходит (kernel exploits, гипервизор, APT → вложенные VM air-gapped).
🇷🇺 Перевод в процессе — выше краткое резюме. Полный материал с Dockerfile, командами и кейсом loader.bin: English version. Команды Docker, пути и сигнатуры YARA оставлены на английском.
