На главную | Содержание | Назад | Вперёд
Наши друзья

 

 

Автоматизированный глобальный аудит для выявления уязвимых мест

Очевидно, что процесс восстановления исходного кода программ проходит мед­ленно и не подается точным измерениям. Зарегистрировано множество случаев, ко­гда восстановление исходного кода в целях выявления ошибок в системе безопасно­сти могло бы оказаться весьма полезным, но у тестировщиков и хакеров и близко не было времени на проведение анализа каждого компонента программы, подобного тому, который мы выполнили в предыдущем разделе. Однако есть возможность ис­пользования автоматизированных средств проведения анализа. Программа IDA предоставляет платформу для добавления собственных алгоритмов анализа про­грамм. Создав специальный сценарий для IDA, можно автоматизировать некоторые задачи, выполнение которых требуется при выявлении уязвимого места. Далее мы рассмотрим пример чистого анализа по методу "белого ящика.
Возвращаясь к предыдущему примеру, предположим, что мы хотим найти другие ошибки, связанные с использованием функции wcsncat. Чтобы узнать, какие вызовы импортируются исполняемым файлом в Windows-системе, можно воспользо­ваться утилитой dumpbin.
dumpbin  /imports target.exe
Чтобы провести глобальный аудит всех исполняемых файлов в системе, можно написать небольшой Perl-сценарий. Сначала создадим перечень исследуемых ис­полняемых файлов. Для этого воспользуемся командой dir.
dir /В /S c:\winntV.exe > files.txt
Выполнение этой команды: приводит к созданию файла, содержащего перечень всех исполняемых файлов каталога winnt. Затем Perl-сценарий вызывает утилиту dumpbin для каждого из этих файлов и анализирует результат, чтобы определить, использовалась ли в них функция wcsncat.
open(FILENAMES, "files.txt"); while (<FILENAMES>) {
choe($J;
my Ifilinams = $ ;
$command - "dumpbin /imports $_ > dumpfile.txt"; #print "trying $command";
system($command);
open(DUMPFILE, "dumpfile.txt");
while (<DUMPFILE>)
{
if(m/wcsncat/gi)
{
print "$filename: $_";
}
}
close(DUMPFILE); close(FILENAMES);
Запуск этого сценария на системе в нашей лаборатории привел к получению сле­дующих результатов.
C:\temp>perlscan.pl
c:\winnt\winrep.exe: 7802833F 2Е4 wcsncat
c:\winnt\INF\UNREGMP2.EXE: 78028EDD 2Е4 wcsncat
c:\winnt\SPEECH\VCMD.EXE: 78028EDD 2Е4 wcsncat
c:\winnt\SYSTEM32\dfrgfat.exe: 77F8F2A0 499 wcsncat
c:\winnt\SYSTEM32\dfrgntfs.exe: 77F8F2A0 499 wcsncat c:\winnt\SYSTEM32\IESHWIZ.EXE: 78028EDD 2E4 wcsncat
c:\winnt\SYSTEM32\NETl.EXE: 77F8E8A2 491 wcsncat
c:\winnt\SYSTEM32\NTBACKUP.EXE: 77F8F2A0 499 wcsncat c:\winnt\SYSTEM32\WINLOGON.EXE: 2E4 wcsncat
Мы обнаружили, что несколько программ в системе Windows NT используют функцию wcncat. Нужно совсем немного времени, чтобы провести аудит этих фай­лов и узнать, уязвимы ли они в контексте тех же проблем, что и рассмотренная выше программа. С помощью этого метода вполне возможно исследовать библиотеки DLL и получить еще более длинный список.
C:\temp>dir   /В  /S  o:\winnt\*.dll   > files.txt
C:\temp>perl scan.pl
c:\winnt\SYSTEM32\AAAAMON.DLL: 78028EDD 2E4 wcsncat
c:\winnt\SYSTEM32\adsldpc.dll: 7802833F 2E4 wcsncat
c:\winnt\SYSTEM32\avtapi.dll: 7802833F 2E4 wcsncat

с:\winnt\SYSTEM32\AVWAV.DLL: C:\winnt\SYSTEM32\BR54 9.DLL: с:\winnt\SYSTEM32\CMPROPS.DLL: с:\winnt\SYSTEM32XDFRGUI.DLL: с:\winnt\SYSTEM32\dhcpmon.dll: с:\winnt\SYSTEM32\dmloader.dll: c:\winnt\SYSTEM32\EVENTLOG.DLL: с:\winnt\SYSTEM32\GDI32.DLL: c:\winnt\SYSTEM32\IASSAM.DLL: c:\winnt\SYSTEM32\IFMON.DLL: c:\winnt\SYSTEM32\LOCALSPL.DLL: с:\winnt\SYSTEM32\LSASRV.DLL: с:\winnt\SYSTEM32\mpr.dll: с:\winnt\SYSTEM32\MSGINA.DLL: с:\winnt\SYSTEM32\msjetoledb4 0.dll: c:\winn t\SY STEM3 2\МYCOMPUT.DLL: с:\winnt\SYSTEM32\netcfgx.dll: с:\winnt\SYSTEM32\ntdsa.dll: с:\winnt\SYSTEM32\ntdsapi.dll: c:\winnt\SYSTEM32\ntdsetup.dll: с:\winnt\SYSTEM32\ntmssvc.dll: С:\winnt\SYSTEM32\NWWKS.DLL: с:\winnt\5YSTEM32\ODBC32.dl1: c:\winnt\SYSTEM32\odbccp32.dll: c:\winnt\SYSTEM32\odbcjt32.dll: c:\winnt\SYSTEM32\OIPRT4 00.DLL: с:\winnt\SYSTEM32\PRINTUI.DLL: с:\winnt\SYSTEM32\rastls.dll: c:\winnt\SYSTEM32\rend.dll: с:\winnt\SYSTEM32\RESUTILS.DLL: с:\winnt\SYSTEM32\SAMSRV.DLL: с:\winnt\SYSTEM32\scecli.dll: с:\winnt\SYSTEM32\sces rv.dll: с:\winnt\SYSTEM32\sqlsrv32.dll: c:\winnt\SYSTEM32\STI_CI.DLL: ■c:\winnt\SYSTEM32\USER32.DLL: C:\winnt\SYSTEM32\WIN32SPL.DLL: с:\winnt\SYSTEM32\WINSMON.DLL: с:\winnt\SYSTEM32\dllcache\dmloader.dll: С:\winnt\SYSTEM32\SETUP\msmqocm.dll: c:\winnt\SYSTEM32\WBEM\cimwin32.dll: с:\winnt\SYSTEM32\WBEM\WBEMCNTL.DLL:

 


78028EDD

2Е4

wcsncat

78028EDD

2Е4

wcsncat

78028EDD

2Е7

wcsncat

78028EDD

2Е4

wcsncat

7802833F

2Е4

wcsncat

 

2FB

wcsncat

7802BEDD

2Е4

wcsncat

77F8F2A0

499

wcsncat

78028EDD

2Е4

wcsncat

78028EDD

2Е4

wcsncat

7802833F

2Е4

wcsncat

 

2Е4

wcsncat

77F8F2A0

499

wcsncat

7802833F

2Е4

wcsncat

7B02833F

2Е2

wcsncat

78028EDD

2Е4

wcsncat

7802833F

2Е4

wcsncat

7802833F

2Е4

wcsncat

7802833F

2Е4

wcsncat

7802833F

2Е4

wcsncat

7802833F

2Е4

wcsncat

7802833F

2Б4

wcsncat

7802833F

2Е4

wcsncat

7802833F

2Е4

wcsncat

7802833F

2Е4

wcsncat

78028EDD

211=3

wcsncat

7302833F

2Е4

wcsncat

7802833F

2Е4

wcsncat

7S02833F

2Е4

wcsncat

7802833F

2Е4

wcsncat

7802833F

2Е4

wcsncat

7802833F

2Е4

wcsncat

7802833F

2Е4

wcsncat

 

2Е2

wcsncat

78028EDD

2Е4

wcsncat

77F8F2A0

4 99

wcsncat

7802833F

2Е4

wcsncat

78028EDD

2Е4

wcsncat

 

2FB

wcsncat

7802833F

2Е4

wcsncat

7802B33F

2Е7

wcsncat

78028EDD

2Е7

wcsncat

 

На главную | Содержание | Назад | Вперёд
 
Яндекс.Метрика