Повечето програмни езици са уязвими за Trojan Source атаки

Повечето програмни езици са уязвими за Trojan Source атаки

Открита е слабост в Bidi параметъра на Unicode

Александър Главчев
1159 прочитания

Начин за зловредно модифициране на изходен код с цел създаване на експлойти, без да се предизвиква подозрение при проверката му, откриха изследователи от Кеймбриджкия университет във Великобритания. Уязвимостта е наречена Trojan Source и позволява вграждане на фрагменти, така че крайният код да се компилира по различен от очаквания на пръв поглед начин.

Използвайки контролни знаци за двупосочни алгоритми за форматиране на Unicode (т.нар. параметър Bidi), които се използват за поддържане на езици с различни посоки на писане, нападатели могат да отменят подреждането на текста в изходния код, за да произведат резултати, които не са веднага видими за разработчиците.

Изследователите от "Кеймбридж" Никълъс Баучер и Рос Андерсън демонстрират уязвимостите на Bidi в няколко популярни езика за програмиране, включително C, C++, Javascript, Java, Rust, Go, Python и C#. По техни думи голяма част от разработчиците на компилатори вече работят върху ъпдейти, но далеч не всички са реагирали на новооткритата заплаха.

За смекчаване на риска от Trojan Source атаки Баучер и Андерсън обясняват, че засега най-простият начин е да се забрани използването на символи за управление на посоката на текста както в езиковите спецификации, така и в компилаторите, които ги прилагат.

Начин за зловредно модифициране на изходен код с цел създаване на експлойти, без да се предизвиква подозрение при проверката му, откриха изследователи от Кеймбриджкия университет във Великобритания. Уязвимостта е наречена Trojan Source и позволява вграждане на фрагменти, така че крайният код да се компилира по различен от очаквания на пръв поглед начин.

Използвайки контролни знаци за двупосочни алгоритми за форматиране на Unicode (т.нар. параметър Bidi), които се използват за поддържане на езици с различни посоки на писане, нападатели могат да отменят подреждането на текста в изходния код, за да произведат резултати, които не са веднага видими за разработчиците.

С използването на сайта вие приемате, че използваме „бисквитки" за подобряване на преживяването, персонализиране на съдържанието и рекламите, и анализиране на трафика. Вижте нашата политика за бисквитките и декларацията за поверителност. ОК