Trojan Source, атака, позволяющая вносить изменения в код, невидимые для разработчика.

Несколько дней назад Выпущены исследователи Кембриджского университета публикация метод тонкой подстановки кодов вредоносный в исходном коде приложения.

Метод атаки подготовил, что Он уже указан в CVE-2021-42574. Он известен под названием «Троянский источник» и основан на формировании текста, который отличается для компилятора / интерпретатора и человека, просматривающего код.

О троянском источнике

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

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

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

Мы обнаружили способы манипулировать кодировкой файлов исходного кода, чтобы зрители и компиляторы видели разную логику. Один особенно опасный метод использует символы переопределения направления Unicode для отображения кода как анаграммы его истинной логики. Мы убедились, что эта атака работает против C, C ++, C #, JavaScript, Java, Rust, Go и Python, и подозреваем, что она будет работать против большинства других современных языков.

При просмотре кода разработчик столкнется с визуальным порядком символов и увидит подозрительный комментарий в редакторе текст, веб-интерфейс или IDE, но компилятор и интерпретатор будут использовать логический порядок символов и обрабатывать вредоносный код как есть, независимо от двунаправленного текста в комментарии. Затронуты несколько популярных редакторов кода (VS Code, Emacs, Atom), а также интерфейсы для просмотра кода в репозиториях (GitHub, Gitlab, BitBucket и все продукты Atlassian).

Существует несколько способов использования метода для реализации вредоносных действий: добавить скрытое выражение «return», которое приводит к преждевременному завершению выполнения функции; заключение в комментарии к выражениям, которые обычно считаются допустимыми конструкциями (например, для отключения важных проверок); присвоение других строковых значений, приводящее к ошибкам проверки строки.

Кроме того, был предложен другой вариант атаки (CVE-2021-42694), предполагающий использование гомоглифов, символы, которые кажутся похожими по внешнему виду, но различаются по значению и имеют разные коды Unicode. Эти символы могут использоваться в некоторых языках в именах функций и переменных, чтобы ввести разработчиков в заблуждение. Например, вы можете определить две функции с неразличимыми именами, которые выполняют разные действия. Без подробного анализа нельзя сразу понять, какая из этих двух функций вызывается в том или ином месте.

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

Кроме того уязвимости уже начали исправлять подготовлен для GCC, LLVM / Clang, Rust, Go, Python и binutils. GitHub, Bitbucket и Jira также уже готовят решение вместе с GitLab.

В конце концов Если вам интересно узнать об этом больше, вы можете проконсультироваться подробности по следующей ссылке.


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.