Security-Experts-Community / open-xp-rules

Открытый репозиторий с правилами на языке eXtraction and Processing (XP)
Apache License 2.0
20 stars 44 forks source link

[OSW#2: Task-12] Использование техники инжекта в процессы через plist #396

Closed AmwNLTL closed 3 months ago

AmwNLTL commented 3 months ago

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

Какие же приложения уязвимы? Существуют флаги подписи кода (cs_flags или codesigning_flags в es_logger). По данным статьи, чтобы защититься от рассмотренной в рамках задачи инъекции необходимо как минимум подписать свое приложение следующими флагами:

#define CS_RESTRICT     0x00000800  /* tell dyld to treat restricted */
#define CS_REQUIRE_LV       0x00002000  /* require library validation */
#define CS_RUNTIME      0x00010000      /* Apply hardened runtime policies */

Получается неподписанный код - приложения, имеющие атрибут codesigning_flags = 0 могут быть использованы атакующим для внедрения полезной нагрузки.

В рамках правила подразумевается, что при создании агента запуска создается переменная окружения и с ней запускается какой-то процесс. При отсутствии подписи (datafield18 = 0) в правиле локализации для аналитика указывается, что запускаемое приложение не имеет подписи.

Resolve #377