Загрузка предыдущей публикации...
Загрузка предыдущих новостей...
Разработчик проекта Curl заменил ASCII-символ на Unicode-альтернативу в запросе на внесение изменений (pull request), сообщает ведущий разработчик и основатель Curl, Даниэль Стенберг (Daniel Stenberg). И ни один из рецензентов-людей в команде (или автоматизированные проверки CI) этого не заметил.
Изменение "выглядело идентично ASCII-версии, поэтому визуально обнаружить его было невозможно..."
Влияние изменения одной или нескольких букв в URL может быть разрушительным, в зависимости от условий. Мы внедрили проверки, чтобы помочь нам, людям, обнаруживать подобные вещи, такие как вредоносный Unicode. Добавлена задача CI, которая сканирует все файлы и проверяет каждую UTF-8 последовательность в репозитории Git.
В репозитории Git проекта Curl большинство файлов и контента представлены в виде обычного ASCII, поэтому мы можем "легко" добавить в белый список небольшой набор UTF-8 последовательностей и некоторые конкретные файлы. Остальные файлы вообще не должны использовать UTF-8, иначе задача CI выдаст ошибку. Чтобы закрепить это изменение, мы просмотрели все тестовые файлы в репозитории Curl и убедились, что все вхождения UTF-8 заменены другими типами экранированных последовательностей и т.п. Некоторые из них использовались более или менее случайно и могли быть легко заменены своими ASCII-аналогами.
В следующий раз, когда кто-то попытается это сделать, это может быть человек с недобрыми намерениями, но теперь наша CI-система, по идее, сообщит нам об этом. Мы стремимся к проактивиности и усилению защиты, но безопасность – это бесконечная гонка, в которой мы можем только делать все возможное. Пока злоумышленники работают в тишине и могут в будущем атаковать нас новыми, креативными способами, которые мы не предвидели. Эта будущая, неизвестная атака – сложная вещь.
В оригинальном посте в блоге Стенберг пожаловался на "почти полное отсутствие ответов" от GitHub (шутя, что "возможно, они все слишком заняты разработкой следующей AI-функции, которая нам не нужна"). Но спустя несколько часов он опубликовал обновление.
“GitHub сообщил мне, что они подняли этот вопрос как проблему безопасности внутри компании и работают над ее решением.”
Загрузка предыдущей публикации...
Загрузка следующей публикации...
Загрузка предыдущих новостей...
Загрузка следующих новостей...