Газета InfoSecurity

Последний номер

Архив номеров

На главную 

   
Число
подписчиков


 Рассылка 'Информационная Безопасность: Проблемы, Методы, Решения'
 Сетевая газета InfoSecurity.ru  

Нужны ли безопасные вычисления?


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

  Следует отметить, что безопасный процессор, который позволяет на уровне железа разделить программы и данные, уже создан - это разработка российских учёных носит название "Эльбрус-2000", который базируется на архитектуре ELBRUS (ExpLicit Basic Resources Utilization Scheduling — «явное планирование использования основных ресурсов»). Этот процессор по своей сути является объектным, то есть в нем на уровне инструкций выделены зоны для данных и для команд, каждая из которых помечена так называемыми тегами. Причём технология позволяет для хранения данных с тегами использовать стандартные модули памяти с коррекцией ошибок. Процессор следит за тем, чтобы не записывать данные в исполнимую область, а также не исполнять напрямую команды из области данных. Хитрость заключается в том, что процессор вполне может исполнять программы для стандартной архитектуры x86 - для этого используется технология двоичной компиляции.

  Команду разработчиков"Эльбрус-2000" несколько лет назад купила компания Intel и ассимилировала в свою инфраструктуру разработки. Возможно, результатом этой деятельности стала технология "бита неисполнимости" - так называемого XD-бита (Execute Disable - аналог NX-бита, разработанного для своих процессоров AMD). Этот механизм запрещает современным процессорам исполнять команды, полученные из специально помеченных областей памяти. Казалось бы таким образом также реализована защита от переполнения буфера - данные не могут превратиться в команды.

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

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

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

  Следует также отметить, что технология "Эльбрус-2000" не является панацеей. Дело в том, что есть вполне легальный способ преобразования данных в команды - это интерпретаторы. Вряд ли процессор, на котором невозможно реализовать PHP, Java и .NET, получит широкое распространение. В то же время при реализации надёжной защиты от переполнения буфера, архитектура "Эльбрус-2000" не гарантирует защиту от PHP-, SQL- и различных байткод-инъекций. Возможно, именно поэтому Intel и не торопится развивать безопасную архитектуру процессоров.

Источник: anti-malware  


      Рейтинг@Mail.ru       Rambler's Top100 Rambler's Top100