6.0 KiB
Информационная безопасность (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)