Gibt es Best Practices für die in einem Agile Entwicklung Shop Testen der Sicherheit?

stimmen
9

Agile Entwicklung in Bezug auf, was sind die besten Praktiken für die Prüfung der Sicherheit pro Release?

Wenn es sich um eine monatliche Veröffentlichung ist, gibt es Geschäfte jeden Monat Pen-Tests zu tun?

Veröffentlicht am 05/08/2008 um 16:05
quelle vom benutzer
In anderen Sprachen...                            


4 antworten

stimmen
2

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

Da Sie das Wort „Agile“ verwendet, vermute ich es ein Web-App ist. Ich habe eine schöne einfache Antwort für Sie.

Gehen Sie eine Kopie von Burp Suite kaufen (es ist die Nummer 1 der Google-Ergebnis für „Rülpser“ --- eine sichere Bestätigung!); es wird Ihnen 99EU kosten, oder ~ $ 180USD oder $ 98 Obama-Dollar, wenn Sie bis November warten.

Rülpsen arbeitet als Web-Proxy. Sie durchsuchen Sie Ihre Web-App mit Firefox oder IE oder was auch immer, und es sammelt alle Hits Sie generieren. Diese Treffer erhalten auf eine Funktion namens „Intruder“ zugeführt, die ein Web-fuzzer ist. Intruder werden alle Parameter herauszufinden, Sie zu jeder Ihrer Abfrage-Handler zur Verfügung stellen. Es wird dann versuchen, verrückt Werte für jeden Parameter, einschließlich SQL, Dateisystem und HTML-Meta-Zeichen. An einem typischen Post komplexen Form, wird dies über 1500 Treffer erzeugen, die Sie durch beängstigend zu identifizieren aussehen werden --- oder, was noch wichtiger ist in einem agilen Kontext, neue --- Fehlerreaktionen.

jede Abfrage-Handler in Ihrer Web-App Fuzzing bei jedem Release Iteration ist die # 1, was Sie tun können, die Anwendungssicherheit zu verbessern, ohne eine formelle „SDLC“ zur Einführung und das Hinzufügen von Mitarbeiterzahl. Darüber hinaus werden Sie den Code für die wichtigsten Web-App Sicherheit Hot Spots bewertet:

  • Verwenden Sie nur parametrisierte vorbereitete SQL-Anweisungen; nicht immer einfach Strings verketten und sie zu Ihrer Datenbank-Handle füttern.

  • Filtert alle Eingänge zu einer weißen Liste der bekannten guten Zeichen (alnum, Grundsatzzeichen), und, was noch wichtiger ist, Ausgangsfilter Daten aus den Abfrageergebnissen zu „neutralisieren“ HTML Meta-Zeichen in HTML-Entitäten (zit, lt, gt, etc).

  • Verwenden Sie langen Zufall schwer zu erratende Identifikatoren überall, die Sie gerade einfachen Integer Zeilen-IDs in Abfrageparametern verwenden, und sicherstellen, dass Benutzer X nicht vom Benutzer Y der Daten nur durch Erraten, die Identifier sehen kann.

  • jede Abfrage-Handler in Ihrer Anwendung testen, um sicherzustellen, dass sie funktionieren nur, wenn ein gültiges, angemeldete Sitzung Cookie präsentiert wird.

  • Schalten Sie den XSRF Schutz in Ihrem Web-Stack, der versteckte Form Token Parameter auf alle Ihre gerenderte Formulare generieren, um die Angreifer aus der Schaffung von bösartigen Links zu verhindern, die Formulare für die ahnungslose Benutzer vorlegen wird.

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

Beantwortet am 10/09/2008 um 22:19
quelle vom benutzer

stimmen
1

Unit - Tests , Defense Programmierung und viele Protokolle

Unit-Tests

Stellen Sie sicher, dass Sie Unit-Test so früh wie möglich (zB das Passwort sollte vor dem Versenden verschlüsselt werden, der SSL-Tunnel arbeitet, etc). Dies würde Ihre Programmierer versehentlich macht das Programm unsicher verhindern.

Defense Programmierung

Ich nenne dies persönlich die Paranoid Programmierung aber Wikipedia ist nie falsch ( Sarkasmus ). Grundsätzlich fügen Sie Tests auf Ihre Funktionen , die alle Eingaben überprüft:

  • ist der gültigen Cookies des Benutzers?
  • ist er derzeit noch angemeldet?
  • die Funktion der Parameter sind geschützt gegen SQL-Injection? (Obwohl Sie wissen, dass die Eingabe durch eigene Funktionen erzeugt werden, testen Sie sowieso)

Protokollierung

Melden Sie sich alles wie verrückt. Sein einfaches Protokoll zu entfernen, dann um sie hinzuzufügen. Ein Benutzer hat angemeldet? Melden Sie es. Ein Benutzer gefunden 404? Melden Sie es. Der Admin bearbeitet / gelöscht einen Beitrag? Melden Sie es. Jemand konnte eine eingeschränkte Seite zugreifen? Melden Sie es.

Seien Sie nicht überrascht, wenn Ihre Protokolldatei erreicht 15+ Mb während der Entwicklungsphase. Während der Beta, können Sie entscheiden, welche zu entfernen protokolliert. Wenn Sie möchten, können Sie ein Flag hinzuzufügen, zu entscheiden, wenn ein bestimmtes Ereignis protokolliert.

Beantwortet am 18/08/2008 um 03:40
quelle vom benutzer

stimmen
1

Ich bin kein Sicherheitsexperte, aber ich denke, die wichtigste Tatsache, die Sie sollten sich bewusst sein, vor der Prüfung der Sicherheit, ist das, was Sie zu schützen versuchen. Nur wenn Sie wissen, was Sie zu schützen versuchen, können Sie eine genaue Analyse Ihrer Sicherheitsmaßnahmen tun und nur dann können Sie beginnen, diese umgesetzten Maßnahmen zu testen.

Sehr abstrakt, ich weiß. Aber ich denke, es sollte der erste Schritt einer jede Sicherheitsüberprüfung sein.

Beantwortet am 05/08/2008 um 18:50
quelle vom benutzer

stimmen
1

Ich bin kein Experte auf Agile Entwicklung, aber ich könnte mir vorstellen, dass einige grundlegende automatisierte Pen-Test-Software in Ihren Build-Zyklus Integration ein guter Anfang wäre. Ich habe dort mehrere Software-Pakete zu sehen, die grundlegenden Tests tun und sind gut für die Automatisierung geeignet.

Beantwortet am 05/08/2008 um 18:19
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more