pruski 02-12-2008 13:30Beste 'Security Experts', voordat we wat roepen wel even verdiepen in de beveiliging van besturingssystemen en in dit geval in dat van MaOS X in het bijzonder.MacOS X heeft een aantal zeer belangrijke veiligheidsmechanismen ingebakken in het besturingssysteem, te weten: een 'quarantine', een 'sandbox', standaard pakket _EN_ code signing, Address Space Layout Randomization en Non-Executable Data (NX).De 'Quarantine' werkt als volgt: op het moment dat je een document (of programma) download onder MaCOS X, dan worden de volgende gegevens aan het bestand gekoppeld: tijdstip waarop het bestand is gedownload, URL waar het bestand van is gedownload, het bestandstype en nog een paar zaken.Op het moment dat een gebruiker een van het internet gedownload bestand dubbelklikt krijgt de gebruiker een dialoogvenster te zien hoelaat het bestand is gedownload, waarvan het is binnengehaald met de mogelijkheid om de webpagina te bezoeken waar het bestand oorspronkelijk van is gedownload, het openen af te breken of het bestand alsnog te openen.Deze 'metadata' blijft gekoppeld de data. Dus: stel je download een DMG (diskimage), je opent de DMG waar een ZIP-file inzit welke je vervolgens weer uitpakt waar uiteindelijk een bestand 'mooi-weer-de-leeuw.avi' in zit. Dan behouden ALLE bestanden dezelfde meta-data. Op het moment dat je 'mooi-weer-de-leeuw.avi' aanklikt krijg je alsnog de melding waar het bestand oorspronkelijk is gedownload en het tijdstip met de vraag of je ueberhaupt wilt openen. Deze beveiliging is dus niet enkel aan het oorspronkelijke gedownloade bestand gekoppeld.Sinds MacOS 10.5 draaien de meeste subsystemen (Spotlight, Quicklooks, BIND, portmap, enzovoorts) in een Sandbox. De Sandbox vormt samen met het MAC (Mandatory Access Control subsysteem een belangrijke bescherming tegen 'mall-ware'. Veel van deze code is overigens gebasseerd op 'TrustedBSD'.Toepassingen onder MacOS X zijn voorzien van een 'codesign' waarmee de 'echtheid' kan worden geborgt. Een toepassing zonder deze 'codesign' zal niet door het systeem uitgevoerd worden.ihatefake@securityexperts codesign -v -d /bin/catExecutable=/bin/catIdentifier=com.apple.catFormat=Mach-O universal (i386 ppc7400)CodeDirectory v=20001 size=178 flags=0x0(none)hashes=4+2 location=embeddedSignature size=4064Info.plist=not boundSealed Resources=noneInternal requirements count=0 size=12Haalt men een toepassing binnen die geen geldig certificaat heeft, dan verdomt de installer dus om de toepassing te installeren. Het type certificaat dat wordt geaccepteerd is beperkt. Hiermee is het - welliswaar niet onmogelijk - maar vrij moeilijk om ANONIEM mallware te maken voor de Apple.De meest gemakkelijke manier is dus een plugin te installeren voor je browser zijnde een 'fake codec' die geen installer nodig heeft.Maar dan nog... het systeem vraagt vervolgens of je wel zeker ervan bent om toepassing "XYZ", toegang te verlenen tot het internet.Mocht je het in zijn geheel niet hebben begrepen als gebruiker en klik je als een volslagen randdebiel op alles wat een venster heeft en dan ook nog eens 'OK', dan hebben we nog altijd Address Space Layout Randomization en Non-Executable Data (NX).Natuurlijk is het gebruik van Non-Executable Data geen absolute beveiliging, de "spring eens naar het libc-register"-zwakte is met NX niet afgedekt. Immers, als een hacker weet waar de bibliotheek geladen wordt in het geheugen, dan kun je best leuke dingen doen.Daar komt Address Space Layout Randomization om de hoek kijken: systeem-bibliotheken en belangrijke code wordt telkens in willekeurige volgorde geladen.Dus: op adres 0x90046ff0 hoop je 'push' aan te treffen in het register van libSystem. Althans in een normaal geval zou je dus 'libSystem' aanspreken. echter, in het geval van randomization kun je op adres 0x90046ff0 : sbb QuartzCore of AppKit aantreffen.Dan hebben we nog niet eens gehad over technieken als DTrace de veranderingen in Launchd.Vergeet niet dat Sun Solaris, IBM AIX en Apple MacOS X volledig gecertificeerde UNIXEN zijn.De beveiliging van MacOS X gaat veel en veel verder dan de hierboven beschreven scenario's. Roep dus niet dat het systeem onveilig is of dat Armagedon op komen staat. Want een (1) overtrokken berichtitem zijnde de 'credietkrisis' is voldoende.MacOS X is zwaar beveiligd en klaarblijkelijk de reden dat er geen noemenswaardige viri voor zijn anders dan 'scriptlevel thingies' die te lullig zijn voor woorden.Het Apple platform is gewoon veilig. Er is een belangrijk onderscheid te maken in communiquees van technische aard, uitlatingen met een juridische ondertoon en zuiver commerciele/marketing-praat. Het aanraden van virusscanners zit hem eerder in de juridische hoek dan technische.Het systeem bestaat al ruim ACHT jaar en nog steeds is er niet echt EEN noemenswaardig virus dat daadwerkelijk een grote bedreiging vormt. Trojans reken ik niet tot viri. Dit omdat de beveiliging hiervan valt of staat met de onwetendheid van gebruikers. Hoewel dit ook steeds beter wordt.De eerst volgende grote besturingssysteem-revisie van Apple gaat nog een stap verder in beveiliging waarmee het nog moeilijker wordt om 'malifiede code' zelfs 'per ongeluk' uit te voeren.We hebben het hier over een handvol Trojans/Script-ellende tegeover alleen al duizenden MACRO viri op Wnidows. De gewone Trojans en Virussen niet meegeteld.Toch is ook Vista geen slecht systeem: in de kern is naar mijn weten Vista aanmerkelijk veiliger dan XP. Vergeet de gimmicks, GUI en overige. Maar denk in termen van Operating System Kernel, Signed Code, etc. En wat doet de gebruiker 'en masse'? Vista negeren: 'te hoge eisen', 'te duur', 'mijn oude spelletje draait er niet op' of 'vind het niet mooi'. Allemaal erg belangrijke redenen. Doet het bedrijf eens een poging om de beveiliging om te trekken, is het ook niet goed.Maar Apple Bashen is natuurlijk een goede uitlaatklep voor mislukt IT-beleid. Of zullen we het maar houden op gebrek aan kennis?De strekking: MacOS X is veilig. Heel veilig zelfs. Door een virusscanner te adviseren dekken zij zich hooguit juridisch in.