Noe av den første informasjonen som ble offentlig tilgjengelig om Heartbleed-sårbarheten i kryptobiblioteket OpenSSL fortalte at sårbarheten finnes i OpenSSL 1.0.1 til og med 1.0.1f. OpenSSL 1.0.1g er ikke sårbar.
I slutten av forrige uke ble digi.no tipset av en leser som nettopp hadde installert Linux-distribusjonen Ubuntu 14.04 LTS og som så at denne, også etter å ha installert de nyeste pakkene, brukte OpenSSL 1.0.1f.
Denne utgaven av Ubuntu er en med ekstra land supporttid og særlig beregnet for brukere som krever stabil funksjonalitet. Det ville derfor være ekstra overraskende om akkurat denne utgaven skulle være sårbar, mer enn en måned etter at Heartbleed-sårbarheten ble offentlig kjent.
Det viste seg heldigvis raskt at så ikke var tilfellet. Teamleder i Ubuntu Norge, Jo-Erlend Schinstad, forklarer til digi.no:
– Vi ser at han har OpenSSL 1.0.1f installert – og hvis det er noe de fleste har fått med seg, så er det at den er sårbar. Men vi ser også at Ubuntus versjon er 1.0.1f-1ubuntu2.1, og da kan vi se på endringene i den versjonen her. Som vi ser, lukker den CVE-2010-5298 og CVE-2014-0198, som jo ikke er Heartbleed. Litt lenger nede på den siden, under Available Diffs, kan vi se forskjellen som ble gjort i forrige versjon, altså 1.0.1f-1ubuntu2.
– Her ser vi hver eneste lille byte som ble endret i 1.0.1f-1ubuntu2 og at den lukker CVE-2014-0076 og CVE-2014-0160 – Heartbleed. Vi ser at feilen ble rettet i Ubuntu 2014-04-07 19:40:59UTC av Marc Deslauriers . Vi ser også den nøyaktige koden som ble brukt for å fikse feilen i 1.0.1f. Det tok altså ikke mer enn noen få timer fra feilen ble offentliggjort og til den ble sendt ut til Ubuntus brukere. Det må kanskje være lov å påpeke at ikke alle var like raske som Ubuntu, skriver Schinstad i en post til digi.no.
Det Schinstad vil fram til, er at det i Ubuntu – og også i en del andre Linux-distribusjoner, ikke er versjonsnummeret til «upstream» – opphavet til komponenten – som er det avgjørende for om feil har blitt rettet i distribusjonen, men distribusjonens eget versjonsnummer for programvarepakken.
Eget versjonssystem
Pakken som var blitt installert på vår lesers system, har versjonsnummeret 1.0.1f-1ubuntu2.1. Den siste delen, som også Schinstad refererer til, forteller om endringer som har blitt implementert i koden av Ubuntu-prosjektet selv. I dette tilfellet dreier det seg om flere feilfikser, blant inkludert det å fjerne Heartbleed, uten å måtte ta i bruk en ny versjon av OpenSSL som kanskje også inkluderer andre endringer og potensielle regresjoner.
Det Ubuntu har gjort, kalles for backporting – det vil si å gjøre nyere feilfikser tilgjengelige i eldre versjoner av programvaren.
– Det som er litt interessant ved akkurat dette tilfellet, er at Heartbleed ble oppdaget helt mens Ubuntu var i sluttfasen av utviklingen av 14.04 LTS. Da er versjonene allerede frosset. Ellers ville vi antakelig hatt 1.0.1g fremfor en reparert 1.0.1f. Det kan kanskje virke litt skummelt med tanke på all publisiteten, men det er altså ingen grunn til bekymring – Ubuntu er bunnsolid, hevder Schinstad.
Hensikten med backportingen, i stedet for å bruke nye versjoner av programvaren, er å sørge for at systemet endres så lite som mulig mellom i dag og ved slutten av supportperioden, som for Ubuntu 14.04 LTS’ del er mai 2019. Det sikrer stabilitet, både for brukerne og dem som leverer programvare til systemet.
I OpenSSLs tilfelle har det blitt endret så lite at programvaren selv oppgir at den er «OpenSSL 1.0.1f 6 Jan 2014». Denne datoen bidro til usikkerheten vår leser følte, siden Heartbleed ble fjernet i april.
– Backporting er den tingen som gjør at systemet ditt fremdeles virker på mandag morgen, og at butikken din ikke må holde stengt i en uke, sier Schinstad.
Leave a Reply