Architektura Stuxneta jest jedną z najbardziej wyrafinowanych. Stuxnet składa się z dużego pliku dynamicznie połączonej biblioteki (DLL) z rozszerzeniem typu „.dll”, który zawiera około 32 eksporty i 15 zasobów. Dropper Stuxnet to plik o nazwie ~ WTR4132.TMP, zawierający wszystkie powyższe elementy w określonej sekcji pliku o nazwie „stub”. Rysunek przedstawia cykl życia operacji Stuxneta, który przedstawia kluczowe operacje podczas ładowania Stuxneta.
Najpierw ładuje plik o nazwie ~ WTR4141.TMP, a następnie inny plik DLL ~ WTR4132.TMP.
Plik ~ WTR4132.TMP ładuje główny plik Stuxnet.dll. Poniżej omówiono ważne funkcje wywoływane przez ładowanie tych plików. Zewnętrzny dysk USB zainfekowany robakiem Stuxnet zazwyczaj zawiera sześć następujących plików [5], których funkcje wyjaśniono w następujący sposób:
- ~ WTR4141.TMP
- ~ WTR4132.TMP
- „Kopia skrótu do .lnk”
- „Kopia kopii skrótu do .lnk”
- „Kopia kopii kopii skrótu do .lnk”
- „Kopia kopii kopii kopii skrótu do .lnk”
Stuxnet rozprzestrzenia się na wszystkie dyski wymienne, upuszczając pliki skrótów (.lnk), które są automatycznie uruchamiane, gdy dostęp do dysku wymiennego uzyskuje się za pomocą aplikacji wyświetlającej ikony skrótów. Dysk zewnętrzny zawiera również kopię skrótu do tego pliku „.lnk”. Zawiera również kopię kopii tego skrótu, kopię kopii kopii tego skrótu, a także kopię kopii kopii kopii tego skrótu
~ WTR4141.TMP
Zaraz po załadowaniu tego pliku przechwytuje on szereg funkcji zarówno w kernel32.dll, jak i ntdll.dll. W kernel32.dll wywoływane są następujące funkcje: (1) FindFirstFileW (.), (2) FindNextFileW (.) I (3) FindFirstFileExW (.). Funkcje wywoływane z pliku ntdll.dll to NtQueryDirectoryFile (.) I ZwQueryDirectoryFile (.).
~ WTR4132.TMP
~ WTR4132.TMP to plik DLL załadowany do pliku explorer.exe. Po załadowaniu rozpoczyna wykonywanie, wyszukując w nim sekcję o nazwie „.stub”. Ta sekcja .stub zawiera główny plik .dll, który zawiera wszystkie funkcje i mechanizmy, takie jak rootkity. Następnie ładuje główny plik .dll, najpierw przydzielając bufor pamięci, a następnie poprawiając sześć plików ntdll.dll o następujących nazwach:
- ZwMapViewOfSection (.)
- ZwCreateSection (.)
- ZwOpenFile (.)
- ZwZamknij (.)
- ZwQueryAttributesFile (.)
- ZwQuerySection (.)
Te poprawki powodują, że plik DLL jest ładowany nie z dysku twardego, ale z pamięci. Kolejność ładowania plików i cały cykl życia szkodliwego oprogramowania Stuxnet pokazano na rysunku .