Как стать автором
Обновить
49.76
СЕРВЕР МОЛЛ
Серверное и сетевое оборудование

Заделываем дыры в сервере приложений 1С и вокруг него

Время на прочтение 5 мин
Количество просмотров 62K


В сегодняшней статье я расскажу об уязвимостях сервера 1С в корпоративной сети.


Как показала практика, в инсталляциях с 1С все допускают одни и те же ошибки разной степени серьезности. Я не буду касаться очевидных вещей вроде установки обновлений, но пройдусь по специфике работы сервера приложений под Windows. Например, по возможности бесконтрольно манипулировать базами Microsoft SQL с помощью инструментов 1С.


Исторически так сложилось, что редко когда системные администраторы и программисты 1С работают как одна команда. Чаще всего специалисты по 1С не вникают в тонкости системного администрирования, а сисадмины не стремятся постичь нюансы работы 1С.

И получается инфраструктура с «детскими болячками», очевидными для специалиста по ИБ ― ниже привожу личный ТОП таких проблем.


Запускаем сервер правильно


По умолчанию платформа 1С при установке создает специальную учетную запись с ограниченными правами, под которой работают службы сервера ― USR1CV8. Все идет хорошо, до тех пор пока не становятся нужны ресурсы сети: например, для автоматических выгрузок-загрузок. Учетная запись по умолчанию не имеет доступа на сетевые папки домена, поскольку является локальной.


В своей практике я встречал множество способов решения этой задачи: папки с доступом на запись для группы «Все», сервер 1С под учетной записью с правами администратора домена, явно прописанные в коде учетные данные для подключения сетевого ресурса. Даже запуск сервера 1С под пользовательской сессией как обычное приложение.



Заходим на сервер по RDP, видим такое окно и получаем нервный тик.


Конечно, «захардкоженые» пароли и сетевые ресурсы с анонимным доступом на запись встречаются редко. В отличие от работы сервера 1С из-под обычной доменной учетной записи. Разумеется, с возможностью выполнить произвольный код «на сервере».


Как известно любому 1С-нику, но не любому системному администратору, в обработках 1С есть два режима выполнения процедур: на сервере и на клиенте. Запущенная в «серверном» режиме процедура будет выполнена под учетной записью службы сервера приложений. Со всеми ее правами.


Если сервер 1С работает с правами администратора домена, то потенциальный вредитель сможет сделать с доменом что угодно. Разумным выходом станет создание специальной учетной записи ― по мотивам USR1CV8, только уже в домене. В частности, ей стоит разрешить вход только на определенные серверы в оснастке «Пользователи и Компьютеры Active Directory».



Настройка входа только на разрешенные серверы.


Не лишним будет и разрешить вход на сервер только в качестве службы, отключив возможность локального (интерактивного) входа в систему. Сделать это можно через локальные политики безопасности непосредственно на сервере, либо с помощью доменных групповых политик.



Назначение прав пользователя в локальной политике безопасности.


Все то же самое касается и учетной записи сервера Microsoft SQL. Седых волос может прибавиться от вредных привычек:


  • запускать SQL с правами администратора компьютера или даже домена для удобного резервного копирования;
  • включать возможность запуска исполняемых команд через хранимую процедуру xp_cmdshell для переноса резервных копий на сетевые ресурсы через красивые планы обслуживания.

Подключаемся к SQL


Регулярно в практике встречается подключение баз данных к серверу 1С под пользователем «SA» (суперпользователь в SQL). Вообще, это не так страшно как звучит, ведь пароль от SA захэширован в файле 1CV8Reg.lst на сервере приложений. Хэш злоумышленник получить гипотетически может ― не забываем про права учетной записи сервера ― но расшифровка окажется долгой, особенно если использовать брутфорс.


Но все же не лишним будет настроить аудит доступа к этому файлу с уведомлением ответственных лиц.


Другое дело, когда программистам 1С «делегируют» обязанности DBA. Опять же, из личного опыта: сервер SQL был в зоне ответственности программистов, как и интеграция внешнего сайта с базами 1С. Итогом был пароль SA в скриптах сайта.

Для собственного успокоения стоит поставить на SA сложный пароль или вовсе деактивировать эту учетную запись. На SQL тогда нужно включить доменную аутентификацию для управления и создать для 1С отдельное имя входа с правами на необходимые базы.


Если вы не хотите оставить возможность создавать базы SQL через интерфейс 1С, то новому пользователю хватит общей роли public и db_owner непосредственно в базе 1С.


Это можно проделать через Management Studio или простым скриптом T-SQL:


USE <databasename>
CREATE LOGIN 1c_user WITH PASSWORD = 'VeryStrongPassword'
CREATE USER 1c_user FOR LOGIN 1c_user
ALTER ROLE db_owner ADD MEMBER 1c_user
GO

Пользователи 1С


Правам пользователей в 1С почему-то мало кто уделяет внимание. А ведь пользователь с правами «Административные функции» или «Администрирование» запросто выгрузит базу в .DT через конфигуратор и унесет домой ― это подарит не одно мгновение волнительного счастья вашему руководству. Поэтому стоит поймать на рюмочку чая 1С-ника и посидеть совместно над базой, чтобы узнать, какие пользователи имеют подобные права. А заодно ― чем грозит понижение их полномочий.



Право выгрузить базу у роли Полные Права в типовой 1С: Бухгалтерии 2.0.


Следующий важный момент ― запуск внешних обработок. Как мы помним, в 1С можно запускать код с правами учетной записи сервера. Хорошо, если она не имеет административных прав на систему, но все равно стоит исключить возможность запуска подобных обработок для пользователей. И не забудьте попросить специалиста по 1С «встраивать» дополнительные отчеты и обработки в базу. Хотя не во всех обработках поддерживается встраивание ― эта возможность зависит от версии 1С.



Проверить, какие типовые роли не имеют прав на открытие внешних обработок, можно в конфигураторе.


Все эти действия не только помогут защититься от потенциального «внутреннего вредителя», но и станут дополнительной преградой на пути вирусов-шифровальщиков, маскирующихся под обработки 1С.

Если все же необходим запуск внешних обработок, то неплохим вариантом контроля и подстраховки будет аудит их запуска. Штатного механизма аудита у 1С пока нет, но в сообществе уже придумали несколько обходных маневров. Внедрять эти механизмы стоит в паре со специалистом 1С, также как и настраивать уведомления о событиях в журнале регистраций базы.


Отдельно отмечу возможность настройки доменной аутентификации пользователей вместо аутентификации 1С. И пользователям будет удобнее ― меньше паролей в их памяти снижает риск появления стикеров на мониторе.


Администратор кластера


Итак, пользователи теперь не могут запускать обработки, учетная запись сервера максимально ограничена. Но есть и еще кое-что: учетная запись администратора кластера 1С, которая не создается по умолчанию.


Ее отсутствие опасно: любой человек с ноутбуком при открытом доступе к сетевым портам сервера (по умолчанию это TCP:1540) может создать там свою базу, и ограничений на запуск обработок не будет. А еще злодей сможет получить информацию по базам данных, по работающим пользователям, изменить параметры кластера и даже принудительно завершить работу определенных пользователей.


Пример скрипта на PowerShell, изгоняющего всех пользователей изо всех баз сервера:


$COMConnector = New-Object -ComObject V83.COMConnector
$agent = $COMConnector.ConnectAgent("servername")
$cluster = $agent.GetClusters()[0] 
$agent.Authenticate($cluster,"", "")
$sessions = $agent.GetSessions($cluster)
Foreach ($session in $sessions) {
$agent.TerminateSession($cluster, $session)
}

Использование подобного способа работы с сервером 1С в благих целях уже упоминалось в одной из предыдущих статей.


Создать администратора кластера не просто, а очень просто ― достаточно щелкнуть правой кнопкой на пункте «администраторы» в управлении кластером 1С, создать нового администратора, задав логин и пароль.



Создание администратора кластера 1С.


Я коснулся лишь части недоработок при настройке 1С: Предприятия. Для самостоятельного изучения рекомендую почитать до сих пор не потерявшие актуальность материалы:



Поделитесь в комментариях своими нестандартными решениями и курьезами при работе с системой 1С: Предприятие.

Теги:
Хабы:
+18
Комментарии 96
Комментарии Комментарии 96

Публикации

Информация

Сайт
servermall.ru
Дата регистрации
Дата основания
Численность
101–200 человек
Местоположение
Россия