Атака Trojan Source робить вразливості непомітними для людського ока

1 хв. читання
02 листопада 2021

Дослідники виявили новий метод атаки, з яким зловмисники можуть додати вразливості у відкритий код і розробники не зможуть цього помітити. Атака називається Trojan Source і використовує простий трюк, для якого не потрібні модифікації компілятора.

Цей метод працює з популярними мовами програмування, зокрема з C, C++, C#, JavaScript, Java, Rust, Go і Python.

Trojan Source використовує Unicode-символи, які змінюють напрямок тексту (зліва направо, LRI, чи справа наліво, RLI). У такий спосіб можна змінити порядок коду та його логіку. Річ у тім, що двонапрямні елементи керування LRI й RLI є невидимими символами, рядки з різним напрямком можна комбінувати, щоб вони перекривали один одного. З такими інструкціями компілятор може компілювати код, який повністю відрізняється від того, що бачить людина.

Наприклад, на зображенні видно код, який людина вважатиме звичайним коментарем, але компілятор все ж компілюватиме другий рядок звідси.

Trojan-Source-Attack02

Детальніший приклад мовою Java:

Screenshot-55

Дослідники виявили цю у редакторах VS Code, Atom, Emacs та у переглядачах коду в GitHub, BitBucket у всіх основних браузерах.

Trojan-Source-Attack

Під час написання цього тексту вийшли виправлення цієї вразливості для Rust, LLVM/Clang, GCC, Python, GitHub, binutils, Jira й Bitbucket.

Розробникам рекомендується налаштувати в компіляторах та інструментах збірки попередження, якщо у коментарях чи рядкових літералах є непарні символи, що змінюють напрямок тексту. Також можна заборонити такі символи у специфікаціях мови та в редакторах коду.

Помітили помилку? Повідомте автору, для цього достатньо виділити текст з помилкою та натиснути Ctrl+Enter
Codeguida 5.6K
Приєднався: 8 місяців тому
Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Вхід / Реєстрація