
Набор приложений на Python и shell-скриптов для ежедневной отправки по электронной почте xlsx-таблицы новых уязвимостей из базы данных NIST CVE и связанных с ними продуктов.
Описание проекта
Набор приложений Python и shell-скриптов для отправки по электронной почте xlsx-таблицы новых уязвимостей из базы данных NIST CVE и связанных с ними продуктов по ежедневному расписанию. Затем таблицу можно вручную интерпретировать для оценки рисков для вашей конкретной организации.
Файл: cve_manager.py
Скрипт Python, первоначально созданный Антониосом Атласисом - [email protected]
https://github.com/aatlasis/cve_manager
Изменения по сравнению с оригиналом:
Добавлен импорт библиотеки для обработки данных pandas
sudo pip3 install pandas openpyxl
Добавлено представление базы данных, объединяющее данные cve и cpe
Изменены стандартные запросы и отчёты cpe для включения строки вектора cvssv3 вместо оценки cvssv2
Изменены стандартные запросы и отчёты cpe для сортировки по дате публикации ASC, CVSS DESC и CPE ASC
Изменена функция вывода cpe в csv для автоматического сохранения копии в формате xlsx для каждого сохранённого csv
Файл: email_xlsx_attach.py
Новый скрипт Python, автор Shane Lawrence
отправляет xlsx-отчёты как вложения электронной почты через локальный smtp-ретранслятор
Файл: daily.sh
Bash-скрипт, автор Shane Lawrence
Объединяет всё в одно, что cron может запускать ежедневно
Автоматизирует следующие использования cve_manager.py:
Настройка нового сервера:
Прочтите оригинальный pdf по адресу:
https://github.com/aatlasis/cve_manager/blob/master/CVE%20Manager.pdf
Настройка python:
Требуется python 3
Сделайте себе одолжение и также установите pip3
pip3 install psycopg2, openpyxl, pandas
Необходимые компоненты:
psycopg2 - библиотеки для анализа данных
pandas - библиотеки для обработки данных (зависимость от openpyxl)
sys, argparse, os, zipfile, json, requests, re, io, csv, smtplib, base64, email, datetime
Настройка postgres:
Установите последнюю версию базы данных postgreql для вашего дистрибутива.
от root, systemctl enable postgresql
systemctl start postgresql
затем установите пароль для пользователя postgresql с помощью:
sudo -u postgres psql
\l lists databases
\du lists users
CREATE USER username WITH PASSWORD 'password';
Используйте cve_manager для создания базы данных:
Пользователь должен иметь привилегии на создание
./cve_manager.py -u postgres -ps $PASSWORD -server localhost -db $DB -ow $USER -cd
Используйте cve_manager.py для создания схемы
Пользователь должен иметь привилегии на создание
./cve_manager.py -u postgres -ps $PASSWORD -server localhost -db $DB -ct
Используйте cve_manager для загрузки данных CVE и CPE
./cve_manager.py -u $user -ps $pass -host $host -db $db -d -p -csv
Вручную загрузите и распакуйте данные CWE
wget https://cwe.mitre.org/data/csv/1000.csv.zip
unzip 1000.csv.zip
Используйте cve_manager для импорта данных NIST CVE и CPE в базу данных
./cve_manager.py -u $user -ps $pass -host $host -db $db -idb -p
Используйте cve_manager для импорта данных CWE в базу данных
./cve_manager.py -u $user -ps $pass -host $host -db $db -icwe 1000.csv
Запустите пример отчёта.
Этот пример создаёт csv и xlsx уязвимостей и затрагиваемых ими продуктов,
только с рейтингом серьёзности 7.0 или выше, созданных или обновлённых с 01 июля 2020
./cve_manager.py -u $user -ps $password -host $host -db $db -sc 7.0 -dt 2020-07-01 -cpe cpe -csv -o $reports
Отправьте xlsx-отчёты по электронной почте
Измените email_xlsx_attach.py для вашего smtp-ретранслятора, отправителя, получателей и каталога отчётов.
TODO:
Следующая итерация — понять, как включить список критического инвентаря продуктов
и создавать только отчёты, применимые к CPE из инвентаря продуктов.
Shane Lawrence
Старший советник, безопасность облачной платформы