windows - verificerer proces integritet i hukommelsen?

Indlæg af Hanne Mølgaard Plasc

Problem



Det ser ud til, at det er umuligt at forhindre bestemte angribere i at ændre sin proceskode/data. Jeg håber at det i det mindste er muligt at opdage sådan manipulation.


Under Windows er det muligt at lytte til DLL-injektioner, WriteProcessMemory og CreateRemoteThread i den aktuelle proces?


Under Linux er det muligt at lytte til LD\_PRELOAD og DR rootkit?

Bedste reference


med nogle virkelig involverede kode kan du være i stand til at opdage dem ...
Alt afhænger af, hvor fast angriberen er ... Hvis de virkelig er beslægtede, så vil de bruge en rootkit tilgang - i så fald kan din app ikke gøre noget ved det (ingen afsløring, ingen stoppe så længe angriberne ved, hvad de er gør) ...


En anden tilgang kunne være at forsøge at gøre nogle hashing af dine segmenter i hukommelsen, mens de kører, men det ville tegne sig for en slangeolie, da selve hashingskoden ville fremvise et indgangspunkt for at omgå denne metode.


Udfør din kode inde i en selvbygget VM, som igen kommunikerer med resten af ​​systemet gennem en hypervisor ... hypervisoren skal selv gøres startlaster til systemet, så OS kun er et 'barn' af din hypervisor ... bør gøre det trick ... selvom du selv skal skrive alt det selv og sørge for at det ikke har nogen udnyttelig svaghed (ret sikker på, at ingen kan gøre det for et så komplekst stykke software) ...


ikke sikker på hvad du er imod, men så længe HW + SW din kode kører på, ikke er direkte under din fulde kontrol, er der altid en måde at gøre de ting du nævner og med en smule planlægning undgå detektion også ...


ELLER er denne 'kun' om beskyttelse mod piratkopiering/reversering af software?
Hvis så er der nogle foranstaltninger, selv nogle 100\% sikre dem, selvom det hele drejer sig om sikkerhedsbalance versus brugbarhed ...

Andre referencer 1


Huh, hvordan fortæller du, om LD\_PRELOAD er ondsindet eller ej? Hvad med ptrace?/Dev/[[k]] mem? Hvad med, når en proces planter et ondsindet plugin eller noget lignende i mappen til en anden process konfigurationsmappe? Hvad med delt hukommelse/IPC-manipulation?


Først og fremmest er det spild af tid og fuldstændig tåge at faktisk sælge som et legitimt produkt. Ikke sikker på hvad du forsøger at gøre. Hvis det er antivirus, anticheat for et spil eller DRM, så er det forgæves. Det eneste du kan gøre er at køre processen som en anden bruger, hvilket forhindrer andre processer i at ændre det i første omgang. Hvis det ikke er godt nok, er Linux ikke et sikkert operativsystem og vil aldrig være.


I teorien er det umuligt at opdage en proces s hukommelse bliver manipuleret med. I praksis afhænger det af, hvordan du definerer detektering, og hvilke slags falske positive og falske negativer, du bryr dig om.


Hvis du ved, at et programs normale opførsel ikke ændrer sig selv, ved du præcis, hvilke hukommelsessegmenter der skal være statiske, og du ved, at der ikke findes nogen legitime tredjepartsprogrammer på din pc, der tæmper med programmet, så kan du muligvis registrere hukommelse manipulation ganske let.


Den mest generelle løsning er at koble OS'ernes interprocess hukommelsesmodificeringsmekanismer som du sagde. Dette virker så længe fjendens proces ikke har tilstrækkelige privilegier til at fjerne din krog eller foretage visse OS-opkald, der omgår din krog.


Du kan også bare scanne hele processen igen og igen, checksumming hukommelsen ved hjælp af en sikker hashing algoritme. Så igen, hvis fjendens proces har privilegier at ændre din scanner, taber du.


Så ja, hvis processen ikke har privilegierne til at undergrave din scanner, hvorfor ville det have privilegier at ændre processen, du bryr dig om? Lyder som antivirus/anticheat/DRM til mig.