| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Dec 2009
Beiträge: 25
| Sicherheit Socket-Server
Hallo, Wenn ich es richtig verstanden habe, kann ein User nur seine eigene Verbindung abhören und dementsprechen seine Daten verändert an den Server schicken, oder hat er die Möglichkeit den gesamten Verkehr des Socket-Server Port einzusehen? Falls ersteres zutrifft, ist man auf der sicheren Seite, wenn man jede Interaktion des Users vom Server gegenprüft und erst bei Ligimitation zur Verarbeitung durchlässt? Ich hoffe es kann mir jemand etwas genaues dazu sagen. Danke & Grüße |
| | |
| | #2 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.326
|
der server muss immer mit manipulationen rechnen. du kannst niemals wissen, ob die eingehenden daten echt oder falsch sind. sind echte daten echt, weil sie echt sind oder nur deshalb, weil die gefälschten daten wie echte daten sind. nur unechte daten kann man als unechte daten erkennen. (sicher wäre wohl nur quantentechnik, weil ein abhören der daten die daten selbst verändert.) in der praxis heisst es wohl, du solltest prüfen ob die daten logisch richtig sein können. ob eventuell die rückantwort zu schnell gekommen ist, ob erkennbare muster auf eine automatische reaktion schliessen könnte. ein möglichst komplexer ablauf der kommunikation, der sich ändert und vorherige antworten mit in die überprüfung mit einbeschliesst ist schlecht von angreifern nach zu bilden. usw.
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (11-02-2012 um 10:47 Uhr) |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Dec 2009
Beiträge: 25
|
Danke für deine schnelle Antwort. Doch ganz konkret war sie leider für mich noch nicht, oder ich hab nicht genug zwischen den Zeilen gelesen?! :-) Die Kommunikation ist wie folgt aufgebaut: Userlogin und Passwort an Socketserver, nach Überprüfung ob Daten mit den Daten in der Datenbank übereinstimmen, wird Username und UserId als Client eingetragen und eine Bestätigung an Flash zurückgeschickt. Erst wenn dies gegeben ist, erhält der User die aktuellen Spieldaten und seine Balance per XML-Socket übertragen. Sobald der User seine Spielrunde bestätig hat, werden alle gesetzten Felder aus einem Array an den Server gesendet und dort die Anzahl der Felder mit ihrem jeweiligen Wert berechnet und von seiner Balance abgezogen. Anschließend wird eine Bestätigung und der neue Balancewert an Flash wieder zurückgesendet. Flashseitig wird hier nichts sensibles berechnet. Das es nie 100%ig sicher ist sollte klar sein und wenn ein User seine Daten manipuliert dann nur in soweit, dass es entweder wenige oder mehr Spielfelder sind. Seine Balance wird immer serverseitig berechnet. Vorausgesetzt er hat nur Zugriff auf seine eigene Socket-Verbindung. Andernfalls hieße es, er könnte die gesetzten Spielfelder anderer User einsehen und manipulieren und das muss ausgeschlossen werden. Gruß |
| | |
| | #4 (permalink) |
| NCC 1701 D Registriert seit: Oct 2009 Ort: Metropolregion Hamburg
Beiträge: 586
|
EDIT: hgseib war schneller und hat es auf den Punkt gebracht!!:-) hab noch ein bisschen nebenbei gedaddelt. Hallo macmasterflash, was meinst Du mit "ein User nur seine eigene Verbindung abhören"? Prinzipiell ist es möglich alles mit zuhören wenn man das dazu nötige investiert. So wie Du das schilderst ist es schon korrekt aber wenn jemand z.B. ein Proxy dazwischen schiebt und vorgaukelt der jeweils andere zu sein kann derjenige der den ungewollten Service bedient die Daten nach belieben verändern und mitlesen. Das heiß aber nicht das man sich nicht mit dem Thema Sicherheit befassen soll im Gegenteil. Such einmal bitte nach Socket Sniffer oder Socket Hacking! vielleicht noch: TCP/IP - HackerWiki und allgemein: CR172 SSL. Oder: Einmal aufmachen, bitte. - Chaosradio Podcast Network Sicherheit bzw. dieses Wort ist etwas für Menschen die glauben Facebook o.ä. sei das Internet also nicht für uns. Das ist ein sehr ausschweifendes Thema!! Soviel wie für SSL TLS, CD/DVD/Software Kopierschutz, Pay-TV et cetera hineingesteckt wird, soviel wird auch wieder hineingesteckt um das umgehen. Kommt aber auch immer darauf an wie attraktiv Deine Daten für andere sind. Aber wenn Du so etwas wie Wireshark meinst da analysiert der User nur seine eigenen Ports. Geändert von speedjunkie (11-02-2012 um 12:03 Uhr) |
| | |
| | #5 (permalink) | |
| NCC 1701 D Registriert seit: Oct 2009 Ort: Metropolregion Hamburg
Beiträge: 586
| Zitat:
| |
| | |
| | #6 (permalink) | ||
| Neuer User Registriert seit: Dec 2009
Beiträge: 25
|
Hallo speedjunkie, danke für die super und ausführliche Erklärung! Werd den Sniffer später mal testen. Zitat:
Daten dieses Ports, also alle Übermittlungen an alle oder andere Clients und zurück einsehen könnte, oder nur die eigene Socketverbindung und & -Kommunikation, bei Zwischenschaltung durch Proxy, dann nur die des abzuhörenden? Das ist nämlich meine größte Sorge... Zitat:
er die Nachrichten des Servers an andere Clients nicht auslesen kann, kommt er doch da niemals ran, richtig? Grüße | ||
| | |
| | #7 (permalink) |
| NCC 1701 D Registriert seit: Oct 2009 Ort: Metropolregion Hamburg
Beiträge: 586
|
Ja man könne beispielsweise ein Rootkit basteln mit Backdoor-Funktionalitäten dazu musste man aber im Voraus Recherche über das System führen und das erst einmal in das System rein quetschen. Wäre dann in der Lage das System komplett zu kontrollieren oder Daten auszulesen, so dass der Admin das nicht bzw. vorübergehend nicht bemerkt. Es ist auch die Wahl des Systems z.B. OpenBSD was auch google für seine Services nutzt, ist zu und man muss es aufmachen um mit der Außenwelt zu kommunizieren. Das ist einfacher zu überwachen. Alle anderen Systeme sind auf und man muss sie zu machen. Ich denke aber das ihr alles richtig gemacht habt und nicht von einer "Unsicherheit" ausgehen solltet. Geändert von speedjunkie (12-02-2012 um 10:59 Uhr) |
| | |
| | #8 (permalink) |
| Neuer User Registriert seit: Dec 2009
Beiträge: 25
|
Hey speedjunkie, interessante Infos, danke! Aber blind darauf zu vertrauen, dass alles richtig gemacht wurde, wäre fahrlässig. Ich habe jetzt einen bekannten ausfindig gemacht, der sich ohne Infos zum Server und Betriebsystems, versucht dort reinzuschleusen. Bin gespannt, welche Angriffsflächen noch zu finden sind. Danke nochmal an euch beide für die Unterstützung. Grüße |
| | |
| | #10 (permalink) |
| Neuer User Registriert seit: Dec 2009
Beiträge: 25
|
Der Server läuft mit Ubuntu. Ich werd mir mal die Syntax dafür raussuchen... Unter SocketSniff sieht man nur die eigene Kommunikation und das, was an alle Clients gesendet wird. Sehr erfreulich :-) Hab noch Amayeta 6 ausprobiert, anschließend mit AS Viewer geöffnet und muss sagen, da ist vom SWF Code nichts mehr zusehen...Ist jedenfalls eine zusätzliche Sicherheitsmaßnahme, die wiederum das manipulieren um einiges erschwert. Falls du dich mit Ubuntu auskennst, könntest du mir vielleicht sagen, wie ich SOMAXCONN von 128 auf X stellen kann. Die befehle, die ich im Netz gefunden habe, sind wie es scheint gesperrt, trotz ROOT berechtigung. Es ist ein VServer mit Rootszugriff. Danke und Gruß |
| | |
| | #11 (permalink) |
| NCC 1701 D Registriert seit: Oct 2009 Ort: Metropolregion Hamburg
Beiträge: 586
|
Hi, sorry für die späte Antwort. Wo hast Du versucht socket max connections zu ändern? Bei mir ist das in socket.h definiert. Verzeichnis: /usr/include/bits/socket.h:#define SOMAXCONN 128 Wolltest Du das mit einem Editor ändern oder über die Shell? find /usr/include -name \*.h -exec grep SOMAXCONN {} /dev/null \; |
| | |
| | #12 (permalink) |
| Neuer User Registriert seit: Dec 2009
Beiträge: 25
|
Hi, da brauchst du dich doch nicht entschuldigen, ich möchte doch etwas von dir :-) Das war auch das Problem, socket.h ist nicht ausfindig zu machen. Ordner "bits" gibt es nicht, nur "lct" und "python2.6" und in diesen ist auch keine socket.h... Vielleicht bringt es etwas den Ordner "bits" selbst zu erstellen und in die dann angelegte socket.h den Wert einschreiben. Es kommt mir eher so vor, dass sie ausgelagert wurde und irgendwo zentral vom Hoster gesteuert wird.. Dann muss entweder ein dedicated Server her, oder man verteilt die Connections bei über 128 Clients auf die nächsten freien Socketports. Hier stellt sich dann die Frage, ob User auf Port A die gleichen Infos bekommt wie der auf Port B, und es nicht wie Rooms beim Chat gehandhabt wird. Grüße Geändert von macmasterflash (20-02-2012 um 12:32 Uhr) |
| | |
| | #13 (permalink) |
| NCC 1701 D Registriert seit: Oct 2009 Ort: Metropolregion Hamburg
Beiträge: 586
|
es gibt unterschiedliche Verzeichnisse. Bei OS X ist es auch anders. Gib mal ein in der Shell: sudo find / -name \*.h -exec grep SOMAXCONN {} /dev/null \; mach mal copy and paste mit dieser Zeile. Wenn Du in der Shell bist mittlere Maustaste oder Strg + Shift + v und dann lass mal suchen. Wenn nix kommt hast Du recht ![]() edit: was benutzt ihr serverseitig für eine language? Geändert von speedjunkie (20-02-2012 um 13:27 Uhr) Grund: editieren |
| | |
| | #14 (permalink) |
| Neuer User Registriert seit: Oct 2008
Beiträge: 114
|
auch mit somaxconn=128 kannst du ohne Probleme hundertausend clients an einem Port hängen haben. man 2 accept und man 2 listen nochmal genau lesen oder das TCP-IP Buch vom Herrn Stevens. Oder einfach mal jemanden fragen der... btw: Code: /sbin/sysctl -a | grep somaxconn |
| | |
| | #15 (permalink) | |
| Neuer User Registriert seit: Dec 2009
Beiträge: 25
|
Hi, ich benutze PHP und mySQL... Bei Code: /sbin/sysctl -a | grep somaxconn Code: error: "Operation not permitted" reading key "net.ipv4.route.flush" net.core.somaxconn = 128 Code: sudo find / -name \*.h -exec grep SOMAXCONN {} /dev/null \; Zitat:
Grüße an euch... :-) | |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| FlashCom Server und Sicherheit | diebertadiebera | Flash Einsteiger | 0 | 08-11-2006 16:39 |
| XML Socket Server | 123dabinich | ActionScript 2 | 2 | 19-02-2006 15:10 |
| XML-Socket - PHP-Server | Doedelbaer | Flash mit XML und Webservices | 1 | 27-11-2003 20:54 |
| XML Socket Server | vaude | Flash und Datenbanken | 14 | 17-09-2002 18:55 |
| Sicherheit Socket | Steppel | ActionScript 1 | 7 | 24-08-2002 09:49 |