⇣ Содержание
Опрос
|
реклама
Самое интересное в новостях
Компьютер с чистого листа
⇡#Биология и спецслужбыСтрого говоря, более официальное название проекта звучит как CRASH, что является аббревиатурой от Clean-Slate Design of Resilient Adaptive Secure Hosts. Поскольку слова тут подбирались в первую очередь для звучности аббревиатуры, литературно переводить эту цепочку эпитетов системы (гибкая, безопасная, адаптивная) вряд ли имеет смысл. Гораздо важнее суть подхода. А она сводится к тому, чтобы тотально пересмотреть конструкцию и работу компьютера. Начиная с кремниевых «вафель», на которых вытравливаются микросхемы, и вплоть до программных приложений, запускаемых конечными пользователями. Не говоря уже об операционных системах и сервисах, размещающих все больше конфиденциальных документов и персональных данных в дистанционно удаленных «облачных» хранилищах информации. Проект «Чистый лист» принято представлять как исследования, направленные на поиск и воплощение таких компьютерных систем, которые (а) менее уязвимы для вредоносных и шпионских вторжений и (б) восстанавливаются более эффективно после того, как их безопасность оказывается скомпрометирована. Описывая публике ключевые идеи, на базе которых строится новая концепция, ее разработчики чаще всего привлекают метафоры из области биологии. Типа опасностей монокультур (среди настольных систем порядка 80% компьютеров в мире работают под управлением одной и той же, по сути, ОС, что всегда чревато тяжелейшими эпидемиями). Или специфики работы иммунной системы организма, способного самостоятельно излечиваться от новых инфекций, попутно запоминая методы лечения для уже известной заразы. Однако имеется в идеях CRASH и другой примечательный аспект. Сторонним наблюдателям, знакомым с базовыми принципами безопасности в основе работы секретных спецслужб, довольно сложно не заметить, что многие из подходов «Чистого листа» так или иначе воспроизводят ту же самую модель. То есть модель, применяемая в разведслужбах для защиты своих секретов и для контроля действий собственных сотрудников, в условиях CRASH реализована для защиты данных и для контроля за работой кодов подпрограмм. ⇡#Отсеки и привилегииЕсли переходить к более конкретным особенностям этой системы, то среди базовых основ CRASH в первую очередь называют принцип компартментализации (compartmentalization) и принцип наименьшей привилегии (principle of least privilege). Нехитрый принцип компартментализации (от compartment — отсек) применительно к компьютерам обычно разъясняют примерно так. Для того чтобы работу большой программы — вроде веб-браузера — сделать более надежной и безопасной, ее начинают расчленять на отдельные фрагменты, или отсеки. Каждый из этих фрагментов запускается в операционно изолированной среде, именуемой «песочница» (sandbox). Программе внутри песочницы разрешено делать лишь те вещи, которые строго определены относительно взаимодействий с системой, работающей за пределами контейнера-песочницы. На элементарном уровне наглядным примером такого подхода можно считать браузер Chrome. Здесь каждая открываемая пользователем вкладка обрабатывается внутри отдельной песочницы. И главный принцип подхода в том, что если некая уязвимость эксплуатируется конкретной веб-страницей, то код вредоноса с этой страницы не может влиять на веб-контент других страниц, обрабатываемых в том же браузере, и смешиваться с ним. Первоначально такого рода функциональность стали применять ради повышения надежности программы. То есть было крайне желательно, чтобы баг в одной из веб-страниц не заставлял закрывать другие вкладки, обрушивая работу всего браузера (в условиях сетевой работы компьютера необходимость начинать веб-сессию по новой считается эквивалентной общей перезагрузке системы). Когда же на этом направлении появились успехи, разработчики в Google заметили, что этот же принцип позволяет укреплять не только надежность, но и безопасность. То есть строго раздельная обработка каждой вкладки позволяет препятствовать и нежелательному вмешательству кода одних страниц в работу других. Точнее говоря, «позволяет пытаться препятствовать», поскольку данная проблема куда глубже и серьезнее. Но, как бы там ни было, этот пример дает — пусть и на элементарном уровне — общее представление о принципе компартментализации. Опираясь на него, разработчики CRASH создают такую компьютерную архитектуру, где каждая задача, обрабатываемая системой, раскладывается по «песочницам», или отсекам, со своими специфическими правами. Причем адреса или «названия» этих отсеков то и дело меняются — по сути, динамически изменяя архитектуру системы. Дабы более наглядно пояснить эффективность данного подхода применительно к безопасности, можно привести реальные примеры из работы криптографических спецслужб в годы Второй мировой войны и в последующий период истории. Когда посты радиоперехвата выявляют новые шифрованные передачи противника, им по традиции дают условные наименования. Скажем, в британской разведслужбе, ныне известной как GCHQ, разные — по странам, ведомствам и шифрсистемам противника — объекты перехвата именовались как рыбы: «тунец», «макрель», «селедка» и так далее. Когда материалы перехвата поступают к криптографам-аналитикам, пытающимся вскрыть шифр, объекты разработки получают другое название. Например, из мира птиц: «аист», «сорока», «пеликан» и тому подобное. Когда же дешифрованные математиками депеши поступают к переводчикам, материалам тех же самых объектов присваиваются наименования из мира, скажем, насекомых: «таракан», «стрекоза», «бабочка» — и далее в том же духе... Конкретные названия тут, ясное дело, никакой роли не играют. В других разведслужбах тот же самый принцип может быть реализован в виде кодовых слов типа MU12, Z-53 и DDE2A. Куда важнее тут суть. Сотрудник спецслужбы, на низком уровне занимающийся работой над объектом MU12 (перехват), может, в принципе, иметь общее представление о том, к какой стране и ведомству относится это название. Но порою может даже и этого не знать. Потому что не требуется. Тем более не требуется ему для работы информация о том, что тот же объект у дешифровальщиков называется Z-53 (не говоря уже о сведениях про успехи вскрытия). А сотрудники, технически занятые обработкой Z-53, понятия не имеют о том, что у переводчиков это называется «объект DDE2A», и тем более — о том, какова его информационная ценность... В терминологии англоязычных спецслужб, что интересно, этот принцип разбиения работы по изолированным друг от друга отсекам называют в точности тем же самым словом — компартментализация. А в тесной и непосредственной связи с этим принципом действует еще один, именуемый need to know — то есть принцип «требуется знать». Иначе говоря, любой сотрудник разведки, занятый разработкой объекта строго в пределах своего отсека, извне получает лишь ту дополнительную информацию, которая необходима для успешного продвижения работы. Если же необходимости в этом нет, то нет и никакого дополнительного доступа. В мире компьютерной безопасности та же самая, по сути, идея, получила название «принцип наименьшей привилегии». Причем и здесь этот подход новым никак не назовешь. О принципе наименьшей привилегии в компьютерной среде заговорили еще в середине 1970-х годов, когда впервые этот термин прозвучал в конструктивных предложениях ученых МТИ, Массачусетского технологического института (там же и тогда же, что интересно, была придумана знаменитая криптосхема RSA для шифрования с открытым ключом. Несколько ранее и в глубочайшем секрете эту же схему изобрели математики британской спецслужбы GCHQ). Так вот, принцип наименьшей привилегии гласит, что каждый отдельный фрагмент программы должен работать только с теми правами, которые требуются ему для выполнения кода. Когда программу запускают подобным образом, становятся возможными и успехи в усилиях по ослаблению атак. Потому что всякий раз, когда вредоносный код эксплуатирует уязвимость во фрагменте программы, будь то переполнение буфера или что-то более тонкое, принятые в системе правила применяются неправильно. Вредоносный код обретает некоторые дополнительные права. Очень важно, чтобы эти права обретались лишь в пределах конкретного изолированного отсека. А каждый отсек, соответственно, желательно делать как можно меньше. Помимо общих идей, нацеленных на реализацию весьма мелкого уровня грануляции песочниц, в CRASH применяют еще несколько специфических приемов. Например, один из конструктивных подходов к защите информации, разрабатываемых командой Питера Ноймана, носит название tagged architecture, или «архитектура меток». Суть здесь в том, что каждый блок данных, обрабатываемых в системе, должен содержать в себе метку целостности – зашифрованный код, который гарантирует, что блок по-прежнему тот же самый, которому система доверяет. Если же «документы» данных или программы не в порядке, то компьютер их обрабатывать не будет. Другой, связанный с предыдущим, подход именуется «архитектурой полномочий» (capability architecture) и аналогичным образом регулирует работу программных кодов. То есть требуется, чтобы каждый программный объект в системе содержал особый блок информации, который описывает его права доступа в компьютере. Причем существенно, что этот блок проверяется особой, защищенной частью процессора. ⇡#Оптимистичный пессимизмДля того чтобы возглавить столь масштабный проект — тотальное переосмысление компьютерной безопасности, более авторитетного и квалифицированного специалиста, чем Питер Нойман, не сыскать, наверное, во всей необъятной области компьютерных исследований. Свою деятельность на этом поприще Нойман, как студент-математик Гарварда, начал летом 1953 года — когда его наняли в качестве программиста калькулятора IBM, работавшего на основе колоды перфокарт. Непосредственно на компьютерной безопасности работа Ноймана сконцентрирована уже более 40 лет, с момента перехода в 1970-м из Bell Labs в SRI International. Конечно же, ему совершенно не нравится тот путь, который давным-давно выбрала компьютерная индустрия, — в первую очередь гнаться за скорейшим выводом недоделанных продуктов на рынок, а проблемы защиты информации, как и все прочие «вторичные», решать потом, по мере обострения их серьезности. Наиболее же обескураживающая часть этого процесса, по ощущениям Ноймана, — снова и снова наблюдать появление проблем, которые с технической точки зрения были решены несколько десятилетий тому назад. Но поскольку до реализации этих решений дело доходит в последнюю очередь, старые проблемы все еще продолжают осложнять жизнь компьютерному миру. Классический тому пример — уязвимость «переполнение буфера». То есть дефект конструкции, позволяющий злоумышленнику подать в атакуемую систему длинную строку символов, которые переполняют отведенную область компьютерной памяти, вызывают сбой программы и делают возможным выполнение вредоносного кода. Знаменитой эта уязвимость стала почти 25 лет тому назад, когда аспирант Корнеллского университета Роберт Теппен Моррис развлечения ради применил данную технологию для создания первого программного червя. Червь Морриса распространился по всему Интернету, который в ту пору состоял примерно из 50 тысяч машин, переполнил буферы памяти в туче компьютеров и фактически обрушил работу всей Сети. «Вредителя» нашли, завели дело и отдали под суд, но в итоге все же не посадили, а лишь оштрафовали, поскольку в содеянном не нашли злого умысла. Для Питера Ноймана события этой истории были особо неприятными по многим причинам. В свое время, в Гарварде, он учился вместе с Робертом Моррисом-старшим, отцом Роберта Теппена Морриса. Впоследствии, в 1960-70-е, они дружили семьями, вместе работая в Bell Labs, где Моррис-старший был одним из создателей операционной системы Unix. Но, помимо сугубо личных аспектов, добавлялся к переживаниям и серьезный технический момент. Дело в том, что к 1980-м годам, когда червь Морриса обрел свою дурную славу, о проблеме переполнения буфера специалисты не только прекрасно знали, но и давно нашли для нее эффективное решение — в большом исследовательском проекте под названием ОС Multics. Одним из руководителей этого проекта был Питер Нойман — в период с 1965 по 1969 год. ОС Multics стала одной из самых ранних конструкторских разработок, проведенных на деньги Пентагона. Спецслужбы рассматривали ее как целенаправленную и систематическую попытку решить те проблемы защиты информации, которые возникают при разделении единых компьютерных ресурсов среди множества разных пользователей. Уже в рамках проекта Multics удалось найти и реализовать множество эффективных решений, актуальных и на сегодняшний день. Однако в тот период большинство из них было просто проигнорировано индустрией — наступила эпоха массового доминирования мэйнфреймов IBM, а они работали под управлением совсем другой ОС. Подводя недавно итоги своей многолетней деятельности на ниве инфобезопасности, Нойман охарактеризовал затянувшийся кризис примерно в таких словах: «Как у человека, который крутится в этих жерновах последние лет сорок, у меня сложилось устойчивое впечатление, что большинство руководителей, отвечающих за все это дело, вообще не желает ничего слышать о сложности систем. Их интерес сводится только к одному — быстрые и грязные решения... На фундаментальном уровне я считаю себя оптимистом, когда речь идет о том, чего мы можем достичь с помощью наших исследований. Но в то же время я фундаментально пессимист во всем, что касается корпораций, полностью ориентирующихся лишь на своих акционеров и нацеленных в работе лишь на достижение краткосрочных финансовых успехов». Не опускать руки в этом неравном противостоянии, снова и снова пытаться доказывать свою правоту Нойману помогает не только авторитет, но поддержка на самых высоких уровнях власти. Непосредственным проявлением этой поддержки является, в частности, и нынешний проект CRASH. Примечательные слова по этому поводу сказал недавно Ричард Кларк (Richard A. Clarke), в недавнем прошлом Национальный координатор нескольких госадминистраций США (в ранге министра) по вопросам безопасности, защите критических инфраструктур и контртерроризму. Расценивая инициативы Ноймана как принципиально важное для безопасности дело, Кларк сказал так: «По большому счету, все наши усилия, которые предпринимаются сегодня для защиты сетей, сводятся к тому, чтобы нескончаемо лепить заплатки и затыкать дырки пальцами. Однако фонтаны новых протечек тут же начинают бить где-то еще... На фундаментальном уровне наши сети не переделывались вот уже 45 лет. Конечно же, это будет стоить гигантских денег — перепроектировать все это хозяйство. Но давайте начнем. И посмотрим, не станет ли это работать действительно лучше. А дальше — пусть решает рынок...»
⇣ Содержание
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.
|