Nějak mi to nedá a musím trochu zareagovat na příspěvky Wordstar14, jsou totiž plné předpojatosti a nepřesností:
1) Malware v současné době je vytvářen především kvůli tomu, aby vydělával prachy. Prachy jsou tam, kde jsou lidi. Až bude Linux rozšířený tak jako Windows, uvidíš co se najde bezpečnostních děr. Další tam pak zatáhnou výrobci softwaru třetí strany. Příkladem je nárůst malwaru zacílený na Android, který jemimochodem založený na jádře Linuxu. Na OS BADA taky nenajdeš malware, protože není rozšířený.
2) Většinu děr zatahují do Windows produkty třetích stran (např. v mnoha případech nepoužívají safe funkce pro práci s řetězci, které významě snižují možnost použití metody přetečení bufferu)
3)
Susti si ho sam OS, ked sa do registra zapise prislusny kluc a kedze to ma automaticky nastavene execute o zabavu nieje nudza. Najsuper je to, ze execute sa netyka len FS, ale aj kazdej pametovej stranky v oblasti virtualnej adresacie. Nix ma stranky nastavene na Non-execute, presne naopak ako ma BillOS.
U paměťové stránky ze které chceš spouštět kód, musí být explicitně nastaven příznak PAGE_EXECUTE. Pokud tomu tak není a je aktivní DEP, obdržíš při pokusu o spuštění dat v takové stránce, vyjímku.
Navíc adresové prostory procesů jsou od sebe izolovány a abys mohl zapisovat do paměťového prostoru cizího procesu, potřebuješ debug privilegium, ke kterému se dostaneš pouze jako administrátor.
Execute u souborového systému mi budeš muset osvětlit, nevím, co máš na mysli.
4)
tak aby bolo mozne spustit v pameti akykolvek kod napriklad aj cisty text v ASCII
Nevím jak to konkrétně myslíš, ale obsah každého spustitelného souboru můžeš také považovat za ASCII text.
Koneckonců každý znak je tvořen číselnou hodnotou a strojová instrukce je také jen číselná hodnota.
5)
Kod aplikacii sa miesa s kodom systemu
Tak to jsi kamaráde v dobách Windows 98, u Windows s jádrem NT ani náhodou. Kód jádra je izolovaný od uživatelskélského režimu. Kód jádra, ovladačů a HALu běží v ring0, aplikace v ring3. Chráněno je to segmentací a stránkováním. Princip je téměř stejný jako v Linuxu.
6)
DLL-ky nemaju signatur
Máš-li na mysli kontrolní součet, tak mají.
7) Pominu-li Windows XP, kde to nebylo s bezpečností nijak růžové, další verze Windows (hlavně 64 bitové) jsou postaveny skvěle. Za většinou infekcí operačního systému pak stojí uživatel. Když někdo vypne UAC, protože ho to obtěžuje, instaluje nedůvěryhodné pluginy a pod. pak se není čemu divit.
8 )
Konkretne si nastav FS tak aby zapisovane subory do temp nemali atribut "X" (execute).
Jak konkrétně? Napadá mě pouze upravení bezpečnostního deskriptoru složky, pak ale budeš mít problémy s instalacemi aplikací.
A odstran z NTFS funkcionalitu streamov
To asi těžko, protože je to princip NTFS
Je totiz mozne vytvorit subor s nulovou dlzkou a moze obsahovat uplne hocico aj vir, ktory nieje beznymi prostriedkami detekovatelny.
Každý antivir kontroluje alternativní datové proudy souborů. To jsi se vrátil hodně daleko v čase, do doby kdy se to nedělalo.
9)
echo moj prvy vir > pokus:stream
