Как доказать, что на сервере работает определенный код - PullRequest
0 голосов
/ 10 января 2020

Я был бы очень признателен, если кто-то может уточнить.

Как я могу доказать, что на сервере выполняется определенный фрагмент кода?

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

Я считаю, что PaaS нравится Heroku или, возможно, Amazon решает эту проблему, по крайней мере, частично. Когда кто-то развертывает приложение, Heroku возвращает git commit ha sh, который ссылается на развернутый код. Конечно, код, выполняемый , может неэффективно быть раскрытым .

Есть ли у нас механизм для возврата ха sh развертывания, своего рода сводка с кодом + метаданными, и не обязательно коммит, ха sh?

Спасибо!

1 Ответ

0 голосов
/ 12 января 2020

Это невозможно. Вот сценарий:

  1. Сервер работает X.
  2. Клиент запрашивает у сервера подтверждение кода.
  3. Сервер предоставляет подтверждение того, что запущен код X. Клиент принимает доказательство.
  4. Вредоносный агент повторно развертывает сервер с кодом Y.
  5. Сеанс продолжается, злоумышленник крадет данные.
  6. Сеанс заканчивается.
  7. Злоумышленник повторно развертывает сервер с кодом X.

Обратите внимание, что сеанс TCP на стороне сервера обычно nginx или около того, который также обрабатывает завершение TLS, поэтому повторное развертывание даже не нарушает TCP или TLS клиента сеанс.

Более того, у сервера есть среда выполнения, будь то стандартная библиотека * 1031, node.js или JVM - откуда вы знаете, что , что не скомпрометировано?

Более того, даже если код сервера правильный, сервер использует ресурсы ОС, такие как сеть, диск и т. Д. c. - откуда вы знаете, что те не скомпрометированы?

Серверу достаточно сложно узнать, что он скомпрометирован, клиенту это просто невозможно.

...