Почему в браузерах так много возможных эксплойтов?

583
Humphrey Bogart

При просмотре мне иногда выдаются предупреждения о страницах, на которых размещено вредоносное ПО, «которое может повредить мой компьютер». Я серьезно озадачен тем, почему в 2010 году браузеры по- прежнему имеют возможные эксплойты и могут быть взломаны.

У меня вопрос "почему?" Я предполагаю, что это из-за быстрого развития, которое происходило в войнах браузеров, которые были недостаточно проверены, но я не уверен. Конечно, WebKit исправил бы все проблемы в KHTML, или Gecko разобрался с недостатками в движке Netscape, а кодировщики IE разобрались по своей кодовой базе, чтобы устранить возможные недостатки?

(Отчасти связано: какой браузер является наиболее безопасным? (Исследовательский и практически основанный) .)

7
Это потому, что очень сложно создать безопасный метод, позволяющий сторонним лицам запускать программное обеспечение на вашем компьютере без вашего явного разрешения или согласия. Zoredache 14 лет назад 8
У них много ошибок, эксплуатировать их гораздо сложнее Ivo Flipse 14 лет назад 0

8 ответов на вопрос

11
dmckee

Сложность, сложность, сложность.

Современный браузер поддерживает

  • Получение данных по нескольким протоколам (http, https, ftp, ...)
  • Рендеринг нескольких разных языков разметки (обычный html (в нескольких версиях), xhtml, html with css ...)
  • Хранение данных и получение данных по запросу удаленных пользователей (куки)
  • Два (или более!) Полноценных программных окружения Тьюринга для запуска кода, поставляемого извне (javascript, java, возможно flash ...)
  • Какая-то внутренняя база опций
  • ( украдено из проницательного ответа broam, поэтому проголосуйте за него ) поддерживает архитектуру плагинов, которая позволяет стороннему коду получить доступ к внутренним компонентам браузера

ожидается, что он будет быстрым, будет иметь умное кеширование, чтобы сделать его быстрее, и иметь выразительный и мощный интерфейс.

Там очень много всего, и это большие, сложные части программного обеспечения.

Вот почему, когда я абсолютно хочу безопасности над всем остальным, я использую Lynx. В текстовом браузере поверхность атаки очень мала. Есть также много вещей, которые он не может сделать. David Thornley 14 лет назад 0
@ Дэвид: Я бы сказал, что Lynx, вероятно, так же небезопасно. Его безопасность менее проверена, и многие векторы атак - переполнение буфера и подобные дыры. Georg Schölly 14 лет назад 1
8
Broam

Один вектор, о котором люди не упомянули: плагины. Браузер может быть безопасным, но плагин может иметь широкие дыры в нем ... и с такими вездесущими плагинами, как Flash ... эксплойты, приятель.

Возможно, мне следовало уточнить свой вопрос; Я имел в виду основные элементы браузера (макет, javascript и т. Д.). Humphrey Bogart 14 лет назад 0
Вы могли бы - но я бы все равно это поднял. В кругах моих друзей меня называют «технологическим луддитом», потому что у меня не установлена ​​Flash. Тот факт, что IMO воняет на льду в Linux, является лишь частью этого. Broam 14 лет назад 2
3
Unfundednut

Частично это тот факт, что некоторые обновления запускаются быстрее, чем должны быть. Но одним из преобладающих фактов является сообщение в блоге, которое Джефф недавно разместил здесь, когда работал администратором, все может случиться. Кроме того, поскольку каждый компьютер работает по-разному, эксплойт есть не у самого браузера. Иногда это сторонний плагин, такой как Flash.

Хорошая ссылка. Я знал, что у кого-то вроде Джеффа Этвуда будет пост на нем Humphrey Bogart 14 лет назад 0
Относится к тому, что «развертывание происходит быстрее, чем должно быть», заключается в том, что поставщики браузеров стремятся получить самые последние и лучшие версии, иногда представляя новые функции быстрее, чем они могут быть достаточно протестированы. Возможно, редкий случай, когда слишком большая конкуренция может быть плохой вещью? Michael Itzoe 14 лет назад 0
3
ChrisF

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

Другой аспект заключается в том, что для обеспечения интерактивности, которую пользователи и (что более важно) владельцы веб-сайтов хотят, чтобы браузеры выполняли код. Это еще одно слабое место.

3
chris

Здесь много ответов, все касаются разных причин, но основной ответ - «потому что там деньги».

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

2
Dan Rosenstark

Ответ dmckee - правильный, но все это можно суммировать с помощью одной вещи: сложное взаимодействие с неожиданными данными. Ваш браузер должен запускать код / ​​разметку, плагины и т. Д., Обрабатывать пользовательский ввод, плагины, которые запускают код и т. Д. Невозможно протестировать все взаимодействия, потому что вам потребуется весь Интернет - настоящий и будущий - в ваш набор тестов.

Когда вы тестируете программное обеспечение, вы проверяете диапазон нормальных и ненормальных входов, а затем вы ... готовы к бета-тестированию. Так что это все часть бесконечной бета-фазы :)

Кроме того, как говорит Крис, именно на этом деньги. Это означает, что браузеры - очень интересная цель.

1
Felix

Факт в том, что у каждого программного обеспечения есть свои слабые стороны. Ни один из них не содержит ошибок. И исправляя ошибки, вводятся новые.

Другой момент заключается в том, что браузер является одним из наиболее часто используемых приложений, и вы можете легко достучаться до многих людей. Это также делает интересным для атакующих находить слабые места.

0
JohnFx

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

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

Похожие вопросы