Перейти к содержанию
Deja_Vu

С++ и переполнение буфера

Recommended Posts

Deja_Vu
странный вывод.

настолько же странный как и этот: Сергей Ильин признал всеобщую опасность языка С++ - с помощью него можно шпионить за пользователями...

В принципе так оно и есть, пока пишут софт на С++, будут существовать уязвимости в этом ПО по переполнению буфера.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
dr_dizel
Насколько я в курсе, последние версии компилляторов Visual C++ умеют автоматически обнаруживать такие проблемы.

...

Особенно мне понравилось, как автор статьи пытался всё же сознательно допустить переполнение буфера:

Не вижу в ваших суждениях логики.

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

Как видно отладочная версия Visual C++ позволяет находить ожидаемые ошибки и проблемы в работе самого софта, а в релизной версии все эти проверки снимаются. Считайте что их нет.

Если автору удалось реализовать атаку на релизной версии, то это говорит о полной бесплезности средств Visual C++ (значит даже банальных маркеров стека нет).

Так что, насколько вижу, если программировать на C++, зная об этой проблеме, то довольно просто её избежать - все средства для этого сейчас есть.

Да-да-да. Все программисты на С[++] собрались ночью на перекрёстке и поклялись ценой жизни избегать переполнений буферов. :lol:

Средства-то есть, но как показывает практика и статистика - мало когда используются.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Valery Ledovskoy
Не вижу в ваших суждениях логики.

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

По логике вещей сначала должна происходить компилляция в отладочной версии, и если проблемы в ней не обнаруживаются, тогда уже этот же исходный код компилируется в релизной версии. Так должно быть. Конечно, многие пренебрегают всеми возможностями, которые предоставляет компиллятор, но виноват в этом не C++ и не компиллятор.

Вы не могли бы назвать известные Вам госорганы, использующие МСВС по прямому назначению?

http://ru.wikipedia.org/wiki/МСВС - изучайте :)

И это был всего лишь пример.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
4rward

Всем привет.Да какая разница с++ или нет .В любом софте рано или поздно будут обнаружены недоработки.Вопрос в том-насколько оперативно или ,в идеале,превентивно устранят ошибки.

По поводу интервью: во многом согласен с ИД,у человека вцелом правильный взгляд на вещи.

Поделиться сообщением


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

Валерий, вы же эксперт портала и являетесь одним из представителей его профессионализма . Вы даже прочитали целую статью на тему переполнения стека! Прочитали, но ничего не поняли и ещё учите форумчан жить. Это такой фирменный стиль представителей Dr.Web? :lol:

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

Да, есть специальные средства защиты, но они либо стоят денег либо не востребованы разработчиками из-за фазы луны. Со времён червя Морриса ничего особо не изменилось, а это было в 1988 году... :rolleyes:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Valery Ledovskoy
только если уязвимость будет применена разработчиком

Не понял.

Вы даже прочитали целую статью на тему переполнения стека!

Если честно, не читал, но просмотрел. И увидел, что подавляющее большинство потенциальных проблем с переполнением буфера можно учесть на этапе написания кода. Конечно, 100%-ой гарантии это не даёт, но, судя по количеству обнаруживаемых уязвимостей, программисты не знают или знают, но не используют даже то знание, что описано в этой статье. Конечно, она далеко не претендует на полноту исследования данного вопроса.

Я лишь хотел сказать, что "плохому программисту мешает компиллятор" (с) :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
p2u

@ dr_dizel

На день Пасхи можно было чуть помягче, без наездов на личность, нет? Ничего однозначного нет. Ссылаться на 'экспертность' или 'не-экспертность' никогда не оправдано - это может восприниматься как отсутствие реальных аргументов. Именно поэтому, и без обид, я попросил бы вас немного отредактировать ваше сообщение. Спасибо.

Paul

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
dr_dizel
На день Пасхи можно было чуть помягче, без наездов на личность, нет?

Причём тут Пасха? Кесарю кесарево.

Если бы та тематика переполнения была под авторством, например, Агента, то я бы мог проигнорировать такое излияние. Но Валерий является экспертом портала и представителем АВ на форуме. Разве это позволяет автоматически ему писать всякую ерунду с умным слогом? А аргументы я привожу.

Так что, насколько вижу, если программировать на C++, зная об этой проблеме, то довольно просто её избежать - все средства для этого сейчас есть.

С 1988 года все программируют, зная об этом и что? Весь эшелон разработчиков софта, библиотек, ОС сразу стали экспертами в сфере безопасного программирования и постоянно думают о переполнении?

Не понял.

Жаль.

Для того чтобы отловить уязвимость - она должна проявиться в процессе отладки. Но обычно уязвимость - это нестандартная ситуация, которая не может возникнуть при штатной работе любой скомпилированности. Иногда уязвимости можно отловить (юни)тестами, анализом исходников или просто случайно. Но это может не дать ничего. Всёгда что-то остаётся. На вашем же багтрекере разработчики требуют шаги воспроизведения бага не просто так. Они сами не могут дойти что и где не так, в хорошо известном им софте.

Если честно, не читал, но просмотрел. И увидел, что подавляющее большинство потенциальных проблем с переполнением буфера можно учесть на этапе написания кода. Конечно, 100%-ой гарантии это не даёт, но, судя по количеству обнаруживаемых уязвимостей, программисты не знают или знают, но не используют даже то знание, что описано в этой статье. Конечно, она далеко не претендует на полноту исследования данного вопроса.
"Мы все учились понемногу чему-нибудь и как-нибудь"? Но вы же эксперт портала. А эксперт = специалист. А вы даже не подготовились к уроку, высказываете ошибочное мнение и не хотите признать, что ошибаетесь.

Проблема же переполнения в языке и библиотеках. Код пишут разные люди с разной квалификацией используя чужие наработки и библиотеки. Это вавилонская башня.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Valery Ledovskoy

dr_dizel, если так ставить вопрос, как Вы написали в последнем сообщении, то я согласен.

А по поводу экспертства и отношения к компании - на соответствующей странице АМ можно узнать, в чём я эксперт на этом портале. С продуктами компании "Доктор Веб" я знаком достаточно хорошо и довольно продолжительное время.

Также, являясь сотрудником компании, я не являюсь разработчиком продуктов. У меня совершенно другие задачи.

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

Да, я могу не всё знать о переполнении буферов. Возможно, Вы об этом знаете больше. Но я не думаю всё же, что эта проблема нерешаемая. Как Вы уже сказали, средства для этого есть. Просто разработчики подобным проблемам уделяют подчас недостаточно внимания. Иногда сознательно, иногда неосознанно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
dr_dizel
Программирование же для меня - это больше хобби.

Если не считать разработку и программирование математических методов и алгоритмов.

Да, я могу не всё знать о переполнении буферов.

Хороший повод почитать статьи по сабжу и восполнить пробел, раз уж вы начали дискутировать на эту тему, не правда ли? ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Valery Ledovskoy
Хороший повод почитать статьи по сабжу и восполнить пробел, раз уж вы начали дискутировать на эту тему, не правда ли? wink.gif

Ну, если только Вы запишетесь на учебные курсы по нашим продуктам и узнаете, наконец, куда встроен Dr.Web Shield и что это такое. А то вот так вот получается:

http://www.anti-malware.ru/forum/index.php...ost&p=58592 ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
dr_dizel
Ну, если только Вы запишетесь на учебные курсы по нашим продуктам и узнаете, наконец, куда встроен Dr.Web Shield и что это такое.

Хороший ответ. Главное по сабжу. :lol:

Да мне не по барабану почему из-за глюков вэба спайдер не запускался и выдавал сообщения о невозможности загрузить "Shiled Lite" (а не "Shield Lite" :rolleyes: ), что намекало на попытку грузить облегчённую версию шилда. ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Valery Ledovskoy
Да мне не по барабану почему из-за глюков вэба спайдер не запускался и выдавал сообщения о невозможности загрузить "Shiled Lite"

Вообще-то так запускался в бете Scanning Engine. В релизе этой ошибки уже не было.

Хороший ответ. Главное по сабжу. laugh.gif

Так мы и не в серьёзном разделе ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

×