Veel kinderen hebben de neiging om slecht gedrag af te wimpelen met "ja, maar pietje mag het wel" of "ja maar, jantje doet het ook" en soms "*snikkend* maar marieke krijgt geen straf ..."
Welnu: Cansec is een conferentie die staat in het teken van beveiliging en wordt door de CADSI uitgeschreven. CADSI staat voor Canadian Association of Defence and Security Industries.
CADSI is een forum van Canada's beveiliging-industrie. JA, de CanSec-conferentie is omstreden, vaker nog de sponsors en 'winnaars' als Charlie Miller. Hoe het ook zij: het lek zit in Safari en er is toch nog een uitspraak van Charlie Miller die wel degelijk hout snijd:
"De producten van Apple zijn zeer gebruiksvriendelijk. Neem Safari, de browser is ontworpen om vrijwel elk bestand te openen. Met dergelijke uitgebreide functionaliteit komt een verhoogd risisco op fouten. Hoe complexer de software, hoe meer kans op fouten."
Verder in het interview zegt Miller: "MacOS X is een van de oorzaken dat Safari vrij gemakkelijk te kraken is. Windows Vista en Windows 7 maken gebruik van Address Space Randomization (ASLR)", aldus Charli Milller in een interview met ComputerWorld.
Vooral de uitspraak over MacOS X deed Doctor Apple zijn wenkbrouwen fronzen. Immers: MacOS X Leopard doet toch aan Address Space Randomization dankzij de "Library Randomization" was mijn eerste gedachte?
Die Charlie Miller toch en de CanSecWest: altijd maar weer Apple Bashen. Na enig leeswerk en wat tests vanmorgen op de Windows Vista en Apple MacOS X Development Machines op kantoor kwam ik tot de ontdekking dat die Miller toch een punt heeft.Waarom?
Zowel MacOS X Leopard als Vista maken gebruik van Adress Space (Layout) Randomization. Maar de implementatie tussen de twee OS'en verschilt dramatisch, met Vista in het voordeel (tot mijn stomme verbazing).
Bij Microsoft Windows is het programma beveiligd door zowel de geheugenlocaties 'willekeurig' te addresseren, maar ook door zowel een software- en hardware- mechanisme om de 'execution space' te beveiliging.
Bij MacOS X Leopard wordt eveneens gebruik gemaakt van zowel 'execution space' als 'address randomization'. Althans, en nu komt de aap uit de mouw: enkel de stack-waarden (niet de heap) en ook nog eens alleen op de INTEL processor. Op PowerPC processoren wordt geen Execution Space Protection geboden.
De beveiliging van de 'heap' wordt alleen aan 64-bit INTEL processors geboden.
Uit Apple's eigen doos:
"In Leopard, stack execute disable is available for both 32- and 64-bit applications. For 64-bit processes, Leopard provides protection from code execution in both heap and stack data areas. "
(bron: http://images.apple.com/macosx/pdf/MacOSX_Leopard_Security_TB.pdf )
Maar? Maar? wacht... MacOS X Leopard biedt dus alleen beveiliging aan 64-bit INTEL processoren? En alle 32-bit INTEL- en alle PowerPC-processoren niet? Maar ...
Vrijwel ALLE Leopard toepassingen zijn 32-bit.
Safari bijvoorbeeld:
/Applications/Safari.app/Contents/MacOS/Safari (for architecture i386): Mach-O executable i386
Sh!@# was mijn eerste gedachte een kwartier geleden: die Charlie heeft gewoon gelijk.
Windows Vistas Adres Space (Layout) Randomization en Execution Bit Protection is superieur in alle opzichten aan MacOS X Leopard. Hoe groter het marktaandeel van Apple, hoe meer hacks we zullen zien. Laat de iPhone nu ook op MacOS X draaien.
Korte toelichting:Voor de mensen die niet weten waar het om gaat: Address Space Randomization is een beveiligingstechniek waarbij delen van het geheugen willekeurig worden herschikt opdat kwaadwillenden niet (delen van) programma's kunnen uitvoeren door een specifiek geheugenadres rechtsstreeks aan te spreken. De onderdelen van een programma worden elke keer dat het wordt gestart 'gehusseld' in het geheugen weggeschreven opdat er geen peil te trekken is waar, welk onderdeel van het programam in het geheugen staat.