Computerbeveiliging - Hoe je bad guys buiten de deur houdt

Hoe veilig is Java voor Linux?

10-02-2013, 20:25 door yobi, 14 reacties
Voor Java op Windows zijn veel exploits beschikbaar. Hoe zit dat met Linux? Voor de zekerheid heb ik toch maar Icedtea en Default-jre verwijderd. Bij Linux-mint worden deze standaard geïnstalleerd.
Reacties (14)
10-02-2013, 23:15 door Erik van Straten
Om te beginnen moet je je realiseren Java niet onveilig is, integendeel: het is in Java veel moelijker om als programmeur een fout te maken die tot een (string-) buffer overflow kan leiden dan in C of C++.

En je moet je realiseren dat een programma dat jij start, in principe mag wat jij mag (dit geldt in elk geval onder Windows, Linux en OSX). Dus als jij de rechten hebt om een map met bestanden te verwijderen, dan mag een programma dat door jou gestart is, dit waarschijnlijk ook. Het maakt hierbij niets uit in welke programmeertaal het programma is geschreven.

De beveiligingsproblemen met Java concentreren zich vooral om het sandbox concept. Het doel van die sandbox is dat je untrusted code in Java applets, ingebed in webpagina's (of in banners van advertentieservers), "veilig" kunt uitvoeren, d.w.z. zonder dat die code directe toegang tot bestanden op je schijf en/of het geheugen kan krijgen.

Bij de meest belangrijke Java kwetsbaarheden gaat het om "uitbreken uit de sandbox". Als het de aanvallers lukt om een applet te maken die door de beveiliging van de sandbox kan breken, kunnen ze bestanden op je schijf lezen (laten opsturen vanaf jouw computer) of bestaande bestanden wijzigen, overschrijven, verwijderen of nieuwe bestanden toevoegen.

Een aantal redenen waarom er in de praktijk minder Java-based malware is voor Linux dan voor Windows:

1) Windows wordt wereldwijd het meest gebruikt, en krijgt daardoor logischerwijze de meeste aandacht van aanvallers. Dat er een exploit voor Java onder Windows verschijnt wil niet zeggen dat deze niet ook onder bijv. Linux zou kunnen werken, maar de meeste (op geld beluste) aanvallers doen hier in de praktijk weinig of geen moeite voor (in het geval van targeted attacks kan dit heel anders liggen).

2) Op andere dan Windows platformen zal de aanvaller geschikte shellcode moeten meeleveren die in elk geval weer start op het moment dat de gebruiker inlogt. Voor elk besturingssysteem is dat weer anders, en mogelijk voor elke distributie. Dit geldt overigens ook voor de verschillende Windows versies en talen die in gebruik zijn. Maar als Engelstalige gebruikers bij bedrijven je primaire doelwit zijn, heb je als aanvaller een boel "klanten" die XP gebruiken. Als ik aanvaller was zou ik voor het grootste marktaandeel gaan en geen tijd en moeite verspillen aan de rest.

3) Hoewel de meeste lekken in de sandbox op ontwerpfouten berusten en dus op elk onderliggend platform (Linux, iOS, OSX, Windows, BSD etc) hetzelfde kunnen zijn, kan het ook om een fout gaan die niet op alle platformen (even makkelijk) te misbruiken is.

4) Het wordt minder met de Ubuntu GUI's van tegenwoordig, maar van oudsher hadden Linux gebruikers het veel sneller door als er vreemde dingen op hun systeem gebeurden. M.a.w. de detectiekans is groter en het is op een Linux systeem vaak lastiger om bestanden te verstoppen.

Kortom, Java voor Linux is niet veiliger of minder veilig dan Java op andere besturingsystemen. Echter, als de sandbox in de webbrowser geen restricties kent (vanaf elke site aangeboden Java applets rücksichtslos uitvoert) is de gemiddelde kans (en dus het risico) dat je als Linux gebruiker slachtoffer wordt, kleiner dan als Windows gebruiker. Domweg omdat je onder een kleinere doelgroep valt.

Maar bij gerichte aanvallen (als de aanvaller weet dat jij Linux gebruiker bent, en daar zwijgen Linux gebruikers in mijn ervaring zelden over) vermoed ik dat de kansen elkaar niet veel zullen ontlopen.

Als Oracle Java wil redden zullen ze browser-ondersteuning door Java optioneel moeten maken en/of in Java een whitelist ondersteunen voor vertouwde websites waarvandaan Java applets geladen mogen worden.
11-02-2013, 10:49 door SirDice
Hoe veilig is Java voor Linux?
Net zo (on)veilig als op Windows.
11-02-2013, 11:12 door Anoniem
Net zo veilig of onveilig als in Windows. Je zou in Linux apparmor profielen kunnen maken voor webbrowsers om de "rechten", en dus het gedrag, van Java/java-plugin in je webbowsers te beperken. Maar het opzetten van zo 'n profiel vereist veel kennis van zaken.
Mijn advies: disable de java browsers plugin zowel in Windows als op linux systemen.
11-02-2013, 13:21 door SPlid
Erik, complimenten, goed en duidelijk artikel .
11-02-2013, 14:11 door Anoniem
Over welke Java versie in Linux hebben jullie het?
Je hebt de Oracle (Sun) variant, maar ook een open variant. Zit er verschil tussen de versies?

Ervaring leert inderdaad dat je met Linux een minder interessant slachtoffer bent, als je de open variant gebruikt zelfs nog minder.
Maar ook hier geldt: blijven patchen!
11-02-2013, 16:09 door Anoniem
Door Erik van Straten: Om te beginnen moet je je realiseren Java niet onveilig is, integendeel: het is in Java veel moelijker om als programmeur een fout te maken die tot een (string-) buffer overflow kan leiden dan in C of C++.
Hmja, als je puur naar de taal kijkt. Niet heel relevant daar de problemen ergens anders liggen, wat je verder zelf ook al aangaf. "Java" staat hier voor zowel de taal, de virtuele machine waarin'ie uitgevoerd wordt ("JVM"), en dat er dan een ingeperkte versie van dat geheel in de browser beschikbaar is om vreemde code uit te voeren.

De problemen liggen er in dat die vreemde code uit de "zandbak" weten te ontsnappen. Wat je ook al aangaf, maar wat zo ontzettend de crux is dat het best nog eens gezegd mag worden.

Kortom, Java voor Linux is niet veiliger of minder veilig dan Java op andere besturingsystemen. Echter, als de sandbox in de webbrowser geen restricties kent (vanaf elke site aangeboden Java applets rücksichtslos uitvoert) is de gemiddelde kans (en dus het risico) dat je als Linux gebruiker slachtoffer wordt, kleiner dan als Windows gebruiker. Domweg omdat je onder een kleinere doelgroep valt.

In grote lijnen correct, tot (maar niet met) dat laatste: Er zitten wat cultuurverschillen zoals een veel beter besef niet alles maar als "root" danwel "Administrator" uit te voeren, wat ook veel makkelijker gemaakt wordt, en dat die beveiliging ook een klein beetje meer voorstelt, om historische en architectonische redenen. Met andere woorden: Zeggen (of impliceren) dat het puur een marktvolumeverhaal is, is er eentje uit de "get the facts"-stal.

Maar bij gerichte aanvallen (als de aanvaller weet dat jij Linux gebruiker bent, en daar zwijgen Linux gebruikers in mijn ervaring zelden over) vermoed ik dat de kansen elkaar niet veel zullen ontlopen.
Beetje een andere discussie, maar dat ze zo vocaal zijn komt ook een beetje omdat er nogal veel blind vanuitgegaan wordt dat als je "computer" zegt dat dan ook "windows" bedoeld wordt. Naast deze noodzaak is er ook het "linux gaat de wereld van redmond verlossen"-cultuurtje (waar ik me eerlijkheidshalve ook aan erger, zozeer dat het een factor was om nog maar weer ergens anders naar op zoek te gaan), maar je kan dat niet alle schuld geven.

Terug naar deze discussie: Bij echt gerichte aanvallen ben je het haasje, wat je ook doet. Waar je dan naar moet kijken is hoe moeilijk het is om zulke gerichte aanvallen op te zetten. Bij windows is het ondertussen COTSwerk, maar linux (nog) niet, alweer vanwege een aantal verschillende factoren. En ga je naar een andere telg uit de unix familie (en/of een andere instructieset) dan wordt het nog lastiger. Zie om te beginnen die expertise maar eens bijelkaar te vegen.

Als Oracle Java wil redden zullen ze browser-ondersteuning door Java optioneel moeten maken en/of in Java een whitelist ondersteunen voor vertouwde websites waarvandaan Java applets geladen mogen worden.
Dat eerste is sowieso een goed idee. Dat tweede, was dat niet al geprobeerd? En hoeveel tijd kostte het om dat te omzeilen? Buiten dat ze zich dan een mopolie toeeigenen waar een hele hoop mensen weinig zin in gaan hebben.

Nevermind dat die andere fabrikant precies hetzelfde aan het doen is maar dan niet met websiteapplets, maar met je eigenste computer. Of die appstores her en der, waar ook onmiddelijk alternatieven voor te vinden zijn en waar ook nog het een en ander aan malware en plaggiaat en weetikhet in de officieel goedgekeurde nering te vinden zijn.

Oftewel, laat ze nou maar eerst eens hun eigen werk goed doen, en die zandbak goed en stevig bouwen. Maarja, dat roep ik van redmond ook al jaren en dat lukt ze ook al niet. Die hebben nog steeds een positie waardoor ze wegkomen met moord, sunacle toch wat minder.

Sunacle had er gewoon veel beter bovenop moeten gaan zitten. Hebben ze niet gedaan. Kan best dat daarmee de oorlog al min of meer verloren is, (vergelijk deathstar en resulterende divisieverkoop) want nu realiseert iedereen zich dat ze zonder al te veel gedonder best zonder java-in-de-browser kunnen. Wat dat betreft is het wellicht interessant te zien of flash hier marktaandeel gaat winnen, of dat de gaten daarin voldoende zijn om dat dan ook maar achter ons te laten. Want op lange termijn is java (open genoeg dat er alternatieve implementaties beschikbaar zijn) door flash (overduidelijk gesloten) vervangen geen verbetering.
11-02-2013, 16:21 door Anoniem
is JavaScript blokkeren in de brouwser voldoende?
11-02-2013, 16:41 door SirDice
Door Anoniem: is JavaScript blokkeren in de brouwser voldoende?
Java en javascript hebben, behalve de naam, niets met elkaar te maken.
11-02-2013, 17:08 door [Account Verwijderd]
[Verwijderd]
11-02-2013, 17:11 door SirDice
Door Krakatau:
Door SirDice:
Door Anoniem: is JavaScript blokkeren in de brouwser voldoende?
Java en javascript hebben, behalve de naam, niets met elkaar te maken.
http://nl.wikipedia.org/wiki/JavaScript
Zoals ik al zei
Omdat beide talen het meest zichtbaar zijn op en rond de browser, maar vooral door de naamgeving, worden ze vaak met elkaar verward.
11-02-2013, 17:20 door Anoniem
Sinds ik met Linux werk,dat is nu ruim 7 jaar , heb ik nog nooit gebruik gemaakt van de java-browserplugin en ik kan er alles mee doen , dus ook internetbankieren.
Ik vraag mij af of iedereen wel het verschil weet tussen javascript en de java-browserplugin,die je volgens mij helemaal niet nodig bent om te internetten.
11-02-2013, 19:04 door [Account Verwijderd]
[Verwijderd]
11-02-2013, 21:09 door Security Scene Team
Lame topic dit. tot nog toe vind ik Sirdice z'n antwoorden toch echt de juisten. en weer zijn jullie onwetenden weer snel met -1'tjes en +1'tjes (weet je nog wat ik in n ander artikel zei over de beste kapiteinen staan aan wal zei?) juist.. die zijn hier ook weer aanwezig.. 't is hier geen wedstrijd wie wat meer weet, maar welk antwoord de juist kwaliteit bevat om de gebruiker te helpen.

oke verder ontopic:

Java is net zo onveilig op windows als op Linux. maar voor Linux zijn er minder Malwares en dergelijke, dus feitelijk gezien is het op Linux veiliger.

succes.

p.s. (kom maar op met de -1'tjes) jullie staan hier snel klaar met -1'tjes maar iemand een terrechte +1 geven is dan weer te veel werk, of 't is afgunst. (vooral afgunst denk ik)

omfg, 't niveau hier daalt en daalt Ook dat zei Sirdice aleens en blijkt dattie toch gelijk heeft gehad toen.

(Wikipedia kennis fanaten, ipv Security fanaten..)
12-02-2013, 00:11 door Security Scene Team
Door Anoniem: is JavaScript blokkeren in de brouwser voldoende?

ja en nee.. probeer Exploitshield, dan is java gebruik toch stukken veiliger. ja tis beta maar beta is er om verbeterd te worden, dus hoemeer mensen vooral thuis gebruikers hieraan meewerken hoe beter. en report de bugs die je eventueel vindt.
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.