
Стручњаци са Универзитета у Кембриџу објавили су информације о опасној рањивости (ЦВЕ-2021-42574), што погађа скоро свесавремени компајлери изворног кода. Чланак Тројан Соурце описује подмукли напад који омогућава хакерима да сакрију злонамерни код у изворном коду различитих програма.
Напад је заснован на томе како компајлерируковати јединственим идентификаторима који се користе за одређивање оријентације текста – с лева на десно или с десна на лево. Слабост лежи у Уницоде Биди алгоритму, који омогућава да се речи написане с десна на лево и са лева на десно користе заједно. Захваљујући овом алгоритму, можете комбиновати арапске и енглеске речи. Ово вам омогућава да читате текст написан с десна на лево, с лева на десно и обрнуто.
У неким случајевима, могућности алгоритмаУницоде Биди није довољан да промени начин на који се ове речи приказују, и у таквим случајевима се користе посебни контролни знакови. Међутим, ако исти ред комбинује речи са различитим правцима текста, онда помоћу ових контролних знакова можете променити правац у коме компајлер чита тај текст и, на пример, учинити да се линије које изгледају као коментари понашају као извршни код.

</ имг>
Користећи овај метод, можете додати злонамернеинструкцију у нормалан изворни код, и учините текст ове инструкције невидљивим приликом прегледа кода користећи следећи коментар. Ово ће уметнути потпуно различите знакове, који би заправо могли бити произвољни код. Коначни изворни код остаје семантички исправан, али када се преведе, дешава се нешто сасвим друго.
Приликом прегледа и анализе таквог изворног кодапрограмер ће видети код са коментарима који не изазивају никакву сумњу, али ће компајлер или интерпретатор обрнути логички редослед симбола, а невини коментар ће се претворити у додатни код убачен у програм. Грешка је присутна у скоро свим компајлерима – за програмске језике Ц, Ц++ (гцц и цланг), Ц#, ЈаваСцрипт (Ноде.јс), Јава (ОпенЈДК 16), Руст, Го и Питхон; у разним популарним уређивачима кода, укључујући ВС Цоде, Емацс, Атом и интерфејсе за преглед изворног кода у ГитХуб, Гитлаб, БитБуцкет и свим Атлассиан производима.
Извор: тројансоурце, зднет
</ п>