All streams
Search
Write a publication
Pull to refresh
28
0
Send message
OpenSSL это либа, а не отдельное приложение. Даже если она создает отдельный поток для какой-то там своей активности (как скажем делает x264), то все равно это всё будет находиться в одном адресном пространстве с моей программой, которая печатает на 3Д принтере и запускает пони в космос. Более того — у них даже менеджер памяти скорее всего будет один и тот же.

Если бы весь OpenSSL был в отдельном процессе, то эта уязвимость стала бы сразу на порядок менее критической — ведь вся бизнеслогика, все логины, пароли, номера кредиток и так далее, были бы от нее изолированы, лежали бы в другом, отдельном адресном пространстве, до которого из OpenSSL нельзя было бы добраться даже теоретически, даже если поменять его код ради этого.

Уязвимы бы были только те данные которые прошли через OpenSSL в данную сессию в явном (не шифрованном) виде. (тут сессия — сессия работы приложения, то есть от старта процесса с OpenSSL)
Процесса? Сколько угодно. Ибо в этом же процессе может быть еще и вся бизнес-логика, работа с графикой, звуком и управлением 3Д печатью в одном флаконе.

А может занимать совсем мало — если это мой личный hello world работы с сокетами.
зато есть итераторы, мимо которых тоже можно промахнуться, и получить undefined behaviour ;-)
Кольцевой буфер без указателей в точности также подвержен тем же ошибкам что и с указателями — промахнуться мимо конца массива как нефиг делать :-)

Какая разница, пишешь ты foo[n] или же *(foo+n)?
SIGSEGV (если мы говорим о юниксах и им подобных типа линукса) возникает следующим образом — все зарождается в MMU, при попытке обратиться к адресу не отображенному в память, это сигнал (прервывание? никогда непосредственно с MMU не работал, надо будет попробовать) дергает за хвост ядро, которое уже обрабатывает эту ситуацию, если эта страничка в свопе, то она из свопа подгружается в ОЗУ, и прикладному процессу возвращается управление как будто ничего и не было, если же приложение не имеет прав на чтение/записть этой странички, или она вообще не была для него валидна (скажем через mmap не отображена), то приложению посылается сигнал SIGSEGV.

Соответственно SIGSEGV в случае heartbleed может возникнуть ровно по той же причине, по которой он может возникнуть и в случае обычного выхода за границу массива — наступили на страничку которая не отображена в память, либо к которой у нас нет прав на read.

Поэтому, иногда, в некоторых случаях, сегфолт тут таки возможен. Вероятность возникновения сегфолта при эксплуатации дыры сильно зависит от менеджера памяти данной конкретной софтины и того как активно им пользуются.
Поясни мысль плиз.
Либо куча должна выделяться не непрерывным куском адресного пространства. То есть некоторые диапазоны адресов «из середины» должны быть не отображены в память.

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

Плюс, насколько я понимаю, если не увлекаться malloc/free, то есть если расположение данных довольно статично и предсказуемов (в пулах), то сделать дамп всей памяти процесса через эту уязвимость не получится, просто потому, что скорее всего через уязвимость будут утекать одни и те же 64Кб данных.
Вообще то да. Атакующий не может знать как у меня распределение память, и не выйдем ли мы за пределы сегмента при попытке скопировать память. Да что там — мы и сами то не знам выйдем мы за сегмент или нет, зависит от того, как в данном конкретном случае.эта структура будет лежать в памяти, точнее — где будет лежать.

Собственно в си при случайном выходе за границу масссива (или просто обращении по не вал догму указателю) сегфолт бывает лишь иногда, а иногда просто чтение/запись не того что ожидалось. И это меняется от запуска к запуску приложения, и просто от раза к разу. Думаю каждый наблюдал подобное неоднократно в своих программах.
Вопрос немного не в тему — разве при эксплуатации этой уязвимости некоторые приложения иногда не будут падать с segfault?
По ссылке неграмотная глупость — OpenSSL писан на си а не C++. Тут это существенно.
Однако в пользу моего предположения говорит тот факт, что в пункте (где подробно про облака) 6 нет ни слова про MS, есть только про Google. Да и вообще Microsoft больше нигде не упоминается.
А что в плане облаков было у MS в 2010 году? По моему, в этом пункте Джобс говорил о общей картине. Конкретно про облака у него тут: «6. MobileMe — Кью, SJ, Роджер Рознер»
Вполне вероятно что оно и не должно было останавливаться. Выход из кода (и возврат обратно) через прерывания какие-нибудь.

А это — просто «процесс» перекладывания из одного буфера в другой.
В виде показаний датчиков. С достаточно высокой частотой семплирования. Это вначале, потом по этому делу строятся некие вычисляемые значения. Но в принципе там можно было бы вытащить через ML много больше, если иметь такой мозг как у того же Watson'a.

А каким боком тут английский язык — вообще не понятно :-)
А каким образом тут текущий ватсон поможет?

В принципе я тоже хотел бы его приспособить для диагностики медицинской. Но у меня данные далеко не в виде запросов на человеческом языке.
А, так значит это таки не ML в общем виде, а просто вопрос-ответ на естественном (в данном случае только английском) языке. Как-то обучать тоже нельзя. Это совершенно не то, что мне надо. Спасибо.
Где можно посмотреть на API?

Что вообще Watson может? То есть в смысле ML, что там есть? Его обучать можно? Например задачу восстановления регрессии он умеет? А как умеет? А что там можно подкрутить?

То есть хочется увидеть конкретный API, и возможности, а не общие слова про то, как Watson крут и как здорово он в healthcare поднаторел.

Вот небольшие примеры с описанием и кодом реализации — были бы очень в тему.
Да, действительно научился. Видимо как раз начиная с 2.8. (в 2.6 вроде бы еще не было)

И в случае специализации шаблона Qt Creator 3.0 ведет себя также как и MSVS2012.

Information

Rating
Does not participate
Location
Нижний Новгород, Нижегородская обл., Россия
Date of birth
Registered
Activity