Как не дать взломать сайт на Битриксе
Недавно я проверял один сайт с помощью нейросети — попросил её посмотреть на него глазами взломщика. Без доступа к админке, просто снаружи: что тут торчит, что можно скачать, за что зацепиться.
Первая же находка — файл с заметками, который разработчик написал… для нейросети. Подробная шпаргалка по проекту, чтобы ИИ-ассистенту было проще работать: как устроен сайт, где что лежит, как всё связано. Файл спокойно открывался по прямой ссылке. Любой, кто догадался бы набрать адрес, получил бы карту инфраструктуры.
Нейросеть нашла дыру, которую создала работа с нейросетью. Красиво. Давайте разберёмся, как такого не допускать — и что ещё стоит проверить на сайте на 1С-Битриксе.
Вас взламывает не хакер, а робот
Самая частая фраза перед взломом — «да кому нужен мой сайт». Никому лично. Но роботы круглосуточно обходят тысячи сайтов по одному и тому же списку: старая версия модуля, пароль admin123, забытый бэкап в корне, форма, через которую можно залить скрипт. Им всё равно, магазин у вас или визитка. Взломанный сайт пригодится для спама, фишинга или ссылок на казино.
Хорошая новость: раз атаки массовые и тупые, то и защита от них — скучная и недорогая.
Три скучные вещи, которые закрывают почти всё
Обновления. Когда в модуле находят уязвимость, выходит исправление — и одновременно о дыре узнают злоумышленники. Дальше гонка: кто быстрее, вы с обновлением или боты с перебором. Сайт, который «обновим как-нибудь потом», её проигрывает. Следите, чтобы не закончилась лицензия — без неё обновления не приходят. А чтобы узнавать о проблемах сразу, подпишитесь на официальный канал «1С-Битрикс Безопасность» в Telegram или MAX. Увидели пост про модуль, который у вас стоит, — в тот же день проверяете версию.
Доступы. У каждого человека — своя учётная запись, а не один «admin» на всех. Ушёл подрядчик — отключили его, а не меняете пароль всей команде. Пароли — длинные и нигде больше не используемые, а не admin123 и не дата рождения. А если работаете с постоянных IP, разрешите вход в админку только с них — подобрать пароль к двери, до которой нельзя дойти, не получится.
Проактивная защита. Она уже есть в Битриксе, но часто выключена. Фильтр отсекает типовые атаки, веб-антивирус следит за чужим кодом на страницах. И обязательно запустите «Сканер безопасности»: пять минут, и отчёт почти всегда приносит пару неприятных сюрпризов.
Что валяется в папке сайта
Веб-сервер честно отдаёт любой файл из папки сайта, если ему не запретить. Боты этим пользуются: проверяют типовые адреса и ждут, где повезёт. Обычно везёт с этим набором: архив бэкапа, дамп базы, лог ошибок «включил на время отладки», папка .git, копии вида init.php.bak — PHP-файл сервер выполнит, а его копию отдаст как текст, со всеми паролями внутри.
А теперь к этому списку добавились файлы для ИИ-ассистентов: AGENTS.md, CLAUDE.md, .cursorrules, папки .cursor и .claude. С ними коварная история. Чем подробнее файл, тем лучше работает ассистент, поэтому туда постепенно стекается всё: адреса серверов, логины, устройство защиты, иногда ключи. Часто его дописывает сам ассистент по просьбе «запомни на будущее», и целиком этот текст человек не перечитывает никогда. Потом файл уезжает на сервер вместе с кодом — и вот он уже по прямой ссылке.
Четыре правила:
- Никаких секретов в таких файлах. Вместо пароля — «пароль в переменной окружения такой-то». И прямо в начале файла напишите ассистенту: «не записывай сюда пароли, ключи и доступы».
- Не выкладывайте их на сервер. Добавьте в исключения выгрузки.
- Попросите разработчика закрыть служебные файлы на уровне веб-сервера: логи, дампы, бэкапы, скрытые папки и файлы ассистентов. И проверьте результат сами — просто откройте такой адрес в браузере.
- Если файл уже был открыт, считайте всё в нём утёкшим. Удалить мало: его могли скачать раньше, и он помнится в истории git. Меняйте упомянутые ключи.
Нейросеть в роли взломщика
Теперь приятная сторона. Раньше проверить код на дыры можно было только заказав аудит. Сейчас первый проход можно сделать за вечер с ИИ-агентом. Профессиональный аудит он не заменит, но типовые ошибки находит хорошо.
Важно: нужен именно агент, а не чат в браузере. Чат видит только то, что вы в него вставили, а агент сам открывает файлы проекта и ищет по ним. Подойдёт любой из популярных — Claude Code, Codex CLI, OpenCode, Cursor или Copilot в агентном режиме. Рынок меняется каждый месяц, так что не привязывайтесь к названию — принцип один.
Как запустить, чтобы он увидел весь проект:
- Работайте с копией сайта на своём компьютере, а не с рабочим сервером.
- Запускайте агента из корня сайта, чтобы он видел
/local/, шаблоны, компоненты и.htaccess. - Исключите ядро Битрикса,
/upload/и кеши. Ядро — сотни мегабайт чужого кода, агент в нём утонет. Но модули из Marketplace проверить стоит — это тоже сторонний код.
Запрос можно начать с такого:
Проведи аудит безопасности этого сайта на 1С-Битриксе. Ничего не правь.
Ищи: данные от посетителя без проверки в запросах к базе, HTML,
путях к файлам и редиректах; формы без check_bitrix_sessid();
пароли и ключи в коде и в файлах для ИИ-ассистентов;
служебные файлы, которые может отдать сервер.
Для каждой находки: файл, строка, риск и как исправить.
Ещё полезный трюк: скиньте агенту пост об уязвимости из канала безопасности и спросите, касается ли она вашего проекта. Он сам найдёт модуль, версию и место, где используется уязвимая функция.
Но проверяйте за ним
Агенты любят уверенно предупреждать о проблемах, которых нет: например, об открытой папке .git или забытом скрипте восстановления. По коду это может выглядеть правдоподобно, а проверка на сервере покажет, что папка давно закрыта, а скрипта нет. Нейросеть ошибается в обе стороны — находит то, чего нет, и пропускает то, что есть. Поэтому каждую находку проверяйте руками, а исправляйте по одной и на копии сайта.
И не отдавайте агенту лишнего: файл с паролем от базы и дампы с данными клиентов исключите, всё, что он видит, уходит на сервер провайдера. А после аудита загляните, что он записал себе в заметки. Круг замыкается: убедитесь, что этот файл не уедет на сервер.
Если всё-таки взломали
Сначала скопируйте файлы и логи как есть — по ним ищут, как вошли. Потом смените все пароли: от админки, хостинга, FTP, базы и почты, и проверьте, не появились ли новые администраторы. Найдите точку входа: сканер безопасности и контроль целостности покажут изменённые файлы, а .php в папке /upload/ — подброшенные скрипты. И только потом восстанавливайтесь из чистого бэкапа и сразу обновляйтесь. Если просто откатиться, через неделю всё повторится через ту же дыру.
Шпаргалка
- Лицензия активна, ядро и модули обновляются регулярно.
- Подписка на канал «1С-Битрикс Безопасность».
- У каждого своя учётка и нормальный пароль, бывшие подрядчики отключены.
- Проактивная защита включена, сканер безопасности запускался в этом месяце.
- В папке сайта нет бэкапов, дампов, логов и файлов ассистентов с секретами.
- Бэкапы хранятся вне хостинга, восстановление из них проверено.
- Раз в квартал — проход ИИ-агентом и ручная проверка находок.
Три мифа
«Меня защищает хостинг». Хостинг защищает сервер, а не ваш код. Старый модуль и бэкап в папке сайта — ваша зона.
«Это же просто заметки для нейросети». Боты давно проверяют стандартные адреса вроде /.env и /.git/config. Добавить к ним /AGENTS.md — одна строчка.
«Удалил файл — проблема решена». Если он был открыт, его могли скачать. Всё, что в нём было, нужно менять.
Если запомнить что-то одно: обновляйтесь, не храните лишнего в папке сайта и иногда смотрите на свой сайт глазами постороннего. Теперь для этого есть отличный помощник. А если хотите, чтобы такую проверку провёл я, — напишите, расскажу, что нашлось и как это закрыть.