Was ist der beste Weg, um zu lernen, wie man sichere Anwendungen entwickelt?

8

Ich möchte in meiner Karriere in die Computersicherheit einsteigen. Was sind die besten Möglichkeiten, um sicheres Programmieren zu lernen?

Es scheint mir, dass neben Lehrbüchern und Unterricht in diesem Fach das Erlernen des "Hackens" vielleicht eine der besten Möglichkeiten zum Lernen ist. Mein Grund zu der Annahme, dass dies der beste Weg ist, um zu lernen, wie man jemanden daran hindert, das zu tun, was man nicht will, ist zu lernen, wozu er fähig ist.

Wenn dies der Fall ist, wirft dies eine andere Frage auf: Wie würden Sie lernen, ethisch zu hacken? Ich möchte definitiv keine Gesetze brechen oder meiner Suche Schaden zufügen.

Kenneth
quelle
Jeder rechtfertigt das Hacken mit "ethisch". Warum nicht einfach porcupine.org/satan herunterladen und sich amüsieren, ohne zu behaupten, es sei "ethisch"?
S.Lott
Ich versuche nicht, es zu rechtfertigen. Um einen Hacker zu stoppen, muss man einfach wissen, wie er hacken kann. Mir scheint, dass dies in gewisser Hinsicht fast Erfahrung mit Hacking erfordert. Am Ende ist das Hacken nicht mein oberstes Ziel. Wenn Sie eine bessere Alternative haben, bin ich offen für Vorschläge, die der Zweck dieses Beitrags sind. Vielen Dank!
Kenneth
"Wenn Sie eine bessere Alternative haben"? Ich glaube, ich habe eine Antwort gegeben. Benötigen Sie weitere Informationen? Ist Ihnen auch bewusst, dass die meisten Hacker SATAN verwenden?
S.Lott
Informationen darüber, wie sie hacken können, finden Sie hier einen Link zu den 10 wichtigsten
Evan
@ SLott - die meisten verwenden SATAN? Hmmmm - ich wäre überrascht, wenn wir sehen würden, dass sie viel bessere Werkzeuge verwenden!
Rory Alsop

Antworten:

5

Es gibt viel über "ethisches Hacken" - ein häufiges Schlagwort ist "Penetrationstest". Es gibt auch Ethikkodizes, wie man das macht - aber meine einzige Faustregel wäre die gleiche wie die Regeln für den Kindergarten - keine harten Sachen, die nicht deine sind.

Wenn Sie an beiden Seiten der Medaille interessiert sind, würde ich Heimprojekte vorschlagen - erstellen Sie eine einfache Anwendung und versuchen Sie dann, sie zu hacken. Dann haben Sie den Code zur Verfügung, damit Sie ihn brechen und nach Herzenslust reparieren können.

Die andere Sache sind Websites wie OWASP (siehe andere Antwort). Es gibt eine Menge bekannter Schwachstellen. Das Lernen über sie und das Erlernen, wie man sie verhindert, ist ein großartiger Schritt, der das Ausprobieren von DIY-Hacking verkürzt. Es ist auch ein großer Schritt, sich mit Mechanismen für Vertraulichkeit, Integrität, Identifizierung und Verfügbarkeit von Software, Netzwerken und Computern im Allgemeinen vertraut zu machen. Erfahrung in der Implementierung dieser Mechanismen in der Sprache / Bereitstellung Ihrer Wahl ist eine hervorragende Möglichkeit, um Softwaresicherheitsfähigkeiten aufzubauen.

bethlakshmi
quelle
2

Eine Möglichkeit wäre, sich die Werkzeuge anzusehen, mit denen ein System einem Penetrationstest unterzogen werden kann. Sie können zunächst einige spezielle Linux-Distributionen für Penetrationstests herunterladen .

Ein weiterer Teil Ihrer Lernaufgabe besteht darin, die Literatur dort draußen zu lesen. OWASP, wie von @ S.Lott vorgeschlagen, ist eine erstaunliche Ressource für die Sicherheit von Webanwendungen. SafeCode ist eine allgemeinere Quelle, aber definitiv viel weniger detailliert.

Dan McGrath
quelle