Category: Векторы Атак

  • Как правильно разделять приложения?

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

    Важно: подразумевается, что устройство работает на операционной системе GrapheneOS, хотя и описанные ниже «манипуляции» работают на подавляющем большинстве современных устройств Android. Тем не менее, если вы собираетесь пользоваться потенциально «зловредным» ПО вроде мессенджера MAX, личная рекомендация автора «Может, вам повезёт?» — использовать именно GrapheneOS.

    Начнём с основ. Приложения из одного и того же профиля (он же пользовательский аккаунт) могут прямо «общаться» между собой — называется это Inter-Process Communication (IPC), и для него требуется только «обоюдное» согласие между сторонами. Это, в том числе, до сих пор вызывает шок у некоторых «экспертов» по IT, которые узнают, что недостаточно лишь заблокировать доступ в интернет для полного «заглушения» программы.

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

    Система профилей, существующая уже не первый год, является единым ответом на все вышеперечисленные «беды». Так как профили изолированы от друг друга, приложения в них не могут «вылезти» за рамки и посмотреть, что же установлено у «соседа». Также, в случае с устройствами Google Pixel, каждый профиль имеет свой слот Weaver, и, соответственно, ключи шифрования в чипе Titan M2.

    Профили, что немаловажно, имеют отдельную конфигурацию, в том числе и VPN — то есть, в одном профиле у вас может быть собственный Outline, во втором — корпоративный, в третьём — какой-нибудь коммерческий. В первую очередь, это крайне полезно для использования «дотошных» приложений.

    Повторяясь, полноценной заменой второго устройства это не является, но предоставляет существенные «гарантии» для большинства задач.

  • Как полностью контролировать свой телефон?

    Интернет-ресурс «Может, вам повезёт?» уже писал о проблеме абсолютного доверия большинства современных устройств к криптографическим ключам их производителей. Это не только превращает сценарий «утечки» приватной части ключа в сущий «кошмар», но и создаёт риск атаки изнутри — «согласованной» или нет. К счастью, «ответ» на эту обширную «беду» есть — но только в устройствах Google Pixel.

    Начнем с основ. На данный момент только криптографические чипы серии Titan M, используемые в телефонах Pixel, поддерживают использование пользовательского ключа Android Verified Boot — то есть, вместо «прожженого» ключа Google для поверки ОС (важно — «прошивка» устройства, т. е. раздел /vendor все ещё проверяется заводским ключом) будет использоваться ваш собственный. Даже если у атакующего окажется приватный ключ Google, сделать он ничего не сможет — ведь система подписана не им.

    Тут может возникнуть вполне очевидный вопрос — «зачем это все, если прошивка устройства все равно проверяется только заводским ключом?». Для ликвидации этого «недуга» у критических компонентов, вроде чипа Titan, есть защита от тех самых «атак изнутри». Заключается она в невозможности загрузить более новую версию «прошивки» без успешной разблокировки основного пользователя системы (он же владелец). Это существенно нейтрализует любые риски от использования заводского ключа для проверки раздела /vendor.

    У подобного «контроля» есть существенные минусы — во первых, вам необходимо каждый раз самостоятельно собирать образ системы (стоит отметить, что в случае с той же GrapheneOS это достаточно просто), во вторых — постоянно его обновлять. Если по «умолчанию» всю работу по сборке вашего ПО делает производитель, то при использовании собственного ключа эта «головная боль» полным грузом ложится на вас.

    Соответственно, из-за этого подобная модель подходит только для самых «тяжелых» ситуаций, когда важно максимально сократить доверие к любым третьим лицам. Тем не менее, если это ваш «случай», то интернет-ресурс «Может, вам повезёт?» действительно рекомендует задуматься об использовании собственных ключей.

  • Где лучше хранить ключи шифрования?

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

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

    Тут стоит сделать отступление и прояснить один важный ньюанс: современные программы для шифрования не используют «секрет» (пароль, ПИН-код) пользователя напрямую — по причине того, что такие «секреты» зачастую секретами вовсе не являются. Для того, чтобы замедлить потециальный перебор пароля, используются алгоритмы вычисления ключа — проще говоря, они «раздувают» предоставленный им «секрет», делая его вычисление долгим и затратным.

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

    Для решения всех вышеперечисленных проблем были придуманы криптографические чипы, некоторые из которых уже вам знакомы из серии публикаций о цифровой криминалистике — Titan M2 и Apple SEP. Кроме защиты от различных физических атак, вроде Fault Injection и уже упомянутого TEMPEST, для получения ключа атакующему надо проводить каждую попытку через сам чип — то есть, каждая попытка будет занимать ровно предусмотренное время, без «жульничества». Также, это позволяет прогрессивно замедлять попытки, т. е. с какого-то момента атакующему необходимо будет ждать 12 часов и более для каждой последующей пробы.

    Проблема данных чипов в том, что их можно заставить выдать ключи — о чем уже был материал. Даже при этом минусе, в большинстве своём они безопаснее своих программных «аналогов».

    Возвращаясь к заданному вопросу, большинство современных зашифрованных контейнеров ломаются именно через слабые ключи — ввиду чего их хранению необходимо уделять соразмерное количество внимания. Интернет-ресурс «Может, вам повезёт?» рекомендует хранить чувствительные данные только на устройствах, диск которых зашифрован с помощью криптографического чипа.

    Самые примечательные — мобильные устройства Google Pixel (при условии использования GrapheneOS) и, с определённым количеством оговорок, техника Apple последних поколений.

  • Как можно обойти шифрование туннеля VPN?

    Интернет-ресурс «Может, вам повезёт?» уже неоднократно говорил о преимуществах использования туннелей VPN — от пресловутого «обхода блокировок» до защиты от перехвата обмена ключей государственными «фильтрами». Тем не менее, абсолютное большинство «решений» VPN имеют один жирный «минус» — и, что самое главное, не всегда явно заметный.

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

    VPN, как и многие другие технологии подобного толка, исключением из «правил» не являются. Отправляемый через зашифрованный туннель интернет-трафик имеет все тот же «набор» метаданных, который можно анализировать точно также, как и любой другой зашифрованный трафик.

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

    Процентаж точности такого анализа равняется приблизительно 70%, что позволяет получить более чем приемлемое представление о посещаемых через криптографически «непробиваемый» туннель ресурсах.

    Противодействовать подобному анализу можно путём изменения тех самых характеристик, на которые опирается машинное обучение — искусственно увеличивать размер пакетов, проводить манипуляции с интервалами их отправки, и тому подобное. Тем не менее, подобные «меры противодействия» отсутствуют в подавляющем большинстве решений, — с единственным исключением для DAITA, которое разрабатывает и активно применяет коммерческий VPN-провайдер Mullvad.

  • Помогают ли антивирусные программы?

    Интернет-ресурс «Может, вам повезет?» уже разбирал одну из популярных «панацей» в аппаратной безопасности традиционных компьютеров   Secure Boot. Переходя к программной безопасности, нельзя оставить без внимания очередной «ответ» на семь «бед», но уже на уровне ПО антивирусы.

    Начнем с основ. Антивирусы, как класс ПО, возникли из-за популярности Microsoft Windows, и соответственно, проприетарного (закрытого) ядра системы NT. Как и в случае с, например, таким же проприетарным ядром Apple XNU, это создает «тепличные» условия для процветания множества критических уязвимостей, которые могут оставаться незамеченными десятилетиями. Стоит отметить, что не одно ядро NT является причиной существования «орды» вирусов под Windows  значительный вклад также был внесен «дремучей» моделью безопасности ОС, которую Microsoft начал править только в Windows 10.

    Из-за этого, например, под GNU/Linux существует кратно меньше как и антивирусов, так и вирусов  код системы полностью открыт, ввиду чего уязвимости закрываются быстрее. Кроме этого, сама архитектурная модель Unix (к коей принадлежит Linux) делает заражение значительно сложнее, особенно при «образованном» пользователе.

    Говоря об антивирусах под Windows, в современном мире они стали наносить больше вреда, чем пользы  действительно серьёзные угрозы (например, шпионское ПО) они поймать не в состоянии (у подобных программ нет четкого «отпечатка», на который в большинстве своем опираются антивирусные программы, а эвристический анализ заметить их не способен), но при этом работают с максимальными системными правами практически все антивирусы используют модули ядра, т. е. работают в «сердце» системы.

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

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

    В США, например, существует акт PATRIOT, который позволяет принуждать разработчиков ПО создавать «черные ходы» через «письма национальной безопасности». В России существует схожий механизм реестр ОРИ, хоть он и уступает по «популярности» неформальному давлению, которое применяется более охотно.

    Отвечая на поставленный в начале вопрос нет, не помогают. Количество вреда от них будет только нарастать создатели зловредного ПО давно «в курсе» слабых мест подобной «защиты».

  • Как защититься от атак на радио-чипы?

    Интернет-ресурс «Может, вам повезет?» уже не раз подробно расписывал методы, которыми атакуют разного порядка радио (см. материал про сотовые модемы и медицинские импланты), но не говорил о методах защиты от них. Стоит оговориться, что «защита» в данном случае является не более чем снижением урона.

    Ввиду закрытого характера современных процессоров (к коим и относятся радио-чипы), практически не представляется возможным каким-либо образом наблюдать за их «жизнедеятельностью», и, соответственно, выявлять аномалии в процессе этой самой «жизнедеятельности». Этим, например, пользуются спецслужбы при атаках на сотовые модемы; ввиду того, что сам оператор мобильной связи используется как «прокси», у конечной «цели» подобных «манипуляций» не остается способов обнаружить заражение.

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

    На практике это означает что, даже если любое из ваших радио было заражено, «исправить» все можно простой перезагрузкой. Конечно, подразумевается что Verified Boot в вашем устройстве исполнен правильно – сейчас таким могут «похвастаться» только телефоны Google Pixel с установленной GrapheneOS и, в некоторой мере, Apple iPhone.

  • Защищает ли от чего-либо Secure Boot?

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

    Начнём с основ. Secure Boot проверяет криптографическую подлинность файлов загрузчика и образа ядра при каждой загрузке — по «задумке», это должно защищать операционную систему от подмены критических файлов. Имя такой атаке — Evil Maid (от англ. — корыстная горничная), и она является наиболее простой из класса физических атак.

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

    Это особенно актуально при отсутствии шифрования диска; атакующий может заменить системные бинарные файлы (например, SU или systemd в Linux/*nix), и добиться все того же полного заражения системы не прикасаясь к образу ядра, который «обороняет» Secure Boot.

    Даже если диск зашифрован, список разрешённых «ключей» исчисляется тысячами — что, разумеется, позволяет полностью обойти Secure Boot просто подписав, например, заражённое ядро «украденным» у одной из множества компаний ключом.

    Правильное исполнение Secure Boot — Verified Boot, самыми популярными «носителями» которого являются компьютеры Macintosh на базе Apple Silicon, устройства iOS и телефоны Google Pixel. Принцип работы Verified Boot заключается в проверке полного образа системы — вместе со всеми файлами — а также драйверов и прочей «переферии».

    За пример мы возьмём именно Google Pixel. В них за Android Verified Boot отвечает криптографический чип Titan M/M2, который полностью проверяет все файлы загрузчика и «прошивки» (раздел /vendor) с помощью ключа Google, после чего также проверяет все файлы ОС Android, вплоть до системных приложений, используя либо ключ Google, либо же пользовательский.

    Это позволяет устранить как и прямую подмену системных файлов, так и их заражение через какую-либо уязвимость. На практике это обеспечивает телефонам Google Pixel практически полную защиту от долгосрочного заражения — после каждой перезагрузки атакующему необходимо начинать с начала.

    Отвечая на поставленный вопрос, — Secure Boot, конечно, может вас защитить, но только в исключительных случаях. Любой более-менее компетентный «специалист» с легкостью пройдет мимо него.

  • Зловредные сертификаты

    Завершая цикл публикаций об атаках на интернет-трафик, стоит также рассказать о несколько более простом, но гораздо более популярном методе перехватить соединение TLS (HTTPS) — зловредный корневой сертификат.

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

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

    Подобные атаки особо любят реализовывать государственные доверительные центры; хорошим примером послужит Казахстан, который сначала объявил необходимость устанавливать государственный корневой сертификат «QazNet», а потом выпустил ложные сертификаты для популярных сервисов вроде Google, YouTube, и прочих.

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

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

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

    В заключение ресурс «Может, вам повезёт?» рекомендует отказаться от использования любых государственных сертификатов, в том числе и российских. Вне зависимости от мифических «санкций», всегда существовали независимые центры доверия, которыми, кстати, сейчас тот же «Сбер» и пользуется.

  • Могут ли интернет-провайдеры осуществлять «перехват» сетевых соединений?

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

    Так как шифрование HTTPS (TLS) не позволяет любым «третьим сторонам» просовывать свой «нос» в содержание трафика, применять подобные законы на «практике» крайне сложно.

    Для «переноса» подобных инициатив из мира «сферического коня в ваккуме» необходимо «подорвать» данный «слой». Наиболее уязвимая часть соединения HTTPS — обмен ключей, а не данные, передаваемые после него. Именно с помощью «перехвата» обмена ключей можно различные «органы» обеспечивают для своих «носов» необходимый доступ.

    С появлением устройств глубокой фильтрации трафика (DPI) данная «задача» стала масштабируемой. Кроме возможности заблокировать адреса какого-либо VPN-провайдера или сайт с пресловутым «опасным контентом», данные «коробки» также могут быть использованы для «перехвата», вмешательства, и прочих атак на интернет-трафик.

    В случае с государственными «фильтрами», их можно легко «обратить» во враждебную «сторону», которая, в отличии от гражданской «коробки», имеет привилегированную позицию. Так как «начинка» подобных устройств часто носит определённый уровень секретности, никто не может сказать, когда этот «фильтр» блокирует сайт с условной порнографией, а когда перехватывает обмен ключей дипломатических устройств.

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

  • Как достать ключи шифрования из компьютера, не прикасаясь к ОС?

    Говоря об «обходных путях», для классических компьютеров существует великое множество способов «вытащить» ключи шифрования даже не прикасаясь к ОС. Вот некоторые из них:

    — TEMPEST

    TEMPEST, оно же наблюдение за электромагнитными утечками было придумано еще во второй мировой, но массовое «применение» получило только в 80-х годах, когда им пользовалось ЦРУ для «скатывания» картинки с мониторов CRT. Каждая подобная «технология» неуклонно девальвируется, и сейчас цена «вопроса» исчисляется сотнями долларов.

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

    — Cold Boot

    Если ваша ОС не перезаписывает данные в оперативной памяти при выключении системы, то существует крошечное «окно», когда содержание вашей ОЗУ можно «достать». В большинстве случаев — не более трех минут при комнатной температуре.

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

    — Акустический захват нажатий клавиш

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

    Механические клавиатуры подвержены этому больше всего, ножничные — меньше всего. Защититься от этого крайне сложно, поэтому я рекомендую поменьше печатать «секреты».