![]() ![]() |
|
|
|
|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
Также в разделе
![]() |
![]() |
Надежность и безопасность: открытый код против закрытогоОткрытые системы :: БезопасностьВыпуск программного обеспечения с открытым кодом стал одним из важнейших ИТ-направлений. Но по мере роста популярности открытых систем все острее встают вопросы их надежности и безопасности.![]() Изначально системы с открытым кодом были результатом свободного сотрудничества программистов-добровольцев. Законченные системы выпускались в свет, и любой мог их использовать без внесения лицензионной платы. Поддержка этих систем также осуществлялась добровольцами с помощью списков рассылки и Web-сайтов. Сегодня, однако, над многими открытыми системами трудятся профессионалы, разработки осуществляют оплачиваемые программисты, а поддержка системы может осуществляться как на бесплатной, так и на платной основе. Традиционные частные системы создаются крупными коллективами, состоящими из разработчиков, менеджеров, программистов, технических писателей и инженеров по проверке качества. Такие системы обычно подвергаются многочисленным ревизиям и официальным проверкам. В законченном виде они представляют собой потребительские товары, которые продаются или лицензируются для массового платного использования. Поддержка программного продукта обычно обеспечивается разработчиком. Какая модель лучше с точки зрения надежности и безопасности? Каждая из них имеет сторонников, выражающих свои мнения в многочисленных публикациях. Рассмотрим аргументы, представленные в этих публикациях, а также показатели надежности и безопасности открытых и частных систем. Надежность и безопасность открытых и частных системСегодня горячо обсуждаются надежность и безопасность открытых систем. Частные поставщики финансируют исследования и публикуют отчеты, свидетельствующие о том, что системы с закрытым кодом безопаснее их открытых аналогов. Но на каждый отчет, восхваляющий превосходство частных систем в этом отношении, открытое сообщество отвечает «опровергающим» отчетом. Возможно, основная причина горячих дебатов состоит в том, что широкое распространение открытой модели угрожает доходам поставщиков частного программного обеспечения. В недавних квартальных отчетах для Комиссии по ценным бумагам и биржам США компания Microsoft, один из крупнейших производителей ПО, заявила, что популяризация и распространение открытых систем представляют собой существенную угрозу ее бизнес-модели [1]. Неудивительно, что поставщики частного ПО пытаются дискредитировать открытые системы. Причем споры о безопасности и надежности открытого и частного программного обеспечения обычно сводятся к двум ключевым темам: доступность исходного кода и уровни дефектности ПО. Обсудим эти проблемы. Доступность исходного кодаВ июне 2002 года институт Alexis de Tocqueville Institution, частично финансировавшийся Microsoft, опубликовал работу [2]. Среди самых спорных ее результатов был вывод о том, что в госучреждениях использование программного обеспечения с открытым кодом по лицензии GPL (General Public License) может стать проблемой для национальной безопасности. Основанием для этого вывода стало такое предположение: общедоступность исходного кода провоцирует хакеров к исследованию его уязвимостей, разработке «троянских коней» и других типов вредоносных программ. Доступность исходного кода была представлена как существенная угроза для безопасности госорганизаций, применяющих открытое ПО. Такой вывод далеко не бесспорен. Подразумевается, что частные системы с закрытым исходным кодом автоматически более безопасны (для них характерна так называемая «безопасность благодаря непостижимости»). Если это так, число выявленных уязвимостей в закрытых системах должно быть значительно меньшим, чем в открытых аналогах. Однако по опубликованным данным множество открытых систем имеют существенно более низкие рейтинги уязвимостей, чем их частные аналоги. Например, по сведениям координационного центра по безопасности CERT Coordination Center (www.cert.org), в Web-сервере с открытым кодом Apache HTTP Server (httpd.apache.org) обнаружено существенно меньше уязвимостей, чем в Microsoft Internet Information Server, и лишь немногим больше, чем в Netscape Enterprise Server. Сокрытие исходного кода не ведет к повышению уровня защищенности системы. Злоумышленники не нуждаются в исходном коде для обнаружения дефектов ПО. Например, распространенный способ поиска дефектов состоит в том, чтобы послать программе неожиданные или необычные данные, а затем пронаблюдать за реакцией системы [3]. Если она отказывает или при обработке таких данных ведет себя нештатно, это может указывать на недостаток, заслуживающий дальнейшего исследования. С распространением изощренных инструментальных средств мониторинга, отладки и дизассемблирования большая часть исходного кода может быть получена из двоичной версии исполняемой программы. Любой, кто заинтересован в получении исходного кода, просто должен применить к программе один из широко доступных инструментов. Выходные данные таких инструментов, хотя и не совсем совершенные, дают достаточно информации для получения представления о внутреннем устройстве системы. Кроме того, часто происходит непреднамеренная утечка исходного кода, а производители отдают разработку программ на аутсорсинг или по целому ряду причин обмениваются исходными кодами с другими организациями. Есть, конечно, и примеры небезопасности открытых систем. Программные дефекты в открытой почтовой программе sendmail были любимой мишенью для нападок в течение многих лет. В ноябре 1988 года студент Корнельского университета Роберт Моррис создал первый Internet-червь [4]. Отчасти из-за уязвимостей в программах sendmail и fingerd он быстро распространился по Internet и привел к массовым отказам компьютеров. Согласно одному из отчетов, червь Морриса затронул 6 тыс. из 60 тыс. (10%) систем Internet, причем Моррис обнаружил эти уязвимости при анализе исходного кода программ sendmail и finger. Однако та же доступность исходного кода позволила Internet-сообществу быстро среагировать на угрозу и смягчить ее последствия. В [5] отмечается: «Доступность исходного кода очень важна. Все стороны, которые быстро откликнулись и достигли успеха в понимании природы вируса, имели исходный код Unix». Доступность исходного кода — палка о двух концах. Сообщество хакеров может использовать анализ кода для поиска уязвимостей. В свою очередь, сообщество разработчиков способно поддерживать и улучшать код, применять формализованные методологии испытаний, чтобы обнаруживать и исправлять дефекты программного обеспечения прежде, чем ими смогут воспользоваться злоумышленники. Сообщество пользователей может задействовать исходный код для обнаружения и предотвращения атак, причем после выявления недостатков удается быстро устранять уязвимости и публиковать исправления. Имея дело с закрытой системой, потребители полностью зависят от способности поставщика быстро обнаруживать уязвимости, разрабатывать и рассылать исправления. В данном случае различие между широко распространенными открытыми системами и их частными аналогами проявляется в ценности применения исходного кода при ответе на угрозы. Наличие исходного кода оказалось критически важным для системных администраторов при борьбе с червем Морриса в 1988 году. Технические специалисты рассмотрели исходный код атакованных систем, нашли уязвимости и разработали меры защиты против конкретной угрозы и будущих нападений. Преимущество обладания исходным кодом было подчеркнуто в отчете корпорации MITRE [6], опубликованном в июле 2001 года. В нем утверждалось, что в открытом сообществе «популярные продукты с открытым кодом подвергаются обширной экспертизе, позволяющей программному обеспечению достичь высокого уровня эффективности» и что программные заплаты и исправления выпускаются «потенциально на порядок быстрее, чем в случае частного программного обеспечения». Уровни дефектностиЛюбой пакет программ, открытый или закрытый, имеет множество недостатков, и их процент непосредственно влияет на безопасность системы. По данным Software Engineering Institute, опытный программист «пропускает» приблизительно один дефект на 100 строк кода [7]. Если в течение жизненного цикла программного обеспечения 99% этих дефектов будут обнаружены и исправлены, то в пакете программ, состоящем из 1 млн. строк исходного кода (довольно скромный объем по современным стандартам), останется примерно 1 тыс. дефектов. Например, дистрибутив Red Hat Linux 7.1 состоит приблизительно из 30 млн. строк кода, а Microsoft Windows XP содержит около 40 млн. строк. Даже с учетом обширных испытаний и работы по устранению недостатков в этих системах все еще остается масса программных дефектов. Используя упомянутую статистику, число невыявленных дефектов в Windows XP и Red Hat Linux можно оценить, соответственно, как 40 тыс. и 30 тыс. Кроме того, частные и открытые системы постоянно развиваются. В ходе жизненного цикла в систему добавляются новые функции, а дефекты обнаруживаются и устраняются. А поскольку большинство программных пакетов находятся в состоянии постоянного развития, трудно оценить число дефектов конкретной системы. Программные дефекты — неизбежная проблема, которая может снизить надежность системы, а соответственно, и ее общую безопасность. Надежность и безопасность неразрывно связаны между собой. Итак, каждый выпуск открытой или частной программы содержит множество дефектов. Имеющиеся данные, однако, показывают, что когда недостаток программного обеспечения обнаружен, открытое сообщество реагирует быстрее, чем частные поставщики. Согласно [8], открытые организации обычно реагируют на проблемы быстро и откровенно, тогда как частные поставщики «инстинктивно тянут, скрывают и отрицают». Открытые организации вносят небольшие поправки, которые становятся общедоступными через списки рассылок и Web-сайты. Пользователи могут загрузить обновление, применить заплату и восстановить систему. Сама заплата, в свою очередь, является сегментом исходного кода, который доступен для публичной ревизии. Напротив, частные поставщики стремятся выжидать и выпускать большие сводные пакеты обновлений. Они обычно содержат только двоичный код, который закрыт для публичного исследования и потенциально может внести в систему новые проблемы. При этом пользователям приходится слепо доверять честности и компетентности производителя.
|
![]() |
![]() |
![]() |
Об издательстве Как нас найти Реклама Контакты |
Открытые системы:
Computerworld
Windows IT Pro
LAN
Сети
Мир ПК
Открытые системы
Publish
Директор ИС
Лечащий врач
ФСП
Искусcтво управления WhatCar? Классный журнал Stuff Oil&Gas Copyright © 1992-2006. All rights reserved. |