Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
jegocyfrowypodpisniejestjużpoprawny,atymsamympowstrzymuje
toOSprzedzaładowaniemsterownikawsystemach64-bitowych.Twórcy
złośliwegooprogramowaniaodpowiedzielinatoopracowaniemTDL4.
Zarównotenmechanizm,jakisposóbjegoobejściaomówimyszczegóło-
wowrozdziale6.
Kontrolaprzepływudanych
Abywypełnićswojąmisjęniewykrywalności,rootkityjądramusząmodyfiko-
waćprzepływsterowanialubprzepływdanych(alboijedno,idrugie)syste-
mowychwywołańjądra,ilekroćoryginalnyprzepływsterowanialubdanych
systemuoperacyjnegomógłbyujawnićobecnośćdowolnychkomponentów
złośliwegooprogramowaniawstaniespoczynku(np.plików)albodowolnych
spośródjegouruchomionychzadańlubartefaktów(takichjakstrukturyda-
nychjądra).Wtymcelurootkitytypowowstrzykująswójkodwjakieśmiejsce
naścieżcewykonaniaimplementacjiwywołańsystemowych;lokalizacjatych
hookówkodujestjednymznajbardziejedukacyjnychaspektówrootkitów.
BringYourOwnLinker
Tworzeniehooków(zahaczanie)tozasadniczokonsolidowanie.Nowocze-
snerootkityprzynosząwłasnelinkery,abypołączyćswójkodzsystemem,
którytowzorzecprojektowynazwaliśmyBringYourOwnLinker(wykorzy-
stajwłasnykonsolidator).Abymócniewidoczniewstawićtefikonsolidato-
ry”,TDL3wykorzystujekilkatypowychzasadprojektowaniazłośliwego
oprogramowania.
Popierwsze,celmusipozostaćdziałającymimowstrzykniętegodo-
datkowegokodu,ponieważnapastniknicniezyska,amożewielestracić,
psującatakowaneoprogramowanie.Zpunktuwidzeniainżynieriiopro-
gramowaniazahaczaniejestmontowaniemoprogramowaniaiwymaga
ostrożnegopodejścia.Napastnikmusisięupewnić,żesystembędzieuzy-
skiwałdostępdonowegokodutylkowprzewidywalnymstanie,abykod
tenmógłzostaćpoprawniewykonany,abyuniknąćdowolnychawarii
lubnietypowegozachowania,któreprzyciągnęłobyuwagęużytkownika.
Mogłobysięzdawać,żerozmieszczeniehookówograniczonejesttylko
wyobraźniąautorarootkita,alewrzeczywistościmusiontrzymaćsięsta-
bilnychgranicoprogramowaniaiinterfejsów,którenaprawdędobrze
zna.Niejestwięczaskoczeniem,żehookizazwyczajodwołująsiędotych
samychstruktur,któreużywanedlanatywnejfunkcjonalnościłącze-
niadynamicznego,zarównotejudokumentowanejpublicznie,jakinie.
Tabelewywołańzwrotnych,metodyiinnewskaźnikifunkcji,którełączą
warstwyabstrakcjilubmodułyoprogramowanianajbezpieczniejszymi
miejscamidlahooków;przechwytywaniepreambułfunkcjirównieżsię
dobrzesprawdza.
8
Rozdział1