- detect_sphere(): автоопределение сферы по ключевым словам названия/
назначения/описания объекта (здравоохранение, наука, транспорт, связь,
энергетика, банки, ТЭК, атомная, ОПК, ракетно-космическая, горная,
металлургия, химия)
- suggest_typical_object_program: фильтр по сфере в приоритете —
1) сфера из комбобокса, 2) сфера объекта (isys.sphere), 3) автодетект,
4) иначе все сферы. ОПК-объекту НЕ подбираются объекты из
здравоохранения и других сфер
- если в своей сфере совпадений нет — возвращается пусто, оператор
выбирает сферу вручную
Вкладка «Основное», кнопки под полем типового объекта:
- ⚙️ «Подобрать типовой объект (программа)»: скоринг по совпадению
значимых слов названия/назначения объекта с перечнем 392 типовых
отраслевых объектов (Распоряжение 360-р), IDF-веса (редкие слова
важнее общих) → окно с вариантами, оператор выбирает и применяет
(заполняет сферу + типовой объект)
- 🤖 «Подобрать характеристики (ИИ)»: DeepSeek предлагает назначение,
сферу, тип, архитектуру и типовой объект (из перечня 360-р) как
рекомендацию → окно с полями, оператор подтверждает/правит
Примеры: СКУД → «ИС, АСУ, ИТКС, обеспечивающие контроль и управление
доступом на территорию»; 1С:УПП → «ИС для ведения бухгалтерского учета»
Новая кнопка «⚡ Автозаполнить» в панели действий — заполняет пустые поля
логически, без выдумок:
- категория нарушителя: есть интернет → внешний, нет → внутренний
- уровень возможностей: Н1 (внутренний) / Н2 (внешний)
- виды нарушителей: по категории из словаря attacker_types.json
- угрозы: подбор программой (скоринг по характеристикам объекта)
- инциденты: выводятся из подобранных угроз по ключевым словам
- орг. меры: базовый набор (контролируемая зона, доступ, документы,
ответственные, обучение, инциденты, перечень лиц)
- тех. меры: базовые + доп. по средствам защиты объекта (СЗИ:
межсетевой экран → МЭ, антивирус, СОВ, СКЗИ, виртуализация)
Незаполненное пользователем не перезаписывает.
Проблемы:
1. Подбор программой возвращал 193 из 227 угроз (весь перечень) —
теперь скоринг по ключевым словам объекта (тип, интернет, нарушитель,
сеть), отсев нерелевантных: 72-82 угрозы вместо 193
2. Сравнение программа↔ИИ не подсвечивало совпадения: ИИ возвращает
«1. УБИ.001 …» / с лишними пробелами — сравнение шло по точной строке.
Теперь ключ сравнения — код УБИ (regex), иначе нормализованный текст;
добавлена статистика «Совпало / только программа / только ИИ»
- threat_rules: по умолчанию актуальны ВСЕ угрозы БДУ ФСТЭК, исключаются
заведомо неактуальные: нет интернета → убраны удалённый доступ/веб/почта/
беспроводные/DDoS/облачные/грид; АСУ → убраны BIOS/грид/виртуализация/браузер
(теперь 170-200 угроз на объект вместо 15 «самых похожих»)
- _has_internet уточнён: «Отсутствует» у оператора / «изолирован» / «не требуется»
→ внешней сети нет; сеть общего пользования или реальный оператор → есть
- verify.suggest_threats_ai: свежий перечень ФСТЭК (227 угроз) передаётся в промт,
ИИ выбирает из него, а не из устаревших знаний; + человекочитаемая сводка объекта
- ui: кнопки программа/ИИ без лимита 20; после подбора угрозы сохраняются в модель
(_collect_is) — при открытии словаря галочки выбранных угроз стоят
- models.from_dict: фильтрация неизвестных полей вложенных объектов — старые файлы
с удалёнными полями (attacker_characteristics) больше не падают