Le mode « Secure Virtual Workspace » ou « Bureau Virtuel » de Juniper fais appel à un vrai petit HIPS en mode user
.
Ce dernier repose sur une librairie dsjvd.dll
, systématiquement chargé dans les processus de la bulle.
Cet article ne le détaillera pas, mais il est tout à fais possible d’alterner une fonction hookée et une plus personnelle afin de sortir des fichiers de la bulle, d’en faire rentrer ou exécuter des programmes non autorisés.
- Registre (
advapi32
), viaInterceptRegistryFunctions
:RegCreateKeyExW
RegCreateKeyExA
RegOpenKeyExW
RegOpenKeyExA
RegCloseKey
RegSetValueExW
RegDeleteKeyW
RegDeleteKeyA
RegDeleteValueW
RegEnumKeyExW
RegEnumValueW
RegQueryInfoKeyW
RegQueryMultipleValuesW
RegQueryValueExW
RegQueryValueW
RegReplaceKeyW
RegRestoreKeyW
RegSaveKeyW
RegSetKeySecurity
RegOpenCurrentUser
SetNamedSecurityInfoW
GetNamedSecurityInfoW
- Appels noyau (
ntdll
), viaInterceptNativeFunctions
:NtCreateFile
NtOpenFile
NtClose
NtQueryInformationFile
NtSetInformationFile
NtQueryDirectoryFile
NtQueryAttributesFile
NtQueryFullAttributesFile
NtReadFile
NtWriteFile
NtMapViewOfSection
NtUnmapViewOfSection
NtCreateSection
NtOpenSection
NtQuerySection
- Fichier et mémoire (
kernel32/user32
), viaInterceptFileFunctions
FindFirstFileExW
FindFirstFileW
FindNextFileW
FindClose
SetFileAttributesW
GetFileAttributesW
GetFileAttributesExW
DeleteFileW
MoveFileW
MoveFileExW
MoveFileWithProgressW
CreateHardLinkW
CopyFileW
CopyFileExW
CreateDirectoryW
CreateDirectoryExW
RemoveDirectoryW
CreateFileW
SetEndOfFile
CloseHandle
FindFirstChangeNotificationW
ReadDirectoryChangesW
WriteProcessMemory
ReadProcessMemory
LoadLibraryExW
DuplicateHandle
FlushViewOfFile
VirtualAlloc
SwitchDesktop
- Impression (
gdi32/winspool
), viaInterceptDeviceFunctions
CreateDCW
OpenPrinterW
EnumPrintersW
GetDefaultPrinterW
AddPrinterDriverW
AddPrinterDriverExW
WritePrinter
- Presse-papier (user32), via
InterceptClipboardFunctions
OpenClipboard
CloseClipboard
EmptyClipboard
ChangeClipboardChain
CountClipboardFormats
GetClipboardOwner
EnumClipboardFormats
GetClipboardData
GetClipboardFormatNameA
GetClipboardFormatNameW
GetClipboardSequenceNumber
GetClipboardViewer
GetOpenClipboardWindow
GetPriorityClipboardFormat
IsClipboardFormatAvailable
RegisterClipboardFormatA
RegisterClipboardFormatW
SetClipboardData
SetClipboardViewer
- Processus (
kernel32/advapi32/ole32
), viaInterceptProcessFunctions
CreateProcessA
CreateProcessW
CreateProcessAsUserA
CreateProcessAsUserW
WinExec
ExitWindowsEx
ShellExecuteExW
CoGetClassObject
CoCreateInstanceEx
CreateProcessWithLogonW
OleRun