ДыроCOM
АрхивПоследние годы компьютерные новости все больше напоминают сводки "от советского Информбюро". Атака, взлом, защита, укрепление обороны - это уже приелось, и сегодня в СМИ попадают только "выдающиеся" события, к примеру: "хакеры наносят массированные удары по арабскому Интернету".
Ой. По дому пошла трещина. Извините. Подождите немного, пока появится здание 1.1 - в нем не будет никаких строительных дефектов.
Брюс Шнейер.
«Компьютерная безопасность: Мы научимся чему-нибудь или нет?»
Последние годы компьютерные новости все больше напоминают сводки «от советского Информбюро». Атака, взлом, защита, укрепление обороны - это уже приелось, и сегодня в СМИ попадают только «выдающиеся» события, к примеру: «хакеры наносят массированные удары по арабскому Интернету». «Демоны» так вольготно чувствуют себя в виртуальном пространстве, что в конце прошлого года сотрудники администрации Клинтона обсуждали идею создания обособленного защищенного киберпространства (инициатором выступил координатор по безопасности, борьбе с терроризмом и защите инфраструктуры Richard Clarke), махнув рукой на оставшуюся часть паутины. То бишь отгородимся мы Великой Стеной, а за ней хоть трава не расти.
Кризис IT-экономики наверняка притормозит столь масштабную стройку, но, если Белому дому придется и дальше регулярно прятать свой сайт, мы сможем стать свидетелями появления первого чуда Нового Света: Великой Американской Огненной Стены - The Great US Firewall.
Занятные люди - сначала сами создают рай для, скажем мягко, киберхулиганов, а потом вопят на весь мир об угрозе национальной безопасности. Тот же Кларк заявил, что «сети, через которые проходит большая часть важнейшей информации США, перемешаны с незащищенными сетями общего доступа. Так как Интернет никто не разрабатывал, мы не позаботились о защите. В результате злоумышленники получили возможность красть электронные данные и выводить из строя наши системы».
Понятно. Интернет ведь корнями уходит в военные разработки. А что ж это за генералы, которые в стране победившего капитализма в эпоху очередной конверсии не могут конвертировать имущество (в том числе и интеллектуальное) в «зелененькие»? Все они люди образованные - академии закончили, по роду своей деятельности легко оперируют числами с пятью и более нулями. Им всегда готовы помочь гражданские бюрократы - бизнес-карьера нынешнего американского вице-президента тому великолепный пример («Совершенно секретно», № 8, 2001 г.). А сколь прибыльно впоследствии решать возникшие проблемы - структуры, должности, штаты, финансирование, рост занятости опять же. Это и есть образец, коему должны подражать «отсталые страны»?
Интересно, что в упомянутом выступлении м-ра Кларка слабо выражена обеспокоенность уровнем безопасности программного обеспечения от столпов американского software-бизнеса. Между тем, как ни крути, ПО - главная составляющая угрозы.
Возьмем набивший оскомину пример: вирус Морриса. Его автор учился в Корнельском университете и на момент создания своего исторического сетевого червя стажировался в AT&T Bell Laboratories (там же, кстати, долгое время работал его отец), участвуя в модернизации системы безопасности Unix. Моррис-старший был одним из ведущих специалистов Национального центра компьютерной безопасности, входящего в состав Агентства национальной безопасности США. Он также участвовал в разработке систем безопасности для Unix. По сообщениям СМИ, ФБР засекретило информацию, имеющую отношение к вирусу Морриса. Ущерб от первой глобальной атаки по Сети был оценен в 100 миллионов долларов.
Теперь о шедевре-2000 под названием I Love You. Автор - студент некоего университета в Маниле (Филиппины) Онель де Гузман, сын рыбака. Он обошелся и без «секретного» папаши, и, тем более, без работы в высокотехнологичной корпорации. Общедоступный справочник по Visual Basic Script (VBS), столь же общедоступное описание COM-интерфейса программы MS Outlook, Интернет-кафе. Никаких секретов. А ущерб, по разным оценкам, составил 8-10 миллиардов долларов. Ну прямо «счастья баловень безродный»!
Учтя инфляцию по таблицам Consumer Price Indexes, получаем 70-кратный рост злодейской эффективности за двенадцать лет. При этом трудозатраты и объем знаний вообще не сопоставимы. Вот это рост, вот это прогресс защитных технологий, вот это инвестиционное поле! Для создания вируса «а-ля Гузман» требуются минимальные навыки программирования. Если же человек вообще не знает, что такое программирование, к его услугам генераторы скрипт-вирусов.
А кому предъявлять претензии? Вот цитата из лицензии моего свеженького «приобретения»:
«НИКАКОЙ ОТВЕТСТВЕННОСТИ ЗА ПОСЛЕДУЮЩИЕ УБЫТКИ.
Компания или ее партнеры-распространители ПО не несут никакой ответственности ни за какие убытки (включая, без ограничений, убытки из-за потери коммерческой прибыли, прерывание бизнеса, потери деловой информации или любой другой финансовой потери), возникающие из-за использования или невозможности использования ПО, даже если компания была извещен о возможности таких убытков». (Сохранены особенности оригинала.)
Между прочим, программа из разряда криптографических, и стоит денег. Пользователи узнают о том, куда они вляпались, после того как диск «сделает дяде ручкой». Но в принципе блестящее решение: производитель имеет право поставлять заведомо бракованную продукцию. По красоте стиля оно сравнимо только с одним виденным мною распоряжением: поскольку финансирование проекта прекращено, считать его выполненным!
Разработчики ПО применяют недостаточно проверенные технологии, не беспокоясь об ответственности за возникающие у пользователей проблемы. Методика сверхглубокого разделения труда, на которой базируется производство современного тиражируемого софта, способна разрушить любую систему безопасности. Ни менеджеры проекта, ни авторы отдельных частей не могут даже представить себе возможные связи, возникающие между «самостоятельными» компонентами. В итоге мы получаем непрерывные сообщения о том, что очередная программа имеет «дыру», создающую заманчивые перспективы для злоумышленников. Под напором ошибок не способны устоять даже гиганты виртуального мира, не то что домашние компьютеры.
Мне кажется, что в «защищаемых» сетях проще создать пользователя с именем «хакер», выделить ему полномочия и отдельный комп, повесить объявление об этом на главной странице - и пусть все желающие упражняются.
Думаете, этого нет в действительности? А посмотрите на основу нынешней архитектуры Windows-приложений - модель компонентных объектов (COM). Она представляет собой распространение-обобщение концепции клиент-сервер на все ПО для Windows. В этой схеме приложение-сервер «предлагает» свои функции желающим ими воспользоваться приложениям-клиентам. Такой подход очень удобен разработчикам ПО, поскольку появляется возможность повторного использования (в том числе и через сеть) уже откомпилированного кода и, соответственно, реализуется вышеупомянутое разделение труда. Прикладные программисты могут использовать готовые решения в своих разработках, а пользователи получают OLE, автоматизацию, прочие удобства. Ну «и кое-что еще, и кое-что иное, о чем не говорят, чего не учат в школе».
Прямо на глазах потайная калитка, которую ранее применяли для создания программных «люков», превращается в затейливо инкрустированную дверку. Теперь back door можно скрыть среди множества функций «общего пользования». Без доступа к исходному коду невозможно определить, что и с какими параметрами реально выполняется.
Пойдем дальше. Функциональность COM-приложений можно расширять с помощью ActiveX-плагинов. Так-так. Значит, для доступа к телу пользователя уже не требуется создавать какую-то хитрую и сложную программу. Жди, пока он еще ею заинтересуется! Проще найти популярную программку и сварганить к ней «полезную» добавочку, снабдив ее троянским довеском. Дверка превращается в крылечко.
Первое впечатление: не может все быть так просто. И действительно: программирование по технологии COM потребует специальных знаний. Коли так, бояться нашествия вражеских кодов нечего. Но на всякий случай все же стоит поинтересоваться, как идея COM вписывается в систему безопасности Windows.
Идем к первоисточнику. Безопасность в COM оказывается «твердо основанной» на безопасности, обеспечиваемой NT/2000 и базовыми механизмами безопасности службы удаленного вызова. Поблуждав некоторое время между гиперссылками, которые плодятся в PSDK быстрее кроликов, приходишь к выводу, что для грамотного изменения установок по умолчанию6, гарантирующих, что удаленный сервер не нарушит ограничений для локального пользователя, нужно вызывать специального настройщика. Но ведь приложения взаимодействуют и в пределах одного компьютера! Надо полагать, системным администраторам доставит массу удовольствия вычислять возможные связи и вводить ограничения там, где их вообще можно установить. Почему-то вспоминается анекдот об автомате, который заменил четырех рабочих и потребовал восьмерых инженеров для обслуживания.
Кстати, об автоматизации. Из справки к VBA следует, что автоматизация - это свойство COM, заключающееся в открытости объектов приложения для средств разработки, макроязыков и других приложений, поддерживающих автоматизацию. Тут же призыв: «Используйте Visual Basic для управления этими объектами через вызов их методов или получение/установку их свойств». Для тех, кто не знает, объект, по той же справке, - это комбинация кода и данных, которую можно рассматривать как единое целое, например: элемент управления (control), форма (form) или компонент приложения. Так что все Visual-программисты уже работают с COM, и не знающие об этом - тоже.
Макроязыки, а по сути, единственный явный лидер среди них - VBA - мутация языка высокого уровня, тоже имеют COM-интерфейс. Появляется возможность с помощью одного приложения перепрограммировать другое, подсунув ему совсем не добродетельные функции. Пока доверчивые пользователи из последних сил штопают оградку системы безопасности, внутри разворачивается пятая колонна.
Когда же на «изящные» принципы накладываются дыры и ошибки ПО, эффект бывает просто поразительный. Великолепным примером тому является Nimda: не успел вылупиться, как тут же разбросал свои семена на серверах alma mater - «на третий день Зоркий Сокол увидел, что стены-то и нет».
Решение проблемы некоторые видят во введении обязательного свидетельства о благонадежности программного кода. Но внедрение его в готовую конструкцию не обойдется без неприятных проблем. Во-первых, что делать с горами уже используемого софта? Выкинуть? И все бесплатное ПО тоже? Во-вторых, ежели понадобиться изготовить маленькую утилиту, придется ведь получать надлежащее разрешение, не бесплатное, между прочим. Будет ли оно вечным и всепогодным или, в соответствии с нынешними идеями, его надо будет реактивировать? Я почему-то уверен во втором варианте. В-третьих, сертификат можно слямзить. Умыкнули же «по ошибке» в январе 2001 года прямо из депозитария VeriSign два сертификата с подписью Microsoft. И теперь «автоматическое» средство проверки подлинности сертификата - пользователь, внимательно изучающий дату выдачи. В-четвертых, расплодятся троянцы и вирусы, промышляющие отловом этих сертификатов, а вы потом будете месяцами кормить американское правосудие, доказывая, что не вы украли, а у вас украли. Сторонникам таких подходов к безопасности стоит запасаться справочками уже сейчас…
Макровирусы, скриптовые вирусы, прочие сетевые черви прекрасно существуют в рамках одной модели, можно даже сказать, порождаются ею. Кстати, и Back Orifice со своими плагинами происходит оттуда же. В общем, сначала создаем проблему, а затем героически ее решаем. Создается впечатление, что в Редмонде и Вашингтоне десантировалось самое разрушительное оружие СССР - Госплан.
Хотя нет. Это, видимо, и есть тот самый вход для хакеров. (В нынешних условиях топ-менеджеры Microsoft могут с гордостью отрапортовать Конгрессу, что дыра для спецслужб уже давно их ожидает. Смотри как далеко умеют планировать!) Профи хакинга, сделав первый шаг, натыкаются на Basic и тут же, гордо зажимая нос, уходят на поиски щелей в парадной двери. Прочим киберзлодеям перешагнуть уровень макровирусов не так-то просто. И лишь очень любопытные «яйцеголовые» продолжают развивать оригинальные технологии порабощения вашего компьютера. Ай да Microsoft, ай да…
[i41842]