Hvorfor tilføjelse af fejl til software kan gøre det mere sikkert

Når det kommer til radarsporing, er en af ​​de mest effektive modforanstaltninger at frigive en sky af aluminiumsstrimler eller metalliseret plast. Disse reflekterer kraftigt radar og skaber tusindvis af mål, som oversvømmer og forvirrer radarens tilbagevenden. Det forvirrer alt, der prøver at spore dig, såsom et radarstyret missil.





De fleste militærfly og krigsskibe og mange ballistiske missiler har lokkesystemer, der inkluderer avner. Og nu anvender cybersikkerhedsforskere den samme idé på software.

Ideen er i princippet enkel. Software indeholder ofte fejl, hvoraf de fleste bliver ubemærket af dens skabere og af legitime brugere. Men ondsindede aktører søger aktivt efter disse fejl, så de kan udnytte dem til målrettede angreb. Deres mål er at overtage computeren eller på anden måde manipulere den.

Men ikke alle fejl er lige. Nogle kan ikke udnyttes til ondsindede formål og gør intet værre end at få et program til at gå ned. Dette kan være alvorligt, men der er en stor klasse af software, såsom baggrundsmikrotjenester, der er designet til at håndtere nedbrud med ynde ved at genstarte softwaren, mens brugeren ikke er klogere. Disse fejl er meget mindre alvorlige end dem, der tillader ondsindet kontrol.



Men det er ikke altid nemt at skille dem ad. Efter at ondsindede kodere har fundet fejl, skal de skelne mellem dem, der er virkelig farlige, fra dem, der er relativt godartede, og den proces er generelt vanskelig og tidskrævende.

Det er grundlaget for en ny tilgang udviklet af Zhenghao Hu og kolleger ved New York University. Hvorfor ikke fylde almindelig kode med godartede fejl som en måde at narre potentielle angribere på?

Ideen er at tvinge angribere til at bruge deres ressourcer på at finde og teste fejl, der ikke vil være til nogen nytte for dem. Hu og co kalder disse lokkefugle for avner, i analogi med de aluminiumsstrimler, der bruges til at narre radaroperatører.



Idéen er blot det seneste træk i et stadig mere komplekst kat-og-mus-spil, der sætter sikkerhedseksperter mod angribere. I de senere år har forskellige grupper udviklet programmer, der jager gennem kode og leder efter sårbarheder, som en angriber kan udnytte. Sikkerhedseksperter bruger denne tilgang til at finde og fjerne disse sårbarheder, før koden bliver offentlig, mens ondsindede angribere bruger samme tilgang til at finde fejl, de kan udnytte.

Men for sikkerhedsforskere er det svært at udvikle disse programmer og kræver, at der er sårbarheder i softwaren i første omgang. Så forskere har udviklet et andet værktøj, der automatisk tilføjer disse fejl til software, så de senere kan blive opdaget af sårbarhedsjagtprogrammet.

Det viser sig, at det på ingen måde er ligetil at tilføje fejl. Tilfældige ændringer af koden har en tendens til at gøre den ubrugelig i stedet for at introducere interessante anomalier. I stedet involverer processen at køre koden med forskellige input og overvåge, hvad der sker med disse input, efterhånden som koden skrider frem.



Denne proces leder efter punkter i programmet, hvor input ikke længere bliver brugt til at træffe fremtidige beslutninger. I så fald kan dette døde input manipuleres ondsindet for at ødelægge eller overfylde hukommelsen.

Programmet til at opdage sårbarhed noterer, hvor disse døde zoner er, så de kan udnyttes senere.

Det viser sig, at disse potentielle fejl er almindelige i kode skrevet på sprog som C og C++, som ikke har systemer, der overvåger hukommelsesbrug.



Hu og co bruger simpelthen denne tilgang til at tilføje hukommelseskorruptionsfejl i hele koden. Under almindelige omstændigheder er disse insekter godartede. Men hvis de bliver fundet af en ondsindet skuespiller, kan de kun udnyttes til at nedbryde programmet – ikke til noget mere uhyggeligt. Det er derfor, de fungerer som avner.

Angribere, der forsøger at finde og udnytte fejl i software, vil med stor sandsynlighed finde en bevidst placeret ikke-udnyttelig fejl og spilde dyrebare ressourcer i forsøget på at bygge en fungerende udnyttelse, siger Hu og co.

Holdet fortsætter med at vise, at de nuværende processer til at spotte potentielle fejl bliver narret af denne tilgang. Vi viser, at softwarens funktionalitet ikke skades, og demonstrerer, at vores fejl ser ud til at kunne udnyttes til nuværende triage-værktøjer, siger de

Det er en interessant tilgang, der har potentialet til betydeligt at sidespore ondsindede angribere. Vi mener, at chaff bugs kan tjene som en effektiv afskrækkelse mod både menneskelige angribere og automatiserede Cyber ​​Reasoning Systems, siger Hu og co.

Men det rejser også nogle interessante spørgsmål. For eksempel er der ikke noget egentligt bevis for, at triaging af fejl for at finde dem, der kan udnyttes, nødvendigvis er svært og tidskrævende. Det er teoretisk muligt, at nogen et eller andet sted har fundet en hurtig måde at gøre det på.

Hvis det viser sig, at der er en måde, hvorpå man nemt kan skelne chaff bugs fra dem, der kan udnyttes, så bliver denne tilgang mindre værdifuld. Hu og co forsøger faktisk ikke at skjule eller skjule deres fejl. Det betyder, at de i øjeblikket indeholder mange artefakter, som angribere kunne bruge til at identificere og ignorere dem, siger de.

Der er også meget lidt variation i disse injicerede insekter. [Dette] kunne give en angriber mulighed for at identificere mønstre i de fejl, vi producerer, og udelukke dem, der matcher mønsteret, siger de.

Men der er et betydeligt potentiale forude. Ideen med at tilføje fejl i stedet for at fjerne dem er en lækker ondsindet tilgang til cyberkriminalitet, og en der burde udløse nogle interessante muligheder for fremtidig forskning.

Ref: arxiv.org/abs/1808.00659 : Chaff Bugs: Afskrække angribere ved at gøre software Buggier

skjule