Этот скрипт предназначен для сканирования установленных пакетов на наличие уязвимостей в операционной системе Ubuntu 20.04. Он сравнивает версии установленных пакетов с информацией о уязвимостях из базы данных, чтобы найти пакеты, которые требуют обновления для устранения уязвимостей.
- Установите Python 3, если он еще не установлен.
- Установите модуль
distro, если он еще не установлен, с помощью следующей команды:
pip install distro
- Загрузите скрипт
vulnerability_scan.pyв свою рабочую директорию. - Создайте файл
vulnerability_database.txt, который будет содержать информацию о известных уязвимостях. Формат файла должен быть следующим:
CVE-2021-1234;Ubuntu;20.04;package1;1.2.3
CVE-2021-5678;Ubuntu;20.04;package2;2.3.4
...
Каждая строка файла должна содержать следующие значения, разделенные точкой с запятой:
- Идентификатор уязвимости (CVE-ID)
- Имя дистрибутива
- Версия дистрибутива
- Имя пакета
- Версия, на которую уязвимость исправлена
- Запустите скрипт следующей командой:
python vulnerability_scan.py
- Скрипт определит операционную систему и версию, исключит, если она не соответствует Ubuntu 20.04.
- Скрипт прочитает базу данных уязвимостей из файла
vulnerability_database.txt. - Скрипт прочитает информацию об установленных пакетах из файла статуса
/var/lib/dpkg/status. - Скрипт сравнит информацию об уязвимостях и установленных пакетах, чтобы найти уязвимые пакеты, требующие обновления.
- Если найдены уязвимые пакеты, скрипт выведет информацию о них, включая имя пакета, установленную версию и идентификатор уязвимости.
- Если уязвимые пакеты не найдены, скрипт выведет сообщение "No vulnerabilities found."
Скрипт зависит от следующих зависимостей:
distro- модуль Python для определения информации о дистрибутиве операционной системы. Он может быть установлен
с помощью команды pip install distro.
- Скрипт предназначен для использования на операционной системе Ubuntu 20.04. В других окружениях его работа не гарантируется.
- Предоставленная база данных уязвимостей (
vulnerability_database.txt) может быть неактуальной. Рекомендуется регулярно обновлять ее, чтобы учесть новые уязвимости и исправления. - При использовании скрипта обратите внимание на права доступа к файлам и привилегии пользователя. Для чтения файла статуса
/var/lib/dpkg/statusможет потребоваться выполнение скрипта от имени суперпользователя (с использованиемsudo). - Рекомендуется внимательно изучить код скрипта и проверить его на соответствие требованиям и безопасности вашей системы перед использованием в боевом окружении.