Парсим базу угроз ФСТЭК

Парсим базу угроз ФСТЭК

Как мы знаем, ФСТЭК на днях запустил портал с угрозами и уязвимостями ГИС/АСУ ТП.
Идея отличная, содержимое любопытное, но форма отображения не совсем удобна.

Кликать по каждой ссылке чтобы посмотреть каждую угрозу очень неудобно. Гораздо удобнее иметь все угрозы и уязвимости в одном файле, из которого их можно автоматически выуживать в соответствие с заданными параметрами. Для этого подойдет XLS, XLSX, XML, но никак не HTML.


name='more'>
Базу уязвимостей в удобном для работы виде можно скачать тут

С базой угроз такое не пройдет. Ссылки для скачивания нет. Намеренно это сделано или случайно - неизвестно. Я написал через форму обратной связи  (которая, кстати, не работала какое-то время) сообщение с просьбой добавить такую функцию, но пока суть до дело давайте сделаем такую базу сами.

Для этого нам понадобится cygwin  - эмулятор Bash'а для Windows. Он позволяет писать bash-скрипты и запускать их из под Windows, что очень удобно! При установке cygwin убедитесь, что вы загрузили wget.

Этот скриптик выкачает всю базу в формате html. Любопытно, что первые ~70 индексов отсутствуют. Видимо, это не первая версия базы угроз на сайте.

#!/bin/bash

for i in {1..238}; do
wget "http://bdu.fstec.ru/ubi/threat/view/id/"$i
done

Далее нам необходимо выделить из скаченных файлов непосредственно сами угрозы и их характеристики. Набор сриптиков, которые это делают, я выложил на github  (там, правда, полный бардак).

Выделяем угрозы
cat * | grep "УБИ" | grep : | cut -c 21- | rev | cut -c 6- | rev
Выделяем объекты
cat $f | grep "Объект воздействия" -A 2 | tail -1 | cut -c 25- | rev | cut -c 26- | rev
Выделяем описания объектов
cat $f | grep "Описание угрозы" -A 8 | tail -7 | tr '
' ' '
Выделяем типы нарушителей и типы воздействий .

Немного причесываем и заправляем в Excel. Готово !

Мельком взглянув на угрозы, нашел несколько ошибок . Нужно, конечно, все вычитывать...

PPS. АСУ ТП специфики в перечне угроз не заметил. 
Alt text

Домашний Wi-Fi – ваша крепость или картонный домик?

Узнайте, как построить неприступную стену

Артем Агеев

root@itsec.pro:~#