[TUT] Sicherheit in einem Hotel

  • Hallo Community,

    ich gebe euch hier ein paar Tipps wie man seine Webanwendung + Server ordentlich sichert.

    Achtung: Es ist ein sehr theoretischer Beitrag. Das heißt dass ich nicht direkte Codes oder Scripts zu Lösung anbiete, lediglich Vorgehensweisen dafür.

    Vielen Retro Hotels (und vorallem den CMS'en in dieser Szene) mangelt es an Sicherheit.
    Bisher hatte jedes gängige CMS eine CSRF Lücke die man, wenn man das CMS kennt ziemlich böse ausnutzen könnte.

    (Web-)Server Sicherheit:
    Vergebe nur benötigte Rechte
    Solltest du Mitarbeiter haben, welche Zugriff auf deine Daten brauchen; gebe Ihnen nur die dafür benötigten Rechte.
    Hast du zum Beispiel einen Katalog Manager für dein Hotel, gib ihm einen neuen Datenbank Account und nur die Rechte für die Katalog Seiten, Katalog Items und Hotel Items, mehr nicht. Lege Ihm dazu einen extra FTP Zugang, nur zu den jeweiligen SWF Ordnern an.
    Nicht weil du der Person nicht vertraust, aber selbst deine Mitarbeiter können einmal gehackt werden.

    Ändere Standard Ports und Namen
    Lass deinen MySQL Server nicht unter den Benutzernamen root und über den Port 3306 laufen!
    Ändere ihn zu einem geheimen Namen oder einer zufällig generierten Zeichenkette. Das selbe gilt für den Port.
    Dies dürfte - selbst wenn jemand dein Passwort hat - Hackern den Zugang um einiges erschweren.

    Updates
    ... werden nicht aus Spaß oder Langeweile released. Es ist keine Seltenheit, dass Sicherheitslücken selbst in großen Anwendungen gefunden werden. Bleibe deshalb immer (sofern möglich) auf dem neusten Stand deiner benutzten Software. Erkundige dich notfalls im Internet vorab ob die Version deiner Software eventuell Lücken hat.

    DDoS Schutz
    Hier heißt das Zauberwort nicht unbedingt Cloudflare, zumal man die IP sowieso leicht herausbekommen kann, sondern Proxy Server. Diese fangen den Traffic ab und filtern ihn. Ein Proxy Server kostet allerdings etwas.

    Nutze komplizierte Passwörter
    Lass sie dir am besten von einer externen Seite, welche zufällige Passwörter generiert vorgeben (z.B. http://www.gaijin.at/olspwgen.php)

    Logge alle relevanten Sachen
    Sollte dein System doch mal eine Lücke haben oder jemand seine Rechte missbraucht haben, bekommst du das durch Systemlogs raus. Lass deine Datenbank, deinen Server an sich und deinen Webserver Logs führen.

    CMS Sicherheit
    Um eine Webseite zu hacken gibt es die abstraktesten Möglichkeiten.

    SQL-Injection
    Nutze prepared Statements! Nimm dafür am besten MySQLi oder PDO in der PHP Umgebung.

    XSS
    Lass jegliche Eingaben, welche ein Nutzer getätigt hat beim Ausgeben wieder Filtern, sodass er keine Javascripte ausführen kann.

    CSRF
    Generiere für jeden Nutzer einen Token und speicher diesen in der Session ab. Verlange bei jeder POST Abfrage ein abgleich dieses Tokens.
    Beispiel einer Gefahr:
    Ein Administrator klickt auf den Link xyz.de/schaumal und ist währenddessen in seinem Hotel eingeloggt. Jetzt postet diese URL einen automatischen POST Request an die Webseite deines Hotels. Und ohne es zu wissen, kann er einen User bearbeitet haben und ihm einen Rang gegeben haben.

    Bruteforce
    Nutze beim Posten (vorzugsweise beim Login) ebenfalls Logs, welche protokollieren wie oft die Person es bereits Probiert hat. Verlange nach dem 3. oder 4. mal einen Google Captcha, welchen er erst betätigen muss.

    Kein blindes Autoloading von Templates
    Definiere jedes Template in deinem CMS vor (falls du ein MVC o.ä.) nutzt. Wenn ein Nutzer z.B. xyz.de/home aufruft, soll er nicht automatisch im Verzeichnis tpl/home.html nach der Datei suchen, da dies ebenfalls ausgenutzt werden kann, indem eine Person z.b. xyz.de/http://expl0it.org/uploadshell nutzt, wird diese Shell auf deinem Server eingebunden.

    Upload Exploits
    Prüfe beim Hochladen von Dateien den MIME Type der Datei, und nicht nur die Endung oder ähnliches.

    Wenn du diese Schritte befolgst, dürftest du (was dein CMS angeht) auf der Sicheren Seite stehen.

    Hier findest du noch ein gutes PHP Security Cookbook: http://commons.oreilly.com/wiki/index.php…on_and_Security
    Und hier noch eins: https://www.owasp.org/index.php/PHP_Security_Cheat_Sheet

    Einmal editiert, zuletzt von Ertispha (15. Juni 2021 um 15:06)

  • Kümmert euch lieber mal um das HeroFire, statt hier zu chillen xD

    Lisa hat das Team verlassen und soweit ich gehört habe wird Hero verkauft.

    B2T:
    Zwar schön und nett, dass du dich bemühst anderen zu helfen aber da gibt es genügend "Tutorials(?)" auf RT die wesentlicher informationsreicher sind.
    Finde es nicht so besonders, vor allem wie @Mert_Coleman bereits erwähnt hat sollte man nur ein Hotel eröffnen, wenn man sich auch in dem Gebiet auskennt oder einen guten Techniker hat.

    Erfolgreich bist du erst dann, wenn du mit dir selbst zufrieden bist.

  • Lisa hat das Team verlassen und soweit ich gehört habe wird Hero verkauft.
    B2T:
    Zwar schön und nett, dass du dich bemühst anderen zu helfen aber da gibt es genügend "Tutorials(?)" auf RT die wesentlicher informationsreicher sind.
    Finde es nicht so besonders, vor allem wie @Mert_Coleman bereits erwähnt hat sollte man nur ein Hotel eröffnen, wenn man sich auch in dem Gebiet auskennt oder einen guten Techniker hat.

    Bestimmt nützlich für den ein oder anderen Anfänger, aber Leute die da schon bisschen Ahnung haben, sollten sowas schon wissen.
    Meiner Meinung nach sollte man auch kein Hotel eröffnen, wenn man kaum bis gar keine Erfahrung hat. Danke dir trotzdem für diese Infos.

    Dafür sind Tutorials da ?(

  • Dafür sind Tutorials da ?(

    Das ist aber kein Tutorial, das sind Informationen womit ein "Anfänger" nichts anfangen kann. Und wer diese ganzen Fachbegriffe da oben schon kennt, der braucht diese Informationen nicht. Außerdem habe ich auch bereits erwähnt, dass es genügend Tutorials hier auf RT schon gibt, wozu noch einer?

    Erfolgreich bist du erst dann, wenn du mit dir selbst zufrieden bist.

  • Das ist aber kein Tutorial, das sind Informationen womit ein "Anfänger" nichts anfangen kann. Und wer diese ganzen Fachbegriffe da oben schon kennt, der braucht diese Informationen nicht. Außerdem habe ich auch bereits erwähnt, dass es genügend Tutorials hier auf RT schon gibt, wozu noch einer?

    Warum sollte ein Anfänger mit diesen Informationen nichts anfangen können? Es wird genaustens erklärt was passieren könnte, welche Maßnahmen empfehlenswert wären und wie man mit persönlichen Daten umgehen sollte. Ich verstehe nicht warum ein Anfänger aus diesen Informationen nichts herauslesen kann. Und ja, wer diese Fachbegriffe kennt weiß wahrlich nicht was er damit anfangen soll, da stimm ich dir zu. Nur gut, dass dieses Tutorial an Leute gerichtet ist, die so was noch nicht wissen. Ich weiß jetzt selber nicht, ob es das Tutorial in dieser Art und weise schon gibt, allerdings schadet ein aktuelles Tutorial nicht, dass sich eventuell mit dem alten ergänzt. Mal so ganz nebenbei: Tutorials kann es nie genug geben.

  • Warum sollte ein Anfänger mit diesen Informationen nichts anfangen können? Es wird genaustens erklärt was passieren könnte, welche Maßnahmen empfehlenswert wären und wie man mit persönlichen Daten umgehen sollte. Ich verstehe nicht warum ein Anfänger aus diesen Informationen nichts herauslesen kann. Und ja, wer diese Fachbegriffe kennt weiß wahrlich nicht was er damit anfangen soll, da stimm ich dir zu. Nur gut, dass dieses Tutorial an Leute gerichtet ist, die so was noch nicht wissen. Ich weiß jetzt selber nicht, ob es das Tutorial in dieser Art und weise schon gibt, allerdings schadet ein aktuelles Tutorial nicht, dass sich eventuell mit dem alten ergänzt. Mal so ganz nebenbei: Tutorials kann es nie genug geben.

    Also jetzt ohne unfreundlich zu werden, mangelt es bei dir an Verstand oder bist du einfach zu faul, um zu verstehen was man dir versucht zu erklären?
    Wenn du dich für die 2. Option entscheidest, dann brauchst du erst gar nicht kommentieren und sollte es doch an meiner ersten Schätzung liegen, dann brauche ich mich dazu hier auch nicht mehr äußern.

    Es gibt genügend Tutorials hier auf RT die wesentlich informationsreicher sind. So, dass sollte groß genug sein, solltest du an einer Lese Rechtschreibschwäche leiden. Solltest du dennoch was zu ergänzen haben, dann benutze einfach die private Nachrichten Funktion.

    Also scheinst selbst als Ex-Teammitglied nicht die Regeln zu kennen.

    Erfolgreich bist du erst dann, wenn du mit dir selbst zufrieden bist.

  • Also jetzt ohne unfreundlich zu werden, mangelt es bei dir an Verstand oder bist du einfach zu faul, um zu verstehen was man dir versucht zu erklären?Wenn du dich für die 2. Option entscheidest, dann brauchst du erst gar nicht kommentieren und sollte es doch an meiner ersten Schätzung liegen, dann brauche ich mich dazu hier auch nicht mehr äußern.

    Es gibt genügend Tutorials hier auf RT die wesentlich informationsreicher sind. So, dass sollte groß genug sein, solltest du an einer Lese Rechtschreibschwäche leiden. Solltest du dennoch was zu ergänzen haben, dann benutze einfach die private Nachrichten Funktion.

    Also scheinst selbst als Ex-Teammitglied nicht die Regeln zu kennen.

    Ich bezieh mich auf deinen ganzen Satz und nicht auf das worauf du gerne eine Antwort hättest. Aber ja, ich hab dich auch schon beim ersten mal verstanden. Kannst du mir oder den anderen mal den Thread verlinken? Dann kann der OP vielleicht sein Tutorial auch mal ergänzen. Das einzige was ich herauslesen kann ist: "Anfänger können damit nichts anfangen, weil... (?) und das Tutorial ist nicht informativ genug, WEIL es GENUG Tutorials gibt die informativer sind".

    Find ich übrigens gut, dass du nicht mehr antworten wirst. Vielleicht schaffst du dann Platz für Leute, die tatsächlich Argumente und Beispiele bringen können =)

  • Meiner Meinung nach ist dies kein Tutorial, sondern eher ein Informationsblatt mit Informationen und Vorgehensweisen. Dennoch nett und anschaubar, solltest du allerdings ein Tutorial machen wollen dann mach auch eins in welchem du beschreibst und zeigst, was gemacht werden kann / muss. Denn so wie es dort oben steht, bringt es niemanden weiter der keine Ahnung von dem Ganzen hat - deswegen möchte Person X ja auch ein Tutorial anschauen in welchem er Beispiele oder direkt Lösungsmöglichkeiten findet.

    Dennoch ist die ganze Diskussion hier mal wieder dermaßen unnötig.

    Grüße,
    Incomparably

    Einmal editiert, zuletzt von Incomparably (28. Oktober 2016 um 15:34)

  • Lisa hat das Team verlassen und soweit ich gehört habe wird Hero verkauft.
    B2T:
    Zwar schön und nett, dass du dich bemühst anderen zu helfen aber da gibt es genügend "Tutorials(?)" auf RT die wesentlicher informationsreicher sind.
    Finde es nicht so besonders, vor allem wie @Mert_Coleman bereits erwähnt hat sollte man nur ein Hotel eröffnen, wenn man sich auch in dem Gebiet auskennt oder einen guten Techniker hat.

    :lol: Der Preis für die schlauste Aussage geht an dich mein Freund. Wieso verbrennen wir nicht gleich alle Lehrbücher mit Tipps und Tricks auf der Welt und schaffen Ausbildungen und duale Studiengänge ab, ich meine man muss sowas doch schon vorher können bevor man praktisch etwas umsetzt oder? Vielleicht gibt es ja angehende Techniker, die selbst mal was versuchen wollen. Wieso willst du den Leuten vorschreiben wann man was sollte und wann nicht?

  • zu deiner empfehlung am besten extern passworte zu generieren und dann noch ne nichtmal gesicherte verbindung anzugeben.. schonmal an mitm gedacht? Was die leute heute auf ihren pc's alles haben und in welchen netzwerkem sie da rumtummeln da würds mich nicht wundern wenn sie nen 1mio stelliges pw haben und das in nichtmal 1 sek "geknackt" ist.. übrigens zur sql sicherheit.. das verstellen des ports machts nicht sicherer allerdings sollte man da am besten für jeden user ein klares passwort setzen und den zugriff auf ip beschränken. Soll nur der webserver das konto nutzen dürfen hats ja kein sinn wenn da versucht irgend ein möchtegern hacker mit proxyserver aus china ne bruteforce durchzuführen. Kann man sich ja sparen. Übrigens "filtern" proxyserver jetzr nicht direkt den traffic.. den selben effekt kannst su auch in dein produkt einbauen nur wird im falle vom proxyserver der proxyserver eben down sein und nicht einer der origins

  • 1. Wenn ihr nur bestimmten ip's zugriff gebt wird der rest ob legitim oder unlegitim ausgeschlossen. Da könnt ihr gleich die registration weglassen!!

    2. Warum so umständlich mit port scannern?! Geht doch viel schneller,einfacher und vor allem UNAUFFÄLLIGER wenn du kurz den traffic mitschneidest

  • 1. Wenn ihr nur bestimmten ip's zugriff gebt wird der rest ob legitim oder unlegitim ausgeschlossen. Da könnt ihr gleich die registration weglassen!!

    2. Warum so umständlich mit port scannern?! Geht doch viel schneller,einfacher und vor allem UNAUFFÄLLIGER wenn du kurz den traffic mitschneidest

    1. Man braucht ja auch unbedingt von außen Zugriff auf den Port 3306 um sich registrieren zu können :kappa:
    2. Weißt du überhaupt was man mit ein Port Scan erreichen will?

  • ach ihr redet von mysql? Ja gut das ist aber selbstverständlich das der port nicht für jeden offen ist.

    Port scanner? Ja. Ermittlung aller offenen ports. Dachte es war der emulator gemeint. Klar, so hats sinn aber man wirds dennoch nicht weit bringen

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!