Возможное дублирование:
может ли компьютер быть заражен вредоносным ПО через веб-браузер?
Общеизвестно, что вы можете заразиться вирусом, просто посетив веб-сайт. Но как это возможно?
Эти вирусы атакуют пользователей Windows, Mac и Linux, или пользователи Mac / Linux защищены?
Я понимаю, что, очевидно, я могу заразиться вирусом, загрузив и выполнив .exe в Windows, но как я могу заразиться вирусом, просто зайдя на веб-сайт?
Запрограммированы ли вирусы на JavaScript? (Это имеет смысл, так как это язык программирования, который работает локально.) Если это так, какие функции JavaScript чаще всего используются?
Ответы:
Примеры в паренсе. Существует ошибка в браузере (IE), интерпретаторе javascript или в плагине (например, flash или java). Эта ошибка приводит к выполнению кода - эта часть может быть действительно сложной, но она часто включает в себя ошибку «использование после освобождения» и манипулирование кучей .
Тогда у меня работает какой-то шеллкод. Код шелл-кода должен избегать любой защиты, которую имеет браузер - для ошибки V8 / Chrome вы должны выйти из песочницы chrome и победить DEP и ASLR. Для IE вам придется побить DEP и ASLR, а затем выйти из режима низкой целостности. Для Java вы должны ... ничего не делать - вы все золотые. (Вот почему было множество ошибок Java.)
Итак, теперь, когда у меня на вашем компьютере работает произвольный код, вы (я не администратор, не так ли?) Я могу скачать файл из Интернета и запустить его, удалив на вашем компьютере вредоносное ПО.
Конкретно - нет. Javascript - это вектор атаки, который люди используют для поиска ошибки в браузере. Они также могут использовать Flash, Java или Silverlight в качестве вектора атаки. В случае с javascript они пишут javascript, чтобы вызвать ошибку браузера, а затем вирус в конечном итоге удаляется из Интернета.
источник
К сожалению и порочно, существует множество способов, которыми это может произойти.
Вы абсолютно правы, удивляясь, что «читающее устройство», такое как браузер, может активно манипулировать вашей собственной системой (и причинять вред). Чтение книги не истощает ваш банковский счет, а открытие газеты не повредит вашим детям, так почему же открытие веб-сайта может сделать все это и даже больше?
Эта проблема возникает всякий раз, когда существует вероятность того, что ваша система может каким-либо образом выполнить чужие данные из Интернета, которые, как мы всегда должны предполагать, создаются с предельной злонамеренной целью.
Если вы просто сидите в командной строке и
wget http://evil.com/hitme.php
набираете, HTTP-клиент wget просто записывает двоичный дамп запроса на ваш диск, и ничего плохого не произошло (кроме, возможно, заполнения вашего диска). Но если вы введете адрес в свой браузер, ваш браузер сможет делать все, что захочет - отформатировать жесткий диск, отправить данные своей кредитной карты и т. Д. Вы должны довериться своему браузеру, чтобы он этого не делал. Большинство браузеров действительно стараются не делать этих плохих вещей, но мы, пользователиовец, требовали, чтобы браузеры могли делать все больше «хитрых трюков» и демонстрировать автоматическое поведение, основываясь на инструкциях из Интернета., Наши требования привели к созданию технологий исполнения кода на стороне клиента, таких как JavaScript и Flash, которые загружают произвольный, чужой, ненадежный, вредоносный код и исполняют его, все для нашего удовольствия.Причина, по которой люди, которые придумали эти технологии, не были сразу же линчеваны, заключается в том, что: а) это заставило кроликов танцевать на наших экранах, и б) они утверждали, что они ввели достаточно проверок безопасности в конструкцию, чтобы предотвратить манипулирование произвольным вредоносным кодом локальная система (например, запрещение чтения / записи локальных дисков, чтение / запись в буфер обмена, поля формы чтения / записи в других вкладках).
К сожалению, подход к дизайну «сначала разрешить все, а затем повсеместно покрыть несколько плохих мест, о которых мы можем подумать», в корне ошибочен, и теперь мы сталкиваемся с бесконечным потоком новых способов, с помощью которых наши функции удобства на стороне клиента могут использоваться для компрометации наших систем.
Единственный умеренно безопасный выход - отключить JavaScript и плагины в вашем браузере. Безопасно, как в 1995 году.
источник
В этих ответах, которые я действительно хочу обойти, я действительно хотел обойти эту проблему: причина, по которой вы можете получить вирус с веб-страницы, заключается в том, что в каком-то программном обеспечении, которое вы запускаете, есть ошибка - уязвимость безопасности .
На каждом этапе процесса создания программного обеспечения создатели Flash; вашего браузера; вашей операционной системы пытался убедиться, что случайный, вредоносный код из Интернета не может просто найти способ выполнить себя. К сожалению, сделать это сложно . Действительно сложно .
Так что, как и все люди, разработчики этого программного обеспечения обязаны ошибаться: анализатор HTML случайно перезаписывает один байт в стеке, когда вы заканчиваете HTML
</p
. Они случайно использовалиsigned int
вместоunsigned int
. JIT-компилятор javascript случайно пытается преобразовать индекс массива в нулевой указатель. Все эти уязвимости, а также миллионы других постоянно встречаются в программном обеспечении либо из-за недостатка знаний в области безопасности, либо из-за недосмотра, либо из-за простой ошибки. Программное обеспечение просто путь слишком сложен , чтобы поймать их всех.Из-за этого операционные системы имеют встроенные механизмы для предотвращения повреждения системы, даже когда обнаружена уязвимость. Ваша ОС, вероятно, имеет DEP и ASLR . Программы могут иметь различные средства защиты, добавленные компилятором. Браузеры работают с меньшими привилегиями. Программы запускаются с помощью автоматического анализа и тестирования, которые могут выявить многие из этих уязвимостей.
Я хочу сказать , что никто не позволяет этому случиться, но невозможно разработать полностью безопасное программное обеспечение, как невозможно создать полностью безопасный сейф. Кто-то, у кого достаточно времени, знаний, денег и стимулов, всегда найдет способ взломать его. И проблема с этим сейфом заключается в том, что как только некоторые хакеры взломают его копию, они могут легко открывать другие копии по всему миру, не выходя из своей комнаты.
источник
Ваши конкретные вопросы
Ваш браузер постоянно выполняет код (он состоит из кода). Когда он загружает веб-страницы, этот код загружает и отображает произвольные данные (пиксели, символы и т. Д.).
Код также данные (на уровне процессора).
Поскольку код является данными, если ваш браузер пытается выполнить данные (независимо от того, какое расширение файла или формат), он может действительно работать (если он создан правильно).
Обычно ваш браузер не будет настолько глуп, чтобы пытаться запускать случайные данные, которые он скачал. Однако это может произойти.
Один из способов сделать это - сформировать данные таким образом, чтобы при чтении они «просачивались» и перезаписывали данные, составляющие исполняемую программу браузера. Для этого в браузере должна быть ошибка (чаще всего в этом случае допускается переполнение буфера ).
Ваш браузер также запускает программы поверх веб-страниц. Javascript, как вы упомянули, является одним из таких типов кода. Но есть десятки. ActiveX, Flash, надстройки, сценарии обезжиривания и т. Д. - это весь код, который вы запускаете при посещении веб-страниц. Этот код может содержать ошибки, которые вызывают нарушения безопасности.
Ни одна из используемых нами платформ не защищена от ошибок, поскольку все они используют процессоры, которые обрабатывают данные как код. Это просто, как работает наша существующая компьютерная архитектура.
Причиной этого мифа является то, что Mac и Linux имеют гораздо более низкий уровень внедрения по сравнению с машинами Windows (на уровне настольных компьютеров). Таким образом, программное обеспечение для настольных компьютеров на этих компьютерах не так часто становится целью для создателей вирусов.
Вирусы не происходят ни по волшебству, ни по эволюции случайных ситуаций (как это делают биологические вирусы). Это программное обеспечение, написанное отдельными лицами или командами разработчиков. И они хотят ориентироваться на самую большую долю рынка, так же, как это делают обычные поставщики программного обеспечения.
Что касается того, может ли один вирус предназначаться для нескольких платформ; Все браузеры работают с разным кодом, поэтому будут иметь разные ошибки (даже один и тот же браузер на разных платформах). Но есть несколько библиотек кода, которые используются на разных платформах. Если такая библиотека содержит ошибку, возможно, что эксплойт может существовать на нескольких платформах.
Но, в зависимости от типа совершенной атаки, вирус, написанный для Mac не-Intel, может не работать на Intel Mac, и наоборот, потому что они имеют разные процессоры. Для разных процессоров данные, представляющие код, имеют другой формат.
Однако, когда вы говорите о виртуальной машине или языке сценариев, атаки могут быть независимыми от платформы. Это приводит нас к следующему вопросу ...
Некоторые вирусы есть. Информация, которую я изложил выше (об эксплойтах переполнения буфера), обычно использовалась бы как атака вне Javascript, но в равной степени применима и к вирусу, созданному для атаки на эксплойт в интерпретаторе Javascript.
Javascript также будет иметь свой собственный набор эксплойтов на рабочем уровне, который превышает переполнение буфера. Существует целый ряд способов атаковать любое программное обеспечение. Чем больше программное обеспечение (строки кода), тем больше вариантов пользовательского ввода (в данном случае типов кода) оно может получить, и тем больше ошибок оно может содержать.
Кроме того, чем более уязвимым является работающее программное обеспечение (например, программное обеспечение, на котором работает сервер), тем уязвимее оно для атаки.
В общем, это называется поверхность атаки
Подвиги в общем
У Microsoft есть мнемоника для распространенных типов эксплойтов, и все они имеют свои интересные свойства и различные уровни программного обеспечения, на которое они могут атаковать - STRIDE , что означает:
Некоторые из них чаще используются в атаке на основе Javascript, чем другие, некоторые на серверах, некоторые на файлах данных (например, изображения).
Но безопасность - это большая и развивающаяся область. Слишком много информации, чтобы полностью ответить на все ваши вопросы.
источник
Термин называется «Drive By Download»
Вот хороший пример того, как это происходит, когда вы ничего не делаете, кроме как посещаете веб-сайт.
источник
Хитрость в том, что создатели вирусов / эксперты по безопасности находят лазейки в браузерах. Проще говоря, они находят дыру в безопасности браузера и могут использовать эту дыру, чтобы что-то сделать с вашей системой. Есть случаи, когда у Adobe Flash были дыры, и с конкретным кодом это можно было бы использовать. Есть также строки JavaScript, которые могут вызвать эти дыры в безопасности.
Тем не менее, если вы обновляете свой браузер, очень маловероятно, что вы заразитесь, просто посетив веб-сайт (загрузка файлов и их выполнение - другая история!)
источник
Вирусы, подобные тем, которые заражают вас при посещении веб-сайта, используют уязвимость в системе посещений. Например, браузер или плагин могут иметь недостаток в программировании, так что изображение может быть разрешено (случайно, с точки зрения разработчика браузера) выполнить произвольную команду на посещающем компьютере.
Таким образом, предположительно каждая операционная система является потенциальной жертвой, но разработчики вирусов обычно создают свои атаки исходя из эффекта масштаба - чем больше пользователей, тем лучше. Вот почему Windows и Internet Explorer чаще становятся мишенями.
Любая часть браузера или плагина может быть поражена вирусом. Вышеупомянутый образ «это вызвало вирус» был реальным примером. Вспышка является общей целью. Движок JavaScript в браузерах тоже. Есть много разных вещей, которые могут пойти не так.
Лучше всего запустить качественный антивирусный сканер. Я использовал NOD32 от Eset . Кроме того, не нажимайте на что-то, если это слишком хорошо, чтобы быть правдой. Используйте NoScript в Firefox и AdBlock .
источник
Если веб-сайту удается нарушить безопасность вашего браузера, он может испортить все, что принадлежит вам на компьютере. Однако, если он может повысить свои привилегии и получить административный доступ, тогда он может испортить что-нибудь в системе.
Давно считалось, что получить административные привилегии на компьютере с Unix (например, Linux, Mac или BSD) труднее, чем на Windows. Тем не менее, недавняя (с Windows Vista) модернизация функций безопасности от Microsoft, возможно, сделала Windows намного более безопасной, чем раньше - или, по крайней мере, это то, во что они бы поверили.
источник