Перейти к содержанию

Trojan Source: незаметные закладки в исходном коде


Рекомендуемые сообщения

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

Управляющие символы Unicode, позволяющие изменить направление текста внутри одной строки.

Управляющие символы Unicode, позволяющие изменить направление текста внутри одной строки. Источник.

Чаще всего управляющие символы не выводятся на экран (хотя некоторые редакторы их все же показывают), а модифицируют каким-то образом остальной текст. В таблице показаны коды, отвечающие за работу алгоритма, — Unicode Bidirectional, или Bidi.

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

Авторы исследования воспользовались этими кодами, чтобы, например, сдвинуть идентификатор комментария в коде на языке Python в конец строки, хотя на самом деле он находится в ее середине. Они применили код RLI, который сдвигает только несколько символов, а все остальные не трогает.

Пример уязвимого кода на Python  c использованием bidi-кодов.

Пример уязвимого кода на Python c использованием bidi-кодов. Источник.

Справа показан вариант кода, который увидит программист во время проверки исходников; слева — как код будет выполнен. В большинстве своем компиляторы игнорируют управляющие символы. Для того, кто проверяет код, пятая строка выглядит как безобидный комментарий. На самом деле в ней скрыта функция return, которая приведет к пропуску операции списания денег со счета. В этом примере условная банковская программа выдаст деньги, но не уменьшит остаток.

 

View the full article

Ссылка на комментарий
Поделиться на другие сайты

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
  • Похожий контент

    • The_LastNight
      Автор The_LastNight
      Добрый день! После посещения несколько сайтов словил вирус MEM: TROJAN. MULTI.AGENT.GEN. Касперский его видит, но удалить не может, появляется снова. Некоторые способы с форума уже пробовал, не помогли.
    • Safurai
      Автор Safurai
      2025-02-17_02-06-10_log.txtFRST.txtAddition.txtHiJackThis.loginfo.txtlog.txtCheck_Browsers_LNK.log
    • DoctorRS
      Автор DoctorRS
      Добрый день. Зашифровали файлы Trojan-Ransom.Win32.Mimic, не работает 1С и файлы офис. Помогите пожалуйста есть ли варианты дешифрации ? 
       
      Сообщение от модератора Mark D. Pearlstone Тема перемещена из раздела "Компьютерная помощь"
    • MultiFace
      Автор MultiFace
      Добрый день, касперски обнаружил 76 объектов вредоносных, но не может удалить 
      Помогите в решении пожалуйста 
      CollectionLog-2025.02.21-18.47.zip 111.txt avz_log.txt
    • Implex
      Автор Implex
      Добрый день, взлом произошел по RDP по порту 3389, получили доступ к учетку Администратор
      Запуск произошел C:\Users\Администратор\Desktop\Recoverifiles@gmail.com.exe

      Dr.Web обнаружил Trojan.Siggen20.38036 (приложил в файле exe virus)
      key id pkey rsakey.7z зашифрованные docx.7z FRST.7z
      Строгое предупреждение от модератора thyrex Вредоносное вложение удалено
×
×
  • Создать...