← Zurück zur Liste

SAST vs DAST vs. IAST: Sicherheitstest auf Komplementaritäten der drei Brüder, nicht Substitution

itadol5j

Die drei häufigsten Abkürzungen in den Anwendungssicherheitstests sind SAST, DAST, IAST. Die erste Reaktion vieler Menschen war, "einen der Stärksten auszuwählen", aber es war ein heuchlerischer Vorschlag - die drei Brüder konkurrierten nicht, sondern betrachteten dasselbe Thema aus verschiedenen Perspektiven. Die Wahl hängt nicht davon ab, wer fortgeschrittener ist, sondern von der Phase, in der Sie sich im Software-Lebenszyklus befinden, welche Art von Lücke Sie finden möchten und wie viel Sie ertragen können.

Überblick über die Anwendung der drei Methoden der Sicherheitsprüfung

I. BEGRIFFSBESTIMMUNGEN ZUM ERSTEN BEZUG

  • SAST (statischer Anwendungssicherheitstest)Sonstige VeranstalterFühren Sie das Programm nicht aus, unter dem der scannende Quellcode/Bytecode eine Lücke findet, die zur White Box gehört.
  • DATENSonstige Veranstalterlaufendes ProgrammExterne Startanforderungen, simulierte Angriffe sind „Black Boxes und es wird kein Quellcode benötigt.
  • IAST (Interactive Application Safety Test)Sonstige VeranstalterProgramm von innen ausführenPlug-in (Agent), kombiniert mit Flow- und Code-Kontext, gehört zur Grey Box.

Der Schlüssel zum Verständnis dieser drei ist, dass sie jeweils unterschiedliche Fragen beantworten: SAST fragt: "Wo kann es einen Fehler im Code geben?" DAST fragt: "Können wir beim Laufen tatsächlich durchkommen?" IAST fragt: "In dieser Operation, welcher Datenstrom wirklich bis zum Punkt der Gefahr fließt."

SAST: Strangling das Problem in der Code-Schreibphase

SAST analysiert direkt den Quellcode (oder kompiliert Zwischenprodukte) und führt das Programm nicht aus. Der Vorteil besteht darin, Probleme frühzeitig erkennen zu können, oder sogar beim Absenden des Codes, bestimmte Dokumente und Zeilennummern zu finden, mit geringen Reparaturkosten. Es deckt die "Codes können gefegt werden" ab und ist nicht von der Laufzeitumgebung abhängig.

Shortboard: Die Fehlerrate ist in der Regel hoch, weil sie nicht bestimmt, ob eine bestimmte Anzahl von Codes im realen Geschäft ausgelöst wird; die Probleme, die nur beim Laufen auftreten (z. B. Konfigurationsfehler, Assurance-Bypasses, tatsächliche Call-Kette des Vertrauens auf die Bibliothek), werden nicht vollständig gesehen; der Quellcode wird benötigt und die Closed-Source-Komponente eines Drittanbieters ist nicht funktionsfähig.

Typisches Szenario: CI-Streaming-Zeilencode-Einreichungstüren sind geschlossen, um eine sichtbare Injektion, einen Hard-Coding-Schlüssel, Gefahrenfunktionen in das Rückgrat zu verhindern.

DAST: Verifizieren "Funktioniert es wirklich?"

DAST verwendet das Ziel als Blackbox, um Anfragen von außen zu senden, Angriffsnutzlasten zu konstruieren und die Reaktion zu beobachten. Sein größter Wert ist...Nahe einem echten Angriff.- Das Problem des "echten Zugangs zum Laufen" wurde gefunden, mit relativ geringer Unterberichterstattung. Es ist kein Quellcode erforderlich, daher können auch Komponenten von Drittanbietern, Konfigurationsschichten, abgedeckt werden.

ShortboardEs ist oft nur bis zur Bereitstellung, dass die Erkennung der späten Erkennung und die Kosten für die Reparatur hoch sind; Abdeckung ist auf Reptilien und Testrouten beschränkt, die durch Beispiel erreicht werden können, ohne Erkennung von nicht nachweisbaren Funktionspunkten; es ist schwierig, den Quellcode genau zu lokalisieren, und Entwicklung und Berichterstattung ist oft nur bekannt, "welche URL problematisch ist"; und die Konfigurationskosten sind hoch für Szenarien, die eine Anmeldung erfordern, mehrstufige Geschäftsprozesse.

Typisches Szenario: Sicherheitsfreigabe, bevor Sie online gehen, periodisches Scannen von bereitgestellten Umgebungen.

IV. IAST: Laufzeitstecker, Balancieren des Kontextes mit realen Datenflüssen

IAST beobachtet auch die Codeausführung und den externen Fluss beim Ausführen des Programms, indem es Antent in die Anwendung implantiert. Es kann sehen, wie Anfragen kommen, und wie Daten in den Code fließen, so dass es gegeben werden kann.Nehmen Sie die vollständigen Beweise des Gasthauses.Es ist normalerweise niedriger als SAST und es ist genau.

ShortboardDie Notwendigkeit, Sonden in der Zielumgebung einsetzen zu können (aufgrund von Bedenken hinsichtlich der Produktionsumgebung); die Abhängigkeit von der Testabdeckung, die nicht ohne die Implementierung des Codes gefunden werden kann, der oft an funktionale / automatisierte Tests gebunden ist; Unterschiede in der Sprach- und Rahmenunterstützung und bestimmte Leistungskosten.

Typisches Szenario: Laufen Sie in der Testumgebung in Verbindung mit automatisierten Tests, um sowohl die Funktionalität zu validieren als auch Output-Sicherheitsschlussfolgerungen zu synchronisieren.

Beobachten Sie den Datenfluss und Call Stack aus dem inneren Code

Fünf, drei gegen einen.

AbmessungenSASTDATENIAST
PrüfobjektQuelle/Bytes (nicht ausgeführt)Aktives Ziel (extern)Betriebsanwendungen (interne Stecker)
PerspektiveWeiße BoxBlack BoxGraue Box
Zeit für die InterventionFrühestens Kodierungs-/EinreichungsphaseNach dem EinsatzTest/Laufzeit
Benötigen QuellcodeJa.Keine Notwendigkeit.Anforderung (kann gesteckt werden)
Falsch gemeldetes Niveauhochniedrigniedriger
PositionsgenauigkeitIn Datei/ZeileZu URL/InterfaceRufen Sie Inn / Data Stream an
Überschreiben AbhängigkeitBegrenzt (siehe Source Code Part)Übersteuern der Exposition während des LaufensBegrenzt durch den Ausführungspfad
Typische SzeneCI Code TürsperreÜberprüfen und akzeptieren, bevor sie online gehen.Kombiniert mit automatisiertem Testing

VI. Warum Komplementarität statt Substitution

Wenn Sie die drei zusammensetzen, finden sie ihre blinden Zonen komplementär:

  • SAST sieht den Code, weiß aber nicht, ob er ausgelöst wird; DAST weiß, ob er ausgelöst werden kann, weiß aber nicht, in welcher Zeile das Problem liegt; IAST beides, verlangt aber, dass der Code ausgeführt wird.
  • SAST deckt früh, breit und laut ab; DAST hat geringes Rauschen, aber spätes Eingreifen, enge Abdeckung; und IAST hat eine hohe Genauigkeit, kann aber gut genug eingesteckt und ausgeführt werden.
  • Gehen Sie einfach zu SAST, das anfällig für "einen Haufen Bürokratie" -Müdigkeit ist; gehen Sie zu DAST, wo die Lücke oft auf der Linie offengelegt wird; gehen Sie zu IAST, wo der Weg, zu dem es nicht erreicht wird, blind ist.

Die Antwort auf die Realität ist nicht ein oder zwei, sondern ein schrittweiser Ansatz: die frühe Verwendung von SAST, um ein klares Muster von schlechtem Geschmack und Gefahr zu blockieren, die Testphase von IAST, die mit IAST in Verbindung mit Automatisierung genau validiert wird, und die Up- und Downline-Nutzung von DAST für die externe Akzeptanz aus der Perspektive des Aggressors. Drei Aberglauben bilden einen geschlossenen Anwendungssicherheitstest ohne signifikante Lücken.

Statische, dynamische, interaktive Tests bilden einen geschlossenen Kreis.

VII. PRAKTISCHE ANLANDUNGEN

1. Falschmeldung, wer damit umgeht

So oder so, niemand repariert den Bericht, niemand tut es. Es gibt einen klaren Triage-Prozess: Wer sieht, wie lange geschlossen wird, wie man "Risiko akzeptieren" markiert. Insbesondere SAST braucht Baseline-Management, sonst wird das Erbe der Geschichte neue Probleme ertränken.

Coverage ist wichtiger als Tool-Marken

Die Fähigkeit des IAST zu entdecken hängt direkt davon ab, wie viele Codes durch den Test abgedeckt werden; DAST hängt davon ab, wie viele Schnittstellen Reptilien erreichen. Es ist sinnvoller, "die Erkennungsrate" zu messen, bevor man online geht, als ein teureres Tool zu ersetzen.

3. Sicherheitstests nicht als einmalige Tests behandeln Nehmen Sie es.

Sicherheitstests sollten in einen kontinuierlichen F & E-Prozess eingebettet werden, anstatt zentralisiert zu werden, bevor sie online gehen. CI betreibt SAST, testet die Umgebung IAST, macht regelmäßig DAST für die Produktion, so dass es sich nicht auf menschliches Fleisch verlassen muss, um das Feuer zu retten.

4. Schwerpunkt auf Synergien zwischen Instrumenten

Der ideale Zustand ist, dass drei Arten von Ergebnissen in der gleichen Ansicht zusammengefasst werden können: die gleiche Lücke, SAST gibt Code-Ort, IAST gibt Datenstrom Beweise und DAST validiert Verfügbarkeit. Es ist weit mehr wert als die drei vom Krieg zerrissenen Inseln.

VIII. Liste der Entscheidungen

  • Ja.EinreichungsphaseHalten Sie einfach die offensichtliche Lücke auf SAST, konzentrieren Sie sich auf Türverschlüsse und Basislinien.
  • zu überprüfenIst das eingesetzte System wirklich angriffsfähig? • Mit DAST, mit Fokus auf Abdeckung und Login-Konfiguration.
  • Um Sicherheitsschlussfolgerungen zu bekommen.Ausgabe mit automatisierter PrüfungUnd finden Sie genau auf dem IAST.
  • Begrenzte Ressourcen können nur als erste Priorität für SAST verwendet werden, um ein Endergebnis festzulegen und dann schrittweise die IAEO/DAST abzuschließen.
  • Die Suche nach einer "one-size-fits-all, permanente Lösung" existiert nicht, aber der Weg zu organisieren und zu verarbeiten ist die Antwort.

SAST ist möglich, DAST ist praktisch, IAST ist spezifisch - kombiniert ist ein vollständiges Bild.