Как открыть 1с без ключа защиты

Обновлено: 25.06.2022

Данная статья содержит обсуждение проблем защиты 1С, в том числе криптозащиты, однако это не означает, что Поликом Про поставляет криптографические решения подлежащие лицензированию ФАПСИ.

О безопасности 1С администраторам и опытным пользователям

Данная статья рассчитана на 2х лиц в компании использующей 1С: Предприятие.

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

Второе лицо, это системные администраторы, обеспечивающие безопасность 1С: Предприятия. Анализируя разделы взлом вы сможете получить представление о типовых атаках. В разделах "Защита" содержатся рекомендации по организации противодействия взлому.

Взлом и защита 1С в локальной и сетевой версии

Взлом обычно состоит из 2х стадий. Первая стадия это похищение базы методом копирования, вторая стадия это анализ похищенной базы. Для копирования базы пользователь обычно использует штатные средства Windows типа Explorer, с помощью которых копирует на дискету DBF-файлы базы.

Анализ похищенной базы обычно производится с помощью помошника-студента. Как правило, анализ производят в Excel

Обратите внимание, данному методу взлома невозможно противодействовать используя программные решения на языке 1С. Похитителю не нужно взламывать пароли и обходить программу, он получает доступ к данным сразу мимо 1С. Это важный комментарий относительно "детского сада" в защите 1С. Мне приходилось встречать шарлатанов, которые предлагают сделать "примочку" в конфигурации 1С для "100% защиты". Это просто потерянные деньги, защита должна прикрывать данные.

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

Взлом и защита 1С для Терминального Сервера

Microsoft Terminal Server пользуется заслуженной репутацией хорошего решения, если с 1С работают 5-10 пользователей и у многих плохие компьютеры. В случае использования терминала пользователь работает с программой не на своей машине, а на терминальном сервере. Управляет пользователь программой через специальное окно терминала. Терминал удобен тем, что позволяет работать 1С на слабых и старых машинах. Другой аспект терминала - это возможность повысить безопасность 1С. Повышение безопасности не происходит автоматически с установкой терминала, требуется настройка, причем серьезная. Смысл настройки состоит в том, что бы спрятать на терминале от пользователя средства копирования файлов и дать ему работать только с 1С. Если терминал настроен правильно, то после регистрации пользователь сразу оказывается в 1С, именно такой вариант мы и рассмотрим.

Уверенность многих менеджеров в надежности защиты MS Terminal Server только облегчает задачу. Взлом базы под терминалом также обычно состоит в копировании базы и последующем ее анализе. Если анализ в целом делается также, то копирование базы требует некого трюкачества от пользователя. Первое что проверяет взломщик, это то, что администратор схалтурил в настройке терминала. Запуск 1С при старте терминала можно настроить на клиенте и на сервере. На клиенте проще настроить и большинство администраторов идут таким путем. Для снятия автозапуска 1С с клиента требуется войти в Client Connection Manager, зайти в свойства соединения и убрать галочку "Start the following program". После этого взломщик входит в терминал, но попадает не в 1С, а на Desk Top и копирует базу.

Если администратор хорошо поработал над безопасностью, тогда может сработать один из следующих методов. Оказавшись в 1С пользователь нажимает Ctrl+O или Ctrl+S, появляется окно запроса файла. В имя файла вводят *.DBF, затем переходят в каталог базы 1С, выделяют ее, удерживая клавишу Shift, и копируют в Clipboard нажав Ctrl+Ins. Затем листают в окне каталоги наверх пока не найдут Network Neighborhood (Сетевое окружение). Обычно открывают по сети свою машину и копирую базу на ее сетевую папку нажав Shift-Ins. Сетевая папка может быть создана и на дисководе через закладку Sharing в свойствах папки дискеты.

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

Прослушивание сети. Многие питают иллюзию относительно того, что информацию, которую передает терминал по сети не прослушать. Вытащить из терминального протокола какой пароль в 1С набирает пользователь элементарная задача, если используется устаревший Windows NT Server Terminal Edition (STE).

Некоторые мероприятия по защите мы уже затронули рассматривая нападение. Первое что нужно сделать это настроить "Start the following program at logon" на сервере. Правда тут есть тонкий момент, при настройке "в лоб", пользователи потеряют доступ к ресурсам домена. Стоит подумать и проконсультироваться перед установкой терминала, тем более, что неправильно поставленные лицензии терминала фактически "прогорают".

Следующий момент, мы можем закрыть от пользователя ненужные приложения через средства NTFS. Однако, как видно выше, пользователь может использовать средства копирования фактически ни чего не запуская на сервере. Интересный момент, отключить в 1С панель "Файл" с ее Ctrl+O и Ctrl+S нельзя. Единственно надежный вариант это закрыть файловый порт на терминальном сервере. Но в данном случае перестанет работать печать по сети, резервное копирование на аварийный сервер и т.д. Для небольшой организации это серьезная проблема, т.к. сервер дорогая штука и хочется его использовать многофункционально, а для средней организации отсутствие сетевой печати это просто не серьезно. Я уже не говорю о том, что придется наложить запрет на использование Microsoft Office совместно с 1С. В противном случае, даже с закрытым портом, базу распотрошат на сервере без копирования. В общем, чем больше мы отключим сервисов, тем безопаснее сервер, можно его и вообще выключить, он будет совсем безопасным, только кому он такой нужен? Для нормальной работы придется открыть целый ряд портов: 25, 53, 80, 110, 119 и др. Все это потенциальные дыры в защите сервера, да и по самому порту терминала (3389) можно провести атаку класса DoS.

Прослушивание сети. Следует отметить, что наиболее распространенный терминальный сервер STE легко прослушать, многоуровневое шифрование терминала реализовано в Windows 2000. Решение с высокой безопасность обычно собирают на базе Citrix MetaFrame, т.к. данный продукт имеет целый набор серьезных средств защиты (Citrix Secure Gateway, SSL 128bit, SecureICA, Socks 4/5, Ticketing и др.) Однако даже для 10 рабочих мест эта система вам обойдется примерно в $5000. Прибавьте сюда еще апгрейд сервера. Терминальный сервер Microsoft идет бесплатно в Windows 2000, но за клиентские места все равно надо платить по $400 за каждый пакет из 5 лицензий.

Внимание! В РФ использование криптографии требует лицензирования ФАПСИ. Использование криптографических средств без данной лицензии является преступлением.

Терминальный сервер как минимум позволяет повысить трудоемкость взлома, повышение безопасности данного решение требует изЪятия у пользователей целого ряда сервисных функций и возможностей. Другой аспект - чрезвычайно высокая стоимость решений с высоким уровнем безопастности на базе терминального решения: от $5000 до $10000.

Взлом и защита 1С для Microsoft SQL Server

Если Microsoft Terminal Server не является специализированным средством предназначенным для защит баз данных, то Microsoft SQL Server (MS SQL) содержит в себе самые мощные средства безопасности, какие только можно применить к 1С.

Однако стандартное 1С: Предприятие не использует средства разграничения доступа MS SQL и каждый пользователь работает с базой с полными правами (Database Owner, DBO). На первый взгляд это ужасает, но не все так плохо. Логин и пароль DBO простой пользователь не знает, он хранится в зашифрованном виде в файле 1CV7.DBA. Подобный подход 1С к организации безопасности на MS SQL кажется дилетантизмом только на первый взгляд. Многие конкуренты 1С производящие программы под MS SQL заявляют как свое конкуретное преимущество, то что авторизация пользователей в их приложении делается средствами самого MS SQL. Тонкость заключается в том, что для эффективной организации защиты средствами MS SQL требуется исключить доступ пользователей к таблицам базы, а разрешить только манипуляции через так называемые представления (view) и хранимые процедуры (stored procedure). Хотя частенько заявляется, что это все есть, а реально этого нет, программисты не успевают делать новые функции, куда им до защиты данных. Если в вашей организации используется подобная программа под MS SQL, вы можете убедится в отсутвии ее безопасности просто подключившись к базе через Microsoft Query используя своего пользователя и его пароль. Вероятность 90%, что вы сможете просматривать таблицы. Как видим подход 1С надежнее, причем MS SQL 2000 включает в себя средства для поддержки аналогичного вида безопасности (Application Security Role).

Проблема защиты 1С для MS SQL, точнее общая проблема защит класса Application Security Role, заключается в том, что даже теоретически не обеспечить надежную шифрацию логина и пароля DBO. Любая криптостойкая защита базируется на том, что программа не содержит в себе всей информации необходимой для расшифровки данных. Обычно отсутвующие данные - это пароль пользователя.

Если взломщик знает пароль хоть одного пользователя 1С, при любой криптозащите он сможет расшифровать пароль DBO, т.к. владеет 100% исходной информации для расшифровки.

Взлом 1С для SQL обычно состоит из 2х стадий. Первая стадия это дешифрация пароля DBO. Вторая стадия это анализ данных через прямое подключение к MS SQL с помощью Microsoft Query и Excel. Вторая стадия может состоять и в копировании базы, но это делают реже.

Дешифрация пароля DBO. Надо сказать, что специалисты 1С представляя безнадежность защиты пароля DBO применили совсем слабый метод криптования (XOR-шифрация). Поэтому дешифрация пароля производится очень легко. Для этого обычно пытаются скопировать файл 1CV7.DBA и затем его дешифровывают программами типа unsql.exe. Другой метод не требует копирования файла, а строится на запуске троянской конфигурации или внешнего отчета 1С, которые на макроязыке 1С содержат алгоритм дешифрации пароля.

Следует отметить, что использование криптографических средств в 1С потребует лицензирования ФАПСИ.

После получения пароля DBO взломщик обычно приступает к анализу данных в базе используя Microsoft Query и Excel.

Скопировать базу MS SQL не слишком простое занятие, т.к. это не сделать путем копирования файлов. Требуется специальная программа, например Data Migration Wizard, с помощью которой можно скопировать базу 1С из SQL в виде DBF-файлов себе на диск.

Также следует отметить, что возможен взлом 1С для SQL путем анализа временных файлов, в которых 1С содержит значительную часть БД.

Надо сказать, что в случае MS SQL администратор может развернуть средства аудита, которые позволят заметить несанкционированный доступ к базам из Microsoft Query и копировщиков данных. Это можно сделать используя SQL Profiler. Однако требуется специальная и очень серьезная настройка профайлера. В противном случае можно не заметить взлом среди тысяч легальных команд, и кроме того, без настройки профайлер в несколько раз снижает скорость работы БД.

MS SQL позволяет задействовать шифрование при передаче данных через SSL. Однако помните, что данная деятельность требует лицензирования ФАПСИ..

Другой важный момент, это настройка входа в базу не под sa, а под отдельным пользователям. Следующее действие, это разделение системы на несколько отдельных баз 1С. Такими средствами можно минимизировать ущерб, но в целом дыры для взлома остаются.

Для решения проблем безопасности 1С для SQL требуется задействовать режим Row Level Security из MS SQL. Однако для этого требуется специальный продукт.

1С: Предприятие для SQL является самой защищенной версией данного приложения. Однако, на текущий момент существуют методы взлома 1С для SQL, которые в состоянии реализовать опытные пользователи.

Для обеспечения безопасности базы для MS SQL требуется независимый аудит сервера и разворачивание серьезной защиты поверх 1С. В качестве примера такой защиты можно привести "Защита 1С: Предприятия для SQL"

Взлом и защита 1С для Microsoft SQL Server под Microsoft Terminal Server

Использование 1С под Microsoft SQL Server под Microsoft Terminal Server одновременно позволяет сочетать защиту данных систем. Описанные ранее методы взлома и защиты в целом верны для данного комплекса. Отметим только несколько отличительных моментов. Взлом и защита строятся вокруг расшифровки пароля DBO, на данном этапе ключевой момент защита 1CV.DBA от копирования средствами Microsoft Terminal Server. Как и в случае с DBF под Microsoft Terminal Server абсолютной защиты тут не построить. Далее защита строится на блокирования доступа к MS SQL. Один из основных методов тут закрытие порта MS SQL, если MS SQL и Microsoft Terminal Server стоят на одной машине. Вариант далеко не идеальный с точки зрения стоимости оборудования и потребительских качеств системы. Хотя абсолютной защиты и в данном случае нет, наиболее устойчивые к взлому варианты можно построить с помощью продуктов, которые задействуют встроенные средства безопастности MS SQL.

Взлом без взлома

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

Проблема разграничения доступа на уровне подмножеств документов заслуживает отдельной статьи, отметим общие подходы к ее решению.

1) Несколько баз данных 1С. Например, по одной базе для каждого подразделения. Такой подход быстро реализуется, но затем возникают проблемы с повторным вводом информации, переброской данных между базами и получением консолидированной отчетности. В случае использования баз под управлением MS SQL можно использовать службу DTS для передачи информации между конфигурациями, но это только отчасти решает проблему.

2) Доработка конфигурации 1С с реализацией разграничения. Следует отметить, что это достаточно дорогой проект. Также следует отметить, что такое решение не гарантирует разграничение доступа на физическом уровне. В результате появляется много дыр. Самая большая проблема это то, что приходится вручную программировать доступ во всех документах, отчетах и журналах. Очень велика вероятность, что из-за ошибки программиста пользователь сможет подобрать такие настройки отчета или журнала, которые дадут ему доступ к нужной инфорации. Другая проблема, это возможность анализа временных файлов 1С и прослушивания сети для взлома.

3) Формирование отчетов в Excel на базе системы OLAP из MS SQL. Смысл заключается в том, что отчеты можно получать не в 1С, а в Microsoft Excel через сервис OLAP, который входит в MS SQL. Данный сервис позволяет сконфигурировать безопастность для пользователей. Например, можно указать статистику по каким клиентам может просматривать пользователь, а по каким нет. Важное замечание, большинство настольных OLAP-решений с маркой "1С: Совместимо" не используют средства OLAP из MS SQL и не безопасны с точки зрения доступа к данным.

4) Использование безопасности на уровне записей базы данных (Row Level Security). В данном случае пользователю 1С для SQL закрывается доступ к части обЪектов на уровне сервера. Такое решение быстро и дешево внедряется, не требуется изменения конфигурации 1С. Однако для включения Row Level Security с 1С требуется установка специальной программы, например "Защита 1С: Предприятия для SQL". В основе Row Level Security лежит использование Restricted View.

Все версии 1С на основе DBF-файлов достаточно легко могут быть взломаны. Организовать эффективное противодействие этому чрезвычайно сложно. Можно организовать некоторое противодействие взлому с помощью MS Terminal Server и Citrix MetaFrame. Однако данное решение будет стоит довольно дорого и потребует изЪятия у пользователей целого ряда возможностей.

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

Приобретая программу 1С, в комплект поставки включается лицензия на данное программное обеспечение. Лицензия может быть представлена в виде:

  • аппаратного ключа — специальной флешки для установки в USB-порт компьютера;
  • программного ключа лицензии – пинкода программной защиты.

1С: Предприятие поддерживает одновременное использование аппаратной лицензии и программной при работе с информационной базой.

Использование программной лицензии

При использовании программной лицензии файл лицензии сохраняется в специальной папке компьютера и имеет расширение *.lic. Файл с лицензией может располагаться в различных местах файловой системы:

  • Каталог конфигурационных файлов конкретной версии платформы: C:\Program Files (x86)\1Cv8\8.3.XX.YYY\licenses.
  • Каталог пользователя от имени которого работает система: %AppData%\1C\licenses.
  • Каталог пользователя компьютера: %ProgramData%\1C\licenses.



Также могут быть и другие места хранения в зависимости от версии ОС Windows. Самый простой способ найти лицензию — через поиск по строке *.lic.

Поиск должен найти файл для 1C формата *.lic. Если нашлось несколько таких файлов, то, скорее всего, эти файлы остались от предыдущих активаций 1С, поскольку на каждую новую активацию 1C создается новый файл. Актуальным считается файл с самой свежей датой.

В файле содержится закодированная информация о количестве лицензий и данных компьютера и его параметрах.

Лицензия «привязывается» к компьютеру по параметрам:

  • сетевое имя;
  • сетевой адаптер и его параметры;
  • материнская плата;
  • жесткий диск;
  • процессор;
  • оперативная память;
  • операционная система (дата установки и серийный номер).

Открыть файл можно с помощью программы Блокнот.


Файл однопользовательской лицензии для конфигурации 1С Бухгалтерия предприятия (базовая версия).

Лицензия не обнаружена — что делать


Также, по каким-то причинам файл лицензии может быть поврежден. В этих ситуациях необходимо восстановить лицензию, нажав на ссылку Получить лицензию .


После выбора способа получения лицензии нажимаем кнопку Далее .


При этом указываем полученный при покупке 1С пинкод. Посмотреть пинкоды можно в конверте, который поставляется вместе с конфигурацией.


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

В открывшемся окне вставляем данные из файла.


Следуем шагам установщика по кнопке Далее до кнопки Готово и сохраняем полученную лицензию.

Использование аппаратного ключа защиты

Ошибка «Лицензия не обнаружена» может возникнуть и при использовании аппаратного ключа защиты программы. В этом случае, первое, что необходимо сделать — проверить, вставлен ли ключ в порт USB. Зачастую бывает, что ключ извлекли или пошевелили и компьютер его просто не видит.

При работе с сетевым ключом, могут быть и другие причины:

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

В окне запуска программы PDF перейдите по кнопке Настройка и проверьте выставление флажка Использовать аппаратную лицензию (ключ защиты) .


Флажок выставляется при установке платформы, когда происходит установка драйвера аппаратных ключей защиты. Необходимо проверить, возможно, при установке платформы его не установили.


При проблемах с драйвером, его можно установить (переустановить), открыв приложение 1С по кнопке Пуск — Все программы — 1С Предприятие . В разделе Дополнительно видим команды:


Нажав ссылку Установка драйвера защиты , система автоматически его переустановит.


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

Помогла статья?

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

Похожие публикации

(6 оценок, среднее: 3,00 из 5)

Публикацию можно обсудить в комментариях ниже.
Обратите внимание!
В комментариях наши эксперты не отвечают на вопросы по программам 1С и законодательству.
Задать вопрос нашим специалистам можно в Личном кабинете

Вы можете задать еще вопросов

Доступ к форме "Задать вопрос" возможен только при оформлении полной подписки на БухЭксперт8

Нажимая кнопку "Задать вопрос", я соглашаюсь с
регламентом БухЭксперт8.ру >>

В этой статье описаны способы обхода аппаратных систем защиты. В качестве примера рассмотрена технология HASP (Hardware Against Software Piracy), разработанная компанией Aladdin Knowledge Systems Ltd. В прошлом данная технология являлась одной из самых популярных аппаратных систем защиты ПО.

Мощью аппаратной защиты HASP пользуются многие серьезные разработчики софта, которые не хотят, чтобы их продукт несанкционированно распространялся. Хаспом, например, защищаются пакеты "1С.Бухгалтерия" или "1С.Предприятие", без которых не может прожить ни одно более или менее организованное дело. Популярный юридический справочник "КонсультантПлюс" также защищает доступ к данным с помощью электронных ключиков. Чтобы воспользоваться вышеупомянутым или другим не менее дорогостоящим софтом, не платя никому ни копейки, недостаточно просто полазить по Сети в поисках txt’шника с ключиками. Однако хакер всегда разберется, что делать с защитой, пусть и аппаратной. И паяльник ему для этого не понадобится.

Взглянем

Утрируя, можно сказать, что HASP состоит из двух частей: аппаратной и программной. Аппаратная часть — это электронный ключик в виде USB-брелка, PCMCIA-карты, LTP-девайса или вообще внутренней PCI-карты. Установленный софт будет работать только на той машине, в которую воткнут электронный ключ. Собственно, неплохо было бы отучить софт от такой неприятной для кошелька привычки.

Программная часть — это драйвера электронного ключа и различный софт, привязывающий электронные ключи с их драйверами непосредственно к защищаемому продукту или к каким-то зашифрованным данным. В статье мы рассмотрим и обойдем защиту, использующую USB-брелок — наверное, наиболее популярный электронный ключ на сегодня.

Механизм системы защиты

Сам брелок нас почти не интересует, в отличие от ПО в его комплекте. Для нас наибольший интерес представляет модуль hardlock.sys. Не углубляясь в подробности, отмечу, что этот драйвер отвечает за взаимодействие с аппаратным ключом. Он имеет два объекта устройства, один из которых обладает символьным именем DeviceFNT0. Используя этот объект, защищенное приложение посредством диспетчера ввода-вывода проверяет лицензию на использование данного ПО.

Для эксплуатации другого метода также требуется дамп ключа, но подстановка данных осуществляется иначе, а именно — в программной эмуляции. То есть драйвер защиты сможет обращаться с виртуальным ключом так же, как и с физическим.

Перехват и эмуляция

Как уже отмечалось, идея перехвата состоит в перезаписи обработчиков IRP-пакетов. Для этого необходимо иметь возможность изменять поля структуры DRIVER_OBJECT. К счастью, существует функция IoGetDevicePointer, которая возвращает указатель на объект вершины стека именованных устройств и указатель на соответствующий файловый объект. Вот фрагмент кода функции, устанавливающей ловушку:

NTSTATUS HookDevice(LPWSTR lpDevice)

UNICODE_STRING DeviceName;
PDEVICE_OBJECT DeviceObject;
PFILE_OBJECT FileObject;

Получив указатель на структуру DEVICE_OBJECT, имеем указатель на DRIVER_OBJECT. Теперь заменим адреса обработчиков и функций выгрузки драйвера на свои:

NTSTATUS HookDevice(LPWSTR lpDevice)

gDriverObject = DeviceObject-> DriverObject;

gDeviceControl = gDriverObject-> MajorFunction[IRP_MJ_DEVICE_CONTROL];
gDriverObject-> MajorFunction[IRP_MJ_DEVICE_CONTROL] = HookDispatch;

gInternalDeviceControl = gDriverObject-> MajorFunction[IRP_MJ_INTERNAL_DEVICE_CONTROL];
gDriverObject-> MajorFunction[IRP_MJ_INTERNAL_DEVICE_CONTROL] = HookDispatch;

gDriverUnload = gDriverObject->DriverUnload;
gDriverObject->DriverUnload = HookUnload;

В последней строчке вызывается функция ObfDereferenceObject, которая уменьшает количество ссылок на файловый объект. Это необходимо делать для корректной выгрузки драйвера, чтобы не было утечки ресурсов и аналогичных ошибок.

Так как указатель на объект драйвера защиты сохранeн, то чтобы снять ловушку, нужно просто восстановить прежние обработчики IRP-пакетов:

gDriverObject-> MajorFunction[IRP_MJ_DEVICE_CONTROL] = gDeviceControl;
gDriverObject-> MajorFunction[IRP_MJ_INTERNAL_DEVICE_CONTROL] = gInternalDeviceControl;
gDriverObject->DriverUnload = gDriverUnload;

Конечно, надо добавить соответствующие проверки на валидность указателей и прочее.

Теперь необходимо реализовать правильную выгрузку драйверов. Так как система защиты по каким-либо причинам может закончить свою работу раньше нашего драйвера, то чтобы избежать краха системы из-за неверных указателей, обработаем это событие в функции HookUnload:

void HookUnload(PDRIVER_OBJECT DrvObj)

Здесь происходит восстановление полей структуры DRIVER_OBJECT, и передаeтся управление на оригинальный код выгрузки драйвера перехваченного устройства.

Аналогично поступаем, если наш драйвер завершает работу раньше системы защиты. Только нужно высвободить захваченные ресурсы и не вызывать сохранeнный gHookUnload.



Принцип работы эмулятора

Перехватчик

Зная основные принципы простейшего перехвата IRP-пакетов, приступим к реализации пока только самого перехватчика для дальнейшего анализа. Для этого создадим объект драйвера, который содержит символьное имя (например DosDevicesHook) и точки входа CREATE, CLOSE, READ.

DriverObject->MajorFunction[IRP_MJ_CREATE] = DriverDispatch;
DriverObject->MajorFunction[IRP_MJ_CLOSE] = DriverDispatch;
DriverObject->MajorFunction[IRP_MJ_READ] = DriverDispatch;
DriverObject->DriverUnload = DriverUnload;

if (idlTail->IrpData.InputLength)
idlTail->InputBuffer = ExAllocatePool(NonPagedPool, idlTail->IrpData.InputLength);
RtlCopyMemory(idlTail->InputBuffer, Irp->AssociatedIrp.SystemBuffer, idlTail->IrpData.InputLength);
>

if (IoSL->MajorFunction == IRP_MJ_DEVICE_CONTROL)
Status = pHookedDriverDispatch[IRP_MJ_DEVICE_CONTROL]( DeviceObject, Irp);

if (idlTail->IrpData.OutputLength)
idlTail->OutputBuffer = ExAllocatePool(NonPagedPool, idlTail-> IrpData.OutputLength);
RtlCopyMemory(idlTail->OutputBuffer, lpBuffer, idlTail->IrpData.OutputLength);
>

idlTemp = idlHead->ldlNext;
ExFreePool(idlHead);
idlHead = idlTemp;
if (!idlTemp)
idlTail = NULL;
>

Когда перехватчик готов, запускаем сначала его, а затем — защищенное приложение с ключами и без. Из полученных логов становится видно, какие управляющие коды посылаются и их результаты. Также можно видеть, что запросы и ответы на два различных кода (9c402450, 9c4024a0) не изменяются. Казалось бы, можно построить табличный эмулятор, но после серии запусков убеждаемся, что это невозможно, так как содержимое буферов различно, и неизвестно, как оно образуется.



Перехваченные пакеты без ключа



Перехваченные пакеты с ключом

Затем возможны несколько вариантов дальнейших действий:

  • изучать дебри драйвера защиты;
  • воспользоваться информацией самих разработчиков системы.

Оба варианта дают необходимую информацию. Итак, оказывается, содержимое пакетов шифруется публичным симметричным алгоритмом AES (Advanced Encryption Standard). Логичной целью является получение ключа шифрования.

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



Пример дампа ключа

Поэтому первое, что нужно сделать, это получить ключ. Поставленную задачу может решить обычный брутфорс:

unsigned short Key;
unsigned char RefKey[8], VerKey[8];

for (Key = 0; Key if (!HL_LOGIN(Key, 1, RefKey, VerKey))
HL_LOGOUT();
Break;
>
>

Далее ключ (MODAD) используется для снятия дампа: тип, идентификатор, порт подключения и так далее. Для этого есть функции, определенные разработчиками.

Функции HL_LOGIN, HL_LOGOUT доступны из HASP SDK для разработчиков приложений, защищенных на этой платформе, и имеют следующие прототипы:

WORD HL_LOGIN(WORD ModAd, Word Access, Byte *RefKey, Byt *VerKey);
WORD HL_LOGOUT(void);

Первая функция служит для открытия сессии работы с ключом защиты посредством драйвера, вторая – завершает сессию. Это прототипы старых версий HASP SDK, но работают они и с новыми типами ключей, так как разработчики обеспечили обратную совместимость.

Новый API мало отличается от старого, и это никак не сказывается на принципе работы брутфорса. Подробную документацию Hasp API, готовые реализации брутфорса и дампера ключей можно найти на диске.

Обработчик

Теперь есть все необходимое для корректной работы модуля. Осталось реализовать подстановку лицензионной информации. Причем можно перехватывать лишь некоторые IRP-пакеты. Здесь все уже зависит от конкретной версии ключа и защищаемой программы.

Дамп ключа лучше не встраивать в драйвер, а загружать динамически из реестра. Лучше основываться на уже готовом перехватчике запросов, так будет проще отладить драйвер, отправляя перехваченные/подставленные пакеты на анализ пользовательскому приложению. Принципиально логика перехватчика будет иметь такой вид:

PIO_STACK_LOCATION Stack = Irp-> Tail.Overlay.CurrentStackLocation;
ULONG IoControlCode;
if (Stack->MajorFunction == 14)
IoControlCode = Stack.DeviceIoControl.IoControlCode;
If (IoControlCode != 0x9c402458)
Return gDeviceControl(DeviceObject, Irp);
>
else
Encrypt(Irp->AssociatedIrp.SystemBuffer);
Crypt(Irp->AssociatedIrp.SystemBuffer, Key, DumpMemory);
>
>

Пакет запроса к драйверу находится в криптованном виде, поэтому для доступа к его содержимому требуется расшифровать, а затем зашифровать. Возникает вопрос: каким алгоритмом и каким ключом выполнено шифрование? Покопавшись в исходниках от создателей системы, можно получить следующий первичный алгоритм шифрования пакета:

void Encrypt(BYTE * Buffer)
WORD Seed = ((WORD)Buffer + 0x5e);
WORD Ver = ((WORD)Buffer + 0xba);

if (Ver)
for (int i = 0; i < 0xB9; i++) (WORD)(Buffer + i) += Seed;
Seed = (Seed >> 15) | (Seed Seed -= (WORD)(Buffer + i) ^ i;
>

for (int i = 0xBE; i < 0xFF; i++) (WORD)(Buffer + i) -= Seed;
Seed = (Seed >> 15) | (Seed Seed += (WORD)(Buffer + i) ^ i;
>

Видно, что алгоритм гораздо сложнее, чем обычный сдвиг и исключающее "или". А вот алгоритм дешифрования:

void Decrypt(BYTE* Buffer)
WORD Seed = ((WORD)Buffer + 0x5e);
WORD Ver = ((WORD)Buffer + 0xba);

if (Ver) for (int i = 0xFE; i > 0xBD; i--) Seed -= (WORD)(Buffer + i) ^ i;
Seed = (Seed > 1);
(WORD)(Buffer + i) += Seed;
>

for (int i = 0xB8; i >= 0; i--) Seed += (WORD)(Buffer + i) ^ i;
Seed = (Seed > 1);
(WORD)(Buffer + i) -= Seed;
>

Затем следует ещe один этап преобразования данных, более сложный и уже полностью зависящий от структуры запроса. Тут не обойтись без дизассемблера, придется покопаться в бине и позаимствовать немного кода у создателей. Это непросто, так как код драйвера защиты сильно обфусцирован, но он не отличается разнообразием уловок. Достаточно будет декомпилировать драйвер не полностью, а только лишь некоторые кусочки кода.

В заключение отмечу, что построение табличного эмулятора, основанного на перехвате DeviceIoControl, — достаточно трудная задача. Но такой принцип эмулятора можно использовать и на другом уровне взаимодействия: создать виртуальную USB-шину.

Заключение

Это не единственный способ избавиться от системы защиты. Существуют и другие, более совершенные методы. Изложенные в статье принципы можно использовать и для анализа работы драйверов, перехватывая IRP-пакеты. Таким образом можно добавить неплохой инструмент в свой сделанный на коленке набор. Удачи!

1С работает без ключа!

У нас стоит сетевая 1С Бухгалтерия 7.7. Купили давно, работает с ключом и проблем не было. Неожиданно и случайно выяснилось, что она работает и без ключа. Сотрудник у которого на компе воткнут ключ заболел, а я машинально зашла в 1С и она не спросила ключа!

Вопрос. Что произошло? Может ли программа самостоятельно совершенствоваться? Такие же вопросы задала своим программистам, но они утверждают, что ничего не трогали и что мне радоваться надо если ключа нет. Можете пояснить что произошло и чем это грозит?

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

Из одного не вытекает другое. Могут приходить но не обновлять (у нас, например "девушка из фирмы" сама сняла защиту чтобы не мучиться ). Поставьте задачу программистам - если они у Вас есть.

Зося, последний 21-ый exe-шник вышел в июле 2003 г. Чтобы определить версию своего в главном меню выберите Помощь -> О программе, в строке "1С Предприятие 7.7" в скобочках стоят циферки, две последние и есть ваша версия.
А вообще, воспользуйтесь советом PETRO, попробуйте озадачить своих программистов.

ЛеКа, у меня написано 7.70.021
Это хорошо или нет?
Моим программистам 1С до лампочки, они заняты другим и никогда не занимались этой программой. Но они врут, поскольку просто так 1С не могла отказаться от ключа.
Поэтому я хочу узнать где лежит этот эмулятор или exe-шник и кто такой добрый дядя, который лишил меня. ключа. )))
Подскажите как это узнать и можно ли вернуть ключ. Если перейдем на Бухгалтерию 8 будут проблемы из-за эмулятора-exe-шника?

"Можно не вникать какие есть способы взлома (если не очень нужно)".
Petro, нужно. Если не трудно скажите или дайте ссылку где посмотреть.
А программисты считают меня полной дурой и разговаривать не хотят. А вы говорите поставьте задачу. 1С - это мои проблемы, а не их.

Это не значит что программа "работала с ключом". Она ПРОСТО РАБОТАЛА на ЭВМ. А ключь у Вас был так просто (например Вам продали ломаную версию как за официальную и содрали деньги, а ключь для отвода глаз - он пластилиновый ).
Вроде бы у Вас должен быть телефон фирмы и номер, по которому Вам скажут - официальный ли вы пользователь (на форуме меня поправят).

Неожиданно и случайно выяснилось, что она работает и без ключа. Сотрудник у которого на компе воткнут ключ заболел, а я машинально зашла в 1С и она не спросила ключа!

Я не обратил внимания, что сотрудник заболел вместе с ключом . Т.е. вы хотите сказать, что ЭВМ с ключом не работает/не в сети.

2. Ключь, про который вы говорите у вас один в сети/на других ЭВМ?
3. Если один и у вы покупали зарегестрированную версию и хотите "докопаться", то поставьте то что вы купили (дистрибутив 1С) на ЭВМ дома, запустите с ключом/без ключа и наслаждайтесь ).
В общем вы убьёте кучу времени (и мы вместе с вами - шутка).

Это здорово, т.к. это значит, что у Вас последняя версия, и значит, что специалист из 1С все-таки обновляет, и значит, Вам хоть кто-то не врет.

А Ваше руководство не может через из руководство обязать их разобраться с проблемой? Или они у вас не в штате?
А вообще то, проблемы я здесь не вижу. Наша фирма (в сети порядка 10 баз разных конфигураций и 50 пользователей) уже давно работает на взломаном. Пока тьфу-тьфу-тьфу.

1. Проблемы будут, если ОНИ не официальные пользователи и/или ИХ ключь не официальный.
2. Проблемы будут, если ОНИ официальные пользователи и ИХ ключь официальный, но взломан и при апгрейде ИХ заставят отдать старый ключь, чтобы его перепрограммировать на новую версию/добавить новую версию (технически это не сложно, а вот как в реале в 1С - не знаю).

Petro, ЛеКа спасибо что обращаете на меня внимание.

1. Мы официальный пользователь
2. Раньше 1 С без ключа не работала. Нужно было включить комп., куда ключ был воткнут. Ключ был один. Сейчас работает без ключа, хотя ключ есть, но мы уже не зависим от компа где он воткнут.
3. Я хочу узнать, что сделали с 1С. Где найти у себя в сети эмулятор или что-то в этом роде?
4. Работать на взломанном не хочу. Можно вернуть всё взад?


"поставьте то что вы купили (дистрибутив 1С) на ЭВМ дома, запустите с ключом/без ключа и наслаждайтесь"

Уже сделала, без ключа не работает, с ключем работает. Значит на работе есь что-то что позволяет игнорировать ключ. Что? Как найти?

Отлично!
Таперь второй этап!
Цель - чтобы у Вас не работало на работе! .
1. Я ни за что не в ответе! Сделайте все архивы (совет) и предупредите программистов (совет).
2. Установите программу на работе в другой каталог. Если заработает без ключа, то далее во второй серии (запускайте именно установленный exe).
До завтра.

Зося, а у вас предприятие большое? Нет ли ключа где-нибудь в соседних комнатах?
(Доп. вопрос - вызывается 1С быстрее, чем раньше? Если да, то программа "взломана". Если нет, то ищите, где еще стоит ключ ).

Будьте проще!Зайдите в Проводник и в Поиске наберите sable.
Если что-нибудь найдете - значит взламывали!

Petro
"Установите программу на работе в другой каталог. Если заработает без ключа",
Работает без ключа.
" то далее во второй серии (запускайте именно установленный exe)".
Здесь немного не поняла.

stas®
Этот совет дал мне человек, что приходит обновлять 1C (ИТС). Смотрела, другого ключа нет. Люди на разных компах в одной сети работают с 1С по нескольким базам, всем им стал не нужен ключ.

"Доп. вопрос - вызывается 1С быстрее, чем раньше? Если да, то программа "взломана". Если нет, то ищите, где еще стоит ключ"
Кажется быстрее, но не уверена. Никак не могу понять, что значит программа "взломана"?

Татьяна. То, что работает - это хорошо, но мне было приятнее работать с ключом по личным мотивам. И потом я не уверена, что и дальше будет правильно и корректно работать.

Виклен
В проводнике столько дисков. Все проверять? Проверила там, где стоит 1С. Ничего не нашла.

День второй - вторая серия .
1. Имелось ввиду, после установки по новой 1С запускать файл 1cv7s.exe именно в том месте где вы установили 1С по новой (а не кликая по ярлыку, т.к. он может не обновится).
2. Один из способов взлома - поменять пару байтов в этом файле, отвечающих за проверку. Снаружи он не изменится.
==============
Последний этап - форматирование диска ))).
1. Запустите 1С (там где поставили по новой) при отключенной сети (отключите сетевой кабель).
2. Если будет работать, значит дело в вашей ЭВМ. Тогда "взлом может распологаться - реестр/os windows/процесс в OS и т.д.
3. Переустановить Windows.
4. Отформатировать жёсткий диск с очисткой mbr.
***********
По поводу подробностей 2,3,4 пунктов - не тема этого форума.

"Запустите 1С (там где поставили по новой) при отключенной сети (отключите сетевой кабель)".
Не работает. Что дальше?

"Запустите 1С (там где поставили по новой) при отключенной сети (отключите сетевой кабель)".
Не работает. Что дальше?

Ходить по комнатам и выдёргивать сетевой кабель или из розетки по одной ЭВМ, к которым идёт сетевой кабель.
Если не получите по шапке, то после каждого выключения опять проверяете.
Пока либо не устаните, либо не получите по шапке (от программистов ) либо не найдёте тот комп-злосчастный на котором стоит ключ 8) или эмулятор ключа (т.е. взлом).

"комп-злосчастный на котором стоит ключ 8) или эмулятор ключа (т.е. взлом)".
Это, наверное, сервер. Как выглядит эмулятор ключа? Можно его найти более прогрессивным способом?

А не работает - это как ?

НЕ обнаружен каталог базы или не найден ключ защиты ?!

Зося!
Думаю, что тема исчерпана (IMHO).
Вы писали - "Нужно было включить комп., куда ключ был воткнут. Но это не сервер".
Вы писали - "Ключей больше нигде нет".
Вы писали - "При выключенном сервере программа (вновь установленная) вместе с базой на моём ЭВМ не запускается".

Значит на сервере стоит что-то, что даёт право называться официальным пользователем, либо взлом.
С чего вы решили, что должен быть обязательно ключ?
Вам приходили и обновляли. Каждый защищает программу как может.
Вызовите представителя за денешку и он разберётся. Или заплатите программистам.
Продвинутые способы определения есть, но они не тема этого форума. Это инструменты администраторов и программистов. Вы только можете отформатировать сервер и переустановить всё.

Душа ваша должна быть спокойна - вы сделали всё, что смогли .
Или вы прикалываетесь? . C чего это ключ стоял не на сервере (где стоят все базы), у на компе человека "который заболел"?

"C чего это ключ стоял не на сервере (где стоят все базы), у на компе человека "который заболел"?"
А что, так разве нельзя? Просто программисты не захотели.
"С чего вы решили, что должен быть обязательно ключ?"
Потому что 1С продается с ключем, а не с эмулятором или что-то в этом роде.
"Каждый защищает программу как может".
О чем это вы?
"за денешку и он разберётся. Или заплатите"
Раз я вышла в интернет, то значит захотелось халявы.
"Думаю, что тема исчерпана (IMHO)".
Спасибо.
Как выглядит эмулятор ключа? Вы так и не ответили. или это нельзя пером описать?
Всего хорошего Petro.

Тогда проверяте когда делают обновления. Они могли сами поставить электронный ключ (это не обязательно взлом). Правовой аспект я не рассматриваю. Просто у меня был такой случай.

Оказывается, 1С:Предприятие 7.7 не выполняет проверок прав доступа со стороны программного кода – все проверки выполняются только в интерактивном (пользовательском) режиме. Поэтому для защиты необходимо полностью закрыть любые возможности для выполнения любого поступающего извне программного кода, что вполне обеспечивают средства администрирования 1С (и системы Windows NT/2000/XP).

Откроем в Конфигураторе информационную базу и зайдем на вкладку Права. Дважды щелкнем на название имеющегося набора прав (или создадим новый набор). Из контекстного меню при клике на корневом элементе появившегося «дерева» выберем единственный пункт «Свойства». В списке перечислены потенциально опасные действия пользователей. Рассмотрим некоторые из них.

Настройка: Административные функции

Уберите эту галочку, и пользователи не смогут под своим паролем изменять конфигурацию (файл конфигурации MD).

Настройка: Использование в качестве OLE Automation сервера

Информационную базу можно «поюзать» через механизм OLE. Закройте для Темного Пользователя еще одну дверь, которая позволила бы ему видеть и изменять в информационной базе все.

Настройка: Использование любых Внешних Отчетов и Обработок

Уберите эту галочку, и Темные Пользователи не смогут запускать программный код 1С в виде привнесенных извне отчетов и обработок (файлов ert). Эта возможность тоже, независимо от прав, позволяет делать с информационной базой практически все.

Настройка: Использование общих Внешних Отчетов и Обработок

Общие внешние отчеты и обработки находятся в папке ExtForms. На эту папку, разумеется, необходимо установить права доступа «только на чтение». Иначе Темные Пользователи положат в эту папку нужные им обработки, и выполнят произвольный программный код.

Настройка: Использование функций в табло и формульном калькуляторе

Малоизвестная возможность, но она тоже позволяет «сделать все», не имея никаких других прав.
Откройте пункт меню Сервис-Табло. Наберите в появившемся Табло (засветите в него) следующий программный код:

Если в каталоге информационной базы лежит внешний отчет Тест.ert, то он будет открыт и выполнен, независимо от установленных у пользователя прав на выполнение Внешних Отчетов и Обработок. Аналогичная возможность имеется для калькулятора, если в меню Сервис-Параметры, на вкладке Общие, Темный Пользователь установил для него формульный режим.

Методы ОткрытьФорму/ОткрытьФормуМодально

Аналогичная уязвимость может существовать для конфигураций: если они выполняют встроенную функцию 1С наподобие

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

Защита таблицы

Для защиты таблиц от Темного Пользователя в 1С:Предприятие имеется встроенный метод Защита(), который позволяет отключить возможность копирования таблицы, в том числе через буфер обмена.

ОбработкаЯчейкиТаблицы

Темный 1С-ник может занести в поле Расшифровка таблицы совсем не то, что предусматривал разработчик.
Например, "Отчет.КарточкаСчета". Таким способом, он может открыть "неположенный" ему по должности отчет.

Блокируем чтение и изменение таблиц данных

Информационную базу (особенно, в DBF-варианте) злоумышленник может скопировать и унести целиком, ибо в сжатом виде она может «весить» совсем немного. После этого, злоумышленник может просто удалить папку с паролями, и получить к своей копии базы полный, ничем не ограниченный доступ.

SQL-вариант информационной базы тоже может быть скопирован, но для этого надо знать имя сервера и пароль пользователя sa (или логин и пароль dbo). Как же узнать эту информацию? Она хранится (в зашифрованном виде) в файле DBA информационной базы, и поддается расшифровке при помощи небольшой «хакерской» утилиты (название не помню).

Впрочем, во многих случаях пароль sa назначен пустым, или представляет собой любимое многими администраторами значение 123. Чтобы выяснить этот факт, достаточно воспользоваться сетевым сканером безопасности, который выявит в вашей сети эти и подобные огрехи. Удачным сканером безопасности является программа x-spider.

Однако, про утилитку, извлекающую из информации о подключении логины и пароли, Темные Пользователи, разумеется, уже знают, поэтому пустой или не пустой пароль sa - особой роли уже не играет. Факт в том, что при любом пароле Темные Пользователи могут делать с информационной базой 1С все, что угодно: копировать всю базу, а также изменять или удалять отдельные записи. Правда, это придется делать на более низком уровне (правкой таблиц информационной базы), но ничего невозможного или сверхсложного в этом нет. Таблицы есть таблицы, просматривать и редактировать их можно небольшими утилитами или скриптами (в т.ч. из комплекта Microsoft Office), а связи между элементами данных прописаны в текстовом файле DD/DDS.

Защита при помощи сервера терминалов

Поэтому, пожалуй, единственным способом защититься от подобных атак является запрет запуска в пользовательском сеансе 1С других программ, за исключением 1С:Предприятие (это может быть реализовано, например, на сервере терминалов). Защита от запуска посторонних программ реализуется при помощи ключа реестра RestrictRun (или соответствующих настроек в групповой политике домена).

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

При экспериментах разрешите себе запуск regedit.exe.

Прописывайте полные пути, иначе Темный Пользователь сможет назвать именем 1cv7s.exe произвольный софт.

Скрываем кнопку Пуск и Рабочий стол

Пример программы, которая скрывает кнопку Пуск (вместе с панелью задач) и рабочий стол.
Чтобы от панели задач не оставалась «дырка» в окне Windows, включите ее (панели задач) автоскрытие.

Компилятор – Delphi 6.
Имя файла – HideStartButton.dpr.

Скомпилированные примеры кода приведены в конце этой статьи.

Блокируем окна «Открыть» и «Сохранить как», а также меню Пуск

Пример программы, которая блокирует окна «Открыть» и «Сохранить как», а также запрещает открытие меню кнопки Пуск по нажатию Ctrl-Esc и кнопки Windows.

Компилятор – Delphi 6.
Имя файла – HookCreateWindow.dpr.

Скомпилированные примеры кода приведены в конце этой статьи.

Автозапуск примеров

Автозапуск примеров из меню "Пуск-Программы-Автозагрузка" может быть отключен Темным пользователем удерживанием при старте клавиши Shift. Поэтому, автозапуск необходимо поместить "поглубже" в реестр.

Для их автозапуска для всех пользователей -

(однако, будьте с этим осторожны, чтобы не заблокировать все себе).

Ключ /i отключает окна с вопросами и заставляет программу "заснуть".

Это не самый лучший способ оставить программу в памяти, но он работает (не хотелось усложнять примеры). Другой вариант сделать то же самое - запустить их как службу (если вы, конечно, знаете, как это проделать).

Автозапуск примеров для текущего пользователя

Блокируем нажатия Windows-E и Windows-R

Они открывают, соответственно, проводник и окно «Запуск программы», которые позволят Темному Пользователю сделать свое черное дело.
Ключ реестра NoWinKeys блокирует горячие клавиши Windows:

Отключение запуска диспетчера задач по Ctrl-Alt-Del

Еще одна лазейка для Темного Пользователя.
Ключ реестра DisableTaskMgr блокирует диспетчер задач:

Блокируем изменение программных файлов 1С:Предприятие

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

Чтобы заблокировать вход с непредусмотренных программных файлов 1С:Предприятие, можно проверять при старте системы значение КаталогПрограммы(). Данный каталог необходимо разместить на сервере и защитить от изменения пользователями. Если каталог программы отличается от требуемого, то необходимо завершать пользовательский сеанс (возможно, с отправкой уведомления администратору).

При терминальном доступе данной проблемы не существует (конечно, при условии, что права терминального пользователя не позволяют ему патчить программные файлы).

Читайте также: