|
информационная безопасность без паники и всерьез |
![]() ![]() ![]() |
|||||||||||||||||||||
|
![]() |
|
||||||||||||||||||||
|
||||||||||||||||||||||
|
Russian Security Newsline
Хотите установить RSN на своем сайте?
Эти страшные NULL-pointerы
"С присущей компьютерам проблемой переполнения буфера памяти мир безопасности вплотную познакомился в 1996 году [...] В самом простом изложении техническая суть открытия Дауда сводится к очень тонкой работе с NULL pointer, особым указателем адреса памяти с несуществующим значением. Звучит сенсационно - вроде как волшебным образом ноль превращается в произвольное число. Не очень понятно, правда, с чего это вдруг программа полезла к нулевому указателю, а операционная система ее туда пустила (обычно подобное обращение вызывает аппаратное исключение). Попробуем разобраться. Что происходит на самом деле. Происходит, во-первых, хорошо известное целочисленное переполнение (большим unsigned int соответствуют отрицательные signed int, чем можно играть при смешивании unsigned/signed операций). Полученное извне большое беззнаковое число SceneCount проскакивает через знаковую проверку jg, после чего поступает на вход функции выделения памяти, которая, не будучи в состоянии выделить отрицательное количество байтов, возвращает тот самый NULL (имеющий в данном случае вполне существующее значение 0). Во-вторых, происходит отсутствие проверки возвращаемого значения функции выделения памяти, что приводит к тому, что полученный NULL уходит в дальнейшую обработку. Далее к нему прибавляется все то же SceneCount, умноженный на 12 (размер структуры), и полученный адрес, отсчитываемый от нуля, используется для записи информации (т.е. нет никакого обращения к нулевому указателю, а есть обращение к адресу, некорректно сформированному из-за отсутствия проверки). Соответственно, манипулируя значением SceneCount, которое берется из заголовка swf-файла, атакующий может заставить плейер записать почти произвольную информацию в почти произвольную область памяти процесса. Что, впрочем, еще полдела, поскольку дальше остается разобраться с этими "почти", ну да это уже другой вопрос, которому, к слову, посвящено более половины исходного документа. Переводя на русский язык: 1. Обращение к произвольным адресам памяти при доступе к NULL pointer не имеет ни малейшего отношения к действительности, равно как и "аппаратные коды, управляющие работой регистров памяти", никак не связаны с NULL ("регистры памяти" звучат очень красиво, но не имеют ни малейшего отношения к указателям, вся фраза - пускание пыли в глаза неспециалистам). 2. Сильно преувеличена опасность нулевых указателей - их для того и придумали, чтобы сделать возможными проверки, которыми в данном случае пренебрегли. Проблема не в обращении к нулевому указателю (которое отловит любая современная ОС), а в использовании непроверенного значения в качестве базы для операций с указателями. 3. Описываемая уязвимость в принципе не имеет отношения к переполнению буфера. Да и к новому классу ее можно отнести с большой натяжкой. 4. Ну и до кучи - с "присущей компьютерам проблемой переполнения буфера памяти мир безопасности вплотную познакомился" вовсе не в 1996 году, а существенно раньше. Срыв стека широко использовался еще в вирусе Морриса, а известен был задолго до того. 5. Иметь некое представление о программировании и компьютерной архитектуре иногда полезно даже для авторов компьютерных журналов.
RuCTF 2008 - итоги
Для всех интересующихся организаторы выложили в свободный доступ игровой образ в том виде, в котором его получали команды.
Раздача Vista SP1 и XP SP3 приостановлена
Исправления сервис паков находятся в процессе тестирования; предполагается, что в качестве временной заглушки в Windows Update вскоре будет включен фильтр, отсеивающий системы с Microsoft Dynamics RMS.
Microsoft отрицает существование новой уязвимости
Сотни тысяч IIS пострадали от SQL injection
Первая информация об уязвимостях появилась на форумах 17 апреля, на следующий день Microsoft выпустила совет по блокировке атаки с использованием предположительной уязвимости, допускающей повышение привилегий аутентифицированного пользователя до LocalSystem. Среди пострадавших сайтов, кстати, назван aeroflot.ru - что вполне подтверждается. Поиск по зоне .ru вообще дает много любопытных результатов. Под раздачу также попали сайты ООН, американского министерства национальной безопасности и многие другие. Особенность данного SQL injection в том, что оно передается на сервер в виде вызова функции CAST с параметром в виде куска 16-ричного кода, который она конвертирует в строку, получая на выходе sql-запрос - что делает несколько более сложным его обнаружение и фильтрацию (хотя чтобы эта функция отработала, все равно дело должно дойти до ее исполнения, так что стандартных рекомендаций по фильтрации sql-запросов вполне должно хватить). Далее он пытается внедриться в каждое текстовое поле каждой таблицы - собственно говоря, за счет чего зараженные сайты так удобно искать в гугле - как правило, портится и поле, используемое для формирования заголовка страницы.
Предложить свою новость |
анонимность
клоуны
конференции
спам
уязвимости
.net
acrobat
activex
adobe
android
apple
backdoor
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
python
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
worm
xp
xss
yahoo
yandex
youtube
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|