Защита от хакеров корпоративных сетей
Шрифт:
Глава 18 Сообщения о проблемах безопасности
В этой главе обсуждаются следующие темы:
• Почему необходимо сообщать о проблемах безопасности
• Когда и кому направить сообщение
• Какие подробности следует опубликовать
· Резюме
· Конспект
· Часто задаваемые вопросы
Введение
Если вы прочли предыдущие главы этой книги, вам, должно быть, сложно не замечать уязвимостей программных продуктов и служб. Однако их намного больше, чем может показаться на первый взгляд. Когда они обнаруживаются (не важно, какими
Кому сообщить об уязвимости и насколько подробным должно быть это сообщение, зависит от многих обстоятельств. Прежде всего степень подробности сообщения зависит от того, как много времени вы потратили на изучение проблемы и насколько вы интересуетесь исследованиями такого рода. Если вы не имеете склонности к самостоятельным изысканиям, можете просто сообщить о найденной уязвимости исследователям, занимающимся проблемами безопасности, как будет описано далее в этой главе. Но вы можете зайти так далеко, что разработаете код, использующий уязвимость; в некоторых случаях проблема легко поддается изучению. Тогда придется принять решение – будете ли вы публиковать код, использующий уязвимость, и когда.
До сих пор не существует единого мнения о том, насколько детальным должно быть сообщение о проблемах безопасности и нужно ли включать в него код, использующий уязвимость. И не похоже, что согласие по данному вопросу будет достигнуто в ближайшее время. Достоинства и недостатки различных подходов к данной проблеме и будут обсуждаться в этой главе.
Почему необходимо сообщать о проблемах безопасности
Прежде всего: почему нужно сообщать о проблемах безопасности? В конце концов, разве сами производители не тестируют свою продукцию, перед тем как предложить ее потребителям? Они обязаны гарантировать отсутствие ошибок. Разумеется, большинство производителей стараются выпускать качественную продукцию. Но они тоже люди и тоже могут ошибаться. Поэтому в любом продукте можно обнаружить уязвимости, точно так же как и другие программные ошибки. Кроме того, при тестировании программного обеспечения невозможно воспроизвести все возможные условия его эксплуатации. Многие проблемы обычно возникают при нестандартном, не предусмотренном производителем использовании программ. Поэтому, несмотря на то что некоторые ошибки и уязвимости выявляются и устраняются самими производителями, в основном большая часть дефектов обнаруживается обычными пользователями и, конечно, специалистами по компьютерной безопасности. Если вы относитесь к числу последних, то, скорее всего, уже знаете, что делать при обнаружении уязвимости программного обеспечения. Однако если вы обычный пользователь, то можете и не подозревать, как и кому сообщить об обнаруженной вами возможной уязвимости. В таком случае, прочитав эту главу, вы узнаете, как принято делать подобные сообщения.
Вы, наверное, считаете, что у вас нет ни времени, ни желания искать уязвимые места в используемых программах. Но дело в том, что специальный поиск не требуется. Большинство дефектов было обнаружено совершенно случайно. Пытаясь понять, почему программа работает с ошибками, вы можете обнаружить, что причиной проблем является намного более сложный дефект, чем вы предполагали вначале.
При обнаружении уязвимости в программном обеспечении ваш долг – сообщить о ней производителю, специалистам по безопасности или как можно большему числу пользователей. Не стоит думать, что обнаруженный вами дефект недостаточно важен, или уповать на то, что кто-то другой сделает это вместо вас. Нет никакой гарантии, что другой пользователь, найдя уязвимость в программе, не воспользуется ею для своих целей. Время от времени обнаруживается, что сообщения об уязвимости не поступали годами и все это время ее использовали злоумышленники.
Например, в некоторых кругах уже давно все знали, что для прерывания модемного соединения с Интернетом достаточно послать запрос отклика, в который включена управляющая последовательность символов, заставляющая модем прервать соединение (+++ATH).
Умолчав о найденной вами уязвимости, вы рискуете создать пропасть между теми, кто осведомлен о проблеме, и всеми прочими. Известно, что некоторые недобросовестные команды, проводящие испытания на проникновение, и консультанты по безопасности скрывают информацию о найденной ими уязвимости, чтобы обеспечить возможность успешного проникновения. Другие же могут утверждать, что они еще не закончили исследования масштабов уязвимости, в то время как на самом деле никакие исследования уже не проводятся.
В обоих случаях сокрытие информации должно вызывать обеспокоенность, так как большинство пользователей не осведомлены об уязвимости, известной только немногим. И пока кто-нибудь другой не обнаружит этот дефект или пока эти немногие не объявят о нем, производители не смогут начать работу по устранению проблемы. Следовательно, как только возникают достаточно серьезные основания предполагать существование уязвимости, тот, кто ее обнаружил, должен сообщить о ней (по крайней мере, производителю).
Полное раскрытие
Насколько подробным должно быть сообщение о найденной уязвимости? Какая информацию, кроме необходимой для воспроизведения проблемной ситуации, должна быть обнародована? Стоит ли делать код, использующий уязвимость, доступным широкой публике? Все эти вопросы так или иначе имеют отношение к концепции полного раскрытия (full disclosure), согласно которой обнародованию подлежат все аспекты проблемы. Считается, что пользователям должна быть предоставлена информация, позволяющая воспроизвести ситуацию. Кроме того, необходимо вообще дать им как можно больше информации о проблеме, включая код, использующий уязвимость. Дебаты о концепции полного раскрытия идут до сих пор, ведь у нее имеются и отрицательные стороны. Например, при таком подходе хакеры получают информацию о слабых местах системы, а код, использующий уязвимость, может быть сразу же использован для вторжения. Чтобы лучше понять концепцию полного раскрытия, потребуется историческая справка.
Раньше информация о проблемах безопасности распространялась только среди специалистов. Когда производители получали информацию об уязвимых местах, обнаруженных в их продуктах, они вообще никак не поступали с этой информацией или, в лучшем случае, дожидались, когда выйдет следующая версия продукта, чтобы внести исправления. Широкой публике не сообщалось об этом, так что никто и не знал, что вообще были какие-то проблемы с безопасностью.
Недостаток такого подхода состоит в том, что пользователи не осознают, насколько уязвимо программное обеспечение, которым они пользуются, и, соответственно, не понимают, насколько важно вовремя его обновлять, а также не требуют от производителей более надежных продуктов. Поскольку клиентов мало беспокоит безопасность, производители перестают считать надежность своей продукции первоочередной задачей. В свою очередь потребители не могут составить мнение о том, насколько безопасным является тот или иной продукт, поскольку отсутствует соответствующая информация от производителей. Таким образом, возникает порочный круг.
Ситуация осложняется тем, что даже информация, доступная только узкому кругу специалистов, имеющих непосредственное отношение к проблеме, иногда каким-то образом становится известной хакерам. Впрочем, изредка хакеры самостоятельно обнаруживают те самые уязвимые места, о которых говорят в узких кругах экспертов по безопасности. Некоторые хакеры сделали своей мишенью компьютеры экспертов по безопасности, где они надеются почерпнуть сведения об обнаруженных уязвимостях. Если удается взломать компьютер эксперта и получить новую информацию об уязвимостях, дальнейшее проникновение в чужие системы упрощается.