Нужно обработать отчёт сканеров уязвимостей, который CI сохраняет в CSV и HTML. Внутри CSV файла есть следующие колонки
- Scanner
- Component
- Package
- Type
- Vulnerability ID
- Severity
- Installed Version
- Fixed Version
Нужно в CI показать краткий отчет со списком найденных уязвимостей, важностью и в каких компонентах есть данная уязвимость.
В процессе решения наткнулся на csvkit, который не только позволяет вывести CSV в виде отформатированной таблицы, но и выполнять SQL запросыНапример моя задача решается так
$ csvsql --query 'SELECT `Vulnerability ID`,`Severity`,GROUP_CONCAT(DISTINCT `Component`) AS Components FROM `report` GROUP BY `Vulnerability ID`,`Severity` ORDER BY `Severity`' report.csv | csvlook | Vulnerability ID | Severity | Components | | ---------------- | -------- | ----------------------------------- | | CVE-XXXX-XXXXX | Critical | component8,component9,component10 | | CVE-XXXX-XXXXX | Critical | component6 | | CVE-XXXX-XXXXX | Critical | component8,component9,component10 | | CVE-XXXX-XXXXX | Critical | component2,component6 | | CVE-XXXX-XXXXX | Critical | component2,component6 | | CVE-XXXX-XXXXX | Critical | component6 | | CVE-XXXX-XXXXX | Critical | component8,component9,component10 | | CVE-XXXX-XXXXX | Critical | component8,component9,component10 | | CVE-XXXX-XXXXX | Critical | component6 | | CVE-XXXX-XXXXX | Critical | component8,component9,component10 | | CVE-XXXX-XXXXX | Critical | component8,component9,component10 | | CVE-XXXX-XXXXX | High | component6 | | CVE-XXXX-XXXXX | High | component6 | | CVE-XXXX-XXXXX | High | component8,component9,component10 | | CVE-XXXX-XXXXX | High | component6 | | CVE-XXXX-XXXXX | High | component8,component9,component10 | | CVE-XXXX-XXXXX | High | component8,component9,component10 | | CVE-XXXX-XXXXX | High | component8,component9,component10 |
В примере использованы обфусцированные данные.
Комментариев нет:
Отправить комментарий