Hvorfor er åpen kildekode viktig?

Hva er åpen kildekode?

Open source-programvare er programvare hvis kildekode er blitt offentlig tilgjengelig av opphavsrettsinnehaveren. Under en ekte åpen kildekodelisens er programvaren utviklet i samarbeid, og andre programmerere kan se på, endre eller bruke koden til sine egne formål. Denne "rene" open source modellen blir ofte referert til som FOSS (gratis og open source programvare).

En variant av åpen kildekode er "tilgjengelig kilde", noe som betyr at det ikke gis tillatelse til å endre eller på annen måte bruke koden, men at den er tilgjengelig for inspeksjon. Av sikkerhetshensyn er dette like bra som ekte open source, så når jeg refererer til “open source” i denne artikkelen, inkluderer jeg kode som er “source source”.

Hva er lukket kilde?

Det meste av programvare er skrevet og utviklet av kommersielle selskaper. Forståelig nok er disse selskapene opptatt av ikke å få andre til å stjele hardt arbeid eller forretningshemmeligheter, så de gjemmer koden sin fra nysgjerrige øyne ved hjelp av kryptering, og ethvert forsøk på å bruke eller endre koden uten tillatelse vil føre til søksmål eller verre.

Så hva er problemet?

Som jeg sier, dette er ganske forståelig, men når det gjelder sikkerhet, er det et stort problem. Hvis ingen kan se detaljene i hva et program gjør, hvordan kan vi da vite at det ikke gjør noe ondsinnet? I utgangspunktet kan vi ikke, så vi må bare stole på det involverte selskapet, noe som paranoide sikkerhetstyper er avsky for å gjøre (med god grunn).

Hvorfor er åpen kildekode den beste løsningen?

Hvis koden er åpen kildekode, kan den uavhengig undersøkes og revideres av alle som er kvalifiserte til å gjøre det, for å kontrollere at det ikke er noen bakdører, sårbarheter eller andre sikkerhetsproblemer. Open source er ikke en perfekt løsning (se nedenfor), men det er den eneste måten å måtte verifisere at programvare bare gjør akkurat det den skal.

Selv om koden ikke er revidert, gir det faktum at den fritt tilgjengelig for å bli revidert en sterk indikasjon på at den kan stole på, ettersom det er usannsynlig at utviklere vil inkludere skadelig kode og deretter la den være åpen for å bli oppdaget av alle som bryr seg om å se.

Ikke en perfekt løsning ...

Dessverre er det et begrenset antall individer med både ferdigheter og tid til å revidere åpen kildekode-programvare (vanligvis gratis), noe som betyr at de aller fleste open source-programmer ikke har blitt revidert.

Dette problemet blir forsterket av det faktum at mange open source-programmer er ekstremt kompliserte, og inneholder tusenvis av tusenvis av kodelinjer, så selv om de er revidert, er det fullt mulig at revisorene savnet et problem (spesielt hvis ondsinnet kode har blitt bevisst skjult).

Men…

Open source garanterer derfor ikke at et program er “rent”, men det er likevel den beste garantien for at vi har (eller kan ha) at dette er slik. Alternativet er lukket kildekode, som ikke gir noen garantier overhodet.

Bekreft alltid open source-programmer

Så åpen kildekode er bra for sikkerhet. Jippi! Men hvordan kan du vite det sikkert at open source-programmet du nettopp lastet ned, ikke har blitt tuklet med på noen måte?

Dette kan høres ut som whacko paranoid konspirasjonsfantasi-tenking, men i februar 2016 ble nettstedet til en av de mest populære versjonene av Linux open source operativsystem, Linux Mint, hacket, og en kompromittert versjon av OS ble gjort tilgjengelig for nedlastere,

"Hackere laget en modifisert Linux Mint ISO, med en bakdør i, og klarte å hacke nettstedet vårt for å peke på det."

De infiserte Linux ISO-bildene installerte det komplette operativsystemet med Internet Relay Chat (IRC) bakdør Tsunami, som ga angriperne tilgang til brukernes system via IRC-servere. Så trusselen er veldig reell.

I dette tilfellet ville nedlastere som gidder å sjekke filen MD5-hash (se her for hvordan du gjør dette) ha oppdaget bedraget, men slike hasjkontroller er ikke en pålitelig beskyttelse fordi hvis et nettsted kan hacket i utgangspunktet, er trivielt å erstatte den publiserte sjekksummen med en falsk fil som verifiserer den sammensatte filen.

Mye bedre er det for utviklere å signere programvaren deres digitalt, slik at brukerne kan bekrefte opprinnelsen til en fil (Mint-utviklerne var veldig slappe i denne forbindelse, ettersom programvaren deres ikke ble signert digitalt, og til og med MD5-hashfunksjonen som ble brukt er kjent å bli ødelagt!)

Se artikkelen min om digitale signaturer - hvorfor og hvordan du bør bruke dem for mer informasjon. Bekreftelse av bekreftelse av digitale signaturer er dessverre noe vondt, men det er nødvendig hvis du bryr deg om sikkerhet.

Jeg må også være oppmerksom på at ideelt sett bør all programvare signeres og verifiseres digitalt, men fordi åpen kildekode fritt kan endres av hvem som helst, er det lettere å tukle med enn lukket kildekode. Det er derfor spesielt viktig å verifisere open source-programmer.

Open Source: Konklusjon

Open source er ikke en perfekt løsning, men den gir den beste (og eneste!) Garantien som er mulig for at programvare kan stole på. Alternativet er lukket kildekode, som ikke gir noen garanti overhodet (annet enn blind tro på selskapet, som er en tro tech selskaper ikke fortjener).

Brayan Jackson
Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me