2012-06-14 17 views
5

Ich weiß, dass die Sicherung einer Website ein sehr schwieriges und weites Thema ist, über das wir diskutieren müssen, aber ich möchte diese Frage auf meine spezielle Website beziehen, an der ich gearbeitet habe. Es wurde um 2004 von einem anderen Programmierer in PHP programmiert und ich bin verantwortlich für das Management. Mein Problem ist, dass es immer wieder gehackt wird. Ich habe folgende Dinge bemerkt, als es gehackt wurde.Wie kann ich meine Website sichern?

  1. .htaccess Datei hat
  2. index.php und config.php Dateien modifiziert worden waren
  3. Admin-Passwort geändert hat
  4. Hochladen von Dateien in Server
  5. Ändern von Dateiberechtigung für Dateien und Ordner
geändert

Ich habe an dem Code gearbeitet, es wurde ordentlich gemanaged nd ich denke, es gibt keine Wahrscheinlichkeit von SQL-Injektion. Da der größte Teil des Problems mit Dateien und Berechtigungen zusammenhängt, zweifle ich an der Server-Sicherheit, aber aufgrund des Umstandes, dass es um 2004 herum codiert wurde, wird es sicherlich an Sicherheit mangeln. Woran also muss ich in meinem Code arbeiten? verhindern, dass meine Website für die oben genannten Probleme gehackt wird?

Vielen Dank im Voraus.

+1

Versuchen Sie ein paar Lösungen zu dieser Frage: http://serverfault.com/questions/12847/penetration-testing. Es gibt eine Reihe von Test-Tools, die Ihnen sagen, wo Probleme sind ... – R4D4

+1

In welcher Weise wurden sie geändert? Was wurde hinzugefügt? Sie sollten den Serveradministrator bitten, auf dem Computer eine Virenprüfung durchzuführen. Es ist auch möglich, dass Sie von einem Brute-Force-Angriff betroffen wurden, der in das System gelangt ist und Root-Zugriff erhalten hat. –

+0

was ist dein Hosting? Geteilt? VDS oder dediziert? Wenn es geteilt wird, dann ist der erste Halt Ihr Webhost. – Nick

Antwort

5

Da Dateien geändert wurden, ist dies aufgrund von SQL-Injection-Fehlern unwahrscheinlich.

Möglichkeiten, um die Dateien zu erhalten:

  • Raten/stehlen Ihr FTP-Passwort
  • Hack der Server (Sie nicht wirklich etwas dagegen tun können)
  • Unzureichende Isolierung auf dem Server, was bedeutet, andere Kunden können Ihre Dateien ändern
  • Remote-Codeausführung Fehler (man nicht wirklich etwas darüber entweder tun können)

Jetzt, da Sie sagen, die Website ist von 2004, könnte es sein, dass es eval für Templating oder include für Dinge wie site.php?section=foo verwendet und dann foo.php in den Code irgendwo, die beide im Jahr 2004 häufig getan wurden. So würde ich schnell tun Dateisuche für eval und die Regex include(.*\$.*) sowie require(.*\$.*). Das sind Hauptverdächtige, abhängig davon, wie sie benutzt wurden.

+2

"Sie können wirklich nichts tun", ändern Sie das Hosting, informieren Sie Ihren Provider über Probleme oder beheben Sie Ihren Server Aufbau. –

+0

Ich möchte "oder SSH-Passwort" zu "Erraten/stehlen Sie Ihr FTP-Passwort" hinzufügen. –

+0

@mensi Sie hatten recht, weil die Datei, die eingeschlossen werden soll, in der URL übergeben wird, wie Sie sagten, und es gibt einige 'eval' Funktionen, aber ich kann' regex' nicht finden, um Dateien einzuschließen. Wie auch immer, danke für die Antwort, ich kümmere mich um den Code und hoffe, ich kann es beheben. – uttam

4

Wahrscheinlich hat jemand direkten Zugriff auf den Server und nicht auf (a) Skripte. Dies klingt nicht wie ein Sicherheitsproblem, das seinen Ursprung in der Codebasis hat.

Sie könnten in Erwägung ziehen, die gesamte Website auf einen anderen Anbieter zu verschieben, wenn dies immer wieder passiert ist. Beginnen Sie woanders, mit neuen Passwörtern, Zugangskontrolle usw.

2

OWASP top 10 ist sehr gut zu lesen. Einige Vermutungen von mir.

  • veraltete OS, die Sicherheitslücken hat.
  • MySQL-Injektion und vielleicht alle Passwort im Klartext gespeichert, die sehr, sehr schlecht ist. Zur Authentifizierung sollten Sie stattdessen etwas wie openID verwenden.Auch wenn Sie MySQL-injection haben, sollten Sie den Code updaten, um möglichst PDO (Prepared Statements) zu verwenden.
  • Lese-/Schreibberechtigungen nicht richtig eingestellt oder APACHE/PHP läuft auf hohem Niveau?

Mein Rat an Sie ist:

  • auf Informationen über OWASP oben lesen. Dann suchen Sie nach Fehlern in Ihrem Code. Jede Zeile könnte ein Problem sein. Vielleicht solltest du alten Code wegwerfen, weil sehr unsicher?
  • installieren Sie Ihr Betriebssystem neu, weil Sie sogar ein Rootkit haben könnten?
+0

PDO oder mysqli - ich bevorzuge mysqli selbst;) –

1
  • nie Hosting nur Mitbenutzung, verwenden mindestens verwalteten Server/halten das System auf den neuesten Stand
  • Überprüfen Sie Ihre php.ini für Sicherheitsfragen (die Sie googeln können)
  • Überprüfen Sie Ihre Apache/nginx/... configs für Überschreibungen
  • nie mit dem Server unverschlüsselt kommunizieren (Verwendung SFTP, SSH, ...)
  • nie externe Werte vertrauen (auch von Plätzchen), immer entkommen/cast jene
  • Fi lter Benutzereingabe (Entfernen Zeilenumbrüche, 0x00 Zeichen, Tags, ... wo unerwünschte)
  • Überprüfen Sie alle möglicherweise vorhandenen Benutzerkonten für den Server/Datenbank/...
  • Überprüfen Sie, ob alle Dienste als den richtigen Benutzer ausgeführt
  • Datei prüfen (schreiben/ausführen) Berechtigungen in Ihrem Web-Ordner
  • alles, was Sie auf der Website zeigen, Flüchten, nicht einmal die Datenbank Daten vertrauen, sicher zu sein in irgendeiner Weise
  • Wenn Sie 3rd-Party-Software verwenden, halten Sie Ausschau für Sicherheitsratschläge
  • installieren Sie den Server neu, möglicherweise wurdest du wurdest
  • Verwenden vorbereitete Anweisungen

Das ist es, hart) Dies wird Ihre Sicherheit eine Menge, aber erfahrene Angreifer verbessern.

Verwandte Themen