OpenVAS, GVM na Dockerze
OpenVAS należący do znanego projektu o nazwie GVM zalicza się do zestawu narzędzi typu trzeba mieć dla każdego współczesnego administratora, lub jak ktoś woli devopsa (prawda, że od razu brzmi lepiej?). Czy ktoś chce czy nie, temat cyberbezpieczeństwa stał się na tyle modny/istotny, że trzeba zawsze poważnie podchodzić do swoich zadań z tego zakresu. Aby zatem ustrzec się przed włamaniem najlepiej jest samemu sprawdzać swoje sieci, nawet za pomocą podstawowego zbioru wektorów, pod kątem podatności na ataki. Tak zwane testy penetracyjne (powszechnie określane jako pentesty) są tutaj bardzo pożądanym działaniem. I właśnie wspomniany na początku OpenVAS jest jednym z najlepszych środków dla zebzpieczenia się dzięki sprawdzeniu jake luki może posiadać sieć, którą się opiekujemy.
Istalacja OpenVAS od podstaw jest jak najbardziej możliwa, wymaga jednak umięjętnego poruszania się w środowisku Linuksa, oraz co najmniej średniego stopnia zaawansowania biorąc pod uwagę kompilacje kodu źródłowego. Aby w pełni uruchomić i dostroić pakiet trzeba skonfigurować poprawnie dużą liczbę zależności oraz dodatków, bez których aplikacja nie stanie się pełnowartościowym produktem.
Druga, nie mniej istotna sprawa to aktualizowanie definicji wektorów ataku, które przecież w dzisiejszych czasach zmieniają się dość gwałtownie. Jest to również proces, nad którym trzeba zapanować. Używanie do pentestów OpenVAS z niektualnymi zbiorami podatności mija się po prostu z celem.
Aby przyspieszyć proces wdrażania opisywanego narzędzia można skorzystać z kontenerów Docker. Jest to dobra wiadomość, w szczególności dla niezaawansowanych użytkowników. Niemniej próżno szukać oficjalnego źródła na portalach w rodzaju Docker Hub. Dlatego chciałem się podzielić konfiguracją, z kórej sam korzystam. Jest ona sprawdzona o tyle, że przekonałem się, iż jak na razie jest aktulizowana przez autora. Poza tym, aby pobrać najnowsze wektory wystarczy uruchomić ponownie kontener. W trakcie startu zostaną uruchomione skrypty, które zadbają o sprawdzenie stanu definicji i w przypadku konieczności zmiany wersji na nowszą wykonają to za nas.
Co zatem należy zrobić? Zakładając, że na przykład mamy już zainstalowany Docker wraz z docker-compose, oraz dla wygody środowisko graficzne do zarządzania kontenerami Portainer, przechodzimy do zakładki Stacks i budujemy nową konfigurację korzystając z poniższego kodu.
version: "3"
services:
openvas:
ports:
- "8080:9392"
environment:
- "PASSWORD=admin"
- "USERNAME=admin"
- "RELAYHOST=172.17.0.1"
- "SMTPPORT=25"
- "REDISDBS=512" # number of Redis DBs to use
- "QUIET=false" # dump feed sync noise to /dev/null
- "NEWDB=false" # only use this for creating a blank DB
- "SKIPSYNC=false" # Skips the feed sync on startup.
- "RESTORE=false" # This probably not be used from compose… see docs.
- "DEBUG=false" # This will cause the container to stop and not actually start gvmd
- "HTTPS=false" # wether to use HTTPS or not
volumes:
- "openvas:/data"
container_name: openvas
image: immauss/openvas
volumes:
openvas:
Więcej szczegółów można znaleźć na stronie https://github.com/immauss/openvas . Miłej zabawy.
MG