50 lines
6.0 KiB
Markdown
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)]]
|