информационная безопасность
без паники и всерьез
 подробно о проекте
Rambler's Top100Страшный баг в WindowsСетевые кракеры и правда о деле ЛевинаАтака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Простое пробивание рабочего/провайдерского... 
 400 уязвимостей в процессорах Snapdragon 
 Яндекс неуклюже оправдался за установку... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / блог / архив / 2008
АРХИВ
архив
2020
2019
2018
2017
2016
2015
2014
2013
2012
2011
2010
2009
2008
2007
2006
2005
2004
2003
2002
archive




The Bat!

кивибердное
05.05.08 20:47 // оригинал
Иногда о безопасности можно писать из общих соображений. Иногда же нужно иметь представление о программировании, иначе получается такое.

1. "С присущей компьютерам проблемой переполнения буфера памяти мир безопасности вплотную познакомился" вовсе не в 1996 году, а существенно раньше. Срыв стека использовался еще в вирусе Морриса, а известен был задолго до того.

2. NULL pointer, особый указатель адреса памяти с несуществующим значением - помимо кривого определения, имеет весьма косвенное отношение к описываемой уязвимости ("если эти самые NULL-указатели так опасны, почему их до сих пор используют в кодах программ, вместо того чтобы от них отказаться?" - mamma mia). "Есть возможность заставлять некоторые приложения обращаться к произвольным адресам памяти и выполнять соответствующие коды всякий раз, когда происходит доступ к NULL pointer" - полнейший бред (жило себе приложение, с какого-то бодуна спокойно обращалось к нулевым адресам, игнорируя аппаратные исключения, и вдруг нашли способ его в этот момент обмануть - так, что ли?).

3. Уязвимость в flash-плейере в принципе не относится к типу "переполнение буфера памяти" и вряд ли может быть названа принципиально новой. Используется в ней хорошо известное целочисленное переполнение (большим unsigned int соответствуют отрицательные signed int, чем можно играть при смешивании unsigned/signed операций), которое приводит к тому, что функция выделения памяти получает в качестве параметра отрицательное число и возвращает тот самый NULL вместо осмысленного адреса памяти. Далее к возвращенному значению (отсутствие проверки на NULL и является основным источником уязвимости) прибавляются различные смещения (формируемые на основе того же полученного извне большого unsigned int), что и дает возможность писать в более-менее производные адреса памяти.

P.S. Эх, не удержался.

   
обсудить  |  все отзывы (0)  |  обсудить в LJ [460]
назад «  » вперед

последние записи
яблочноучебное // 11.09.20 18:34
яблочнопереключальное // 26.07.20 17:07
яблочноденежное // 14.07.20 23:06
яблочноотличное // 14.07.20 15:37
памятное // 18.06.20 00:59
ГПБ vs TV // 06.06.20 21:32
викиисключительное // 20.05.20 21:20
гуглемитное-2 // 14.04.20 16:01
гуглемитное // 10.04.20 12:12
микрофонное // 27.03.20 17:49


авто венгрия вырвиглаз германия глюки греция гуглемап драйверы египет железки журнализм империя добра испания италия кино кипр клоуны книги криворучки оспорт португалия программизм сайт софт стрим студень турция уродцы фото франция цацки чехия читалки android bq e51 eeepc from facebook hd2 hpc htc ipad iphone onlime vista windows 10 windows 7 windows 8 yota



Rambler's Top100
Рейтинг@Mail.ru



  Copyright © 2001-2020 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach