Notizen und Gedanken von Andreas Marc Klingler

Schlagwort: IT-Sicherheit

OWASP ASVS: Die bes­se­re OWASP Top 10

Auf dem Novem­ber-Tref­fen von OWASP Frank­furt hat Jim Mani­co einen inter­es­san­ten Vor­trag über das OWASP Appli­ca­ti­on Secu­ri­ty Veri­fi­ca­ti­on Stan­dard Pro­ject gehal­ten. Dies ist ein Refe­renz­mo­dell (wie z.B. CMMI) über die Ent­wick­lung und das Tes­ten siche­rer Soft­ware. Ich emp­feh­le jedem, der mit Soft­ware-Ent­wick­lung zu tun hat, dort öfter man (am Anfang von Pro­jek­ten) reinzuschauen.

Ich habe bei ver­schie­de­nen Pro­jek­ten das Jahr über immer wie­der mit den OWASP Top Ten zu tun gehabt, einer alle paar Jah­re aktua­li­sier­ten Lis­te der zehn kri­tisch­ten Sicher­heits­pro­ble­me. Die­se Lis­te ist gut geeig­net um zu wis­sen, auf wel­che IT-Sicher­heits­aspek­te man im All­ge­mei­nen auf­grund ihrer Ver­brei­tung beson­ders ach­ten sollte.

Natür­lich hat jede Anwen­dung in ihrer eige­nen Umge­bung mit eige­nen Pro­ble­mem zu kämp­fen; und nur, weil ein Sicher­heits­pro­blem nicht in der Top Ten-Lis­te erscheint heißt natür­lich nicht, dass es in einem kon­kre­ten Fall kei­ne Rol­le spielt. Jedoch fand ich es inter­es­sant von Mani­co zu hören dass es mitt­ler­wei­le in der Rea­li­tät oft der Fall wäre, dass Fir­men sagen, ihre Soft­ware sei sicher, weil sie „gemäß der OWASP Top Ten-Lis­te” ent­wi­ckelt wurde.

Das ist natür­lich Blöd­sinn. Aber mal wie­der ein inter­es­san­tes Bei­spiel, wie gute Inten­tio­nen und Pro­jek­te miss­ver­stan­den wer­den kön­nen, weil sie Leu­te zu Gesicht bekom­men, die sich nur ober­fläch­lich mit IT-Sicher­heit beschäftigen.

All­mäch­ti­ges Frontend

Ich expe­ri­men­tie­re seit eini­ger Zeit hin und wie­der mit Java­Script-Frame­works wie Angular.js oder Ember.js. Dar­in kann man mitt­ler­wei­le kom­plet­te MVC-Anwen­dun­gen schrei­ben, die kom­plett im Brow­ser lau­fen kön­nen und ggf. höchs­tens noch per JSON/XML mit einem Ser­ver-Skript zur per­sis­ten­ten Daten­spei­che­rung kom­mu­ni­zie­ren müs­sen. (Wobei auch das teil­wei­se schon lokal geht.)

Ein inter­es­san­ter Aspekt, der mir heu­te Abend bei einem Gespräch auf dem Angular.js-Meetup gekom­men ist: Es gibt einen Trend, immer mehr Logik in das Front­end (→ Brow­ser) zu verschieben.

In den meis­ten Web­an­wen­dun­gen wird der­zeit die meis­te Logik im Backend in einer eigen­stän­di­gen (Skript-) Spra­che geschrie­ben und dar­aus HTML-/JS-/CSS-/usw.-Code erzeugt und vom Brow­ser ger­en­dert. Zwar wird die Dar­stel­lung zwar oft noch per Java­Script ger­en­dert, aber die wesent­li­che Logik liegt im Backend.

Die Java­Script-Frame­works lau­fen dage­gen voll­stän­dig im Brow­ser ab. Dar­aus folgt dann aber auch, dass die gesam­te Logik öffent­lich wird. Jeder kann sich im Brow­ser durch die Java­Script-Datei­en han­geln, die kom­plet­te Logik nach­voll­zie­hen, auf Schwach­stel­len ana­ly­sie­ren und gar kom­plett her­un­ter­la­den, ver­än­dern und woan­ders mani­pu­liert hochladen.

Das eröff­net neben­bei völ­lig neue Mög­lich­kei­ten zum „Platt­form­klau” oder zu Angrif­fen, bei denen man nicht mal mehr ande­re Sei­ten nach­bau­en muss, weil man sie kom­plett auf einen eige­nen Ser­ver kopie­ren kann. Schnell noch eine Ver­tip­per-Domain regis­trie­ren und dann mal schau­en, wer sich so anmel­det. Die Anmel­de­da­ten kann man dann auch gleich spei­chern, um damit auf der rich­ti­gen Platt­form frem­de Nut­zer­kon­ten über­neh­men zu können.

In die­sem Zusam­men­hang lohnt sich auch ein Blick auf die Sei­te nobackend.org, auf der bereits Ideen und Lösun­gen gesam­melt wer­den für eine Welt, die voll­stän­dig ohne Backend auskommt.

Die Idee fin­de ich für eini­ge Anwen­dungs­fäl­le ganz inter­es­sant und ich wer­de das auch wei­ter­hin beob­ach­ten. Aber es fühlt sich irgend­wie komisch an, eine Platt­form so leicht kom­plett kopie­ren zu kön­nen. Viel­leicht bin ich da aber auch nur zu vor­ein­ge­nom­men, weil ich es bis­her anders nicht ken­ne. Mal schau­en, wie sich das entwickelt.