Аутентификация клиента Com - PullRequest
       13

Аутентификация клиента Com

0 голосов
/ 09 февраля 2012

У нас есть настройка, где каждый процесс подписан.У нас есть процесс с привилегией SYSTEM, который предоставляет интерфейсы COM.Мы не хотим, чтобы процессы, отличные от подписанных нами, использовали интерфейсы COM.Есть ли способ сделать это?Мы также изучаем другие механизмы Windows IPC, которые могли бы позволить это.Не стесняйтесь предлагать другие механизмы МПК, которые делают это возможным.В настоящее время мы отправляем pid вместе с запросом, но это может быть легко подделано.Есть предложения?

1 Ответ

0 голосов
/ 09 февраля 2012
  1. Зарегистрируйте пользовательский обработчик прокси / заглушки или inproc и сделайте так, чтобы прокси или обработчик включили код, который проверяет подпись в двоичном файле.

  2. Сделать весь доступ доступным через COM-объект inproc, который выполняет проверку и проходит запрос / ответ на сервере. Конечно, это тоже можно подделать, если они удобны с отладчиком.

  3. Просто откажитесь от него. Даже подписанный процесс может быть подделан - используйте CreateProcess с флагом приостановки, внедрите DLL и перезапишите точку входа с JMP в DLL. Первый вызов - Sleep (1000), поэтому дайте ему поработать в течение 500 мс, а затем замените ваш переход исходным кодом. Теперь вы запускаете код в DLL, но EXE не был изменен.

Это даже без использования API отладки. Черт возьми, они могут исправить ваш сервис, чтобы снять чек!

...