Снять пароль модуль 1С

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

  • Какая защита существует?
  • Какой способ защиты самый надежный?
  • Как выбрать защиту 1С конфигурации и при этом не прогадать?

На эти вопросы отвечу в данном обзоре. Речь пойдет в основном об 1С:8.X

Начну же его с другого вопроса:

Зачем защищать код в 1С?

  • Разрешить работу только определенной фирме/компании, купившей ваш продукт.
  • Ограничить количество работающих пользователей в базе.
  • Скрыть «особенные» и уникальные алгоритмы от потребителей или конкурентов.
  • Закрыть модули от заказчика до оплаты им разработанного модуля (конфигурации, подсистемы).
  • Создать демонстрационную конфигурацию с определенными ограничениями в использовании.
  • Скрыть методы обмена с каким-то веб-сервисом, сайтом/CMS.
  • Не допустить полной утечки разрабатываемой совместно конфигурации недобросовестными фрилансерами.

Требования, предъявляемые вами к защите конфигурации будут в той или иной мере определять дальнейший выбор.

Какие способы защиты предоставляет 1С:Предприятие стандартно?

  • Пароль пользователя к базе и хранилищу конфигурации.
  • Роли конфигурации.
  • Веб-клиент ограничивает доступ к «Конфигуратору».
  • Пароли на текст модуля.
  • Поставка без текста модулей (скомпилированный код).

Надежность пароля пользователя

В целом пароль пользователя к базе данных одним из слабых звеньев в защите 1С, поскольку отсутствует обработчик события ошибки ввода. В случае использования простого пароля существует опасность его подбора полным перебора (методом brute force/»грубой силы»).

Из этого вытекают важные правила:

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

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

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

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

Если вам требуется все-таки сбросить пароль по вполне оправданной причине, следует после этого перенести данные в новую чистую базу и создать пользователей в ней.

Для sql баз возможен перенос таблиц пользователей из другой (исправной) базы.

В связи с перечисленными выше особенностями защиты паролями пользователей можно выделить ряд правил.

Правила, повышающие парольную защиту

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

Пароль к хранилищу конфигурации.

Также имеет низкую защищенность, особенно при файловом хранилище.

  • Рядовые программисты не должны иметь административных паролей к хранилищу. При увольнении, уходе в отпуск доступ должен блокироваться.
  • Расположение хранилища это обычная файловая база, поэтому доступ должен быть ограниченным, лучше использовать для этого сервер хранилища. При работе с хранилищем не ведется журнал доступа к данным: только процесс захвата и помещения.
  • Поэтому получив данные для подключения, злоумышленник может полностью скачать конфигурацию: а также любую доступную ее версию (отследить процесс разработки).
  • Использование хранилища при разработке нового коммерческом продукта большой группой не желательно, либо следует задавать пароли для всех важных модулей (подробнее об этом ниже). Как вариант использовать хранилище только для версионного контроля.
  • Это усложнит механизм взаимодействия.

Технология может быть такой:

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

Доступ к «Конфигуратору»

Конфигуратор работает в режиме толстого клиента, поэтому получить конфигурацию через браузер или веб-сервер невозможно, если не используется режим обновления платформы и конфигурации через веб.

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

  • Рекомендуется использовать https.
  • Рекомендуется использовать vpn сети для удаленных рабочих мест/филиалов.

Пароли на текст модуля 1С

Устанавливается в «конфигураторе» в меню «Текст/Установить пароль».

Данная защита образует парадокс:

  • Никто не берется взламывать пароль, так как используется надежное шифрование; по крайней мере в открытом доступе информация о таких случаях отсутствует.
  • Если модуль идет без текста (поставка без текста), то оригинал его вообще не увидеть. (Меню «Конфигурация/Поставка/Настройка поставки»)
  • Для корректного исполнения даже закрытого/отсутствующего модуля «1С» хранит модуль в формате байт-кодов(также называемых пи-кодами), для которых некоторые умельцы (например, Валерий Агеев/AWA,Samuray) создали работающие декомпиляторы данных модулей.

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

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

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

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

Получается защитить модуль никак нельзя?

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

Поэтому появились решения для защиты модулей:

  • wiseadvice — защита конфигураций (комплексное решение с обфускацией и привязкой к ключам), подробно можете ознакомится https://wiseadvice-it.ru/programmy-1s/nashi-resheniya/
  • awa-обфускатор (в открытом виде не распространяется).

Приведу (перескажу своими словами) информацию, которую урывками собирал с различных ресурсов.

Об wiseadvice:

  • Первые версии до 2.0 включительно были достаточно быстро «распарсены» (обфускация не достаточно сильная, автор это признал).
  • Разработчик говорит, что у него есть еще варианты усложнения обфускации (получается он их внедряет не сразу, а по мере, конечная версия не всегда максимально защищенная?).
  • Валерий Агеев имеет не распространяемую публично версию декомпилятора (которая открывает текущую защиту wiseadvice).
  • Если возможность алгоритма позволяет поместить важные данные в hasp-ключи, это бесспорно улучшить защиту, но при наличии ключа и такие конфигурации отучают. Если ваше решение конечное (не динамически меняющееся), то скорее всего оно будет уязвимо.
  • «Непонятки» с ценой: на инфостарте старая версия продается по 12500, на одном сайте их сайте: цена от 15000 , на оригинальном сайте продукта 3.0.8 за 17500, раньше цена была 10000 (за 3-4 года выросла, но выросла ли настолько защищенность).
  • Вроде пишут, что все просто и понятно, но на демо-версии пришлось потратить некоторое время, чтобы получить окончательный результат (так как версия ограниченная, полностью проверить не получается). Интерфейсно, согласен, очень удобное решение, но требования создать определенные имена функции, ошибки которые не понятные в процессе. Это придирки, может всё из-за демо-версии.
  • Нельзя использовать «Выполнить\Вычислить» — с чем связано не понятно.
  • Ключи следует покупать отдельно, и они достаточно дороги для простых решений.
  • Оформляются документы на покупку решения (это может быть определяющим).

Набор данных фактов склонил меня к покупке второго обфускатора:

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

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

Код модуля должен иметь как можно больше кода — это повышает надежность обфускации. В Wiseadvice даже есть встроенная проверка на это.

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

Следует переписать код продукта под такую стратегию:

  • самое важное хранится в модулях.
  • эти процедуры должны быть максимально проверены и отлажены, покупатель не сможет их исправить самостоятельно.

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

Зачем нужны ключи в защите:

  • организация демо версии /времени использования;
  • ограничение работы по количеству пользователей;
  • ограничение функционала;
  • скрыть важные данные в ключе (небольшие объемы).

Внешние компоненты, как еще один вариант защиты:

Вынос исполнения кода, выполнение алгоритмов во внешние компоненты.

  • Это не тиражные решение, может быть платформо-зависимым в отличии обускации п-кода.
  • Достаточно много таких примеров на инфостарте.

Оценить надежность, пока не появится готовый продукт невозможно.

Почитать по теме защиты:

Книга знаний: Защита исходного кода конфигураций

Декомпилятор 1Cv8.x – обработка восстанавливающая тексты модулей с паролем или без исходного кода. Принцип действия – генерация исходного кода модулей на основе скомпилированных образов. Поэтому полученные модули могут немного отличаться от исходных, в частности, в сгенерированном коде модуля могут отсутствовать комментарии.

Скачать обработку можно по ссылке.

Обрабатываемые типы файлов: *.cf, *.epf и *.erf.

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

Настройка «Не создавать копию”.

Если флаг не установлен, то перед декомпиляцией создастся копия файла с добавкой «_U” в имени. Установка данного флага сократит время выполнения восстановления кода(особенно если обрабатываются конфигурации *. cf), но при повреждении файла его уже будет не восстановить.

Настройка «Искать все модули (медленно)”.

Если флаг не установлен Декомпилятор обрабатывает только модули найденные в метаданных. При установке данного фдага Декомпилятор сканирует весь исходный файл в поисках внутренних файлов image, которые являются скомпилированными образами модулей. Использовать данную настройку стоит только если декомпиляция без нее не дала результата.

Декомпилятор 1C 8.x — обработка, предназначенная для восстановления текстов модулей под паролем или без исходных текстов. Принцип действия — генерация исходных текстов модулей на основе скомпилированных образов модулей. Поэтому полученные тексты модулей не в точности соответствуют исходным, в частности, в сгенерированных текстах модулей отсутствуют комментарии.
Обработка позволяет обрабатывать файлы *.cf, *.epf и *.erf.

Для восстановления текстов модулей выберите в поле «Файл” нужный файл и нажмите кнопку «Декомпилировать”.

Флажок «Не создавать копию”.
Если флажок «Не создавать копию” не установлен, то Декомпилятор 1Cv8.x сначала копирует исходный файл в файл с добавкой «_U” в имени (если такой файл уже существует, он перезаписывается), а затем обрабатывает полученную копию. Если же флажок «Не создавать копию” установлен, то обрабатывается непосредственно исходный файл. В этом случае о бэкапе Вы должны позаботиться сами. Флажок «Не создавать копию” позволяет сократить время обработки, что может быть заметно на больших файлах конфигураций.

Флажок «Искать все модули (медленно)”.
По умолчанию, если флажок «Искать все модули (медленно)” не установлен, Декомпилятор 1Cv8.x обрабатывает только известные модули, найденные путем обработки метаданных. При установленном флажке «Искать все модули (медленно)” Декомпилятор 1Cv8.x сканирует весь исходный файл в поисках внутренних файлов image, являющихся скомпилированными образами модулей. Использовать флажок «Искать все модули (медленно)” следует только в том случае, если Декомпилятор 1Cv8.x без этого флажка не обрабатывает какой-либо модуль. Время работы с установленным флажком «Искать все модули (медленно)” может сильно увеличиваться, особенно на файлах больших конфигураций.

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

Создатели системы 1С: Предприятие 8 позаботились о защите кода. К сожалению, пароль на доступ можно установить только на модули объектов, общие модули, модули обработок и отчетов. В том числе и внешних. Но и этого немало, так как можно значимые процедуры и функции разместить в модуле и потом к ним обращаться.

В данной статье я хочу разобраться, как установить защиту и снять её, если Вы забыли пароль.

Установка защиты на модуль 1C

Возьмем любой модуль любого объекта. Я взял навскидку первый же документ – «Авансовый отчет». Если поставить курсор на текст кода модуля, в главном меню появится пункт «Текст». В этом пункте есть подпункт «Установить пароль».

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

Напоминаем, директивы препроцессора — это такие конструкции, как #Если, #Тогда, #Конец и т.п.

Что же, посмотрим, во что это выльется. Устанавливаем пароль.

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

Получите 267 видеоуроков по 1С бесплатно:

Игнорируем ошибку и сохраняем конфигурацию. Интересно, откроется ли документ. Запускаем программу в режиме «Предприятия».

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

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

Вывод однозначный: не все модули можно защитить. Однако ничего Вам не мешает вынести функции и процедуры с директивами препроцессора в отдельный модуль.

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

Осталось проверить обработки. Возьмем для интереса внешнюю. Защита прошла без проблем.

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

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

Запускаем 1С в режиме предприятия и открываем обработку с декомпилятором через «Файл» – «Открыть». Замечу, что обработка, которую я нашел, написана на обычных формах, и запускать ее нужно под толстым клиентом:

Нажимаем «Декомпилировать» и получаем сообщение, что все прошло успешно:

Пробуем открыть модуль в конфигураторе, и он прекрасно открывается.

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

Теперь осталось проверить, как декомпилятор справится с общими модулями. Сохраняем конфигурацию в файл.

Выбираем в обработке:

После нескольких минут получаем сообщение:

Загружаем конфигурацию из файла и проверяем защиту. Защита полностью снята.

Тестирование проводилось на платформе 8.3.9.1818, конфигурация «Бухгалтерия предприятия 3.0.44.188».

Самое интересное, что модуль данного «декомпилятора» тоже защищен. Но обработка не позволяет снять защиту с самой себя.

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

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Бухгалтерия 3.0 :Как изменить пароль в 1С

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

Пароль можно изменить как из режима 1С Предприятие, так и из Конфигуратора.

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

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

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

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

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

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

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

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

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

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

Справедливости ради, парольная защита файловых версий 1С 7.7 не снималась только ленивым. Надежность хранения паролей пользователей в конфигурациях 1С 8.2 и 8.3 возросла, но тем не менее так же не может служить примером надежной системы скрытия данных от посторонних глаз.

Чтобы установить, изменить или снять пароли пользователям, необходимо иметь права администратора. Надо войти в базу 1C Бухгалтерии или Торговли в режиме конфигуратора под именем администратора системы. Если в информационной базе пока нет пользователей, то первым необходимо завести пользователя с правами администратора и задать ему пароль.

Для выполнения любых действий с правами пользователей в базе 1C V8 в режиме конфигуратора используется пункт меню Администрирование -– Пользователи. Здесь можно добавить или удалить пользователей, задать их права и выполнить некоторые другие настройки.

Пароль вводится в слепом режиме (password 1c), т.е. текст ввода не отображается на экране, чтобы его не могли визуально снять рядом присутствующие. Поэтому процедуру ввода необходимо повторить в поле «Подтверждение пароля» для уверенности, что скрытый текст введен правильно. Права пользователя, т.е. то, что ему разрешено делать, задаются на вкладке «Прочие».

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

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

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

В заключение, стоит обратить внимание на несколько важных моментов:

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