Какая функция обеспечивает безопасности в современных цп
Перейти к содержимому

Какая функция обеспечивает безопасности в современных цп

  • автор:

Какая функция обеспечивает безопасности в современных цп

Правильные ответы отмечены знаком +

Назовите подходящий источник безопасной загрузки приложений Android.
+Google Play
iTunes
сайты с бесплатным ПО
магазин приложений Apple
—————-
Какие две функции можно выполнить с помощью кнопки «Домой» на мобильном устройстве iOS? (Выберите два варианта.)
+те же функции, что и с помощью кнопок навигации Android
запуск интерфейса TouchFLO
сброс устройства до заводских настроек по умолчанию
блокирование устройства
+запуск голосового управления
——————-
Назовите два потенциальных преимущества для пользователей от обеспечения доступа с правами «root» и взлома защиты мобильных устройств. (Выберите два варианта.)
Блокирование корневого каталога устройства.
Возможное воздействие на работу сети сотовой связи оператора.
+Возможность тонкой настройки операционной системы для увеличения скорости работы устройства.
+Интерфейс пользователя может быть модифицирован в значительной степени.
В модифицированной ОС могут быть ограничены функции организации изолированной среды.
————-
Какая функция обеспечения безопасности мобильного устройства требует от пользователя определенным образом провести пальцем по экрану для разблокирования устройства?
простой секретный код
скольжение
+шаблон
дистанционное стирание
———————

В чем заключается преимущество использования флэш-памяти для хранения данных на мобильных устройствах?
Флэш-память оснащена двигающейся головкой диска, что позволяет сократить время поиска данных.
+Флэш-память потребляет крайне мало энергии для хранения и извлечения данных.
Флэш-память не реагирует на ЭСР.
Флэш-память обладает высокой устойчивостью к воздействию влаги и холода.
———————
Какие две характеристики сенсорных экранов используются в большинстве мобильных устройств? (Выберите два варианта.)
стеклянный экран, заключенный в конденсатор
+электрическое поле экрана, которое нарушается, когда пользователь касается экрана
+два прозрачных слоя материала, способного проводить электричество
три слоя, ответственные за электропроводность, с маленьким зазором между ними
два цветных слоя материала, способного проводить электричество
——————
Какой компонент может быть заменен пользователем в большинстве устройств?
ЦП
+карта памяти
сенсорный экран
ОЗУ
————-
Какой термин обозначает способность мобильного устройства распознавать выполнение нескольких касаний на экране?
крупное касание
+мультисенсорность
длительное касание
многосенсорность
——————
Какая процедура устранения неисправностей мобильного устройства является правильной?
+При возникновении проблемы с мобильным устройством его владелец должен проанализировать экономическую целесообразность его ремонта.
Проблемы с мобильными устройствами всегда требуют отправки устройства производителю для устранения неисправности.
Дизайн и функциональные возможности мобильных устройств меняются так часто, что всегда выгоднее заменить устройство, чем ремонтировать его.
Каждый раз при зависании мобильного устройства владелец может выполнить его повторную инициализацию, нажав кнопку сброса.
————-
Пользователь нечаянно уронил мобильное устройство в бассейн. Какие меры следует принять?
Высушить телефон с помощью фена.
Вскрыть устройство и заменить поврежденные компоненты.
Если мобильное устройство не включается, выбросить его и купить новое.
+Связаться с производителем для ремонта или замены устройства.
—————-

iPhone не удается включить после того, как его оставили в автомобиле на много часов в жаркий день. Что может сделать пользователь, чтобы решить эту проблему?
+Вернуть телефон производителю для ремонта.
Купить новую кнопку питания и заменить ее.
Поместить телефон в холодильную камеру и дождаться, пока он остынет.
Разобрать телефон и найти повреждение, связанное с перегревом.
—————
После обновления мобильного устройства некоторые приложения больше не работают, а другие работают хорошо. Пользователь может делать звонки и получать электронную почту. Какие два типа проблем могут быть причиной этой ситуации? (Выберите два варианта.)
проблема с монтажной платой
+проблема с памятью
проблема с сенсорным экраном
проблема со службой сотовой связи
+проблема с программным обеспечением
—————-

Какие случай или ситуация не позволят пользователю обновить ОС на устройстве Android?
Не были установлены необходимые исправления.
Не было получено разрешение от производителя.
Авторские права на программное обеспечение не были получены перед установкой.
+Оборудование не соответствует спецификациям.
————
Какие два условия необходимо обеспечить для работы таких средств обеспечения безопасности мобильных устройств, как дистанционная блокировка и удаленное стирание данных? (Выберите два варианта.)
Секретный код должен быть отключен.
+Устройство должно быть подключено к сети.
+Устройство должно быть включено.
Функция организации изолированной среды должна быть включена.
GPS-локатор должен быть включен.
—————
Какие два условия необходимо обеспечить для работы таких средств обеспечения безопасности мобильных устройств, как дистанционная блокировка и удаленное стирание данных? (Выберите два варианта.)
Секретный код должен быть отключен.
+Устройство должно быть подключено к сети.
+Устройство должно быть включено.
Функция организации изолированной среды должна быть включена.
GPS-локатор должен быть включен.
—————
Какие два элемента являются общими для устройств Android и iOS и поддерживают дистанционное резервное копирование? (Выберите два варианта.)
+календарь
сообщения
настройки
+контакты
фотографии
—————-
Какое утверждение о беспроводных подключениях на мобильном устройстве Android является верным?
+Если устройство выходит за пределы диапазона какой-либо сети Wi-Fi, оно может подключиться к сотовой сети передачи данных, если такая функция включена.
ОС Android не поддерживает беспроводную связь с использованием шифрования WPA2.
Если сеть Wi-Fi защищена паролем, эта сеть настраивается на устройстве вручную.
Без широковещательной рассылки имени сети (SSID) устройство не сможет подключиться к сети.
————
———-
Что обозначает термин «режим точки доступа» в контексте мобильных устройств?
подключение мобильного устройства к порту USB компьютера для подзарядки мобильного устройства
подключение мобильного устройства к гарнитуре
подключение мобильного устройства к сети сотовой связи 4G
+подключение мобильного устройства к другому мобильному устройству или компьютеру для совместного использования сетевого подключения
—————
Какое утверждение об отраслевых стандартах сетей сотовой связи является верным?
Из-за применения стандартов сотовой связи звонки абонентам других сетей стали более трудновыполнимыми и дорогостоящими.
Третье поколение цифровых стандартов требует максимальной пропускной способности 1 Гбит/с для мобильных устройств при передвижении с небольшой скоростью, например когда пользователь мобильного телефона идет пешком.
+Сотовые телефоны, в которых используется один стандарт, часто могут использоваться только в определенных географических регионах.
Первое поколение стандартов сотовой связи — это в основном цифровые стандарты.
—————
Какое утверждение о синхронизации мобильного устройства с компьютером является верным?
+Для синхронизации данных на устройстве iOS на компьютере необходимо установить iTunes.
Синхронизация iOS может быть выполнена только через подключение по USB.
Данные на устройствах Android невозможно синхронизировать с компьютером.
Motocast USB можно использовать для синхронизации данных на устройстве iOS.
————-
Инженер настраивает электронную почту на мобильном устройстве. Пользователь хочет сохранить имеющуюся почту на сервере, упорядочить ее с помощью папок и синхронизировать эти папки между мобильным устройством и сервером. Какой протокол электронной почты следует использовать для этих целей?
+IMAP
MIME
POP3
SMTP
———————
Каковы два назначения функции блокирования с помощью секретного кода на мобильных устройствах? (Выберите два варианта.)
+предотвращение кражи личной информации
+перевод устройства в режим энергосбережения
стирание всех личных данных с устройства
восстановление заводских настроек устройства по умолчанию
восстановление и повторная синхронизация устройства
удаленное блокирование устройства в случае его кражи
—————

Пособие для начинающих: Центральный процессор и его характеристики

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

Оглавление

  • Введение
  • Основные характеристики процессоров
  • Технологический процесс
  • Энергопотребление и тепловыделение
  • Архитектура процессоров и кодовые имена
  • Многоуровневый кэш
  • Встроенная графика
  • Режим Turbo
  • Заключение

Введение

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

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

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

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

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

Основные характеристики процессоров

Архитектура x86 впервые была реализована в собственных процессорах компанией Intel в конце 70-ых годов, а в ее основу были положены вычисления со сложным набором команд (CISC). Свое название эта архитектура получила от последних двух цифр, которыми заканчивались кодовые наименования моделей ранних изделий Intel — пользователи со стажем наверняка помнят еще 286-е (80286), 386-е (80386) и 486-е (80486) «персоналки», являвшиеся мечтой любого компьютерщика конца 80-ых, начала 90-ых годов.

На сегодняшний день архитектура x86 была также реализована и в процессорах компаний AMD, VIA, SiS, Cyrix и многих других.

Основными характеристиками процессоров, по которым их принято разделять на современном рынке, являются:

  • фирма производитель
  • серия
  • количество вычислительных ядер
  • тип установочного разъема (сокет)
  • тактовая частота.

Производитель (бренд) . На сегодняшний день все центральные процессоры для настольных компьютеров и ноутбуков разделены на два больших лагеря под марками Intel и AMD, которые вместе покрывают около 92% общего мирового рынка микропроцессоров. Несмотря на то, что из них доля Intelсоставляет примерно 80%, эти две компании уже много лет с переменным успехом конкурируют между собой, пытаясь завлечь покупателей под свои знамена.

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

На сегодняшний день в основе продукции компании Intelлежат пять основных семейств –Pentium (Dual-Core), Celeron (Dual-Core), Core i3, Core i5и Core i7. Первые три нацелены на бюджетные домашние и офисные решения, два последних лежат в основе производительных систем.

cpu_intel_corei7

Процессор Intel Core i7

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

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

Компания AMD, почитателям своей продукции, предлагает процессоры серий Athlon II, Phenom II, A-Series и FX-Series. Путь двух первых семейств подходит к логическому завершению, последние же два только набирают обороты. Кое-где еще можно встретить в продаже самые бюджетные процессоры Sempron, хотя их дни практически сочтены.

cpu_amd_fx

Процессор AMD FX-Series

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

Количество вычислительных ядер . Еще в прошлом десятилетии разделение процессоров по количеству ядер не было вовсе, так как все они были одноядерными. Но времена меняются, и сегодня одноядерные ЦП можно назвать анахронизмом, а на смену им пришли многоядерные собратья. Самыми распространёнными из них являются двух и четырехъядерные чипы. Несколько меньше распространены процессоры с тремя, шестью и восемью вычислительными ядрами.

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

Тип разъема . Любой процессор устанавливается в системную плату, на которой для этого существует специальный разъем (гнездо) или по-другому — сокет (Socket). Процессоры разных производителей, серий и поколений устанавливаются в разные типы разъемов. Сейчас, для настольных ПК, таковых семь – четыре для чипов Intel и три для AMD.

Основным и самым распространенным сокетом для центральных процессоров Intel считается LGA 1155. Самые производительные и продвинутые решения этой компании устанавливаются в разъем LGA 2011. Остальные два типа разъемов – LGA 775 и LGA 1156 доживают свои последние дни, так как выпуск процессоров под такие типы сокета практически прекращен.

Среди изделий AMD, на сегодняшний день самым используемым типом разъема можно назвать Socket AM3. Как правило, в него устанавливаются большинство бюджетных и самых ходовых продуктов компании. Правда эта ситуация в ближайшее время скорее всего измениться, так как все новейшие процессоры и производительные решения имеют разъемы Socket AM3+ и Socket FM1.

Кстати процессоры Intelи AMDможно очень просто отличить по одному характерному признаку, который вы возможно уже заметили, смотря на фотографии. Изделия компании AMD имеют на задней части множество штырьков-контактов, с помощью которых они подключаются к системной плате (вставляются в разъем). Intel же использует принципиально иное решение, так как контактные ножки находятся не на самом процессоре, в внутри разъема материнской платы.

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

Тактовая частота – характеристика определяющая производительность процессора, измеряющаяся в мегагерцах (МГц) или гигагерцах (ГГц) и показывающая то количество операций, которое он может проделать в секунду. Правда, проводить сравнение производительности разных моделей процессоров только по показателю их тактовой частоты в корне неверно.

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

Сводная таблица семейств процессоров для настольных ПК

table_cpu_amd_intel

Технологический процесс (технология производства)

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

plastina_s_cpu

Кремниевая пластина с чипами процессоров Intel

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

kremneevaya_plastina_cpu

Кремниевая пластина с чипами процессоров AMD

Первый процессор Intel с архитектурой x86, до сих пор являющейся основной для всех современных ЦП, был произведен в конце 70-ых годов с помощью техпроцесса равному 3 мкм (микрометра). К началу 2000-ых годов практически все ведущие производители микросхем, включая компании AMD и Intel, освоили 0,13 мкм или 130 нм – технологический процесс. Большинство современных процессоров изготавливаются по 32 нм – техпроцессу, а с середины 2012 года и по 22 нанометровой технологии.

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

Энергопотребление и тепловыделение

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

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

В начале 2000-ых годов тепловыделения некоторых процессоров выросло выше 150 Вт, а для их охлаждения приходилось использовать массивные и шумные вентиляторы. Более того, средняя мощность блоков питания того времени составляла 300 Вт, а это значит что более половины ее должно было уходить на обслуживание «прожорливого» процессора.

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

noctua_nh_d14

Процессоры, работающие на сверхвысоких тактовых частотах, приходится остужать вот такими гигантскими системами охлаждения.

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

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

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

Архитектура процессоров и кодовые имена

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

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

Разработки Intel носят географические названия мест (гор, рек, городов и т.д.), находящихся недалеко от мест размещения ее производственных структур, ответственных за разработку соответствующей архитектуры. Например, первые процессоры Core 2 Duo были построены на архитектуре Conroe (Конрой), которая получила свое название в честь города, расположенного в американском штате Техас.

Компания AMD какой-либо четкой тенденции формирования имен для своих разработок не имеет. От поколения к поколению тематическая направленность может изменяться. Например, новые процессоры компании носят кодовые имена Liano и Trinity.

Многоуровневый кэш

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

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

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

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

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

Поэтому, кэши разных уровней имеют разный размер, при этом кэш первого уровня – самый маленький, но и самый быстрый, а третьего – самый большой, но и самый медленный. Поиск данных в них происходит по принципу от меньшего к большему. То есть процессор сначала пытается найти необходимую ему информацию в кэше L1, затем в L2 и потом в L3 (при его наличии). При отсутствии нужных данных во всех буферах происходит обращение к оперативной памяти.

В целом, эффективность работы кэша, особенно 3-его уровня, зависит от характера обращения программ к памяти и архитектуры процессора. Например, в некоторых приложениях наличие кэша L3 может принести 20%-ый прирост производительности, а в некоторых не сказаться вовсе. Поэтому, на практике вряд ли стоит руководствоваться характеристиками многоуровневого кэша, при выборе процессора для своего компьютера.

Встроенная графика

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

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

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

Когда-то разница по функционалу между интегрированной и дискретной графикой была принципиальной. На сегодняшний же день можно говорить лишь о разной производительности этих решений, так как встроенные видеочипы способны выводить изображения на несколько мониторов в любых доступных разрешениях, выполнять 3D-ускорение и аппаратное кодирование видео. По сути, интегрированные решения по своей производительности и возможностям можно сравнить с младшими моделями видеокарт.

Компания Intel интегрирует в свои процессоры графическое ядро под незатейливым названием IntelHDGraphics собственной разработки. При этом процессоры Core 2, Celeron и старшие модели Core i7 встроенных графических ядер не имеют.

AMD, осуществив слияние в 2006 году с гигантом по производству видеокарт, канадской компанией ATI, встраивает в свои решения видеочипы семейства Radeon HD. Более того, некоторые новые процессоры компании представляют собой объединение процессорных ядер x86 и графических Radeonна одном кристалле. Единый элемент, созданный путем слияния центрального (CPU) и графического (GPU) процессоров получил название APU, Accelerated Processor Unit (ускоренный процессорный элемент). Именно так (APU) теперь и называют процессоры A и E-серий.

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

Режим Turbo

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

Компания Intel в своих процессорах использует собственную технологию интеллектуального разгона под названием Turbo Boost. Используется она в производительных семействах Core i5 и Core i7.

Отслеживая параметры, связанные с нагрузкой на ЦПУ (напряжение и сила тока, температура, мощность), встроенная система управления повышает тактовую частоту ядер в случае, когда максимальный тепловой пакет (TDP) процессора еще не достигнут. При наличии незагруженных ядер они отключаются и освобождают свой потенциал для тех, которые используются приложениями. Чем меньше ядер задействовано в вычислениях, тем выше поднимается тактовая частота чипов, участвующих в вычислениях. Для однопоточных приложений ускорение может составлять 667 МГц.

AMD так же имеет свою технологию динамического разгона наиболее нагруженных ядер и применяет ее только в своих 6 и 8-ядерных чипах, к котором относятся серии Phenom II X6 и FX. Называется она Turbo Core и способна работать только в том случае, если в процессе вычислений количество загруженных ядер составляет меньше половины от их общего числа. То есть в случае 6-ядерных процессоров, число неактивных ядер должно быть не менее трех, а 8-ядерных – четырех. В отличие от Intel Turbo Boost, в этой технологии на прирост частоты не влияет количество свободных ядер и он всегда одинаков. Его величина зависит от модели процессора и колеблется от 300 до 600 МГц.

Заключение

В заключении давайте попробуем применить практически полученные знания с пользой. Например, в одном популярном магазине компьютерной электроники продаются два процессора Intel Core i5 cодинаковой тактовой частотой 2.8 ГГц. Давайте посмотрим на их описания, взятые с сайта магазина, и попробуем разобраться в их отличиях.

cpu_corei5_760cpu_corei5_2300

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

Intel Core i5 760 имеет разъем Socket 1156, а значит относится к устаревшему поколению процессоров. Покупка его будет оправдана только в том случае, если у вас уже стоит в компьютере материнская плата с таким гнездом, и менять ее вы не хотите.

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

Несмотря на то, что у обоих процессоров тепловыделение указано одинаковым (95 Вт), Core i5 2300 в равных условиях будет холоднее своего предшественника, так как мы уже знаем, что более современный технологический процесс обеспечивает меньшее энергопотребление. В свою очередь это увеличивает его разгонный потенциал, что не может не радовать компьютерных энтузиастов.

А теперь давайте рассмотрим пример на базе процессоров AMD. Здесь мы выбрали специально процессоры из двух разных семейств – Athlon II X4 и Phenom II X4. По идее линейка Phenom является более производительной, чем Athlon, но давайте посмотрим на их характеристики и решим, все ли так однозначно.

cpu_amd

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

Первое различие, которое сразу бросается в глаза — процессоры устанавливаются в разные разъемы. Не смотря на то, что оба они (разъемы) на данный момент активно поддерживаются производителями системных плат, из этой пары Socket FM1 выглядит несколько предпочтительнее с точки зрения будущей модернизации, так как туда можно установить новые процессоры (APU) A-серии.

Еще одним плюсом Athlon II X4 651 является более тонкий и современный технологический процесс, по которому он был произведен. Phenom II отвечает наличием Turbo-режима и кэша третьего уровня.

В итоге, ситуация складывается неоднозначная и здесь ключевым фактором может стать розничная цена, которая у процессора из линейки Athlon II на 20-25% меньше, чем у Phenom II. А с учетом более перспективной платформы (Socket FM1) покупка Athlon II X4 651 выглядит более привлекательной.

Конечно, что бы более однозначно говорить о преимуществах тех или иных моделей процессоров, необходимо знать на базе какой архитектуры они изготовлены, а так же их реальную производительность в различных приложениях, измеренную на практике. В следующем материале, мы рассмотрим подробно современные модельные ряды микропроцессоров Intel и AMD для настольных ПК, познакомимся с характеристиками различных семейств CPU, а так же приведем сравнительные результаты их производительности.

Чем опасны процессорные уязвимости. Часть 1: Атаки по побочным каналам

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

Чем опасны процессорные уязвимости. Часть 1: Атаки по побочным каналам

Введение

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

Процессорные ошибки

Центральный процессор компьютера последние лет двадцать привычно воспринимается потребителем как надежный и защищенный от ошибок «черный ящик», ведь он лежит в основе практически каждой операции, производимой на вычислительном устройстве, при этом надежность процессоров достигла очень высокого уровня. Разработка процессоров сопровождается тщательным тестированием и верификацией. Еще до выпуска чипа компания тестирует новую разработку, используя компьютерную симуляцию. Такое решение позволяет не проходить весь цикл разработки и выпуска устройства для обнаружения проблемы, а отследить и устранить недостаток на ранней стадии. Тестовая партия проверяется повторно для выявления ошибок, не найденных ранее. Тестирование на данном этапе позволяет тщательнее проверить функциональность. Тем не менее, в процессоры закрадываются ошибки. Стороннему исследователю очень трудно найти недостаток в процессоре, так как многие возможности и особенности внутреннего строения современных чипов не задокументированы, а процесс обратной инженерии нанометровых архитектур невозможен без дорогостоящего оборудования. Поэтому поиск недостатков основан на использовании доступной документации, а исследование проводится методом «черного ящика». Выявление недостатка в процессоре – явление нечастое и необычное, поэтому факт его обнаружения как правило получает широкую огласку, что сильно усугубляет положение компании-производителя. Яркий пример этого – ошибка Pentium FDIV bug, недостаток в модуле вычислений с плавающей точкой в процессорах Intel Pentium, обнаруженная профессором Линчбургского колледжа Томасом Найсли в октябре 1994 г. Проблема заключалась в появлении ошибок при выполнении операций деления чисел с плавающей точкой, причиной которых являлось отсутствие нескольких вхождений в таблицу поиска, используемую для ускорения вычислений. Этот недостаток, хоть и проявлялся редко и не на всех входных данных, получил широкую огласку и привел к отзыву процессоров, а также большим потерям для Intel в 475 млн долл. Разбор данной истории и ее последствий приведен в статье PVS-Studio.

Наращивание производительности и безопасность в процессорах

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

Кэш-память

Обращение к оперативной памяти – частая и ресурсоемкая операция. Центральный процессор работает на значительно более высокой частоте, потому запрос данных из оперативной памяти без оптимизаций приводил бы к остановке процессора и простаиванию в ожидании завершения загрузки данных. Значит, сокращение простоя процессора при работе с памятью – богатый ресурс для прироста общей производительности. Помимо этого, процессору часто приходится повторять проведенные ранее операции. Сохранение и переиспользование ранее вычисленных величин также позволяет ускорить работу. Для выравнивания разрыва в скорости работы центрального процессора и ОЗУ применяется иерархическая организация памяти, идея которой была предложена еще в 1946 г. Артуром Бёрксом, Германом Голдстайном и Джоном фон Нейманом. Вместо использования исключительно ОЗУ, между ним и вычислительным устройством помещается несколько более быстрых запоминающих устройств, называемых кэшами. Кэши хранят в себе результаты прошлых операций: копии данных (или инструкций), загруженных из оперативной памяти, либо же результаты вычислений. При необходимости получения данных из ОЗУ, ЦП сначала по очереди проверяет все уровни кэш-памяти, один за другим, на наличие необходимых данных и, только если данных там не нашлось, обращается к ОЗУ. Современные процессоры используют три уровня кэш-памяти, каждый из которых расположен непосредственно на чипе. Объем и скорость кэш-памяти стали одними из основных процессорных характеристик. Кэши первого уровня (L1, level 1) находятся на каждом из ядер процессора и подразделяются на: L1d (для данных) и L1i (для инструкций). Время доступа к этому кэшу самое малое, но и информации он вмещает в себя меньше остальных. Кэш второго уровня (L2, level 2) также в большинстве современных процессоров размещается на ядре, но не подразделяется на данные и инструкции. Он больше и медленнее кэша L1. Кэш третьего уровня (L3, level 3 или LLC, last level cache) – общий для всех ядер. Он значительно объемнее предыдущих уровней, но и время доступа к нему больше. Кэш четвертого уровня в современных процессорах обычно не применяется. Кроме этих кэшей есть еще и кэши специального назначения. Среди них – буфер ассоциативной трансляции (Translation lookaside buffer, TLB), служащий для сохранения информации о трансляции виртуальных адресов в физические. Кэш-память успешно сглаживает разрыв в скорости работы ОЗУ и ЦП, избавляет от повторения уже выполненных операций. Но при этом текущая реализация ослабляет изоляцию процессов. Данные процессов в оперативной памяти строго изолированы друг от друга, и за проверку доступа к ним отвечают как операционная система, так и сам процессор. Непривилегированный процесс не может считывать или изменять память другого процесса. Для кэшей же разделение памяти не предусматривалось, ведь программа не может явно проверить содержимое кэша или считать оттуда произвольные данные. Процессор не предоставляет таких возможностей. Поэтому данные различных пользовательских процессов, а также процессов ядра ОС, соседствуют в кэше, и никак друг от друга не отделены. Более того, каждому процессу во время его работы кэш предоставляется целиком, со всеми данными других процессов. Далее будет рассмотрено, как это позволяет злоумышленнику извлекать данные других пользователей и ядра ОС из оперативной памяти.

Внеочередное исполнение

В том или ином виде внеочередное исполнение реализовано во всех современных процессорах, так как позволяет получить наибольший выигрыш в производительности за счет параллелизма на уровне команд. Intel стала использовать внеочередное исполнение в процессорах Pentium Pro в 1995 г. Вместо строгого исполнения инструкций в порядке, представленном в программе, механизм внеочередного исполнения меняет порядок инструкций для минимизации времени простоя процессора. Для переупорядочивания инструкций применяется алгоритм Томасуло, который позволяет избежать конфликтов и нарушения целостности информации. Команды выстраиваются в очередь и исполняются по мере готовности своих операндов, не обязательно следуя порядку в программе. Рассмотрим следующий пример:

ld → r1, 0(r2) → // загрузить r1 из адреса r2
add → r2, r1, r3 → // r2 := r1 + r3
add → r4, r3, r5 → // r4 := r3 + r5

Предположим, что операнды r3 и r5 готовы к использованию, в то время как r1 должен быть загружен из оперативной памяти. При поочередном исполнении инструкций для выполнения первой команды процессор останавливается, ожидая готовности операнда (загрузки из оперативной памяти). Но для выполнения третьей инструкции данные в r1 не требуются, а ее операнды готовы к использованию. При внеочередном исполнении эта команда выполнилась бы первой, в то время пока подготавливается операнд для инструкции загрузки данных из памяти. Заметим, что внеочередное исполнение второй команды невозможно, так как она явно зависит от результатов первой. Переупорядочивание инструкций не должно нарушать хода выполнения программы, а сам факт внеочередного исполнения не должен быть виден извне. Для устранения ложных зависимостей (антизависимостей и зависимостей по выходу) данных, не позволяющих перестроить определенные участки кода, используется переименование регистров, а результаты внеочередного выполнения в итоге упорядочиваются согласно программе. Большой проблемой становятся ситуации обработки исключений, то есть случаи, когда из-за внеочередного выполнения были проведены операции, до которых не должно было дойти управление из-за ошибок в предшествующих инструкциях. Вернемся к примеру и допустим, что операция загрузки из памяти некорректна и приводит к ошибке, например, r2 содержит недопустимый адрес. Тогда третья операция, которая выполняется благодаря внеочередному исполнению, не должна была быть достигнута, поэтому ее результаты должны быть отброшены. Данный пример достаточно безобиден, но если бы третья операция записывала данные в память, то процесс отмены стал бы длительным и затратным. По этой причине используются буферы заполнения, хранящие информацию, которая должна быть записана в память, и адреса, по которым должна осуществляться запись. Такое решение позволяет быстро отменить результаты операций. Механизм внеочередного исполнения не только значительно повышает производительность, но и предоставляет средство извлечения данных из защищенных областей памяти. При внеочередном исполнении запрещенной операции (например, чтения данных ядра) факт нарушения изоляции процессов будет обработан в последнюю очередь, на этапе фиксирования изменений. Несмотря на то, что результат такой операции будет отброшен, исполнение команды все равно может оставить след на микроархитектурном уровне, например, в кэш-памяти. Используя методы, которые мы обсудим далее, эта информации может быть восстановлена.

Спекулятивное исполнение

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

for (i = 0; i < limit; i++)
results[i] = data;

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

Одновременная многопоточность

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

Эксплуатация процессорных уязвимостей

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

Атаки по побочным каналам

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

if (read_secret() == «secret») {
quickly_computed_operation(); // Эта операция осуществляется быстро
} else {
slowly_computed_operation(); // Эта операция осуществляется медленно
}

Предположим, что в коде программы встречается приведенный выше участок. Поскольку одна из ветвей выполняется значительно дольше другой, злоумышленник может, замерив время работы программы, определить, было условие выполнено или нет. Для данного примера определить, что условие выполняется, равносильно полному раскрытию секрета. Если время работы программы сравнительно небольшое, то секрет будет равен «secret». Это пример побочного канала по времени: роль косвенной информации выполняет время работы программы. Перехватывая эту информацию, злоумышленник может восстановить секрет, не обращаясь к нему напрямую. Атаки по побочным каналам — не редкость в современных условиях, и имеют практическое применение. К атакам по побочным каналам оказались уязвимы как программные продукты (например, OpenSSL и Keyczar), так и аппаратные. Как мы увидим далее, современные процессоры не стали исключением.

Типы атак по сторонним каналам

Атаки по побочным каналам типизируются по трем основным характеристикам: контролю над вычислительным процессом, способу доступа к системе и методам, используемым в процессе анализа.

Контроль над вычислительным процессом

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

Способ доступа к системе

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

Методы анализа

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

Виды атак по побочным каналам

Наиболее часто атака по побочным каналам использует всего один такой канал, поэтому атаки удобно разделять по типу используемого канала. Далее мы рассмотрим известные (на момент написания статьи) виды атак.

Атака по времени
  1. Время выполнения операции должно зависеть от секретных данных.
  2. Есть возможность производить ряд замеров, при этом секрет должен оставаться неизменным.
  3. Доступно достаточно точное средство замера времени.

Пример уязвимой к данной атаке программы приведен выше.

Именно эта атака по времени нас будет интересовать больше всего, ведь ее вариация повсеместно используется при эксплуатации процессорных недостатков. Атака по побочным на кэши – эффектный метод восстановления содержимого кэша процессора или же определения зон памяти, затронутых другим процессом. Разновидности атак на кэши (FLUSH+RELOAD, EVICT+RELOAD, PRIME+PROBE и т.д.) концептуально одинаковы, они различаются лишь требованиями и ограничениями. В общем случае атака на кэши проводится следующим образом:

  1. Кэш очищается от данных. Это можно сделать, используя инструкцию процессора, либо просто записав достаточно большой массив данных в память, который вытеснит все содержимое кэша.
  2. Замеряется время доступа к интересующему участку в памяти (заметим, что данные будут считываться из основной памяти, а не из кэша).
  3. Запускается исследуемая операция (или выжидается момент, когда проработает атакуемый процесс).
  4. Вновь замеряется время доступа к интересующему участку.
  5. Если разница во времени доступа достаточно велика, то исследуемая операция использовала данный участок, и потому данные оказались в кэше, что и привело к различию во времени доступа.

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

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

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

Защитившись от атак по времени, вы устраняете побочный канал. Для этого можно:

  • снизить точность замеров времени, что позволит избежать удаленных атак через браузер;
  • зашумить канал, то есть использовать случайные данные в операции, что привнесет случайность во время работы операции;
  • в программах удостоверится, что ветви управления выполняются за примерно одинаковое время, а можно не использовать их вовсе;
  • для защиты от атак на кэши, разделять кэш на зоны, и избегать использования одной и той же области для данных разного уровня конфиденциальности.
Атака на основе сбоев
  • с какой точностью возможно выбрать время и место возникновения ошибки;
  • какая порция данных будет затронута: байт, бит и т.п.;
  • постоянство ошибки; переменная ли ошибка или постоянная;
  • как себя проявляет сбой: изменяется значение бит с 0 на 1, байт меняется случайным образом и т.д.

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

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

Атака анализа энергопотребления

Атака в некотором смысле схожа с атакой по времени. Злоумышленник замеряет энергопотребление устройства и по нему определяет проводимые операции и параметры.

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

Тем не менее, примеров этой атаки на процессоры пока нет, а используется она в основном для атак на аппаратные криптосистемы.

Для защиты от таких атак используется выравнивание энергопотребления, то есть обеспечение примерно одинакового энергопотребления на протяжении проведения операции.

Считывание остаточной информации

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

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

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

Другие виды атак

Существуют и другие виды атак по побочным каналам, рассмотрение которых выходит за рамки данной статьи. Среди них:

  • атаки по электромагнитному излучению (анализируется изменение электромагнитного излучения в ходе работы);
  • акустические атаки (анализируются производимые устройством звуковые волны);
  • атаки по видимому излучению (анализируется видимый свет и его интенсивность);
  • атаки зондированием (измерительное оборудование присоединяется непосредственно к контактам устройства).

Уязвимости процессоров, вызванные наличием стороннего канала

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

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

Ряд атак по побочному каналу через кэш осуществляются так: по изменениям в кэше определяются производимые жертвой действия и, если они определяются секретными данными, эти действия дадут атакующему преставление о секрете.

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

TLBleed

На данный момент известно множество атак на кэши L1, L2 и LLC, и от них были созданы защитные механизмы, например, Intel CAT. Но, как указывалось ранее, существуют кэши специального назначения, в частности, кэш TLB, хранящий результаты трансляции адресов памяти.

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

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

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

NetCAT (CVE-2019-11184)

Данная атака проанализирована специалистами Vrije Universiteit Amsterdam. Уязвимость получила оценку в 4.8 баллов из 10. В основе атаки лежит механизм Intel Data-Direct I/O (DDIO), позволяющий серверным процессорам сократить время обработки входящих пакетов за счет записи данных напрямую в кэш последнего уровня, а не в основную память. Это ускоряет время обработки данных, так как не требует продолжительной загрузки данных процессором. С другой же стороны, это делает кэш доступным для удаленного злоумышленника, причем исполнение кода локально не требуется. Именно это и эксплуатирует NetCAT: обновления в кэше отслеживаются удаленно, что позволяет провести атаку в рамках сети, а не только одного устройства. Такая схема не требует особых знаний о машине жертвы, за исключением модели процессора.

У атаки есть следующие ограничения: во-первых, на атакуемом сервере должен быть включен механизм DDIO; во-вторых, с сервером должно быть установлено соединение RDMA (это механизм удаленного доступа к памяти).

Причина первого ограничения ясна: если механизм DDIO не включен, провести сетевую атаку нельзя. Второе ограничение связано с требованием к точности замеров времени и доступа к удаленной памяти. Для успешной атаки злоумышленник должен хотя бы частично контролировать то, куда будут записаны его данные, и откуда они будут считаны. Механизм RDMA позволяет удаленному устройству напрямую перезаписывать или считывать заранее одобренные и зарегистрированные области памяти сервера. RDMA встречается в суперкомпьютерных комплексах и дата-центрах, что сужает область применения атаки.

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

Атака представляет серьезную опасность, но подвержена изменениям в сети, например, высокой загрузке. На момент написания статьи нет свободно доступной программной реализации данной атаки, поэтому от атакующего требуется знание методов атак на кэши и работы с RDMA.

PlunderVolt (CVE-2019-11157)

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

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

Атака направлена на Intel Software Guard Extensions (SGX), систему, позволяющую создавать защищенные анклавы, то есть области памяти для кода и данных. Данная технология позволяет избежать порчи и чтения данных от злоумышленника с наивысшим уровнем доступа в операционной системе. Память анклава защищена криптографическими инструментами, проводится контроль целостности данных, а чтение данных из защищенной области (даже при наличии привилегии) всегда возвращает константное значение.

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

Plundervolt позволяет восстановить ключи шифрования, используемые анклавом, при помощи атаки Bellcore в случае использования RSA-CRT (подписи и расшифровывания), дифференциального анализа ошибок (differential fault analysis, DFA) при использовании аппаратного шифрования AES, а также позволяет нарушить генерацию новых ключей.

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

Plundervolt – требовательная к ресурсам атака, для ее проведения нужны высокие привилегии и возможность исполнения кода на системе. Кроме того, уровень напряжения для атаки определяется температурой процессора. Тем не менее, это серьезная угроза для анклавных приложений, которая требует мер защиты. Уязвимость получила оценку в 6.7 баллов, что делает ее достаточно опасной.

Очевидная мера предупреждения атаки – ужесточение правил использования интерфейса управления напряжением. Он может быть отключен в целом или же ограничен безопасными значениями частоты и напряжения. Кроме этого, возможно отменять данную настройку при входе в анклав, перепроверять полученные в анклавах значения, а также использовать алгоритмы, стойкие к возникновению ошибок (например, результат RSA-CRT может перепроверяться без проведения операции заново). Для устранения данной уязвимости Intel предоставила обновления микрокода.

Заключение

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

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

Авторы:
Григорий Дороднов, исследователь безопасности, ООО «СолидСофт»,
Денис Гамаюнов, зав. лабораторией интеллектуальных систем кибербезопасности, ВМК МГУ имени М.В. Ломоносова

Киберустойчивость. Часть 1: Самый простой компьютер для взлома

image

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

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

Быть и оставаться киберустойчивым

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

Самый простой компьютер для взлома

Человеческий мозг всегда был одним из самых легких объектов для взлома. Несмотря на то, что некоторые методы атаки эволюционировали со временем, использование социальной инженерии для осуществления большинства атак остается неизменным. Большинство кибератак успешны из-за простых ошибок пользователей или из-за их игнорирования установленных лучших практик. Например, использование слабых паролей или одного и того же пароля для нескольких учетных записей крайне опасно, но, к сожалению, распространено. Когда компания становится жертвой утечки данных, данные учетных записей могут быть проданы в даркнете, и злоумышленники попытаются использовать ту же комбинацию имени пользователя и пароля на других сайтах. Поэтому менеджеры паролей, как сторонние, так и встроенные в браузер, становятся все более популярными. Двухфакторная аутентификация (2FA) также становится все более популярной. Такой метод безопасности требует от пользователя предоставления другой формы идентификации, помимо простого пароля — обычно через проверочный код, отправленный на другое устройство, номер телефона или адрес электронной почты. Методы доступа с нулевым доверием (Zero Trust) — следующий шаг. Здесь перед предоставлением доступа анализируются дополнительные данные о пользователе и его запросе. Такие меры защиты могут помочь обеспечить безопасность паролей, либо храня зашифрованные пароли, либо добавляя дополнительный уровень безопасности через вторичную авторизацию.

Фишинг все еще актуален

Склонность человека к легкому манипулированию также очевидна в постоянном распространении и успехе вредоносных фишинговых электронных писем. Независимо от того, насколько тщательно сотрудники компании прошли обучение по вопросам безопасности, всегда найдется хотя бы один очень любознательный работник, который попадется на мошенников и перейдет по фишинговой ссылке. Вредоносные ссылки ведут на хорошо спроектированный веб-сайт, выдающий себя за другой известный сайт и вынуждающий пользователей предоставить учетные данные или открыть неизвестные вложения, которые могут содержать вредоносное ПО. Фишинговые электронные письма обычно не очень сложны, но социальная инженерия может быть весьма убедительной: до 98% кибератак осуществляются с использованием социальной инженерии. Социальная инженерия — это метод атаки, при котором злоумышленник атакует жертву, используя нестабильность человеческой ошибки посредством социального взаимодействия, выдавая себя за сотрудника доверенной организации. Вот почему пользователям необходим многоуровневый подход к киберзащите, чтобы их системы действительно были безопасными.

Усовершенствованная постоянная угроза (Advanced Persistent Threat, APT)

Тем не менее, существуют некоторые чрезвычайно сложные методы атаки, в основном проводимые APT-группировками. Например, в атаках на программное обеспечение хакеры используют вредоносный код для компрометации легитимного ПО до его распространения. Такие типы атак не легко блокировать и они не новы: есть много примеров, включая CCleaner, ASUS и SolarWinds. Злоумышленники компрометируют крупного доверенного поставщика и использовать его как канал для проникновения в системы целей. Взлом может произойти по-разному, самым сложным является случай, когда злоумышленник полностью компрометирует поставщика ПО и внедряет бэкдор в следующую версию программного обеспечения. В случае успеха заражение может быть очень скрытно, поскольку вредоносное обновление теперь загружается с официального сайта поставщика с официальными примечаниями к выпуску и действующей цифровой подписью. К сожалению, до этого момента пользователь не сможет узнать, что обновление является вредоносным. Даже если жертва установит обновление только на несколько компьютеров для проверки совместимости, это все равно не выявит вредоносное ПО, поскольку такое вредоносное ПО обычно «спит» в течение нескольких недель после установки, прежде чем раскрыть свою полезную нагрузку. Поэтому единственным возможным способом защиты от таких атак является мониторинг поведения каждого приложения в системе в режиме реального времени, даже если считается, что программа легитимна.

За пределами троянов

Атаки через цепочку поставок не ограничиваются внедрением троянов в программное обеспечение. В прошлом году поставщик услуг приложений Okta был взломан группой злоумышленников Lapsus$. Вредоносная группа получила доступ к некоторым панелям администратора, что позволило киберпреступникам сбрасывать пароли и впоследствии обойти строгую аутентификацию. Атака привела к утечке данных некоторых клиентов Okta, среди которых была и Microsoft. Также наблюдается все больше атак, в которых хакеры «живут» за счет инфраструктуры поставщика управляемых услуг (Managed Service Provider, MSP). Такой метод называется (Living off the Land, LotL-атака). С помощью этого метода злоумышленники компрометируют сами программные инструменты, используемые поставщиками услуг для развертывания новых пакетов ПО, развертывания исправлений или мониторинга различных конечных точек. Так, например, в апреле исследователи безопасности предупредил, что киберпреступники стали чаще использовать ПО для удаленного доступа Action1 в целях сохранения постоянства в скомпрометированных сетях и выполнения команд, сценариев и двоичных файлов. Если злоумышленник сможет угадать пароль электронной почты администратора или получить его в результате фишинговой атаки, он сможет сбросить пароль для консоли развертывания программного обеспечения — по крайней мере, если многофакторная аутентификация (Multi-Factor Authentication, MFA) не включена. Получив доступ, киберпреступник может распространять собственное вредоносное ПО тем же способом. В этом случае злоумышленник может не только злоупотребить эффективными способами контроля программного обеспечения для компрометации всех клиентов MSP, но и использовать те же методы для отключения инструментов безопасности и мониторинга или для удаления резервных копий.

Заключение

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *