Commit Graph
18 Commits
Author SHA1 Message Date
LocoAgent ad54d3e0e2 Импорт: доп. ОКВЭД нарезаются по кодам (переносы внутри названий больше не рвут записи), угрозы с переносом внутри названия склеиваются (УБИ.209 «памяти\r\nядра процессора» → одна строка) 2026-08-05 14:46:39 +04:00
LocoAgent c9dffdd4ca ОКВЭД: полный справочник ОКВЭД2 (2770 записей) в едином формате «код название», resolve_okved без дефиса, импорт доп. ОКВЭД без переносов; угрозы: умный подбор — исключение неиспользуемых технологий (виртуализация, облако, мобильные, АСУ ТП, грид, суперкомпьютер, большие данные, беспроводные сети, контейнеры, smart-карты, ИИ), базовые угрозы локальных сетей 2026-08-05 14:08:53 +04:00
LocoAgent a8fa3f908c fix: угрозы — фильтр по словарю УБИ для всего от ИИ (мусор отбрасывается, УБИ.069 дополняется названием), «Подобрать угрозы» — окно с галочками (синий — программа, красный — ИИ, зелёный — совпало), «Проверить через ИИ» — вердикт + точечное применение по словарю, возвращена кнопка «Загрузить угрозы ФСТЭК» 2026-08-05 11:03:28 +04:00
LocoAgent bf75d67f5e fix: доп. ОКВЭД из DaData (устойчивый парсинг + лог), сравнение угроз (шире окно, сортировка по УБИ), кнопка «Проверить через ИИ» (check_threats_ai), честные подсказки п.8/п.9, автозаполнение ΔДоходов из балансовой стоимости КИИ, диалог _ask_amount вместо askfloat (формат «121 118 270 руб»), формулировка Бусредн по документу ФСТЭК (трёхлетний период) 2026-08-05 10:41:31 +04:00
LocoAgent 5af23ae525 fix: аудит dokogen187 — критические и высокие замечания
- api_settings: убраны реальные API-ключи из кода (env/файл) — 1.1
- verify: промт ИИ для проверки реквизитов больше не ссылается на 187-ФЗ
  как на закон о ПДн («юрист по ПДн (187-ФЗ)» → специалист по реквизитам)
- ui: дата ПП РФ №127 исправлена 08.02.2019 → 08.02.2018 (3 места)
- help_docs: группа B переименована «187-ФЗ (персональные данные)» →
  «187-ФЗ (критическая информационная инфраструктура)»
- generator: убран дубль хвоста параграфа в _highlight_unmatched
- importer: «магия дат» (числа 10001-79999 → дата Excel) теперь только
  для полей-дат (as_date), финансовые поля не ломаются
- ui (_collect_is): убраны дубли пар маппинга attacker_level/attacker_types
- ui (импорт): убрано наследие 152-ФЗ ispdnPosition/ispdnFio из маппинга
- test_generator: переписан под модель 187-ФЗ (category/sphere/object_type
  вместо pd_count/threat_type/defence_level)
- criteria_justifications: п.9 для здравоохранения согласован с кодом
  (убран «критерий неприменим» — противоречие с «применим ко всем»)
- criteria_applicability: Транспорт (добавлены п.1, п.2; убран п.10),
  Банковская сфера (добавлены п.8, п.9) — требуется экспертная сверка
- ui: Бусредн вынесен в константу DEFAULT_BUDGET_AVG (данные Минфина,
  обновлять ежегодно); автозаполнение п.9 унифицировано с авторасчётом
  (ΔБ = ΔНП+ΔНДПИ+ΔДИВ+ΔВСО+ΔНС)
- ui: п.8 — предупреждение при неполных данных (менее 5 лет доходов)
- models: поля ndpi/div/vso/ns для п.9; комментарий income_loss уточнён
- .gitignore: api_settings.json/.env не попадают в git
2026-08-05 09:16:16 +04:00
prog1764 b3ae4c22cf feat: ИИ-проверка объекта по частям (временные файлы вход/выход по блокам) 2026-08-05 01:33:43 +04:00
prog1764 d376a28184 fix: окна авторасчёта/сравнения не обрезают текст; СЗИ перенесены в «Безопасность»; ИИ-рекомендации по СЗИ; ИИ-проверка категорий ПП 127; пояснения к полям 8/9; упрощение панели угроз 2026-08-05 01:31:13 +04:00
prog1764 e4e7bb444a feat: папка dictionaries/prompts — словари промтов для каждой ИИ-кнопки
- prompts/suggest_object_params.json: жёсткие правила подбора характеристик —
  выбирать ТОЛЬКО из предоставленных списков (сферы/типы/архитектуры/
  типовые объекты), ничего не выдумывать; назначение строго по форме
  «Объект предназначен для … с целью …»; типовой объект — дословно из 360-р
- prompts/suggest_threats.json, check_security.json, check_company.json,
  declension.json — промты для остальных ИИ-кнопок
- verify.py: _load_prompt() + подключение промтов в suggest_object_params_ai,
  suggest_threats_ai, check_security_ai; ИИ получает полные списки
  (spheres/object_types/architectures) и выбирает из них
- ui.py: окно рекомендаций ИИ — галочки у каждого поля, применяются
  только отмеченные (ИИ может ошибаться в архитектуре — оператор решает)
2026-08-04 23:32:58 +04:00
prog1764 c1ad496319 feat: загрузка доходов организации из DaData (показатель 8)
- verify.py: get_company_finance_dadata(inn, token) — findById/party,
  возвращает finance (последний отчётный год) + finance_history (по годам)
- ui.py: кнопка «🌐 Загрузить доходы из DaData (по ИНН)» в блоке
  «Доходы за 5 лет (показатель 8)» — по ИНН организации подтягивает
  доходы за последние 5 лет и заполняет income_year_1..5
- если в тарифе DaData нет финансовой отчётности — понятное сообщение,
  доходы заполняются вручную
2026-08-04 23:20:04 +04:00
prog1764 dadec02665 feat: подбор характеристик объекта КИИ — программа и ИИ
Вкладка «Основное», кнопки под полем типового объекта:
- ⚙️ «Подобрать типовой объект (программа)»: скоринг по совпадению
  значимых слов названия/назначения объекта с перечнем 392 типовых
  отраслевых объектов (Распоряжение 360-р), IDF-веса (редкие слова
  важнее общих) → окно с вариантами, оператор выбирает и применяет
  (заполняет сферу + типовой объект)
- 🤖 «Подобрать характеристики (ИИ)»: DeepSeek предлагает назначение,
  сферу, тип, архитектуру и типовой объект (из перечня 360-р) как
  рекомендацию → окно с полями, оператор подтверждает/правит

Примеры: СКУД → «ИС, АСУ, ИТКС, обеспечивающие контроль и управление
доступом на территорию»; 1С:УПП → «ИС для ведения бухгалтерского учета»
2026-08-04 22:43:04 +04:00
prog1764 6c2e4a0c38 feat: подбор угроз — инвертированная логика (все угрозы минус неактуальные)
- threat_rules: по умолчанию актуальны ВСЕ угрозы БДУ ФСТЭК, исключаются
  заведомо неактуальные: нет интернета → убраны удалённый доступ/веб/почта/
  беспроводные/DDoS/облачные/грид; АСУ → убраны BIOS/грид/виртуализация/браузер
  (теперь 170-200 угроз на объект вместо 15 «самых похожих»)
- _has_internet уточнён: «Отсутствует» у оператора / «изолирован» / «не требуется»
  → внешней сети нет; сеть общего пользования или реальный оператор → есть
- verify.suggest_threats_ai: свежий перечень ФСТЭК (227 угроз) передаётся в промт,
  ИИ выбирает из него, а не из устаревших знаний; + человекочитаемая сводка объекта
- ui: кнопки программа/ИИ без лимита 20; после подбора угрозы сохраняются в модель
  (_collect_is) — при открытии словаря галочки выбранных угроз стоят
- models.from_dict: фильтрация неизвестных полей вложенных объектов — старые файлы
  с удалёнными полями (attacker_characteristics) больше не падают
2026-08-04 17:59:44 +04:00
prog1764 7158a90b76 feat: вкладка «Безопасность» — коды УБИ, автоподбор угроз (программа/ИИ), сравнение, новый UI
- угрозы ФСТЭК теперь с кодами: «УБИ.001 Угроза …» (парсинг кода из БДУ, 227 шт)
- threat_rules.py — логика программы: по характеристикам объекта (тип ИС/АСУ/ИТКС,
  интернет да/нет, нарушитель внутр./внешн.) фильтрует перечень по ключевым словам
- verify.py: suggest_threats_ai — ИИ предлагает актуальные угрозы по описанию объекта
- вкладка перестроена: компактная 2-колоночная раскладка, панель действий сверху:
  «⬇️ Загрузить угрозы ФСТЭК» | «⚙️ Подобрать (программа)» | «🤖 Подобрать (ИИ)» |
  «⚖️ Сравнить» | «🤖 Проверить безопасность через ИИ»
- окно выбора из словаря: 720x680 + поле поиска (фильтр по тексту, важно для 227 угроз)
- сравнение программа↔ИИ: окно с двумя списками, совпавшие подсвечены зелёным
2026-08-04 17:44:54 +04:00
prog1764 f04a5bd524 feat: вкладка «Безопасность» — словарики+чекбоксы, загрузка угроз ФСТЭК (БДУ) с датой актуализации, ИИ-проверка
- категория нарушителя — выпадающий список (attacker_categories.json)
- характеристика нарушителя, угрозы, инциденты, показатели критериев,
  обоснование, орг./тех. меры — списки с кнопками (+/-/редактировать/из словаря)
- словари: incidents.json, criteria_indicators.json, org_measures.json, tech_measures.json, threats.json
- кнопка «⬇️ Загрузить угрозы ФСТЭК»: парсит bdu.fstec.ru (227 угроз),
  сохраняет threats_fstec.json + дату актуализации; подпись «Актуально на: …»
  или предупреждение, если ещё не скачивалось
- кнопка «🤖 Проверить безопасность через ИИ»: DeepSeek сверяет заполненное
  с 236 приказом и даёт замечания/предложения (check_security_ai в verify.py)
- новое поле модели attacker_characteristics
2026-08-04 17:10:07 +04:00
prog1764 ed71343d92 fix: ОКВЭД импорт/DaData/словарь+интернет, доменное имя, вкладка ОКИИ → вложенные вкладки, словарики, СЗИ разбивка, адрес отдельно
- ОКВЭД: resolve_okved (словарь okved.json + DaData suggest okved2), применяется при импорте и DaData; галочки «ОКВЭД осн./доп.» в «что применять»
- DaData: показ и подстановка доп. ОКВЭД
- доменное имя: поле во вкладке «Организация» + импорт
- вкладка «Объекты КИИ»: сверху Наименование/Описание/Категория, остальное вкладками: Основное (назначение, сфера, тип, архитектура, типовой отраслевой объект — со словариками и выпадающими списками), Субъект, Сети и ПО, Безопасность (236), СЗИ, Пользователи ОКИИ
- новые словари: spheres.json, object_types.json, architectures.json, typical_objects.json
- адрес объекта — в отдельное поле (не в описание)
- СЗИ: разбивка слипшихся названий (Kaspersky...)
2026-08-04 15:33:36 +04:00
prog1764 2037925986 feat: ОКИИ — ОКВЭД (импорт+DaData), доменное имя, поля 236 приказа ФСТЭК
- ОКВЭД: починен импорт (split по запятым/точкам с запятой), добавлен okvedExtra и domainName в DEFAULT_SETTINGS + merge полей по var в load_settings (старый import_settings.json теперь дополняется)
- DaData: проверка и подстановка основного/доп. ОКВЭД
- Вкладка «Организация»: поле «Доменное имя и внешний IP» + импорт из опросника
- Вкладка «Объекты КИИ»: поля 236 приказа — сведения (назначение, сфера, тип, архитектура, типовой отраслевой объект), субъект (12 полей), сети и ПО (категория сети, оператор, цель/способ взаимодействия, ПО/аппаратные средства, ОС, прикладные), безопасность (нарушитель, угрозы, инциденты, показатели критериев, обоснование, орг./тех. меры)
- importer: распознавание полей 236 из опросника, variables: новые переменные шаблонов
2026-08-04 14:42:33 +04:00
prog1764 ce1b56066a feat: переделка под ОКИИ (187-ФЗ) — объекты КИИ вместо ИС, категории 1-3, ОКВЭД, убраны ПДн/бумажные носители
- вкладка «Информационные системы» → «Объекты КИИ», убрана «Структура объекта»
- «Тип угроз»/«УЗ» → категория значимости 1/2/3/без категории
- удалены Категории ПДн, кол-во записей, перечень/субъекты/действия с ПДн + словари
- «Пользователи ИС» → «Пользователи ОКИИ», средства защиты оставлены
- вкладка «Бумажные документы» удалена полностью (GUI + логика + модели)
- ОКВЭД: поля во вкладке «Организация», словарь okved.json, выбор галочками, импорт
- нормализация регистра адреса DaData (КАПС → нормальный)
- importer: объекты КИИ (наименование объекта, ПО, СЗИ, пользователи)
2026-08-04 13:58:23 +04:00
prog1764 da4946cb59 feat: ребрендинг под 187-ФЗ (КИИ)
- Все упоминания 152-ФЗ заменены на 187-ФЗ (заголовок окна, справка,
  импорт, переменные, docstring'и, spec)
- import_152fz -> import_187fz, direction '152fz' -> '187fz'
- autosave_152 -> autosave_187
- Опросный_лист_152_ФЗ.xlsx -> Опросный_лист_187_ФЗ.xlsx
- Промпт ИИ: 'юрист по защите персональных данных (152-ФЗ)' -> 187-ФЗ
2026-08-03 23:25:18 +04:00
prog1764 71eda2ec3f Исходный код DokoGen (генератор документов 152-ФЗ) 2026-08-03 21:46:55 +04:00