Retssag afslører alvorlige programmeringsfejl i alkometre

Det var nødvendigt at lægge sag an mod producenten for at få udleveret kildekoden, som viste sig at indeholde 19.400 potentielle fejl.

Politi over hele verden bruger elektroniske alkoholmetre eller alkometre til at måle, hvor meget alkohol en person har i blodet. Men en retssag i USA har vist, at i hvert fald én producents software til alkometre indeholder flere graverende fejl.

Kildekoden til den tyske producent Drägers alkometre er normalt lukket og utilgængelig, men i forbindelse med en retssag i USA, har et konsulentfirma analyseret kildekoden.

Ifølge advokatfirmaet Evan Levow viste konsulentfirmaet Base Ones analyse, at softwaren indeholdt helt op mod 19.400 potentielle fejl.

En af de mest alvorlige er måden, som softwaren tager et gennemsnit af målingerne. Et alkometer tager en serie af målinger og skulle angive gennemsnittet. Men i Drägers software skete det ved først at tage gennemsnittet af de to første målinger og derefter gennemsnittet af dette resultat og den næste måling.

Det er problematisk, fordi det giver den sidste måling en større vægt i forhold til de foregående målinger.

Selvom målingerne gives med 12 bits præcision, så lagrer alkometeret dem kun med fire bit. Og samtidig bliver værdierne delt med to. I stedet for værdier mellem 0 og 4.095 bliver målingerne derfor udtrykt som værdier mellem 0 og 7.

Dertil kommer selve håndteringen af fejl under kørslen af softwaren. I stedet for at afbryde, hvis der sker en fejl, så kører programmet videre.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (18)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
#1 Torben Mogensen Blogger

Et alkometer tager en serie af målinger og skulle angive gennemsnittet. Men i Drägers software skete det ved først at tage gennemsnittet af de to første målinger og derefter gennemsnittet af dette resultat og den næste måling.

Det er problematisk, fordi det giver den første måling en større vægt i forhold til de efterfølgende målinger.

Nej, det giver den sidste måling større vægt end de foregående.

  • 0
  • 0
#2 Helge Svendsen

Jeg synes jeg hørte noget om målere, der skulle være så præcise, at blodprøven bagefter kunne sløjfes?

Det hjælper jo ikke det store, hvis der er fejl i softwaren på dem.

Måske man lige burde analysere dem på samme led først?

  • 0
  • 0
#3 Steen Poulsen

I Norge var der en som fik målt en "dødelig" brandert af et alkometer - det viste sig at de pebermynte pastiller som manden havde tygget på, som fik alkometeret til at måle ekstremt høje værdier !

Men politiet har ikke den rigeste forstand på måleinstrumenter. Derfor fortolker de ofte et måleresultat forkert. De kontrollere ikke om instrumenterne måler rigtigt - for som de siger - det har vi ikke kompetence til - og det må siges at være HELT rigtigt ! Spørgsmålet er så bare om de har kompetence til at vurdere om resultatet er rigtigt ??

Det problem gælder også hastigheds målinger – hvor der er tilsvarende usikkerheds problemer.

  • 0
  • 0
#4 Claus Dræby

kan jeg have tillid til et stykke software jeg ikke kan se kildeteksten til...

Det er min tilbagevendende konklusion på sådanne sager.

Som konsulent ser man meget kode hos forskellige - også store og succesfulde - firmaer, og jeg synes godt nok at meget af det fuldt fortjener PHK's fine betegnelse klyt-kode.

  • 0
  • 0
#5 Kasper Birch Olsen

I Danmark bliver man jo ikke dømt på baggrund af en alkometer måling men på baggrund af den blodprøve der bliver foretaget på et sygehus efterfølgende.

Det kunne jo være interessant at høre om resultaterne af alkometermålingerne og resultaterne af blodprøverne følges nogenlunde ad.

Og så kunne det være interessant at høre hvor forskellige mange målinger alkometeret laver (et fejlberegnet) gennemsnit af er så deres brøler med at give de(n) sidste måling(er) ekstra vægt egentligt betyder noget.

  • 0
  • 0
#7 Kristian Thy

I Danmark bliver man jo ikke dømt på baggrund af en alkometer måling men på baggrund af den blodprøve der bliver foretaget på et sygehus efterfølgende.

Prøv så at overveje hvor mange spritbilister der ikke har afleveret blodprøve fordi alkometeret sagde de godt måtte køre ...

  • 0
  • 0
#10 Jesper Stein Sandal

@Torben: Du har ret. Jeg citerede originalkilden, men selvfølgelig er det den sidste værdi, der får større vægt. Tager man eksempelvis talsættet [3; 2,5; 2; 1,5; 1] er gennemsnittet 2. Bruger man den metode, som blev brugt i softwaren, får man værdien 1,46875.

@Kasper m.fl.: Faktisk vil blodprøverne nu blive erstattet med særlige "bevisalkometre", som skal bruges som bevis: http://www.politi.dk/da/aktuelt/nyheder/bevisalkometre_29122008.htm

Mvh. Jesper Stein Sandal Version2.dk

  • 0
  • 0
#11 Klaus Elmquist Nielsen

@Kasper m.fl.: Faktisk vil blodprøverne nu blive erstattet med særlige "bevisalkometre", som skal bruges som bevis: http://www.politi.dk/da/aktuelt/nyheder/bevisalkometre_29122008.htm

Det skal nok blive sjovt! Man må håbe at folk dels kan bede om at få en blodprøve alligevel og dels at nogen tager sagen i denne artikel alvorligt og får kvalitetssikret "bevisalkometeret".

  • 0
  • 0
#12 Steen Poulsen

Kasper Birch ... Joo, du har ret - lidt endnu, men jeg vil lige sige dig at det var millimeter fra at Lene E. ville ændre loven, så folk kunne dømmes på alkometer resultatet, og dermed ændre det til at en blodprøve IKKE var nødvendig, for at få folk dømt ! Og det er skrammende !!!!

  • 0
  • 0
#13 Deleted User

Hvorfor testes de ikke, og resultat sammenlignes med andre? Så graverende fejl, som at kun reelt have 3 bits nøjagtighed, når der burde være 12, skulle nemt kunne afsløres af en simpel test, hvor der måles på forskellige alcoholpromiller. Jeg går ud fra, at det er muligt at blande nogle promiller, så de forskellige kan testes på samme gas/luft, og med kendt resultat.

Gennemsnitsmålingen, kan måske undersøges, ved at lade promillen variere under testen. Det må kunne gøres med et test apparat.

Er der grund til Open Source overhovedet? At finde 19.000 fejl - i et produkt, der aldrigt har været testet - hvorfor dog spilde tid på det?

  • 0
  • 0
#14 Claus Waldersdorff Knudsen

Kan der overhovedet være så mange linier kode i et så forholdsvist simpelt stykke teknik. Jeg går ud fra at det er noget embedded noget, og med mindre Dräger anvender noget RTOS, har jeg svært ved at se at de overhoved kan komme over 5000 linier kode.

Men de har jo nok inkluderet RTOS i en eller anden form, og så vokser det jo udover det rimelige. Eller har anvendt chipfabrikantens "ready-to-go" software, hvor det er set .h filer i tåbeligt mange nestede niveauer.

Nå, KISS er det tilsyneladende ikke.

  • 0
  • 0
#15 Deleted User

Men de har jo nok inkluderet RTOS i en eller anden form, og så vokser det jo udover det rimelige.

Ikke nødvendigvis. Der er ingen lov om, at RTOS fylder meget. Et typisk brugt RTOS i produkter som alcometre, og andet der består af en simpel microcontroler, er SALVO - et lille RTOS på ned til 1-2K i assembler kode. Det fås i mange udgaver, til mange microcontrolere, og også til pentium (X86) arkitektur, og udgaven kan derfor vælges efter opgaven og processorens pris og størrelse. Scheduleringsalgorithmen i et RTOS fylder næsten intet, og RTOS er ikke noget der gør et OS større.

Der er større tendens til, at ethernet og disk-access øger størelsen. Operativsystemer med ethernet, lægger ofte op til 8 kilo maskinkode til operativsystemet. I nogle tilfælde, kan det gøres mindre, ved at anvende fortolker teknikker, da fortolket kode kan gøres mere kompakt end maskinkode, f.eks. "udpakkes" under udførsel og køres i moduler, eller gemmes i et overvejet komprimeret format, der "fortolkes". Tvivler dog på, at et alcometer har ethernet, og WiFi support...

  • 0
  • 0
#16 Deleted User

Disse potentielle fejl er de kun gældende for de alkometre som Drager har lavet?

Jeg overvejer at anskaffe et alkometer selv, som et af disse: http://www.unimenco.dk/alkometer.html eller http://testdig.dk/alkoholtest-1/alkometer-6/ , men er jo ikke interesseret i, at det indeholder en masse fejl og i princippet viser et forkert resultat.

Vil disse alkometre også indeholde de fejl som bliver nævnt her?

  • 0
  • 0
#18 Morten Andersen

Jeg studsede også over de 19400 fejl. Jeg tror næppe et konsulentfirma kunne identificere så mange egentlige fejl, det ville være alt for dyrt. Mon ikke de bare kørte en static analyzer der kom ud med så mange fejl? Mange af dem dækker måske over 'klytkode' men kan ikke nødvendigvis udløses af omstændigheder udefra.

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