#gotofail


Недавнешний гранд-прокол Apple с обеспечением безопасности собственных ОС породил тучу очень неловких вопросов к компании. Важный из их звучит просто: была ли это случайность либо же чье-то вредительство? И самое печальное, что деяния Apple смотрятся очень нехорошо практически при любом варианте ответа на данный вопрос

Практически безупречная закладка?

Когда мир вступил в «Эпоху Эдварда Сноудена», общество компьютерной безопасности оказалось без преувеличения шокировано и подавлено реальными масштабами того, как глубоко скомпрометированы спецслужбами чуть не все распространенные средства защиты инфы. На самом деле дела, оказалось так, что доверять здесь нельзя никому и ничему, а утонченные шпионские закладки либо «бэкдоры» спецслужб могут обнаруживаться в полностью всех компьютерных устройствах, программках и средствах связи.

По другому говоря, сейчас и независящим знатным профессионалам по защите инфы волей-неволей приходится ставить себя на место компетентных правительственных органов — чтобы лучше представлять для себя вероятные модели атак и злоупотреблений. И вот один из таких обширно узнаваемых профессионалов, южноамериканский крипто-гуру Брюс Шнайер, осенью 2013 года определил в этом ключе последующую любопытную идею.

Рассуждая «как шпион» о лучших путях к разработке и реализации программного бэкдора, Шнайер предложил три главные особенности-характеристики для «действительно неплохой закладки»:

Низкие шансы на обнаружение;

Малый уровень комплота, нужный для практической реализации;

Высочайшая степень правдоподобности для отрицания умысла в случае обнаружения.

Об этой собственной концепции Брюс Шнайер сразу вспомнил сейчас, когда миру стало понятно о той критически суровой уязвимости, что найдена в защите операционных систем Apple — мобильной iOS и OSX для десктопов и ноутбуков.

Так как эта дыра — либо даже быстрее дырища, — которую компания Apple латала в последнюю неделю февраля своими новыми релизами программного обеспечения, по компетентному воззрению Шнайера, представляет собой «превосходный пример» конкретно таковой, вправду неплохой закладки. Чтоб это понять, даже людям, совершенно не достаточно смыслящим в программировании, довольно посмотреть на код реализации бэкдора. Ибо то, что порождает колоссальную уязвимость в защите ОС и обрабатываемой ею инфы, представляет собой всего только одну-единственную короткую строку кода...

И если не знать заблаговременно, что конкретно следует находить, то данная уязвимость смотрится очень неказисто. Тут совсем не сложно представить дело так, как будто это вышло по случайной ошибке либо обидной небрежности программера, объединявшего, скажем, несколько различных подпрограмм в одно целое. Ну а не считая того, данный «баг» — это к тому же живой-наглядный пример того, как просто оказалось всего только одному человеку тихо добавить в систему такового рода уязвимость, о которой практически никто ничего не знал более года — хотя скомпрометированными оказались многие и многие миллионы систем по всему миру...

Короче говоря, подводит результат Брюс Шнайер, пока у общества нет ни мельчайшего понятия, было ли это изготовлено целенаправленно либо вышло случаем:

Но если б лично я желал специально устроить нечто схожее [говорит Шнайер], то это смотрится в точности так, как сделал бы это я.

Что за хитрость в коде?

Не без ехидства комментируя сущность произошедшего, один из хакеров-журналистов (Кевин Поулсен из Wired) произнес об этом приблизительно так.

Как и все прочее, что связано с айфонами Apple, эта критичная дыра в криптографии, объявленная для iOS 7 вечерком в пятницу, 21 февраля, тоже оказалась «образцом простоты и элегантности конструкции»: всего только единственный невинный переход goto в одном из модулей кода Apple для процедуры аутентификации по несчастной случайности обходит всю остальную часть критично принципиального процесса безопасности...

Важное отличие конкретно этого «образца элегантности» заключалось в том, что тут компания Apple по сути ничего определенного про сущность дыры не поведала. В максимально коротком комменты к релизу новейшей версии iOS было сказано только то, что в системе найдена критичная уязвимость, из-за которой «атакующая сторона с привилегированным положением в сети может перехватывать либо видоизменять данные в сеансах связи, защищенных протоколами SSL/TLS». Либо — чуток подробнее — подсистеме безопасности «Secure Transport не удавалось подтверждать аутентичность соединения; эта неувязка сейчас исправлена восстановлением недостающих шагов в процедуре подтверждения».

Настолько лаконичное описание очевидно суровой трудности, да еще публикуемое совместно с обновлением системы вечерком в пятницу, когда все обычные люди переключаются с работы на выходные деньки, естественно, очень изумило профессионалов по компьютерной безопасности. И принудило сразу с завышенным вниманием заняться выяснением подробностей о природе выявленного бага. Уже к утру субботы, 22 февраля, картина более либо наименее прояснилась (в мире защиты инфы довольно обученных людей, которые по различиям в кодах различных версий программки способны оперативно узнать сущность внесенных конфигураций). И та картина, которая проступила в итоге анализа, очень спецам не приглянулась...

Если пояснять сущность уязвимости для людей обычных и дальних от тонкостей криптографии, то на самом деле собственной этот баг значит, что, когда вы отправляете электрическую почту, публикуетесь в «Твиттере», используете социальную сеть типа Facebook либо проверяете собственный банковский счет из общей сети вроде Wi-Fi в общественных местах либо чего-то еще подобного, «атакующая сторона» может вклиниться в сеанс не только лишь для перехвата инфы, да и для злостной замены того, что поступает в ваш iPhone либо iPad (либо, напротив, идет от вас).

Если же гласить о природе трудности с техническими деталями, то одним из первых подробный отчет о сущности выявленного бага опубликовал Эдам Лэнгли (Adam Langley), специалист-криптограф компании Гугл. Безусловно выдающейся особенностью выявленной ошибки кода будет то, что понять ее способен фактически хоть какой, кто знаком с основами программирования либо хотя бы в детстве баловался c языком BASIC.

Код определенной процедуры, где найдена фатальная ошибка, смотрится так:



Данная функция вызывается в ситуации, когда iPhone либо iPad подсоединяется к защищенному шифрованием веб-сайту через протокол SSL. Предназначение функции — верификация того, что используемый ключ шифрования подтверждается верно — обеспечен цифровой подписью — от самого оператора данного сайта.

Но направьте внимание на две схожих строчки goto fail, идущие сходу вереницей. 1-ая из их стоит там, где ей и положено. А вот 2-ая — это типо ляп либо случайная ошибка программера. И эта самая 2-ая продублированная строка в корне нарушает все выполнение программки — как будто обходной маневр, отправляя выполнение функции в точку, последующую сразу после критичной проверки аутентификации. По другому говоря, та часть кода, где реально должна происходить проверка подлинности цифровой подписи, из-за этого пустячка оказывается мертвым кодом — куском программки, который вообщем никогда не производится...

Как проявили проверки независящих профессионалов, эта неувязка — стремительно получившая в обществе заглавие #gotofail — вправду исправлена в новейшей версии iOS 7.0.6 и в соответственном апгрейде для предшествующей версии iOS 6, размещенном фактически сходу прямо за обновлением iOS 7. Но эти же целенаправленные проверки, что очень неприятно, здесь же показали аналогичную уязвимость и в защите другой операционной системы — OS X для настольных компов и ноутбуков Apple. При всем этом сама компания на данный счет сначала не произнесла своим юзерам ни слова...

(Как скандальным, безответственным и непрофессиональным следует считать схожее поведение известной компании, объяснять следовало бы раздельно и с определенными примерами. Тут можно отметить только то, что своим «частичным апдейтом» Apple на самом деле сама выдала злодеям массивное орудие против всех собственных компов под управлением OS X, лишенной какой-нибудь защиты от атак через #gotofail.)

Уже в воскресенье, 23 февраля, независящий исследователь Ашкан Золтани (Ashkan Soltani) опубликовал здоровый перечень скомпрометированных приложений OSX. Все эти программки, как он установил, употребляют ту же самую, что и в iOS, подсистему Secure Transport — программную библиотеку, которую разработчики приложений для Apple употребляют для реализации TLS и SSL, стандартных протоколов шифрования коммуникаций в Вебе. По другому говоря, исследователь отыскал свидетельства тому, что тот же самый баг #gotofail распространяется далековато за границы браузера Apple Safari — на огромное количество других различных приложений, обширно применяемых в OS X, включая почту, Twitter, Facetime, iMessage и даже механизм обновления программ Apple.

В ответ на бессчетные запросы обеспокоенных юзеров компания Apple признала, естественно, что и защита OS X также скомпрометирована багом #gotofail. Но никаких понятных разъяснений тому, почему сразу не выпущено обновление и для этой системы, предоставлено не было. Настолько принципиальный для безопасности апгрейд с заплатой для OS X был выпущен компанией только через четыре денька после обновления iOS 7.

Все те юзеры продукции Apple, которые смутно для себя представляют, под управлением какой версии операционной системы работает их устройство, могут сами протестировать собственный аппарат на предмет уязвимости (и необходимость апдейта, ясное дело), зайдя на веб-сайт GotoFail.com. Создатели данного веб-сайта, кстати, совсем не веруют, что #gotofail — это случайная ошибка.

Похоже ли это на закладку АНБ?

Поразительная простота «уязвимости #gotofail» и общее знакомство публики с содержанием компромата от Эдварда Сноудена делают полностью понятными и неверие в то, что идет речь о обидной случайности, и сомнения относительно искренности Apple, и подозрения в адресок Агентства государственной безопасности США.

Так, наблюдательные люди сходу отметили, что конкретно того же типа дыры в безопасности повсевременно помогают АНБ в устройстве атак типа «человек посередине» (man-in-the-middle). К примеру, как понятно из файлов Сноудена, при проведении их операций FLYING PIG, когда АНБ либо их английские коллеги из GCHQ для перехвата сетевых коммуникаций представляются как Гугл либо Яху — используя манипуляции с сертификатами в протоколе шифрования SSL. Приблизительно по таковой же схеме в зараженных шпионскими программками компьютерах под различными версиями ОС Microsoft апдейты и функциональное наращивание бэкдоров спецслужб происходят через штатные средства обновления Windows (хотя формально эта очень критическая процедура считается накрепко защищенной при помощи криптографии и сертификатов).

Более того, в совершенно новых публикациях файлов «от Сноудена» можно отыскать и такие материалы, где с достаточным количеством подробностей рассказывается о том, каким образом спецслужбы при помощи достаточно нехитрых трюков (типа «сладких ловушек», например) могут компрометировать и шантажировать подходящих людей в компаниях, чтобы потом они делали деликатные задания шпионов. Но это все, так сказать, технические аналогии и похожие случаи из жизни.