Продемонстрирован способ установки вредоноса с помощью MSI-файлов

Продемонстрирован способ установки вредоноса с помощью MSI-файлов

Продемонстрирован способ установки вредоноса с помощью MSI-файлов

Специалист Sans рассказал об интересном способе доставки вредоносного содержимого посредством файлов MSI. Эксперт ссылается на то, что использование MSI предпочтительнее для киберпреступников по той причине, что они взывают больше доверия.

«За несколько дней я собрал немного образцов вредоносных файлов MSI. Расширение MSI характерно для файлов, связанных с сервисом установщика Microsoft Windows Installer, который является компонентом Windows. С помощью таких файлов злоумышленники могут обходить простые фильтры на основе расширений файлов (реагирующих на расширения com, exe, dll, js, vbs), так как MSI-файлы выглядят менее подозрительными», — пишет специалист.

Эксперт полагает, что злоумышленники используют инструмент MSI Wrapper для создания вредоносных файлов MSI. Содержимое файла MSI можно извлечь с помощью таких инструментов, как 7z. Структура всегда одна и та же, содержит следующее:

!AdminExecuteSequence:                    data
!AdvtExecuteSequence:                     data
!Binary:                                  data
!Component:                               data
!CustomAction:                            data
!Directory:                               data
!Feature:                                 data
!FeatureComponents:                       data
!InstallExecuteSequence:                  data
!Property:                                data
!_Columns:                                data
!_StringData:                             ASCII text, with very long lines, with no line terminators
!_StringPool:                             data
!_Tables:                                 data
Binary._D7D112F049BA1A655B5D9A1D0702DEE5: PE32 executable (GUI) Intel 80386, for MS Windows
[5]SummaryInformation:                    data

Начинающиеся с восклицательного знака файлы являются таблицами базы данных. Их можно прочитать с помощью основанного на COM API для работы с MSI.

Function GetMSIGenerator(ByVal file)
  Const msiOpenDatabaseModeReadOnly = 0
  Dim msi, db, view
  Set msi = CreateObject("WindowsInstaller.Installer")
  Set db = msi.OpenDataBase(file, msiOpenDatabaseModeReadOnly)
  Set view = db.OpenView("SELECT `Value` FROM `Property` WHERE `Property` = 'ProductName'")
  Call view.Execute()
  GetMSIGenerator = view.Fetch().StringData(1)
End Function
WScript.Echo(GetMSIGenerator("sample.msi")

Скрипт возвращает:

PS C:\Users\REM\Malicious> cscript.exe msi.vbs
Microsoft (R) Windows Script Host Version 5.812
Copyright (C) Microsoft Corporation. All rights reserved.

Exe to msi converter free

Однако так нелегко обрабатывать полный набор полей базы данных. Для этого исследователь предлагает использовать другой инструмент — Wix. Wix позволяет легко преобразовать MSI-файл в файл XML.

C:\Users\REM\Malicious> dark.exe -swall -x . sample.msi
dark.exe : warning DARK1108 : The command line switch 'swall' is deprecated. Please use 'sw' instead.
Windows Installer XML Toolset Decompiler version 3.11.1.2318
Copyright (c) .NET Foundation and contributors. All rights reserved.

sample.msi

Параметр «-x .» указывает, что инструменты должны выгружать двоичные файлы в указанный каталог. Далее создается файл WXS. Это обычный XML-файл, который можно открыть с помощью любимого инструмента. Пример преобразованного файла:

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Product Id="{29EF7317-DCA1-4159-97B2-C883AD400AC6}" Language="1033" Manufacturer="www.exetomsi.com" Name="Exe to msi converter free" UpgradeCode="{1630D902-D790-41C1-AE26-9D5E5D17566F}" Version="2.0.0">
        <Package InstallerVersion="100" Languages="0" Manufacturer="www.exetomsi.com" ReadOnly="no" />
        <Binary Id="_D7D112F049BA1A655B5D9A1D0702DEE5" SourceFile=".\Binary\_D7D112F049BA1A655B5D9A1D0702DEE5" />
        <CustomAction Id="DIRCA_TARGETDIR" Property="TARGETDIR" Value="[WindowsFolder]\Temp" Execute="firstSequence" />
        <CustomAction Id="_B3D13F97_1369_417D_A477_B4C42B829328" BinaryKey="_D7D112F049BA1A655B5D9A1D0702DEE5" ExeCommand="" Execute="deferred" Impersonate="no" />
        <Directory Id="TARGETDIR" Name="SourceDir">
            <Component Id="C_DefaultComponent" Guid="{4C231858-2B39-11D3-8E0D-00C04F6837D0}" KeyPath="yes">
                <Condition>0</Condition>
            </Component>
        </Directory>
        <Feature Id="DefaultFeature" ConfigurableDirectory="TARGETDIR" Level="1">
            <ComponentRef Id="C_DefaultComponent" />
        </Feature>
        <Property Id="ARPCONTACT" Value="www.exetomsi.com" />
        <Property Id="ARPNOMODIFY" Value="1" />
        <Property Id="LIMITUI" Value="1" />
        <InstallExecuteSequence>

Из этого примера увидеть, что вредоносный двоичный файл будет установлен в [WindowsFolder]\Temp.

«В принципе, мы можем извлечь интересную информацию из файла MSI без его выполнения. Вот простое правило YARA», — продолжает эксперт:

rule SuspiciousMSIFile
{
  meta:
    author = "Xavier Mertens <xmertens@isc.sans.edu>"
    info = "Search for malicious MSI installing  containing malware"
  strings:
    $s1 = "Exe to msi converter free"
    $s2 = { 54 41 52 47 45 54 44 49 52 30 43 75 73 74 6f 6d 41 63 74 69 6f 6e 53 6f 75 72 63 65 54 61 72 67 65 74 5b 57 69 6e 64 6f 77 73 46 6f 6c 64 65 72 5d 5c 54 65 6d 70 }
  condition:
    all of them
}

CodeScoring представила OSA Proxy для защиты цепочки поставок ПО

Платформа CodeScoring представила новый сервис OSA Proxy — инструмент для контроля безопасности компонентов с открытым исходным кодом ещё до того, как они попадут в корпоративную инфраструктуру. Решение стало частью модуля CodeScoring.OSA и ориентировано на защиту цепочки поставок ПО на самом раннем этапе разработки.

В отличие от классического подхода, когда композиционный анализ проводится уже после загрузки зависимостей, OSA Proxy работает в момент установки пакетов.

Сервис перехватывает запросы пакетных менеджеров к внешним индексам и проверяет сторонние компоненты на соответствие заданным политикам безопасности. Если версия пакета признана небезопасной, её можно заблокировать ещё до появления в среде разработки.

OSA Proxy поддерживает популярные экосистемы и репозитории, включая Maven Central, NPM, PyPI, NuGet, Go Modules и пакеты Debian, а также альтернативные хранилища, совместимые с официальными спецификациями. При этом сервис не привязан к конкретным хранилищам артефактов и может работать как с ними, так и вовсе без них — в зависимости от того, как устроена инфраструктура в компании.

Технически решение выступает в роли прокси между пакетным менеджером и внешним репозиторием. Оно может фильтровать небезопасные версии, изменять ответы репозиториев, пересчитывать контрольные суммы и перенаправлять ссылки, сохраняя корректность форматов и стабильность работы сборки. Предусмотрены разные режимы использования — от пассивного мониторинга до активной блокировки компонентов.

Сканирование выполняется как на уровне манифестов зависимостей, так и для отдельных пакетов. В основе сервиса лежит асинхронная модель обработки запросов и механизм автоматических повторов, что позволяет ему устойчиво работать при высокой нагрузке или временных сбоях внешних сервисов.

OSA Proxy доступен всем пользователям модуля CodeScoring.OSA и ориентирован на компании, которые хотят усилить контроль за использованием open source без серьёзных изменений в существующих процессах разработки и инфраструктуре.

Платформа CodeScoring представила новый сервис OSA Proxy — инструмент для контроля безопасности компонентов с открытым исходным кодом ещё до того, как они попадут в корпоративную инфраструктуру. Решение стало частью модуля CodeScoring.OSA и ориентировано на защиту цепочки поставок ПО на самом раннем этапе разработки.

В отличие от классического подхода, когда композиционный анализ проводится уже после загрузки зависимостей, OSA Proxy работает в момент установки пакетов. Сервис перехватывает запросы пакетных менеджеров к внешним индексам и проверяет сторонние компоненты на соответствие политикам безопасности. Если версия пакета признана небезопасной, её можно заблокировать ещё до появления в среде разработки.

OSA Proxy поддерживает основные экосистемы и репозитории — Maven Central, NPM, PyPI, NuGet, Go Modules и пакеты Debian, а также альтернативные хранилища, совместимые с официальными спецификациями. При этом сервис не привязан к конкретным хранилищам артефактов и может работать как с ними, так и вовсе без них — в зависимости от архитектуры инфраструктуры.

Технически решение выступает в роли прокси между пакетным менеджером и внешним репозиторием. Оно анализирует манифесты зависимостей и отдельные пакеты, может фильтровать небезопасные версии, изменять ответы сторонних репозиториев, пересчитывать контрольные суммы и перенаправлять ссылки, сохраняя корректность форматов и стабильность сборки.

Для команд предусмотрены разные режимы работы — от мониторинга до активной блокировки компонентов. Это позволяет настраивать уровень контроля в зависимости от требований конкретного проекта. В основе сервиса используется асинхронная модель обработки запросов и механизм автоматических повторов, что обеспечивает стабильную работу даже при высокой нагрузке или временных сбоях внешних сервисов.

OSA Proxy доступен всем пользователям модуля CodeScoring.OSA и рассчитан на компании, которые хотят усилить контроль за использованием компонентов с открытым исходным кодом без существенных изменений в существующих процессах разработки и инфраструктуре.

RSS: Новости на портале Anti-Malware.ru