На протяжении двух первых частей из этой серии, посвященной восстановлению структурной схемы по исходным текстам (reverse engineering), мы заложили фундамент для нашего анализа. В этой третьей части мы проведем реальный анализ вредоносного программного обеспечения.
Во второй части этой статьи мы остановились на том, что я спросил вас, имеет ли загруженное вам вредоносное программное обеспечение (malware) иконку winzip или winrar. Почему я задал этот вопрос? Кто-нибудь из вас помнит, что в одной из статей я приводил ссылку на статью под названием “The student, the Teacher, and Optix Pro”. Эта статья рассказывает о тех, кто использовал Троянов для взлома компьютера учителя. Часть процесса по построению троянского сервера включает в себя маскировку Трояна под иконкой winzip. Достаточно хитро, не так ли? Хотя этим и нельзя одурачить всех, определенно, большинство пользователей компьютера, которые не так сильны в компьютерной безопасности, поддадутся на эту уловку. Это также замечательно, что не каждый может быть экспертов в безопасности (security expert). Я упомянул это по той простой причине, что все мы разные. У всех у нас развиты различные навыки, поэтому об этом стоит помнить. Никто не любит умников!
Если вы хотите ознакомиться с остальными частями этой статьи, пожалуйста, прочитайте:
Итак, как я заключил выше, я не слишком уверен, что загруженное мной вредоносное программное обеспечение в действительности является сжатым с помощью winzip. И таким образом при двойном щелчке мыши на этом файле, я вовсе не распакую его, а установлю это вредоносное программное обеспечение на свою систему. Но с другой стороны это также может быть действительно сжатый кусок вредоносного программного обеспечения. Может кто-нибудь из вас придумать способ для однозначного определения того, что находится перед нами, сжатый кусок вредоносного программного обеспечения или же уже готовая к установке программа-шпион? Я могу это сделать. Все что нам нужно – это открыть загруженный нами файл с помощью шестнадцатиричного редактора Hex editor.
Рисунок 1
Как вы можете увидеть из рисунка, загруженный мною файл действительно имеет иконку архива winzip. Она не отображается, как классическая иконка winzip, потому что на моей виртуальной системе (VMware image) установлен winrar. Перед тем, как мы откроем файл с помощью шестнадцатиричного редактора (hex editor). Очень важно обратить на одну вещь. Форматы файлов таких, как winzip, winrar или даже формат PE все имеют особую сигнатуру или подпись, которую можно увидеть на уровне байтов (byte level). Это прекрасно видно с помощью шестнадцатиричного редактора (hex editor), именно поэтому нам необходимо с его помощью открыть наше вредоносное программное обеспечение. Это позволит нам увидеть особую последовательность байтов в самом файле. А это в свою очередь позволит нам отличить файл с архивом winzip от файла с вредоносной программой. Вам больше не нужно беспокоиться о том, что вы открываете этот файл в шестнадцатиричном редакторе, т.к. при этом вы не запускаете его, а всего лишь смотрите его содержимое.
Из рисунка ниже мы можем увидеть, что я открыл файл с вредоносным программным обеспечением в шестнадцатиричном редакторе (hex editor), который мне больше всего нравиться. На рисунке мы видим символы “MZ”, или если смотреть на файл в шестнадцатиричном виде — символы “4D 5A”. Символы “MZ” означают открытии последовательности байтов в заголовке файла формата PE. Другими словами, “MZ” означает, что этот файл является исполняемым, а не сжатым файлом в формате winzip. Ужас! Просто ужас! Неужели у авторов этого вредоносного программного обеспечения совсем нет совести? Ха. Как все мы знаем, у большинства из них ее определенно нет. Попытка замаскировать исполняемый файл под сжатый файл в формате winzip очень хитра, т.к. двойной щелчок мыши на нем приведет к запуску вредоносного программного обеспечения, а не к распаковке файла.
Хорошо, но тогда возникает вопрос, а как выглядит файл формата winzip на байтовом уровне. В действительности это очень хороший вопрос, который мы должны рассмотреть, т.к. только это позволит нам доказать различие между форматами. Точно также, как файл формата PE начинается с последовательности байтов “MZ”, файл формата winzip всегда начинается с сигнатуры “PK”. На этом моменте давайте посмотрим на настоящий файл в формате winzip.
Чтобы не быть голословным, я привел вам пример, из которого четко видно, что сжатый файл действительно начинается с последовательности символов “PK”, или же “50 4B”. Теперь, когда мы подвели нашу базовую линию и доказали, что файл с вредоносным программным обеспечением является исполняемым, а не сжатым файлом в формате winzip. Я также должен упомянуть здесь, что когда мы смотрим на файл с помощью редактора (hex), важно помнить, что один символ ASCII character представлен двумя буквенно-цифровыми символами (alpha-numeric). Чтобы вам стало совсем понятно, приведу конкретный пример, байт “50” представляет собой ASCII символ “P”, а байт “4B” представляет символ ASCII “K”. Это очень важная деталь, и также относится к области анализа пакетов (packet analysis). Хотя при анализе пакетов у нас часто есть метрики, каждая из которых представлена одним битом, а не целым байтом.
Вы наверно думаете, что теперь мы по-настоящему займемся восстановлением структурной схемы по исходным текстам (reverse engineering). Да, мы очень скоро займемся этим, но все в свое время. Также очень важно не упустить из виду информацию, которая будет очень полезна для нашего анализа. Такую информацию, как форматы файлов для winzip и PE. Когда вы занимаетесь reverse engineering необходимо уделить время на то, чтобы убедиться, что файл имеет тот формат, которым он кажется. Для того, чтобы сделать это, как мы делали это в этой статье, мы должны понять, как это делать. А для этого мы должны открыть файл с помощью редактора (hex editor), как мы это и сделали, а далее иметь под рукой копию спецификации формата файла (file format specification).
Формат Portable Executable или PE (переносимый исполняемый) – это один из тех форматов, которые являются исконно присущими для операционной системы Microsoft Windows. Спецификация этого формата файлов, я могу совершенно честно сказать, очень очаровательна для чтения. Для того, чтобы ваши знания в области компьютерной безопасности росли и закреплялись, вы должны постоянно увеличивать сложность изучаемых тем. Я буду очень рад, если вы найдете время и сможете разобраться с тем, что представляет из себя формат PE, что он означает, и для чего он используется. Изучение этого формата также поможет вам закрепить ваши знания о том, каким образом программа размещается в физической памяти т.е.: ваш жесткий диск в действительности отображается в память т.е.: RAM. Это в действительности может быть очень интересным.
В этой статье мы рассмотрели вредоносное программное обеспечение, которое загрузил я. Оно имело иконку файла формата winzip, но у меня были некоторые сомнения по этому поводу, что этот файл был действительно такого формата. Будучи очень подозрительным по натуре, я взломал этот файл с помощью шестнадцатиричного редактора (hex editor), в результате чего выяснилось, что в самом деле, это был не файл, сжатый в формате winzip, а исполняемый файл или файл в формате PE. В соответствии с этим мы узнали очень важную информацию, что файлы различных форматов начинаются с различных уникальных последовательностей байтов. Эти знания позволили нам точно определить тип файла, который у нас был. В следующей части этой статьи мы узнаем, каким образом было сжато это вредоносное программное обеспечение, а также, как его можно распаковать. После этого наш анализ начнется всерьез. До скорых встреч.
Источник www.windowsecurity.com