ОКВЭД: полный справочник ОКВЭД2 (2770 записей) в едином формате «код название», resolve_okved без дефиса, импорт доп. ОКВЭД без переносов; угрозы: умный подбор — исключение неиспользуемых технологий (виртуализация, облако, мобильные, АСУ ТП, грид, суперкомпьютер, большие данные, беспроводные сети, контейнеры, smart-карты, ИИ), базовые угрозы локальных сетей
This commit is contained in:
@@ -42,8 +42,26 @@ BASE_KEYWORDS = [
|
||||
'вредоносн', 'несанкционированн', 'утечк', 'перехват', 'модификац',
|
||||
'уничтожен', 'отказ в обслуживании', 'нсд', 'биос', 'пароль',
|
||||
'криптографическ', 'шифрован', 'аутентификац',
|
||||
# базовые угрозы локальных сетей / клиент-серверных архитектур
|
||||
'доступ', 'данн', 'систем', 'конфигурац', 'целостност', 'информац',
|
||||
'программн', 'пользовател', 'авторизац', 'сеанс', 'журнал', 'реестр',
|
||||
'файл', 'память', 'буфер', 'ресурс', 'сервер', 'клиент', 'учётн',
|
||||
'учетн', 'идентификац', 'привилег', 'средств', 'сетев', 'локальн',
|
||||
]
|
||||
|
||||
# Технологии, которые по умолчанию НЕ используются на объекте.
|
||||
# Если в характеристиках объекта есть явные упоминания — группа возвращается.
|
||||
TECH_GROUPS = {
|
||||
'виртуализац': ['виртуал', 'гипервизор', 'контейнер'],
|
||||
'облако': ['облачн', 'облак'],
|
||||
'мобильн': ['мобильн', 'смартфон', 'планшет'],
|
||||
'грид': ['грид', 'суперкомпьютер'],
|
||||
'большие данные': ['больших данных', 'хранилищ'],
|
||||
'беспроводн': ['беспроводн', 'wi-fi', 'wifi'],
|
||||
'smart-карты': ['smart-карт', 'смарт-карт'],
|
||||
'машинное обучение': ['машинного обучения', 'искусственного интеллекта', 'нейросет'],
|
||||
}
|
||||
|
||||
# Объект имеет подключение к сети Интернет / сеть электросвязи
|
||||
INTERNET_KEYWORDS = [
|
||||
'удалённ', 'удаленн', 'сетев', 'фишинг', 'ddos', 'отказ в обслуживании',
|
||||
@@ -153,6 +171,21 @@ def suggest_threats_program(isys, threats=None, limit=None):
|
||||
is_asu = _is_asu(isys)
|
||||
is_network = _is_network(isys)
|
||||
|
||||
# --- Технологии, которые явно НЕ используются на объекте ---
|
||||
# Если в характеристиках объекта (описание, архитектура, ПО, сфера) нет
|
||||
# упоминаний технологии — угрозы этой группы исключаем.
|
||||
tech_context = ' '.join([
|
||||
str(getattr(isys, 'description', '') or ''),
|
||||
str(getattr(isys, 'architecture', '') or ''),
|
||||
str(getattr(isys, 'hw_sw', '') or ''),
|
||||
str(getattr(isys, 'os_sw', '') or ''),
|
||||
str(getattr(isys, 'app_sw', '') or ''),
|
||||
str(getattr(isys, 'object_type', '') or ''),
|
||||
str(getattr(isys, 'sphere', '') or ''),
|
||||
str(getattr(isys, 'net_category', '') or ''),
|
||||
str(getattr(isys, 'typical_object', '') or ''),
|
||||
]).lower()
|
||||
|
||||
# --- Слова-исключения (если встретились в названии угрозы — она неактуальна) ---
|
||||
exclude = []
|
||||
|
||||
@@ -167,6 +200,19 @@ def suggest_threats_program(isys, threats=None, limit=None):
|
||||
if is_asu:
|
||||
# АСУ: нет BIOS/виртуализации/браузера в привычном понимании
|
||||
exclude += ['биос', 'грид', 'гипервизор', 'виртуальн', 'браузер']
|
||||
else:
|
||||
# Не АСУ — исключаем угрозы АСУ ТП / технологических процессов
|
||||
exclude += ['технологическ', 'датчик', 'исполнительн', 'асутп', 'scada',
|
||||
'промышленн', 'контроллер', 'числовым программным управлением',
|
||||
'программируемых логических']
|
||||
|
||||
# Технологии, не упомянутые в характеристиках объекта → исключаем
|
||||
for tech_name, kws in TECH_GROUPS.items():
|
||||
if any(kw in tech_context for kw in kws):
|
||||
continue # технология используется — угрозы оставляем
|
||||
# Технология не упомянута — исключаем её угрозы
|
||||
for kw in kws:
|
||||
exclude.append(kw)
|
||||
|
||||
if not is_network and not is_asu:
|
||||
# Обычная ИС: неактуальны чисто сетевые/телеком-угрозы без указания
|
||||
|
||||
Reference in New Issue
Block a user