LiteNet.Ru - Актуально о ПК и ПО. 2006-2019.
СТАТЬИ | НОВОСТИ | ПРОГРАММЫ | ОБРАТНАЯ СВЯЗЬ | КАРТА САЙТА
Сейчас на сайте: 8 пользователей онлайн
Обновления
Материал Установил CentOS 7 как легко и просто настроить ssh доступ? [24.03.24]
Комментарии Спасибо... [17.02.24]
Материал Форма ввода php [08.05.23]
Материал Windows 11 LTSC выйдет во второй половине 2024 года [08.05.23]
Материал Microsoft прекратит выпуск обновлений для Windows 10 [29.04.23]
Комментарии Огромный респект и... [04.10.22]
Комментарии не помогло... [10.07.22]
Комментарии не получается войт... [02.11.21]
Комментарии Да нет в редакторе... [05.10.21]
Комментарии Toshiba Tecra s11 ... [21.07.21]
Комментарии Все получилось, сп... [21.07.21]
Комментарии не сработало... [04.06.21]
Комментарии Доброго времени! У... [27.03.21]
Комментарии У меня этот метод ... [19.03.21]
Комментарии всё испробовал,не ... [17.03.21]
Материал Представлена настоящая зарядка по воздуху Xiaomi Mi Air Charge [31.01.21]
Материал Отныне для запуска WhatsApp на ПК и в браузере требуется биометрия [31.01.21]
Материал Google Chrome 88.0.4324.104 [31.01.21]
Материал Avast Free Antivirus 20.10.5824 [31.01.21]
Материал Яндекс.Браузер 20.12.3.138 [31.01.21]
Материал Maxthon 6.1.1.1000 [31.01.21]
Материал MKVToolnix 53.0.0 [31.01.21]
Материал ProduKey 1.95 [31.01.21]
Комментарии Самый лучший брауз... [17.11.20]

RSS

Последние добавленные статьи

Компьютерная вирусология: основы
21.02.2006

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

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

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

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

Тип 1. У компьютерных вирусологов есть выражение: "Скальпель, забытый в животе". Дело в том, что любой программист в ходе написания и последующей отладки программы использует множество вспомогательных функций, позволяющих, например, смотреть или менять значения переменных, передавать управление в программе в обход тех или иных фрагментов кода и так далее. Конечно же, в конце, когда программа "вылизывается" и выпускается конечный продукт, все отладочные средства должны убираться. Но программисты, как мы уже сказали, тоже люди, и вполне могут забыть о той или иной функции, которая использовалась лишь временно и использовалась сугубо во вспомогательных целях. Если злоумышленник обнаружит соответствующий кусок кода, то вполне сможет использовать его в собственных целях.

Другой (к сожалению, нередкий) вариант - это когда программист вполне сознательно оставляет в своих программах лазейки (функции), позволяющие выполнять различные "нештатные" операции. Зачем это делается - вопрос отдельный. Кто-то из добрых побуждений (помочь системным администраторам), кто-то из злых (обрести "власть" над будущими пользователями программы). К этому типу брешей относится, например, известная брешь в MS SQL Server, которая позволяет пользователю с определенным логином получить права администратора на сервере.

Тип 2. Этот тип уязвимостей можно кратко охарактеризовать известной фразой: "Хотели как лучше, а получилось как всегда". Бреши этого типа обычно бывают связаны со специфическими возможностями программ, которые их создатели планировали использовать исключительно на благо пользователей. Но в результате фантазия хакеров оказывается более развитой, чем фантазия разработчиков, и созданные с благими намерениями функциональные возможности оборачиваются против пользователей. Типичный пример - появление т.н. макровирусов. Разработчики "революционной" версии MS Office хотели сделать благое дело - встроить в программный пакет мощную систему программирования, удобное средство для автоматизации множества задач. Что из этого вышло, известно, к сожалению, всем...

Тип 3. К этому типу относятся весьма распространенные уязвимости особого типа - возможности нестандартных манипуляций с программой. Программист, пишущий программу, изначально рассчитывает на то, что пользователь будет работать с ней так-то и никак иначе. Хакер же первым делом начинает думать: а что с программой еще можно такого-этакого сделать? А что будет, если сделать то-то или то-то?

В результате значительное число брешей используется следующим образом: злоумышленник подбирает такие наборы исходных данных для программы (или производит другие манипуляции с программой), которые даже гипотетически не предусматривались авторами программы. В этом случае не помогает и предусмотренная разработчиками "защита от дурака". Классические примеры брешей третьего типа основаны на так называемом "переполнении стека". Суть его в следующем. Как правило, в исполняемых файлах сначала располагается секция данных (именно в ней и хранятся значения вводимых исходных данных), а затем - сам исполняемый код программы. Если в программе не предусмотрена специальная защита, злоумышленник может таким образом подобрать исходные данные, чтобы они превысили допустимый размер и "вторглись" в секцию программного кода. Если при этом данные подобраны таким образом, чтобы фрагмент, попавший в секцию кода, был "осмысленным", то злоумышленник может заставить атакуемый компьютер выполнять свои команды. Описанный прием атаки широко известен, но разработчики программного обеспечения не учитывают его с завидным постоянством.

Наиболее известный, ставший классическим, пример использования процедуры переполнения стека - эпидемия вируса Морриса в 1998 году, которая (по самым скромным оценкам) стоила человечеству более 150.000.000 долларов.

Другой вариант использования бреши этого типа - такие манипуляции со вполне корректными исходными данными, которые не могли предвидеть программисты. В качестве примера можно привести способ взлома популярного SQL-сервера MySQL, при котором пользователь, имеющий право администрировать какую-нибудь базу данных на сервере, при определенных условиях мог получить права администратора сервера, переопределив пароль администратора. К этой же категории относится брешь в Microsoft Internet Information Server (IIS). С этой брешью была связана одна из самых громких вирусных эпидемий - эпидемия червя "CodeRed". Принципиальной особенностью "CodeRed" является то, что в процессе работы он не создает и не использует никаких временных или постоянных файлов. Данный червь уникален: он существует либо в системной памяти зараженных компьютеров, либо в виде TCP/IP-пакета при пересылке на удаленные машины. Подобная "бестелесность" представляет серьезную проблему для защиты серверов, поскольку требует установки специальных антивирусных модулей на межсетевые экраны.

Но что бы ни говорили, а все же самая уязвимая часть компьютера - это пользователь. Элементарная человеческая лень препятствует установке и/или обновлению антивирусов, файрволлов и прочего подобного ПО. И лишь мизерная часть пользователей устанавливает патчи, даже те, которые специалисты по компьютерной вирусологии классифицируют как "критические" для обеспечения безопасности.

Что еще почитать?


Оставленные комментарии:


Всего 0 комментариев


Введите Ваше имя:


Не используйте HTML и ВВ-коды - не работает. Пользуйтесь смайликами :)
Very HappySmileLaughingCoolWinkSurprised
RazzSleepSadShockedEvil or Very MadRolling Eyes

В этом поле Вы можете ввести текст комментария:


До конца всего осталось символов

Код на БОТливость: Код на БОТливость:
Введите код: