Ich bin ein IT-Student und bin jetzt im 3. Jahr an der Universität. Bis jetzt haben wir viele Themen im Zusammenhang mit Computern im Allgemeinen studiert (Programmierung, Algorithmen, Computerarchitektur, Mathematik usw.).
Ich bin mir sehr sicher, dass niemand alles über Sicherheit lernen kann, aber sicher, dass jeder Programmierer oder IT-Student ein "Mindestwissen" darüber wissen sollte, und meine Frage ist, was ist dieses Mindestwissen?
Können Sie einige E-Books oder Kurse vorschlagen oder irgendetwas kann helfen, mit diesem Weg zu beginnen?
Antworten:
Beachten Sie die folgenden Grundsätze, wenn Sie möchten, dass Ihre Anwendungen sicher sind:
Es gibt einige ausgezeichnete Bücher und Artikel online, in denen es darum geht, Ihre Anwendungen sicher zu machen:
Trainieren Sie Ihre Entwickler in den besten Praktiken zur Anwendungssicherheit
Codebashing (bezahlt)
Sicherheitsinnovation (bezahlt)
Sicherheitskompass (bezahlt)
OWASP WebGoat (kostenlos)
quelle
Regel Nr. 1 der Sicherheit für Programmierer: Rollen Sie nicht Ihre eigenen
Verwenden Sie immer eine gut gestaltete, gut getestete und ausgereifte Sicherheitsplattform, ein Framework oder eine Bibliothek, um die Arbeit für Sie zu erledigen, es sei denn, Sie sind selbst Sicherheitsexperte und / oder Kryptograf . Diese Dinge wurden jahrelang von Experten und Hackern gleichermaßen durchdacht, gepatcht, aktualisiert und untersucht. Sie möchten diese Vorteile nutzen und sie nicht durch den Versuch, das Rad neu zu erfinden, verwerfen.
Das heißt nicht, dass Sie nichts über Sicherheit lernen müssen. Sie müssen auf jeden Fall genug wissen, um zu verstehen, was Sie tun, und sicherstellen, dass Sie die Tools richtig verwenden. Wenn Sie jedoch jemals anfangen werden, Ihren eigenen Kryptografiealgorithmus, Ihr Authentifizierungssystem, Ihr Eingabedesinfektionsmittel usw. zu schreiben, halten Sie an, treten Sie einen Schritt zurück und erinnern Sie sich an Regel 1.
quelle
Jeder Programmierer sollte wissen, wie man Exploit-Code schreibt.
Ohne zu wissen, wie Systeme ausgenutzt werden, stoppen Sie versehentlich Schwachstellen. Zu wissen, wie man Code patcht, ist absolut bedeutungslos, es sei denn, Sie wissen, wie Sie Ihre Patches testen. Sicherheit ist nicht nur eine Reihe von Gedankenexperimenten, Sie müssen wissenschaftlich sein und Ihre Experimente testen.
quelle
Sicherheit ist ein Prozess, kein Produkt.
Viele scheinen diese offensichtliche Tatsache zu vergessen.
quelle
Ich empfehle, CWE / SANS TOP 25 der gefährlichsten Programmierfehler zu überprüfen . Es wurde für 2010 mit dem Versprechen aktualisiert, in Zukunft regelmäßig aktualisiert zu werden. Die Revision 2009 ist ebenfalls verfügbar.
Von http://cwe.mitre.org/top25/index.html
quelle
Ein guter Einstiegskurs könnte der MIT-Kurs für Computernetzwerke und Sicherheit sein . Eine Sache, die ich vorschlagen würde, ist, die Privatsphäre nicht zu vergessen. Datenschutz ist in gewisser Hinsicht eine grundlegende Grundlage für die Sicherheit und wird in technischen Kursen zum Thema Sicherheit nicht häufig behandelt. In diesem Kurs zu Ethik und Recht in Bezug auf das Internet finden Sie möglicherweise Material zum Thema Datenschutz .
quelle
Das Web Security-Team von Mozilla hat einen großartigen Leitfaden zusammengestellt , an den wir uns bei der Entwicklung unserer Websites und Dienste halten.
quelle
Die Bedeutung sicherer Standardeinstellungen in Frameworks und APIs:
quelle
Sie sollten über die drei A wissen. Authentifizierung, Autorisierung, Prüfung. Ein klassischer Fehler besteht darin, einen Benutzer zu authentifizieren, ohne zu prüfen, ob der Benutzer berechtigt ist, eine Aktion auszuführen, damit ein Benutzer die privaten Fotos anderer Benutzer anzeigen kann, wie es die Diaspora getan hat. Viele, viele weitere Menschen vergessen Audit. Sie müssen in einem sicheren System feststellen können, wer was wann getan hat.
quelle
quelle
Ich würde folgendes hinzufügen:
Verstehen Sie, wie verschiedene Angriffsmethoden funktionieren:
Sie können ganz einfach für all dies googeln. Dies gibt Ihnen eine gute Grundlage. Wenn Sie Schwachstellen in Web- Apps sehen möchten, gibt es ein Projekt namens Google Gruyere , das Ihnen zeigt, wie Sie eine funktionierende Web-App ausnutzen können.
quelle
Wenn Sie ein Unternehmen oder eine eigene Software aufbauen, sollten Sie einfach wie ein Hacker denken. Wir wissen, dass Hacker auch nicht in allen Dingen Experten sind, aber wenn sie eine Schwachstelle finden, beginnen sie, sich damit zu beschäftigen, indem sie Informationen über alle sammeln die Dinge und schließlich Angriff auf unsere Software. Um solche Angriffe zu verhindern, sollten wir einige bekannte Regeln befolgen wie:
Weitere Sicherheitsressourcen finden Sie unter den folgenden Links:
Für weitere Informationen google über die Sicherheitsabläufe Ihres Anwendungsanbieters.
quelle
quelle
Für allgemeine Informationen zur Sicherheit empfehle ich dringend, Bruce Schneier zu lesen . Er hat eine Website, seinen Krypto-Gramm-Newsletter , mehrere Bücher und hat viele Interviews geführt .
Ich würde mich auch mit Social Engineering (und Kevin Mitnick ) vertraut machen .
Für ein gutes (und ziemlich unterhaltsames) Buch darüber, wie sich Sicherheit in der realen Welt auswirkt, würde ich das ausgezeichnete (wenn auch etwas veraltete) "The Cuckoo's Egg" von Cliff Stoll empfehlen .
quelle
Schauen Sie sich auch die OWASP Top 10-Liste an, um eine Kategorisierung aller Hauptangriffsvektoren / -schwachstellen zu erhalten.
Es ist faszinierend, über diese Dinge zu lesen. Wenn Sie lernen, wie ein Angreifer zu denken, lernen Sie, woran Sie denken müssen, wenn Sie Ihren eigenen Code schreiben.
quelle
Salt und Hash die Passwörter Ihrer Benutzer. Speichern Sie sie niemals im Klartext in Ihrer Datenbank.
quelle
Ich wollte dies nur für Webentwickler teilen:
Sicherheitsleitfaden für Entwickler
https://github.com/FallibleInc/security-guide-for-developers
quelle