Изучение новых возможностей Malcat: Кошачий взгляд на разведку угроз, закладки и форматы файлов
Ах, как приятно снова видеть вас! Чеширский Кот здесь, готов поделиться с вами захватывающими новостями о Malcat.
Позвольте представить вам Malcat, программное обеспечение, созданное компанией Malcat EI, единственным предприятием, расположенным недалеко от города Лион, Франция. Имея опыт в области информационной безопасности, в частности, в анализе вредоносных программ и компьютерной криминалистике, а также прочную основу в разработке программного обеспечения, Malcat EI уверены в своей способности обеспечить результат.
Теперь вы можете задаться вопросом: почему именно Malcat?
В наш век технологического прогресса у реверс-инженеров есть множество вариантов для анализа известных программ, таких как IDA, Binary Ninja, Ghidra и другие. Таким образом, можно задаться вопросом, есть ли реальная необходимость в еще одной программе для анализа бинарных файлов.
Однако такие инструменты, как IDA, существуют в первую очередь для решения одного вопроса: как функционирует конкретное бинарное программное обеспечение? Хотя они прекрасно справляются с этим вопросом, для тщательного изучения одного двоичного файла требуются значительные усилия и временные затраты.
В отличие от них, аналитики вредоносных программ, специалисты по реагированию на инциденты и аналитики SOC должны быстро просеивать множество неизвестных двоичных файлов. При анализе файла они отдают предпочтение пониманию его содержимого, а не тому, как он работает. Поскольку вредоносные программы могут быть весьма коварными, им приходится решать эту задачу для различных типов файлов, включая программы установки, архивы, офисные документы, программы и огромное количество архитектур, таких как NSIS, AutoIT, .NET, python, x86/64 и многие другие. Эта проблема отличается от той, которую решают IDA-подобные инструменты, что обуславливает необходимость создания инструмента другого класса.
До сих пор аналитики вредоносных программ полагались либо на устаревшие инструменты, такие как замечательный Hiew, либо на многочисленные отдельные утилиты, каждая из которых предназначена для решения небольшой части проблемы. Malcat стремится объединить функции этих инструментов в единый и надежный пользовательский интерфейс. Хотя Malcat включает дизассемблер и декомпилятор, подобный IDA, это отдельные инструменты, работающие в разных категориях.
Похоже, что Malcat продвигается постепенными, но последовательными темпами к созданию многофункционального решения для бинарного анализа. Этот последний "большой" релиз знаменует собой важную веху перед выходом полной версии Malcat 1.0 и демонстрирует значительные улучшения.
Теперь можно одновременно открывать несколько проектов и легко переключаться между ними. Кроме того, появилась возможность сканирования двоичных файлов на наличие сигнатур FLIRT (с поддержкой FLIRT версии 6+). Программа также способна анализировать файлы OneNote (.one). Наконец, в программу включены быстрые закладки для быстрой и удобной навигации.
Давайте подробнее остановимся на деталях этой замечательной разработки.
Параллельное открытие нескольких проектов Файлы против проектов
Позвольте мне рассказать о внутреннем устройстве Malcat.
Malcat проводит четкое различие между файлами и проектами. Проект включает в себя корневой файл, хранящийся на диске, и все сопутствующие подфайлы, извлеченные из этого корневого файла. В рамках проекта можно открыть несколько файлов. Например, двойной щелчок на вырезанном файле или открытие ресурса инициирует открытие дополнительных файлов. Однако такая навигация осуществляется по принципу "глубина - вперед", то есть в любой момент времени пользователю виден только последний открытый файл.
Хотя эта техника навигации в целом эффективна, она может вызвать проблемы, особенно с дропперами. В случаях, когда ресурс должен быть расшифрован с помощью ключа, находящегося в программе, необходимо запустить два экземпляра Malcat: один экземпляр для доступа и расшифровки встроенного ресурса, а другой - для отображения разобранной функции расшифровки.
Прошли времена ограничений, связанных с одним проектом. Теперь Malcat позволяет одновременно открывать несколько проектов и легко переключаться между ними. Мы изучили различные подходы к пользовательскому опыту, чтобы обеспечить бесшовную навигацию по нескольким проектам. Традиционные вкладки были рассмотрены, но они занимали слишком много виртуального пространства, а древовидное отображение слева вызывало недоумение.
В итоге наша команда остановилась на изысканном решении: расширении уже имеющейся строки имени файла. Нажав на адресную строку, пользователь теперь может быстро переключаться между различными открытыми проектами. Этот твик также предоставляет рудиментарную информацию о файле на случай, если он потеряется. Это косметическое изменение потребовало рефакторинга значительной части кода графического интерфейса, поэтому, пожалуйста, сообщите нам, если вы столкнетесь с какими-либо ошибками.
Так-так-так, похоже, вы все еще любознательны, и я рад вам помочь. Позвольте мне объяснить вам кое-что о Malcat.
Обычно, когда вы дважды щелкаете на вырезанном или виртуальном файле, он открывается в текущем проекте. Однако, если вы хотите открыть его в новом проекте, просто выберите "Открыть (новая вкладка)" из контекстного меню.
Вот что весьма любопытно в Malcat: когда вы используете команду Ctrl+O для открытия нового файла, она создает новый проект, а не заменяет существующий. Очаровательно, не правда ли?
Но подождите, это еще не все! Если вы предпочитаете старое поведение с заменой текущего проекта, просто снимите флажок "Открывать новые файлы в новой вкладке" в разделе Общие диалогового окна Параметры.
Поддержка подписей FLIRT Подписи FLIRT
Так-так-так, что у нас тут? Похоже, что умные люди из IDA придумали нечто весьма гениальное. Узрите сигнатуры FLIRT! Эти волшебные штучки могут идентифицировать библиотечные функции, которые статически связаны внутри программы. Это стало чем-то вроде промышленного стандарта в мире реверс-инжиниринга, и это особенно полезно для реверс-инжиниринга больших приложений, в которых не хватает символов. Весьма полезный инструмент, не так ли?
Так-так-так, у Malcat на борту есть несколько довольно интересных сигнатур FLIRT! Эти маленькие детки были разработаны волшебниками из IDA и могут обнаруживать библиотечные функции, которые статически связаны в программе. В наши дни они практически стали стандартом в мире реверс-инжиниринга и очень полезны при работе с крупными приложениями, в которых нет символов.
В настоящее время Malcat собирает первоклассные (лицензированные MIT) FLIRT-сигнатуры для среды выполнения Msvc (x86 и x64), Delphi 6 и 7 (x86) и Libcurl (x86 и x64). Но не беспокойтесь, если вы хотите добавить свои собственные сигнатуры FLIRT - это проще простого! Просто бросьте любой файл .sig в <malcat install dir>\data\flirt или даже лучше в <ваш пользовательский dir>\flirt, нажмите Ctrl+R, и все готово.
Некоторые могут задаться вопросом, почему в Malcat нет возможности вручную применить подпись FLIRT к файлу. На это есть несколько причин. Для начала, мы хотим, чтобы Malcat был удобен в использовании, особенно для новичков, которые могут быть ошеломлены огромным количеством вариантов сигнатур.
Кроме того, мы разработали Malcat для молниеносной работы - открытие файлов должно происходить практически мгновенно. Ручной выбор файла подписи с помощью диалогового окна противоречит этой философии. Если вы предпочитаете, чтобы ваша подпись FLIRT применялась только к определенным файлам, вы можете указать предварительное условие для вашей подписи. Итак, вот и все - еще одна интересная функция от Malcat!
Сканирование FLIRT может немного замедлить анализ, особенно если вы используете большие сигнатуры MSVC FLIRT (которые занимают около 5 МБ в запечатанном виде). Применение этих сигнатур к каждому файлу может привести к двум проблемам: увеличению времени анализа и ложным срабатываниям. Но не бойтесь, у Malcat есть решение! Каждая сигнатура FLIRT может поставляться с файлом предусловий, который содержит лямбда-выражение на языке python, определяющее, следует ли применять сигнатуру к данному файлу. Выражение оценивается во время выполнения, и если оно возвращает true, подпись применяется. Если нет, то оно игнорируется.
Файл предусловий имеет доступ к некоторым связующим элементам Malcat для python, таким как необработанный файл, файловые структуры, отображение файлов и CFG. Вы можете узнать больше об этих привязках в файлах справки Malcat (просто нажмите Ctrl+H и найдите Scripting). Например, предварительное условие для файла MSVC FLIRT выглядит следующим образом:
"RichHeader" in malcat.struct
Любой PE-файл, имеющий заголовок Rich, будет применять сигнатуру MSVC flirt. Но вы можете задать более сложные предварительные условия. Вот, например, одно из них для libcurl_x86.sig:
malcat.architecture == bindings.FileType.Architecture.X86 and \
".rdata" in malcat.map and \
malcat.file.search("CLIENT libcurl",
malcat.map[".rdata"].phys,
min(malcat.map[".rdata"].phys_size, 10000000)
)[1]Использование python в качестве языка для предварительных условий должно дать вам, пользователям, достаточно контроля над подписями FLIRT.
Ах, любопытный, похоже, что некоторые озорники нашли новый способ уклонения от обнаружения и доставки вредоносной полезной нагрузки.
В то время как многие пользователи и решения безопасности стали более искусными в обнаружении и избегании обычных подозреваемых во вложениях электронной почты, некоторые субъекты угроз стали использовать Microsoft OneNote в качестве нового пути для своей гнусной деятельности. Хотя в OneNote отсутствуют функции макросов, он позволяет встраивать произвольные файлы. С помощью хитроумного расположения наложения эти злоумышленники могут заманить ничего не подозревающих пользователей, заставив их дважды щелкнуть по этим встроенным файлам и без раздумий запустить вредоносную полезную нагрузку.
По счастливой случайности команда Malcat наткнулась на хорошо документированный формат файлов Microsoft OneNote. Воспользовавшись этим, они быстро интегрировали в Malcat анализатор файлов .one. Это открытие позволяет пользователям всесторонне анализировать структуру любого документа .one, а также просматривать встроенные в него файлы. Добавление OneNote в арсенал Malcat означает включение 46-го поддерживаемого формата файлов.
Закладки (bookmarks) пользователя
А, пользовательские закладки, долгожданная функция! Это удобный способ для пользователей быстро перемещаться вперед и назад в анализируемом двоичном файле. Все, что вам нужно сделать, это нажать Ctrl+Alt+0 ... Ctrl+Alt+9 в шестнадцатеричном, структурном или дизассемблерном представлении (или в любом другом, где есть адресная строка). Это установит закладку с номерами 1 ... 9 либо по адресу выбранного байта, если в представлении выбран один байт, либо по первому адресу, отображаемому в представлении в противном случае.
Как только закладка будет установлена, ее номер появится в адресной строке представления, ясный, как чеширский оскал. А если вы не любитель клавиатур, вы можете просто щелкнуть правой кнопкой мыши и воспользоваться новым подменю Toggle bookmark в контекстном меню, чтобы установить или снять закладку с адреса. В целом, это простая, но удобная функция, которая заставит вас мурлыкать от удовольствия.
Ах, закладки! Такой удобный инструмент для любопытных и пытливых умов.
Теперь при просмотре шестнадцатеричного, структурного или дизассемблерного представления вы можете нажать Ctrl+Alt+0...Ctrl+Alt+9, чтобы установить закладку с номером 1...9 на выбранный адрес байта или первый адрес, отображаемый в представлении. После установки номер закладки будет отображаться в адресной строке представления для удобства.
Для тех, кто предпочитает более наглядный подход, вы также можете переключать закладки щелчком правой кнопки мыши, используя новое подменю "Переключить закладку" в контекстном меню. А когда вы будете готовы перейти к конкретной закладке, просто нажмите Alt+0 ... Alt+9 или воспользуйтесь пунктом меню "Вид > Перейти к закладке".
А чтобы было еще удобнее, переходы к закладкам пользователя отслеживаются в списке "Последний переход" Malcat, так что вы всегда сможете вернуться к предыдущему местоположению с помощью надежной клавиши Backspace. Удачных закладок!
Так-так-так, похоже, что FileScanIO был добавлен в список поставщиков аналитики угроз. Это означает, что при запросе результатов анализа угроз вы будете получать данные и с их платформы.
Но учтите, друзья мои, что для того, чтобы воспользоваться услугами FileScanIO, вам понадобится ключ API. Не волнуйтесь, вы можете получить его бесплатно на их сайте https://www.filescan.io/scan
Однажды я увидел, как Алиса, любопытная девочка, использовала Malcat для анализа подозрительного файла. Она была впечатлена различными возможностями Malcat и тем, как он может помочь в анализе вредоносных файлов. Но она выглядела немного озадаченной, когда увидела опцию "FileScanIO" и спросила меня, что это такое.
Я ответил в своей обычной загадочной манере: "Это просто еще один поставщик аналитических данных об угрозах, моя дорогая. У Malcat теперь много друзей, которые помогут тебе в поисках знаний".
Элис посмотрела на меня с недоуменным выражением лица, но я знал, что она поняла, что я имел в виду. И вот она продолжила свой анализ, прыгая туда-сюда с новой функцией пользовательских закладок и исследуя формат файлов OneNote с легкостью профессионала. О, как приятно было видеть, как Алиса растет в своих знаниях о мире кибербезопасности!