Schwachstellen in Software automatisch finden

Erstellt von Lara Kris­tin Zei­tel |

Pro­gram­mier­feh­ler in Soft­ware sind keine Sel­ten­heit; re­gel­mä­ßig ver­schaf­fen sich An­grei­fer über sol­che Schwach­stel­len Kon­trol­le über die Pro­gram­me.

Das Team am Lehr­stuhl für Sys­tem­si­cher­heit der RUB ar­bei­tet seit ei­ni­gen Jah­ren an Tools, mit denen sich Schwach­stel­len im Pro­gramm­code au­to­ma­ti­siert fin­den las­sen. „Wir nut­zen dazu das so­ge­nann­te Fuz­zing, eine Tech­nik, die ei­gent­lich schon seit den 1980er-Jah­ren be­kannt ist, aber in den ver­gan­ge­nen fünf Jah­ren im­mens ver­bes­sert wurde“, er­klärt Prof. Dr. Thors­ten Holz, Lei­ter des Lehr­stuhls. „Wir und an­de­re For­schungs­grup­pen, aber auch die In­dus­trie haben sie seit­her ent­schei­dend wei­ter­ent­wi­ckelt.“

Crashs wei­sen auf Pro­gram­mier­feh­ler hin

Fuz­zer sind Al­go­rith­men, die die zu tes­ten­de Soft­ware mit zu­fäl­li­gen In­puts füt­tern und über­prü­fen, ob sie die An­wen­dung damit zum Ab­sturz brin­gen kön­nen. „Der Fuz­zer speist einen be­stimm­ten Input in das Pro­gramm und be­ob­ach­tet, wel­che Code-Tei­le aus­ge­führt wer­den“, be­schreibt Holz. An­schlie­ßend va­ri­iert er den Input etwas und ver­folgt, ob die glei­chen oder neue Code-Be­stand­tei­le ak­ti­viert wer­den. Der Fuz­zer hat dabei zum Ziel, mög­lichst viel von dem Pro­gramm­code aus­zu­füh­ren und somit für alle Code-Be­stand­tei­le zu prü­fen, ob ein be­stimm­ter Input sie zum Ab­sturz bringt. „Sol­che Crashs wei­sen auf Pro­gram­mier­feh­ler hin“, sagt Thors­ten Holz. „Wenn wir auf diese Weise Schwach­stel­len fin­den, kön­nen wir im nächs­ten Schritt über­prü­fen, ob sie si­cher­heits­re­le­vant sind.“

Ge­mein­sam mit sei­nen Dok­tor­an­den Ser­gej Schu­mi­lo und Cor­ne­li­us Ascher­mann hat der For­scher in den ver­gan­ge­nen Jah­ren ver­schie­de­ne Fuz­zer ent­wi­ckelt. Zu den ge­tes­te­ten Pro­gram­men ge­hö­ren Pro­gram­mier­spra­chen, Be­triebs­sys­te­me und sogar die Vir­tua­li­sie­rungs­lö­sun­gen, ohne die die Cloud nicht mög­lich wäre. In prak­tisch allen ge­tes­te­ten An­wen­dun­gen fan­den die For­scher Feh­ler, ins­ge­samt waren es hun­der­te, wovon sie über 60 als si­cher­heits­kri­tisch ein­stuf­ten. „Der Fuz­zer ist so er­folg­reich im Fin­den von Feh­lern, dass wir zu­sätz­li­che stu­den­ti­sche Hilfs­kräf­te ein­stel­len muss­ten, um alle Feh­ler an die Ent­wick­ler mel­den zu kön­nen“, ver­an­schau­licht Holz.

 

Mo­men­tan ar­bei­tet das Bo­chu­mer Team an Fuz­zern für so­ge­nann­te Hy­per­vi­sor, also Pro­gram­me, die auf einer Hard­ware vir­tu­el­le Um­ge­bun­gen er­zeu­gen, in denen dann zum Bei­spiel meh­re­re Be­triebs­sys­te­me par­al­lel in­stal­liert wer­den kön­nen, und die grund­le­gend für die Si­cher­heit mo­der­ner Cloud-Sys­te­me sind.

„Wir haben di­ver­se Si­cher­heits­lü­cken ge­fun­den, die es An­grei­fern unter Um­stän­den er­lau­ben, die ge­sam­te In­fra­struk­tur des Cloud-An­bie­ters zu über­neh­men“, re­sü­miert Thors­ten Holz. „Zum Bei­spiel, weil sie einem An­grei­fer er­lau­ben wür­den, nicht nur Kon­trol­le über die Soft­ware zu er­lan­gen, son­dern auch über die Hard­ware, für die die vir­tu­el­len Um­ge­bun­gen er­zeugt wur­den.“

Un­ter­neh­mens­grün­dung an­ge­dacht

„Fuz­zing wird seit einer Weile von Soft­ware­ent­wick­lern sehr stark ge­nutzt und wird in Zu­kunft mit Si­cher­heit die Grund­la­ge für die Soft­ware-Qua­li­täts­si­che­rung sein“, er­zählt Thors­ten Holz. Die Un­ter­neh­men haben daher durch­aus In­ter­es­se an neuen ef­fi­zi­en­ten Fuz­zern, wie sie Ser­gej Schu­mi­lo und Cor­ne­li­us Ascher­mann in ihren Dok­to­r­ar­bei­ten ent­wi­ckelt haben. Die bei­den Nach­wuchs­for­scher pla­nen der­zeit, mit­hil­fe des Grün­dungs­in­ku­ba­tors „Cube 5“ an der RUB, ein Start-up auf die Beine zu stel­len, das kri­ti­sche Soft­ware­sys­te­me si­che­rer ma­chen möch­te.

Schutz­me­cha­nis­men gegen Fuz­zing

Par­al­lel geht auch die For­schung am Lehr­stuhl für Sys­tem­si­cher­heit wei­ter. Der­zeit ar­bei­tet das Team unter an­de­rem an Schutz­me­cha­nis­men, die das Fuz­zing von Soft­ware ver­hin­dern sol­len. „Fir­men nut­zen Fuz­zing gern, um ihre ei­ge­ne Soft­ware in­tern auf Schwach­stel­len zu tes­ten und diese dann zu be­he­ben“, er­klärt Holz. „Sie wol­len aber ver­hin­dern, dass An­grei­fer mit der Me­tho­de die Schwach­stel­len vor ihnen fin­den und aus­nut­zen kön­nen.“ Ein Tool vom Bo­chu­mer Lehr­stuhl für Sys­tem­si­cher­heit könn­te künf­tig hel­fen, un­be­fug­tes Fuz­zing deut­lich zu er­schwe­ren. (Fotos:RUB/Kra­mer)

To Top