![]() |
![]() |
|
Полное раскрытие
Ведется контроль над ограничением свободного прохода через уязвимые места защиты компьютеров. В прошлом месяце Скотт Кулп (Scott Culp), менеджер центра защиты Microsoft, издал эссе, описывающее текущую практику защиты, чтобы навести порядок в этой "информационной анархии". Он утверждает, что мы будем намного более защищены, если исследователи оставяет при себе подробности относительно недостатков в своих программах и не будут публиковать их, вооружая хакеров новыми инструментальными средствами. На прошлой неделе, на Вычислительном Форуме Microsoft, Кулп объявил о создании новой коалиции, чтобы провести эту идею в практику. Это были дебаты о "сохранении тайны, имеющихся уязвимостей защиты, от полного раскрытия". Я написал относительно этого предварительно в Crypto-Gram; другие специалисты также писали об этом. Это сложная проблема стоит на всем протяжении компьютерной защиты, и имеет смысл, чтобы снова ее обсуждать. Для незащищенности я предложил термин, назвав его "Window of Exposure", чтобы пояснить изменения нахождение точки уязвимости защиты во времени. Уязвимость это как жучок; это ошибка, сделанная программистом во время создания программы и не обнаруженная во время испытаний. Это отверстие, через которое кто - то может нарушить режим эксплуатации, чтобы ворваться в компьютер или сделать что-что, обычно запрещаемое. Предположите, что в изделии имеется уязвимость, и никто этого не знает. Имеется небольшая опасность, что кто-то использует эту уязвимость. Эта уязвимость может быть неоткрытой для коротких отрезков времени, например, в Windows XP она была обнаружена, прежде чем программа была распространена. В других случаях она может сохраняться в течение многих лет. В конечном счете, кто - то обнаруживает уязвимость. Возможно, это хороший человек, который сообщит об этом разработчику. Возможно, это плохой человек, который использует эту уязвимость, чтобы войти в систему. Возможно, этот человек не сообщает об этом никому, но потом кто-то еще обнаруживает эту дырку несколькими месяцами позже. В любом случае, как только кто-то узнает относительно этой слабости, опасность использования программ увеличивается. В конечном счете, новости относительно уязвимости распространяются. Возможно, они распространяются среди коллективов, занимающихся защитой. Возможно, они распространяются среди хакеров. Увеличение опасности происходит всегда, когда много людей узнает об уязвимости. В некотором месте, уязвимость объявлена. Возможно, это объявлено на Bugtraq или другом Информационном узле. Возможно, это объявлено исследователем по защите в официальном сообщении для печати, или CERT, или разработчиком программ. Возможно, это объявлено на доске объявлений хакера. Но как только это объявлено, опасность увеличивается, потому что теперь большее количество людей знает об этой слабости.Тогда, для тех, кто пишет программы, которые используют эту уязвимость, переходят через ту точку, которая не имеет практического аналога по двум причинам. Во-первых, программное обеспечение имеет способность отделить навыки от способности. Как только инструмент-программа написана, любой может эксплуатировать уязвимость, независимо от его навыка или понимания. Во-вторых, этот инструмент может быть распределен широко и бесплатно, таким образом, может быть доступен каждому, кто захочет использовать эту "дырку". Это приводит к тому, когда любопытные могут получить информацию им совсем ненужную и даже вредную, используя инструментальные средства проникновения в системы. Как только инструмент написан, такая опасность резко увеличивается. В этом случае, разработчик программы выпускает заплату (горячий ремонт). Происходит уменьшение опасности, но не на столько, на сколько мы хотели бы иметь. Очень многие компьютеры в Internet не имеют современных заплат; имеется много примеров систем, используемых с уязвимостями, которые должны быть исправлены. Я не выступаю здесь системным администратором; я хочу отметить, что имеется слишком много заплат, и многие из них плохо сделаны и плохо проверены. Так что, уменьшая опасность, мы никогда не приходим к нулю.Вы можете представлять это как график опасности во времени, и Window of Exposure как область под графиком. Цель состоит в том, чтобы делать эту область как можно меньше. Другими словами, мы хотим быть там как можно меньше времени, насколько это возможно по времени службы программного обеспечения и специфической уязвимости. Сторонники тайны жучков и сторонники полного раскрытия просто имеют различные идеи для достижения этого.Хронология полного раскрытия В ранние годы развития компьютеров и сетей тайна ошибки была нормой. Когда пользователи и исследователи находили уязвимость в программном продукте, они спокойно предупреждали продавца. В теории, продавец тогда устранял уязвимость. После основания в 1988 CERT, который стал центром обмена информации по уязвимости, люди присылали недавно обнаруженные ошибки в CERT. CERT проверял их, предупреждал продавца, и издавал коррекцию, как только она становилась доступной. Проблема с этой системой состоит в том, что продавцы не имели побуждения находить такие ошибки. CERT не издал бы ее местоположение, так не имелось никакой безотлагательности. Было проще сохранить тайну уязвимости. Имелись так же обстоятельства у продавцов, которые угрожали исследователям, если они делали ошибки известными общественности. Кампании начинали борьбу против исследователей, которые объявили о существовании таких ошибок (даже если они опускали подробности). И, таким образом, много уязвимости остались не зафиксированными в течение ряда лет. Движение за полное раскрытие было рождено из-за недостатков в быстром решении этой проблемы. Как только уязвимость продукта опубликована, общее давление на продавцов дает сильный стимул разрешить проблему быстро. Главным образом, это работало. Сегодня многие исследователи публикуют уязвимость, помещая ее на сайты типа Bugtraq. Пресса пишет относительно уязвимости в компьютерных журналах. Продавцы борются, чтобы исправить эти уязвимость, как только они разглашены, так что они могут публиковать собственные официальные сообщения в печати относительно того, как быстро и насколько, полно они исправили обнаруженные ошибки. Движение за полное раскрытие улучшает защиту Internet. В то же самое время, хакеры используют эти сайты, чтобы узнать об уязвимости, и использовать ее. Иногда исследователи непосредственно дают исправления. Иногда это делают другие. Хакеры эксплуатируют выявленные ошибки, используют их, чтобы ворваться в уязвимые компьютеры и сети, и тем самым очень уменьшают защиту Internet. В эссе Колп указывает на Code Red, Li0n, Sadmind, Ramen, и Nimda как примеры появления программ – вирусов после того, как исследователи продемонстрировали уязвимые места, показывая, как специфическая уязвимость работает.Противники полного раскрытия доказывают, что опубликованные подробности уязвимости делают больше вреда, чем полезного, вооружая хакеров инструментальными средствами, которые они могут использовать, чтобы ворваться в системы. Защита будет намного лучше, если она будет скрывать точные подробности уязвимости. Сторонники полного раскрытия противостоят этому, говоря, что исследователь, который предает гласности уязвимость, обычно первый, который ее обнаружил. А уязвимость, обычно, является ошибкой. Иногда уязвимость была известна нападавшим в течение месяцев или лет до того как ее обнаружит продавец. Они говорят, чем скорее ошибка установлена и разглашена, тем лучше для каждого. Возврат к тайне жучка только вернул бы нас к бездействию продавца. Это похоже на спор в темной комнате. Действительно ли выходом при разглашении является нападение, приводящее к увеличению угрозы от врага, узнавшего это? Или мы, уменьшаем Window of Exposure, ограничивая знание уязвимости, или, издавая уязвимость, и вынуждаем продавцов устранять ошибку настолько быстро насколько это возможно? Мы увидели в течение прошлых восьми или около того лет, что полное раскрытие помогает нам намного больше, чем вредит.Так как полное раскрытие стало нормой, компьютерная промышленность преобразовала группы компаний, которые игнорируют защиту и умаляют уязвимость, в компании, которые устанавливают уязвимость настолько быстро, насколько возможно. Некоторые компаний даже идут дальше и понимают защиту достаточно серьезно, чтобы пытаться формировать качественное программное обеспечение с самого начала: устанавливая возможные ошибки-уязвимости, перед тем как программа выпущена. И намного меньше проблем возникает с хакерами. Это обычно бывает с той информацией уязвимости, которая была доступна немногим: исследователям защиты и хакерам, которые были объединены в соответствующих сообществах. Теперь это становится доступным каждому. Демократизация важна. Если уязвимость существует, а Вы не знаете этого, то Вы находите решение защиты с нестандартными данными. Код, в конечном счете, выйдет - Window of Exposure будет расти - но Вы не будете иметь никакого управления, или знания, когда или как это получится. Все, на что Вы можете это надеяться, что плохие люди не выяснят ошибку прежде, чем хорошие устранят проблему. Полное раскрытие означает, что каждый получает информацию в одно и то же время, и каждый может воспользоваться этим.И детальная информация требуется. Если исследователь только издает неопределенные инструкции относительно уязвимости, то продавец может утверждать, что это не реально. Если исследователь издает научные подробности без кода примера, то продавец может утверждать, что это только теоретически. Единственный способ заставить продавцов искать и находить решение, это издание подробностей: и в человеческой, и компьютерной форме. (Microsoft виновен в обоих действиях, используя свою машину PR, чтобы отрицать и умалить уязвимость, они пока не показывают нам фактический код). А код - единственный способ проверить, что заплата (горячий ремонт) продавца фактически исправила ошибку. Этот свободный информационный поток, и описания и испытательный код, являются также жизнеспособными для исследования защиты. Научно-исследовательские успехи в компьютерной защите расцвели на прошлой декаде, и многое из них может быть приписано движению с полным раскрытием. Способность издавать исследовательские результаты - и хорошие и плохие - ведет к лучшей защите для каждого. Без публикации защиты нельзя учиться на ошибках друг друга. Полное раскрытие существенно, если мы должны продолжать улучшение защиты наших компьютеров и сетей.Пример тайны жучка Вы можете видеть проблемы с тайной жучка в промышленности на примере "цифрового допуска". DMCA ввел парадигму тайны жучка в закон; в большинстве случаев незаконно издать уязвимость или автоматические инструментальные средства раскрытия схем защиты от копирования. Исследователям не дают нормально работать. Уязвимость защиты сохраняется секретной. И результат - множество опасных систем, их владельцы, задавленные законом, надеются, что никто не выясняет, как плохи они в действительности. В результате приходим к тому, что пользователи не могут делать интеллектуальные решения относительно защиты. Имеется один пример: несколько месяцев назад, исследователь защиты Niels Ferguson нашел недостаток защиты в HDCP цифровой системе шифрования видео Intel, но отказался от публикации из-за страха, что его могли преследовать по суду из-за DMCA. Реакция Intel была напоминанием о днях "перед полным раскрытием": они отклонили взлом системы как "теоретический" и утверждали, что система была все еще безопасна. Вообразите, что Вы думаете относительно закупки системы Intel. Что Вы делаете? Вы не имеете никакой реальной информации, так что Вы должны доверить или Ferguson или Intel.Имеется и другой пример: несколько недель назад, выпуск ядра Linux поступил без общепринятой, детальной информации относительно защиты ОС. Разработчики процитировали опасение DMCA, как причину, почему в этих подробностях они отказывали. Вообразите, что вы оцениваете операционные системы: Вы чувствуете себя, более или менее уверенными относительно защиты ядра Linux, версии 2.2, а теперь, когда Вы не имеете никаких подробностей? Полное раскрытие и ответственность Рассмотрим пункт, когда говорят относительно ответственности. (Конечно, Скотт избегает понятия "моя вина".) Цель здесь состоит в том, чтобы улучшить защиту, не вооружая людей, которые врываются в компьютеры и сети. Автоматические инструментальные средства взлома с простыми правилами использования, готовое изделие для детского сценария, вызывают много ущерба организациям и их сетям. Они могут относиться как к ответственному, так и безответственному раскрытию. Не всегда просто определить разницу, но я имею некоторые рекомендации. Я оппозиционно настроен в отношении нападений, которые, прежде всего, опасны. Публикация уязвимости, для которых не имеется никакого реального свидетельства, плоха. Публикация уязвимости, которые представляет собой больше дыма, чем огня, плоха. Публикация уязвимостей систем, которые не могут быть легко установлены и чья эксплуатация может причинить серьезный вред (например, система управления воздушным движением), плоха.Во вторых, я верю в предоставление предварительных сведений продавца. CERT принимал это к экстремальному значению, иногда давая продавцу годы, чтобы установить проблему. Я хотел бы видеть, что исследователь сообщает продавцу, что он издаст уязвимость через несколько недель, и затем будет придерживаться этого обещания. В настоящее время продавцам дают 45 дней, но раскрывают информацию об уязвимости немедленно для оплаченных абонентов. Microsoft предлагает 30-дневный период. В то время как это - хорошая идея в теории, создает для специальной группы посвященных лиц собственный комплекс проблем. В третьих, я соглашаюсь с Колпом, что безответственно, и возможно преступно, чтобы эксплуатировались более простые в использовании изделия. В системе безопасности, обнаруженная уязвимость, исследовательские документы относительно ее, и даже код демонстрации, приносят пользу исследованию. Все позволяет принимать более сильные решения при проектировании новых безопасных систем. Эксплуатация только делают нас более уязвимыми. Я хотел бы, например, получить информацию от специалистов, кто пишет вирусы. У них есть много, что мне ответить. Это не очень четко: имеются инструментальные средства, которые делают, и хорошо и плохо, и иногда разность - просто маркетинг. Сегодня, инструментальные средства оценки уязвимости - жизнеспособные программы администрации защиты. L0phtCrack - инструмент хакера, чтобы взламывать слабые пароли, но LC 3.0 продан как инструмент администрации сети, чтобы проверять на слабость пароли. И программа, написанная Дмитрием Скляровым, имеет законное использование. Фактически, большинство инструментальных средств имеет, и хорошие и плохие использования, и когда в сомнении я полагаю, что лучше получить информацию в руках людей, кто нуждаются в этом, даже если это означает, что плохие люди получают это также.Одна вещь обращает на себя внимание - список исследователя. Публикация уязвимости защиты - часто зазор рекламы; исследователь смотрит, чтобы получить его собственное название в газете, успешно помещая в мешок его добычу. Публикатор часто имеет свой собственный список: он - консультант защиты, или служащий компании, которая предлагает изделия или услуги защиты. Я несколько утомлен компаниями, которые издают уязвимость, чтобы поместить их собственное изделие или предложить свое обслуживание. Хотя, конечно, не альтруистический повод не подразумевает, что информация плоха.Подобно "быть частью решения, не частью проблемы". Исследование защиты - часть решения. Убедить продавцов, что установление проблемы - часть решения. Сеяние опасений - часть проблемы. Вручение инструментальных средств нападения невежественным подросткам - часть проблемы. Неизбежность уязвимости защиты Ничего из этого не было бы проблемой, если программное обеспечение проектировалось должным образом. Уязвимость защиты - ошибка программирования: например, ошибка типа буферного переполнения, которое должно быть перехвачено и предотвращено, или, например, дыра, введенная из-за недостатка понимания взаимодействия в комплексе кода программы. Если не имелось никаких уязвимостей защиты, не будет и никакой проблемы. Это недостаточное качество программ, которое и вызывает беспорядок. Это истинно, программные продавцы однородно производят дрянное программное обеспечение, которое является явной сложностью современного программного обеспечения, а для сетей приводит, что неизбежно, к уязвимости, увеличенной уязвимости. Она присутствует в каждом главном пакете программ. Каждый раз, когда Microsoft выпускает операционную систему, эти вороны говорят о том , что испытание было настолько обширным и продукт является настолько безопасным, и каждый раз она содержит большее количество уязвимости защиты, чем предыдущая операционная система. Я не думаю, что эта тенденция скоро полностью изменит себя.Продавцы не принимают защиту всерьез, потому что не имеется никакого рыночного стимула для них, и никаких неблагоприятных эффектов, когда они не делают этого. Я долго спорил, что продавцы программ не должны быть освобождены от ответственности за изделие по закону, который управляет остальной частью торговли. Когда это случается, продавцы будут делать больше чем запудривание мозгов покупателей по уязвимости защиты: они установят их настолько быстро, насколько возможно. Но до тех пор, полное раскрытие - единственный путь, которым мы должны мотивировать продавцов, чтобы они действовали ответственно. Повод в продвижении тайны дефекта очевиден: во-первых, это намного легче, забыть информацию о безопасности, чем надежно устанавливать проблемы для изделия проекта. Устойчивый поток ошибок защиты Microsoft привел много людей к тому, чтобы подвергнуть сомнению защиту их будущих программ. И с аналитиками подобно Gartner люди начинают думать о том, чтобы отказаться от Microsoft IIS из-за всех его ненадежных программ. Поэтому предоставление клиентам меньшего объема информации о безопасности относительно их изделий было бы хорошо для бизнеса Тайна - жизнеспособное решение только тогда, когда продавцы программ следуют принципу управления качеством W. Edwards Deming's. Чем более длинный список ошибок остается, тем большей становится проблема. И так как число систем в Internet постоянно становится больше, больше становится уязвимость защиты, и тем больше становится window of exposure. Если компании верят этому и затем действуют соответственно, то имеется мощный стимул для хранения тайны.История показывает, этого не было. Читайте эссе Скотта Кулпа; он не говорил: "Ребята, если у Вас есть ошибка, присылайте ее мне, и я буду удостоверяться, что она быстро устраняется". Что он был против публикации уязвимости, и просил, чтобы исследователи сохраняли детали ошибок у себя. Иначе, он угрожал: "продавцы не будут иметь никакого выбора, кроме нахождения других способов защитить своих клиентов", независимо от того, к чему это ведет. Это еще раз показывает, что полное раскрытие единственный жизнеспособный способ уменьшить окно уязвимости. В своем эссе Кулп сравнивает практику публикации уязвимости с криком "пожар" в переполненном кинозале. Но он забывает, что там фактически может быть пожар; а уязвимость существует независимо от тех, кто использует программу. Обвинение человека, кто раскрыл уязвимость, подобно заключению в тюрьму человека, кто первый увидел огонь. Раскрытие не создает уязвимость защиты; программисты создают их, и они остаются, пока другие программисты не находят и не удаляют их. Каждый делает ошибки; это естественные события в смысле, что они неизбежно случаются. Но это не дает никакого оправдания за их сокрытие. Они могут быть найдены и нашими силами, и устранены, когда мы возвращаемся к этим уязвимостям.Эссе Скотта Кулпа: <http://www.microsoft.com/technet/columns/security/noarch.asp> Краткое изложение этого: <http://news.cnet.com/news/0-1014-201-7819204-0.html> Статьи Кулпа: <http://www.theregister.co.uk/content/55/22332.html> <http://news.cnet.com/news/0-1003-200-7560391.html?tag=mn_hd> <http://cgi.zdnet.com/slink?153618:8469234> Статьи Кулпа о необходимости сохранять тайну: <http://www.securityfocus.com/news/281> <http://213.40.196.62/media/670.ppt> <http://www.theregister.co.uk/content/4/22614.html> <http://www.theregister.co.uk/content/4/22740.html> Моя первоначальная статья о Window of Exposure: <http://www.counterpane.com/crypto-gram-0009.html#1> Мои более ранние публикации о полном раскрытии: <http://www.counterpane.com/crypto-gram- 0001.html#KeyFindingAttacksandPublicityAttacks> <http://www.counterpane.com/crypto-gram- 0002.html#PublicizingVulnerabilities> Заметим, что nCipher плохой анекдот. Подробности - здесь: Другие комментарии: <http://web.ranum.com/usenix/ranum_5_temp.pdf> <http://www.osopinion.com/perl/story/13871.html> <http://www.synthesis.net/tech/fulldisclosure/> <http://www.osopinion.com/perl/story/14401.html> <http://www.net-security.org/text/articles/disclosure.shtml> Благодарю Tina Bird, Jon Callas, Scott Culp, Greg Guerin, Elias Levy, Jeff Moss, Eric Raymond, и Elizabeth Zwicky за просмотр и комментарии к этой статьи.
Авторское право © 2001 Counterpane Internet Security, Inc.Русский материал Малютина А. |