Stor kodedelingstjeneste hacket

Et hul i Ruby on Rails gjorde det muligt at hacke den populære kodedelingstjeneste Github.

Den populære tjeneste Github er blevet hacket. Github bliver brugt i softwareprojekter til at dele kildekode mellem flere udviklere. En fejl i programmeringsframeworket Ruby on Rails, som Github er skrevet i, gjorde det muligt for hackere at tilføje kode til projekter, de ikke burde have adgang til.

Indtil videre har Github kun opdaget, at en enkelt bruger har tilføjet kode til projekter uden tilladelse for at gøre opmærksom på hullet. Det gik ifølge Github ud over Ruby on Rails-projektet og to andre projekter.

Der er efter sigende en efterforskning i gang for at finde ud af, om flere projekter er blevet ramt, og ekstraordinære skridt vil blive taget for at sikre, at sikkerheden er i top, skriver Github i sin blog. Der er dog ingen udmeldinger om, hvad dette konkret vil betyde.

Brugeren, som gjorde opmærksom på hullet, er blevet suspenderet for at bryde sikkerheden.

Opdateret 13.13: Ruby on Rails er nu retteligt kaldt et programmeringsframework.

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

" Brugeren, som gjorde opmærksom på hullet, er blevet suspenderet for at bryde sikkerheden. "

Ja. Man skal passe på med at være ærlig, det får man sjældent noget ud af.

  • 6
  • 3
Bryan Østergaard

Brugeren havde rapporteret et tilsvarende sikkerhedshul 3-4 dage ad de rigtige kanaler og det var allerede blevet rettet.

Der var absolut ingen grund til at han skulle hacke Github for at få deres opmærksomhed og jeg betragter det personligt som helt unødig vandalisme. Fint at Github suspenderede brugeren mens de lukkede det nye hul og undersøgt præcist hvad der var sket og ryddede op efter de problemer brugeren havde skabt.

I øvrigt flot at Github fik lukket hullet blot en time efter at det var blevet opdaget på en søndag.

  • 6
  • 3
Torben Mogensen Blogger

Artiklen siger "En fejl i programmeringssproget Ruby on Rails". Men Ruby on Rails er ikke et programmeringssprog, det er et softwarebibliotek skrevet i programmeringssproget Ruby. Så ligger fejlen i sproget eller i biblioteket?

Linket siger, at fejlen skyldes manglende validering af felter i HTML forms, så det mest sandsynlige er nok biblioteket. Beskrivelsen af The mass assignment problem, som er kilden til fejlen tyder da også på dårligt design.

Problemet med mange af de bliblioteker (eller frameworks, som skaberne ynder at kalde dem, fordi det lyder finere), som er lavet for at gøre det let at lave webapplikationer, er at det ofte er for nemt: Man kommer nemt til at gøre mere, end man ønsker, fordi bibliotekerne laver en masse operationer implicit for at lette arbejdet for programmøren. Og fordi de operationer ikke står eksplicit i koden, glemmer programmøren ofte at tænke over, om de kan være problematiske.

  • 9
  • 2
David Rechnagel Udsen

Som Torben korrekt nævner, så er Ruby on Rails ikke et programmeringssprog, det er et bibliotek der bruger Ruby. Ruby on Rails er notorisk for sine sikkerhedsproblemer; ikke fordi at det ikke understøtter at rette fejlene, men fordi Ruby on Rails gør en række ting så lette at folk glemmer at sætte korrekte rettigheder på inddata.

Det er jo ligegyldigt at du renser inddata, hvis du stadig tillader en hver bruger at kunne sætte sig selv som administrator skulle de sende inddata der tyder på det.

Så siger artiklen at brugeren var suspenderet, men glemmer at nævne at det er over et døgn siden at han fik sin konto åbnet igen (en faktor der var nævnt i opsummeringen i Slashdot-artiklen).

For det tredje, så tilføjede han ikke rigtig kode til nogle projekter, han lavede bare nogle »sjove tilføjelser«, så de kunne se at han havde fået administrator rettigheder uden at han burde have haft det. Hvilket var grunden til at GitHub gav ham hans konto tilbage; han havde intet ødelagt.

Måske skulle Version2 til at læse lidt mere Slashdot eller Ars Technica før de oversætter nyhederne til dansk.

  • 6
  • 0
Rasmus Bergholdt

Det er jo ikke en fejl i rails, mere et bevis på selv de kloge hoveder hos github også laver fejl.

Samme kunne jo også ske i asp .net mvc http://freshbrewedcode.com/joshbush/2012/03/05/mass-assignment-aspnet-mvc/

Rails giver jo mulighed for at både Black og White list mass assignment attributter i modellen, men som altid så kræver sikkerhed jo omtanke og mennesker laver fejl.
http://api.rubyonrails.org/classes/ActiveModel/MassAssignmentSecurity/Cl...

Problemet er dog at en model ofte bruges i mange forskellige forms, så det vil være mere logisk at lade controlleren håndtere hvad der må opdateres. Som ekstra parameter i mvc's Update model eller https://gist.github.com/1975644

Man kan jo også tage skridtet og lave view modeller for hvert brug, men man kan også over designe.

  • 0
  • 0
Carsten Gehling

Jo men Rails kunne jo godt have taget stilling til det pågældende forhånd, ligesom så mange andre af deres holdninger. Man kunne beslutte at intet pr default kommer igennem ActiveModel, med mindre programmøren har lavet en whitelist.

Det kan sammenlignes lidt med FreeBSD, hvor man efter installation selv skal aktivere de daemons som man vil åbne for.

Ja det gør Rails en smule mere besværligt, men sikkerhed ER besværligt. Vi kommer desværre bare ikke udenom det.

Carsten

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