Selv vores forældre er ved at have lært at opdateringer til windows er vigtige – uanset om viljen er baseret på teknisk indsigt eller nagende popups. Men på trods af at vi måske formår at holde vores operativsystem opdateret er der mange andre flader der, pga. manglende opdateringer, er sårbare over for angreb.
Det kan være den webserver vi benytter, de frameworks vi benytter eller sågar den software der er i vores router.
Komponenter med kendte sikkerhedshuller
Vi bruger som udviklere mange eksisterende komponenter og frameworks – ofte bliver man bundet til en gammel udgave af et bestemt stykke software på grund af versionsmæssige afhængigheder på tværs. Det betyder at softwaren ikke altid er den nyeste, og dermed kan der være kendte sikkerhedsbrister der blot venter på at blive udnyttet.
Aspect Security foretog i 2002 en undersøgelse af 113 millioner downloads af java biblioteker – heraf havde 29.8 millioner kendte sikkerhedshuller (26%).
Et andet eksempel er Windows XP, der på trods af at Microsoft efter 12. år stoppede med at tilbyde frit tilgængelige sikkerheds-patches pr. 8. april 2014 stadig vurderes at have en markedsandel på over 17%.
Undgå angreb
- Ideelt set har man en automatik der jævnligt checker efter nye komponenter. En mulighed er fx. at hver nat at lave et såkaldt canary-byg (inspireret af kanariefuglen i kulminen) hvor alt software tvinges op på nyeste version før at der afvikles tests.
- Udfør natlige automatiserede checks for kendte sårbarheder.
- Alternativt kan man manuelt udføre en opgradering til seneste versioner, fx. pr. udviklings-iteration.
- Hvis opgradering ikke er en mulighed, kan man checke ændringslister for nyfundne sårbarheder, og så opgradere disse.
Benytter man pakkemanageren nuget kan man i konsollen blot udføre denne kommando, for at opgradere alle pakker:
Update-Package
For nuget findes også også nugetfeed.org hvor man kan vælge at abonnere på ændringer på de biblioteker man benytter. Og så er sitet lavet af en af QED’s gæsteskribenter, Thomas Ardal.
Selv med alle forholdsregler er vi aldrig 100% sikre. Zero-day angreb, hvor kun hackeren, og ikke softwareproducenten kender til sikkerhedsbristen er hyppige og erkendelsen af dette har da også fået de store softwareproducenter til at tilbyde stadig større pengebeløb i håbet om at informationen går til dem og ikke hacker-miljøet.
Hvis vi ikke er i en situation hvor vi kan købe os til sikkerheden må vi søge for at have konsistente opdateringsrutiner og nok instrumentering til trods alt at opdage problemet hvis det opstår.
Ligeledes kan vores arkitektur hjælpe med at støtte op omkring sikkerheden. Fx. ved at benytte CQRS og låse ned på rettighederne på vores data-store så eksisterende data ikke kan ændres eller slettes.