Копирование кода из Stack Overflow приводит к уязвимым заданиям GitHub
Среди тех, кто учится программировать, и некоторых более опытных разработчиков программного обеспечения, распространенной практикой является копирование и вставка фрагментов кода из Stack Overflow, форума вопросов и ответов для вопросов о проблемах кодирования.
Есть даже некая книга в стиле О'Рейли, «Копирование и вставка из Stack Overflow», чтобы подчеркнуть практику, которая оказывается не только ленивой, но и угрозой безопасности.
В исследовательском документе, представленном в службу допечатной подготовки ArXiv, шесть компьютерных ученых - Мортеза Верди, Ашкан Сами, Джафар Ахондали, Футсе Кхом, Гиас Уддин и Алиреза Карами Мотлаг говорят, что они просмотрели более 72 000 фрагментов кода C ++ в 1325 постах этого форума и обнаружили 69 уязвимых фрагментов 29 различных типов.
Это не так много в абсолютном выражении, но эти 69 уязвимых частей кода фигурируют в 2589 проектах GitHub. Исследователи говорят, что они уведомили авторов пострадавших проектов, и некоторые, но не все, решили исправить недостатки, которые состоят из известных CWE.
В телефонном интервью The Register Ашкан Сами, доцент кафедры информатики, инженерии и информационных технологий в Университете Шираз в Иране, сказал, что исследование представляет собой попытку взглянуть на то, как ошибочный код переносится из Stack Overflow в GitHub.
«По сути, мы пытались показать, что использование Stack Overflow без тщательного анализа может привести к потенциальной уязвимости в приложениях», - сказал Сами.
Исследование напоминает академическую статью 2017 года, в которой было найдено 1161 небезопасных фрагментов кода, размещенных на этом сайте, которые были скопированы и вставлены в 1,3 млн приложений Android, доступные в Google Play.
Исследователи решили сосредоточиться на C++, потому что он популярен, особенно для встроенных программ с ограниченными ресурсами и больших распределенных систем. Они утверждают, что уязвимости в таких системах могут оказать существенное влияние.
Наиболее часто встречающимися CWE были CWE-1006 (Плохая практика кодирования), CWE-754 (Неправильная проверка необычных или исключительных условий) и CWE-20 (Неправильная проверка ввода).
«Stack Overflow - это только вопросы и ответы на них, и часто, когда разработчики отвечают, они могут быть недостаточно обучены в вопросах безопасности или могут предположить, что те, кто задает вопросы, будут знать, что делать», - сказал Гиас Уддин, кандидат компьютерных наук из Университета Макгилла, который в настоящее время работает в сфере технологий. «Но это не очень хорошее предположение».
Сами высказал аналогичные чувства. «Люди, использующие Stack Overflow, не должны полностью доверять ему», - сказал он. «Программистам лучше сделать трудный путь и научиться безопасному кодированию».
Тем не менее, исследователи разработали расширение Chrome, чтобы помочь разработчикам более внимательно относиться к безопасности при копировании и вставке кода из Stack Overflow. Расширение проверяет скопированный код в базе данных CWE и выдает предупреждение, если фрагмент содержит ошибки. Уддин сказал, что планируется выпустить его после официального опубликования.
admin1 - 06/10/2019 |