Frage

Ich bin ein Web-Entwickler, die sehr bewusst Sicherheit ist und versuchen, meine Web-Anwendungen so sicher wie möglich zu machen.

Wie auch immer habe damit begonnen, ich meine eigenen Windows-Anwendungen in C # zu schreiben, und wenn es die Sicherheit meines C # -Anwendung Prüfung kommt, ich bin wirklich nur ein Anfänger.

Nur frage mich, ob jemand irgendwelche guten Tutorials / readme der hat, wie Sie Ihre eigene Windows-Anwendung hacken und sicheren Code zu schreiben.

War es hilfreich?

Lösung

Die Bücher von Michael Howard sind ein guter Ausgangspunkt;

Es gibt viele Links und interessanten Artikel von Michael Howard Blog hier

Es ist eine interessante Powerpoint-Präsentation von Microsoft über Bedrohungsanalyse, Risiken und ASP hier .

Andere Tipps

Neben all den offensichtlichen Antworten Pufferüberlauf, Code-Injektion, Sitzung Entführung et zu verhindern. al. Sie sollten jemand anderes lesen Code / Software finden, weil Sie nur über die Möglichkeiten denken können Ihre Software zu hacken, die Sie wissen, wie zu verhindern. Nur weil Sie einen Weg nicht finden können, Ihre eigene Software zu hacken, die nicht, dass niemand sonst kann bedeutet.

Das ist etwas, was sehr schwierig ist, für Sie zu tun, und ich denke, dass Sie das Problem aus dem falschen Winkel nähern. Wenn Sie eine Anwendung jeder Größe dann schreiben Sie versuchen, mit Sicherheit am Ende zu tun, durch die Suche nach spezifischen Möglichkeiten der eigenen Software zu brechen, ist fast unmöglich.

Dies ist für eine Reihe von Gründen. Sie denken bereits über Ihre Software in einer bestimmten Art und Weise. Sie denken an bestimmten Wegen der Zusammenarbeit mit ihm interagieren, und Sie wissen, wie man das Beste aus ihm heraus. Sie denken nicht darüber im Hinblick auf die Möglichkeiten, es zu nutzen, und das ist eine harte Sache, mit Software zu tun, dass Sie nicht mit vertraut sind.

Ein weiteres Problem besteht darin, dass zu diesem Zeitpunkt die Aufgabe ist zu groß, zu beschäftigen. Alle Probleme, die Sie finden können eine beliebige Anzahl von anderen Problemen eröffnen. Eine systemweite Sicherheitskontrolle ist bei weitem nicht granular genug.

Was Sie tun sollten, ist um die Sicherheit zu denken, während Sie die Software schreiben. Lernen Sie die Best Practices und betrachten jede Methode und Klasse, die Sie aus einer Sicherheitsperspektive schreiben. Dies geht Hand in Hand mit der Testeinheit, versuchen zu prüfen, welche Eingaben diesen spezifischen Teil meines Programm Pause machen könnten. und dann mit ihnen auf dieser Ebene befassen.

Danach habe ich denke, es ist eine Frage der schnell auf Sicherheitsbedenken reagiert, die Sie aufmerksam gemacht werden.

Kleine Dinge, die mir begegnet ist durch meine eigene Erfahrung.

  • Verwenden Sie dynamische SQL nicht, sind Sie dann auf SQL-Injection verwundbar. Vielmehr SQL-Abfragen mit Parametern verwenden.
  • Sie haben noch keine Inkrementierung ids wie user_id = 1, 2, 3 usw. usw. und dann in einer URL verwenden, something.aspx? User_id = 1, kann ich dann denke, die nächste ID und Sitzungs Hoffnung. Das Gleiche gilt für Konten und was auch immer sonst empfindlich ist.
  • Achten Sie auf XSS (Cross-Site-Scripting). Wenn Sie eine Benutzereingabe akzeptieren und speichern Sie es direkt, stellen Sie sicher, dass sie nicht Einsatz alert () für ihren Namen oder etwas gehen kann.

Dies ist keineswegs eine vollständige Liste. Gerade die Sachen, die ich in letzter Zeit ausgeführt werden.

könnten Sie tun, viel schlimmer als das Lesen Ross Anderson Security Engineering Buch. Die erste Ausgabe ist zum Herunterladen als PDF und ist ein gutes Buch. Ich habe nicht die zweite Ausgabe lesen, aber ich vermute, es ist besser und mehr Leckereien in ihm hat.

Sie beachten Sie, es ist ein Buch, das erklärt, wie die Sicherheit in von Anfang an zu bauen, nicht, wie die Sicherheit zu brechen, aber die Darstellung der verschiedenen Sicherheitsfehler sollten Sie eine gute Idee, für wo zu Beginn der Suche.

So sichern Sie Ihre Win-Formularanwendung öffnen und versuchen, alles zu tun, die Lambda-Benutzer nicht tun soll! Ich werde erklären:

Wenn Sie „sagen eingeben yes oder no“, versuchen Sie mit A-Z, 0-9, weil das ist, was einige Benutzer tun, um zu versuchen, einige Stack-Trace zu finden, die interessant sein könnten. Also überall setzen Validatoren.

Achten Sie auf die Verbindung zu Datenbanken, aber wenn Sie von Web-Entwickler kommen sollten Sie sich bewusst sein, als ich.)

Der schwierigste Teil ist so über Speicherlecks oder Sachen aufpassen, aber das ist in großen großen Anwendungen oder in nicht gut entwickelte Anwendungen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top