Anwendung und Sicherheit

H

Hemmie

Guten Morgen Tutorials Gemeinde ;-)

Ich stehe schon seit längerer Zeit vor einem Sachverhalt, der sich möglicherweise irgendwann zu einem Problem entwickeln könnte.

Für einen Windows Server habe ich eine Anwendung geschrieben, die auf einem Port auf eingehende Verbindungen lauscht. Geht eine Verbindung ein, übermittelt der Client Positionsdaten (GPS Handy, Windows Mobile) an den Server.
Nun denke ich aktuell über die Absicherung nach, ein Thema, was ich zugegebenermaßen etwas vernachlässigt habe. Da es einem Angreifer ohne Probleme möglich ist, sich mit einer anderen Clientsoftware zu verbinden und möglicherweise irgendwelche Strings an den Server zu senden, überlege ich, wie ich am besten Daten filtern kann. Wenn ich an SQL Injections bei schlecht programmierten PHP Scripten denke, so vermute ich, dass Ähnliches auch in meinem Fall möglich wäre.

Daher wollte ich hier einfach mal in die Runde fragen, wie ihr hier vorgehen würdet, bsp.-weise nach welchen Kriterien ihr filtern würdet, wie man schadhaften Code entdecken könnte usw.
Ein erster Denkansatz wäre z.B., eingehende Daten auf Begriffe wie "Truncate, Drop,..." zu suchen und entsprechend zu reagieren.

Aber ich denke, dass das nur ein oberflächlicher Schutz ist.
Hat jemand weitere Denkansätze?

Viele Grüße,

Boris
 
Ich kenne den Code nicht, aber da es sich nur um Koordinaten handelt, sollten vom Server auch nur Eingaben mit dem entsprechenden Datentyp verarbeitet werden. Andernfalls, wirft der Server halt eine Exception und die Verarbeitung wird abgebrochen.
 
Denke ich ebenfalls.

Wenn du auf die Datenbank zugreifst und du dennoch Angst hast wegen Injections, dann kann du auch Linq benutzen.
Linq ist so konzipiert, dass die Datenbankzugriffe parametrisiert werden und somit keine SQL-Injections mehr möglich sind.
 
Zuletzt bearbeitet:
Die Frage ist, wie sicher du das ganze haben möchtest. Zur Absicherung von Servern nutze ich das Prinzip Portknocking. Etwas ähnliches wäre bei dir auch möglich. Deine Software gibt sich still, bis eine bestimmte Kombination von Bytes übertragen (UDP) wurde, erst dann tut sich für die Absender IP etwas.

Ich weiß momentan nicht, ob es auch mit Windows Mobile funktioniert, aber mit .Net gibt es die Möglichkeit, sich an dem Server transparent authentifizieren zu lassen. Das klappt sowohl mit Remoting, als auch mit WCF.
 

Neue Beiträge

Zurück