Det verkliga säkerhetsproblemet för programvaran är oss

En kollega beskrev nyligen en rolig fredagskväll för sin tonårsson: att stanna hemma och chatta online. Då och då är det en fest där alla hans vänner pratar på sina bärbara datorer.





Vi blir mer och mer vana vid att leva i sådana virtuella utrymmen – men det finns en viktig skillnad att göra mellan virtuella utrymmen och de faktiska fysiska utrymmen vi går runt i. Vi förväntar oss vanligtvis att vi kan gå över en bro eller in i en byggnad utan att strukturen kollapsar. Vi har inte den typen av förtroende med program.

Tro det inte, vi skulle, i en inte så avlägsen framtid, faktiskt kunna leva i en värld där programvara inte slumpmässigt och katastrofalt misslyckas. Våra mjukvarusystem kunde motstå attacker. Våra privata sociala medier och hälsodata kunde endast ses av de som hade tillstånd att se dem. Allt vi behöver är rätt korrigeringar.

Problemet med modern programvara är att vi har byggt våra skyskrapor med samma material och tekniker som används för att bygga hyddor. Programvara började som en samling klossar: enkla procedurer, sekvenser av kommandon för beräkningar, spel och kuriosa. Decennier senare har vi miljontals procedurer som interagerar med varandra på sammankopplade maskiner med tillgång till alla typer av hemlig information. Ändå använder vi fortfarande liknande språk och verktyg.



Om vi ​​vill att våra system ska ha färre sårbarheter måste vi använda bättre byggmaterial. De språk som människor använder idag gör det för lätt för programmeraren att göra misstag, och de gör det för svårt att upptäcka misstagen.

Ett bättre sätt vore att använda språk som ger de garantier vi behöver. Heartbleed-sårbarheten inträffade för att någon glömde att kontrollera att en bit av minnet slutade där det var tänkt. Detta kan bara hända i ett programmeringsspråk där programmeraren är ansvarig för att hantera minnet. Så varför inte använda språk som hanterar minnet automatiskt? Varför inte låta programmeringsspråken göra det tunga arbetet?

Ett annat sätt skulle vara att göra programvara lättare att analysera. Facebook hade så mycket problem med att förstå programvaran som den använde att den skapade Hack and Flow, kommenterade versioner av PHP och Javascript, för att göra de två språken mer begripliga.



Detta är delvis vårt eget fel. Vi tycker att livet på nätet är roligt, så vi tenderar att låta webbplatser göra vad de vill med vår personliga information. Mjukvaruföretag svarar genom att ta fram nya funktioner så snabbt som möjligt och använda de mest bekväma materialen och verktygen på bekostnad av säkerheten.

Förändring kommer inte att ske förrän vi kräver att det händer. Vår programvara kan vara lika välkonstruerad och pålitlig som våra byggnader. För att få det att hända måste vi alla värdera teknisk sundhet framför nyhet. Det är upp till oss att göra livet på nätet lika säkert som det är roligt.

Jean Yang är biträdande professor i datavetenskap vid Carnegie Mellon University och medgrundare av Cybersecurity Factory, en accelerator fokuserad på mjukvarusäkerhet.



Dölj