На написание данной обработки сподвигла публикация коллеги (рекомендую к прочтению). В его статье описаны основные способы повышения привилегий в системе 1С и возможность «захвата» других ресурсов предприятия. Я всё попробовал, что получилось, автоматизировал и от себя немного добавил. После прочтения статьи, у меня остался один вопрос: что делать? У администратора сервера 1С или системного администратора нет времени, чтобы отслеживать настройки всего зоопарка баз, особенно если для их доработки или анализа привлекаются внешние пользователи. Это могут быть сторонние разработчики с административными правами на конкретную копию базы или аудиторы с возможностью запуска внешних отчётов. А вот у недобросовестного внешнего пользователя, особенно подключенного к базе удалённо, есть куча времени, чтобы поизучать, покопаться...
Нужно иметь возможность быстро оценить возможности конкретного пользователя в конкретной базе. Моя идея в том, чтобы автоматизировать анализ безопасности сервера, представить результаты наглядно, а также дать возможность администратору адаптировать под свои нужды анализ сети.
Сразу важное замечание!
Программа является анализатором безопасности, а не средством взлома и по этому в ней умышлено ограничена возможность получения сведений из проверяемой системы. Например нельзя узнать пароли пользователей, аудит ведётся по заранее подготовленному массиву хэшей, также не раскрываются пароли из безопасного хранилища данных и т.д.
Как проводится аудит безопасности и какие есть ограничения.
Автоматическую проверку безопасности можно производить только в системе, в которой защита организована заранее известным образом, по этому часть функций работают только при наличии БСП. Также обработка умеет работать только на серверах под управление ОС Windows, в планах покорить Linux, но пока нет доступного сервера для экспериментов. В самой обработке и в публикации есть графическая схема с последовательностью выполнения тестов.
Функциональность основного окна.
Всего 4 кнопки:
Генератор хэшей паролей для анализа. Можно сгенерировать свои варианты паролей или взять статистически наиболее часто используемые и рассчитать для них хеши. В самой обработке уже есть предварительно посчитанный небольшой набор хэшей паролей. Данный набор будет использоваться для анализа стойкости паролей пользователей. У формы есть раздел помощи там функционал описан более подробно.
Схема анализа безопасности. Попытался в виде бизнес-процесса нарисовать алгоритм проводимого аудита.
Редактор консольных команд. Это тема отдельной диссертации конструктор команд, которые будут выполняться от имени сервера на сервере 1С. Помогает сформировать последовательность команд, выполняемых на сервере, для оценки возможности проникновения в сеть через атакуемый сервер 1С. Команды выполняются последовательно и результат выполнения предыдущих команд может использоваться в последующих. Тут мне никак не придумать «универсальный сетевой взломщик», команды должны быть написаны под конкретную сеть в содружестве с системным администратором, только он знает где хранятся чувствительные для компании данные. Для примера написана последовательность команд, которая получает все адреса сегмента сети, удаляет из них адреса локальных сетевых интерфейсов и перебором ищет доступные для пользователя, от имени которого запущен сервер, сетевые папки. Важно! Команда получения списка доступных ресурсов выполняется медленно, по этому в эти тесты отключены. Включить их можно поставив «+» в левой колонке макета «Выполняемые команды» Также у формы есть раздел помощи там функционал описан подробно.
Кнопка запуска тестов, соответственно запускает тестирование. Если для вашей учётной записи включена защита от опасных действий, то программа будет ругаться («опасность» – наше второе имя :-)), но нужно нажимать «Да» и перезапускать тест.
Описание тестов.
Описание тестов и рекомендации по усилению безопасности даны непосредственно в отчёте, но тут дам некоторые пояснения.
Поиск пользователей с правом администрирования. Данный тест проверяет наличие права «Администрирование» для всех пользователей, которым разрешён вход в программу. Я встречал случаи, когда эти права вместе с ролью «Полные права» давались неким сотрудникам просто, чтобы у них всё работало, однако данное право даёт доступ к учётным записям других пользователей, что с точки зрения безопасности совсем плохо. На мой скромный взгляд, в базе должно быть три пользователя с правами администрирования, основной администратор и его помощник, а также запасная учётная запись на всякий случай.
Поиск пользователей с правом интерактивного запуска внешних отчётов и обработок. В данном тесте важен не столько поиск пользователей с возможностью запуска и выполнения произвольного кода в вашей системе, сколько параллельный анализ прав таких пользователей. Полноправный пользователь с возможностью интерактивного запуска внешних обработок может сделать с базой 1С всё, что угодно и очень много бед натворить на сервере. Причём не обязательно он этого будет хотеть, просто для решения сугубо служебных задач скачает обработку и запустит её, а там начинка может быть любой. Не забываем про возможность хранения бинарных данных в макетах, что даёт потенциальную возможность занести вирус сразу внутрь защитного информационного контура предприятия, минуя антивирусную защиту на рабочей станции пользователя.
Udp. 14.05.2023. Нашёл тут публикацию //infostart.ru/public/1295065/, вот представьте что сможет сделать недобросовестный сотрудник вооружённый такой штукой, а если сервер 1С запущен с правами системы? Тогда вообще туши свет!
Проверка безопасного хранилища. Тут сложно определить потенциальную опасность утечки данных, по этому обработка если что-то находит в регистре, считает проверку не пройденной. Но хочу отметить, что конфигурация 1С:Документооборот версии 2.1 и Комплексная автоматизация 2.4 хранят учетные данные почты именно в этом регистре и, если, в вашей организации используется работа с почтой через 1С, содержимое этого регистра необходимо контролировать. Вот, предположим, дали вы внешнему разработчику доступ к копии базы, а он автоматически получил учетные данные всей корпоративной почты.
Аудит паролей. Тут всё по той статье, на которую я сослался в начале, некоторый набор наиболее часто используемых паролей, я взял в Инете (посчитанные по нему хэши лежат в макете «Хэши паролей»), вы можете использовать любой свой и нагененерировать из него хэшей.
Проверка прав рабочего процесса в ОС. Данный тест позволяем выявить случаи, когда службу сервера 1С запускают от имени системы или администратора. Проверка осуществляется путём попытки создания произвольного пустого файла в корне диска С:\, по идее обычный пользователь не должен иметь на это прав.
Поиск и анализ настроек сервера. Нигде не видел, чтобы файл настроек кластера защищали, но пишут, что такая возможность есть. Данный файл описывает всю структуру баз сервера 1С и СУБД, плюсом идёт возможность подключиться непосредственно к базе данных, используя доменную авторизацию.
Выполнение консольных команд. Этот модуль создан для того, чтобы можно было оценить возможности пользователя 1С, работающего от имени сервера в сети. Тут необходима адаптация под конкретную сеть. Например в сети есть папка, в которую собирают данные к совещаниям, у обычных бухгалтеров туда доступа нет, а у учётки, под которой запущен сервер? Не известно, нужно проверять, например вписать в список команд net use «имя важного сервера» (в макете «Выполняемые команды» есть похожий пример).
Обработка тестировалась на клиент-серверных базах в платформах 8.3.17.2760, 8.3.19.1726 и 8.3.22.1750.