Защита систем. Чему «Звездные войны» учат инженера ПО — страница 27 из 68

Таким образом, обработка конфиденциальных данных должна возобновиться через установленное время, и тогда вы в безопасности, верно? Не так быстро. Если злоумышленник может запустить код на том же процессоре, что и ваш, например в облачном центре обработки данных, то он может подсчитать доступные ему циклы и таким образом сделать вывод о том, сколько из них вы используете (процессоры, а не виртуальные машины [Sinan, 2015]). Точно так же атаки, использующие уязвимости типа Spectre, используют предсказание ветвлений, чтобы узнать о содержимом различных кэшей.

Механизмы раскрытия информации

Самый простой способ получить информацию – это поискать ее. Информация часто транслируется. Она размещается в «левых» файлообменниках или на веб-сайтах (а затем браузеры сообщают Google об этом захватывающем новом URL-адресе). Вы можете искать «Конфиденциальная информация компании» во многих местах, а не только в Google.

Если информация не транслируется, возможно, вам придется запросить ее, прямо или косвенно. Прямой запрос имеет вид open (file), select * from SSNs или GET/rest/API/customer/fullinfo/. Учитывая сложность настройки правил контроля доступа, это часто срабатывает. К косвенным запросам относятся просьбы к другой программе сделать запрос от вашего имени или использование уязвимости или неправильной конфигурации, позволяющих читать из хранилища, к которому не должно быть доступа.

Разработчики часто занимаются раскрытием информации, храня секреты в исходном коде или двоичных файлах. Исходный код помещается в GitHub; двоичный файл не рассматривается как секрет. Лучше попросить ОС сохранить для вас секрет.

Если информация, которую хочет увидеть злоумышленник, защищена, он может угадать ее и проверить свои догадки. Например, если вы думаете, что мой пароль – darthvader, вы можете попробовать войти в мою учетную запись, используя его. Вы также можете попробовать Darthvader и DarthVader, и, если вы набираете каждый из них, вы можете остановиться и не делать этого. Проще написать код для перестановки этих догадок, и мы называем это грубой силой.

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

Конкретные сценарии раскрытия информации

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

Интернет вещей

Скрытые камеры используют не только чтобы контролировать нянь, – они повсюду. Также в них есть микрофоны, датчики давления и барометры. Эти датчики в вещах намного лучше, чем мы ожидаем. Телефонные камеры могут различать текст на мятых листах с расстояния в десятки футов. Микрофоны улавливают ультразвуковые сигналы в магазинах или телевизионной рекламе. Гироскопы показывают, куда на экране кто-то нажал, тем самым раскрывая пароли (Schmitt, 2020). Данные GPS, полученные с трекеров пробежек, показывают местоположение баз спецназа и беговых дорожек. Датчики делают выводы: что вы печатали, что смотрели, где находились, иногда несмотря на явные настройки предпочтений. (Мне непонятно, почему не считается обманом сбор информации о местоположении, когда приложению сообщили, что ему отказали в доступе к данным о местоположении, и когда FTC или Европейская комиссия по данным будут преследовать в судебном порядке такие дела.) Выводы и необработанные данные передаются туда, куда мы не ожидаем.

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

Навязчивый характер этих систем оказался в центре внимания, когда Examplify блокировал будущим юристам сдачу экзамена на адвоката в 2022 году. Examplify – это программное обеспечение, предлагаемое для предотвращения мошенничества. Оно пытается убедиться, что не запущено на виртуальной машине, и это делает его несовместимым с Windows на новейших процессорах Intel [Roth, 2022].

Для инженера важно понимать влияние программного обеспечения, которое мы создаем, и проектировать его таким образом, чтобы мы могли комфортно жить в мире, который мы создаем. Иногда в устройствах больше датчиков, чем мы думаем. Микрофоны в настоящее время настолько дешевы, что производители будут включать их в потенциальные будущие сценарии использования [Fussell, 2019]. Телефоны Apple оснащены барометрами, начиная с iPhone 6.

Мобильные телефоны

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

Объединение данных о местоположении и перемещениях с данными компаса позволяет маркетологам оценить, кто в толпе с кем разговаривает. Единственный способ ограничить это отслеживание – перевести телефон в режим полета (который может больше не отключать Wi‐Fi).

Эти технологии отслеживания создают все более подробные записи о том, где побывал примерно каждый человек, и эти данные хранятся годами. В кратком обзоре для Верховного суда, в котором мне удалось принять участие, мы описали, как «информация о местонахождении сотовых телефонов становится все более подробной, современной и точной», как она собирается без ведома или согласия людей, как она «раскрывает необычайно подробную картину жизни человека, столь же откровенную, как и содержание его сообщений» [Soltani, 2017]. Я призываю технологов не создавать случайно такие технологии наблюдения. У нас очень слабое представление о том, что они сделают с нашим миром, и очень мало контроля над тем, как хранятся и используются данные.

Облако

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

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

Раскрытие информации внутри облачной платформы

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

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