Anwendungssicherheits-Manager. Entwickler oder Sicherheit?

Die erfolgreichsten Angriffe einer Organisation werden durch Schwachstellen und Lesezeichen in der Software implementiert. Glücklicherweise wird ein Software-Schwachstellenscanner von Unternehmen nicht bereits als etwas Exotisches angesehen, sondern als ein notwendiges Element der Schutzinfrastruktur. Wenn Sie bei kleinen Entwicklungsvolumina den Ist-Scanner verwenden können, müssen Sie bei großen Volumina den Prozess automatisieren. Aber wer sollte es schaffen? Entscheiden Sie, wie oft Releases überprüft werden sollen? Schwachstellenüberprüfung? Entscheiden Sie, ob Sie gegen die Veröffentlichung ein Veto einlegen und Code senden möchten, um die Sicherheitsanfälligkeiten zu beheben? Und beantworte viele andere Fragen. Hier tritt Application Security Manager, der Manager für sichere Softwareentwicklung, in den Vordergrund.

Bild

Aber wo kann man einen so seltenen Vogel finden oder wie kann man ihn selbst züchten? Artem Bychkov, Manager für Anwendungssicherheit bei Raiffeisenbank JSC, und Daniil Chernov, Leiter von Rostelecom Solar, Solar AppScreener, beschreiben die Anforderungen an den Anwendungssicherheitsmanager, die durch die Entwicklungspraktiken in russischen Unternehmen vorgegeben sind.

Wer ist Application Security Manager?


Organisationen stellen früher oder später fest, dass eine solche Person im Team eingestellt werden muss. Insbesondere, weil keiner der im Unternehmen verfügbaren Spezialisten direkt für diese Rolle geeignet ist. Entwickler? Ihre Arbeitserfahrung hängt speziell mit der Entwicklung von Software zusammen - es ist sehr schwierig für sie, die gefundenen Schwachstellen in IS-Risiken und vor allem in die Geschäftsrisiken umzusetzen. Die Sicherheitskräfte? Das Eintauchen in die Feinheiten der Entwicklung ist für sie problematisch: Um Schwachstellen zu überprüfen, muss man in der Lage sein, Softwarecodes in verschiedenen Sprachen zu verstehen, was ernsthafte Entwicklungserfahrung erfordert.

Schauen wir uns die Aufgaben an, die sich während der Implementierung des sicheren Entwicklungsprozesses ergeben und die vom Application Security Manager (AFM) behandelt werden sollen.

Der Leser kann der Meinung sein, dass die Arbeit des AFM ausschließlich mit der Überprüfung von Softwareentwicklungen auf Einhaltung der Sicherheitsanforderungen zusammenhängt. Sicherheitsprobleme treten jedoch in verschiedenen Phasen des Systemlebenszyklus auf, vom Entwurf über die Bereitstellung bis zur Produktion. Es gibt verschiedene Modelle zum Erstellen eines sicheren Entwicklungszyklus (Software Security Touchpoints, SDLC und andere) und verschiedene Methoden zum Einbetten dieser Praktiken in den Prozess (abhängig vom verwendeten Ansatz - Wasserfall, agil). Alle sind sich jedoch in wichtigen Punkten einig: Sie müssen in allen Phasen des Systemlebenszyklus über Sicherheit nachdenken.

Offensichtlich ist es im Rahmen eines mehr oder weniger großen Projekts unwahrscheinlich, dass eine Person in allen Phasen arbeiten kann. Es ist selten, dass jemand allein in der Lage ist, Anwendungssicherheitsanforderungen zu entwickeln, eine Überprüfung seiner Architektur durchzuführen und die Ergebnisse der Analystenarbeit zu überprüfen, eine Codesicherheitsprüfung durchzuführen, zu überprüfen, ob die erforderlichen Anwendungssicherheitstests während des Tests durchgeführt wurden und ob das System sicher bereitgestellt und korrekt konfiguriert wurde. Darüber hinaus werden diese Aktivitäten häufig von Vertretern verschiedener Teams und Einheiten durchgeführt. Damit der gesamte Mechanismus ordnungsgemäß funktioniert, sollte die treibende Kraft des Prozesses AFM sein. Die Aufgabe von AFM besteht darin, die Implementierung sicherer Entwicklungspraktiken entweder allein oder durch Delegieren bestimmter Aufgaben an spezialisierte Spezialisten sicherzustellen. Aufgrund unserer Praxis ist es der AFM jedoch nicht möglich, Aufgaben einfach an die Verantwortlichen zu verteilen und sich auf ihren Lorbeeren auszuruhen.

Was sind die Anforderungen für AFM


Erstens muss er das Projekt verstehen, das er begleitet. Dies ist besonders wichtig bei der agilen Entwicklung, wenn Sie im Gegensatz zum Wasserfallmodell keine 2 Monate Zeit haben, um vor der Veröffentlichung eine Überprüfung durchzuführen. Es hängt zum Beispiel vom AFM ab, wie die in der Entwurfsphase formulierten Anforderungen vom Team interpretiert werden, wie sie auf die Architektur fallen, ob sie allgemein realisierbar sind und ob sie in Zukunft ernsthafte technische Probleme verursachen werden. Am häufigsten ist AFM der Hauptverbraucher, Dolmetscher und Bewerter von Berichten über automatisierte Instrumente und Audits, die von Dritten erstellt wurden. Es ist das AFM, das irrelevante und fehlerhafte Ergebnisse herausfiltert, Risiken bewertet und an den Prozessen zur Verwaltung von Ausnahmen und zur Entwicklung von Ausgleichsmaßnahmen teilnimmt.

Bild

Hier ein Beispiel aus dem Leben: Ein Audit oder ein Quellcode-Scanner hat die Verwendung einer unsicheren Hash-Funktion (MD5) in einem Projekt ergeben. Die Unternehmensrichtlinie besteht formal darauf, dass sie nicht verwendet werden kann, und der Anbieter erklärt sich damit einverstanden, die Funktion innerhalb von 3 Monaten durch eine sicherere Funktion und eine große Menge zu ersetzen. Die Nuance war, dass in diesem Fall die Instabilität der Hash-Funktion gegen Kollisionen die Sicherheit des Systems nicht beeinträchtigte, da die Funktion nicht zum Schutz der Integrität verwendet wurde. Der formale Ansatz in diesem Fall und das Ersetzen einer Funktion durch eine andere führten zu einer unangemessen verzögerten Zeit, in der die Ausgabe des Projekts produktiv war und erhebliche Kosten verursachte, was zu keinem Sicherheitsgewinn führte.

Zweitens sollte das AFM zusätzlich zum ersten über Kenntnisse aus verschiedenen Bereichen verfügen: Sie müssen die Entwicklungsprozesse und die Prinzipien der Informationssicherheit verstehen. "Harte Fähigkeiten" sind ebenfalls wichtig, da es sehr schwierig ist, die Ergebnisse der Arbeit spezialisierter Spezialisten und automatisierter Tools kritisch zu bewerten. Wenn Sie den Code nicht lesen können, verstehen Sie die möglichen Möglichkeiten zur Ausnutzung von Sicherheitslücken nicht. Sicherlich waren viele mit einer Situation konfrontiert, in der eine kritische Sicherheitsanfälligkeit in der Codeanalyse oder im Pentest-Bericht auftritt, aber die Entwickler sind damit nicht einverstanden (und möchten in der Regel auch ein sicheres System erstellen) und geben an, dass die Prüfer dies nicht ausführen konnten Schwachstellen. Wie kann man beurteilen, wer in einer ähnlichen Situation Recht hat? Ohne technische Fähigkeiten wird es schwierig sein, einen Streit objektiv beizulegen. Wenn der Prozess der Entwicklung sicherer Software von einer externen Organisation und / oder gemäß dem Servicemodell erstellt wird, wer und wie wird die Leistung „technischer“ Praktiken bewertet?

Ein weiteres Lebensbeispiel: Ein neues Entwicklungswerkzeug wird eingeführt, dessen Leistung an einem Referenzprojekt überprüft und anschließend in den kommerziellen Betrieb überführt. Projekte werden nach und nach damit verbunden, ein schönes grünes Dashboard wird gezeichnet ... und hier tritt ein Informationssicherheitsvorfall auf. Wie sich herausstellt, sollte das verwendete „Loch“ im Stadium der dynamischen Analyse erkannt worden sein. Dies ist jedoch nicht geschehen, weil ... niemand nachgesehen hat, aber wie funktioniert dieser Top-End-Schwachstellenscanner, der normalerweise hervorragende Ergebnisse liefert, mit SPA-Anwendungen unter Verwendung des neuen JavaScript-Frameworks. Es stellte sich heraus, dass er das dynamisch generierte Authentifizierungsformular nicht „sehen“ und die erforderlichen Überprüfungen durchführen konnte. Und niemand hat darauf geachtet, weil alles funktioniert hat. Die Entwickler mussten sich nicht mit den Besonderheiten der Funktionsweise der Scanner befassen, um darauf aufmerksam zu machen, und die Sicherheitsteams sahen keine kritischen Unterschiede zwischen den verschiedenen Ansätzen für die Webentwicklung.

Wo kann man so einen Spezialisten bekommen?


Bild

Diejenigen, die den Markt studiert haben, müssen mit einem akuten Mangel an Experten für Anwendungssicherheit konfrontiert sein. In der Regel sieht das Szenario folgendermaßen aus: Interne Kunden erstellen Anforderungen an den Kandidaten und übertragen sie an die Mitarbeiter. Wenn die Anforderungen streng sind, erhält das Unternehmen nach den Ergebnissen einer kostenlosen Suche keine Kandidaten, da fertige Spezialisten sehr selten Lebensläufe öffentlich zugänglich machen. Wenn sie den Job wechseln, geschieht dies meistens einfach und natürlich über vorhandene Kontakte. Wie man ist

Sie können versuchen, einen Fachmann aus anderen Unternehmen zu locken, aber dieser Weg ist aus verschiedenen Gründen nicht immer akzeptabel. Immer häufiger finden auf dem Markt Wettbewerbe für die Überbesetzung von AFM statt, die es Ihnen recht erfolgreich ermöglichen, das Problem zu lösen, indem Sie Experten von einem Dienstleister einstellen.

Es gibt aber noch eine andere Option. Sie können versuchen, Ihren Profi auszubauen. Vertreter zweier Bereiche können geeignete Kandidaten für diese Rolle sein:

  1. Menschen aus der Entwicklung, die im Bereich Sicherheit gern sind oder sich entwickeln wollen;
  2. Techniker, die mit Softwareentwicklung und Sicherheit vertraut sind und tiefer in dieses Thema eintauchen möchten.

Sowohl diese als auch andere Kandidaten müssen das fehlende Wissenspaket beherrschen. Gleichzeitig haben Menschen aus der Entwicklung, die „neu schmieden“ möchten, ein besseres Verständnis für die vorhandene Kultur und die Prozesse in den Teams, die sie kennen. Es kann einige Zeit dauern, bis sie die Wissensbereiche der Informationssicherheit beherrschen. Die Erfahrung zeigt jedoch, dass unter Entwicklern, Testern, Analysten und Architekten sicherheitsinteressierte Personen zu finden sind, die bereits über bestimmte Kenntnisse auf dem Gebiet der Anwendungssicherheit verfügen. Sie können ideale Kandidaten für einen AFM-Job sein.

Professionelle Sicherheitskräfte müssen sich akklimatisieren, bestehende bekannte Ansätze zur Arbeitsorganisation ändern und die Kultur in den Entwicklungsteams übernehmen. Wenn ein Sicherheitsspezialist jedoch Code schreibt und mit den Entwicklungsprozessen vertraut ist, wird er schnell und einfach dem Team beitreten.

Insgesamt


Entwicklungssicherheitskontrolle ist in erster Linie ein Geschäftsprozess, für dessen erfolgreiches Funktionieren eine koordinierte Interaktion aller Teammitglieder erforderlich ist. Das "Herz" dieses Prozesses ist ein qualifiziertes AFM - es ist sowohl der Inspirator als auch der Richtungsmotor und der Ausführende vieler Aufgaben, der Controlling-Manager und viele andere. Im Allgemeinen sind der Leser, der Schnitter und der Typ auf dem Rohr. Einen solchen Spezialisten zu finden oder zu erziehen ist nicht einfach, aber wenn Sie Erfolg haben, werden alle glücklich sein.

Source: https://habr.com/ru/post/de458338/


All Articles