Потенциальные уязвимости платформы 1С версии 8.0
Получение информации об аутентифицированных пользователях посредством чтения файла srvrib.lst
Информация о базах данных, с которыми работает сервер приложений, находится в файле srvrib.lst в каталоге с конфигурационными фалами. Для каждой зарегистрированной на сервере приложений базе данных в файле указывается строка подключения к SQL серверу, включающая пароль пользователя сервера SQL сервера при использовании смешанной модели авторизации на SQL сервере.
Получение информации об аутентифицированных пользователях посредством чтения файла srvrib.lst
Информация о базах данных, с которыми работает сервер приложений, находится в файле srvrib.lst в каталоге с конфигурационными фалами. Для каждой зарегистрированной на сервере приложений базе данных в файле указывается строка подключения к SQL серверу, включающая пароль пользователя сервера SQL сервера при использовании смешанной модели авторизации на SQL сервере.
По умолчанию права на чтение данного файла никак не ограничены.
Рекомендации:
1) Расположить сервер приложений на отдельном компьютере;
2) Закрыть доступ к конфигурационным файлам для всех пользователей;
3) Разрешить доступ на чтение файла srvrib.lst только пользователю, под котоым работает сервер приложений (обычно это пользователь USER1CV8SERVER);
4) Настроить аудит на изменения этого файла.
Возможность регистрации информационной базы без авторизации. Вариант получения файла srvrib.lst
Если пользователь имеет доступ на соединение с сервером приложений, то он имеет возможность запускать любой код на севере приложений. Пользователь, работающий в клиентском приложении 1С, не имеет привилегированного доступа ни к Серверу 1С:Предприятие 8.0, ни к Microsoft SQL Server.
Для получения привилегированного доступа пользователь должен обеспечить работу фиктивного сервера SQL . Это может быть SQL сервер, установленный на компьютере пользователя - если он является локальным администратором, либо на другом компьютере в сети, например, на личном ноутбуке. При этом пользователь должен обладать правами на создание базы данных на фиктивном сервере SQL, что в случае подключения к сети личного ноутбука, не представляется непреодолимым препятствием.
Методология использования уязвимости
Через клиентскую часть Пользователь регистрирует пустую информационную базу на Сервере 1С:Предприятия, которая храниться на фиктивном SQL-сервере.
После регистрации информационной базы, пользователь может создать в ней конфигурацию, содержащую серверные модули, исполнение которых будет производиться на сервере 1С:Предприятие. Выполнение этих модулей буде производиться в рамках прав доступа, с которыми работает сервер приложений.
При выполнении на сервере доступны некоторые потенциально небезопасные способы доступа к файловой системе сервера приложений и некоторым COM-объектам. Возможно чтение файла srvrib.lst, в котором в явном виде указываются пароли и имена пользователей SQL сервера, на котором находятся основные информационные базы.
Рекомендации:
1) Ограничить подключение к сети посторонних компьютеров;
2) Настроить firewall на сервере БД таким образом, чтобы он поддерживал соединение только с подлинным сервером приложений;
3) Запретить вход на компьютерах пользователей под локальной учетной записью, входящей в группу Administrators.
Неавторизованный вход в Конфигуратор
Если пользователь тем или иным способом получил прямой доступ к базе данных на SQL сервере, то пользователь сможет запустить Конфигуратор системы без авторизации.
Методология использования уязвимости
Информация о списке пользователей хранится в таблице Params в базе данных SQL сервера. В поле FileName со значением «users.usr» хранится информация о пользователях.
После изменения значения в этих полях, система не сможет найти список пользователей и позволит запустить Конфигуратор без авторизации.
Рекомендации:
1) Использовать триггеры на уровне MS SQL Server. В качестве побочного отрицательного эффекта могут возникнуть проблемы при обновлении версии платформы или изменении списка пользователей;
2) Использовать журнал регистраций 1С, обращая внимание на входы в систему в режиме конфигуратора без указания пользователя;
3) Держать постоянно запущенным SQL Profiler, что можетнегативно сказаться на производительности системы;
DOS-атаки на ключ защиты
Лицензионная 1С использует защиту с помощью HASP-инструментария от компании Aladdin. При работе в сетевой версии для раздачи HASP-ключей необходима установка HASP License Manager, который производит выдачу ключа каждому клиенту. По умолчанию он работает на 475 порту.
Методология использования уязвимости
С помощью специальных средств возможна атака на этот порт, после чего происходит отказ работы Менеджера Лицензий и невозможность работы пользователей.
Рекомендации:
1) Сменить порт по умолчанию с 475 на какой-либо другой;
2) На сервере, на котором установлен Менеджер Лицензий, должен быть установлен и настроен firewall.
Выполнение кода, не содержащегося в конфигурации
С помощью средств внутреннего языка 1С возможно исполнение кода, изначально не заложенного в конфигурации.
К таким средствам языка запросов относятся:
1) Процедура Выполнить(<Строка>) . Позволяет выполнить фрагмент кода, который передается ему в качестве строкового значения;
2) Использование внешних отчетов и обработок. Позволяет обойти систему безопасности и нарушить работу сервера приложений. Например, в типовом решении УПП, у всех ролей есть права на работу со справочником дополнительных печатных форм, то позволяет использовать любые внешние обработки.
Рекомендации:
Для интерактивного запуска внешних обработок можно создать отдельную роль и добавить её всем пользователям, которые должны использовать внешние обработки.
Другие уязвимости стандартных механизмов платформы 1С 8.0
Использование внешних отчетов и обработок. Позволяет обойти систему безопасности и нарушить работу сервера приложений. Например, в типовом решении УПП, у всех ролей есть права на работу со справочником дополнительных печатных форм, то позволяет использовать любые внешние обработки.
Обмен данными в распределенной базе. Позволяет выгрузить данные в периферийную базу.
Обмен данными XML. Позволяет задавать в правилах обмена обработчики событий загрузки и выгрузки объектов, с помощью процедуры Выполнить(). Для большинства ролей типовых решений обмен данными XML разрешен.
Консоль отчетов и универсальные отчеты. Позволяют выполнять любые запросы к информационной базе, несмотря на систему прав 1С. Пользователь может получить «лишнюю» информацию, либо выполнить запрос, который захватит все ресурсы сервера.
Общие рекомендации по настройке прав доступа
В заключение приведем общие рекомендации по настройке системы безопасности доступа к данным:
с которыми работает сервер приложений, находится в файле srvrib.lst в каталоге с конфигурационными фалами. Для каждой зарегистрированной на сервере приложений базе данных в файле указывается строка подключения к SQL серверу, включающая пароль пользователя сервера SQL сервера при использовании смешанной модели авторизации на SQL сервере.
По умолчанию права на чтение данного файла никак не ограничены.
Рекомендации:
Возможность регистрации информационной базы без авторизации. Вариант получения файла srvrib.lst
Если пользователь имеет доступ на соединение с сервером приложений, то он имеет возможность запускать любой код на севере приложений. Пользователь, работающий в клиентском приложении 1С, не имеет привилегированного доступа ни к Серверу 1С:Предприятие 8.0, ни к Microsoft SQL Server.
Для получения привилегированного доступа пользователь должен обеспечить работу фиктивного сервера SQL . Это может быть SQL сервер, установленный на компьютере пользователя - если он является локальным администратором, либо на другом компьютере в сети, например, на личном ноутбуке. При этом пользователь должен обладать правами на создание базы данных на фиктивном сервере SQL, что в случае подключения к сети личного ноутбука, не представляется непреодолимым препятствием.
Методология использования уязвимости
Через клиентскую часть Пользователь регистрирует пустую информационную базу на Сервере 1С:Предприятия, которая храниться на фиктивном SQL-сервере.
После регистрации информационной базы, пользователь может создать в ней конфигурацию, содержащую серверные модули, исполнение которых будет производиться на сервере 1С:Предприятие. Выполнение этих модулей буде производиться в рамках прав доступа, с которыми работает сервер приложений.
При выполнении на сервере доступны некоторые потенциально небезопасные способы доступа к файловой системе сервера приложений и некоторым COM-объектам. Возможно чтение файла srvrib.lst, в котором в явном виде указываются пароли и имена пользователей SQL сервера, на котором находятся основные информационные базы.
Рекомендации:
Неавторизованный вход в Конфигуратор
Если пользователь тем или иным способом получил прямой доступ к базе данных на SQL сервере, то пользователь сможет запустить Конфигуратор системы без авторизации.
Методология использования уязвимости
Информация о списке пользователей хранится в таблице Params в базе данных SQL сервера. В поле FileName со значением «users.usr» хранится информация о пользователях.
После изменения значения в этих полях, система не сможет найти список пользователей и позволит запустить Конфигуратор без авторизации.
Рекомендации:
1) Использовать триггеры на уровне MS SQL Server. В качестве побочного отрицательного эффекта могут возникнуть проблемы при обновлении версии платформы или изменении списка пользователей;
2) Использовать журнал регистраций 1С, обращая внимание на входы в систему в режиме конфигуратора без указания пользователя;
3) Держать постоянно запущенным SQL Profiler, что можетнегативно сказаться на производительности системы;
DOS-атаки на ключ защиты
Лицензионная 1С использует защиту с помощью HASP-инструментария от компании Aladdin. При работе в сетевой версии для раздачи HASP-ключей необходима установка HASP License Manager, который производит выдачу ключа каждому клиенту. По умолчанию он работает на 475 порту.
Методология использования уязвимости
С помощью специальных средств возможна атака на этот порт, после чего происходит отказ работы Менеджера Лицензий и невозможность работы пользователей.
Рекомендации:
Выполнение кода, не содержащегося в конфигурации
С помощью средств внутреннего языка 1С возможно исполнение кода, изначально не заложенного в конфигурации.
К таким средствам языка запросов относятся:
Рекомендации
Для интерактивного запуска внешних обработок можно создать отдельную роль и добавить её всем пользователям, которые должны использовать внешние обработки.
Другие уязвимости стандартных механизмов платформы 1С 8.0
Использование внешних отчетов и обработок. Позволяет обойти систему безопасности и нарушить работу сервера приложений. Например, в типовом решении УПП, у всех ролей есть права на работу со справочником дополнительных печатных форм, то позволяет использовать любые внешние обработки.
Обмен данными в распределенной базе. Позволяет выгрузить данные в периферийную базу.
Обмен данными XML. Позволяет задавать в правилах обмена обработчики событий загрузки и выгрузки объектов, с помощью процедуры Выполнить(). Для большинства ролей типовых решений обмен данными XML разрешен.
Консоль отчетов и универсальные отчеты. Позволяют выполнять любые запросы к информационной базе, несмотря на систему прав 1С. Пользователь может получить «лишнюю» информацию, либо выполнить запрос, который захватит все ресурсы сервера.
Общие рекомендации по настройке прав доступа
В заключение приведем общие рекомендации по настройке системы безопасности доступа к данным: