Annonce

Nyt fra microsoft

Indsend nyhed

Del dine opdagelser!

Afstemning

Skal du have den nye iPad?

  • 64%Nej, det skal jeg ikke
  • 19%Ja, helt sikkert
  • 17%Måske, jeg er ikke sikker

Sikkerhedsbrist opdaget i flere OS X-versioners sandboxing-teknologi

15. nov. 2011 09:57Firmaet Core Security Technologies (CST) har fundet et sikkerhedshul i Mac OS X' sandboxing-teknologi. Fejlen gør det muligt at omgå sandbox-restriktionerne i både OS X 10.5 Leopard, 10.6 Snow Leopard samt det seneste 10.7 Lion.

Problemet er, at flere af de foruddefinerede sandbox-profiler ikke ordentligt afgrænser hvilke mekanismer programmerne kan benytte sig af. Programmerne kan eksekvere hvad der kaldes Apple events, som kan bruges til for eksempel at starte andre processer, der ikke er begrænset af sandboxing. CST giver et eksempel om en applikation, der er begrænset af no-network-profilen, der burde gøre sådan, at applikationen ikke kan få adgang til netværksressourcer:

Let's say that there is an address book application you do not trust and run within the no-network profile. Assume that an attacker provides you with a file containing his contact information and that a vulnerability in the address book allows the malicious user to take control of the application. While the malicious user should be only allowed to tamper with the application (and for example) delete its contents, he may also send the contents back to himself. This is clearly a violation of the expected behavior.Ariel Waissbein, Core Security Technologies

Apple har svaret CST at de overvejer at ændre definitionen i sin udviklerdokumentation, så det er tydeligt, at sandbox-restriktionerne kun gælder den proces, som sandbox-teknologien bruges på. Dermed har de altså ikke i sinde at gøre det umuligt rent faktisk at omgå teknologien.

#2: Trentors

15. nov. 2011 10:43

Øh jo det er. Prøv dog at havde LIDT kildekritik og lad være med linke til en Apple-fanboy. Det er jo tydeligt at han ikke aner hvad han snakker om og slet ikke ved noget om udvikling.

Især når man læser kilden og ser at Apple har rettet denne type fejl før.

#3: fidomuh

15. nov. 2011 10:54

#2

Hurtigt spoergsmaal, hvordan koerer jeg en given app i en "no-network" profil?

Windows is expensive, no matter what the value of your sparetime is.

#4: spectual

15. nov. 2011 10:55

En sandbox hvor det er muligt at omgå restriktionerne lyder totalt fail i mine ører... Er der noget jeg misser?

#5: HenrikH

15. nov. 2011 11:02

#2: Husk nu, det er Apple... Det er ikke en fejl, det er en feature ;-)

Edit: Så er dagens æble taget, så kommer doktoren ikke forbi...

#6: Trentors

15. nov. 2011 11:15

#2

Hurtigt spoergsmaal, hvordan koerer jeg en given app i en "no-network" profil?fidomuh (#3)

http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man3/sandbox_init.3.html

#7: fidomuh

15. nov. 2011 11:26

#6

Aha, saa det er en bug for udviklere der oensker at bruge sandbox? Eller hvordan?
Jeg har lidt svaert ved at gennemskue hvilken relevans det her har for useren :D

Windows is expensive, no matter what the value of your sparetime is.

#8: Trentors

15. nov. 2011 11:56

Nej det er en bug som siger at denne app benytter en sandbox-profil - ligesom rettigheder på Android Market - men reelt set kan starte en process som har højere rettigheder som den selv kan benytte.

Altså du har en app som f.eks. ikke må gå på nettet ifølge dens sandbox profil. Så starter denne app "bare" en ny process til sig selv som MÅ gå på nettet og benytter denne. Ergo virker sandboxen ikke.

Det har den relevans at sikkerheden ikke er i orden. På Android benytter man jo konstant det at apps fortæller på forhånd hvad de skal have lov til. Og kan man ikke stole på dette - som i dette tilfælde - har du ingen sikkerhed.

#9: Skak2000

15. nov. 2011 11:58

#8
På den måde kan en proces opgrader sine rettigheder? Så den har fuld adgang til alt?

Test -> Chrome

#10: Trentors

15. nov. 2011 12:02

#9
Jeg ved ikke den kan få adgang til alt - der er jo stadig en grundlæggende sikkerhedsmekanisme i OSX som fanger visse ting. Men det betyder at app kan mere end den har lov til.

#11: cryo

15. nov. 2011 12:05

Nej det er en bug som siger at denne app benytter en sandbox-profil - ligesom rettigheder på Android Market - men reelt set kan starte en process som har højere rettigheder som den selv kan benytte.

Altså du har en app som f.eks. ikke må gå på nettet ifølge dens sandbox profil. Så starter denne app "bare" en ny process til sig selv som MÅ gå på nettet og benytter denne. Ergo virker sandboxen ikke.

Det har den relevans at sikkerheden ikke er i orden. På Android benytter man jo konstant det at apps fortæller på forhånd hvad de skal have lov til. Og kan man ikke stole på dette - som i dette tilfælde - har du ingen sikkerhed.Trentors (#8)

Nu er det her Mac OS X og bør nok ikke sammenlignes med Android. Det primære formål er bestemt ikke at begrænse programmets opførsel, men at sikre at fejl eller exploits i programmet ikke kan udnytte brugerens fulde rettigheder og fx slette hans musik mv.

#12: cryo

15. nov. 2011 12:08

..ud over det er sandboxing af denne type (TrustedBSD) naturligvis pr. program, så det giver ikke rigtig mening at en sandbox bliver arvet til evt. programmer som det første program starter. Det er netop vigtigt at hvert program har en så præcis sandbox profil som muligt.

Det er klart at kommunikation mellem programmer også kan være omfattet af begrænsninger, dog ikke nødvendigvis med Apples nuværende prædefinerede profiler.

#13: Justin

15. nov. 2011 13:18

..ud over det er sandboxing af denne type (TrustedBSD) naturligvis pr. program, så det giver ikke rigtig mening at en sandbox bliver arvet til evt. programmer som det første program starter. Det er netop vigtigt at hvert program har en så præcis sandbox profil som muligt.

Det er klart at kommunikation mellem programmer også kan være omfattet af begrænsninger, dog ikke nødvendigvis med Apples nuværende prædefinerede profiler.cryo (#12)

Det er da noget vrøvl, hvis det er et program man ikke vil have går på nettet, så skal dette program ikke kunne gå på nettet
hvis det kan gå på nettet virker sandboksen ikke

-- > har du husket af lave en ubrugelig bil analogi i dag ?? <--

#14: fidomuh

15. nov. 2011 13:57

#8

Nej det er en bug som siger at denne app benytter en sandbox-profil - ligesom rettigheder på Android Market - men reelt set kan starte en process som har højere rettigheder som den selv kan benytte.

Aha, saa det er altsaa noget udvikleren skal bygge ind i programmet og har ikke noget med brugeren at goere?

Altså du har en app som f.eks. ikke må gå på nettet ifølge dens sandbox profil. Så starter denne app "bare" en ny process til sig selv som MÅ gå på nettet og benytter denne. Ergo virker sandboxen ikke.

Saa du vil have at sandbox profiler er nestede?
Eller hvad?

Det har den relevans at sikkerheden ikke er i orden.

En sandbox profil gaelder vel kun for den process den er startet med?
Umiddelbart lyder det meget logisk for mig, specielt naar udvikleren selv vaelger hvilken profil han vil starte den med.

På Android benytter man jo konstant det at apps fortæller på forhånd hvad de skal have lov til.

Eh, saa du vil have at dit desktop OS skal spoerge om alt de skal have lov til?
Du ved godt at det er et specifikt API der er lavet til det, ikke?

I princippet kunne man snildt lave det samme i et desktop OS, men hvis du har benyttet Vista, saa ved du ogsaa hvorfor det er en daarlig loesning.

Og kan man ikke stole på dette - som i dette tilfælde - har du ingen sikkerhed.

Umiddelbart kan jeg kun se at dette betyder at en sandbox kun gaelder for den process den er startet med, nothing more.
JEg har svaert ved at se at det er en sikkerhedsbrist, medmindre der er tale om et program der lader andres plugins koere? :)

Windows is expensive, no matter what the value of your sparetime is.

#15: Trentors

15. nov. 2011 14:12

Aha, saa det er altsaa noget udvikleren skal bygge ind i programmet og har ikke noget med brugeren at goere?fidomuh (#14)

Ja udvikleren angiver en sandbox profil som er brugerens sikkerhed. Men på denne måde kan denne profil elimineres og er derfor en falsk sikkerhed.

Saa du vil have at sandbox profiler er nestede?
Eller hvad?fidomuh (#14)

Ja jeg ville gerne have et program som har begrænset rettigheder ALTID har disse rettigheder og ikke kan få flere. Det er en ganske almindelig praksis og alt andet er jo direkte skørt. Apple har da også lukket lignende sikkerhedshul og den slags gør de næppe for sjovt.

En sandbox profil gaelder vel kun for den process den er startet med?
Umiddelbart lyder det meget logisk for mig, specielt naar udvikleren selv vaelger hvilken profil han vil starte den med.fidomuh (#14)

Nej sandbox profilen burde gælder app'en generelt og ikke bare en tilfældig process.

I princippet kunne man snildt lave det samme i et desktop OS, men hvis du har benyttet Vista, saa ved du ogsaa hvorfor det er en daarlig loesning.fidomuh (#14)

Øh ja det er jo det som de gør her. Sandboxen skal køre på OS X men den kræver at programmer er skrevet til den.

Sådan fungerer det jo på Android. Du installerer en app og får at vide hvad dette program må. Det må så selvfølgelig ikke mere end det som det oprindelig har bedt om.

Vista kører ikke tingene i en sandbox. UAC'en var fundamental anderledes idet der ikke var tale om en samlet profil men gav adgang til men en ny prompt som dukkede op hver gang adgangen gives. Hvilket jo er mest sikkert men brugere har en tendens til at "det bare skal virke" og er ligeglad med sikkerhed.

Umiddelbart kan jeg kun se at dette betyder at en sandbox kun gaelder for den process den er startet med, nothing more.
JEg har svaert ved at se at det er en sikkerhedsbrist, medmindre der er tale om et program der lader andres plugins koere? :)fidomuh (#14)

Plugins? Vi snakker om et program som kan starte hvilket som helst program op med flere rettigheder end det selv har. Hvis det ikke er en sikkerhedsbrist så ved folk vist ikke hvad en sandbox er ;-) Og Apple ender helt sikkert med at lukke det.

#16: cryo

15. nov. 2011 14:55

Det er da noget vrøvl, hvis det er et program man ikke vil have går på nettet, så skal dette program ikke kunne gå på nettet
hvis det kan gå på nettet virker sandboksen ikkeJustin (#13)

Altså, jeg beskriver hvordan MAC-systmer som fx TrustedBSD, SELinux og sandbox fungerer og hvad deres formål er. Det er altid en afvejning hvor stramme og præcise man laver sine profiler.

Ønsker man ingen netadgang, er det klart at man heller ikke kan tillade at der startes scripts eller eksterne programmer i det hele taget. Profiler bliver ikke nedarvet; dette ville enten ikke fungere eller svække sikkerheden i systemet.

I dette tilfælde er sikkerheden (måske bevidst) svækket gennem valget af præcisionsniveau for profilerne; det er en afvejning mellem sikkerhed og bekvemmelighed.

Husk igen at dette ikke er Android og sandbox betyder ikke det samme som på disse platforme.

#17: fidomuh

15. nov. 2011 14:57

#15

Ja udvikleren angiver en sandbox profil som er brugerens sikkerhed. Men på denne måde kan denne profil elimineres og er derfor en falsk sikkerhed.

JEg troede profilen brugtes til at soerge for at den process ikke kunne X, Y eller Z?

Ja jeg ville gerne have et program som har begrænset rettigheder ALTID har disse rettigheder og ikke kan få flere. Det er en ganske almindelig praksis og alt andet er jo direkte skørt.

Hm, jeg synes ellers jeg har hoert samme problematik andetsteds ogsaa, hvor det var ganske tiltaenkt at det var saadan.

Nej sandbox profilen burde gælder app'en generelt og ikke bare en tilfældig process.

Hm, som jeg forstaar hensigten, er det for at sikre at en udvikler ved at process X ikke kan Y, intet andet.

Øh ja det er jo det som de gør her. Sandboxen skal køre på OS X men den kræver at programmer er skrevet til den.

Nej, det er det ikke.
Det er ikke UAC og det er ikke en notifikering.
Det er 110% moentet paa udvikleren og har intet med brugeren at goere.

Sådan fungerer det jo på Android. Du installerer en app og får at vide hvad dette program må. Det må så selvfølgelig ikke mere end det som det oprindelig har bedt om.

Det er ikke Android eller iOS. Det er OS X.

Vista kører ikke tingene i en sandbox. UAC'en var fundamental anderledes idet der ikke var tale om en samlet profil men gav adgang til men en ny prompt som dukkede op hver gang adgangen gives.

Pointen er, at ingen af disse ting er noget brugeren ser i det her tilfaelde.
Hvis der skete noget ala UAC, saa var det relevant, men lige pt er det 100% for udvikleren :)

Plugins? Vi snakker om et program som kan starte hvilket som helst program op med flere rettigheder end det selv har.

Saa, alle programmer i hele verden paa alle OS'er, som ikke er sandboxed?

Hvis det ikke er en sikkerhedsbrist så ved folk vist ikke hvad en sandbox er ;-) Og Apple ender helt sikkert med at lukke det.

Brist eller ej, saa kan jeg bare ikke se relevansen.
Det kraever at du laver tiering af sandbox profilerne og ellers kan du vel kun bruge 1 profil til dit program? :)

Windows is expensive, no matter what the value of your sparetime is.

#18: cryo

15. nov. 2011 14:58

Plugins? Vi snakker om et program som kan starte hvilket som helst program op med flere rettigheder end det selv har. Hvis det ikke er en sikkerhedsbrist så ved folk vist ikke hvad en sandbox er ;-) Og Apple ender helt sikkert med at lukke det.Trentors (#15)

Sandbox er bare et navn for et profilsystem til deres underliggende MAC-system, som sagt. For at lukke et sådant hul, skal man gøre det muligt at begrænse evnen til at starte eksterne programmer. Visse programmer vil dog behøve dette, og for disse kan man ikke opnå absolut sikkerhed.

#19: Trentors

15. nov. 2011 22:03

JEg troede profilen brugtes til at soerge for at den process ikke kunne X, Y eller Z?fidomuh (#17)

Ja og det er jo selvfølgelig for brugerens sikkerhed. Det er jo hele ideen med en sandbox.

Hm, jeg synes ellers jeg har hoert samme problematik andetsteds ogsaa, hvor det var ganske tiltaenkt at det var saadan.fidomuh (#17)

At et program som kører i en begrænset sandbox skal kunne bryde dens rammer? Hvorhenne fido?

Hm, som jeg forstaar hensigten, er det for at sikre at en udvikler ved at process X ikke kan Y, intet andet.fidomuh (#17)

Nix det er IKKE for udviklerens skyld. Tværtimod. Tænk på alt den ballade som har været med at Apple kræver at alle apps der sælges i deres OS X app store SKAL understøtte sandbox API'et og dermed profiler. Det har ikke just gjort udviklerne glade.

Nej, det er det ikke.
Det er ikke UAC og det er ikke en notifikering.
Det er 110% moentet paa udvikleren og har intet med brugeren at goere.fidomuh (#17)

Så brugerens sikkerhed kommer kun i form af en notifikering? Ideen med en sandbox er NETOP at beskytte BRUGEREN. Det er en kæmpe misforståelse at tro det er for udviklerens skyld. Prøv at forklare mig hvordan en sandbox kan hjælpe en udvikler.

Wikipedia:
In computer security, a sandbox is a security mechanism for separating running programs. It is often used to execute untested code, or untrusted programs from unverified third-parties, suppliers, untrusted users and untrusted websites.
Ved mindre det er meget skizofrene udviklere så kan de vel stole på sig selv og betragter ikke sig selv som 3. part ;-)

The register har en lidt bedre forklaring her: http://www.theregister.co.uk/2011/11/15/apple_sandbox_security_fail/

Det er ikke Android eller iOS. Det er OS X.fidomuh (#17)

Nå det troede jeg ellers det var. Og det fremgår jo tydeligt at mine indlæg at jeg ikke kan kende forskel på den slags ;-)

Hvorfor denne hellighed omkring OS X. Tilsmudses det af at blive sammenlignet med andre OS'er som implementerer en sandbox? ;-)

Der er intet galt i at kigge på andre sandboxe. Selv Chrome har en.

Pointen er, at ingen af disse ting er noget brugeren ser i det her tilfaelde.
Hvis der skete noget ala UAC, saa var det relevant, men lige pt er det 100% for udvikleren :)fidomuh (#17)

Brugeren ser heller ikke Chromes sandbox men den er der. Men ja du har ret - Apples sandbox er ikke synlig på samme måde men den skal jo stadig beskytte brugeren.

Saa, alle programmer i hele verden paa alle OS'er, som ikke er sandboxed?fidomuh (#17)

Jeps. Det er derfor det er smart at indføre en sandbox. Dog har Windows Vista/7 også en form for simpel sandbox som gør at et program som ikke har administrator-rettigheder ikke bare kan få det uden at spørge brugeren.

Brist eller ej, saa kan jeg bare ikke se relevansen.
Det kraever at du laver tiering af sandbox profilerne og ellers kan du vel kun bruge 1 profil til dit program? :)fidomuh (#17)

Well det er skam relevant om man kan stole på en sandbox eller ej. Og tro mig - Apple skal nok rette det.

Jeg ved ikke hvordan profilerne tilføjes men man kan nok vælge flere profiler på et program.

#20: dub

16. nov. 2011 00:37

Nix det er IKKE for udviklerens skyld. Tværtimod. Tænk på alt den ballade som har været med at Apple kræver at alle apps der sælges i deres OS X app store SKAL understøtte sandbox API'et og dermed profiler. Det har ikke just gjort udviklerne glade.Trentors (#19)

Sandbox i Mac App Store har ikke meget med det her at gøre. Hvis du laver en fork() under App Store sandboxing så får du samme rettigheder som din første process og apple events er også et no go med mindre du har dokumenteret hvorfor du skal have adgang. Husk at App Store er ikke et 'lig din malware op uden kontrol'-marked

Det er 100% noget som kun berøre udvikler så slutbruger vil aldrig ligge mærke til denne sandboxing. Prøv at se denne video (kræver login men på et eller andet tidspunkt er virker dette direkte link)

Cheerleader for videnskab.

#21: Trentors

16. nov. 2011 06:57

#20
Tror du selv jeg gider at se en video som du linker til når du tilsyneladende ikke gider læse hvad JEG skriver?

Sandboxing er IKKE implementeret af brugeren men af udvikleren for at BESKYTTE brugeren. Hvordan skulle sandboxing være en udviklers fordel??

(Dette indlæg må gerne markeres som "Gentagelse").

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret bruger