Coverity исследовала безопасность открытого кода
Компания Coverity, разработчик инструмента для автоматического исследования безопасности и качества программного обеспечения на основе сканирования и анализа исходного кода, опубликовала первые результаты за 2010 год в документе под названием "Отчёт о корректности Open Souce ПО". Последнее подобное исследование состоялось в 2008 году. Стоит напомнить, что программа Coverity Scan была начата в 2006 году как инициатива Министерства национальной безопасности США по обеспечению и усилению безопасности информационной инфраструктуры Соединенных Штатов, работающей на основе Open Source ПО.
В рамках исследования в этом году был проанализирован 61 миллион строк исходного кода 291 самых популярных и важных Open Source проектов, включая такие известные продукты как Android, Samba, Linux и Apache. Результаты этого года привели к следующим наблюдениям и выводам:
* Практически не изменился характер найденных ошибок и частота, с которой они встречаются. Это означает, что процесс тестирования в процессе разработки также не изменился. Результаты также демонстрируют факт того, что человеческий фактор легко позволяет просочиться подобным ошибкам в разработке.
* Ответственность за Open Source сильно фрагментирована. Учитывая высокие темпы в увеличении использования Open Source в цепочке поставок коммерческого ПО, исследователи из Coverity наблюдают увеличивающийся спрос на достижение прозрачности при развёртывании Open Source проектов.
Отдельным пунктом данного исследования, как уже было сказано ранее, является платформа Android. Поскольку различные вендоры используют разные версии Android, исследователи из Coverity остановились на Android, который поставляется вместе с HTC Droid Incredible. Android в этом устройстве использует Linux-ядро версии 2.6.32, а также дополнительные драйверы для обеспечения работы беспроводной сети, сенсорного экрана и фотокамеры. Исследование показало, что:
* Ядро Android в HTC Droid Incredible содержит в два раза меньше ошибок, чем другой средний продукт с таким же объёмом исходного кода.
* Ядро Android имеет лучший показатель числа ошибок на 1000 строк кода (LIC), однако исследование всё равно обнаружило 359 ошибок. Исследователи считают, что другие продукты на основе Android имеют схожее количество ошибок.
* Исследователи нашли 88 очень серьёзных ошибок в Android, или 25% от всех обнаруженных ошибок, включая порчу памяти, неправильное обращение к памяти, утечка ресурсов - все эти типы ошибок являются критическими и могут привести к проблемам в безопасности, потере данных, нестабильности в работе и ухудшению качества. Обычно подобные ошибки пользователи Coverity исправляют до выхода продукта на рынок.
* Ответственность за Android сильно фрагментирована, ибо Android состоит из множества программных продуктов, за которые отвечают тысячи никак несвязанных друг с другом людей. Немаловажную роль в этой проблеме играет и наличие ПО от самого производителя - ведь практически ни один вендор не поставляет немодифицированный Android.
Полный отчёт о найденных ошибках компания Coverity уже отправила ответственным лицам и заинтересованным сторонам. Остаётся надеется, что ошибки будут исправлены и качество Open Source улучшится.
www.securitylab.ru