Varför lägga till buggar i programvara kan göra det säkrare

När det kommer till radarspårning är en av de mest effektiva motåtgärderna att släppa ett moln av aluminiumremsor eller metalliserad plast. Dessa reflekterar starkt radarn och skapar tusentals mål, som svämmar över och förvirrar radarns returer. Det förvirrar allt som försöker spåra dig, till exempel en radarstyrd missil.





De flesta militära flygplan och krigsfartyg, och många ballistiska missiler, har lockbetesystem som inkluderar agnar. Och nu tillämpar cybersäkerhetsforskare samma idé på programvara.

Tanken är i princip enkel. Programvara innehåller ofta buggar, varav de flesta går obemärkt förbi av dess skapare och av legitima användare. Men illvilliga aktörer söker aktivt efter dessa buggar så att de kan utnyttja dem för riktade attacker. Deras mål är att ta över datorn eller på annat sätt manipulera den.

Men alla buggar är inte lika. Vissa kan inte utnyttjas för skadliga syften och gör inget värre än att få ett program att krascha. Detta kan vara allvarligt, men det finns en stor klass av mjukvara, såsom bakgrundsmikrotjänster, som är utformade för att hantera krascher på ett elegant sätt genom att starta om programvaran medan användaren inte är klokare. Dessa buggar är mycket mindre allvarliga än de som tillåter skadlig kontroll.



Men att skilja dem åt är inte alltid lätt. Efter att skadliga kodare har hittat buggar måste de skilja de som verkligen är farliga från de som är relativt godartade, och den processen är i allmänhet svår och tidskrävande.

Det är grunden för ett nytt tillvägagångssätt utvecklat av Zhenghao Hu och kollegor vid New York University. Varför inte fylla vanlig kod med godartade buggar som ett sätt att lura potentiella angripare?

Tanken är att tvinga angripare att använda sina resurser för att hitta och testa buggar som inte kommer att vara till någon nytta för dem. Hu och co kallar dessa lockbeten för agnar, i analogi med de aluminiumremsor som används för att lura radaroperatörer.



Idén är bara det senaste draget i ett allt mer komplext katt-och-mus-spel som ställer säkerhetsexperter mot angripare. Under de senaste åren har olika grupper utvecklat program som letar igenom kod och letar efter sårbarheter som en angripare kan utnyttja. Säkerhetsexperter använder detta tillvägagångssätt för att hitta och ta bort dessa sårbarheter innan koden blir offentlig, medan illvilliga angripare använder samma tillvägagångssätt för att hitta buggar som de kan utnyttja.

Men för säkerhetsforskare är det svårt att utveckla dessa program och kräver att det finns sårbarheter i programvaran i första hand. Så forskare har utvecklat ett annat verktyg som automatiskt lägger till dessa buggar i programvaran så att de senare kan upptäckas av sårbarhetsjaktprogrammet.

Det visar sig att det inte är enkelt att lägga till buggar. Slumpmässiga ändringar av koden tenderar att göra den värdelös, snarare än att introducera intressanta anomalier. Istället går processen ut på att köra koden med olika ingångar och övervaka vad som händer med dessa ingångar när koden fortskrider.



Denna process letar efter punkter i programmet där indata inte längre används för att fatta framtida beslut. I så fall kan denna döda ingång manipuleras med uppsåt för att korrumpera eller svämma över minnet.

Programmet för att upptäcka sårbarheter noterar var dessa döda zoner finns så att de kan utnyttjas senare.

Det visar sig att dessa potentiella buggar är vanliga i kod skriven på språk som C och C++, som inte har system som övervakar minnesanvändningen.



Hu och co använder helt enkelt detta tillvägagångssätt för att lägga till minneskorruptionsbuggar genom hela koden. Under vanliga omständigheter är dessa insekter godartade. Men om de hittas av en illvillig skådespelare kan de bara utnyttjas för att krascha programmet – inte för något mer olyckligt. Det är därför de fungerar som agnar.

Angripare som försöker hitta och utnyttja buggar i mjukvara kommer med stor sannolikhet att hitta en avsiktligt placerad icke-exploaterbar bugg och slösa med värdefulla resurser på att försöka bygga en fungerande exploit, säger Hu och co.

Teamet fortsätter med att visa att de nuvarande processerna för att upptäcka potentiella buggar luras av detta tillvägagångssätt. Vi visar att programvarans funktionalitet inte skadas och visar att våra buggar ser ut att kunna utnyttjas för nuvarande triage-verktyg, säger de

Det är ett intressant tillvägagångssätt som har potential att avsevärt sidospår illvilliga angripare. Vi tror att chaff buggar kan fungera som ett effektivt avskräckande medel mot både mänskliga angripare och automatiserade Cyber ​​Reasoning Systems, säger Hu och co.

Men det väcker också en del intressanta frågor. Till exempel finns det inga faktiska bevis för att triaging av buggar för att hitta de som är exploaterbara nödvändigtvis är svårt och tidskrävande. Det är teoretiskt möjligt att någon någonstans har hittat ett snabbt sätt att göra det.

Om det visar sig att det finns ett sätt att enkelt skilja agnbuggar från exploaterbara, så blir detta tillvägagångssätt mindre värdefullt. Hu och co försöker faktiskt inte dölja eller dölja sina buggar. Det betyder att de för närvarande innehåller många artefakter som angripare kan använda för att identifiera och ignorera dem, säger de.

Det finns också mycket liten variation i dessa injicerade buggar. [Detta] kan tillåta en angripare att identifiera mönster i de buggar vi producerar och exkludera de som matchar mönstret, säger de.

Men det finns en betydande potential framöver. Idén att lägga till buggar snarare än att ta bort dem är en utsökt illvillig inställning till cyberbrottslighet, och en som borde utlösa några intressanta vägar för framtida forskning.

Ref: arxiv.org/abs/1808.00659 : Chaff Bugs: Avskräcka angripare genom att göra programvaran Buggier

Dölj