На главную страницу AlgoNet В сотрудничестве с ZDNet
АРХИВ СТАТЕЙ 2006-6-2 на главную / новости от 2006-6-2
AlgoNet.ru
поиск

 

Место для Вашей рекламы!

 

Все новости от 2 июня 2006 г.

Vista играет в прятки с хакерами

Вышедшая на прошлой неделе версия Windows Vista Beta 2 содержит новое средство защиты от эксплойтов, основанных на переполнении буфера.

Каждый раз при включении ПК функция Address Space Layout Randomization (ASLR) загружает важные системные файлы в разные области памяти, что, по мнению Microsoft, затрудняет исполнение вредоносного года. «Это не панацея, и это не исключает необходимости писать безопасный код, — пишет старший менеджер программы безопасности Microsoft Майкл Говард в блоге, в котором рассказывает о новой функции. — Но в сочетании с другими технологиями… это полезное средство защиты, так как оно позволяет Windows-систеам выглядеть незнакомыми для вредоносного ПО, что затрудняет автоматические атаки».

Эксплойты переполнения буфера это вредоносный код, который пытается использовать типичную ошибку в программировании, называемую переполнением буфера. При атаках этого типа записываемые в память данные выходят за пределы выделенного буфера и занимают смежные с ним ячейки. Это может привести к сбою процесса или допустить выполнение подготовленного злоумышленником кода. ASLR изобрела не Microsoft. Эта функция уже используется в нескольких операционных системах open source, включая OpenBSD, а также в патчах для Linux PaX и Exec Shield.

При определенных видах атак злоумышленники пытаются заставить системные функции Windows, такие как socket() в wsock32.dll, открыть сетевой сокет. Новая функция перемещает эти системные файлы, делая их местонахождение непредсказуемым. В Windows Vista Beta 2 файл DLL или EXE может находиться по любому из 256 адресов. «У злоумышленника один шанс из 256 угадать правильный адрес», — пишет Говард.

В системах open source рандомизация, похоже, работает хорошо, констатирует старший специалист Cybertrust Расс Купер. Вопрос в том, как именно Microsoft реализовала ASLR и является ли эта рандомизация в принципе предсказуемой. «Я подозреваю, что в первую очередь станут искать именно это — что-нибудь, что указывает на выбор местонахождения или может служить подсказкой».

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

Отзывы об ASLR
В мире безопасности Microsoft заслужила одобрение за работу по ASLR для Vista. «Дистанционное использование переполнений значительно усложнилось, — пишет в сообщении в списке почтовой рассылки BugTraq исследователь из Next Generation Security Software Дэвид Личфилд (David Litchfield).

Но и скептики тоже есть. Некто под псевдонимом c0ntex в ответе Личфилду уверяет, что ASLR «уже много лет элементарно обходится в Linux».

Тот факт, что Microsoft добавила ASLR лишь в последнюю опытную версию Windows Vista, еще один признак неготовности последователя Windows ХР к широкому применению. «Мы довольно поздно ввели в игру функцию ASLR, но решили, что добавить ее в бета-2 и сделать разрешенной по умолчанию важно для понимания того, как это будет работать в реальности», — пишет Говард.

По утверждению Microsoft, ASLR вместе с другими усовершенствованиями Vista поднимает планку безопасности будущей ОС. Компания называет Vista, которая должна поступить в продажу в январе, самой безопасной версией Windows на сегодняшний день.

Кроме ASLR, Говард указывает на опцию для обнаружения переполнения буфера в Visual C++; средство проверки исключений (exception checker) в Vista; функцию сокрытия указателя (pointer obfuscation) и поддержку функции NX (No-Execute) процессора, которая не позволяет исполнять данные как программы. «В свете всего этого ASLR рассматривается всего лишь как одна из многих мер защиты», — пишет Говард.
Обсуждение и комментарии

умник
2 Jun 2006 2:30 PM
Эксплойты переполнения буффера в принципе невозможны были бы если бы Майкрософт использовала для стека и кода разные сегменты/дескрипторы с разными правами на исполнение. В Линуксе были подобные попытки, но почему то тоже не стали популярными.
 

Mike
2 Jun 2006 3:01 PM
Ага, и если бы еще производители процессоров для ПК заранее предусмотрели лучшую степень изоляции данных от кода.
 

dimav
2 Jun 2006 3:25 PM
только 90% переполнение буфера это банальный срыв стека. те для локальных данных и данных относящися к передаче управления нужны разные адресные пространства и разне стеки. банальным вынесением код стека и данных в разные сегменты не обойдешься....
А это по большому счету требует переделки ублюдочной x86 архитектуры... чего в ближашие XX лет не будет.
2 "Mike
Ага, и если бы еще производители процессоров для ПК заранее предусмотрели лучшую степень изоляции данных от кода."
так были такие процессоры. все пожрал проклятый хомяк x86
 

Anti-MS
2 Jun 2006 5:45 PM
2dimav

я что-то путаю или в амд64 все таки это есть в проце?
 

M&M's
2 Jun 2006 8:04 PM
Бля, опять изобрели велосипед.
Но не в том фишка, что велосипед, а в том, что элементарно сперли, и как обычно громко выдают за свое. Мудаки нах.
 

Ender
2 Jun 2006 8:09 PM
2M&M's: "Но не в том фишка, что велосипед, а в том, что элементарно сперли, и как обычно громко выдают за свое."

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

Spectr
2 Jun 2006 8:34 PM
2Ender: "На этом уже пора успокоиться."

RIP, дорогой друг.
 

M&M's
2 Jun 2006 8:41 PM
Ендер,
ты не представляешь, как хорошо спится после того, как покричал на форуме "МС - гавно, суксь и ацтой", просто чувствуешь себя человеком со спокойной совестью, выполнившим свой дневной долг перед прогрессивным человечеством.
Ведь МС - казлы, но не только казлы, а самодовольные казлы с громадным самомнением, ипи их за ихний си шарп. В России такие теперь в Читинской колонии срок мотают, в Китае их дальше родной деревни не выпускают иначе как на поводке. В Америке эти дядисэмы развернулись по полной.
Почему в морду торт лепили не Джобсу, не Торвальдсу, а именно Гейцу? Это о чем-то да говорит.
 

Ender
3 Jun 2006 8:49 AM
2M&Ms: "ты не представляешь, как хорошо спится после того, как покричал на форуме "МС - гавно, суксь и ацтой", просто чувствуешь себя человеком со спокойной совестью, выполнившим свой дневной долг перед прогрессивным человечеством."

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

"Почему в морду торт лепили не Джобсу, не Торвальдсу, а именно Гейцу? Это о чем-то да говорит."

На сколько мне известно влеплял какой-то больной мужик, у которого мания забросать тортами какую-нить знаменитость.
 

M&M's
3 Jun 2006 12:40 PM
2 Ender:
> Я даже знаю настолько больных людей которым чтобы начать продуктивно работать или сосредоточиться на чем-то, обязательно нужно с кем-то поругаться

Эт бывает :-))) Лечится двухнедельным отдыхом в Турции. Если, конечно, время для этого находится :-)
 

Alexander S. Kharitonov
3 Jun 2006 1:48 PM
2 Ender:

> в недоделанном линуксе или бздях.

Пора в Турцию? :-)
 

tstone - saldomail.ru
4 Jun 2006 2:06 PM
2dimav:

в том-то и дело, что даже в х86 есть аппаратные средства, позволяющие полностью исключить возможность "исполнения данных", или выхода за пределы сегмента, причем любого, не только стека, или смешивания сегмента данных и исполняемого сегмента. Это у них все было еще в 486 проце!

Только чтобы это использовать надо ж думать! А кому оно охота?
 

умник
5 Jun 2006 3:35 AM
to tstone

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

Barklett
5 Jun 2006 6:48 AM
дескрипторы/сегменты в IA32 давно отошли на второй план, ввиду рулезности плоской модели памяти, т.е. технически сегменты остались, но для приложений их как бы не существует, адресация только линейная, 4 гб адресного пространства (на сам деле программе доступны два или три при спецключе в boot.ini)

кто сейчас в современных ОС пользует сегментную модель памяти? почему претензия именно к МС, когда все дружно забили на сегменты... а Intel виновата, что не предусмотрела для элементов таблиц страниц столько же флажков настройки, как для дескрипторов сегментов (т.е. нельзя сказать, что это не данные, а стек; нельзя сказать, что это код, а не данные read-only; нельзя указать уровни привилегий кроме пользователь/супервизор, тогда как для сегментов их четыре)

Itanium вообще не имеет сегментов, только страничная модель

и не только amd, но также intel пару лет уже поддерживает NX - что задействует WinXP SP2 и продолжит пользовать Vista

кроме NX и ASLR, будет еще ряд механизмов защиты - UAC например (сами читайте, что это). а также

/GS
опция компилятора в Visual C++, включена по дефолту, добавляет обнаружение переполнения буфера на базе стека, а также переставляет местами некоторые аргументы функций, и становится намного сложнее атаковать стек функции. На данный момент все исходники Vista скомпилированы с использованием /GS.

/SafeSEH
опция компоновщика, который пишет адреса задач в PE заголовок исполняемого файла и когда задача выполнена, ОС повторно проверяет адрес в заголовке PE, и если адрес отсутствует, значит что-то нарушило процесс выполнения задачи и ОС убивает процесс.

Function Pointer Obfuscation (путаница указания функций)
Долговечные указатели функций подвержены атаки, потому что они долговечны и указывают на функции, временами запрашиваемые кодом. В Vista кодируется ряд долговечных указателей, и раскодируется лишь когда они необходимы

+ прикладные защитные программы (Windows Defender, улучшенный файрвол, IE в restricted mode с антифишинговым фильтром)

т.е. явно заметно, что МС взялась за безопасность висты по полной программы, SP2 для XP был только прологом

P.S. касательно будущего Longhorn сервер - "опция установки Server Core позволяет клиентам Longhorn Server устанавливать лишь ядро сервера без графического интерфейса, с поддержкой основных служб, таких как DHCP и DNS". Ну прямо сбылись мечты линуксойдов о виндах без графики
 

Угрюмый anonymous
5 Jun 2006 11:25 AM
2 Barklett
Ты глядика, видать прокрались в мекросовт пара умных программистов!
 

Alex
5 Jun 2006 11:44 AM
2 Barklett

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

Зато создаёт ложное(и опасное) чувство защищённости.

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

Barklett
5 Jun 2006 11:49 AM
вот сначала получи "возможность выполнять код в привилегированном режиме"

если не совсем понятно - часть фишек безопасности висты не дают сделать именно это
 

Угрюмый anonymous
5 Jun 2006 1:01 PM
2 Barklett
"часть фишек безопасности висты не дают сделать именно это"
А другая часть соломку подкладывает. То есть на первую часть надежды нет даже у разработчиков.
 

Masonok
5 Jun 2006 1:11 PM
2 Alex
> Зато создаёт ложное(и опасное) чувство защищённости.

Значит система должна быть специально дырява и глючна чтобы у пользователя не создавалось ложного чувства защищенности?! Тогда вам на Виндовс 9х. Это ваш идеал?

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

dimav
5 Jun 2006 1:14 PM
2 tstone и умник:
"dimav:
в том-то и дело, что даже в х86 есть аппаратные средства, позволяющие полностью исключить возможность "исполнения данных", или выхода за пределы сегмента, причем любого, не только стека, или смешивания сегмента данных и исполняемого сегмента. Это у них все было еще в 486 проце!"
от срыва стека они не спасают. Они спасают от модификации кода в процессе исполнения програмы. А вот в Amd вроде что-то действительно появилось интересное... точнее "перепоявилось" давно известное.
 

sa10
5 Jun 2006 2:33 PM
Маздайка будет безопасной тогда, когда это будет выгодно производителю, а этого не будет.
Даже если они случайно по оплошности это сделают, то сразу выгонят виноватого программера и выпустят новую мегаверсию :)
 

Megapyle3
5 Jun 2006 5:03 PM
А я слышал что MS делает новую Windows под названием Singularity - так там исполняемый код загружается только если к нему есть подпись! Я думаю, это будет 100% стабильная система без дыр.
 

Barklett
6 Jun 2006 12:08 AM
> другая часть соломку подкладывает

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

iZEN - izenmail.ru
6 Jun 2006 12:19 AM
Переполнение буфера — типичная проблема языка программирования. В данном случае язык программирования Си, на котором пишутся операционные системы, и столь любимый хакерами (как высокоуровневый ассемблер) по своей идеологии небезопасен.

Системы, написанные на таких типобезопасных языках, как ADA и Oberon, полностью исключают проблему переполнения буферов и исполнения кода на стэке. Подумать только, что для таких вот систем в принципе не нужен NX-бит!
 

Угрюмый anonymous
6 Jun 2006 10:56 AM
> в МС программеры не глупее вас работают
Ага, но что-то им всё время мешает.

Мне действительно интересно, как самая большая софтверная фирма, столько денег тратящая на разработку нового ПО может так лажаться (пусть не очень часто, зато регулярно)

Вот стоит у меня на работе MSSQL2005 (лицензионный) и там в Server Management Studio в интерфейсе иногда кнопочки не работают, и сервис пак их не лечит. Это сколько нужно потратить усилий на разработку, сколько будет такой продукт стоить, когда в нём ВСЁ будет работать?

Это при использовании свободного софта не так замечается (а что вы хотели за 5 копеек), а в случае мекросовт каждый раз глаз режет.

Вот и получается - сколько денег не плати, а софт всё равно глючный.
 

Alex
6 Jun 2006 2:31 PM
2 Barklett
>> вот сначала получи "возможность выполнять код в
>> привилегированном режиме"
>> если не совсем понятно - часть фишек безопасности
>> висты не дают сделать именно это

Если ты не понял, то АБСОЛЮТНО ВСЁ, что ты перечислил - борьба с последствиями. Причём даже не атак, а так... случайными ошибками выполнения. Если ты не согласен - ну что-ж , назови пример, разберём. :-)))
 

Alex
6 Jun 2006 2:35 PM
2 Masonok

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

А уж они-то , небось радостно потирают руки, предвкушая как будут обливать грязью "защиту" от M$.
 

Alex
6 Jun 2006 2:40 PM
2 iZEN

Нет, это обычная проблема больших проектов. И язык тут - дело десятое. Тут скорее нужна действительно аппаратная платформа, что-то вроде "Эльбруса".
Есть примеры слёта программ и на Ада. Причём с катастрофическими последствиями.
 

Monstro
6 Jun 2006 5:51 PM
> Системы, написанные на таких типобезопасных
> языках, как ADA и Oberon, полностью исключают
> проблему переполнения буферов и исполнения кода
> на стэке. Подумать только, что для таких вот
> систем в принципе не нужен NX-бит!

Еще со времен i386 можно было ставить тип страницы памяти (тем самым задавая права доступа к ней). см формат дескриптора сегмента. Почему MerZko$oft это не заюзало - непонятно.

бит NX - бесполезная маркетинговая безделушка
 

Barklett
7 Jun 2006 2:11 AM
> может так лажаться

а лажаются все периодически... и малые и большие... да и клиентов у МСа, и софта стороннего понаписано
столько, что нереально предугадать как будут вести себя все возможные hard & soft конфигурации, включая возможные нестыковки разных 3rd-party software между собой... реально проверить/оттестировать только часть

кнопочки в интерфейсе, говорите? :) ну все, безопасность идет лесом, UAC работать точно не будет :) мух от котлет отделяем?

> софт всё равно глючный.

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

> АБСОЛЮТНО ВСЁ, что ты перечислил - борьба с последствиями.

и что хочешь сказать? всем отказаться от аппаратной платформы Intel/AMD, и от C/C++ для разработки ОС? нереально... МС тут чем провинился, они делают что могут, чтобы при данных условиях висту сделать безопасной насколько возможно... в таких же условиях и Редхат с Новеллом - вынуждены бороться с последствиями

> новички пользуются уже готовыми эксплойтами, написанными специалистами... _по_безопасности_

угу, известный эксплойт для Sql сервера тоже был написан известным секурити-экспертом Дэвидом Литчфилдом (он и нашел баг), выложен в публичный доступ, взят скрипткиддисом, немножко изменен и выпущен в сеть как slammer

> А уж они-то , небось радостно потирают руки, предвкушая как будут обливать грязью

вы статью-то читали? Литчфилд как раз положительно высказывается про нововведения безопасности в Vista

P.S. см. доку с сайта МСа, там более-менее технически расписано, что будет в висте (комплексная защита на разных уровнях, т.е. одни фишки не мешают другим, а дополняют их, повышают общую защищенность системы)

http://download.microsoft.com/download/c/2/9/c2935f83-1a10- 4e4a-a137-c1db829637f5/WindowsVistaSecurityWP.doc

P.P.S. "Еще со времен i386 можно было ставить тип страницы памяти (тем самым задавая права доступа к ней). см формат дескриптора сегмента" - сегменты и страницы разные вещи... МС раньше юзал и сегменты, пока не случился переход на flat-model памяти... сегменты остались и при плоской модели, тока база 0 и предел 4 гб, т.е. их программы уже не пользуют... в общем, мануалы читать надо с Интела
 

 

← май 2006 1  2  3  4  5  6  7  8  9 июль 2006 →
Реклама!
 

 

Место для Вашей рекламы!