Создание сканера на базе OpenVas с помощью Python и технологии Docker
У меня есть проект: "Система сканирования сетевых устройств с обнаружением потенциальных угроз и отчетом по электронной почте". Мне нужно с помощью python и сканера Openvas написать код для сканирования, например, заданных адресов. Готовое решение должно быть заключено в контейнер виртуализации (например, Docker).
Я пыталась использовать Dockerfile
:
FROM python:3.9
RUN pip install python-gvm
RUN python -c "import gvm; print('SUCCESS')"
COPY main.py /app/main.py
CMD ["python", "/app/main.py"]
Примерный код в main.py, вероятнее всего не рабочий, до этого этапа еще не дошла:
from gvm.connections import UnixSocketConnection # Import UnixSocketConnection
def scan_with_openvas():
# Initialize UnixSocketConnection with the path to the OpenVAS UNIX socket
connection = UnixSocketConnection(path="/var/run/openvas/gvmd.sock")
# Initialize Gmp object with the UnixSocketConnection
with Gmp(connection=connection) as gmp:
# The rest of the code remains the same
gmp.authenticate()
targets = gmp.get_targets()
for target in targets:
print(target["name"])
new_target = gmp.create_target("TARGET_IP", name="My Target")
config = gmp.create_scan_config(name="Full and Fast", scanner="1")
scan = gmp.create_scan(target=new_target, config=config)
while not scan["status"] == "Done":
scan = gmp.get_scan(scan_id=scan["@id"])
results = gmp.get_results(scan_id=scan["@id"])
print("\n")
for result in results:
print(result)
if __name__ == "__main__":
scan_with_openvas()
Но получаю результат:
gvm.errors.GvmError: Socket /var/run/openvas/gvmd.sock does not exist
Прошу о помощи с выполнением данного задания, альтернативные идеи тоже приветствуются. Буду очень признательна за ответы и подсказки.