Компьютерная криминалистика в AzureComputer forensics in Azure

Цифровая криминалистика — это наука, которая занимается вопросами восстановления и исследования цифровых данных для поддержки расследования уголовных дел или гражданских разбирательств.Digital forensics is a science that addresses the recovery and investigation of digital data to support criminal investigations or civil proceedings. Компьютерная криминалистика — это ветвь цифровой криминалистики, которая занимается вопросами сбора и анализа данных компьютеров, виртуальных машин и цифровых носителей данных.Computer forensics is a branch of digital forensics that captures and analyzes data from computers, virtual machines (VMs), and digital storage media.

Компании должны гарантировать, что для цифровых доказательств, которые они предоставляют в ответ на юридические запросы, настроена допустимая цепочка обеспечения сохранности (CoC), поддерживаемая в течение всего процесса хранения и извлечения доказательств, а также получения к ним доступа.Companies must guarantee that digital evidence they provide in response to legal requests demonstrates a valid Chain of Custody (CoC) throughout the evidence acquisition, preservation, and access process. Чтобы обеспечить допустимую цепочку CoC, для хранилища цифровых доказательств необходимо настроить соответствующее управление доступом, защиту и сохранение целостности данных, систему мониторинга и оповещений, а также ведение журнала и аудит.To ensure a valid CoC, digital evidence storage must demonstrate adequate access control, data protection and integrity, monitoring and alerting, and logging and auditing.

Варианты использованияUse cases

  • Команда Центра обеспечения безопасности (SOC) компании может реализовать это техническое решение для поддержки действующей цепочки CoC цифровых доказательств.A company's Security Operation Center (SOC) team can implement this technical solution to support a valid CoC for digital evidence.
  • Следователи могут подключать копии дисков, полученные с помощью этой методики, к компьютеру, предназначенному для криминалистического анализа, без необходимости повторного создания исходной виртуальной машины, ее включения или получения к ней доступа.Investigators can attach disk copies obtained with this technique on a computer dedicated to forensic analysis, without re-creating, powering on, or accessing the original source VM.

ArchitectureArchitecture

Цепочка обеспечения сохранности

Эта стандартная звездообразная архитектура Azure развертывает виртуальные машины в рабочей периферии, а также зашифровывает их с помощью шифрования дисков Azure (ADE).This standard Azure hub-spoke architecture deploys VMs on the Production spoke, and encrypts them with Azure Disk Encryption (ADE). Azure Key Vault в рабочей подписке сохраняет ключи шифрования BitLocker (BEK) и ключи шифрования ключей (KEK) виртуальной машины, если применимо.The Azure Key Vault in the Production subscription stores the VMs' BitLocker encryption keys (BEKs), and key encryption keys (KEKs) if applicable.

Команда SOC имеет монопольный доступ к ресурсам в другой подписке Azure SOC, которые должны храниться в защищенном, неизменном и отслеживаемом виде.The SOC team has exclusive access to a different Azure SOC subscription, for resources that must be kept protected, unviolated, and monitored. Учетная запись хранения Azure в подписке SOC размещает копии моментальных снимков дисков в неизменяемом хранилище BLOB-объектов и сохраняет значения хэша SHA-256 моментальных снимков и копии BEK и KEK виртуальных машин в собственное хранилище ключей SOC.The Azure Storage account in the SOC subscription hosts copies of disk snapshots in immutable Blob storage, and keeps the snapshots' SHA-256 hash values and copies of the VMs' BEKs and KEKs in its own SOC key vault.

В ответ на запрос на запись цифрового доказательства виртуальной машины член команды SOC выполняет вход в подписку Azure SOC и использует гибридную рабочую роль Runbook в службе автоматизации Azure для выполнения runbook Copy-VmDigitalEvidence.In response to a request to capture a VM's digital evidence, an SOC team member signs in to the Azure SOC subscription, and uses a Hybrid Runbook Worker VM in Azure Automation to execute the Copy-VmDigitalEvidence runbook. Гибридная рабочая роль Runbook обеспечивает управление всеми механизмами, вовлеченными в процесс записи.The Hybrid Runbook Worker provides control of all mechanisms involved in the capture.

Runbook Copy-VmDigitalEvidence:The Copy-VmDigitalEvidence runbook:

  1. Входит в систему Azure с помощью управляемого удостоверения или в качестве субъекта-службы, чтобы получить доступ к подписке SOC и целевой виртуальной машине.Signs in to Azure as a managed identity or service principal to access the SOC subscription as well as the target VM.
  2. Создает моментальные снимки дисков операционной системы (ОС) и дисков данных виртуальной машины.Creates disk snapshots for the VM's operating system (OS) and data disks.
  3. Копирует моментальные снимки в неизменяемое хранилище BLOB-объектов в подписке SOC и во временную общую папку.Copies the snapshots to the SOC subscription's immutable Blob storage, and to a temporary file share.
  4. Вычисляет значения хэша SHA-256 для моментальных снимков в общей папке.Calculates SHA-256 hash values for the snapshots on the file share.
  5. Копирует значения хэша SHA-256, а также BEK виртуальной машины, KEK (если применимо) и теги идентификации диска в хранилище ключей SOC.Copies the SHA-256 hash values, as well as the VM's BEK, KEK if applicable, and disk identification tags, to the SOC key vault.
  6. Удаляет все копии моментальных снимков, кроме одной, в неизменяемом хранилище BLOB-объектов.Deletes all copies of the snapshots except the one in immutable Blob storage.

Учетная запись хранения AzureAzure Storage account

Учетная запись хранения в подписке SOC содержит моментальные снимки дисков в контейнере, настроенном в качестве неизменяемого хранилища BLOB-объектов Azure.The Storage account in the SOC subscription hosts the disk snapshots in a container configured as Azure immutable Blob storage. В неизменяемом хранилище BLOB-объектов хранятся объекты критически важных для бизнеса данных в состоянии Write Once, Read Many (WORM). Такие данные нельзя удалять и изменять в течение заданного пользователем интервала.Immutable Blob storage stores business-critical data objects in a Write Once, Read Many (WORM) state, which makes the data non-erasable and non-modifiable for a user-specified interval. В учетной записи хранения необходимо включить безопасное перемещение.Secure transfer must be enabled on the Storage account.

В учетной записи хранения также содержится общая папка Azure, которую можно использовать в качестве временного репозитория для вычисления значения хэша SHA-256 моментального снимка.The Storage account also hosts an Azure file share to use as a temporary repository for calculating the snapshot's SHA-256 hash value.

Azure Key VaultAzure Key Vault

В подписке SOC имеется собственное хранилище ключей, содержащее копию BEK, которую ADE использует для защиты целевой виртуальной машины, а также KEK, если это применимо.The SOC subscription has its own key vault, which hosts a copy of the BEK that ADE uses to protect the target VM, as well as the KEK if applicable. Основная копия ключа хранится в хранилище ключей, используемом целевой виртуальной машиной, для обеспечения нормального функционирования виртуальной машины.The primary copy of the key stays in the key vault used by the target VM, so that VM can continue normal operation. Хранилище ключей SOC также содержит значения хэша SHA-256 для моментальных снимков диска.The SOC key vault also contains the SHA-256 hash values for the disk snapshots.

Служба автоматизации AzureAzure Automation

Команда SOC использует учетную запись службы автоматизации Azure для создания и использования runbook Copy-VmDigitalEvidence.The SOC team uses an Azure Automation account to create and maintain the Copy-VmDigitalEvidence runbook. Служба автоматизации Azure также используется для создания гибридных рабочих ролей Runbook, которые необходимы для запуска runbook.They also use Azure Automation to create the Hybrid Runbook Workers that run the runbook.

Гибридная рабочая роль RunbookHybrid Runbook Worker

Гибридная рабочая роль Runbook является частью учетной записи службы автоматизации. Ее использует лишь команда SOC для выполнения runbook Copy-VmDigitalEvidence.The Hybrid Runbook Worker VM is part of the Automation account, and is used exclusively by the SOC Team to execute the Copy-VmDigitalEvidence runbook. Виртуальная машина гибридной рабочей роли Runbook защищена с помощью брандмауэра службы хранилища Azure.The Hybrid Runbook Worker VM is protected with Azure Storage Firewall.

Виртуальную машину гибридной рабочей роли Runbook необходимо размещать в подсети, которая предоставляет доступ к учетной записи хранения.The Hybrid Runbook Worker VM must be hosted in the same subnet that grants access to the Storage account. Доступ к этой виртуальной сети предоставляется лишь гибридной рабочей роли Runbook с помощью механизма конечной точки службы.Access to this virtual network is granted only to the Hybrid Runbook Worker, using the service endpoint mechanism.

Гибридная рабочая роль Runbook должна содержать управляемое удостоверение или субъект-службу, необходимые для доступа к подписке целевой виртуальной машины и выполнения runbook.The Hybrid Runbook Worker must have a managed identity or a Service Principal in order to access the target VM's subscription and execute the runbook. Для удостоверения необходимо предоставить по крайней мере следующие разрешения:The identity must have at least the following permissions:

  • Участник в группе ресурсов целевой виртуальной машины, который предоставляет права на выполнение моментального снимка на дисках виртуальных машин.Contributor on the target VM's resource group, which provides snapshot rights on VM disks
  • Участник учетных записей хранения в неизменяемой учетной записи хранения SOC.Storage Account Contributor on the SOC immutable Storage account
  • Политика доступа для получения секрета для BEK и получения ключа для KEK (при его наличии) в хранилище ключей целевой виртуальной машины.Access policy to Get Secret for the BEK, and Get Key for the KEK if present, on the target VM's key vault
  • Политика доступа для установки секрета для BEK и создания ключа для KEK (при его наличии) в хранилище ключей SOC.Access policy to Set Secret for the BEK, and Create Key for the KEK if present, on the SOC key vault

Log AnalyticsLog Analytics

В рабочей области Log Analytics Azure в Azure Monitor хранятся журналы действий для аудита всех событий в подписке SOC.An Azure Log Analytics workspace in Azure Monitor stores activity logs to audit all the events on the SOC subscription.

РекомендацииConsiderations

При проверке допустимости CoC учитывайте следующие требования:Consider the following requirements when proving the validity of a CoC:

Минимальный уровень доступа и разрешенийLeast access/privilege

Только два лица в команде SOC должны иметь право на изменение элементов управления доступом к подписке и ее данным.Only two individuals within the SOC team should have rights to modify the controls governing access to the subscription and its data. Предоставляйте другим пользователям лишь минимальный доступ к подмножествам данных для выполнения работы.Grant other individuals only bare minimum access to data subsets they need to perform their work. Настраивайте и контролируйте доступ с помощью управления доступом на основе ролей (RBAC).Configure and enforce access through role-based access control (RBAC). Доступ к учетной записи хранения имеет только виртуальная сеть в подписке SOC.Only the virtual network in the SOC subscription has access to the Storage account.

Получение доказательстваEvidence acquisition

В журналах аудита Azure можно отображать получение доказательств, записывая действие создания моментального снимка диска виртуальной машины, а также сведения о том кто выполнил моментальный снимок, как и где.Azure Audit Logs can show evidence acquisition by recording the action of taking a VM disk snapshot, with elements like who took the snapshot, how, and where.

Целостность доказательстваEvidence integrity

Необходимо убедиться, что во время перемещения доказательства в целевой архив оно не было изменено.You must guarantee that actions taken to move evidence to its final archive destination haven't altered the evidence. Вы можете уменьшить риск изменения, используя собственные механизмы Azure, такие как Функции или служба автоматизации Azure.You can mitigate the risk of alteration by using native Azure mechanisms like Functions or Azure Automation.

Если вы примените к целевому хранилищу Azure удержание по юридическим причинам, доказательство будет заблокировано сразу после записи.If you apply Legal Hold to the destination Azure storage, the evidence is frozen in time as soon as it's written. Удержание по юридическим причинам фактически показывает, что CoC полностью поддерживается в Azure и что выполнение незаконных изменений в течение периода существования образа диска в динамической виртуальной машине и преобразования его на доказательство в учетной записи хранения невозможно.Legal Hold effectively shows that the CoC was maintained entirely in Azure, and there was no opportunity to tamper between the time the disk image existed on a live VM and became evidence in the Storage account.

Еще один полезный механизм сохранения целостности — использование хэш-алгоритмов.Another useful integrity mechanism is the use of hash algorithms. Azure предоставляет значение хэша MD5 для каждого диска, но вы можете вычислить более надежные значения, например SHA-256 в текущем примере.Azure offers an MD5 hash value for each disk, but you can calculate stronger values, like SHA-256 in the current example.

Создание доказательстваEvidence production

Следователям необходим доступ к доказательству для проведения анализа, и этот доступ необходимо отслеживать.Investigators need access to evidence in order to perform analyses, and this access must be tracked.

Предоставьте следователям ключ универсального кода ресурса (URI) подписанного URL-адреса хранилища (SAS) для доступа к доказательству.Provide investigators with a Storage Shared Access Signatures (SAS) URI key for accessing evidence. При использовании URI SAS во время формирования SAS и при использовании его для получения копии доказательства в журнале создается соответствующая информация.Using a SAS URI produces relevant log information when the SAS is generated, and every time it's used to get a copy of the evidence.

Кроме того, следователям необходимо предоставить BEK и KEK, которые хранятся в хранилище ключей SOC, прежде чем они смогут использовать зашифрованные копии дисков.You also need to provide investigators with the BEKs and KEKs archived in the SOC key vault before they can use the encrypted disk copies.

Например, если юридической команде требуется сохраненный виртуальный жесткий диск (VHD), то один из двух хранителей данных создает доступный лишь для чтения ключ URI SAS, срок действия которого истекает через 8 часов, чтобы гарантировать минимальность окна времени доступности данных и невозможность изменения этих данных.For example, if a legal team needs a preserved virtual hard drive (VHD) transferred to them, one of the two data custodians generates a read-only SAS URI key that expires after eight hours, to ensure the window of availability to the data is kept to a minimum, and that the data cannot be altered.

Мониторинг и оповещенияMonitoring and alerting

Azure предоставляет всем клиентам службу для мониторинга аномалий, связанных с подпиской и ресурсами, а также службу оповещений.Azure provides services to all customers to monitor and alert on anomalies involving their subscription and its resources. К этим службам относятся следующие:These services include:

Региональное хранениеRegional store

Для обеспечения соответствия, согласно некоторым стандартам или правилам, доказательства и вся инфраструктура поддержки должна находиться в одном регионе Azure.For compliance, some standards or regulations require evidence and all support infrastructure to be maintained in the same Azure region.

Альтернативные вариантыAlternatives

При необходимости вы можете предоставить ограниченный по времени доступ на чтение к учетной записи SOC Storage IP-адресам извне и локальным сетям, чтобы следователи могли скачивать цифровые доказательства.If necessary, you can grant time-limited read-only SOC Storage account access to IP addresses from outside, on-premises networks, for investigators to download the digital evidence.

Кроме того, вы можете развернуть гибридную рабочую роль Runbook в локальных или других облачных сетях, которые можно использовать для запуска runbook Copy-VmDigitalEvidence службы автоматизации Azure в ресурсах.You can also deploy a Hybrid Runbook Worker on on-premises or other cloud networks, which they can use to run the Copy-VmDigitalEvidence Azure Automation runbook on their resources.

РеализацияImplementation

Полный пример кода PowerShell для runbook Copy-VmDigitalEvidence можно найти на сайте GitHub.You can find the Copy-VmDigitalEvidence runbook complete PowerShell code sample in GitHub. Пример кода выполняется в гибридной рабочей роли Runbook для Linux.The code example runs on a Linux Hybrid Runbook Worker. Для гибридной рабочей роли Runbook необходимо установить PowerShell Core, а также программу sha256sum для вычисления значения хэша SHA-256 моментальных снимков диска.The Hybrid Runbook Worker must have PowerShell Core installed and the sha256sum program available, to calculate the disk snapshots' SHA-256 hash values.

Рабочий процесс записиCapture workflow

Команда SOC создала runbook Copy-VmDigitalEvidence и выделенную виртуальную машину гибридной рабочей роли Runbook в учетной записи службы автоматизации Azure.The SOC team has created the Copy-VmDigitalEvidence runbook and the dedicated Hybrid Runbook Worker VM in their Azure Automation account.

После получения запроса на запись цифрового доказательства член команды SOC выполняет следующий рабочий процесс:When the team receives a request to capture digital evidence, an SOC team member follows this workflow:

  1. Входит в подписку SOC на портале Azure и выбирает свою учетную запись службы автоматизации Azure.Sign in to the SOC subscription in the Azure portal, and select their Azure Automation account.
  2. Изменяет runbook Copy-VmDigitalEvidence, указав следующие сведения:Edit the Copy-VmDigitalEvidence runbook to supply the following information:
    • идентификатор подписки целевой виртуальной машины;The target VM's subscription ID
    • группу ресурсов целевой виртуальной машины;The target VM's resource group
    • имя компьютера с целевой виртуальной машиной.The target VM's machine name
  3. Получает доступ к виртуальной машине гибридной рабочей роли Runbook, которая содержит управляемое удостоверение или субъект-службу для клиента Azure, и запускает runbook Copy-VmDigitalEvidence.Access the Hybrid Runbook Worker VM, which has a managed identity or service principal for the Azure tenant, and run the Copy-VmDigitalEvidence runbook.
  4. Журналы действий регистрируют выполнение runbook и сохраняют связанные данные в Log Analytics для дальнейшего анализа.The Activity Logs register the runbook execution, and store the related data in Log Analytics for further analysis.

Runbook Copy-VmDigitalEvidence выполняет следующие действия:The Copy-VmDigitalEvidence runbook performs the following actions:

  1. Выполняет вход в подписку Azure SOC.Signs in to the Azure SOC subscription.
  2. Выполняет вход в целевую виртуальную машину и создает моментальный снимок диска ОС.Signs in to the target VM and creates the OS disk snapshot
  3. Копирует моментальный снимок в неизменяемую учетную запись хранения больших двоичных объектов SOC и во временную общую папку Azure SOC.Copies the snapshot to the immutable SOC Blob Storage account and to the temporary SOC Azure file share
  4. Вычисляет значение хэша SHA-256 для моментального снимка в общей папке.Calculates the SHA-256 hash value of snapshot on the file share
  5. Получает доступ к хранилищу ключей целевой виртуальной машины и копирует BEK виртуальной машины (и KEK, если применимо) в хранилище ключей SOC.Accesses the target VM's key vault and copies the VM's BEK, and KEK if applicable, to the SOC key vault. Секрет с именем отпечатка выполнения runbook содержит ключ шифрования и все теги для определения диска и тома.A secret named with the thumbprint of the runbook execution contains the encryption key and all the tags to identify the disk and volume.
  6. Сохраняет вычисленное значение хэша SHA-256 в хранилище ключей SOC.Stores the calculated SHA-256 hash value into the SOC key vault.
  7. Удаляет временную копию моментального снимка из общей папки Azure SOC.Removes the temporary copy of the snapshot from the SOC Azure file share.
  8. Повторяет операции создания моментальных снимков дисков, копирования моментальных снимков и ключей, а также создания и копирования хэша для каждого диска данных, подключенного к виртуальной машине.Repeats the disk snapshots, snapshot and key copying, and hash generation and copying for each data disk attached to the VM.
  9. Удаляет все исходные моментальные снимки, созданные во время описанного процесса.Removes all the source snapshots generated during the process.

Извлечение доказательстваEvidence retrieval

Чтобы разблокировать моментальный снимок диска Azure, заблокированный с помощью BitLocker, и вставить его в том G:\ на компьютере, выполните следующие действия:To unlock an Azure disk snapshot locked with BitLocker, and mount it under the G:\ volume of a computer:

  1. Откройте хранилище ключей SOC и найдите секрет, содержащей BEK диска.Open the SOC key vault, and search the secret containing the BEK of the disk. Секрету присвоено имя отпечатка выполнения runbook Copy-VmDigitalEvidence.The secret is named with the thumbprint of the Copy-VmDigitalEvidence runbook execution.
  2. Скопируйте строку BEK и вставьте ее в переменную $bekSecretBase64 в приведенном ниже сценарии PowerShell.Copy the BEK string and paste it into the $bekSecretBase64 variable in the following PowerShell script. Вставьте значение тега DiskEncryptionKeyFileName в переменную $fileName.Paste the value of the DiskEncryptionKeyFileName tag into the $fileName variable.
  3. Выполните скрипт.Run the script.
    $bekSecretbase64=""

    $fileName=""

    $bekFileBytes = [Convert]::FromBase64String($bekSecretbase64)

    $path = "C:\BEK\$fileName"

    [System.IO.File]::WriteAllBytes($path,$bekFileBytes)

    manage-bde -unlock G: -rk $path

Дальнейшие действияNext steps

Дополнительные сведения о возможностях защиты данных Azure см. на следующих страницах:For more information about Azure data-protection features, see:

Дополнительные сведения о возможностях ведения журналов и аудита Azure см. на следующих страницах:For more information about Azure logging and auditing features, see: