Gibt es Best Practices zum Testen der Sicherheit in einem Agile-Entwicklungsgeschäft? [geschlossen]

8

Was sind bei der agilen Entwicklung die besten Verfahren zum Testen der Sicherheit pro Release?

Wenn es eine monatliche Veröffentlichung ist, gibt es Geschäfte, die jeden Monat Pen-Tests durchführen?

    
danday74 05.08.2008, 15:05
quelle

4 Antworten

2

Was ist Ihre Anwendungsdomäne? Es kommt darauf an.

Da du das Wort "Agile" benutzt hast, vermute ich, dass es eine Web-App ist. Ich habe eine einfache Antwort für Sie.

Gehen Sie und kaufen Sie eine Kopie von Burp Suite (es ist das Google-Ergebnis # 1 für "rülpsen" --- eine sichere Bestätigung!); es kostet Sie 99EU, oder ~ 180USD, oder $ 98 Obama Dollar, wenn Sie bis November warten.

Burp arbeitet als Web-Proxy. Sie durchsuchen Ihre Web-App mit Firefox oder IE oder was auch immer, und es sammelt alle Treffer, die Sie generieren. Diese Treffer werden einem Feature namens "Intruder" zugeführt, einem Webfuzzer. Intruder wird alle Parameter herausfinden, die Sie jedem Ihrer Abfrage-Handler zur Verfügung stellen. Es wird dann verrückte Werte für jeden Parameter versuchen, einschließlich SQL-, Dateisystem- und HTML-Metazeichen. In einem typischen Post mit komplexen Formularen werden ungefähr 1500 Treffer generiert, die Sie durchsehen, um unheimlich --- oder, was noch wichtiger ist, in einem agilen Kontext neue --- Fehlerreaktionen zu identifizieren.

Das Fuzzing jedes Abfrage-Handlers in Ihrer Web-App bei jeder Release-Iteration ist die Nr. 1, die Sie tun können, um die Anwendungssicherheit zu verbessern, ohne eine formelle "SDLC" einzurichten und Personal hinzuzufügen. Überprüfen Sie darüber hinaus Ihren Code für die Sicherheitsschwerpunkte der Web-App:

  • Verwenden Sie nur parametrisierte vorbereitete SQL-Anweisungen; Verknüpfen Sie Zeichenfolgen nicht einfach und füttern Sie sie mit Ihrem Datenbank-Handle.

  • Filtern Sie alle Eingaben in eine weiße Liste bekannter Zeichen (Alnum, grundlegende Interpunktion) und, noch wichtiger, filtern Sie die Daten aus Ihren Abfrageergebnissen, um HTML-Metazeichen zu HTML-Entitäten zu "neutralisieren" (quot, lt, gt, usw.).

  • Verwenden Sie lange zufällige schwer zu erratende Bezeichner überall dort, wo Sie derzeit einfache Integer-Zeilen-IDs in Abfrageparametern verwenden, und stellen Sie sicher, dass Benutzer X die Daten von Benutzer Y nicht nur durch Erraten dieser Bezeichner sehen kann.

  • Testen Sie jeden Abfrage-Handler in Ihrer Anwendung, um sicherzustellen, dass sie nur funktionieren, wenn ein gültiges, angemeldetes Sitzungs-Cookie angezeigt wird.

  • Aktivieren Sie den XSRF-Schutz in Ihrem Webstapel, wodurch auf allen gerenderten Formularen verborgene Formular-Token-Parameter generiert werden, damit Angreifer keine schädlichen Links erstellen, die Formulare für ahnungslose Benutzer senden.

  • Verwenden Sie bcrypt --- und nichts anderes ---, um Hash-Passwörter zu speichern.

tqbf 10.09.2008 21:19
quelle
1

Ich bin kein Experte für die agile Entwicklung, aber ich würde mir vorstellen, dass die Integration einiger einfacher automatisierter Pen-Test-Software in Ihren Build-Zyklus ein guter Anfang wäre. Ich habe mehrere Softwarepakete gesehen, die grundlegende Tests durchführen und sich gut für die Automatisierung eignen.

    
pix0r 05.08.2008 17:19
quelle
1

Ich bin kein Sicherheitsexperte, aber ich denke, die wichtigste Tatsache, die Sie beachten sollten, bevor Sie die Sicherheit testen, ist das, was Sie zu schützen versuchen. Nur wenn Sie wissen, was Sie zu schützen versuchen, können Sie Ihre Sicherheitsmaßnahmen richtig analysieren und erst dann können Sie diese implementierten Maßnahmen testen.

Sehr abstrakt, ich weiß. Ich denke jedoch, dass dies der erste Schritt jedes Sicherheitsaudits sein sollte.

    
dlinsin 05.08.2008 17:50
quelle
1

Komponententests , Verteidigung Programmierung und viele Protokolle

Komponententest

Stellen Sie sicher, dass Sie den Komponententest so früh wie möglich durchführen (z. B. sollte das Passwort vor dem Senden verschlüsselt werden, der SSL-Tunnel funktioniert usw.). Dies würde verhindern, dass Ihre Programmierer das Programm versehentlich unsicher machen.

Verteidigungsprogrammierung

Ich persönlich nenne das die paranoide Programmierung, aber Wikipedia ist niemals falsch ( Sarkasmus ). Grundsätzlich fügen Sie Ihren Funktionen Tests hinzu, die alle Eingaben überprüfen:

  • sind die Cookies des Benutzers gültig?
  • Ist er noch angemeldet?
  • Sind die Parameter der Funktion gegen SQL-Injection geschützt? (Obwohl Sie wissen, dass die Eingabe von Ihren eigenen Funktionen generiert wird, werden Sie trotzdem testen)

Protokollierung

Log alles wie verrückt. Es ist einfacher, Protokolle zu entfernen und sie dann hinzuzufügen. Ein Benutzer hat sich angemeldet? Protokollieren Sie es. Ein Benutzer hat eine 404 gefunden? Protokollieren Sie es. Der Admin hat einen Beitrag bearbeitet / gelöscht? Protokollieren Sie es. Jemand konnte auf eine eingeschränkte Seite zugreifen? Logge es ein.

Seien Sie nicht überrascht, wenn Ihre Protokolldatei während Ihrer Entwicklungsphase mehr als 15 MB erreicht. Während der Beta können Sie entscheiden, welche Protokolle entfernt werden sollen. Wenn Sie möchten, können Sie ein Flag hinzufügen, um zu entscheiden, wann ein bestimmtes Ereignis protokolliert wird.

    
MrValdez 18.08.2008 02:40
quelle

Tags und Links