Владислав Кабак | Omegicus CIO

новая Nebka!

Классная переделка туфлей


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

300 не надо, хватит и одного


В прошлом году соцсети по всему миру обошло фото российского пулеметчика, бесстрашно вставшего в одиночку
читать далее »

10 фильмов этого сезона - не пропусти!


«Планетарий» «Planetarium» Дата: 1 декабря 2016 Жанр: фэнтези, триллер, драма Это история двух сестер, обладающих сверхъестественными способностями общения с
читать далее »

В Испании обнаружена потерянная могила Сервантеса

Могила писателя была найдена в центре Мадрида, в склепе монастыря Ордена босых тринитариев. Хотя
читать далее »

Завершен аудит кода TrueCrypt

Сайт Open Crypto Audit Project сообщает о завершении второй стадии аудита кода популярного открытого средства
читать далее »

An Anti-Reverse Engineering Guide


 Table of Contents Breakpoints Int 3 Memory Hardware Timing Attacks RDTSC Win32 Timing APIs Windows Internals ProcessDebugFlags Debug Object Handle Thread Hiding BlockInput OutputDebugString Process Exploitation Open Process Parent Processes Self-Debugging UnhandledExceptionFilter NtQueryObject Anti-Dumping Nanomites Stolen Code
читать далее »

Стратегия выживания


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

Формат исполняемых файлов PortableExecutables (PE)

Формат исполняемых файлов PortableExecutables (PE). ФОРМАТ ИСПОЛНЯЕМЫХ ФАЙЛОВ PortableExecutables (PE) ФОРМАТ ИСПОЛНЯЕМЫХ ФАЙЛОВ PortableExecutables (PE)
читать далее »

Василий Николаевич Кочетков (1785–1892) – «солдат трех императоров»


Он прожил 107 лет, из них более 60 лет провел на действительной военной службе. Выходит,
читать далее »

Историки описали гибель короля Ричарда III


Жизнь и смерть Ричарда III всегда были окутаны тайной. О британском короле XV века писал Шекспир,
читать далее »

Tortilla — весь TCP и DNS трафик из виртуальной машины через TOR

Пошаговое руководство по направлению всего TCP и DNS трафика из виртуальной
читать далее »

Эпическое письмо Билла Гейтса о юзабилити Windows

Вас раздражает юзабилити Windows XP? Это вы ещё не слышали Билла Гейтса. В опубликованной внутренней
читать далее »

Иммунологи объяснили пользу аллергии

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

Кишечные бактерии борются с аллергией

По статистике, случаи пищевой аллергии у детей с 1997 года стали встречаться примерно на 50%
читать далее »

Overclock мозга или Внутренняя виртуализация сознания


Я попробую рассказать еще об одной возможности использовать свой мозг чуточку эффективнее. Одна из слабо
читать далее »

Под Снежным командир с позывным «Черный» со своими бойцами захватили танк и почти два десятка автоматов

"Под Снежным командир с позывным «Черный» со своими бойцами захватили танк и почти два десятка
читать далее »

Факты о Российской империи, которых вы не знали

1. До революции Россия (Российская империя) была одной из самых непьющих стран в Европе. Россия
читать далее »

Самые невероятные факты

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

Интересные факты об Одри Хёпберн


4 мая 1929 года родилась британская и американская актриса, фотомодель и ярчайшая звезда кинематографа двадцатого
читать далее »

14 интересных фактов о снах

1. Все люди видят сны. Даже если вам кажется, что вы их не видите. Человек
читать далее »

Что с вами произойдёт, если вы решите не разговаривать очень долгое время

Представьте, что вы проснулись утром и решили, что прекратите говорить лет на 20 — с
читать далее »

Факты о евреях — о которых не принято говорить

Талмуд – есть действительная сущность еврейского вероучения. Sanhedrin 59a: “Гой, сунувший нос в Закон (Талмуд) виновен
читать далее »

Искусство светской беседы

Если вы современный человек, то вам понятно основное положение: идеальный разговор — это обмен мыслями,
читать далее »

98 самых интересных фактов о человеческом теле

Мозг Мозг — это наиболее сложный и наименее изученный человеческий орган. Мы многого о нем не
читать далее »

Бой у высоты 776


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

Мнение одного из сотрудников Blackwater о боеспособности разных стран

1. Африканские племена.С ними воевать даже не интересно. Стреляют беспорядочно, о прицельной стрельбе не знают.Часто
читать далее »

Факты о фильмах Брат и Брат-2


1. Идея съёмок продолжения культового отечественного фильма «Брат» пришла после того, как исполнителю главной роли
читать далее »

25 фактов, которые вам лучше не знать


1. Римляне использовали измельченный мозг мышей в качестве зубной пасты. 2. Когда малыши эскимосов болеют простудой,
читать далее »

10 потрясающих открытий в физике

Изучать физику значит изучать Вселенную. Точнее, как работает Вселенная. Вне всяких сомнений, физика — самая
читать далее »

Леонид Рогозов. Сам себе хирург


Судно «Обь» с шестой советской антарктической экспедицией на борту вышло в плавание 5 ноября 1960
читать далее »

Воспитание воинов на Руси


На Руси все мужчины считались воинами, эта традиция шла ещё со времён эпохи так называемой
читать далее »

Правление Ивана Грозного


  – введён суд присяжных; – бесплатное начальное образование (церковные школы); – медицинский карантин на границах; – впервые появилась
читать далее »

Процессор Baikal - российский ответ Intel и AMD

В ответ на санкции Америки, Минпромторг России решил найти замену микрочипам Intel и AMD и
читать далее »

Ситуация с Андреем Кураевым

Вот, собственно, цитата из его дневника: Прошло полтора месяца со времени объявления о моем увольнении из
читать далее »

Почему курсор мыши наклонён на 45°?


Посетитель сайта вопросов-ответов StackExchange задал на первый взгляд глупый вопрос: а почему
читать далее »

Оона Ряйсянен определила GPS-координаты беспилотника по звуку с Youtube


Финский инженер и хакер Оона Ряйсянен (Oona Räisänen), которая увлекается обработкой звука, случайно
читать далее »

IPv6 теория и практика: введение в IPv6

Адреса IPv6 Адрес протокола IPv6 состоит из 128 бит, то есть, он в 4 раза длиннее
читать далее »

Твердотопливные двигатели


Черный (дымный) порох изобрели китайцы в девятом веке. И уже в одиннадцатом веке появляются документальные
читать далее »

Долгая жизнь королёвской «семёрки»: успешные испытания «Союз-2.1в»


У ракеты «Р-7» оказалась удивительно долгая жизнь. Через пятьдесят шесть
читать далее »

Кто, когда и как собирается лететь на Марс


Сейчас так часто говорят про полеты к Марсу, что люди, подчас, путают
читать далее »

Миллиард пикселей для миллиарда звезд


На следующей неделе в космос отправится уникальный телескоп, который сможет «пересчитать» около
читать далее »

Один прогноз, данный 15 лет назад

Вспомнить данный прогноз натолкнул меня пост «15 вещей сегодняшнего дня, которые не
читать далее »

Размещение заказов у китайских поставщиков


Основано на реальных событиях: «Mini-Desktop своими руками» После публикации моей предыдущей
читать далее »

Симулируем чайник в Wind River Simics


Примечание переводчика: представляю вниманию
читать далее »

Стал известен пароль по умолчанию для файлов XLS

Специалисты антивирусной компании Sophos потратили много времени на изучение файлов RTF, XLS и DOC, которые
читать далее »

Американские врачи излечили девочку от рака, заразив её ВИЧ

Семилетняя Эмили Уайтхэд из Нью-Джерси в течение двух лет сражалась с лимфобластным лейкозом. Доктора назначали
читать далее »

Учёные нашли стволовые клетки раковых опухолей

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

Curiosity нашёл органику на Марсе

Директор лаборатории JPL NASA Чарльз Элачи (Charles Elachi) сегодня упомянул о таинственной находке Curiosity на Марсе. Это
читать далее »

Ахиллесова пята рака

Управление США по надзору за качеством пищевых продуктов включило в список своих приоритетов новый препарат
читать далее »

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

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

Учёные нашли признаки существования фермионов Майораны

Эти странные частицы, являющиеся своими собственными античастицами, были предсказаны в 1937 году, но до сих пор
читать далее »

Биологи выявили у воронов память о друзьях и врагах

Чёрные птахи помнят конкретных сородичей, по меньшей мере, в течение трёх лет. При этом они запоминают
читать далее »

Российские учёные проникли в озеро Восток


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

Российские биологи вырастили кусты из 30-тысячелетних семян


Сохранённые в вечной мерзлоте на берегах реки Колыма, эти семена некогда были припасены сусликами в своих норах,
читать далее »

Формы титулования в Российской империи

Титулирование — в сословно-феодальном обществе форма обращения к лицам дворянского происхождения, духовным и государственным служащим для
читать далее »

Американцы построят спутник-шпион нового типа


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

Неврологи продемонстрировали обучение в стиле «Матрицы»


До впитывания навыков пилотирования вертолёта за пять секунд ещё очень далеко, но учёные сделали крохотный
читать далее »

Учёные впервые нашли прижизненный чертёж Вавилонской башни


Древнейшее в мире изображение Вавилонской башни, вернее — реального прототипа библейского сооружения, обнаружено на одной из стел
читать далее »

Открыт ремонт нервов при помощи молодой крови

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

У шимпанзе найден аналог человеческого обмана чувств

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

Открыто разрушение Луны солнечными бурями


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

Марсоход нашёл чистую гипсовую жилу

Американский ровер Opportunity наткнулся на почти чистую и высококонцентрированную «вену» из гипса. Некогда она образовалась в скальной
читать далее »

Опыт с побегом подтвердил альтруизм крыс

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

Зонд Dawn приблизился к Весте на минимальное расстояние


Космический посланник снизил свою орбиту до высоты всего в 210 километров. С этой позиции зонд будет изучать
читать далее »

У близнеца Солнца найдена потенциально обитаемая планета


Новый мир земного типа Kepler-22b расположен в «зоне Златовласки» у звезды, почти идентичной Солнцу. Последнее – важное
читать далее »

Быстрый старт ЛИНТЕР (Windows)

2005 г Быстрый старт ЛИНТЕР (Windows) Научно-производственное предприятие РЕЛЭКС, www.relex.ru Введение Что такое ЛИНТЕР Основные характеристики СУБД ЛИНТЕР Типы данных Параметры БД Установка
читать далее »

Реализация языка SQL в СУБД MySQL

Реализация языка SQL в СУБД MySQL Студент нанимается на лето подработать в университете, его спрашивают: - Языком владеешь? -
читать далее »

Найдены следы потерянного гиганта Солнечной системы


Планета размером с Уран присутствовала в Солнечной системе, когда последней было всего 600 миллионов лет от роду.
читать далее »

Тайна пропажи антиматерии

Физики обнаружили новое проявление нарушения CP-инвариантности в процессе распада D-мезонов. Речь идёт о различиях в картинах распада частицы и соответствующей
читать далее »

Инженеры создали проекционное лицо для андроида


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

Разработан новый метод сохранения равновесия роботов


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

Манера держаться

В манере поведения достаточно велика роль привычек. Они могут как подчеркивать достоинства человека, так и
читать далее »

Подарки

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

Улица

В ОБЩЕСТВЕННЫХ МЕСТАХ Главное правило поведения в общественных местах - не забывать, что если бы каждый
читать далее »

Телефонный разговор

Очень важна культура разговора по телефону, особенно служебному. Он должен быть коротким: нужно считаться с
читать далее »

Приветствия

Если в комнате находятся несколько человек, здороваются сначала с хозяйкой дома, затем - с другими
читать далее »

Внешний вид и привычки

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

В общественных местах и на улице

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

На визитах и в гостях

Если наносишь визит, не входи в гостиную или в кабинет в пальто. Не входи без стука. Не
читать далее »

За столом

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

Правила ведения беседы

Специалисты по правилам ведения речи обращают особое внимание на следование ряду обязательных правил для участников
читать далее »

Проведение приема

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

Визитные карточки и их применение

Визитные карточки широко применяются в дипломатической практике и деловом общении. Как бы заочно "представляя" своего
читать далее »

Этикет деловой переписки

Родиной этикета составления делового письма, прочно вошедшего в современное международное общение, принято считать Англию. Сложившись
читать далее »

Израильтяне удивили публику квантовой левитацией


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

Британцы мумифицировали таксиста по египетскому рецепту


Те или иные способы бальзамирования тел умерших человечество практиковало и после эпохи древнего Египта. Но авторы
читать далее »

В новый виртуальный экран можно запустить руки

Специалисты компании Microsoft Research создали интерактивную систему обогащённой реальности, в которой пользователь может своими руками напрямую
читать далее »

Ракета «Союз» впервые взлетела из Южной Америки


21 октября в 14:30 по московскому времени с космодрома Куру во Французской Гвиане стартовала ракета-носитель
читать далее »

Ubuntu 11.10 - обновление, впечатление

13-го сего месяца вышла очередная версия ОС Убунту, из выжносистемного - ядро версии 3. Из пользовательского:
читать далее »

Геном чумной палочки рассказал об эволюции страшной болезни


Между 1347 и 1351 годами в Европе бушевала «Чёрная смерть» — чума, унёсшая жизни 30 миллионов человек, которую
читать далее »

Парализованный научился управлять роборукой силой мысли


30-летний Тим Хеммес (Tim Hemmes) из США спустя семь лет после мотоциклетной аварии, из-за которой
читать далее »

Корейцы построили робота-собаку


Южнокорейская компания SimLab продемонстрировала своего первого робота – четвероногую машину SQ1, которая ходит, качается и,
читать далее »

Открыт самый большой в мире вирус

Найденный у берегов Чили Megavirus chilensis обладает самым длинным вирусным геномом из всех ранее секвенированых.
читать далее »

Математическая модель работы автофокуса в глазу человека


Учёные до сих пор точно не знают, как функционирует автофокус в глазу человека
читать далее »

TOP10 ошибок администраторов Server 2003

Автор: (c)Крис Касперски ака мыщъх О, Windows, сын ошибок трудных! народное Легкость установки и управления MS Server'ом создает обманчивую иллюзию,
читать далее »

MSR-регистры на службе хакера

Автор: (c)Крис Касперски ака мыщъх Популярные дебагеры (Soft-Ice, Syser, Olly) используют базовые отладочные возможности, появившиеся еще в 80386
читать далее »

Реклама в сумеречной зоне подсознания

Автор: (c)Крис Касперски ака мыщъх Реклама действует, это факт! Но вот - как именно она действует, не
читать далее »

Восстановление MS Server 2003 после тяжелых ранений

Автор: (c)Крис Касперски ака мыщъх MS Server 2003 - достаточно надежная и неприхотливая система, средняя наработка на
читать далее »

Установка MS Server 2003 - секреты и советы

Автор: (c)Крис Касперски ака мыщъх MS Server 2003 - абсолютный лидер среди рынка SOHO-серверов, используемых в качестве файлового
читать далее »

Обучение сну, обучение во сне

Автор: (c)Крис Касперски ака мыщъх Треть своей жизни человек проводит во сне, что в среднем за жизнь
читать далее »

Профессиональное сжатие видео

Автор: (c)Крис Касперски ака мыщъх Эта публикация открывает цикл статей, посвященных вопросам обработки видеоинформации в домашних условиях и
читать далее »

Азартные игры (под)сознания

Автор: (c)Крис Касперски ака мыщъх Мир, который мы видим (обоняем, слышим, осязаем) не является тем миром, которым
читать далее »

Тайные рычаги подсознания - методы психовизуальной атаки

Автор: (c)Крис Касперски ака мыщъх "На каждого человека можно воздействовать только в рамках системы его верований" Из книги "Психическая атака" Этой статьей
читать далее »

TOP10 ошибок конфигурации Linux/BSD

Автор: (c)Крис Касперски ака мыщъх Воздвигнуть Linux/BSD - не проблема, инсталлятор все сделает за нас, а вот правильно
читать далее »

Дефекты проектирования Intel Core 2 Duo - аналитический обзор с точки зрения безопасности

Автор: (c)Крис Касперски ака мыщъх Процессоры Intel Core2Duo (и не только они одни!) содержат множество ошибок, приводящих
читать далее »

Депривация сна - советы от мыщъх'а

Автор: (c)Крис Касперски ака мыщъх Программисты относятся к тем людям, которым хронически не хватает времени - ударные темпы
читать далее »

Дежавю, нейросети и спам

Автор: (c)Крис Касперски ака мыщъх Что такое дежавю, наверняка знает каждый, а кто не знает, тот может
читать далее »

Прикладная видеология

Автор: (c)Крис Касперски ака мыщъх Широкий ассортимент выбора камер видеонаблюдения превращает свободу выбора в проблему, особенно если ни
читать далее »

Два компьютера - один монитор, два монитора - один компьютер

Два компьютера - один монитор, два монитора - один компьютер Автор: (c)Крис Касперски ака мыщъх Чтобы обустроить
читать далее »

Java под атакой

Java под атакой Автор: (c)Крис Касперски ака мыщъх Долгое время Java считалась абсолютно безопасной, однако лавинообразный рост открывшихся уязвимостей доказал
читать далее »

Как сломать DVD-диск без помощи топора

Как сломать DVD-диск без помощи топора Автор: (c)Крис Касперски ака мыщъх Чего только не придумают медиамагнаты, чтобы отравить
читать далее »

Грабим данные с flash-модулей и CD/DVD

Грабим данные с flash-модулей и CD/DVD Автор: (c)Крис Касперски ака мыщъх Как сграбить содержимое флешек и CD/DVD-носителей (включая удаленные
читать далее »

Blue pill/red pill - the matrix has windows longhorn

Blue pill/red pill - the matrix has windows longhorn Автор: (c)Крис Касперски ака мыщъх Совершенствование stealth-технологий в конечном счете
читать далее »

Призраки ядра или модули-невидимки

Призраки ядра или модули-невидимки Автор: (c)Крис Касперски ака мыщъх Потребность в создании "невидимых" модулей ядра растет с каждым
читать далее »

Взлом телевизоров вблизи и на расстоянии

Взлом телевизоров вблизи и на расстоянии Автор: (c)Крис Касперски ака мыщъх Все мы используем пульты дистанционного управления на
читать далее »

Как восстановить нечитающийся CD?

Как восстановить нечитающийся CD? Автор: (c)Крис Касперски ака мыщъх Bad sector - не волк, в лес не убежит Народная
читать далее »

BIOS Setup - удаленный контроль

BIOS Setup - удаленный контроль Автор: (c)Крис Касперски ака мыщъх Каждый администратор хотя бы раз в жизни сталкивался
читать далее »

Unformat для NTFS

Unformat для NTFS Автор: (c)Крис Касперски ака мыщъх - Я у вас тут винчестер недавно купил. Так
читать далее »

Лазерный диск с нулевым треком как средство защиты от копирования

Лазерный диск с нулевым треком как средство защиты от копирования Автор: (c)Крис Касперски Задумывались ли вы, почему нумерация
читать далее »

Вирусы в мире UNIX

Вирусы в мире UNIX Автор: (c)Крис Касперски ака мыщъх Трудно представить себе более простую штуку, чем компьютерный вирус.
читать далее »

У животных впервые обнаружен круговорот насилия


Орнитологи получили первое свидетельство «цикла насилия» в животном мире. У одного из видов птиц обнаружен «чисто человеческий»
читать далее »

Миллионы галактик помогли подтвердить теорию Эйнштейна

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

Отсняты детальные тепловые портреты Урана и Нептуна

Новые снимки двух крупных планет демонстрируют, насколько отличны они в ИК-области от того облика, что мы
читать далее »

Испытан новый тип компьютерной памяти

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

Астрономы открыли неожиданные перемены в атмосфере Венеры

Международная группа астрономов обнаружила, что средние и верхние слои венерианской атмосферы ведут себя намного динамичнее, чем
читать далее »

Швейцарцы научили роботов летать большой стаей

Европейские учёные добились от небольших беспилотников-роботов согласованного и аккуратного передвижения в небе, почти что крыло к крылу, словно
читать далее »

Израильтяне создали электронный мозжечок крысы

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

Учёные впервые извлекли кино из мыслей подопытных

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

Физики заподозрили нейтрино в преодолении скорости света

Статьи в рецензируемом журнале ещё нет, но новые данные уже взбудоражили всё научное сообщество. Учёные, занятые
читать далее »

Учёные встроили в дрожжи редактор генома

Биологи внедрили в клетки дрожжей полусинтетические хромосомы. Такой опыт впервые проведён с эукариотами. Причём новый фрагмент кода
читать далее »

Американцы придумали портативный боевой лазер

Исследователи в США разработали оригинальную схему, благодаря которой можно будет получать лазерный луч, достаточный для сжигания
читать далее »

Биологи открыли у воронов умение ждать

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

Открыта планета с двумя близкими солнцами

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

В окрестностях Земли найдена зарождающаяся звезда

Молодая звезда, которую учёные назвали AP Columbae, светит не из-за ядерных реакций, а за счёт гравитации.
читать далее »

Астрофизики предсказали наличие в Галактике тысяч часовых бомб

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

Новое зеркало нарушило закон отражения лучей

Учёные из Гарвардского университета заставили свет игнорировать классические законы оптики. Исследователи построили плоское зеркало, отражающее
читать далее »

На Марсе найден странный камень

Учёные заявили, что недавний переезд марсохода на новое место работы оказался идентичен высадке его в удалённой
читать далее »

На Марсе найдена речная дельта

Европейский аппарат Mars Express предоставил учёным одно из самых ярких свидетельств наличия в прошлом Марса жидкой
читать далее »

Черные дыры «рождают» космический ветер

До сих пор общепринятой была точка зрения, исходящая из того, что источниками космических
читать далее »

Юпитерианский зонд сфотографировал Землю и Луну

«Это замечательное зрелище, которое редко удаётся увидеть людям, — заявил учёный Скотт Болтон (Scott Bolton). — Этот
читать далее »

В крови человека найден биомаркер смерти

Повышенное содержание определённой молекулы в сыворотке крови свидетельствует о сравнительно высокой вероятности смерти человека приблизительно в следующий десяток
читать далее »

Создан квантовый чип с архитектурой фон Неймана

Построенное в США устройство, по словам его авторов, является новой парадигмой квантовой обработки информации и ключевым компонентом
читать далее »

Астероидный грунт преподнёс исследователям сюрпризы

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

Новая камера снимает миллион кадров в секунду

Рекордной скоростью съёмки может похвастаться видеокамера Phantom v1610 от американской компании Vision Research.Правда, разрешение в суперскоростном
читать далее »

Учёные отодвинули дату приручения лошадей

На три с половиной тысячи лет отодвинули в глубь веков процесс одомашнивания диких лошадей исследователи из Саудовской
читать далее »

В Млечном Пути обнаружена планета-алмаз

Астрономы обнаружили самую плотную экзопланету. Объект, обладая массой Юпитера, в поперечнике насчитывает всего лишь 55 тысяч
читать далее »

О, вечный ужас, вечный мрак!

Александр Блок «Балаганчик»
читать далее »

Астрономы открыли десять свободных планет

Эти газовые гиганты блуждают по просторам Галактики без каких-либо родительских звёзд, совершенно самостоятельно. Учёные говорят,
читать далее »

Учёные предсказали столкновение Млечного Пути с будущей галактикой

К такому выводу пришли учёные из Сиднейского университета (University of Sydney), пересчитав данные по гигантскому объекту,
читать далее »

Представлено уникальное изображение центра Галактики

GigaGalaxy Zoom
читать далее »

Представлена интерактивная 360-градусная панорама всего ночного неба

Европейская южная обсерватория выложила в Интернет первое из трёх изображений, полученных в ходе проекта GigaGalaxy Zoom: «картинка»
читать далее »

Впервые найдены две планеты на одной орбите

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

Найдена самая компактная планетная система

Семейство планет у звезды Kepler-11 — одно из самых многочисленных среди всех известных, но при этом, будучи
читать далее »

Американцы припугнули мир новым материалом для боеголовок

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

Lockheed Martin продемонстрировала прототип разведчика-семени

Журналистам показали первый летающий прототип разведчика в виде кленового семени. Аппарат оказался отнюдь не таким компактным,
читать далее »

Определён предсказывающий будущее регион мозга

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

В Австралии обнаружены древнейшие окаменелости клеток

Австралийские и британские учёные нашли на Зелёном континенте окаменелости самых древних организмов, свидетельствующие о жизни на бескислородной
читать далее »

Обнародованы детали миссии следующего марсохода NASA

Учёные определили точку посадки самого тяжёлого марсохода в истории. Большой кратер выставляет на обозрение глубокие слои
читать далее »

Учёные подтвердили внеземную природу частей ДНК в метеоритах

Новое открытие добавляет доказательств тому, что химия внутри астероидов и комет способна производить строительные блоки основных
читать далее »

Динозавров сгубил мощный нефтяной взрыв

Решающую роль в повальном вымирании динозавров могло сыграть быстрое сгорание обширных запасов нефти. К такой необычной версии
читать далее »

Робот заглянул в секретную камеру пирамиды Хеопса

То, что было скрыто от глаз археологов в течение долгих 4500 лет, стало несколько дней назад
читать далее »

Биологи объяснили свободное дыхание первых животных

В период, когда на Земле бурно развивались ранние животные, содержание кислорода в воздухе было низким. Но это
читать далее »

Лингвисты описали эволюцию и отыскали родину языков

Масштабное исследование основных групп языков, проведённое антропологами из Голландии и Новой Зеландии, показало, что развитие человеческой
читать далее »

Самая чёрная планета поставила астрономов в тупик

Учёные определили параметры рекордно-тёмной экзопланеты — газового гиганта TrES-2b. Он оказался чернее угля, а также любой планеты
читать далее »

Учёные обнаружили новый феномен квантового мира

С формулами наперевес физики вывели явление, которое с точки зрения повседневной логики выглядит невозможным. Оказывается, при передаче
читать далее »

Учёный NASA заявил о работе реактора синтеза без синтеза

Произошёл новый поворот в спорном деле вокруг итальянского реактора холодного ядерного синтеза. Эксперт американского космического агентства
читать далее »

Чёрные пирамиды обещают Эмиратам чистую энергию

Американцы предложили ОАЭ построить в песках титанические скульптуры, которые смогут вырабатывать ток для питания сотен домов.
читать далее »

Новый российский энергетический реактор прибыл к месту работы

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

Большой пёс носится с грузом без головы

"Механического пса заказывали? $1,5 миллиона на два года давали? Получите, распишитесь. Вот ваш «самый передовой
читать далее »

Летающий лазер впервые сбил жидкостную баллистическую ракету

Успехом завершились испытания американского противоракетного лазера воздушного базирования Airborne Laser, состоявшиеся сегодня в 07:44 по московскому
читать далее »

Предложено самое нетривиальное объяснение тёмной материи

По мнению автора новой гипотезы, всё очень просто: тёмная материя — не что иное, как иллюзия,
читать далее »

В пламени свечи обнаружены алмазы

«Никто не знает, из чего состоит пламя свечи»
читать далее »

Падение «Фалкона» огорчило американских военных

Второй полёт гиперзвукового аппарата, созданного по заказу исследовательского агентства Пентагона DARPA, закончился провалом. Так же как
читать далее »

Физики предсказали нейтроны в форме куба

Два астрофизика из Германии и Испании провели расчёты, которые показали, что при очень высокой плотности упаковки
читать далее »

Учёные впервые внедрили животному искусственный код

Биологи из Кембриджа впервые изменили генетический код червя таким образом, чтобы заставить организм производить белки
читать далее »

Санкт-Петербург признан лучшим круизным направлением Европы и мира


Ведущий сайт о туризме WorldTravelAwards опросил 1.000.000 покупателей путёвок и выдал награду Санкт-Петербургу как лучшему
читать далее »

Москва признана одним из мировых лидеров образования


Во всех московских школах (всего их порядка 600), было проведено международное исследование грамотности 15-летних учащихся
читать далее »

ОПЕК ограничат добычу нефти - решение принято


Страны-члены ОПЕК договорились ограничить квоаты добычи нефти с ноября этого года. В среднем, добыча должна
читать далее »

Задержаны девятеро вербовщиков Джамаат Ансорулло - ФСБ


ФСБ задержала девять вербовщиков из "Джамаат Ансоруллох" - передает Интерфакс со слов главы службы А.Бортникова. Задержанные
читать далее »

В Германии взорвались бомбы


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

Гермиона останется без дома


В столице Великобритании выставили на торги дом Гермионы Грейнджер. Дом присутствует в фильме "Гарри Поттер и
читать далее »

Его убил бумеранг


Сначала эта история казалось довольно ясной и даже банальной: два года назад в Австралии был
читать далее »

Путин изменит выборы в США


Избиратель в США, традиционно довольно прохладно относящийся к событиям, происходящим за пределами Штатов, и мало
читать далее »

Трамп не смотрит CNN


Дональд Трамп, кандидат на пост президента США от Республиканской партии, заявил о своей победе в
читать далее »

Масло с горчицей

- масло сливочное -100г - горчица столовая - 1 ст. л. Масло
читать далее »

Сливочное масло, витаминизированное облепихой

- сливочное масло - 1 кг - сахар - 400г - облепиха
читать далее »

Масло с горчицей

- масло сливочное - 900г - горчица столовая - 100г. В кастрюлю
читать далее »

Масло шпротное

- масло сливочное - 100г - шпроты - 100г. Шпроты или филе
читать далее »

Масло с голландским сыром

- масло сливочное - 100г - сыр голландский -100г. Масло растереть добела,
читать далее »

Масло чесночное

- чеснок - 200г - сливочное масло - 250г. Чеснок очистить, обварить
читать далее »

Масло розмариновое

- сливочное масло - 400г - лук-резанец - 1 стакан - петрушка
читать далее »

Масло фисташковое

- фисташки (очищенные) - 100г - вода - 1/2 ст.л. - сливочное
читать далее »

Масло раковое

- раки (панцири) - 500г (40-50 шт.) - масло сливочное - 1100г
читать далее »

Масло селедочное с сыром

- масло сливочное - 680г - сельдь - 250г - сыр зеленый
читать далее »

Масло по-восточному

- сливочное масло - 400г - кинза (листья) - 1 стакан -
читать далее »

Масло селедочное с горчицей

- масло сливочное - 750г - сельдь - 250г - горчица столовая
читать далее »

Масло облепиховое

- облепиха - 1кг. Подготовленные плоды облепихи растереть деревянным пестиком в эмалированной кастрюле,
читать далее »

Масло селедочное

- масло сливочное - 500г - сельдь - 150г - яблоко свежее
читать далее »

Масло мятное

- сливочное масло - 1 стакан - мята (нарезанная) - 4 ст. л.
читать далее »

Масло сардиновое

- масло сливочное - 750г - сардины - 150г - лук репчатый
читать далее »

Масло мятно-горчичное

- сливочное масло - 400г - мята - 1 стакан - семена
читать далее »

Масло салатное со свежими грибами

- масло растительное - 500г - грибы свежие - 150г. Свежие грибы
читать далее »

Масло миндальное

- миндаль (очищенный) - 100г - вода - 1/2 ст.л. - сливочное
читать далее »

Масло с хреном

- масло сливочное - 100г - хрен тертый - 40г - соль
читать далее »

Масло креветочное с плавленым сыром

- креветочная паста - 130г - масло сливочное - 50г - сыр
читать далее »

Масло с трюфелями

- трюфеля - 100г - масло сливочное - 200г. Порезать на небольшие
читать далее »

Масло килечное

- масло сливочное - 840г - килька - 160г. Филе килек протереть
читать далее »

Масло с томатом

- масло сливочное - 100г - томат-паста -10г - соль Масло
читать далее »

Масло зеленое (II)

- масло сливочное - 500г - зелень петрушки или смесь зелени укропа, сельдерея
читать далее »

Масло с сыром рокфор

- масло сливочное - 800г - сыр рокфор или зеленый сыр - 200г.
читать далее »

Масло зеленое

- масло сливочное - 850г - зелень петрушки - 200г - лимон
читать далее »

Масло с рокфором (II)

- сливочное масло - 100г - рокфор - 200г. Тщательно размять ложкой
читать далее »

Масло грибное из опят

- масло сливочное - 250г - опята - 200г - лук репчатый
читать далее »

Масло с икрой

- паюсная икра - 75г - сливочное масло - 250г. Растолочь в
читать далее »

Масло анчоусное

- анчоусы - 150г - масло сливочное - 750г - яйцо (желток)
читать далее »

Яичница с картофелем

- яйцо - 6-8 шт. - картофель - 4-5 шт. - масло
читать далее »

Яичница-глазунья с луком

- яйцо - 8 шт. - лук репчатый - 3-4 шт. -
читать далее »

Яичница с кабачком

- яйцо - 3 шт. - кабачок - 1 шт. - растительное
читать далее »

Яичница-глазунья по-румынски

- яйцо - 2 шт. - масло сливочное - лук репчатый -1/2
читать далее »

Яичница с зеленым горошком

- яйцо - 4 шт. - горошек - 1 стакан - сливочное
читать далее »

Яичница-глазунья по-американски

- яйца - 2 шт. - ветчина - 30г - масло сливочное
читать далее »

Яичница с грибами и рисом

- грибы свежие - 300 г - лук репчатый - 1 луковица
читать далее »

Яичница-болтунья по-португальски

- яйцо - 2 шт. - сливки - 10г - помидоры. -
читать далее »

Яичница с гренками и сыром

- яйцо - 2 шт. - хлеб - 2 ломтика - молоко
читать далее »

Яичница, вареная с молоком

- яйцо - 8 шт. - молоко - 2 стакана - сливочное
читать далее »

Яичница с ветчиной и помидорами

- яйцо - 4 шт. - ветчина - 100г - помидоры -
читать далее »

Яичница со спаржевой фасолью

- фасоль спаржевая - 100г - мука - 50г - масло растительное
читать далее »

Яичница с бананом

- яичница - банан. Банан почистить, нарезать кружками толщиной 1 см. Поджарить
читать далее »

Яичница со сладким перцем

- яйцо - 5 шт. - сладкий перец (1 красный + 1 зелёный)
читать далее »

Яичница по-швейцарски

- яйцо - 2 шт. - масло сливочное - 1 ст.л. -
читать далее »

Яичница сладкая

- яйцо - 3-4 шт. - масло сливочное - 2-3 ст.л. -
читать далее »

Яичница по-итальянски

- яйцо - 2 шт. - масло сливочное - 40г - сливки
читать далее »

Яичница с чесноком

- яйцо - 8 шт. - чеснок - 2 шт. - белое
читать далее »

Яичница по-деревенски

- картофель - 250г - сыр - 40г - яйцо - 2
читать далее »

Яичница с хлебом

- яйцо - 4 шт. - белый хлеб - 3-4 кусочка -
читать далее »

Яичница по-бельгийски

- яйцо - 3 шт. - хлеб - 250г - сыр (тертый)
читать далее »

Яичница с сыром и орехом

- яйцо - 5 шт. - кисломолочный сыр - 100г - репчатый
читать далее »

Яичница на сметане

- яйцо - 2-3 шт. - сметана - 2-3 ст.л. - сыр
читать далее »

Яичница с сыром

- яйцо - 2 шт. - сыр - 50г - томатный соус
читать далее »

Яичница гуцульская

- яйцо - 4 шт. - сливки - 1 стакан - сметана
читать далее »

Яичница с сельдью

- сельдь - 1 шт. - яйцо - 4-5 шт. - зелень
читать далее »

Яичница грибная с помидорами

- яйцо - 3 шт. - помидоры - 200г - грибы -
читать далее »

Яичница с рисом

- растительное масло - 3 ст. л. - рис - 1/2 стакана
читать далее »

Яичница в корзиночках с крабами

- яйцо - 1 шт. - крабы консервированные или раковые шейки - 35г
читать далее »

Яичница с помидорами

- яйцо - 5-6 шт. - помидоры - 3-4 шт. - сливочное
читать далее »

Яичница в корзинке

- яйцо - 6 шт. - мука - 230г - пармезан (тертый)
читать далее »

Яичница с овощами

- яйцо - 2-3 шт. - лук репчатый - 1 шт. -
читать далее »

Яичница австрийская

- яйцо (крутые, рубленые) - 6 шт. - яйцо (желтки) - 8 шт.
читать далее »

Яичница с медом

- яйцо - 8 шт. - масло сливочное - 20г - молоко
читать далее »

Запеканка яичная с мозгами

- яйцо - 2 шт. - масло сливочное - 1-2 ст.л. -
читать далее »

Яичница с креветками

- яйцо - 12 шт. - креветки (крупные) - 12 шт. -
читать далее »

Глазунья быстрая

- яйцо - 2-3 шт. - сало - 100г - соль, зеленый
читать далее »

Яичница с кислым молоком и сметаной

- яйцо - 10 шт. - кислое молоко (кефир) - 1 л
читать далее »

Глазунья

- яйцо - 2-3 шт. - масло сливочное - 1 ст.л. -
читать далее »

Канапе с филе сельди

- хлеб пшеничный - 100г - сельдь (филе) - 30г - масло
читать далее »

Канапе с мясом цыпленка

- хлеб пшеничный - 100г - мясо цыпленка - 50г - желе
читать далее »
2008 - 2017

Omegicusпрограммист

Разработка широкого спектра IT продуктов - от сайтов и интернет порталов до встраиваемых операционных систем.
Коллеги
последняя новость
Немецкий журнал Der Spiegel поместил на обложку своего нового номера, вышедшего в субботу, 4 февраля, рисунок, на котором президент США Дональд Трамп изображен с отрезанной головой статуи Свободы. Подпись рядом гласит: «Америка прежде всего». Автор иллюстрации — художник кубинского происхождения Эдель Родригес.

Unauthorized.

Дефекты проектирования Intel Core 2 Duo - аналитический обзор с точки зрения безопасности

2011.10.08

Автор: (c)Крис Касперски ака мыщъх

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

Введение

Критикуя Windows (и отчасти Linux), за большое количество программных ошибок, мы "по умолчанию" закладываемся на непорочность аппаратного обеспечения, проектировщики которого ничем не отличаются от разработчиков операционных систем. До тех пор, пока процессоры были простыми (относительно операционных систем), выходили редко и тестировались тщательно - ошибки "кремниевых коней" носили единичный характер и учитывались разработчиками компиляторов. Сейчас они представляют разве что познавательный интерес. Легендарный "Hamarsoft's 86BUGS list", насчитывающий свыше сотни ошибок, недокументированных машинных команд и особенностей их поведения, последний раз обновлялся в 1994 году, после чего отправился на свалку истории, захлебнувшись в потоке дефектов, обнаруженных в первых моделях Pentium-процессоров, причем ни один из этих дефектов (за исключением знаменитой ошибки деления, описанной в одноименной врезке), до широкой общественности так и не дошел, ограничившись кругом производителей материнских плат, прошивок BIOS, разработчиков операционных систем/компиляторов и прочей технической элитой.

Возьмем, к примеру, инструкцию битового сканирования BSF dst, src, копирующую в dst индекс первого установленного бита в src. Как вам нравится тот факт, что если src равен нулю, то содержимое dst становится неопределенным, то есть там может оказаться любой мусор, какой только угодно, что серьезно осложняет отладку программ. Допустим, на машине разработчика установлен ЦП, оставляющий dst неизменным и разработчик (или его компилятор) закладываются именно на такое поведение ЦП. А вот у конечного пользователя dst может сбрасываться в нуль, нарушая работоспособность программы и заставляя разработчика теряться в догадках, с какого момента программа пошла вразнос? Обычно в таких случаях все списывается на Windows или "У вас на компьютере вирусы, переустановите операционную систему... Ах, вы уже ее переустановили?! Ну, тогда мы не знаем, разбирайтесь со своей машиной сами".

Кстати, это уже давно не ошибка, а вполне документированная особенность. Intel даже приводит псевдокод команды BSF во втором томе "Instruction Set Reference":

IF SRC = 0
        THEN
                ZF := 1;
                DEST is undefined;
        ELSE
                ZF := 0;
                temp := 0;
        WHILE Bit(SRC, temp) = 0
        DO
                temp := temp + 1;
                DEST := temp;
        OD;
FI;

Листинг 1. Псевдокод команды BSF с "узаконенной" ошибкой.

С такими "особенностями" еще можно смириться, но куда прикажете девать исключения на 486+, эпизодически возникающие при загрузке регистра CR3 (указатель на каталог страниц) в регистр общего назначения? Конечно, непредвиденные исключения можно и подавить, что делает Linux и OpenBSD. Делать-то она это делает, но... местами. А местами не делает. Обращение к регистру CR3 происходит из многих функций ядра, а ядро пишет целая армия разработчиков, часть из которых осведомлена об этом дефекте, а часть даже не подозревает. В результате, мы имеем нестабильно работающую систему.

Windows вообще не пытается сражаться с этим. А зря. Запрещение кэширования на запись в некоторых моделях процессоров разрушает содержимое кэша, откуда процессор продолжат брать ранее скэшированные данные (уже разрушенные) и чтобы программа не "грохнулась", кэш необходимо очистить программным образом, считывая туда незначащие данные вплоть до полного его заполнения. На прикладном уровне такая ситуация, конечно, маловероятна, да и нельзя на прикладном уровне управлять кэшированием, но вот драйвера - совсем другое дело! Если некоторый регион памяти используется для обмена данными с внешним устройством (видеоконтроллером или платой телеметрии), владельцы "неправильных" процессоров окажутся очень "рады" всевозможным артефактам на экране монитора и неверным телеметрическим результатам. Стоит ли удивляться, что x86 не используются в критических инфраструктурах, где работают простые и тщательно протестированные микроконтроллеры?

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

Производители ЦП ведут с дефектами проектирования ожесточенную борьбу, прогоняя каждую команду (а то и комбинации команд) через серию агрессивных тестов, результаты которых так или иначе отражаются в документации или же "specification updates". В частности, последние обновления спецификации на Intel Core 2 Duo в любой момент можно скачать с официального сайта Intel: http://www.intel.com/design/core2duo/documentation.htm#specupdt, раздел errata которого на момент написания этих строк (май 2008) насчитывает 126 ошибок, многие из которых критические и затрагивающие не только ядерный, но и прикладной уровень.

Не многим лучше обстоит ситуация с серверными процессорами: Intel Xeon Quad-Core 5400 и его младший собрат Xeon Dual-Core 5100 насчитывают по 54 официально признанных дефектов каждый. И даже Itanium 9000, рекомендованный фирмой Intel для критических инфраструктур ("massive, mission-critical computing") хранит в своих недрах 85 "жуков", способных обрушить сервер в любой момент. А ведь это одно из самых дорогих и тщательно протестированных произведений Intel, ориентированное на корпоративный сегмент рынка, который ошибок не прощает и на котором помимо Intel имеются и другие игроки, впрочем, сталкивающиеся с теми же самыми проблемами.

Мир несовершенен, никто из нас не без греха. Обновлять микрокод ЦП, прошивку BIOS (а в критических случаях - и сами процессоры!) нужно также регулярно, как накладывать заплатки на операционные системы и прочее программное обеспечение. Ах да, операционные системы... С них-то все и началось!

Intel Core 2 Duo

Рисунок 1. Intel Core 2 Duo со всеми ошибками, которые в нем только есть.

...и грянул гром

Ознакомившись с очередной errata на Core 2 Duo, Theo de Raadt (ведущий разработчик операционной системы OpenBSD, славящейся своей надежностью и защищенностью), пришел в ярость, граничащую с суицидом, и набросился на производителей Core2Duo с обличительным заявлениям в стиле: "как дальше жить и что нам делать?!", тут же подхваченным прессой и ставшей достоянием широкой общественности, постепенно начинающей осознавать, что помощи нет и не будет. Ситуация очень серьезна - достаточно многие ошибки не только приводят к краху системы, но и (теоретически) допускают возможность удаленного захвата управления. Разработчики OpenBSD попытались заткнуть самые крупные дыры, переписав код ядра так, чтобы исключить или хотя бы снизить вероятность событий, ведущих к проявлению ошибок, но вот остальные программистские коллективы, выражаясь образным языком, даже не почесались, и в первую очередь это относится к новомодному Server'у 2008, для которого заплаток нет и не предвидится. Что же тогда говорить о "морально устаревшем", но все еще работающем парке Windows 2000, XP, Server 2003?!

И хотя ни одного работоспособного exploit'а до сих пор никем не было продемонстрировано, это еще ни о чем не говорит и ничего не доказывает. Автор этих строк активно экспериментирует с различными моделями процессоров (при финансовой поддержке крупнейших фирм, специализирующихся на информационной безопасности) и готовит доклад, который при благоприятном стечении обстоятельств будет прочитан на хакерской конференции "Hack In The Box Security", проводимой в Малайзии в октябре 2008 года: http://conference.hackinthebox.org/ (для желающих посетить сие мероприятие напоминаю, что Малайзия очень удобна тем, что не требует визы, достаточно одного паспорта).

Но вернемся к исходному сообщению Theo de Raadt'а, опубликованному в конце июня 2007 года, когда обнаруженных ошибок было вдвое меньше, чем сейчас: http://marc.info/?l=openbsd-misc&m=118296441702631:

List: openbsd-misc
Subject: Intel Core 2
From: Theo de Raadt
Date: 2007-06-27 17:08:16
Message-ID: 200706271708.l5RH8GkK024621 () cvs ! openbsd ! org

Various developers are busy implementing workarounds for serious bugs in Intel's Core 2 cpu. These processors are buggy as hell, and some of these bugs don't just cause development/debugging problems, but will *ASSUREDLY* be exploitable from user-land code. As is typical, BIOS vendors will be very late providing workarounds/fixes for these processors bugs. Some bugs are unfixable and cannot be worked around. Intel only provides detailed fixes to BIOS vendors and large operating system groups. Open Source operating systems are largely left in the cold.

Full (current) errata from Intel: download.intel.com/design/processor/specupdt/31327914.pdf.

  • We bet there are many more errata not yet announced -- every month this file gets larger.

  • Intel understates the impact of these errata very significantly. Almost all operating systems will run into these bugs.

  • Basically the MMU simply does not operate as specified/implemented in previous generations of x86 hardware. It is not just buggy, but Intel has gone further and defined "new ways to handle page tables" (see page 58).

  • Some of these bugs are along the lines of "buffer overflow"; where a write-protect or non-execute bit for a page table entry is ignored. Others are floating point instruction non-coherencies, or memory corruptions -- outside of the range of permitted writing for the process -- running common instruction sequences.

  • All of this is just unbelievable to many of us.

An easier summary document for some people to read:

http://www.geek.com/images/geeknews/2006Jan/core_duo_errata__2006_01_21__full.gif

Note: that some errata like AI65, AI79, AI43, AI39, AI90, AI99 scare the hell out of us. Some of these are things that cannot be fixed in running code, and some are things that every operating system will do until about mid-2008, because that is how the MMU has always been managed on all generations of Intel/AMD/whoever else hardware. Now Intel is telling people to manage the MMU's TLB flushes in a new and different way. Yet even if we do so, some of the errata listed are unaffected by doing so.

As I said before, hiding in this list are 20-30 bugs that cannot be worked around by operating systems, and will be potentially exploitable. I would bet a lot of money that at least 2-3 of them are.

For instance, AI90 is exploitable on some operating systems (but not OpenBSD running default binaries).

At this time, I cannot recommend purchase of any machines based on the Intel Core 2 until these issues are dealt with (which I suspect will take more than a year). Intel must be come more transparent.

(While here, I would like to say that AMD is becoming less helpful day by day towards open source operating systems too, perhaps because their serious errata lists are growing rapidly too).

Для не владеющих английским языком ("не владеющих", в смысле - находящихся не в ладах) ниже представлен мой перевод:

В настоящий момент разработчики программного обеспечения и производители железа заняты разработкой "костылей", исправляющих серьезные ошибки в процессорах серии Intel Core 2, содержащих просто адское количество багов, и некоторых из этих багов не просто мелкие дефекты проектирования, а реальные дыры, которые *НЕСОМНЕННО* могут быть использованы для атак с прикладного уровня. Ряд ошибок невозможно ни исправить, ни найти обходное решения для предотвращения их возникновения. Intel ограничивается тем, что предоставляет техническую информацию производителям BIOS'ов и ведущим разработчикам коммерческих операционных систем. Open Source сообщество брошено на произвол судьбы.

Вот полная (текущая) errata: download.intel.com/design/processor/specupdt/31327914.pdf (прим. переводчика: ссылка битая, т.к. номер спецификации постоянно обновляется и последняя версия может быть найдена по базовой ссылке: http://www.intel.com/design/core2duo/ documentation.htm?iid=prod_core2duo+tab_techdocs#specupdt).

  • Мы готовы биться о заклад, что ошибок на самом деле гораздо больше, чем анонсировано - с каждым месяцем errata становиться все больше и больше (так оно и оказалось впоследствии - прим. КК);

  • Intel существенно преуменьшает значимость обнаруженных ошибок - практически все операционные системы вляпаются в эти баги;

  • В сущности, MMU (Memory Management Unit - Блок Управления Памятью) подвергся существенным конструктивным изменениям и работает совсем не так, как в предыдущем поколении x86-процессоров (точнее, теперь он никак не работает - прим. КК). Мало того, что он превратился в сплошное скопище "тараканов", Intel сделала решительный шаг вперед, определив по ее выражению "новые методы обработки страничных таблиц" (см. стр. 58 - тут, правда, не совсем понятно, что именно смотреть и где; поиск по фразе в Google выдает ссылки только на сообщение Theo de Raadt'а, и ни на один документ от самой Intel - прим. КК);

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

  • Все это кажется совершенно невероятным, но это факт!

Вот краткий сводный конспект ошибок Core2Duo для нетехнических людей http://www.geek.com/images/geeknews/2006Jan/core_duo_errata__2006_01_21__full.gif (тут Theo de Raadt слегка противоречит сам себе, поскольку приводит конспект совсем другой errara, с другими ошибками и другой нумерацией, поэтому, перечисленные ниже номера ошибок не имеют к нему никакого отношения - прим. КК).

Примечание: некоторые ошибки типа AI65, AI79, AI43, AI39, AI90, AI99 пугают нас так, что душа, минуя пятки, спускается прямо в преисподнюю. Эти "штучки" не могут быть исправлены программным путем, т.е. посредством модификации исходного кода операционной системы и/или приложений и некоторые из них затрагивают все операционные системы, выпущенные до середины 2008 года, поскольку MMU любых Intel/AMD и совместимых с ними процессоров всегда управлялся одним и тем же способом. И вот теперь Intel говорит нам, что TLB-буфера, входящие в состав MMU, должны "сбрасываться" на совершенно иной манер. Но даже сделав это, ошибки процессора, перечисленные в errata, не позволят создать стабильно работающую операционную систему.

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

Например, AI90 подходит для атаки на некоторые операционные системы (двоичные сборки OpenBSD в конфигурации по умолчанию к ним не относятся). В настоящий момент я бы не рекомендовал приобретать машины, построенные на базе Intel Core 2, до тех пор, пока дефекты проектирования не будут исправлены (что по моим подсчетам займет больше года). Intel должна стать более "прозрачной" (а не зажимать технические детали, рассылая их только разработчикам BIOS'ов и коммерческих операционных систем - прим. КК). Межу тем, мне хотелось бы отметить, что и AMD с каждым днем становиться все менее и менее полезной для Open Source сообщества, поскольку количество ошибок, обнаруженных в ее процессорах, растет не менее стремительно.

Сводный конспект

Рисунок 2. Сводный конспект основных ошибок Core 2 Duo, на который ссылается Theo de Raadt.

Сенсация или реальная угроза?

Представляет интерес разобраться, что же так напугало Theo de Raadt'а и насколько велика вероятность атаки на Core 2 Duo, тем более, что за время, прошедшее с момента публикации, количество обнаруженных ошибок удвоилось. Анализировать ошибки мы будем в порядке, обозначенном Theo de Raadt'ом, с учетом специфики операционных систем семейства NT (Windows 2000, XP, Server 2003/2008, Vista), Linux и линейка BSD - Free, Net и Open, приводя официальную информацию из errata со всеми выкладками и рассуждениями, а местами - сценариями реализации атаки.

AI65: A Thermal Interrupt is Not Generated when the Current Temperature is Invalid (Температурное Прерывание не Генерируется при Выходе Текущей Температуры за Пределы)

Problem: When the DTS (Digital Thermal Sensor) crosses one of its programmed thresholds it generates an interrupt and logs the event (IA32_THERM_STATUS MSR (019Ch) bits [9,7]). Due to this erratum, if the DTS reaches an invalid temperature (as indicated IA32_THERM_STATUS MSR bit[31]) it does not generate an interrupt even if one of the programmed thresholds is crossed and the corresponding log bits become set.

Implication: When the temperature reaches an invalid temperature the CPU does not generate a Thermal interrupt even if a programmed threshold is crossed.

Workaround: None identified.


Проблема: Когда DTS (Digital Thermal Sensor - Цифровой Температурный Сенсор) достигает одного из установленных пороговых значений, процессор генерирует прерывание, протоколируя его в журнале событий (IA32_THERM_STATUS MSR (019Ch) биты [9,7]). Вследствие конструктивного дефекта, при достижении пороговой температуры (заданной через MSR регистр IA32_THERM_STATUS бит [31]), DTS не генерирует прерывания и не устанавливает биты журнала;

Последствия: При выходе температуры кристалла за пороговые границы, процессор не генерирует прерывания;

Решение: Не найдено;

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

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

Таким образом, атаковать систему не нужно. Она и сама умрет через какое-то время.

AI79: REP Store Instructions in a Specific Situation may cause the Processor to Hang (Инструкции Записи с Префиксом REP при Определенных Обстоятельствах могут Завесить ЦП)

Problem: During a series of REP (repeat) store instructions a store may try to dispatch to memory prior to the actual completion of the instruction. This behavior depends on the execution order of the instructions, the timing of a speculative jump and the timing of an uncacheable memory store. All types of REP store instructions are affected by this erratum.

Implication: When this erratum occurs, the processor may live lock and/or result in a system hang.

Workaround: It is possible for BIOS to contain a workaround for this erratum.


Проблема: Во время выполнения серии инструкций записи, предваренных префиксом REP (REP STOSx/MOVSx), содержимое промежуточного буфера может выгружаться в память до того, как туда поступят актуальные данные. Поведение процессора зависит от порядка выполнения инструкций, временных характеристик "спекулятивных" переходов и временных характеристик некэшируемого буфера записи. Этот дефект распространяется на все операции записи с префиксом REP.

Последствия: Проявления дефекта варьируются от зависания процессора или операционной системы;

Решение: Дефект можно обойти на уровне BIOS;

Да... тут есть, о чем задуматься. Инструкции REP STOSx/MOVSx относятся к числу самых популярных. Функции инициализации и копирования памяти в большинстве случаев реализованы именно так и работают они как на прикладном, так и на ядерном уровне. Трудно представить, что произойдет, если вместо записываемых данных в память будет выгружен мусор, случайно оказавшийся в буфере или... умышленно засунутый туда хакером ("Засунутый" - в смысле оставшийся от предыдущей серии операций записи).

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

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

AI43: Concurrent Multi-processor Writes to Non-dirty Page May Result in Unpredictable Behavior (Параллельные Записи в "Чистые" Страницы Памяти на Многопроцессорных Системах Ведут к Неопределенному поведению)

Problem: When a logical processor writes to a non-dirty page, and another logical processor either writes to the same non-dirty page or explicitly sets the dirty bit in the corresponding page table entry, complex interaction with internal processor activity may cause unpredictable system behavior.

Implication: This erratum may result in unpredictable system behavior and hang.

Workaround: It is possible for BIOS to contain a workaround for this erratum.


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

Последствия: Данный дефект приводит к непредсказуемому поведению системы и возможному зависанию;

Решение: Дефект может быть устранен на уровне BIOS;

Ох, столько мудрости в этих словах "неопределенное поведение". Инженеры их очень любят. Инженеры вообще любят неожиданности, подстерегающие их в непредвиденных местах. Но чего тут гадать. Все предельно ясно. Флаг модификации, являясь разделяемым ресурсом, весьма придирчив к порядку и все операции с ним должны быть упорядочены теми или иными механизмами синхронизации. Даже не столько сам этот бит, а его окружение. Модифицировать отдельные биты процессор не обучен и он оперирует машинными словами (длина которых не обязательно равна двум байтам, в данном контексте - это минимальная порция обмена с памятью, которая на Core 2 Duo по одним данным составляет 16, по другим 32, а по третьим 64 бит). Процессор сначала читает машинное слово целиком в свой внутренний буфер, взводит/сбрасывает один или несколько бит, после чего записывает его обратно. А теперь представим, что процессоров у нас два и они одновременно обращаются к одному и тому же слову. Тогда повторная установка уже установленного бита приведет к его сбросу! Операционная система будет считать, что данная страница не была модифицирована и потому при нехватке памяти не станет выгружать ее в файл подкачки, что приведет к необратимой потере данных!

Как это можно использовать для атаки?! Завесить систему - это ерунда, при желании можно разрушить дисковый кэш, для этого нужно организовать операции записи один и тех же файлов из двух (или более) разных потоков, параллельно с этим "съедая" всю свободную оперативную память. На NTFS самым главным файлом является $MFT, хранящий информацию обо всех остальных файлах тома. Прямое обращение к нему операционная система блокирует, но вот косвенное - создание/удаление/изменение атрибутов одних и тех же файлов из разных потоков - допускает даже с гостевыми правами. А крах дискового тома - это пострашнее зависания. Аналогичным образом обстоит ситуация и с файловыми системами, используемыми в Linux и BSD.

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

Грубым решением проблемы является переход в однопроцессорный режим, что осуществляется добавлением ключа /ONECPU в boot.ini). Конечно, производительность при этом падает, но если целостность данных превыше производительности - это не такая уж и безумная мера. А надеяться на производителей BIOS... Где гарантия, что они действительно справятся с ошибкой?!

AI39: Cache Data Access Request from One Core Hitting a Modified Line in the L1 Data Cache of the Other Core May Cause Unpredictable System Behavior (Запрос Кэш-линейки L1-кэша из Одного Ядра Разрушает Модифицированную кэш-линейку Другого Ядра, Приводя к Непредсказуемому Поведению Системы)

Problem: When request for data from Core 1 results in a L1 cache miss, the request is sent to the L2 cache. If this request hits a modified line in the L1 data cache of Core 2, certain internal conditions may cause incorrect data to be returned to the Core 1.

Implication: This erratum may cause unpredictable system behavior.

Workaround: It is possible for the BIOS to contain a workaround for this erratum.


Проблема: Когда запрос данных из Ядра 1 приводит к "промаху" L1-кэша, запрос перенаправляется к L2-кэшу. Если же данная кэш-линейка уже находится в L1-кэше Ядра 2 и была им модифицирована, при определенных обстоятельствах Ядру 1 возвращается неверный результат.

Последствия: Непредсказуемое поведение системы;

Решение: BIOS может справиться с этой проблемой;

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

А в том, что создатели Core 2 Duo или забыли о когерентности (ну, это уж вряд ли), либо, что более вероятно, реализовали ее неправильно. Насколько часто разные ядра, работают с одними и теми же порциями данных? Очень часто! Ведь при переключении контекстов, потоки, стартовавшие на одном ядре, рано или поздно оказываются на другом! Последние версии операционных систем линейки NT, Linux и BSD наконец-то научились отличать ядра от физических процессоров (в многопроцессорных системах) и потому стараются по возможности избегать переброски потоков с одного ядро на другое, поскольку при этом придется заново заполнять L1-кэш. Есть даже специальные API-функции для закрепления потоков за определенным процессором (ядром), но на практике они не используются и программисты предпочитают доверять системному планировщику, алгоритм которого оптимизируется разработчиками операционной системы с учетом "характера" процессоров, имеющихся на рынке. Но в распоряжении планировщика - сотни потоков и обычно только два (редко - четыре) ядра. Так что, избежать "передислокаций" потоков невозможно, точнее, возможно, но уж слишком неэффективно.

Как можно использовать данный дефект для атаки? Самое простое - ничего не делать с системой. Она и сама упадет. Разрушение дисковых данных достаточно маловероятно, хотя и не исключено на 100%, а вот критические сбои приложений и голубые экраны смерти - вполне ожидаемое явление. Действительно, если программа что-то записала в память (на самом деле в кэш, но это уже не важно), а при последующем чтении не обнаружила никаких изменений, тут может произойти все что угодно.

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

Шторм запросов к любому драйверу (например, шторм IP-пакетов) также потенциально способен вызывать крах системы, но учитывая, что шторма зачастую вызывают BSOD'ы даже на "правильных" процессорах (из-за ошибок синхронизации, допущенных разработчиками драйверов), очень трудно определить - с каким дефектом мы имеем дело: с программным или аппаратным. Тем не менее, хакерский потенциал у атак данного типа весьма весомый, что главным образом, обуславливается простотой их реализации.

Самое непонятное в этой истории - какое отношение имеет BIOS к "разборкам" внутри процессора?! Единственное разумное предположение - BIOS просто заливает обновленный микрокод, предоставленный Intel. По-другому справиться с проблемой навряд ли получится.

AI90: Page Access Bit May be Set Prior to Signaling a Code Segment Limit Fault (Атрибут Доступа к Странице Памяти Может Быть Установлен до Генерации Исключения)

Problem: If code segment limit is set close to the end of a code page, then due to this erratum the memory page Access bit (A bit) may be set for the subsequent page prior to general protection fault on code segment limit;

Implication: When this erratum occurs, a non-accessed page which is present in memory and follows a page that contains the code segment limit may be tagged as accessed;

Workaround: Erratum can be avoided by placing a guard page (non-present or nonexecutable page) as the last page of the segment or after the page that includes the code segment limit;


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

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

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

Вот мы и добрались до дефекта, особо отмеченного Theo de Raadt'ом в качестве подходящего кандидата для атаки на операционные системы (за исключением OpenBSD в конфигурации по умолчанию). Что же это за операционные системы такие?! Ну-ка, ну-ка! В NT лимиты сегментов кода, данных и стека "распахнуты" на все адресное пространство, нижнюю половину которого занимает прикладной код, верхнюю - операционная система. Так что, за пределами кодового сегмента вообще ничего нет. Да и чтобы добраться до его конца, необходимо сначала как-то попасть на уровень ядра, где можно делать что угодно и без всяких дефектов процессора (правда, в Core2Duo есть еще один интересный дефект, обнаруженный автором и не описанный в последней errata - при выполнении кусочка инструкции, находящегося в самом конце кодового сегмента, декодер, определяя длину инструкции по первым байтам, пытается считать ее продолжение, которого нет, в результате чего происходит "заворот" в начало сегмента, первой странице которого также присваивается атрибут доступа, после чего генерируется исключение, которое хакеру необходимо отловить, чтобы система не свалилась в BSOD, но что это даст?! Младшие страницы адресного пространства специально сделаны недоступными в NT для отлова обращения по нулевым указателям, свидетельствующих о том, что программа обращается к невыделенной области памяти, и Windows передает ей исключение, которое та может обработать тем или иным образом, но чаще всего обработчик конструктивно не предусмотрен и тогда система завершает работу приложения в аварийном режиме. Установка атрибута доступа на первую страницу приведет к подавлению исключения и программа упадает не в момент обращения к нулевому указателю, а чуть позже - когда попытается обработать считанный оттуда мусор. Не слишком-то большое достижение, к тому же легко реализуемое на прикладном уровне без обращения к дефектам процессора).

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

А что насчет BSD и Linux? Штатные ядра также исповедуют плоскую модель. Кодовый сегмент находится в самом конце адресного пространства и ничего интересного за ним нет. Некоторые защитные пакеты, разработанные еще в ту далекую эпоху, когда процессоры поддерживали атрибут "исполняемый" только на уровне селекторов, а необходимость защиты стека, кучи и данных от исполнения заброшенного хакером туда shell-кода уже назрела - произошло вот что: нестандартные ядерные расширения урезали лимиты стека и сегмента данных (расположенных в начале) и отобрали у них атрибут "исполняемый". А за ними расположили сегмент кода. Вот если бы они поступили в обратном порядке (сначала код, потом стек и данные), то у хакеров была бы потенциальная возможность доступа к недоступным данным, вот только... стек и куча доступы и так... без всяких дефектов процессора.

Конечно, можно предположить, что где-то есть операционная система в которой сначала идут пользовательские сегменты кода и данных, а потом расположен сегмент операционной системы, хранящий данные, защищенные от чтения, поскольку, будучи прочитанными, они позволят повысить уровень своих привилегий, например, но... если такая операционная система и есть, то это не Linux, не Windows, не BSD и не QNX... а какая-то студенческая поделка. Вопрос: какой интерес ее атаковать?! Короче, на этот дефект процессора можно вообще не обращать внимания. Ну разве что при разработке новых операционных систем, радикально отличающихся от уже существующих.

Плоская модель памяти

Рисунок 3. Windows использует "плоскую" модель памяти с "распахнутыми" границами сегментов.

AI99: Updating Code Page Directory Attributes without TLB Invalidation May Result in Improper Handling of Code #PF (Обновление Атрибутов Директории Кодовых Страниц без "Инвалидации" TLB Может Привести к Некорректной Обработке Исключения #PF)

Problem: Code #PF (Page Fault exception) is normally handled in lower priority order relative to both code #DB (Debug Exception) and code Segment Limit Violation #GP (General Protection Fault). Due to this erratum, code #PF maybe handled incorrectly, if all of the following conditions are met:

  • A PDE (Page Directory Entry) is modified without invalidating the corresponding TLB (Translation Look-aside Buffer) entry

  • Code execution transitions to a different code page such that both
    – The target linear address corresponds to the modified PDE
    – The PTE (Page Table Entry) for the target linear address has an A (Accessed) bit that is clear

  • One of the following simultaneous exception conditions is present following the code transition
    – Code #DB and code #PF
    – Code Segment Limit Violation #GP and code #PF

Implication: Software may observe either incorrect processing of code #PF before code Segment Limit Violation #GP or processing of code #PF in lieu of code #DB.

Workaround: None identified.


Проблема: Исключение #PF (Page Fault - Страничный Отказ) обычно обрабатывается в с другими исключениями, перечисленными в порядке уменьшения приоритета: #DB (Debug Exception - Отладочное Исключение), Segment Limit Violation (Исключение Выхода за Пределы Сегмента), #GP (General Protection Fault - Общее Нарушение Защиты). Вследствие дефекта проектирования, #PF исключение обрабатывается некорректно при наступлении одного из следующих событий:

  • PDE (Page Directory Entry - Запись Каталога Страниц) модифицируется без "инвалидации" (to invalidate - делать недействительным) соответствующей записи TLB (Translation Look-aside Buffer - Буфер Обратной Трансляции);

  • Транзакция исполнения машинной инструкции находится на стыке двух страниц, причем выполняется одно из следующих условий:
    – Линейный целевой адрес соответствует модифицированной PDE;
    – PTE (Page Table Entry - Запись Таблицы Страниц) для целевого линейного адреса имеет сброшенный бит доступа;

  • Транзакции предшествует одно из двух следующих исключений:
    – #DB и #PF;
    – #GP и #PF;

Последствия: Программное обеспечение должно либо отслеживать некорректное #PF исключение, предшествующее #GP исключению, так же как #PF исключение - перед #DB.

Решение: Не найдено.

Наконец-то мы добрались до дефекта, который Theo de Raadt характеризует как "Ну вот - теперь нам Intel говорит, что TLB нужно обрабатывать совершенно иным путем, не похожим на старый". Ох, и врет! Intel ничего такого не говорит, признавая за собой дефект и расписываясь в бессилии найти приемлемое обходное решение. Дефект, конечно, серьезный и остается только удивляться, как существующие операционные системы ухитряются работать на Core 2 Duo, не падая каждые шесть-семь минут (хотя, возможно, они и падают, но не так часто).

Выход только один - ждать новой ревизии процессора с исправленной ошибкой обработки TLB (после чего все будет "как при бабушке"), либо же модифицировать (причем весьма значительно) ядро операционной системы, чтобы оно стабильно работало и на дефектных ЦП. Microsoft выпуском такой заплатки не озаботилась, хотя похоже, что при ее манерах обращения с TLB, обозначенный дефект не особо и мешает. А вот Theo de Raadt доработал ядро OpenBSD, застраховав систему от возможных "сюрпризов" со стороны процессора. Естественно, ядро исправить (да еще таким необычным способом) - это не просто две строчки кода местами поменять, так что его можно понять. Кому хочется отдуваться за чужие ошибки?! А между тем ошибок в процессорах много...

Ошибка деления в Pentium

Самая громкая ошибка в Pentium была обнаружена в 1995 году и продемонстрирована на следующем примере: x - (x / y) * y, результат которого (если только y != 0) должен быть равен нулю, однако при определенных значениях x и y (x = 4195835, y = 3145727) процессор выдавал... 256! Потрясающая точность, однако!

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

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

Заключение

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

Нетронутую целину дефектов железа хакеры только-только начали осваивать. До сих пор не представлено ни одного proof-of-concept exploit'а и не зафиксировано случаев вторжения, основанных на ошибках ЦП, однако... в атмосфере определенно что-то происходит. Что-то такое... не предвещающее ничего хорошего.

Впрочем, не будем изображать из себя пророков, предоставив событиям развиваться своим чередом, а сами тем временем приложим максимум усилий по обеспечению собственной безопасности, скачивая свежие прошивки BIOS и выбирая продукцию тех производителей, которым можно верить, и которые действительно борются с дефектами процессоров, отмечая свои достижения в сопроводительных файлах. Что же касается операционных систем, то в линейке BSD - OpenBSD несомненный лидер, Linux'ы все на одно лицо и особой разницы между ними нет (у одних - одни недостатки, у других - другие). Microsoft, похоже, бороться в ошибками процессоров вообще не собирается, а это большой минус, особенно на рынке серверов, где OpenBSD чувствует себя вполне уверенно. А вот перевод рабочих станций на OpenBSD, скорее всего, окажется дороже, чем убытки от возможных атак. Впрочем, свой выбор каждый делает сам.

https://nebka.ru/?uid=1&post=20963