Simovits

Sårbarheter och silver bullets.

Jag besökte BlackHat i början av augusti och gick utöver själva konferensen en kurs som heter ”BlackOps Hacking – Master Level”. Gemensamt med båda var att det var en hel del diskussion om sårbarheter (så klart…) och 0-days från olika perspektiv – utveckling/forskning, köpare och säljare.

Marknaden är stor för 0-days och sårbarheter och det är en kamp mellan de som behöver skydda sig mot dem och de som vill utnyttja dem. Incitamentet att vara den fösta som hittar 0-days/sårbarheter är stor. Sedan är det skillnad på dem som får lön under tiden de letar efter dessa, som Project Zero, och de som livnär sig på att hitta och sälja sårbarheter.

Marknaden för 0-days

Under de senare åren har vi sett en mängd 0-days som fått en hel del uppmärksamhet efter att de blivit kända, så som Heartbleed [1] och Meltdown [2].

Maor Shwartz [3] talade på BlackHat och placerade intressenterna i tre grupper; white hats, grey hats och black hats:

Vidare beskriver Shwartz att 0-day marknaden har gått från att vara något som sker i det mörka till att ske mer öppet. Att det har blivit mer öppet kan vara utökning av marknaden, då det finns företag som Zerodium som köper från utvecklade/forskare och säljer 0-day till statliga aktörer [5].

Det behöver inte alltid vara ett ”ont” företag som köper sårbarheterna. En 0-day kan självklart ge ett företag en fördel i sin bransch för att kunna leverera en produkt eller lösning. Det är exempelvis sannolikt att Cellebrite, ett mobilforensikföretag, har kännedom om en sårbarhet som tillåter dem extrahera data från vissa telefonmodeller när de har fysisk tillgång till den – och denna sårbarhet är inte allmänt känd [6] (notera att det inte är känt hur Cellebrite går tillväga eller om de köpt eller själv identifierat en eventuell sårbarhet). Men finns det en sårbarhet kan de också utnyttjas av de som vill något ont.

Responsible disclosure och bug bounties

Å ena sidan har vi 0-day försäljarna och sedan har vi de som (kanske) försöker göra en god gärning. En aktör utför en responsible disclosure genom att informera de som har en sårbarhet för att ge dem viss tid att årgärda en brist innan information om sårbarheten publiceras. Detta sätter press på att åtgärda en sårbarhet – vi kan nog bara spekulera kring hur länge vissa sårbarheter har varit kända för en leverantör men åtgärden har inte prioriterats. Vid en responsible disclosure ges leverantören en deadline – när tidsfristen går ut publiceras information om sårbarheten och den blir allmänt känd. Googles Project Zero har blivit ”anklagade” för att ha publicerat information om sårbarheter efter en responsible disclosure trots att tidsfristen gått ut [7]. Responsible discolsure är ett sätt att tvinga fram säkrare produkter och bättre rutiner kring hantering av sårbarheter, men det fungerar inte alltid riktigt som tänkt.

Är det ens möjligt att förbättra responsible disclosure och uppnår det verkligen det man vill? Finns det möjligheter att få det att bli lika populärt som att sälja sårbarheterna vidare? Bug bounty-program börjar öka – där får de som hittar sårbarheter en slant (allt från några få dollar till tusentals dollar) för att rapportera in dem till leverantören. Men för att marknaden ens ska ha en chans att bli mer öppen måste dessa belöningar ibland motsvara den summa som de som faktiskt är intresserade av att utnyttja en sårbarheterna är villiga att betala, vilket oftast är betydligt mycket mer. Och det är helt enkelt osannolikt att det skulle utrota 0-day marknaden… Dessutom är bug bounty programmen många gånger begränsade till en viss typ av sårbarheter och endast delar av system – de kanske bara skrapar på ytan. En black hat skulle inte bry sig detta och leta efter sårbarheter överallt och sälja dem vidare i en mer dold marknad utan att tänka på eventuell etik och moral. Företagen skulle i längden antagligen tjäna på att investera i säkerhetsgranskningar själva (antingen internt eller av extern leverantör) och leverera en säker produkt från start, men trots det så finns alltid risk att sårbarheter finns.

Slutsatser…

Marknaden för sårbarheter finns och det finns incitament att hitta sårbarheter. Sedan är det skillnad på dem som får lön under tiden de letar efter dessa, som Project Zero, och de som livnär sig på att hitta och sälja sårbarheter. Bug bounty-programmen är ofta begränsade till vissa typer av sårbarheter och delar av system så som publika webbsidor – de riktigt allvarliga sårbarheterna kanske aldrig identifieras på detta sätt.

Det är aldrig möjligt att säga att ett system är buggfritt eller att ett system är helt säkert. Det finns så många faktorer som spelar in. Hot utifrån och inifrån. Många attackvektorer. Det viktigaste är trots allt att göra det bästa för att göra ett system säkert, ta med säkerhet redan från början i ett projekt och ha med det under systemets hela livscykel. Och om något skulle orsaka en it-säkerhetsincident trots det, för det går aldrig att förutse, behöver man veta hur information hanteras och var den finns för att kunna minimera risker och begränsa skada. Det finns ingen silver bullet.

Referenser

[1] http://heartbleed.com/

[2] https://meltdownattack.com/

[3] http://i.blackhat.com/USA-19/Wednesday/us-19-Shwartz-Selling-0-Days-To-Governments-And-Offensive-Security-Companies.pdf

[4] https://www.zerodayinitiative.com/blog/2019/1/14/pwn2own-vancouver-2019-tesla-vmware-microsoft-and-more

[5] https://zerodium.com/faq.html

[6] https://www.wired.com/story/cellebrite-ufed-ios-12-iphone-hack-android/

[7] https://www.forbes.com/sites/daveywinder/2019/06/12/warning-windows-10-crypto-vulnerability-outed-by-google-researcher-before-microsoft-can-fix-it/#7bdfc0cf2fd6