Gå til hovedindhold
Version2 it for professionelle
Forsiden

Hovedmenu

  • It-nyheder
  • Blogs
  • It-job
  • It-firmaer
  • Whitepapers
  • Opret bruger
  • Log ind
Du kan logge ind med din e-mail-adresse
Der er forskel på store og små bogstaver i adgangskoden.
Glemt adgangskode?
Se kommentarer (29)
Emner Hacking, It-sikkerhed

Denial of Service i light-version: 100 kilobyte overmander serverens CPU

En fejl i de fleste webservere verden over gør det muligt for hackere at skabe effektive denial-of-service-angreb med én computer. Microsoft har straks rettet fejlen i .Net, men andre teknologier er også ramt.

Af Jesper Kildebogaard Mandag, 2. januar 2012 - 13:53

Det er ikke nødvendigt med store botnet, der kontrollerer millioner af computere, hvis man vil have en webside til at gå offline med et denial-of-service-angreb (DoS-angreb).

Faktisk kan en hacker nøjes med én computer, én almindelig internetforbindelse og nogle små filer, der vil sende en webserver på så meget overarbejde, at den ikke kan drive hjemmesiden.

Sådan lød det et par dage før nytår fra tyske sikkerhedseksperter, og siden da har problemet fået stor opmærksomhed. Det skriver IDG News Service.

For eksempel har Microsoft valgt - for første gang i hele 2011 - at udsende en nød-opdatering til ASP .Net uden for de faste opdateringstider. Det skulle lukke hullet for .Net-servere, men problemet gælder også andre typiske webserver-teknologier: PHP, Ruby, Java og Googles V8-Javascript-motor.

De to tyskere fandt sikkerhedshullet i webservernes måde at håndtere hash-forespørgsler på.

En hash-værdi af data er en kode, der kan bruges, når der er brug for en kortere repræsentation af dataene. Webserverne skal sørge for, at der ikke dukker ens hash-værdier op, en såkaldt hash-kollision.

Men hackere kan ved at sende en lille, særligt kodet http-forespørgsel til en webserver fremprovokere et væld af disse hash-kollisioner, som tager meget processorkraft.

En forespørgsel på 100 kilobyte kan således holde en cpu-kerne fuldt beskæftiget i halvandet minut på en ASP-server, bekræfter Microsoft. Og med Java kan selv en fil på seks kilobyte holde en processorkerne travlt optaget.

Mens Microsoft allerede har sendt en opdatering ud - hvilket understreger alvoren i problemet - er flere andre firmaer på vej med en lapning af hullet.

Faktisk blev princippet bag angrebet beskrevet allerede i 2003, men dengang var det kun Perl, der valgte at følge op med en løsning på sikkerhedshullet.

Siden har hackere dog ikke brugt denne teknik, men det kan ske nu, hvor der er kommet meget opmærksomhed om sikkerhedshullet.

Send Tweet
Udskriv

Mere om It-sikkerhed

Opret en konto eller log ind for at følge indhold på Version2 - og bliv opdateret via e-mail eller rss

Følg dette emne

Ugens it-profil: »Hvordan kan et så forældet system som NemID være backbone i den danske it-infrastruktur?«

Udgivet 17. maj 10.25Opdateret 17. maj 10.25

Nordea var hacket i månedsvis - og meldte ikke tyveri fra dansk konto til politiet

Udgivet 17. maj 7.40Opdateret 17. maj 9.33

RSA's direktør deler ud: Sådan skal du beskytte dig fremover

Udgivet 15. maj 6.29Opdateret 15. maj 6.29

SAS-mobil-app sendte kundernes kreditkortnumre uden kryptering

Udgivet 14. maj 13.26Opdateret 14. maj 13.26

IT-job & karriere

  • Se alle it-job
  • Importer din kompetenceprofil fra LinkedIn
Forretningsanalytiker til bankprojekter
Udgivet 21. dec 2012 11.48
World class front-end developer
Udgivet 1. maj 10.48
Senior Game Developer
Udgivet 29. apr 8.22
Passionate and Agile Software Developer for Danske Commodities
Udgivet 14. maj 13.40

Kommentarer (29)

Opret en konto eller log ind for at følge indhold på Version2 - og bliv opdateret via e-mail eller rss

Følg kommentarer
David Askirk Fotel 2. jan. 2012 - 14.20
 
Ruby

Det er rettet i Ruby 1.9 og jeg ved at der er en opdatering på vej til ruby enterprise 1.8.7 som er den mange ruby on rails ting kører på.

  • Stem op 0
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Mads Konradsen 2. jan. 2012 - 14.26
 
PHP 5.4.0 RC4 har rettelse til problemet!

http://php.net/ "Added max_input_vars directive to prevent attacks based on hash collisions"

  • Stem op 2
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Claus Junker 2. jan. 2012 - 15.03
 
Tam journalistik

Journalisten kan finde ud af at skrive PHP med store bogstaver, men ikke ASP.NET eller bare .NET i sig selv, selvom begge dele er akronymer.

Derudover er en "ASP-server" måske bedre kendt som IIS.

Samt resten af artiklen virker noget rodet.

  • Stem op 0
  • Stem ned 10
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Bryan Østergaard 2. jan. 2012 - 15.06
 
Ikke kun webservere

Problemet er langt mere generelt end man måske umiddelbart får indtryk af at læse artiklen.

Ved at skabe tilstrækkeligt mange hash kollisioner "konverterer" man reelt an hash liste til en kædet liste som er meget mere krævende for mange operation (som f.eks. opslag i listen). Det interessante er at tricket generelt virker for alle applikationer der gemmer bruger genereret input i en hash liste på en forudsigelig måde.

Perl har så vidt jeg ved løst det ved at tilføje noget random til hashen (generet under opstart af perl så det er unikt for hver perl session), men flere andre projekter forsøger at løse problemet ved at begrænse mængden af bruger input til mere rimelige mængder.

Som et eksempel på andet end webservere så er der formentligt nogle IRCd daemoner der er sårbare overfor angrebet i et eller andet omfang. De burde dog blive reddet af generelle begrænsninger af antalelt af forbindelser per IP adresser mv., men der er ret meget kode der bør kontrolleres for dette.

  • Stem op 1
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Kim Henriksen 2. jan. 2012 - 15.15
 
Her er nogle bedre

Her er nogle bedre forklaringer og et forslag til at løse problem i PHP!
http://www.freeklijten.nl/home/2011/12/29/The-real-problem-of-the-hash-t...
http://arstechnica.com/civis/viewtopic.php?f=16&t=1164260

Synes godt Version2 kan tage sig selv lidt sammen her i det nye år, og holde op med at lave EB artikler!

Ordenlige og informative nyheder tak.

  • Stem op 0
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Anders Hessellund Jensen 2. jan. 2012 - 16.35
 
Korrektion

I artiklen står der: Og med Java kan selv en fil på seks kilobyte holde en processorkerne travlt optaget.

Det er ikke korrekt. I beskrivelsen af sårbarheden ( http://www.nruns.com/_downloads/advisory28122011.pdf ) står der

A Tomcat 6.0.32 server parses a 2 MB string of colliding keys in about 44 minutes of i7 CPU time, so an attacker with about 6 kbit/s can keep one i7 core constantly busy. If the attacker has a Gigabit connection, he can keep about 100.000 i7 cores busy.

Dvs. der skal altså POST på 2MB til for at holde én i7 core beskæftiget i 44 minutter. Det kræver altså en forbindelseshastighed på 6 k[b]bit[/b]/s. Men én request på 6 kbyte kan altså ikke gøre det.

  • Stem op 8
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Rune Larsen 2. jan. 2012 - 17.44
 
Skræmmende at det ikke er

Skræmmende at det ikke er løst efter 8 år, når løsningen er så simpel som at salte hash-funktionen.

  • Stem op 4
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Finn Aarup Nielsen 2. jan. 2012 - 17.50
 
Re: Her er nogle bedre

Jeg synes at ikke engang "suhosin.post.max_vars = 20" hjælper. Den 21. er godt nok "dropped variable" ifølge loggen, men jeg har stadig DoS i cirka et minut.

  • Stem op 3
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Kasper Grubbes billede
Kasper Grubbe 2. jan. 2012 - 18.18
 
Re: Skræmmende at det ikke er

Det er ikke en rigtig løsning, mere et workaround, for problemet eksisterer stadigvæk selvom du salter. Det er noget som ligger i sig implementationen af hashlister.

Ved at salte hashlisten, kan du stoppe angrebet, da angriberen forhåbentligt ikke kan gætte, eller for den sags skyld regne sig frem til din salt. Men du er stadigvæk sårbar.

Jeg ved ikke hvilken indflydelse det har på flere servere der snakker med én enkelt klient på tværs af forespørgsler, for så kan det godt være det er derfor det har taget lidt længere tid at fikse.

  • Stem op 4
  • Stem ned 1
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Poul-Henning Kamps billede
Poul-Henning Kamp 2. jan. 2012 - 18.39
 
Diverse korrektioner
  1. Microsofts nødpatch handler om noget helt andet og meget alvorligere, hash-fixet blev først klistret på senere.

  2. Problemet er at folk ikke bruger stærke nok hash-funktioner. Salt'ning er kun et band-aid.

  3. I stedet for alle de der "shift+add" type hashs på kun 32 eller 64 bits, bør man bruge en hash med kryptografisk styrke på mindst 128 bits, så er problemet løst en gang for alle.

  • Stem op 9
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Flemming Riis 2. jan. 2012 - 19.36
 
Re: Diverse korrektioner

Som PHK skriver så dækker ms11-100 over 4 CVE hvor det ene er hash delen som er skræmmende læsning.

  • Stem op 0
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Poul-Henning Kamps billede
Poul-Henning Kamp 2. jan. 2012 - 20.24
 
Re: Diverse korrektioner

Sjovt, jeg synes nu det er den her er den mest skræmmende:

> The most severe of these vulnerabilities could allow elevation of privilege if an unauthenticated attacker sends a specially crafted web request to the target site.

  • Stem op 5
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Jesper Kristensen 2. jan. 2012 - 21.14
 
Re: Diverse korrektioner

I stedet for alle de der "shift+add" type hashs på kun 32 eller 64 bits, bør man bruge en hash med kryptografisk styrke på mindst 128 bits, så er problemet løst en gang for alle.

Hvordan vil du gemme en hashtabel med 128 bit hashes i hukommelsen på en 64-bit server? Den tabel vil da fylde en hel del mere end det tilgængelige adresserum...

Det vil nok heller ikke være det smarteste at bruge hashfunktioner med kryptografisk styrke, da de typisk er noget tungere at beregne i forhold til universelle hashfunktioner baseret på randomisering. Specielt når det nu handler om DOS.

  • Stem op 0
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Flemming Riis 2. jan. 2012 - 21.37
 
Re: Diverse korrektioner

Jeg fik snøvlet , jeg mente de 3 var skræmmende læsning kontra hash delen

  • Stem op 0
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Poul-Henning Kamps billede
Poul-Henning Kamp 2. jan. 2012 - 21.39
 
Re: Diverse korrektioner

Hvordan vil du gemme en hashtabel med 128 bit hashes i hukommelsen på en 64-bit server?

F.eks på samme måde som Varnish gemmer en 256 bit hash i hukommelsen på en server, hvad enten den har 32 eller 64 bit ord: Med et træ.

  • Stem op 9
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Rune Jacobsen 2. jan. 2012 - 23.24
 
28C3 talk

Deres talk fra den 28. Chaos Communication Congress (28C3) kan findes her: ftp://mirror.fem-net.de/CCC/28C3/mp4-h264-HQ/28c3-4680-en-effective_dos_... (342 MB -- den findes også i lavere kvalitet).

  • Stem op 1
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Thomas Dybdahl Ahle 3. jan. 2012 - 00.21
 
Super nemt at generere

Her er 100.000 longs, der tog min laptop 76s at knække:

Set<Long> set = new HashSet<Long>();  
for (long i = 0; i < 100000; i++)  
    set.add(i<<32|i);  
set.contains(0);

Det svarer vel til ca. 768KiB. Og det er med kun én forspørgsel til tabellen.
Man kunne også bare gå over til at bruge træer med garenteret performance. Måske er de lige så hurtige som en hashmap med kryptografisk hashing.

  • Stem op 2
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Kræn Hansens billede
Kræn Hansen 3. jan. 2012 - 00.36
 
Interessant læsning

Interessant læsning: Her tænker jeg primært på kommentarene.
Måske burde man sende artikler i "beta-release" før de blev udsendt til den glubske forsamling af kritiske læsere :)

  • Stem op 2
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Poul-Henning Kamps billede
Poul-Henning Kamp 3. jan. 2012 - 09.33
 
Re: Super nemt at generere

Man kunne også bare gå over til at bruge træer med garenteret performance. Måske er de lige så hurtige som en hashmap med kryptografisk hashing.

Det afhænger af dine nøgler. Problemet for generel software, som et programmeringssprog, er at du ikke kan lave nogen antagelser om dine nøgler.

Træer er specielt dårlige for leading-prefix nøgler og derfor valgte jeg at bruge SHA256+træ i Varnish, for at sikre god distribution.

  • Stem op 1
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Klaus Post 3. jan. 2012 - 09.36
 
Re: Super nemt at generere

@Thomas Dybdahl Ahle: Nej - du har misforstået problemet. Læs de linkede artikler igen.

Det handler ikke om "bare" at lave en masse hash-værdier. Det handler om at generere kollisioner, der gør at du er nød til at teste hver enkelt værdi - hvilket er det som hash-træerne skal undgå til at starte med.

  • Stem op 0
  • Stem ned 1
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Kim Henriksen 3. jan. 2012 - 11.16
 
Re: Diverse korrektioner

Hvor har du informationen om at de først fixer hash problemet senere?

Den står da nævnt: http://technet.microsoft.com/en-us/security/bulletin/ms11-100 længere nede på siden?

  • Stem op 0
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Thomas Dybdahl Ahle 3. jan. 2012 - 11.20
 
Re: Super nemt at generere

@Klaus Post: Jeg tror du misforstår hvor nemme kollisioner kan være at generere. I java hashes en Long som (int)(value^(value>>>32)). Derfor har alle de tal på formen (i<<32|i) samme hash: 0.

At bruge et træ uden nøgler ville selvfølgelig kræve at man i steddet fandt gode og effektive måder at sammenligne de enkelte elementer. Det ville nok være svært for en hashtable over generelle blobs, men i de tilfælde hvor det er nemt, som her ved longs, kan jeg ikke se nogen grund til ikke at gøre det.

  • Stem op 1
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Poul-Henning Kamps billede
Poul-Henning Kamp 3. jan. 2012 - 11.44
 
Re: Diverse korrektioner

Den første version indeholdt kun priv-esc. Hash kom på senere.

  • Stem op 0
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Jacob Gorm Hansen 3. jan. 2012 - 13.38
 
Re: Diverse korrektioner

Jesper: Hvordan er det i praksis lettere at gemme en 64-bit hashtabel i hukommelsen? Jeg tror ikke der er mange steder du kan koebe en maskine med 2**64 bytes lager. I stedet for traeer kan man med fordel kigge paa Cuckoo Hashing som faktisk er en dansk opfindelse.

  • Stem op 1
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Jacob Christian Munch-Andersen 3. jan. 2012 - 15.26
 
Re: Diverse korrektioner

Cuckoo Hashing løser i hvert fald ikke problemet i sig selv, umiddelbart er det sårbart overfor kæder som kan flytte hele stakken af objekter med en enkelt insert, og derefter flytte hele molevitten tilbage igen med den næste insert osv. Hvis man kan gennemtvinge table rebuilds kan det i mange situationer også være et ret grimt angreb. Vi er vel sådan set blot tilbage ved at hash funktionerne skal være ukendte for angriberen.

  • Stem op 0
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Jacob Gorm Hansen 3. jan. 2012 - 16.16
 
Re: Diverse korrektioner

Pointen var ikke at cuckoo hashing beskytter mod angreb, men at 128 bits ikke er vaerre end 64, da det ikke giver mening at lave hashtabeller til nogen af delene. Cuckoo hashing er bedre en traeer fordi man i visse varianter kan komme over 90% pladsudnyttelse (se fx Manasse og Erlingssons udgave). Naturligvis skal man bruge en sikker hashfunktion, og man kan trivielt seede den med et hemmeligt, tilfaeldigt tal for at forhindre angreb. Endelig boer man jo kun bruge hashtabeller hvor det giver mening, da moderne hardware slet ikke bryder sig om random access.

  • Stem op 1
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Jacob Christian Munch-Andersen 4. jan. 2012 - 01.13
 
Re: Diverse korrektioner

Det giver såmænd ganske god mening at bruge en del af en stor hash til en hashtabel, man kan så lade hvert punkt i tabellen pege på et søgetræ som anvender hele hash værdien. Man får på den måde den garanterede performance og fleksibiliteten som et søgetræ giver, men man sparer tid ved at bruge et enkelt tabelopslag i stedet for at traversere den første del af et stort søgetræ.

  • Stem op 1
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Anders Hessellund Jensen 4. jan. 2012 - 10.16
 
Re: Diverse korrektioner
Endelig boer man jo kun bruge hashtabeller hvor det giver mening, da moderne hardware slet ikke bryder sig om random access.

Det er korrekt at random access i hukommelsen er dyrt, men et binært søgetræ hvor hver knude i træet er allokeret separat på heap'en giver en random access for hvert niveau i træet. Så en hashtabel er klart bedre. En hashtabel giver kun O(1) random accesses per opslag, hvilket er optimalt.

  • Stem op 0
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer
Jacob Gorm Hansen 4. jan. 2012 - 12.10
 
Re: Diverse korrektioner

Nu er der jo heldigvis andet end binaere soegetraeer til, og en simpel hashtabel kan kun lave opslag i konstant tid naar der ikke er kollisioner, hvilket typisk undgaas ved at fordoble tabellens stoerrelse hver gang der er en kollision. Cuckoo hashing og varianter deraf reducerer risikoen for at maatte fordoble, og udnytter dermed pladsen bedre. Et B-trae har ofte bedre lokalitet, specielt naturligvis naar input ikke allerede er hashet, og tillader bl.a. range queries. Mht. at kombinere en hashtabel med et trae, hedder det vist officielt et Van Emde Boas-trae, og har fordele mht. lokalitet ved bl.a. range queries, men er ofte dyrere mht. pladsforbrug.

  • Stem op 1
  • Stem ned 0
  • anmeld
  • Log ind eller opret en konto for at skrive kommentarer

Tilføj kommentar

Opret en konto eller log ind for at følge indhold på Version2 - og bliv opdateret via e-mail eller rss

Følg kommentarer
Log ind herunder eller opret en bruger for at skrive kommentarer
Du kan logge ind med din e-mail-adresse
Der er forskel på store og små bogstaver i adgangskoden.
Glemt adgangskode?

Seneste nyt

Teenager står frem: Derfor hackede jeg Version2

Udgivet 17. maj 16.40Opdateret 17. maj 16.40

Fredagshumor: Sådan ser indbakkens pestilenser ud i virkeligheden

Udgivet 17. maj 15.00Opdateret 17. maj 15.00

New Zealand dropper softwarepatenter

Udgivet 17. maj 14.09Opdateret 17. maj 14.09

Microsoft gemmer udspekuleret jobanonnce på Bing

Udgivet 17. maj 11.35Opdateret 17. maj 11.35

Ny wifi-standard med gigabit-hastighed er en gave til it-chefen

Udgivet 17. maj 10.54Opdateret 17. maj 10.54

Flere it-nyheder »

Tilmeld dig Version2's it-nyhedsbrev og vind den nye iPad.

Whitepapers

Version2 Insight: Softwaretest

Mediehuset Ingeniøren

Succes historier om OPS – Optimized Print Services

Konica Minolta Business Solutions Denmark

OPS - Optimized Print Services

Konica Minolta Business Solutions Denmark

Mobile Test Service - Device Strategy & Planning

Testhuset

A visual reality check that makes sense - Affecto customer reference

Affecto Denmark
  • Flere whitepapers

Branchenyheder

Interxion bygger nyt datacenter i Valby

Interxion Danmark

Skyen bliver hybrid i fremtiden

HP

HP giver bedre overblik over virksomhedens it-ricisi

HP

HP lancerer verdens mest automatiserede servere

HP

Lyncs stormløb - høje ambitioner og køb af Skype

GlobalConnect

It-virksomheder

Liga Distribution
|
Lakeside
|
Dubex
|
KJAER DATA
|
MN Security
|
CodeSealer Aps
|
Secu
|
Structura - IT
|
Customerwise A/S
|
Webdanmark.Com
|
Systematic
|
Kobalt
 

Information

  • Kontakt redaktionen
  • Job- og annoncesalg
  • Teknisk support
  • Om Version2
  • Brugerbetingelser
  • Cookie- & privatlivspolitik

Aktuelle emner

  • Agil udvikling
  • Business Intelligence
  • Cloud computing
  • Intranet
  • It-sikkerhed
  • NemID
  • Open source CMS
  • Projektledelse
  • Scrum
  • Sharepoint intranet
  • Storage
  • Ubuntu
  • Virtualisering
  • Windows 8
  • Windows Server 2012
  • iOS 6
  • iPhone 5

Tjenester

  • iPhone-app
  • RSS-feeds
Følg @version2dk
Tilmeld dig Version2's it-nyhedsbrev og vind den nye iPad.

Version2 udgives af

  • Mediehuset Ingeniøren A/S work Trekronergade 26 2500 Valby
  • Tlf. work 33265300