Microsoft advarer mod Java

En kraftig stigning i hackerangreb via Java får nu Microsoft til at advare mod teknologien, som er nødvendig for at bruge NemID.

Vil du beskytte dig mod Java-båren malware, er det sikreste at slukke for Java eller afinstallere det helt.

Sådan lyder det fra Microsoft i et Technet-indlæg, der også peger på, hvor vigtigt det er altid at have den nyeste, opdaterede version af Java, hvis man pinedød skal bruge denne teknologi i browseren.

Og det skal samtlige danskere, der vil bruge netbank eller logge på offentlige websider, for Java er et krav for at kunne bruge NemID.

Den Microsoft-ansatte, der advarede mod Java, holdt også et oplæg om problemet på den store Black Hat-sikkerhedskonference i USA i slutningen af juli. Fordelene for hackerne ved at bruge Java er blandt andet, at mange har installeret teknologien, at samme angreb kan bruges på mange platforme, og at Java-kode er nem at obfuskere, så de onde hensigter nemt kan skjules.

En journalist på amerikanske Infoworld er mere direkte i sine anbefalinger: Hvis man stadig bruger Java til noget, udsætter man sine brugere for unødig risiko, mener han.

»Hvis du har et produkt, som kræver JRE (Java Runtime Environment), så migrer det. Hvis dine forretningsplaner har brug for JRE-applikationer, så modificer dem. Hvis du eller dit udviklerteam programmerer klientapplikationer, der kræver JRE, er det tid til at udvide dine kompetencer,« skriver han i sin kommentar til Microsofts udmelding.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (24)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Johan Brinch

Han skriver direkte "The most effective measure against these vulnerabilities is updating your Java installation". Derefter siger han, at hvis man foretrækker det, eller ikke kan opdatere, så kan man "[...] disable your current Java Plug-in temporarily [...]".

Jeg kan ikke se, at han foreslår folk at undgå eller fjerne Java, som artiklen skriver.

  • 11
  • 0
Lars Bjerregaard

Gad vide om det er fordi Microsoft selv har et alternativ til Java applets, som de gerne vil have at folk bruger. Vent lidt, lad mig tænke... hmm.... Ah: Silverlight. Jeg vidste der var et eller andet ;-)

  • 12
  • 5
Daniel Udsen

Først kom activeX der var for usikkert så flash og java blev integeret med browseren, nu er java og flash betegnet som usikkert så fokus er på at give ecmascript/html5 de samme features, nu er spøgsmålet så om hvor længe det varer inden der advares imod at slå ecmascript/html5 til i browseren?

Det er det evendelige problem vil du have kraft og fleksibilitet får du også den kompleksitet der giver potentiale for sikkerhedshuller.

  • 8
  • 0
Ole Olsen

Godt set, Johan!

Han tilføjer allersidst uninstall som en mulighed, men jeg synes på ingen måde artiklen kan kaldes en direkte advarsel mod Java. Det er derimod en advarsel mod ikke at holde den opdateret, og han beskriver generelt Java pænt.

Der er ikke noget nyt i blog-indlægget - andet end at jeg nu ved hvad en type-confusion exploit er. For mig virker denne artikel som et V2 forsøg på at holde NemID diskussionen kørende (med rette!!!).

  • 9
  • 0
Jens Jönsson

Og det sløver den ekstra meget. Derudover, så er Java tåbeligt da én application skal have en specifik Java version, en anden en anden version osv.
Er med på at det sikkert er programmørerne af Java applicationen, der ikke understøtter opdatering, men alligevel. Som bruger er det >træls<....

  • 2
  • 12
Peter Müller

Microsoft har jo selv allerede aflivet Silverlight og vil fremover fokusere på åbne standarder med Javascript og alle HTML5 udvidelserne. Jeg tror ikke denne udtalelse er et forsøg på at få flere kunder til Silverlight.

  • 6
  • 1
Peter Müller

Nu hvor man med NemID har valgt løsningen med nøglekort, burde man jo nemt kunne skifte løsningen over til et koncept som Jyske bank kørte med inden de blev tvunget over på statsmonopolet.

Så vidt jeg kan forstå har NemID også allerede et API til at kunne identificere sig selv uden Java. Danske bank var vist de første der fik adgang til det med deres mobilapp for et par år siden.

  • 3
  • 2
Cristian Ambæk

Skal vi så også begynde af afinstallere Windows da det jo også er den mest benyttede platform for hackere at vinde økonomisk gevinst på desktop platformen.

Jeg bruger ikke selv Windows så jeg siger bare. Gå igang.

  • 9
  • 1
Jacob Nordfalk

Jeg har udviklet i Java i mange år, fordi en af Javas kerneværdier er at programmerne skal være brugbare på flere platforme.

Og det er Java god til.

Jeg bruger udelukkende Linux, og jeg kan fint bruge NemID.

MHT at skrive applikationer der kan køre på flere platforme, der er Java vinderen og MS' alternativer, såsom C#, kan overhovedet ikke være med.
Det kan da godt være selve sproget kan køre, men hvad hjælper det når bibliotekerne som programmerne bygger på ikke er tilgængelige på alle platforme, eller er ufuldstændige.

HTML(5), JavaScript, og til nød Flash er fine sprog, bare ikke til større applikationer.

Så hvor ærgerligt det end er at der - ligesom i alle andre programmer - er sikkerhedshuller i Java, så er det altså nødvendigt med Java så længe der ikke er andre sprog der vil tage pladsen som værende ægte platformsuafhængige, herunder med et tilstrækkeligt stort standardbibliotek til at de applikationer folk rent faktisk skriver, kører på alle platforme, inklusive Linux og BSD.

Det er klart at MS ville elske hvis der ikke var et sprog som Java, så ville det være langt sværere for folk at skrive applikationer der understøttede mange platforme.
Vi skal da meget hellere udvikle i noget der kun kører på M$-platformen, haha.

  • 15
  • 5
Peter Müller

Hvor mange 'større applikationer' ser du skrevet i java som bliver afviklet i plugins i browseren?

NemID er udskiftbart med et stykke javascript på et par kb, hvad har vi mere?

Hvad er i øvrigt definitionen på en 'større applikation'? Gmail? Google Calendar?

Jeg er ret sikker på at scopet for artiklen er at JRE er en angrebsvektor, men kun igennem browseren. Så længe det er korrekt kan javascript nemt udskifte en lang række ting som folk af uvisse årsager har valgt java til. Feks NemID, hvis eneste formål for at bruge java tilsyneladende er at skaffe sig administratoradgang på maskinen. W T F.

  • 7
  • 3
Brian Simonsen

Hver gang der kommer en af disse "java er farligt, afinstaller straks !!" historier, plantet/promoveret af en af konkurrenterne, fremgår det aldrig tydeligt at det er browserpluginen er typisk er sikkerheds problemer med. Selve java runtimet er et fantastisk værktøj til at deployere applikationer uden at tage en masse platforms specifikke hensyn. Det er trivielt at pakke runtimet og afhængigheder med i en deployment.

Java som browser plugin er en død sild, kun holdt i live af NemID-respiratoren.

  • 7
  • 1
Jacob Gorm Hansen

Java til Nemid holder bare ikke. Jeg har f.eks. sat en separat linux-box op til NemId af sikkerhedsgrunde, men selvom jeg fint kan logge paa, haenger den bare evigt naar jeg skal godkende en transaktion (Chromium) eller indtastningsfeltet til min kode kan ikke faa fokus (Firefox). Saa jeg spilder min tid pga. Nemids dovenskab. Jeg er ligeglad med om du er en mere produktiv udvikler i Java, eller om din kode bliver smukkere, det vigtigste for mig er at jeg kan komme i banken fra alle slags maskiner, det kunne jeg med tidligere med Jyske Banks javascript-loesning. Det er et zero-sum spil, hvor den tid du sparer som udvikler erstattes af tidsforbrug paa kundesiden, med at installere/opdatere og bare rive sig i haaret. Hvis du kun har faa kunder til dit software kan det maaske forsvares, men jo flere kunder, jo daarligere ide at bruge Java eller andre runtimes, da hver kunde belastes af din dovenskab/elfenbenstaarnsmentalitet. Med HTML5 osv. er der i dag ingen reel undskyldning for at kraeve client-side Java, specielt ikke da det ogsaa medfoerer sikkerhedsrisici.

  • 0
  • 1
Jacob Nordfalk

Med HTML5 osv. er der i dag ingen reel undskyldning for at kraeve client-side Java, specielt ikke da det ogsaa medfoerer sikkerhedsrisici.

Jeg er ikke uenig i at Nem-ID sikkert godt kunne kodes i Javascript eller lignende.

Jeg er stærk uenig i at alle applikationer som folk - via browseren - vil starte, kunne skrives i javascript.

For eksempel bruger jeg en gang imellem http://www.omegat.org/ til at oversætte dokumenter fra engelsk til dansk.

Jeg starter den via browseren (java web start) - se http://www.omegat.org/en/download_selector/selector.php

Et andet eksempel er MineCraft. Se http://www.minecraft.net/ og http://www.minecraft.net/classic/play.

Der er rigtig mange større programmer som det er umuligt - eller urimeligt - at skulle skrive om i JavaScript.

Her er eneste vej Java, hvis du vil lave et program der kører på flere platforme.

  • 10
  • 1
Frithiof Andreas Jensen

... fordi en af Javas kerneværdier er at programmerne skal være brugbare på flere platforme.


Det er jo bare ikke sådan Java fungerer i virkeligheden. Hvis man vil väre helt sikker skal man installere sine Java programmer i hver sin VM med präcis den rigtige kombination af JVM og biblioteker som man aldrig opdaterer selv. Enovo (et meget dyrt corporate information management system), f.ex. bricker per default på Mac, så gör IT noget, så virker Java lidt, så kommer der en update til Mac så Java ikke virker. DET er "brugeroplevelsen" af Java!

De nödvendige tiltag for multi-platform support i Java er cirka de samme som med andre programmeringssprog, det der komplicerer tingene unödigt over for brugerne, er at for mange Java udviklere tror på at Java Automatisk kan köre overalt.

Java er langt fra den eneste vej: Python+wxWidgets er mere "multi-platform" end Java (men også her skal man tänke sig om og bruge bibliotekerne rigtigt).

  • 1
  • 3
Henrik Winther Jensen

Jeg bruger selv python og er meget glad for det. Bare ikke til større programmer, og pudsigt nok bl. a. fordi specielt sql driver supporten er
lidt tynd. Men syntaksen er er stadig mere script-agtig, hvilket er fint for mindre programmer. Hvad angår tredie parts biblioteker kan jeg ikke rigtigt se noget andet sprog komme i nærheden af java. Måske lige bortset fra C, men det er et stykke tid siden! Måske er det i virkeligheden det som gør java lidt følsomt på en klient platform, det er bare stort!

  • 2
  • 0
Rasmus Wihlborg Jelsgaard

Er det ikke relativt indlysende at en platform med en stor udbredelse er attraktiv som mål for angreb? Jeg forstår ikke helt, hvad der skal hidse mig op. Jeg må tilstå jeg ikke har læst artiklen, der refereres, men jeg fik heller ikke lyst til det efter at have læst artiklen. Nå, nok om det.

Jeg synes egentlig Jacob Nordfalk åbner en langt mere interessant diskussion. Er der nogen, der har et bud på, hvilket sprog, der bliver en reel udfordrer til Java som general purpose sprog med gode (rigtig gode) 3. parts libraries? Jeg synes Oracles seneste tiltag lugter af at Java på den lange bane bliver droppet som primærvælg både som undervisningssprog og som open source darling, hvis der kommer en bare nogenlunde seriøs konkurrent.

Det kunne i princippet være C#, det står jo frit for at lave sin egen implementering. Det er stykke tid siden jeg har fulgt Mono, kunne det være et seriøst bud på sigt? Eller skal kongens efterfølger komme andetsteds fra? :)

  • 2
  • 0
Sune Marcher

Java hører ikke hjemme i en browser - færdigt arbejde. Der har simpelthen være for mange sikkerhedshuller gennem årene - at du er på Linux gør dig kun "sikker" fordi du ikke er et interessant mass-infection mål, det er ikke fordi der mangler local privilige escalation angreb.

På server eller klient siden (udenfor browsere), fair nok, I guess... Hvis du vil have programmer der kører sløvt og ser klodsede ud... Eller du vil bruge en masse tid på enten at forsøge at få native look på de platforme du er interesseret i, eller du er ligeglad med brugeroplevelse og laver noget helt custom.

JVM'en er som sådan OK, og sproget er nogenlunde tåleligt (men damn der er meget red tape ifht. f.eks. Scala og C#) - det eneste Java vinder på er sin milliard libraries (hvoraf mange desværre er pinagtige at arbejde med, og ofte over-engineered ud i groteske mængder abstraktioner - i hvert fald hvis man ender med at sidde med "enterprise software"). Ugh.

Af ting der behøver køre i en browser, ser jeg ikke et behov for andet end javascript+html (bevares, et sprog med lidt mere sane syntax end js jotak, men ikke flere beføjelser, og da slet ikke native kode, sandboxing eller ej).
</rant>

  • 2
  • 4
Henrik Winther Jensen

Det er jo lige meget hvor "mange sikkerhedshuller der har været gennem årene". Det der er interessant er om platformen overhovedet KAN gøres sikker, og det er vel her problemet ligger. Der har ikke været fokus nok på java som browserplugin. Javas problem (og fordel) er at det anvendes i rigtig mange forskellige sammenhænge og det gør det vanskeligt at sikre, men giver også massive fordele.

Tror du virkeligt at så mange enterprise systemer der kører på rigtige dyre maskiner i servicecentre vil blive skrevet i et "sløvt" sprog?
Og hvis du i øvrigt synes at java programmer ser klodsede ud så skulle du tage et hurtigt kig på Intellij Idea. Hvis du synes det er klodset, vil jeg gerne se hvad du mener der er elegant!

Du har fuldstændigt ret i at Java har rigtigt mange meget abstrakte konstruktioner. Men ligesom med C++ behøver man ikke bruge det meste af det, det kan sagtens lade sig gøre at skrive alvorlige programmer uden at vælte sig i interfaces og den slags, og man kan sagtens lave globale variable hvis man vil, det er bare ikke default.

Du kan vil ikke klandre sproget for at der bliver udviklet underlige libraries? I virkeligheden er det vel simpelt hen et spørgsmål om at der er så mange af dem, at nogen af dem ikke er så heldige. Faktisk er en af fordelene ved java miljøet at på trods af at der er så meget aktivitet og udvikling er det stadig muligt overhovedet at finde rundt i det (Vha. Maven f.eks.)
Jeg vil dog give dig ret i at webservices er en vor tids største designkatastrofer, fordi alting kan gøres på 17 forskellige måder, som i øvrigt ikke har nogen kvaliteter de andre måder ikke har.

I virkeligheden er det miljøet omkring java der bliver svært at overgå. Java miljøet inkluderer både kommercielle mastodonter som IBM, og bjerge af open-source whizkids. Jeg har svært ved at se noget andet sprog komme dertil lige med det samme. Men jeg bliver nok klogere.

  • 7
  • 0
Sune Marcher

Tror du virkeligt at så mange enterprise systemer der kører på rigtige dyre maskiner i servicecentre vil blive skrevet i et "sløvt" sprog?

Yep - for til rigtigt meget af det Java bruges til i enterprise sammenhæng er maksimal CPU-udnyttelse ikke det væsentlige - der står typisk en database og trækker det tunge læs. Og ellers masker man sløvheden ved en kombination af at smide en forfærdeligt masse hardware efter problemet, og/eller massiv caching. Det virker, og horisontal skalering er nødvendigt for at kunne løse de rigtigt store opgaver... sløvheden var ment som hvad du ser som end-user på en klient-maskine når du sammenligner en java-app med native kode.

Og hvis du i øvrigt synes at java programmer ser klodsede ud så skulle du tage et hurtigt kig på Intellij Idea. Hvis du synes det er klodset, vil jeg gerne se hvad du mener der er elegant!

Der er vel også smidt betragtelige ressourcer efter GUI delen i IntelliJ? (Sure, det ser fint ud, men det er ikke 'native' looks). Og jeg har jo ikke påstået at det ikke kan lade sig gøre hvis du smider udviklingstid efter at gøre det pænt - men hvis du går efter "write once, run everywhere, brug default komponenter for at udvikle hurtigt" og vælger SWING, well... ugh.

Du har fuldstændigt ret i at Java har rigtigt mange meget abstrakte konstruktioner. Men ligesom med C++ behøver man ikke bruge det meste af det, det kan sagtens lade sig gøre at skrive alvorlige programmer uden at vælte sig i interfaces og den slags, og man kan sagtens lave globale variable hvis man vil, det er bare ikke default.

Min anke gik ikke på sproget (Java er nogenlunde elegant på grund af dets simpelhed, blot med lidt for meget unødvendig red tape) - men på de konstruktioner man ser i real-world Java kode. Yep, det er muligt at skrive elegant Java kode, og det er lidt sværere at lave clusterfuck disasters end det er i f.eks. C++ - desværre er der bare rigtigt meget real-world kode (af den slags man er nødt til at arbejde med i den professionelle verden) der er virkeligt, virkeligt grimt. Det er ikke uden grund at f.eks. DailyWTF har så mange snarky kommentarer java/enterprisey kode.

Du kan vil ikke klandre sproget for at der bliver udviklet underlige libraries?

Nej, det er ikke sprogets skyld. Men af en eller anden grund lader det til at følge med kulturen?

I virkeligheden er det miljøet omkring java der bliver svært at overgå.

Præcis. Miljøet, antallet af libraries, at JVM'en er portet vidt og bredt, og at der (på trods af Oracle - nu må vi se i det lange løb) er lidt mindre clusterfuck omkring rettigheder end med .NET.

  • 1
  • 1
Log ind eller Opret konto for at kommentere