В категории материалов: 357 Показано материалов: 141-150 |
Страницы: « 1 2 ... 13 14 15 16 17 ... 35 36 » |
Сортировать по:
Дате ·
Названию ·
Рейтингу ·
Комментариям ·
Просмотрам
Недавно обнаруженная известным IT Security специалистом Стефаном Эссером
уязвимость в интерпретаторе PHP теоретически может затронуть миллионы веб-сайтов,
на которых используется PHP<=5.2.5. Тебе интересно, в чем суть уязвимости? В
статье я разобрал advisory бага по полочкам.
Баг затрагивает функции генерации псевдослучайных чисел rand() и mt_rand().
Зачастую они используются для создания паролей, сессий, кукисов и других
различных конфиденциальных данных пользователя.
Rand() — это просто враппер для библиотеки libc rand(), а mt_rand() — враппер
для генератора псевдослучайных чисел Mersenne Twister. Обе функции используют
так называемый seed (семя), который можно задавать соответственно функциями
srand() и mt_srand(). По дефолту сид представляет собой 32‑битный DWORD (2 в 32
степени или 4294967296 комбинаций). Обычно такой длины достаточно, чтобы
обеспечить криптографическую стойкость приложения. Ведь для брутфорса пароля,
сгенерированного с помощью одной из этих функций, необходимо знать не только сид,
но и сгенерированные на его основе числа. Впрочем, существует ряд ситуаций, в
которых брутфорс вполне применим...
|
Несколько недель тому назад моя жена заметила, что время от времени она видит в папке рабочего стола файлы, которые на самом деле на рабочем столе не находятся. Сказала она об этом не только из-за того, что была обескуражена таким несоответствием, а еще и потому, что ей надо было удалять и перемещать некоторые из этих файлов-призраков. Я и понятия не имел, о чем вообще она ведет речь (впрочем, так происходит почти всегда, когда супруга пытается объяснить мне суть своих затруднений при работе с компьютером), а потому попросил ее позвать меня, когда она в следующий раз увидит такие загадочные файлы. Несколькими днями спустя я вернулся домой с работы и увидел в дверях ожидающую меня взволнованную жену. Она объяснила, что проблема повторилась и она оставила окно открытым, чтобы я мог посмотреть на эти ускользающие файлы. Я ринулся к стоявшему на кухне компьютеру с таким энтузиазмом, что даже не поздоровался с собаками, и немедленно принялся за изучение ситуации. Я увидел окно IE во весь экран и множество вкладок с открытыми электронными письмами (иногда мне кажется, что моя вторая половинка вообще не закрывает вкладки с электронными сообщениями), а также открытое диалоговое окно выбора файла со списком файлов, находящихся у ней в папке "Рабочий стол", которое она вызвала, нажав на кнопку вложения при работе с письмом. Диалоговое окно выглядело следующим образом: |
Компания Microsoft использует различные методологии моделирования
угроз с 1999 года. Эти методы помогали находить ошибки в защите
программных продуктов и были объединены в Security Development
Lifecycle (SDL) – набор процедур, применяемый ко всем разработкам
Microsoft, предполагающим работу с высоким уровнем угроз безопасности и
конфиденциальности. Microsoft и сейчас продолжает развивать и
совершенствовать имеющиеся инструменты, методологии и процедуры с
учетом накопленного опыта. Данная статья призвана рассказать об истории
создания SDL-методов моделирования угроз и об уроках, усвоенных в
процессе их разработки (которые могут оказаться полезными и за
пределами Microsoft), описать используемые сегодня подходы и поделиться
темами, представляющими, как мы надеемся, интерес для научных
исследователей. |
Сегодня даже рядовой пользователь может попытаться повысить
производительность своего компьютера, изменяя состояние опций BIOS Setup. А было
время, когда для выполнения подобной операции требовались паяльник, осциллограф
и серьезные познания в области цифровой схемотехники. Для современных
оверклокеров акцент сместился от схемотехники к термодинамике, так как
устойчивость работы электронных схем на частотах, превышающих штатные,
существенно зависит от эффективности их охлаждения.
Около двух десятилетий назад, когда под фразой "собрать компьютер в домашних
условиях" понималось не соединение разъемов и закручивание винтов, а
самостоятельное изготовление печатных плат, сборка на уровне микросхем и отладка
на уровне наблюдения электрических сигналов, все было по-другому. Первые IBM
PC/XT, а тем более их 8-битные предшественники вообще не имели Setup. Информацию
о дате и времени требовалось вводить вручную после каждого включения питания, а
о программном переключении тактовой частоты процессора и других параметров не
было и речи. Для повышения производительности компьютера требовалось физическое
вмешательство в схему. Например, для запуска процессора на более высокой
частоте, требовалось заменить кварцевый резонатор в тактовом генераторе. Сегодня
тот же эффект достигается изменением одной опции в BIOS Setup. Модификации
схемы, которые раньше выполнялись с помощью паяльника, теперь выполняются с
помощью программируемой логики без физического вмешательства в устройство. |
Одно из основных направлений в "битве умов" между авторами компьютерных
вирусов и антивирусных программ связано с размещением тела вируса в оперативной
памяти. На первый взгляд, все банально: задача вируса – спрятаться так, чтобы не
нашли, задача антивируса – найти. В ходе эволюции технологий, используемых как
для написания вредоносных программ, так и для противодействия им, появились
достаточно нетривиальные решения. Поле деятельности уже давно не ограничивается
механизмами управления памятью, входящими в состав операционной системы.
Сегодня, для того, чтобы быть "на уровне", авторам, как вирусов, так и
антивирусов необходимо понимание принципов взаимодействия программ и
оборудования, таких как работа с конфигурационными регистрами чипсета,
Model-Specific регистрами процессора (MSR), использование областей памяти,
имеющих специальный статус с точки зрения контроллера памяти (SMRAM, Shadow и
т.п.).
Автор данной статьи не является вирусологом и тем более "вирусописателем", а
работает в области разработки аппаратного и системного программного обеспечения.
Поэтому предлагаемый материал подготовлен как информация о потенциальной
уязвимости, дающей возможность вирусу "спрятаться" нетривиальным методом. Речь
идет об использовании "теневой" памяти или Shadow RAM и представлении вируса в
статусе части выполняемого блока BIOS. |
Xакерская команда Immunity (известная своим клоном Ольги) в начале сентября
2008 выпустила руткит под Linux 2.6, который средства массовой дезинформации уже
окрестили принципиально новым и совершенно неуловимым. Общественность была
шокирована мрачными картинами надвигающейся схватки антивирусов с чудовищным
демоном, имя которому DRrootkit.
Но так ли все обстоит на деле?
Руткиты — это программы, которые прячут другие программы. Достигается такое,
как правило, перехватом определенных системных функций (с целью фальсификации
возвращаемого ими результата). Чаще всего перехват осуществляется путем правки
служебных структур данных (таблица прерываний; таблица системных вызовов) или же
модификацией кода самих системных функций. И то, и другое легко обнаруживается
проверкой целостности, а потому алгоритмы подобного типа уже лет пять как не
актуальны, за что и получили прозвище «классических миссионерских».
Более изощренные руткиты отказываются от модификации кода и перезаписывают
указатели на внутренние функции, хранящиеся в динамической памяти. Надежных
способов детекции таких извращенцев до сих пор не придумано, но сложность их
реализации, а также привязанность к конкретной версии операционной системы
делает их заложниками лабораторных экспериментов без всякой надежды на успешный
«промышленный» вариант.
Итак, задача: реализовать классический миссионерский алгоритм перехвата без
правки кода/данных операционной системы, с одной стороны обеспечив простоту
кодирования и совместимость с различными ядрами, а с другой — предотвратить
обнаружение факта вторжения. |
Категорически не рекомендуется ставить эксперименты на основном рабочем
компьютере, лучше найти какую-нибудь старую плату, оставшуюся, например, с
прошлого апгрейда или частично исправную и собрать на ее базе "полигон".
В ранее опубликованной статье
"Проникновение в BIOS ROM"
№1 и №2, были
рассмотрены уязвимости, позволяющие вредоносным программам стереть или
модифицировать содержимое микросхемы BIOS и таким образом, вывести из строя
материнскую плату. Напомним, что такой сценарий возможен потому, что в качестве
носителя BIOS используется микросхема электрически перепрограммируемого
постоянного запоминающего устройства (Flash ROM), допускающая перезапись
непосредственно в системе.
Как известно, микросхемы такого типа используются в современных компьютерах
не только в качестве носителей BIOS. Практически все модули оперативной памяти
(DIMM), начиная от PC66 SDRAM, содержат микросхему SPD (Serial Presence
Detect), в которой хранятся параметры модуля. При старте, BIOS считывает
содержимое SPD и таким образом определяет количество модулей DIMM, их
расположение по разъемам, размер, архитектуру, быстродействие и другие
параметры. В соответствии с прочитанной информацией выполняется инициализация
контроллера памяти. Содержимое SPD также считывают диагностические утилиты и
именно благодаря этому, они могут определить, память какого производителя
установлена в компьютере.
Механизм доступа к SPD поддерживает не только чтение, но и перезапись
содержимого микросхем. Именно в этом и состоит уязвимость, описанию которой
посвящена данная статья. Материал проиллюстрирован исходными текстами программ,
выполняющих чтение и запись SPD. |
Категорически не рекомендуется ставить эксперименты на основном
рабочем компьютере, лучше найти какую-нибудь старую плату, оставшуюся, например,
с прошлого апгрейда или частично исправную и собрать на ее базе "полигон".
Об аппаратной защите и ее эффективности
Микросхема 24C02 поддерживает аппаратную
защиту записи. Для этого используется вход WP (Write Protect). Это контакт 7 на
8-контактном корпусе микросхемы. При WP=0 запись разрешена, при WP=1 запрещена.
С точки зрения использования этой функции, модули памяти бывают трех типов:
Первый вариант – вход WP подключен к схемной "земле", то есть WP=0. Защиты нет.
Второй вариант – вход WP подключен к плюсовой линии питания, то есть WP=1. При
этом микросхема SPD постоянно защищена от записи, и программно изменить ее
содержимое невозможно. |
Win2k3 и Win2k8 по умолчанию оптимизированы под стандартную сетевую среду. Но
если серверную ОС надлежащим образом настроить (например, под требования
компании), то это благоприятно отразится на каждом аспекте работы сети, начиная
от самого оборудования и заканчивая пользователями, подключенными к серверу.
Анализируем причину
Любая внештатная ситуация, в том числе и снижение производительности сервера,
требует тщательного анализа. Не собрав всей информации, можно нагородить дел.
Возьмем такой случай. Контроллер домена (КД) уже не справляется со своими
обязанностями - пользователи подолгу регистрируются в системе или не могут зайти
в сетевую папку. В зависимости от топологии Сети, вариантов решения может быть
несколько.
Например, можно модернизировать железо, перераспределить нагрузку между
серверами (в том случае, когда КД выполняет еще и другую задачу) или же снизить
нагрузку на основной КД за счет установки еще одного КД в отдельном
подразделении компании. При использовании Win2k8 в удаленном офисе есть вариант
установить контроллер домена только для чтения (RODC). Тогда в случае
компрометации сервера или банальной кражи оборудования можно не бояться за
нарушение функционирования всего леса (подробности смотри в статье «В лабиринте
AD»). Так мы разгрузим основной КД и снизим нагрузку на Сеть (в том числе и на
внешний канал, если для соединения между офисами используется интернет). |
Прочтя заголовок, ты, наверное, ожидаешь, что сейчас тебе во всех подробностях расскажут о работе с сетью в ядре Windows.
Но задача это трудная по двум причинам: во-первых, из-за сложности
темы; а во-вторых, из-за практически полного отсутствия осмысленных
статей на эту тему на русском языке. Но, как говорят китайцы, «дорога в
тысячу ли начинается с первого шага». Мы с тобой начнем ее прямо сейчас.
Строго говоря, в нулевом кольце для программера доступно два интерфейса для работы с сетью: TDI (Transport Data Interface) и NDIS (Network Device Interface Specification).
Считается, что с TDI работать гораздо легче, чем с NDIS, что, впрочем,
и понятно, ведь при работе с NDIS кодеру нужно будет самому
реализовывать стек сетевых протоколов, общаться напрямую с сетевым
адаптером, что нерационально. При работе же с TDI программер опирается
на уже существующую в ядре реализацию TCP/IP-стека и задача его сильно
упрощается. |
|