• Партнер

  • Неправильно построенный процесс создания софта позволяет атакующему вставить
    свой кусок кода в конечный продукт или взять контроль над машиной программиста.
    Данная статья посвящена существующим атакам против open
    source программ, включает обзор атак против Sendmail,
    OpenSSH и IRSSI. Так же показывается как три
    популярных утилиты для Java (Apache
    Ant, Maven
    и Ivy) неправильно сконструированы и
    подвержены уязвимости cross-build
    injection (XBI), которая позволяет внедрять трояны,
    бекдоры или другие зловредные функции в конечные продукты.

    Вступление

    Самая опасная уязвимость в программе та,
    которая позволяет атакующему выполнить произвольный код на уязвимой системе. Для
    исследователей компьютерной безопасности фраза "позволяет удаленно выполнить
    произвольный код" равнозначна фразе "шах и мат". Например,
    переполнение буфера
    настолько опасно именно потому, что в большинстве случаев позволяет хакеру
    получить контроль над программой и запустить на выполнение свой код. В данной
    статье мы рассмотрим уязвимость инъекции на уровне сборки (cross-build
    injection vulnerabilities
    , XBI) -
    уязвимость, которая позволяет нападающему вставить код в целевую программу на
    этапе ее создания.

    В настоящее время никто не создает программы
    с нуля. На рисунке приведена типичная схема современного проекта, составленного
    частично из самописного кода и частично из внешних, сторонних компонент. В
    промышленных масштабах все чаще используются open source
    компоненты.

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

    Автоматические системы компиляции - черта зрелого процесса создания
    софта. Автоматический процесс сборки  снижает вероятность человеческих
    ошибок и увеличивает поддерживаемость проекта. Однако преимущества
    автоматизации могут привести к системным проблемам. Если в процессе сборки
    автоматически подтягиваются внешние компоненты, то у атакующего появляется
    возможность вставить свой код в программу скомпрометировав такие сторонние
    компоненты. На следующем рисунке показано как традиционный процесс из первого
    рисунка может быть изменен на систему, выполняющую автоматическое управление
    внешними заимствованиями:

    Инциденты

    За последние годы мы видели целый ряд взломов, связанных с использованием
    open source компонентов. Все они имели несколько
    похожих черт:

    • они случались в open source проектах;
    • хакеры изменяли исходники в репозиториях проектов и вставляли в них свой
      вредоносный код;
    • взломы касались пользователей, который использовали компоненты через
      автоматическую систему сборки.

    Мы рассмотрим примеры взлома OpenSSH,
    Sendmail и IRSSI. Эти
    инциденты продемонстрировали, что взломщики уже определили процесс билда
    приложения как путь для взлома системы. Атакующие использовали веру
    пользователей в надежность и безопасность пакетов, размещенных на сторонних
    серверах, и их принятие автоматизированной системы построения приложений,
    способствующей этому. Эти атаки были успешны из-за неверных предположений, самым
    главным из которых была идея о том, что безопасности внешних репозиториев
    достаточно для безопасности конечного пользователя.

    Троян в OpenSSH 3.4p1

    OpenSSH играет фундаментальную роль в безопасности
    многих систем. В июле 2002 года взломщик проник в
    ftp.openssh.com и frp.openbsd.org и вставил
    свой код, реализующий бекдор. Неправильная версия OpenSSH
    распространилась среди пользователей при помощи автоматической системы
    установки OpenBSD - port. Система была разработана для
    автоматической сборки и установки компонентов системы, получая пакеты с сервера
    OpenBSD и компилируя их автоматически.

    В данном случае код, полученный из внешнего источника был с червоточиной и
    включал модифицированный makefile, подключающий бекдор
    из файла bf-test.c. Будучи однажды выполненным,
    makefile компилировал и запускал трояна, позволяющего
    хакерам коннектится к машине с правами пользователя, запустившего процесс
    компиляции. Нормальной процедурой в OpenBSD была
    установка софта под привилегированным пользователем и таким образом хакер
    получал удаленный доступ к компьютеру.

    (Продолжение следует)

     


    Источник

    Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии