Trojan Source

Nov 04, 2021 18:12

Каждой атаке положен официальный сайт. Вот, например.

Если использовать уникодные символы управления направлением вывода текста (слева направо интерпретировать кусок текста или справа налево), то можно добиться эффекта, когда человек, который ревьюит pull-request, увидит одно, а компилятор - совсем другое ( Read more... )

security, ссылки, компьютерное

Leave a comment

Comments 14

black_eric November 4 2021, 17:39:44 UTC

Зачетненько.

Reply


alexkuklin November 5 2021, 01:15:29 UTC
кросивое

Reply


lnvp November 5 2021, 06:00:24 UTC
Я читал журналистский пересказ про эту идею атаки - по-моему, она относительно нетрудно затыкается техническими средствами (типа запрещения bidi override символов вообще в репо, они ведь введены довольно поздно в юникод для какого-то особого удобства? ну так, код комментировать можно и без особых удобств).

Reply

yurikhan November 5 2021, 09:22:41 UTC

Не особого удобства, а возможности выражать некоторые вполне легитимные потребности в двуязычном тексте. Например, они становятся нужны, когда в тексте на RTL-языке встречается слово из LTR-языка в скобках или кавычках. (Потому что нужно, чтобы LTR-островок начинался со скобки, а по умолчанию он начнётся с первой буквы.)

Поэтому запрещать bidi override нельзя, а читать надо не журналистский пересказ, а Unicode® Standard Annex #9: Unicode Bidirectional Algorithm.

Reply

lnvp November 5 2021, 09:40:57 UTC
Не понял, как чтение упомянутого стандарта может уберечь от атаки, поясните, пожалуйста.

Reply

yurikhan November 5 2021, 10:15:42 UTC

Чтение стандарта даёт понимание происходящего несколько более конкретное, чем журналистского пересказа сайта, на который ссылка в исходном посте. (Который сам - журналистский пересказ статьи, выложенной на нём.)

А понимание - это как раз то, что и уберегает от атаки. Я вот себе выставил в среде отображение bidi override’ов наряду с пробелами и табами.

Reply


Leave a comment

Up