Am 17-Sep-01 schrieb Peter Blancke :
On Mon, 17 Sep 2001, Guido Schiffer wrote:
Angenommen ein Virus verändert den Kernel, dann muß er ja auch neukompiliert werden,
Vorausgesetzt, er aendert den Sourcecode. Dann ja. Bei intimer Kenntnis der Binaries laesst sich der Kernel, der sich gerne als /boot/vmlinuz wiederfindet, aber auch direkt abaendern, was zweifelsohne weitaus diffiziler ist. So etwas haben wir aber bereits unter DOS-Zeiten gemacht, um speicherresidente Befehle aus COMMAND.COM fuer allzuneugierige Kunden stillzulegen. Das geht auch mit dem binaeren Kernel-Code.
was naturgemäß ordentlich trafic auf der platte verursacht. Eigentlich sollte man das doch merken, oder?
Vorausgesetzt, man sitzt neben dem Server. Einer unserer Server steht aber absolut abseits und ausserdem kann ja der Job auch nachts gegen 2 Uhr stattfinden, da bin ich gewoehnlich nicht hier.
Es gibt nur einen "kleinen" Haken An der Sache : Ein Programm das den Kernel ändern will hat viel vor sich : Es muß zb erkennen ob nun ein 2.0 , 2.1, 2.2, 2.3, 2.4 installiert ist - und zb ob es ein originaleer kernel ist oder ein gepatchter ( wer will kann mal ja folgenden "Joke" machen : kernel 2.4.4.Suse braten und dann dasselbe mit den original-sourcen von kernel.org - und dann vergleicht mal die bzimages) ;)) weil einen Nachteil hat die ganze sache : was will der Virus wohinschreiben ? weil das problem ist ja das das kernel-binary ähnlich aufgebaut ist wie command.com unter Dos-Zeiten befehl1<programmcode>befehl2<programmcode>befehl3 man konnte unter dos zwar einen befehl stillegen / umbenennen aber es war und ist nicht möglich den programmcode beliebig zu ersetzen, da man von der länge abhängig ist - also zb aus dem dir-befehl ein noch so simples spiel zu machen ist zum scheitern verurteilt - weil die länge des programmcodes einfach nicht ausreichend ist 1.dasselbe gilt unter UNIX/Linux 2. sind etwa 50-75% alles kernel-routinen bei versionssprüngen (zb 2.0->2.1) auf anderen stellen - außerdem ist die frage ob die fragliche / benötigte Routine wo sich der Virus reinschreiben will/muß fest im kernel ist oder als modul. von daher ist dieser weg recht unrentabel weil 1. nicht jeder Linuxrechner zb Kernel 2.4 hat 2. in dem virenprogramm ein Schutz vorhanden sein muß der den Virus schützt ( sonst bräuchte man ja nur den kernel neu übersetzen oder von CD neu installieren 3. müßte ja der virus nicht nur /boot/vmlinuz infizieren - gerade SuSE - User sollten ja wissen, das zb. bei 7.2 standardmäßig 2 Kernel in /boot stehen ( vmlinux und vmlinuz.suse ) - und wenn man einen eigenen Kernel bäckt nach SuSE-Handbuch sogar einen dritten ( .old ) wo man ja alternativ booten könnte und man wäre virenfrei wobei zb bei mir boot/vmlinuz gar ned als standard-kernel gebootet wird Also müßte so ein virus auch die lilo-konfig lesen und auswerten können so nun mal gesetzt den fall jemand vesucht das alles ! unter einen Hut zu bekommen : 1. Wäre der VirusCode , nur um sein eigenes Dasein behaupten zu können zu groß um unauffällig sein zu können. ( ich persönlich gehe von ca. min. 8 MB reinen Code aus um alle 2.x Kernels abdecken zu können ) 2. da sich der Virus auf den Kernel spezialisiert hat recht steril ( weil ich glaube kaum das jemand den vmlinux an andere weitergibt bzw bei mehreren PC's diesen auf den/die anderen überspielt - es ist vor allem in einem lan effektiver den kernel zu optimieren ( wozu brauch ich zb auf meinem Drucker-Server ( 486 ) Soundkartenunterstüzung usb, tvkarte usw) - Da läuft, nur so nebenbei ein 2.0 Fazit : Ein Kernel-Virus könnte im Idealfall (das Programm wo der Urvirus eingebaut ist braucht jeder ( ! )) vielleicht etwa 30% aller systeme erreichen / infizieren bevor er erkannt ist. nur wäre ein solches Tarnprogramm ( da es ja möglicht jeden Liunx - User ansprechen soll und den Virus beinhalten muß ) mit ziemlicher sicherheit etwas sehr groß ( verschiedene Virusversionen, angepasst auf die unterschiedlichen Kernel, Tarnprogramm ) - damit dabei der Anteil des Virus nicht auffällt, müßte allein das Tarnprogramm >10MB sein ( als bereits lauffähiges Programm - RPM) - weil als source ...... Es mag zwar eine Virengefahr herrschen - nur ob sich jemand diese mühe macht ... man sollte eines nicht vergessen aufgrund der unterschiedlichen strukturen - ein Virus der zb auf SuSE - Systeme optimiert ist hat unter Debian zb kaum überlebenchancen - und umgekehrt Windows bleibt Windows - Linux ist nicht gleich Linux ( ich hab noch nie vonnem Virus gehört der nur auf W95 laufen kann ) -- He looked at me as if I was a side dish he hadn't ordered. ---------------------------------- Registierter Linux - User #177159 ICQ - UIN : 51735624 HP : http://members.tripod.de/LinuxCobra/