Тех. меры: только при присвоенной категории и по факту СЗИ (без СЗИ нет «Регистрации и мониторинга»/«Антивируса»); промт СЗИ: при «без категории» — базовый минимум + провести категорирование, переданы характеристики объекта (интернет/ПО/архитектура); показатель 10 и 10.1–10.7: авторасчёт по методичке ФСТЭК (операции за год / дни) и порогам ПП-127

This commit is contained in:
LocoAgent
2026-08-05 14:39:03 +04:00
parent 07bf25ebc3
commit 9f8bf3999d
5 changed files with 218 additions and 18 deletions
+35 -13
View File
@@ -298,19 +298,18 @@ BASE_ORG_MEASURES = [
'Утверждение перечня лиц, имеющих доступ к объекту',
]
# Базовый набор тех. мер
# Базовый набор тех. мер — только универсальные, не требующие конкретных СЗИ.
# Меры, зависящие от средств защиты (антивирус, СЗИ от НСД, регистрация событий
# и т.п.), добавляются отдельно по факту наличия СЗИ (DEFENSE_TOOL_MEASURES).
BASE_TECH_MEASURES = [
'Идентификация и аутентификация пользователей',
'Управление доступом',
'Ограничение программной среды',
'Антивирусная защита',
'Защита информации от несанкционированного доступа (СЗИ от НСД)',
'Регистрация и мониторинг событий безопасности',
'Резервное копирование и восстановление',
'Защита технических средств и линий связи',
]
# Средства защиты → доп. тех. меры
# Средства защиты → доп. тех. меры (по факту наличия СЗИ у объекта)
DEFENSE_TOOL_MEASURES = [
('межсетев', 'Межсетевое экранирование'),
('firewall', 'Межсетевое экранирование'),
@@ -324,6 +323,23 @@ DEFENSE_TOOL_MEASURES = [
('виртуализ', 'Защита среды виртуализации'),
('vmware', 'Защита среды виртуализации'),
('hyper-v', 'Защита среды виртуализации'),
('антивирус', 'Антивирусная защита'),
('kaspersky', 'Антивирусная защита'),
('eset', 'Антивирусная защита'),
('dr.web', 'Антивирусная защита'),
('аваст', 'Антивирусная защита'),
('avast', 'Антивирусная защита'),
('сзи', 'Защита информации от несанкционированного доступа (СЗИ от НСД)'),
('от нсд', 'Защита информации от несанкционированного доступа (СЗИ от НСД)'),
('dallas', 'Защита информации от несанкционированного доступа (СЗИ от НСД)'),
('secret net', 'Защита информации от несанкционированного доступа (СЗИ от НСД)'),
('аккорд', 'Защита информации от несанкционированного доступа (СЗИ от НСД)'),
('siem', 'Регистрация и мониторинг событий безопасности'),
('dlp', 'Регистрация и мониторинг событий безопасности'),
('мониторинг', 'Регистрация и мониторинг событий безопасности'),
('регистрац', 'Регистрация и мониторинг событий безопасности'),
('доверенная загрузка', 'Контроль (доверенная) загрузки'),
('резервн', 'Резервное копирование и восстановление'),
]
@@ -395,15 +411,21 @@ def auto_fill_security(isys, threats=None):
if not (getattr(isys, 'org_measures', '') or '').strip():
res['org_measures'] = '\n'.join(BASE_ORG_MEASURES)
# 7. Тех. меры — базовые + по СЗИ объекта
# 7. Тех. меры — базовые + по СЗИ объекта.
# Только если объекту присвоена категория значимости (1/2/3):
# для незначимого объекта технические меры не требуются.
if not (getattr(isys, 'tech_measures', '') or '').strip():
tech = list(BASE_TECH_MEASURES)
defense = ' '.join(getattr(isys, 'defense_tools_list', []) or [])
dlow = defense.lower()
for kw, measure in DEFENSE_TOOL_MEASURES:
if kw in dlow and measure not in tech:
tech.append(measure)
res['tech_measures'] = '\n'.join(tech)
cat = (getattr(isys, 'category', '') or '').strip()
has_category = cat in ('1', '2', '3')
if has_category:
tech = list(BASE_TECH_MEASURES)
defense = ' '.join(getattr(isys, 'defense_tools_list', []) or [])
dlow = defense.lower()
for kw, measure in DEFENSE_TOOL_MEASURES:
if kw in dlow and measure not in tech:
tech.append(measure)
res['tech_measures'] = '\n'.join(tech)
# else: категория не присвоена — технические меры не заполняем
return res