Кивино гнездо: Без срока давности (часть II)
АрхивКивино гнездоОкончание истории о том, как ФБР и АНБ США встраивали закладки-бэкдоры в криптографию операционной системы с открытыми исходными кодами.
Продолжение. Начало читайте здесь.
Информация о возможных бэкдорах американских спецслужб в ОС OpenBSD, обнародованная Тео де Раадтом среди интернет-сообщества, конечно же, не могла пройти незамеченной. Причём уже среди самых первых откликов на публикацию появились заявления от людей, персонально упомянутых в письме Грегори Перри в качестве тайных "инструментов ФБР".
Оба этих человека (программист-разработчик Джейсон Райт и автор технических пособий по системам виртуализации Скотт Лоуи) в самой категоричной форме отвергли обвинения Перри. Попутно они заверили общественность, что никогда не имели ничего общего с ФБР и понятия не имеют, почему именно на них пали эти безосновательные обвинения. Наиболее циничные комментаторы, впрочем, тут же отреагировали соответствующим образом: ещё никто и никогда по собственной воле в подобных вещах не признавался в условиях, когда отсутствуют документальные подтверждения.
Что же касается официальной реакции на историю со стороны ФБР, то там, как это часто бывает в деятельности спецслужб, полностью проигнорировали публикацию и уклонились от каких-либо комментариев. Прозвучали, правда, высказывания некоего агента Хилберта, бывшего сотрудника ФБР и следователя по компьютерным преступлениям, но сколь-нибудь серьёзными его аргументы назвать затруднительно. Первым делом он обозвал Грегори Перри "шизиком", а по существу дела выразился так: "Открытое программное обеспечение со встроенными бэкдорами - это полный идиотизм просто потому, что здесь открытые исходные коды… Кто угодно их будет искать и тут же найдёт"…
В ответ на столь безапелляционные заявления среди корректных людей (то есть тех, кто не прибегает к прямым оскорблениям оппонента в качестве аргументов дискуссии) с некоторых пор обычно принято говорить, что либо данный специалист некомпетентен, либо он лжёт, либо и то и другое вместе.
Ещё в 2003 году программисты-разработчики, занимавшиеся созданием очередной версии (2.6) ядра ОС Linux, благодаря удачному стечению обстоятельств обнаружили и ликвидировали в открытых исходных кодах системы тайный бэкдор. Причем реализован этот бэкдор был настолько хитро и искусно, что даже для закоренелых скептиков разговоры о неуловимых троянах в открытом ПО перестали звучать как бред параноиков.
Подробности этой истории в своё время освещались на страницах "Компьютерры" (см. текст "Такая вот паранойя"), здесь же достаточно упомянуть лишь суть. Выявленный тайный ход в систему представлял собой совершенно неприметное добавление всего из двух строчек кода, тщательно замаскированных под невинный контроль ошибок, сопровождающий одну из функций системного вызова. Эта функция была доступна любой программе, работающей на компьютере, и на первый взгляд просто говорила операционной системе сделать паузу, пока другая программа не завершит свою работу. Лишь при особо тщательном исследовании было установлено, что человек, знавший нужное (и в данных условиях экзотическое) сочетание управляющих флагов плюс место, где их следует применить, получал бы благодаря этим двум строчкам полный, с максимальными привилегиями Root, контроль над любой машиной, работающей под ОС Linux с новым ядром. То есть такой операционной системы, исходный код которой всегда был открыт и доступен любому для выявления потенциальных слабостей.
Знающие люди в рядах движения за свободное ПО, конечно же, наверняка были наслышаны об этой истории. Сразу после публикации писем де Раадта и Перри в сообществе OpenBSD начались аудиторские проверки криптоподсистем этой ОС. Первые же дни пристрастных перепроверок позволили выявить в кодах пару существенных и прежде незамеченных багов - не особо, впрочем, похожих на коварный бэкдор. На первый взгляд, по крайней мере.
В следующем письме Тео де Раадта, разосланном им для разработчиков OpenBSD, обрисована суть обнаруженных багов и делается попытка прояснить те роли, что могли сыграть в их появлении конкретные программисты от фирмы NetSec - Джейсон Райт и Ангелос Керомитис. Нет никаких сомнений, что два этих видных разработчика проекта OpenBSD были непосредственно связаны с NetSec, однако де Раадт со всей осторожностью предупреждает, что не знает, были ли сами эти люди в курсе относительно тесных дел их компании с ФБР.
Как бы там ни было, система контроля над модификациями кода, реализованная при разработке OpenBSD, позволяет аудиторам проконтролировать, какие из разработчиков участвовали в написании каких именно сегментов кода. Согласно де Раадту, Джейсон Райт был главным образом вовлечён в программирование драйверов и не имел никакого отношения к созданию криптографической подсистемы OCF. При этом он явно работал над некоторыми частями стека IPSec. В своём ответном письме Джейсон Райт категорически отверг обвинения, будто он встраивал бэкдоры в код OpenBSD. Однако де Раадт тут же подверг Райта критике за то, что он в своей реакции так и не прояснил суть работы, которой занимался в NetSec.
Основной фокус расследования аудиторов, насколько можно понять, тем временем сместился с Райта на вклад Ангелоса Керомитиса, который, согласно де Раадту, был архитектором и главным разработчиком стека IPSec в OpenBSD. Правда, есть информация, что Керомитис официально начал работать на NetSec несколько позже. Но при этом, как отмечает де Раадт, именно тогда в кодах OpenBSD появилась концепция небезопасных векторов инициализации, которую, впрочем, затем удалили на последующей стадии разработки.
По свидетельству де Раадта, те несколько багов, что уже выявил нынешний аудит, могли бы иметь последствия в ослаблении безопасности. Однако, по личному мнению лидера проекта, природа этих багов предполагает, что они не были преднамеренными и тем более не обеспечивают тайный ход в криптографию операционной системы. Но можно отметить, что один из этих багов, относящийся к известной специалистам "проблеме CBC-оракула" (предсказуемые векторы инициализации, кратко IV), в IPSEC-стеке уже был выявлен прежде и в свое время залатан Ангелосом Керомитисом. Однако в драйверах устройств, за разработку которых отвечал Джейсон Райт, этот же баг остался проигнорированным. Другая из выявленных ныне дыр также связана с инструкцией в аппаратном драйвере. Кроме того, де Раадт мимоходом упомянул ещё об одной проблеме в подсистеме генерации случайных чисел, однако в подробности на этот счёт пока вдаваться не стал.
Наиболее же серьёзным откровением для всех интересующихся, как считается, стала "новость" о давнем обнаружении условного нехорошего выражения в более старых версиях кода модуля ESP (Encapsulating Security Payload). Эта серьёзная дыра была по-тихому заделана разработчиками ещё в 2002 году, но, что примечательно, без обычного процесса публичного раскрытия уязвимости. Этот баг как таковой не присутствует в современных версиях OpenBSD, однако он оставался неизвестным для пользователей из-за отсутствия публичных рекомендаций по укреплению безопасности.
В своих оценках и выводах по итогам первичного аудита кода и его находкам де Раадт описывает баг CBC IV как "весьма серьёзное происшествие". Он, однако, не склонен считать, будто выявленные к настоящему времени дыры в защите были внесены в код преднамеренно или с целью внедрения бэкдора. В целом же нынешняя позиция Тео де Раадта по данному вопросу сформулирована им следующим образом:
"NETSEC, как компания, была вовлечена в этот специфический "околостоличный" бизнес со взятием подрядов на работы по обеспечению безопасности и анти-безопасности для отдельных ведомств правительства. Я допускаю, что NETSEC действительно привлекали к написанию бэкдоров, как и утверждается. Но даже если они и были написаны, я не верю, что им удалось пробраться в наше дерево. Вполне возможно, что бэкдоры были созданы, но только как собственный продукт NETSEC. Если такие проекты и существовали в NETSEC, мне неизвестно, участвовали ли в них лично или хотя бы знали ли о них Джейсон (Райт), Ангелос (Керомитис) или кто-либо ещё [из тех разработчиков NETSEC, кто занимался созданием OpenBSD]."
Хотя выводы де Раадта, по идее, должны успокоить пользователей ОС OpenBSD и связанных с ней проектов, это, однако, совсем не означает, что всё в данной истории прояснилось. Здесь по-прежнему остается довольно много нестыковок и мутных моментов. Да и вообще можно ли выявить изощрённо внедрённый бэкдор всего за несколько дней проверки кода в столь серьёзной системе - это сам по себе очень большой вопрос.
Примерно об этом же говорит и ещё одно письмо с комментариями от экс-директора NETSEC Грегори Перри, которое он написал для известного сайта "утечек и компромата" Cryptome.org:
"Мне действительно совсем не хотелось, чтобы Тео сделал мое письмо публичным, - это несколько замутило суть вещей в средствах массовой информации.Если бы мне довелось проделать всё это снова, то я, наверное, послал бы анонимную открытку на сайт Wikileaks.
Лично для меня нет абсолютно никакой выгоды от той информации, которую я сообщил Тео. Я сделал это исключительно для того, чтобы подтолкнуть его к перепроверке кода OpenBSD, поскольку для моих обязательств перед ФБР о сохранении молчания истёк срок давности. Находиться же в центре всеобщего внимания, как ныне, - совершенно не мое занятие.
Я лично нанимал на работу и руководил Джейсоном Райтом, а также несколькими другими разработчиками, принимавшими участие в проекте OpenBSD. Я близко знаком с ОС OpenBSD и за прошедшие годы применял её в целом ряде различных коммерческих продуктов. И это я устраивал первоначальное финансирование для создания криптографического аппаратного обеспечения, ускоряющего работу OCF и гигабитных Ethernet-драйверов, покрывая издержки на оборудование и разработку OpenBSD деньгами из бюджета NETSEC (а также из моих собственных личных пожертвований).
Хотя я и не согласен с тем, что сделал с этой историей Тео [де Раадт], я всё равно скажу, что он блестящий и очень уважаемый в компьютерном сообществе человек, и сам он ни в коем случае не согласился бы на преднамеренное ослабление безопасности в его проекте. Тео - это "фашист с железной хваткой", когда дело доходит до архитектуры безопасных систем, их конструкции и разработки. Так что нет никого, лучше него и его команды, чтобы добраться до дна любой подозрительной истории, связанной с контролем над безопасностью OpenBSD и её разнообразных внутренних подсистем с криптографией."
После этого в данном письме подытоживается суть того, почему давняя история с далеко не самой распространённой на рынке операционной системой в действительности очень важна и сегодня:
"Многие, очень многие коммерческие продукты безопасности и встраиваемые системы реального времени в основе своей построены на базе проекта OpenBSD - благодаря либеральному подходу Тео к лицензированию BSD, контрастирующему с другими открытыми ОС, лицензируемыми на [жёстких] условиях GPL.Многие, очень многие коммерческие продукты безопасности и встраиваемые системы напрямую и опосредованно зависят от любого прокола безопасности (будь он преднамеренный или какой-либо ещё) в проекте OpenBSD. Почти каждая операционная система на этой планете использует комплекс программ OpenSSH server suite, который Тео и его команда создавали практически с нулевым вознаграждением со стороны тех создателей множества операционных систем и коммерческих продуктов. Сейчас эти люди используют этот комплекс без каких-либо ссылок на проект OpenBSD.
Принимая во внимание те многие тысячи строк кода, которые имеют стек IPSEC, система OCF и библиотеки OpenSSL, должно пройти несколько месяцев, прежде чем осядет пыль и можно будет аккуратно оценить ущерб от любой из обнаруженных уязвимостей. Пока же прошло лишь порядка сотни часов после того, как аудиторы приступили к перепроверке кода и уже, как известно, смогли обнаружить по крайней мере две невыявленных прежде дыры..."
В заключение остается предположить два наиболее вероятных финала этой поучительной истории. Когда вокруг разворошенных перепроверками кодов OpenBSD окончательно осядет пыль, то либо всё пойдёт дальше так, будто ничего особенного не произошло (самый вероятный исход). Либо всё-таки удастся выявить нечто действительно очень критичное — типа упомянутого бэкдора-невидимки в ядре Linux. Тогда придётся совершенно всерьёз отнестись к рассказам Грегори Перри о кипучей деятельности спецслужб по встраиванию закладок и лазеек для себя практически повсюду. Причем имеет смысл помнить, что для подобных вещей, в отличие от обязательств по неразглашению, сроков давности не существует.