Затрону один инструмент на python, который восстанавливает содержимое из файлов, зашифрованных программами-вымогателями с использованием «прерывистого шифрования». Инструмент не самый новый, но кому-то может пригодиться.
Что такое прерывистое шифрование? Прерывистое шифрование - это когда программа-вымогатель отказывается от шифрования всего файла, вместо этого шифруя только часть каждого файла, часто блоки фиксированного размера или только начало целевых файлов.
Наиболее очевидным преимуществом такого способа шифрования является скорость. Поскольку файлы зашифрованы только частично, прерывистое шифрование требует меньше времени, затрачиваемого на каждый файл, что позволяет программному обеспечению-вымогателю влиять на большее количество файлов за меньшее время. Это означает, что даже если вымогательство будет остановлено до завершения, больше файлов будет зашифровано, что создаст более значительное влияние и сделает его более вероятным, что программа-вымогатель в конечном итоге повредит критически важные файлы.
Пример структуры шифрования:
Принцип работы на примере pdf-файла:
Режимы шифрования, потенциально могут оставить значительное количество контента в файлах незатронутым. В частности, в случае PDF-файлов это означает, что многие объекты останутся полностью нетронутыми. Мы можем извлечь эти нетронутые объекты из PDF-файлов и сохранить любые ценные данные, которые мы найдем.
Как изображения, так и текст появляются в потоковых объектах в PDF-файлах. Итак, чтобы извлечь их из зашифрованного PDF-документа, нам нужно просмотреть объекты потока. Изображения обычно происходят как содержание потоковых объектов. Это означает, что мы можем, как правило, восстановить их, удаляя любые применяемые фильтры.
К сожалению, восстановление текста требует дополнительной работы. В более простых случаях текст разбивается на куски внутри потока. В этих случаях нам нужно идентифицировать все куски и концентрировать содержимое каждого куска вместе. Следующее изображение является примером части потока PDF, содержащей текст «Это пример простого текстового объекта в PDF». Как видите, текст разбивается на разные куски, окруженные скобками:
Пример простого текстового потока
В более сложных случаях текст кодируется с использованием hex, за которым следует CMAP (сопоставление символов), в дополнение к разбиению на фрагменты. Чтобы проиллюстрировать это, следующие изображения содержат текстовый поток и сопоставление символов:
Пример текстового потока CMAP (вверху) и связанный с ним поток CMAP (внизу)
Верхняя часть показывает поток, содержащий закодированный текст, а нижняя часть показывает поток, содержащий CMAP, используемый для кодирования. В случаях, когда используется CMAP, фрагменты заключены в <> вместо (). Чтобы понять, каким должен быть текст, нам нужно найти соответствующие значения в объекте CMAP. Например, первый символ в текстовом объекте — <01>. Глядя в объект CMAP, мы видим, что <01> сопоставлено с <0054>. Как только мы найдем сопоставленное значение для символа, все, что нам нужно сделать, это декодировать из шестнадцатеричного. В этом случае 54 — это шестнадцатеричное значение для символа «T», поэтому первый символ в нашем тексте — «T». Повторение этого для остальных символов даст нам текст «Это пример текста CMAP».
В случаях, когда текст хранится как объекты CMAP, для восстановления текста ни текст, ни объекты CMAP не могут быть зашифрованы. Иногда, хотя и редко, текст сопоставляется с использованием hex. Например, символ «A» будет закодирован в 41, а затем 41 будет снова сопоставлен в 41. В этих удачных случаях мы можем восстановить текст, даже если сопоставление не может быть восстановлено.
В настоящее время White Phoenix поддерживает следующие типы файлов: pdf', 'docx', 'docm', 'dotx', 'dotm', 'odt', 'xlsx', 'xlsm', 'xltx', 'xltm', 'xlsb', 'xlam', 'ods''pptx', 'pptm', 'ptox', 'potm', 'ppsx', 'ppsm', 'odp', 'zip'
ССылки на источники:
Что такое прерывистое шифрование? Прерывистое шифрование - это когда программа-вымогатель отказывается от шифрования всего файла, вместо этого шифруя только часть каждого файла, часто блоки фиксированного размера или только начало целевых файлов.
Наиболее очевидным преимуществом такого способа шифрования является скорость. Поскольку файлы зашифрованы только частично, прерывистое шифрование требует меньше времени, затрачиваемого на каждый файл, что позволяет программному обеспечению-вымогателю влиять на большее количество файлов за меньшее время. Это означает, что даже если вымогательство будет остановлено до завершения, больше файлов будет зашифровано, что создаст более значительное влияние и сделает его более вероятным, что программа-вымогатель в конечном итоге повредит критически важные файлы.
Пример структуры шифрования:
Принцип работы на примере pdf-файла:
Режимы шифрования, потенциально могут оставить значительное количество контента в файлах незатронутым. В частности, в случае PDF-файлов это означает, что многие объекты останутся полностью нетронутыми. Мы можем извлечь эти нетронутые объекты из PDF-файлов и сохранить любые ценные данные, которые мы найдем.
Как изображения, так и текст появляются в потоковых объектах в PDF-файлах. Итак, чтобы извлечь их из зашифрованного PDF-документа, нам нужно просмотреть объекты потока. Изображения обычно происходят как содержание потоковых объектов. Это означает, что мы можем, как правило, восстановить их, удаляя любые применяемые фильтры.
К сожалению, восстановление текста требует дополнительной работы. В более простых случаях текст разбивается на куски внутри потока. В этих случаях нам нужно идентифицировать все куски и концентрировать содержимое каждого куска вместе. Следующее изображение является примером части потока PDF, содержащей текст «Это пример простого текстового объекта в PDF». Как видите, текст разбивается на разные куски, окруженные скобками:
Пример простого текстового потока
Пример текстового потока CMAP (вверху) и связанный с ним поток CMAP (внизу)
В случаях, когда текст хранится как объекты CMAP, для восстановления текста ни текст, ни объекты CMAP не могут быть зашифрованы. Иногда, хотя и редко, текст сопоставляется с использованием hex. Например, символ «A» будет закодирован в 41, а затем 41 будет снова сопоставлен в 41. В этих удачных случаях мы можем восстановить текст, даже если сопоставление не может быть восстановлено.
В настоящее время White Phoenix поддерживает следующие типы файлов: pdf', 'docx', 'docm', 'dotx', 'dotm', 'odt', 'xlsx', 'xlsm', 'xltx', 'xltm', 'xlsb', 'xlam', 'ods''pptx', 'pptm', 'ptox', 'potm', 'ppsx', 'ppsm', 'odp', 'zip'
ССылки на источники: