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

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


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

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

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

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

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

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

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

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

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

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

 

View the full article

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

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

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



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

    • 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 Тема перемещена из раздела "Компьютерная помощь"
    • foroven
      От foroven
      Добрый день. Схватили шифровальщик. Кажется что взломали RDP доступ т.к был открыт наружу с слабым паролем. Зашифрованные файлы имеют расширение *.er
      Файлы с обычным расширением где есть файл *.er не открываются. В основном зашифрованы базы 1С и полностью пропал из системы один диск, отображается в диспетчере дисков, как нераспределенный. Но программой восстановления удалось восстановит все файлы, но они также зашифрованы.

      Копии.7z
    • huper9th
      От huper9th
      Я купил через подарочный код Apple подписку на 1 месяц.
      И вылезает ошибка, ошибка 39 и трафик лимитный как и выбор сервера.
      Деньги у меня забрали.
      Я попробовал переустановить программу, и перезапустить телефон, но не получается.
       
      Приложение Kaspersky secure connection
    • swim1x
      От swim1x
      Забился диск C, и я полез его очищать. Зашёл я в диск C, пользователи, нашёл программку какую-то. Открыл её, и там были какие-то программы. Погуглил, узнал что это какие-то читы на ксго. Ну да и ладно подумал я, захотел проверить программу на вирустотале и увидел что известные антивирусы пишут RatX.
×
×
  • Создать...