Ich wurde beauftragt, eine in Azure bereitgestellte Anwendung zu betreuen. Ich habe 4 Stunden im Monat zugewiesen.
Ich habe im Wesentlichen einen halben Arbeitstag, um diese Anwendung zu sichern/sicher zu halten. Was ist eine effiziente Nutzung meiner Zeit?
Soll ich mich konzentrieren auf:
Oder eine Kombination/etwas anderes?
Ich suche nach erfahrungsbasierten Antworten, vorzugsweise von jemandem, der diese Art der Sicherheitswartung durchführt. Wenn es irgendeine Art von Best Practice/Richtlinie gibt, die auch wirklich helfen würde.
Der Technologie-Stack lautet:
Es gibt mehrere zusätzliche Komponenten, aber ich suche nicht wirklich nach technikspezifischen Antworten, sondern nach einer Strategie, wie ich das angehen soll.
Beginnen Sie mit den Best Practices für die Azure-Top-Sicherheit, damit Sie die Sicherheit Ihrer Azure-Lösung Schritt für Schritt aufrechterhalten und verbessern können:
Wenn Sie mit dem 1-7 fertig sind, konzentrieren Sie sich auf:
Lesen Sie die Microsoft-Dokumentation zu Best Practices für die Azure-Sicherheit .
Dokumentation:
Wie in den Kommentaren erwähnt, stimme auch ich zu, dass 4 Stunden pro Monat viel zu niedrig sind. Verstehen Sie und was noch wichtiger ist, machen Sie Ihren Stakeholdern klar, dass sie mit 4 Stunden nicht viel erwarten sollten. Wenn man bedenkt, dass sie dir 4 Stunden gegeben haben, sieht es nicht so aus, als ob sie es ernst meinen, diese Anwendung zu sichern.
Basierend auf den Kommentaren, Antworten und meinen eigenen Gedanken werde ich versuchen, etwas zusammenzustellen. So sollten Ihre Optionen meiner Meinung nach in der richtigen Reihenfolge aussehen.
Der DoS-Schutz ist gut und erforderlich, aber ich konnte einfach keinen Weg finden, ihn in den oben genannten Plan einzufügen, und ich konnte auch nichts dafür austauschen. Vielleicht sollte das in Ihren nächsten Schritten dokumentiert werden.
Insgesamt ist es eine weit hergeholte Anfrage, etwas in 4 Stunden zu sichern. Aber wenn ich damit beauftragt wäre, würde ich es mit den obigen Schritten tun. Ich bin mir nicht sicher, ob in diesen 4 Stunden Untersuchungen möglich sind, ob das System bereits gehackt ist. Wenn Sie 4 Stunden Zeit zum Sichern haben, können Sie entweder die Anwendung gegen potenzielle Bedrohungen absichern oder nach Angreifern in Ihrem System suchen (benötigt einen anderen Plan). Diese erste Wahl liegt bei Ihnen.
Dies ist eine sehr außerhalb des linken Feldes liegende Antwort (auch bekannt als wenig mit der tatsächlichen Sicherheit zu tun). Sie können meinen Rat also ignorieren. Diese Frage selbst ist ziemlich meinungsbasiert, daher dachte ich, ich würde eine völlig andere "Art" von Antwort versuchen.
Leider hat Ihr Arbeitgeber sehr unrealistische Erwartungen an das, was zur Sicherung eines Antrags erforderlich ist. 4 Stunden sind nicht annähernd genug Zeit, um diesen Job gut zu machen. Dies ist immer noch besser als die meisten Unternehmen (die genau 0 Stunden pro Monat dedizierte Sicherheitszeit zuweisen). Die Realität ist jedoch, dass 4 Stunden eine Kleinigkeit sind. Das machen Sie also:
Natürlich kann ich keine Garantie dafür geben, wie sich die Dinge entwickeln würden, aber effektiv haben Sie die Erlaubnis erhalten, sich für einen Karrierewechsel auszubilden. Eine Gelegenheit, in Ihre Zukunft zu investieren! Sicherheitsexperten sind noch gefragter als Ingenieure. Ich persönlich würde das also nehmen und damit anfangen. Besonders wenn es zu meinen Gunsten klappen würde, würde ich meinem derzeitigen Arbeitgeber nicht einmal die freie Arbeit gönnen, die ich ihnen aufgrund ihrer Kurzsichtigkeit geben würde.
Ich würde vorschlagen
Ich gehe davon aus, dass die Anwendung extrem klein ist. Sie schreiben Skripte für die Protokolle, um nach fehl am Platz befindlichen Dingen zu suchen (idealerweise wird dies nicht während der 4-stündigen Arbeitszeit durchgeführt). Für eine größere Anwendung sollte bereits eine Notfallwiederherstellung vorhanden sein (überprüfen) wenn der Antrag einen solchen Aufwand erfordert.).
Die Dokumentation ist von entscheidender Bedeutung, da Sie wissen sollten, was verwendet wird und wer sie verwendet und wie oft sie verwendet wird. Dies hilft bei der Entwicklung des Skripts.
Skripte werden benötigt, um die Protokolle eines Monats zu komprimieren. Wählen Sie sie daher sorgfältig aus.
Überprüfen Sie die Sicherungen.
Überprüfen Sie immer die verwendeten Technologien und ob POC oder Exploits vorhanden sind. Springen Sie nicht hinein und versuchen Sie selbst einen Exploit, Sie haben nur 4 Stunden Zeit.
Fordern Sie zusätzliche Unterstützung an, wenn die Anwendung von entscheidender Bedeutung ist.
Im Idealfall sollten nur die Dokumentation und die Skripterstellung einige Zeit in Anspruch nehmen. Die Pause sollte ziemlich einfach sein. Dies ist nicht das Beste, um den Wert des Projekts zu bestimmen und zu entscheiden, ob 4 Stunden ausreichen.
Wenn Sie Ihr Ziel verstehen, können Sie es besser schützen.
Ich bin sicher, es gibt eine bessere Antwort, hoffentlich werden sie sie liefern.
OP, es sieht so aus, als wären Sie hauptsächlich Entwickler und schauen sich Ihre Beiträge an. Was kann ein Entwickler tun, um die Sicherheit zu erhöhen?
Im ersten Monat:
master
und in die Produktion zu übertragen. Versuchen Sie, andere Entwicklungen zu huckepack zu nehmen, wenn es welche gibt, aber achten Sie in diesem Fall besonders darauf, Spuren zu hinterlassen, die Sie tatsächlich nützlich gemacht haben (z. B. einige PRs verfassen).Wiederholen Sie diesen Vorgang jeden Monat, aber passen Sie die Trennlinie zwischen den beiden an. (Es besteht die Möglichkeit, dass die endgültige Aufteilung eher 10 Minuten gegenüber 3 Stunden 50 Minuten beträgt.)
Auf diese Weise beheben Sie den schlimmsten Vektor - dass eine der beliebtesten Komponenten/Bibliotheken eine Monate alte veröffentlichte Sicherheitsanfälligkeit (CVE) aufweist. Schwärme von Bots scannen das gesamte Internet, um jede anfällige Bereitstellung zu überprüfen. Wenn Sie nur die Komponenten von Drittanbietern aktualisieren, selbst wenn Sie nur (informierte?) Vermutungen anstellen, besteht eine gute Chance, dass Sie niemals Opfer werden und niemals brauchen, um mit den wirklich unangenehmen Situationen umzugehen Situationen.
Das ist für Entwickler ziemlich trivial, aber in den meisten Unternehmen vermeiden Entwickler eine solche uninteressante Wartung. Dies wird zu einem großen Problem für die typischen Sicherheitsabteilungen (da sie Anwendungen nicht neu kompilieren). Die großen Anstrengungen, "Protokolle zu analysieren" oder "WAFs zu implementieren" oder "Schwachstellen-Scans durchzuführen", dienen hauptsächlich dazu, diese Lücke aus allen verbleibenden möglichen Blickwinkeln zu schließen.
Aus Ihrer Frage geht hervor, dass Sie sich fragen, wie Sie Ihr Lernen konzentrieren sollen . Ich möchte diese Annahme hier und jetzt in Frage stellen. Wer Ihnen 4 Stunden pro Monat zugeteilt hat, hat bereits seine eigene Bewerbung davon abgeschnitten, von Ihrer Selbstbildung zu profitieren. Unverantwortlich von ihnen! Um etwas zu lernen, das diesem Projekt gewidmet ist, implementieren Sie es, lernen Sie dann Ihre Fehler kennen und wiederholen Sie ... Dies kann nicht jeden Monat in 4-Stunden-Abschnitten durchgeführt werden. Repariere das nicht, denn es war nicht deine Entscheidung! Machen Sie in der Zeit dieses Projekts Dinge, die Sie bereits gut kennen.
Das ist ein Anfang. Was Sie in Ihrer Freizeit lernen und umsetzen möchten, ist Ihre Präferenz und Ihr eigenes Geschäft. Ich denke, es ist zu weit gefasst für diese Site (da Sie möglicherweise entscheiden, dass Sie nicht an Sicherheit interessiert sind, was völlig in Ordnung ist), aber andere haben Ihnen trotzdem jede Menge Hinweise gegeben. Suchen Sie auch bei anderen Projekten nach nützlichen Dingen. Einige der ersteren oder letzteren passen in diese 4 Stunden und tragen dazu bei, den Stand des Projekts zu verbessern.
Wie andere bereits erwähnt haben, sind 4 Stunden viel zu wenig Aufwand, aber ich werde einige Empfehlungen geben, falls Sie sie nützlich finden.
Von einem Systemadministrator, der solche Dinge tun musste, würde ich empfehlen, nur ein dev VM, das Sie mit prod austauschen können) zu erstellen.
Sie erwähnen die Risiken nicht: Speichert es persönliche Daten usw. Wenn es sich jedoch um eine komplexe Anwendung handelt, ist ein Fuzz-Test ein recht zeiteffizienter Ansatz: Extrahieren Sie einige gültige Anforderungen aus den Protokollen und mutieren Sie sie mit der Art von Metazeichen, die sich in einem Injektionsangriff befinden könnten, und melden jedes Mal eine Sicherheitsanfälligkeit, wenn Sie einen Fehler 500 erhalten.
Leider lautet die übliche Antwort "Das ist nicht ausnutzbar", insbesondere in einer sicherheitsnaiven Umgebung, wie Sie es zu sein scheinen. Und das Verwandeln einer Sicherheitsanfälligkeit in einen Exploit dauert mehr als Ihre geplanten vier Stunden.
Alternative Antwort: Nehmen Sie sich Zeit, um Ihren Lebenslauf zu polieren, da dieser Arbeitgeber jederzeit sein Geschäft aufgeben könnte.