PHP - Sicherheit was ist der beste Weg?

7

Was ist der beste Weg, um eine Intranet-Website zu sichern, die mit PHP von Angriffen von außen entwickelt wurde?

    
jerichorivera 25.09.2008, 08:34
quelle

6 Antworten

11

Das ist eine erstaunlich nachdenklich stimmende Frage, und ich bin überrascht, dass Sie keine besseren Antworten erhalten haben.

Zusammenfassung

Alles, was Sie für eine externe Anwendung tun würden, und dann einige.

Denkprozess

Wenn ich Sie richtig verstehe, dann stellen Sie eine Frage, die sich sehr wenige Entwickler stellen. Die meisten Unternehmen haben eine tiefe Tiefenverteidigung, und sobald ein Angreifer da ist, ist er drin. Offensichtlich wollen Sie es auf eine Stufe bringen.

Also, über welche Art von Angriff denken wir nach? Wenn ich der Angreifer bin und Ihre Intranet-Anwendung angreife, muss ich irgendwie Zugang zu Ihrem Netzwerk haben. Dies ist möglicherweise nicht so schwierig, wie es sich anhört - ich könnte versuchen, E-Mails an Einzelpersonen in Ihrer Organisation zu adressieren, die entweder Malware-Anhänge oder Links zu Websites enthalten, die Malware installieren, um einen Trojaner auf einem internen Computer installieren zu lassen.

Sobald ich das getan habe (und die Kontrolle über einen internen PC übernommen habe), werde ich alle die gleichen Angriffe versuchen, die ich gegen irgendeine Internetanwendung versuchen würde.

Aber das ist nicht das Ende der Geschichte. Ich habe mehr Optionen: Wenn ich einen der PCs meines Benutzers habe, kann ich vielleicht einen Keylogger verwenden, um Benutzernamen und Passwörter zu sammeln, und auch alle E-Mails nach Namen und Telefonnummern durchsuchen.
Ausgerüstet mit diesen kann ich mich möglicherweise direkt in Ihre Anwendung einloggen. Ich kann sogar einen Admin-Benutzernamen / ein Passwort lernen. Selbst wenn ich es nicht tue, gibt mir eine Liste von Namen und Telefonnummern zusammen mit einem Gespür für Firmenjargon eine gute Chance, meinen Weg zu einem breiteren Zugang innerhalb Ihres Unternehmens sozial zu gestalten.

Empfehlungen

  • In erster Linie vor allen technischen Lösungen: SCHAFFEN SIE IHRE ANWENDER ZUR SICHERHEIT

Die häufigsten Antworten zum Sichern einer Web-App:

  • Verwenden Sie die Multi-Faktor-Authentifizierung
    • z.B. Benutzername / Passwort und eine Art Pseudozufallszahlen-Gadget.
  • Sanitize alle deine Eingabe.
    • zum Schutz vor Cross-Site-Scripting und SQL-Injection.
  • Verwenden Sie SSL (auch bekannt als HTTPS).
    • das ist ein Problem, das eingerichtet werden muss (EDIT: eigentlich verbessert sich das), aber es sorgt für viel mehr Sicherheit.
  • Befolgen Sie die Prinzipien von "Trennung der Aufgaben" und "Least Privilege"
    • Mit anderen Worten, indem Sie sicherstellen, dass alle Benutzer nur die Berechtigungen haben, die sie benötigen, um ihre Aufgaben zu erledigen (und niemand sonst Jobs), stellen Sie sicher, dass sie die absolute minimale Fähigkeit haben, Schaden anzurichten.
AJ. 25.09.2008, 13:43
quelle
9

Wenn es in einem internen Netzwerk ist, warum ist es dann sogar möglich, von außen auf die App zuzugreifen? Firewall-Regeln sollten mindestens vorhanden sein.

    
ZombieSheep 25.09.2008 08:36
quelle
1

Der beste Weg? Deaktivieren Sie den direkten externen Zugriff!

Wenn Mitarbeiter brauchen , um sie zu verwenden (wie eine Extranet-style-Site), sollten Sie sie VPN in machen. Durch VPN haben Sie viel mehr Möglichkeiten der Authentifizierung und die meisten von ihnen sind sehr viel mehr sicherer als Ihren Intranet-Server über das Internet zugänglich zu machen.

Eine weitere Option, die nur funktioniert, wenn die Daten öffentlich-sicher sind, besteht darin, Ihren Intranet-Server so zu planen, dass die Daten auf einen anderen extern zugänglichen Server verschoben werden. Ich sage Push, weil Sie wirklich nicht möchten, dass dieser Server Zugriff auf Ihr Netzwerk hat. Lassen Sie Ihren Netzwerkserver die Arbeit machen.

    
Oli 25.09.2008 08:41
quelle
1

Der beste Weg, um es zu sichern? Verbinden Sie es nicht mit einem Netzwerk. Machen Sie Ihre Benutzer physisch in einen bewachten Raum mit einer einzigen Konsole, auf der Mosaic ausgeführt wird.

Oh, Sie wollen, dass es einfach zu bedienen ist?

  1. Überprüfen Sie immer jede einzelne Eingabe, die von einer nicht vertrauenswürdigen Quelle stammen kann.
  2. Vertraue keiner Datenquelle.
  3. Beim Speichern von Passwörtern speichert IMMER einen verschlüsselten Hash des Passworts.
  4. Beim Speichern von Passwörtern speichert NIE Passwörter direkt.
  5. Sammeln oder speichern Sie niemals Daten, die Sie nicht wirklich benötigen.
  6. Lassen Sie sich niemals dazu verleiten, zusätzliche Glocken & Amp; pfeift.
  7. Lies alles, was Bruce Schneier zu Sicherheit und Verschlüsselung geschrieben hat.

Wenn Sie diese einfachen Regeln vergessen, können Sie Ihre Anwendung überall auf den Titelseiten von Zeitungen finden, wie Yahoo Mail.

    
Craig Trader 25.09.2008 08:47
quelle
1

Ich würde @Oli wiederholen und wenn möglich die VPN-Methode bevorzugen. Wenn Sie jedoch aus irgendeinem Grund einen willkürlicheren Zugriff benötigen, sollten Sie SSL verwenden, um die Authentifizierung zu sichern. Zusätzlich zur Passwortauthentifizierung / IP-Adressauthentifizierung lohnt es sich, SSL mit clientseitigen Zertifikaten zu verwenden.

    
reefnet_alex 25.09.2008 12:51
quelle
0

Sie konnten den Zugriff von internen IPs nur von der php App selbst erlauben. Ignorieren Sie auch nicht die üblichen Sicherheitsmaßnahmen und Best Practices. Eingabeüberprüfung und Ausgabecodierung (nur Whitelisting), Benutzerkonten mit Hash-Passwörtern usw.

    
Svet 25.09.2008 08:40
quelle

Tags und Links