В сфере кибербезопасности, особенно в отношении безопасности хранения на ненадежных серверах хранения, ведение согласованного и поддающегося проверке журнала операций имеет первостепенное значение. Это требование обусловлено необходимостью обеспечить целостность, доступность и конфиденциальность данных в средах, где инфраструктуре хранения нельзя полностью доверять. Ненадежные серверы хранения представляют значительные риски, включая несанкционированное изменение, удаление и несанкционированный доступ к данным. Таким образом, последовательный и поддающийся проверке журнал операций играет важную роль в снижении этих рисков.
Последовательный журнал операций представляет собой последовательную и хронологическую запись всех действий, выполненных с данными, хранящимися на сервере. Этот журнал должен быть неизменяемым и защищенным от несанкционированного доступа, гарантируя возможность обнаружения любых несанкционированных изменений. Значение такого журнала заключается в его способности обеспечивать точную и достоверную историю всех взаимодействий с данными, что необходимо для аудита, судебно-медицинской экспертизы и соблюдения нормативных требований.
Для получения согласованного и проверяемого журнала операций можно использовать несколько методов и технологий. К ним относятся криптографические методы, механизмы безопасного ведения журнала и протоколы консенсуса. Ниже мы рассмотрим эти методы подробно:
Криптографические методы
1. Хэш-цепочки: хеш-цепочка — это последовательность хеш-значений, где каждое хэш-значение зависит от предыдущего. Это создает связь между каждой записью журнала, гарантируя, что любое изменение записи разорвет цепочку. Например, если записи журнала представлены , хэш-цепочка может быть построена следующим образом:
в котором обозначает криптографическую хеш-функцию, а
представляет собой конкатенацию. Эта структура гарантирует, что любое вмешательство в запись журнала
приведет к несоответствию последующих значений хеш-функции, тем самым выявляя фальсификацию.
2. Цифровые подписи: каждая запись журнала может быть подписана цифровой подписью доверенной стороны с использованием асимметричной криптографии. Цифровая подпись обеспечивает подлинность и целостность, поскольку ее можно проверить с помощью открытого ключа подписавшего. Например, если запись в журнале подписан закрытым ключом
, подпись
может быть проверен любым, имеющим доступ к соответствующему открытому ключу
. Этот метод гарантирует, что любые изменения в
сделает подпись недействительной.
3. Деревья Меркла: Дерево Меркла — это двоичное дерево, в котором каждый листовой узел представляет собой хэш записи журнала, а каждый внутренний узел представляет собой хеш своих дочерних узлов. Корень дерева Меркла, известный как корень Меркла, предоставляет одно значение хеш-функции, которое представляет весь набор записей журнала. Древовидная структура Меркла обеспечивает эффективное и проверяемое доказательство включения, а это означает, что можно доказать, является ли конкретная запись журнала частью журнала, не раскрывая весь журнал. Это особенно полезно для сохранения конфиденциальности и обеспечения целостности.
Механизмы безопасного ведения журнала
1. Журналы только для добавления: Журнал, доступный только для добавления, — это структура журнала, в которой записи можно только добавлять, но не изменять или удалять. Эта неизменяемость гарантирует, что как только запись будет записана, она навсегда останется в журнале. Реализация журналов только для добавления обычно предполагает использование носителей с возможностью однократной записи (WORM) или использование программных механизмов, которые предотвращают изменение существующих записей журнала.
2. Технология Blockchain: Блокчейн — это децентрализованная и распределенная технология реестра, которая по своей сути обеспечивает последовательный и поддающийся проверке журнал операций. Каждый блок в блокчейне содержит список транзакций (записей журнала), временную метку и криптографический хеш предыдущего блока. Такая цепочка блоков гарантирует, что любое вмешательство в блок приведет к аннулированию последующих блоков. Технология блокчейн также использует протоколы консенсуса для достижения согласия между распределенными узлами, что еще больше повышает безопасность и надежность журнала.
3. Надежные среды выполнения (TEE): TEE, такие как Intel SGX или ARM TrustZone, обеспечивают безопасный анклав внутри процессора, где код и данные могут выполняться и безопасно храниться. Используя TEE, можно гарантировать, что записи журнала записываются и сохраняются в безопасной и изолированной среде, защищенной от взлома со стороны ненадежного сервера хранения. TEE также можно использовать для безопасного создания и хранения криптографических ключей, используемых для подписи записей журнала.
Протоколы консенсуса
В распределенных системах для достижения согласованности и проверяемости журналов часто требуются протоколы консенсуса, гарантирующие, что все узлы в системе согласны с порядком и содержанием записей журнала. Некоторые часто используемые протоколы консенсуса включают в себя:
1. Paxos: Paxos — это семейство протоколов консенсуса, предназначенное для достижения согласия между распределенными узлами при наличии сбоев. Paxos гарантирует, что все исправные узлы согласовывают одну и ту же последовательность записей журнала, обеспечивая согласованность и отказоустойчивость.
2. Raft: Raft — это еще один алгоритм консенсуса, который более понятен и прост в реализации, чем Paxos. Raft разделяет процесс консенсуса на выборы лидера, репликацию журналов и безопасность, гарантируя, что распределенный журнал остается согласованным и проверяемым.
3. Византийская Отказоустойчивость (BFT): Протоколы BFT, такие как Практическая византийская отказоустойчивость (PBFT), предназначены для достижения консенсуса в системах, где узлы могут проявлять произвольные (византийские) ошибки, включая вредоносное поведение. Протоколы BFT гарантируют, что журнал остается согласованным и проверяемым даже при наличии вредоносных узлов.
Практический пример
Рассмотрим сценарий, в котором финансовое учреждение использует ненадежную службу облачного хранилища для хранения журналов транзакций. Чтобы обеспечить целостность и проверяемость этих журналов, учреждение может принять следующие меры:
1. Хэш-цепочки: каждая запись журнала транзакций хешируется и связывается с предыдущей записью с помощью хэш-цепочки. Это гарантирует, что любое вмешательство в запись журнала будет обнаружено.
2. Цифровые подписи: Каждая запись в журнале подписывается цифровой подписью закрытого ключа учреждения. Это обеспечивает подлинность и неотказуемость, поскольку подпись можно проверить с помощью открытого ключа учреждения.
3. Деревья Меркла: учреждение периодически создает дерево Меркла из записей журнала и публикует корень Меркла на общедоступной доске объявлений или в блокчейне. Это позволяет любому проверить целостность записей журнала, не обращаясь ко всему журналу.
4. Блокчейн: Учреждение также может записывать журналы транзакций в частную цепочку блоков. Децентрализованный характер блокчейна гарантирует, что журнал остается согласованным и проверяемым даже при наличии ненадежных серверов хранения.
5. тройники: Учреждение может использовать TEE для безопасной записи и хранения записей журнала в безопасном анклаве, защищая их от взлома со стороны ненадежного сервера хранения.
6. Протоколы консенсуса: Если учреждение использует распределенную систему хранения, оно может использовать протоколы консенсуса, такие как Raft или PBFT, чтобы гарантировать, что все узлы согласовывают порядок и содержание журналов транзакций.
Реализуя эти меры, финансовое учреждение может вести последовательный и поддающийся проверке журнал операций, обеспечивая целостность, доступность и конфиденциальность своих журналов транзакций, даже при использовании ненадежных серверов хранения.
Другие недавние вопросы и ответы, касающиеся Безопасность передовых компьютерных систем EITC/IS/ACSS:
- Каковы некоторые проблемы и компромиссы, связанные с внедрением аппаратных и программных средств защиты от атак по времени при сохранении производительности системы?
- Какую роль предсказатель ветвления играет в атаках по таймингу процессора и как злоумышленники могут манипулировать им для утечки конфиденциальной информации?
- Как программирование с постоянным временем может помочь снизить риск атак по времени в криптографических алгоритмах?
- Что такое спекулятивное выполнение и как оно повышает уязвимость современных процессоров к атакам по времени, таким как Spectre?
- Как тайминговые атаки используют изменения во времени выполнения для получения конфиденциальной информации из системы?
- Чем концепция согласованности разветвления отличается от согласованности выборки-изменения и почему согласованность разветвления считается самой сильной достижимой согласованностью в системах с ненадежными серверами хранения?
- Каковы проблемы и потенциальные решения для реализации надежных механизмов контроля доступа для предотвращения несанкционированных изменений в общей файловой системе на ненадежном сервере?
- Как криптографические методы, такие как цифровые подписи и шифрование, могут помочь обеспечить целостность и конфиденциальность данных, хранящихся на ненадежных серверах?
- Что такое византийские серверы и какую угрозу они представляют для безопасности систем хранения данных?
- Как такие протоколы, как STARTTLS, DKIM и DMARC, способствуют безопасности электронной почты и какова их роль в защите электронной почты?
Посмотреть больше вопросов и ответов в EITC/IS/ACSS Advanced Computer Systems Security