информационная безопасность без паники и всерьез подробно о проекте |
||||||||||||||||||||||
|
||||||||||||||||||||||
|
25-летний баг в BSD; Эти страшные NULL-pointerы; Сотни тысяч IIS пострадали от SQL injection; Microsoft покончила с ботнетом Storm; Microsoft поддерживает "этичных хакеров". #258, 13.05.2008 25-летний баг в BSD
Эти страшные NULL-pointerы
"С присущей компьютерам проблемой переполнения буфера памяти мир безопасности вплотную познакомился в 1996 году [...] В самом простом изложении техническая суть открытия Дауда сводится к очень тонкой работе с NULL pointer, особым указателем адреса памяти с несуществующим значением. [...] Есть возможность заставлять некоторые приложения обращаться к произвольным адресам памяти и выполнять соответствующие коды всякий раз, когда происходит доступ к NULL pointer. [...] Если эти самые NULL-указатели так опасны, почему их до сих пор используют в кодах программ, вместо того чтобы от них отказаться? К сожалению, эта проблема программирования имеет слишком глубокие корни, уходящие к аппаратным кодам, которые непосредственно управляют работой регистров памяти." Звучит сенсационно - вроде как волшебным образом ноль превращается в произвольное число. Не очень понятно, правда, с чего это вдруг программа полезла к нулевому указателю, а операционная система ее туда пустила (обычно подобное обращение вызывает аппаратное исключение). Попробуем разобраться. Что происходит на самом деле. Происходит, во-первых, хорошо известное целочисленное переполнение (большим unsigned int соответствуют отрицательные signed int, чем можно играть при смешивании unsigned/signed операций). Полученное извне большое беззнаковое число SceneCount проскакивает через знаковую проверку jg, после чего поступает на вход функции выделения памяти, которая, не будучи в состоянии выделить отрицательное количество байтов, возвращает тот самый NULL (имеющий в данном случае вполне существующее значение 0). Во-вторых, происходит отсутствие проверки возвращаемого значения функции выделения памяти, что приводит к тому, что полученный NULL уходит в дальнейшую обработку. Далее к нему прибавляется все то же SceneCount, умноженный на 12 (размер структуры), и полученный адрес, отсчитываемый от нуля, используется для записи информации (т.е. нет никакого обращения к нулевому указателю, а есть обращение к адресу, некорректно сформированному из-за отсутствия проверки). Соответственно, манипулируя значением SceneCount, которое берется из заголовка swf-файла, атакующий может заставить плейер записать почти произвольную информацию в почти произвольную область памяти процесса. Что, впрочем, еще полдела, поскольку дальше остается разобраться с этими "почти", ну да это уже другой вопрос, которому, к слову, посвящено более половины исходного документа. Переводя на русский язык: 1. Обращение к произвольным адресам памяти при доступе к NULL pointer не имеет ни малейшего отношения к действительности, равно как и "аппаратные коды, управляющие работой регистров памяти", никак не связаны с NULL ("регистры памяти" звучат очень красиво, но не имеют ни малейшего отношения к указателям, вся фраза - пускание пыли в глаза неспециалистам). 2. Сильно преувеличена опасность нулевых указателей - их для того и придумали, чтобы сделать возможными проверки, которыми в данном случае пренебрегли. Проблема не в обращении к нулевому указателю (которое отловит любая современная ОС), а в использовании непроверенного значения в качестве базы для операций с указателями. 3. Описываемая уязвимость в принципе не имеет отношения к переполнению буфера. Да и к новому классу ее можно отнести с большой натяжкой. 4. Ну и до кучи - с "присущей компьютерам проблемой переполнения буфера памяти мир безопасности вплотную познакомился" вовсе не в 1996 году, а существенно раньше. Срыв стека широко использовался еще в вирусе Морриса, а известен был задолго до того. 5. Иметь некое представление о программировании и компьютерной архитектуре иногда полезно даже для авторов компьютерных журналов.
Сотни тысяч IIS пострадали от SQL injection
Первая информация об уязвимостях появилась на форумах 17 апреля, на следующий день Microsoft выпустила совет по блокировке атаки с использованием предположительной уязвимости, допускающей повышение привилегий аутентифицированного пользователя до LocalSystem. Среди пострадавших сайтов, кстати, назван aeroflot.ru - что вполне подтверждается. Поиск по зоне .ru вообще дает много любопытных результатов. Под раздачу также попали сайты ООН, американского министерства национальной безопасности и многие другие. Особенность данного SQL injection в том, что оно передается на сервер в виде вызова функции CAST с параметром в виде куска 16-ричного кода, который она конвертирует в строку, получая на выходе sql-запрос - что делает несколько более сложным его обнаружение и фильтрацию (хотя чтобы эта функция отработала, все равно дело должно дойти до ее исполнения, так что стандартных рекомендаций по фильтрации sql-запросов вполне должно хватить). Далее он пытается внедриться в каждое текстовое поле каждой таблицы - собственно говоря, за счет чего зараженные сайты так удобно искать в гугле - как правило, портится и поле, используемое для формирования заголовка страницы.
Microsoft покончила с ботнетом Storm
За последние 4 месяца 2007 года от Storm было очищено более полумиллиона систем, причем почти половина из них пришлась на сентябрь, первый месяц, когда распознавание Storm было добавлено в MSRT. Первое время создатели Storm пытались бороться с этим - с учетом того, что MSRT обновляется строго раз в месяц, они пытались закидывать свежие версии трояна на зараженные системы непосредственно перед обновлением, чтобы помешать его обнаружению. Однако сопротивление оказалось бесполезным - по опубликованным в начале месяца оценкам специалистов SecureWorks, Storm откатилась на пятое место среди известных ботнетов с жалкими 85 тысячами подконтрольных систем, 35 тысяч из которых настроены на рассылку спама (и способны рассылать 3 миллиарда писем в день - честно говоря, язык не поворачивается назвать такое положение полным разгромом, хотя удар был нанесен действительно ощутимый). Впрочем, представитель Microsoft реалистично оценивает ситуацию и считает, что создатели Storm вероятно продолжают зарабатывать на других ботнетах.
Microsoft поддерживает "этичных хакеров"
|
анонимность
клоуны
конференции
спам
уязвимости
.net
acrobat
activex
adobe
android
apple
beta
bgp
bitcoin
blaster
borland
botnet
chrome
cisco
crypto
ctf
ddos
dmca
dnet
dns
dos
dropbox
eclipse
ecurrency
eeye
elcomsoft
excel
facebook
firefox
flash
freebsd
fsf
github
gnome
google
gpl
hp
https
ibm
icq
ie
intel
ios
iphone
java
javascript
l0pht
leak
linux
livejournal
mac
mcafee
meltdown
microsoft
mozilla
mysql
netware
nginx
novell
ny
open source
opera
oracle
os/2
outlook
password
patch
php
powerpoint
programming
pwn2own
quicktime
rc5
redhat
retro
rip
router
rsa
safari
sco
secunia
server
service pack
shopping
skype
smb
solaris
sony
spyware
sql injection
ssh
ssl
stuff
sun
symantec
torrents
unix
virus
vista
vmware
vpn
wikipedia
windows
word
xp
xss
yahoo
yandex
youtube
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|