Читать книгу: «Защита систем. Чему «Звездные войны» учат инженера ПО», страница 6

Шрифт:

Вмешательство в конкретных технологиях

Когда Люк снимает блокиратор с R2-D2, это специфичное для дроидов вмешательство. (Давайте не будем беспокоиться о том, как этот блокиратор взаимодействует с остальными технологиями дроидов.) Несмотря на то что большинство читателей не занимаются производством дроидов, многие из них работают с конкретными технологиями, поэтому стоит изучить, как вмешательство проявляется в устройствах, ИИ/МО и облаке.

Вмешательство на устройствах

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

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

Конечно, сейфы – не единственные умные устройства, и многие из них гораздо более уязвимы для случайных прохожих. Существуют навесные замки с поддержкой Bluetooth, дверные звонки с камерами и Wi-Fi, а также камеры видеонаблюдения, которые предназначены для того, чтобы находиться снаружи и, следовательно, за пределами вашего периметра или в нем. Встраивание средств защиты в эти устройства обходится недешево, а аппаратные ограничения часто сводятся к какой-нибудь специальной головке винта, а иногда и к датчику несанкционированного доступа. Устройства доступны розничным продавцам, установщикам, уборщикам, арендодателям и гостям, в том числе милашкам, которых ваши подростки приводят домой. Вы, как разработчик системы или конечный пользователь, должны быть готовы к тому, что ваше устройство может быть подвержено физическому вмешательству.

Если вам не все равно и вы не нацелены на любительский рынок, где это поощряется, вам следует подумать о выявлении слабых мест в вашей системе путем вмешательства в аппаратное обеспечение и особенно в хранилище (часто расположенное на SD-карте) или в оперативную память. Охлаждение оперативной памяти баллончиком со сжатым воздухом позволяет злоумышленнику отключить ее от питания, подключить к новой системе и прочитать содержимое. Это проще, когда оперативная память не припаяна. Существует также важная повторяющаяся проблема с интерфейсами JTAG. JTAG расшифровывается как Joint Test Action Group и относится к специфическому интерфейсу для отладки и тестирования электроники. Интерфейсы JTAG часто остаются доступными после того, как устройства покидают завод, и это позволяет злоумышленникам получить все виды доступа.

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

Вмешательство в ИИ/МО

Злоумышленники, которые могут повлиять на выбор или хранение обучающих данных, могут делать все что угодно с этой выигрышной позиции. Некоторые системы пытаются обновить свои модели, обучая их в полевых условиях. Эти системы подвергаются атакам. Иногда это становится достоянием общественности, как в случае с ботом Tay AI от Microsoft, который после запуска в X (Twitter) быстро начал извергать расистскую тарабарщину. В других случаях это менее заметно. Microsoft публично заявила о загрузке вредоносных программ, разработанных, по-видимому, чтобы повлиять на системы машинного обучения, которые они используют для улучшения обнаружения [Parikh, 2018]. В работу обучающих моделей можно вмешаться там, где они используются. Когда система обучения децентрализована или федерирована, она может стать уязвимой для атак. Эти федерированные модели обучения могут быть уязвимы либо для ложных входных данных, либо для поддельных сообщений между взаимодействующими объектами.

Вмешательство в облако

Облачные системы, такие как Gmail или Facebook, обладают интересным свойством: они позволяют входить в систему из любого места. Злоумышленники, которым удается пройти аутентификацию для доступа к учетной записи, будут регулярно вмешиваться в элементы управления, включая безопасность и операционный контроль. Например, они добавят в процедуру восстановления учетной записи адрес электронной почты, который контролируют, а в почтовом сервисе добавят правила, из-за которых ответы на их сообщения будут пересылаться и не показываться вам.

В облаке появились новые возможности для несанкционированного доступа. К ним относятся как код, который вы получаете от других, так и код, который вы создаете сами. Код, который вы получаете от других пользователей, может включать общедоступные образы виртуальных машин, контейнеры Docker и другое программное обеспечение, которое вы используете. Кроме того, есть код, который создаете вы. И то и другое объединяется в рамках вашего собственного процесса развертывания приложений. Как общедоступное, так и частное хранилище может быть взломано. Например, когда вы получаете предварительно созданный Amazon Machine Image, насколько вы уверены в том, что люди, которые его создали и сохранили, дают вам то, что вы ожидаете? Наименее вероятным, но наиболее мощным будет злоумышленник, получивший некоторые права администратора у облачного провайдера. Не зацикливайтесь на этом слишком сильно: ваша способность повлиять на это невелика, и поставщик облачных услуг знает, насколько это может навредить его бизнесу.

Механизмы вмешательства

Обсудив вмешательство в хранилище, связь, время и процессы, а также то, как это проявляется в облаке, интернете вещей и ИИ/МО, давайте обратим внимание на некоторые из задействованных механизмов.

Место вмешательства

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

Может показаться странным, что мы говорим о проводных сетях в сегодняшнюю эпоху мобильных телефонов и портативных компьютеров, но провода по-прежнему широко используются в сложных условиях работы, например в центрах обработки данных и в таких учреждениях, как посольства, где риск беспроводного прослушивания (или несанкционированного доступа) достаточно высок. Для этих сетей и для многих устройств интернета вещей физический доступ является важной привилегией, необходимой для несанкционированного доступа. Физический доступ традиционно защищается заборами, стенами, а иногда даже корпусами устройств. Все это часто охраняют сторожа и собаки. (Иногда это сторожевые собаки, например доберман-пинчер, а порой просто домашние питомцы, такие как кокер-спаниель.) Эти средства контроля эффективны в разной степени, а также непредсказуемы. Университеты, кафе, отели, церкви и другие гостеприимные пространства шокирующе доступны, на взгляд параноика, а наши дома открыты во время соседских общений, гаражных распродаж или при сдаче в аренду через Airbnb.

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

Наконец, может быть вмешательство в цепочку поставок. Люди, которые проектируют, производят, собирают или поставляют физические вещи, могут поставлять продукты, которые будут не совсем такими, как вы ожидаете, и большинство разработчиков программного обеспечения и инженеров по безопасности мало что могут с этим сделать. Если вы думаете, что сами сможете что-то с этим сделать, читайте The Huawei and Snowden Questions [Lysne, 2018]; в противном случае двигайтесь дальше. Наша общая неспособность создать безопасное программное обеспечение, даже когда мы этого хотим, означает, что большинству злоумышленников не нужно беспокоиться.

Существует также вмешательство в программное обеспечение. Если разработчик компилятора хочет вставить бэкдор в машинный код, создаваемый компилятором, он может это сделать. Они даже могут написать версию своего компилятора, которая распознает, что он компилирует компилятор, и вставить дополнительный код в выходной компилятор. После этого они могут удалить троянский код. Но заглядывали ли вы когда-нибудь в код GCC? Вы можете спрятать там песчаный краулер, и никто никогда его не увидит. Таким образом, удалять его практически не нужно, есть возможность просто все отрицать. Кен Томпсон говорил об этом в своей тьюринговской лекции «Размышления о том, можно ли полагаться на доверие» [Thompson, 1984].

Инструменты для вмешательства

Механизмы намеренного вмешательства варьируются от общих инструментов до специализированных. Если я вошел в систему и могу писать в файл, я могу просто открыть его в текстовом редакторе. Это работает, даже если файл не является текстом, хотя бывает сложно внести нужные изменения, так как ваш редактор может «поправить» неровности в файле. Это означает, что он может вмешиваться в ваше вмешательство. Какая наглость! Таких проблем можно избежать, используя стандартные клиенты: клиент базы данных для файла базы данных, Word для. docx, emacs для. html или gdb и windbg для процесса. Существуют также специализированные клиенты как для анализа, так и для модификации локальных файлов, некоторые из них довольно изящны, например визуализатор файлов Veles или обфускатор кода. (Что вы говорите! Обфускатор нужен не для того, чтобы изменить файл, а для того, чтобы помешать кому-то понять его? Конечно, это так, и он делает это путем вмешательства в его содержание. Считаете, что эти изменения разрешены? Послушайте, как разработчик ругается во время отладки.) Многие из этих инструментов теперь работают в веб-браузере, что не делает их менее специализированными, но снижает нагрузку на установку и настройку.

Для изменения сетевого подключения обычно требуются специализированные инструменты той или иной формы. Существуют средства, предназначенные для изменения сетевых подключений, которыми вы управляете, а также для изменения сетей злоумышленниками. Вы модифицируете свои собственные сетевые подключения, чтобы получить такие возможности, как запись или простое изменение сложных потоков (например веб-сеансов) с помощью прокси-сервера атаки OWASP Zed Attack Proxy (ZAP). Кто-то может захотеть изменить ваши сетевые подключения, как это происходит в большинстве случаев, когда вы останавливаетесь в отеле, или изменить сеть, отправив команды маршрутизации, чтобы перенаправлять весь трафик через свою систему.

Одним из интересных методов фальсификации является семейство атак типа rowhammer. Если вы думаете об оперативной памяти как о множестве плотно упакованных ячеек, каждая из которых содержит либо ноль, либо единицу, то вы попали в точку, и это очень маленькая точка. По мере увеличения плотности оперативной памяти ток может просачиваться из одной ячейки в соседнюю и фактически приводить к тому, что бит переключается, потому что, как заметил философ инженерии Мартин Гор, все имеет значение в больших количествах. А при больших объемах записи в соседнюю физическую ячейку памяти биты могут быть переключены, то есть подделаны. После того как был анонсирован rowhammer, создатели памяти добавили технику, называемую обновлением целевой строки, для защиты от него [Ducklin, 2021]. Если вы работаете со стандартными компонентами ПК, это, скорее всего, не является проблемой для вас, но, если вы производите оборудование, стоит убедиться, что ваши компоненты защищены от этой и других связанных с ней атак.

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

Защита

Целостность обеспечивается превентивным контролем и контролем обнаружения. Любой из них может работать криптографически или полагаться на что-то с бóльшими полномочиями: ядро безопасности, поставщика облачных услуг или оборудование. Вариант с ядром безопасности работает только тогда, когда весь доступ к файлам осуществляется через него, что обычно означает локальный компьютер или облачный сервис, который является посредником в доступе к его хранилищу.

Криптография

Криптография может предотвратить взлом со стороны вредоносных хранилищ или сетевых злоумышленников. К вредоносному хранилищу относится любое хранилище, которое может контролироваться злоумышленником. Простой пример – USB-накопитель, подключенный к компьютеру злоумышленника. Вы больше не можете доверять операционной системе в том, что она защитит вас. А в сети нет операционной системы для защиты пакетов.

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

Ядро

Ядро – часть операционной системы, которая исполняет весь код пользовательского уровня, – является каноническим примером чего-то, обладающего бóльшими полномочиями. Сегодня более полный список включает в себя не только ядро, но и гипервизор, чип безопасности, корпоративный инструмент управления идентификацией и доступом (Identity and Access Management – IAM) и многое другое. Что бы то ни было, до тех пор, пока оно действительно контролирует весь доступ к вашим данным, оно может обеспечить защиту целостности.

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

Мобильные операционные системы (iOS, Android) обычно защищают приложения от несанкционированного доступа друг к другу во время работы, защищают их от несанкционированного доступа к хранилищу других приложений и ограничивают установку приложений магазином приложений. Они также проверяют подпись магазина приложений перед загрузкой приложения, защищая его от вмешательства на уровне устройства.

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

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

Аппаратное обеспечение не сделано из волшебной пыли безопасности. От памяти с доступом только для чтения до изолированного исполнения, зашифрованной памяти или даже отдельного чипа, аппаратное обеспечение может гарантировать безопасность на все более надежном уровне выполнения, чтобы защитить вас от вмешательства и других угроз. Память с доступом только для чтения может быть жестко прошитым ПЗУ, или она может быть защищена различными способами, начиная от переключателя, который необходимо перекинуть, провода, который должен быть перерезан, или просто оперативной памяти, к которой только специальный чип имеет доступ на запись. Стоит учитывать угрозы для каждого из них, когда вы можете их конкретизировать: например, если вы проектируете подключенное устройство, в котором интегрируется оборудование, программное обеспечение и, возможно, облачный сервис в единый пакет. Специалисты по безопасности часто шарахаются от идеи принятия защиты, в качестве которой не уверены. Такая неопределенность характерна для аппаратного обеспечения. Это сложно и дорого проверить, даже если порт JTAG остается открытым. Разумно полагаться на оборудование, даже в том случае, когда вы не можете точно указать, каким оно будет. Скорее всего, его сложнее атаковать, чем более высокие уровни, на которых вы работаете.

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

Обнаружение

При обнаружении сбоя целостности его можно устранить, выбросив поврежденные куски и получив чистую копию – скажем, повторно загрузив файл или восстановив его из резервной копии. Поврежденные куски редко могут быть восстановлены. Обнаружение также может привести к расследованию причин повреждения и выявит либо аварийные случаи, либо атаки.

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

Бесплатный фрагмент закончился.

Бесплатно
659 ₽

Начислим

+20

Покупайте книги и получайте бонусы в Литрес, Читай-городе и Буквоеде.

Участвовать в бонусной программе
Возрастное ограничение:
12+
Дата выхода на Литрес:
20 мая 2025
Дата перевода:
2025
Дата написания:
2023
Объем:
444 стр. 25 иллюстраций
ISBN:
978-5-04-223633-4
Издатель:
Правообладатель:
Эксмо
Формат скачивания: