Moderner Ansatz zur Informationssicherheit
Ich liebe Informationssicherheit. Einerseits erfordert ein Unternehmen häufig die Einführung von halbgebackenen Prototypen, die einmal pro Stunde bereitgestellt werden. Auf der anderen Seite ist es die harte und unnahbare Hochburg der Informationssicherheitsbeamten. Alles hängt von ihnen ab. Und selbst Entwicklungen im Bereich IoT, wo S Sicherheit ist, werden unter ihrer Aufsicht noch zuverlässiger.
DasHauptproblembei der Schätzung des
Und eine Liste. Jeder liebt Listen. Ich werde meinen kleinen Satz notwendiger Software geben, die meinen Alltag erheblich aufhellt.
Wenn etwas langweilig ist, müssen Sie automatisieren

Die klassische Testpyramide. Unten finden Sie zahlreiche Komponententests, die alle möglichen kleinen Dinge abdecken, z. B. sicherstellen, dass die Anwendung nicht abstürzt, wenn der Benutzer sein Hindi-Passwort eingibt. Oder etwas anderes Seltsames geschickt. Und dann gab es Präzedenzfälle mit "لُلُصّبُلُلصّبُررً ॣ ॣ h ॣ ॣ 冗" auf dem iPhone, wenn Sie sich erinnern. Diese Art des Testens eignet sich hervorragend für die Automatisierung, deckt jedoch nur enge Fälle ab, die häufig kein vollständiges Bild vermitteln und die Gewissheit vermitteln, dass die Anwendung nicht an einem unerwarteten Ort ausgeführt wird.
Ganz oben ist es bereits vollständig manuelles Testen. Zusätzlich zur Überprüfung von Standardfällen kann es für "freie Kreativität" sorgen, wenn ein Spezialist die Aufgabe erhält, etwas auf eine exotische Weise nach seinem Geschmack zu brechen. Wie immer führt diese Art von kreativem Ansatz dazu, dass diese Art von Test auch die teuerste ist. Nicht nur in Bezug auf das Geld, sondern auch in Bezug auf die berüchtigte Markteinführungszeit, wenn Sie neue Funktionen einführen müssen, die gestern bei einem bereits versprochenen Meeting genau richtig waren.
Ein traditionelles Problem, mit dem viele Unternehmen konfrontiert sind, ist die lange und traurige Abstimmung mit der Informationssicherheit für jeden Artikel. Nicht weil sie so wütend und unfreundlich sind. Es ist nur ihre Aufgabe, Risiken zu minimieren. So minimieren sie so viel wie möglich und stoppen gleichzeitig die Hälfte der Prozesse im Engpass ihrer Prüfungen. In Zeiten vor dem Gefängnis, in denen Sie Ihren Code langsam polieren konnten, funktionierte dies tatsächlich. Und jetzt werden bereits 47 halbgebackene Prototypen von Konkurrenten mit Affencodierern für Ihre polierte Lösung der ersten Version freigegeben. Und alle. Sie haben den Markt bereits verloren, alle Benutzer stecken in einem anderen Tick-Tock fest.
Pipeline für alles
Tatsächlich besteht das Problem meistens in einer schlechten Integration von Informationssicherheitsprozessen in Pipelines, die Entwicklern bereits bekannt sind. Aus irgendeinem Grund wird jeder Push von vielen Überprüfungen von demselben flake8 und mypy begleitet, er wird zu einem Paket selbst zusammengesetzt, in den Container des GitLab-Läufers hochgeladen und fliegt glücklich getestet in Artifactory davon. Oder schlägt eine Phase fehl und kehrt zur Überarbeitung zurück.
Und nur Informationssicherheit befindet sich oft bei jeder Veröffentlichung mit den Händen unter einer Lupe, blättert durch den Code und steckt einen Stick in die offenen Anschlüsse der Anwendung. Es scheint mir, dass eine der besten Lösungen darin besteht, den Großteil der Sicherheitsüberprüfungen in einen automatisierten Prozess zu verlagern und manuelle Tests rechtzeitig zu begrenzen. IB behält sich das Vetorecht vor, wenn sie eine kritische Sicherheitslücke finden. Standardmäßig fliegt die Anwendung jedoch in die Produktion, wenn von ihrer Seite keine Einwände erhoben wurden. Es klingt auf den ersten Blick beängstigend, aber eine solche Prozessstruktur motiviert dazu, alle Routinevorgänge so weit wie möglich zu automatisieren und nur Zeit für wirklich komplizierte Dinge zu verwenden.
Diese Abkürzungen wie DevSecOps und andere TriCeraTops machen mir ein wenig Angst, aber genau das muss am häufigsten organisiert werden, um die Zeitkosten zu senken. Schauen wir uns ein Python-Beispiel an. Es lohnt sich, mit Lintern zu beginnen. Ich denke, dass fast jeder einige Varianten von Basislintern wie flake8 und mypy angeschraubt hat. Ich würde immer noch die erweiterte Version von flake8 empfehlen - wemake-python-styleguide.
Es wird traditionell installiert und gestartet:
pip install wemake-python-styleguide
flake8 your_module.py
Das Hauptproblem bei diesem Linter besteht darin, dass Sie zunächst den Monitor mit der Tastatur beschädigen möchten. Insbesondere in alten Legacy-Projekten ist es einfacher zu brennen als zu reparieren. Wenn Sie jedoch unnötige Überprüfungen ausschließen, erhalten Sie eine ziemlich strenge Kontrolle über die Qualität des zugrunde liegenden Codes.
Nachdem wir den Code selbst auf krumme Konstruktionen, schlechte Lesbarkeit und hohe zyklomatische Komplexität überprüft haben, sollten wir den statischen Sicherheitslinter ausführen. Ja, in lose typisierten Sprachen sind solche Linters nicht so gut, aber Sie können typische Probleme wie password = 'qwerty123' im Code identifizieren. Sie können hier den gleichen Banditen verwenden .
Dies alles funktioniert hervorragend, aber das Problem mit kostenlosen Lösungen liegt meist in weniger aktuellen Schwachstellendatenbanken. Meistens ist es sinnvoll, etwas anderes hinzuzufügenSicherheit .

Quelle
Ähnliche Checkout-Optionen lassen sich normalerweise perfekt in dasselbe Unternehmens-GitLab integrieren.
Davon abgesehen gibt es normalerweise eine nette informative Ausgabe an die Konsole:
safety check --full-report

Idealerweise sollten Sie nach allen Manipulationen über eine vollständige Pipeline verfügen, in der Sie Schritt für Schritt alle Sicherheitsanforderungen für Ihre Anwendung überprüfen.

Quelle
Typische Überprüfungen:
Git Secret Check - Überprüfen Sie das Fehlen offener Geheimnisse im
SCA- Code. - Überprüfen Sie, ob externe Abhängigkeiten und Bibliotheken frei von Sicherheitslücken sind. Es ist wichtig, wenn Sie die alte Version der
SAST- Bibliothek einfrieren - statische Code-Analyse auf Schwachstellen.
Container-Audit - Audit des Container-Images, das für die Bereitstellung verwendet wird. Sie sind auch oft voller Löcher. Besonders wenn Sie exotische Sandwiches mit vielen verschiedenen Schichten verwenden.
DAST - Anwendungsbereitstellung, Registrierung, Anmeldung als legitimer Benutzer und Durchführung typischer Angriffe auf das Front-End
Was bleibt für die Informationssicherheit
Nachdem wir die
Es wird das gleiche zeitlose Arsenal an Tools für Analyse, Netzwerktests und das Erraten von Passwörtern geben. Wireshark, Hashcat, Hydra und andere Versorgungsunternehmen wurden nie in den Ruhestand versetzt.
Aber auch unter bekannten Werkzeugen erscheint etwas Neues und manchmal recht Nützliches. Ich werde vorschlagen, auf einige von ihnen zu achten.
Nikto2
github.com/sullo/nikto
Nikto ist ein Open-Source-Webserver-Scanner. Er ist überhaupt nicht still. Im Ernst, wenn Sie es von Ihrem Arbeitsplatz aus gestartet haben und 15 Minuten lang nicht mit dem Gesicht nach unten auf dem Boden liegen und von Sicherheitspersonal umgeben sind, haben Sie Probleme mit der Erkennung von Eindringlingen.
Die Software führt komplexe Tests auf Webservern für viele Elemente durch, einschließlich mehr als 6700 potenziell gefährlicher Dateien / Programme. Außerdem werden Serverkonfigurationselemente wie HTTP-Servereinstellungen überprüft und versucht, installierte Webserver und Software zu identifizieren. Scanelemente und Plugins werden häufig aktualisiert und können automatisch aktualisiert werden.
Fuzzdb
Es ist auch ein sehr cooles Tool für einen automatisierten Angriff auf Webanwendungen mit typischen Mustern und Schwachstellen. Er bombardiert Ihre Anwendung gerne mit einer Reihe von Standardangriffen und prüft gleichzeitig, ob Sie vergessen haben, den Zugriff auf das Admin-Panel und die Protokolldateien mit eingeschränkten Rechten abzudecken. Ermöglicht es Ihnen, viele Kopfschmerzen und Routinekontrollen zu lindern.
Nmap + Vulners

Vulners ist ein Aggregator für alle Arten von CVEs, Bulletins zur Anbietersicherheit, Exploits in Metasploit und einfach das Ergebnis des manuellen Erfassens von Schwachstellen in thematischen Foren. Grundsätzlich bieten sie eine API zum Abfragen ihrer Datenbank. Ich war einfach fasziniert von ihrem Plugin für die bekannte nmap, die einem Fan sofort fertige Angriffsmethoden für einen Webdienst bietet. Ich empfehle dringend, genauer hinzuschauen.
So etwas wie Ausgabe

Tod für Menschen - Ruhm für Roboter!
Aber im Ernst, versuchen Sie, die Routine zu minimieren und an denjenigen weiterzugeben, der sie wirklich tun sollte - seelenlose Skripte und Pipelines. Und lassen Sie die Menschen kreativ sein. Das ist richtiger.
