Files
obsidian/Магазин обуви (apelsincom)/Информационная безопасность (apelsincom).md
T
2026-07-06 13:05:56 +03:00

50 lines
6.0 KiB
Markdown

# Информационная безопасность (apelsincom)
> [!warning] Гриф: internal
> Эта заметка описывает устройство защиты и слабые места — она полезна и защищающему, и атакующему. Не публиковать, доступ по необходимости. Секреты (пароли, токены, ключи) здесь не приводятся — только указание, где они лежат. Оперативный список того, что чинить, — в [[Известные проблемы и рекомендации (apelsincom)]].
## Активы и границы
Что защищаем:
- **Данные покупателей** — заказы, кабинеты (ПДн, см. ниже про 152-ФЗ).
- **Коммерческие данные** — каталог, цены, остатки, выгрузки поставщиков.
- **Доступ к управлению** — FTP, БД MySQL, админка, а также **токены REST API** (`richcode.api`).
- **Целостность сайта и API** — защита от подмены кода и несанкционированных вызовов.
Точки входа: публичный веб (HTTPS), админка `/bitrix/admin/`, FTP (порт 21), **внешний API `/api/`**, штатный `/rest/`, интеграции (1С, Яндекс.Маркет, Битрикс24). Секреты — в `bitrix/.settings.php`, `bitrix/php_interface/dbconn.php`, `bitrix/license_key.php`.
## Модель нарушителя
- **Внешний аноним** — сканирует пути Битрикса, ищет открытые бэкапы/дампы, пробует API без токена.
- **Обладатель утёкшего токена API** — действует от имени пользователя-владельца токена (права = права этого пользователя).
- **Скомпрометированный FTP/админ-доступ** — полный контроль.
## Угрозы и меры (прослеживаемость «угроза → мера»)
| Угроза | Мера | Статус |
|---|---|---|
| Раскрытие данных: бэкап `shoes.zip` и фиды в webroot | убрать из публичного доступа | **нарушено**, см. [[Известные проблемы и рекомендации (apelsincom)]] |
| Несанкционированный вызов API | токен-авторизация + белый список IP + CORS + только HTTPS (опции `richcode.api`) | включённость проверить |
| Утечка/подбор токена API | хранить токен как секрет, ротация, минимальные права пользователя-владельца | зависит от эксплуатации |
| Перехват доступа | FTPS/SFTP вместо FTP, HTTPS для API (`ONLY_HTTPS_EXCHANGE`) | FTP по 21, требует действий |
| Утечка ПДн через лог API | не логировать лишнее; ограничить доступ к HL-блоку лога | при включённом `LOGGING` |
| Инъекции/XSS, устаревшие уязвимости | актуальная версия Битрикса, «Проактивная защита» (WAF) | версия свежая; фильтр проверить |
| Подмена файлов ядра/шаблонов | контроль целостности, отказ от правок ядра, работа в `/local/` | базово соблюдается |
| Захват админки | сложные пароли, OTP, ограничение по IP | OTP-модуль есть, статус проверить |
## Приоритет для этого сайта — API
Так как наружу торчит REST API, именно он — главная нестандартная поверхность атаки. Проверьте в настройках `richcode.api`:
- `ONLY_HTTPS_EXCHANGE` — включён;
- белый список IP (`USE_WHITE_LIST_ADDRESS_FILTER`) — если API вызывает известная система;
- CORS-домены — ограничены;
- токены выданы точечно, пользователи-владельцы (поле `UF_API_TOKEN`) имеют минимальные права и состоят только в нужной группе.
> [!warning] Токен передаётся в URL
> Рабочий код `richcode.api` берёт токен из **сегмента URL**, а не из заголовка. Значит, токен попадает в логи веб-сервера, в реферер и в собственный лог модуля (HL-блок при включённом `LOGGING`). Ограничьте доступ к логам, не включайте лишнее логирование, регулярно перевыпускайте токены. Детали — [[REST API — методы и примеры (richcode.api)#Авторизация и фильтры]].
## Персональные данные (152-ФЗ)
Сайт собирает ПДн (заказы, заявки, кабинет). В подвале есть PDF политики и согласия (`/upload/docs/`). Проверьте: собирается ли согласие в формах, актуальны ли реквизиты оператора, отражена ли передача данных третьим лицам (Битрикс24, Яндекс.Маркет, виджет higgleby.tech), определён ли уровень защищённости ИСПДн (для РФ — ПП №1119, меры приказа ФСТЭК №21).
## См. также
- [[Известные проблемы и рекомендации (apelsincom)]]
- [[REST API (richcode.api)]]
- [[Доступы и окружение (apelsincom)]]