Frage:
Sollten Webanwendungen, auf die nur über ein LAN zugegriffen werden kann, denselben Sicherheitsstandards unterliegen wie öffentlich zugängliche Websites?
Nzall
2017-03-14 15:15:55 UTC
view on stackexchange narkive permalink

Viele Sicherheitsmaßnahmen sollen vor feindlichen Benutzern schützen, die die Software missbrauchen oder Zugriff auf Inhalte erhalten möchten, für die sie keine Zugriffsberechtigung haben. Dinge wie CSRF-Schutz, SQLi-Schutz, TLS und viele andere Sicherheitsfunktionen schützen hauptsächlich vor böswilligen Benutzern. Was aber, wenn allen Benutzern vertraut werden kann?

Angenommen, Sie haben eine vollständig interne Webanwendung, die nur im Intranet des Unternehmens ausgeführt wird und von außen niemals zugänglich ist. Angenommen, allen internen Benutzern kann vertraut werden, es gibt keine externen Benutzer und die Daten in der Anwendung sind für Angreifer nicht von großem Nutzen. Dies bedeutet, dass das Bedrohungsmodell sehr begrenzt ist und nicht viele vertrauliche Daten vorliegen.

Angesichts dieser Details scheinen einige Maßnahmen wie der TLS- und XSS-Schutz nicht so wichtig zu sein. Schließlich besteht nur ein sehr geringes Risiko, dass Angreifer den Datenverkehr abfangen, und den Benutzern kann vertraut werden, dass sie keine XSS-Nutzdaten eingeben. Wäre es in diesem Fall immer noch sinnvoll, Sicherheitsmaßnahmen gegen das Abfangen von Datenverkehr oder böswillige Benutzer zu implementieren?

Es ist möglich, XSS-Angriffe auch für interne Websites durchzuführen, bei denen der Angreifer keinen Zugriff auf die angegriffene Website hat.Ja, es ist möglicherweise schwieriger, einen Angriff zu erstellen, ohne ihn testen zu können, aber für Standard- oder Open-Source-Anwendungen ist dies möglicherweise nicht so schwierig.
Sie vertrauen also darauf, dass alle Ihre internen Benutzer niemals gehackt werden und niemals Malware abfangen?
"Allen internen Benutzern kann vertraut werden" - nein, das können sie nicht.Benutzer sind unendlich dumm und können auf Social-Engineering-Angriffe hereinfallen.siehe z.B.Angriffe, bei denen Benutzer dazu verleitet werden, Inhalte in JavaScript-Konsolen einzufügen.
** Sie können nicht allen Benutzern vertrauen. **
Ich muss nicht in der Lage sein, Ihr Auto zu stehlen, wenn ich es nur in Brand setzen wollte.
@SeanBoddy Ich denke, es würde ausreichen, jemandem eine Streichholzschachtel mit "Bugfix" per E-Mail zu schicken.
"Die Daten in der Anwendung sind für Angreifer nicht sehr nützlich." Alle anderen rufen bereits die Probleme mit Ihren anderen Annahmen hervor, aber diese ist auch ziemlich groß.Wenn Sie * irgendwelche * Anmeldeinformationen im System haben, können Sie so ziemlich kategorisch annehmen, dass dies falsch ist.(Sie können sich als Benutzer ausgeben, indem sie sie erfassen.) Möglicherweise unterschätzen Sie auch den Wert von Informationen für einen Angreifer.Ich würde annehmen, dass dies * nicht * der Fall ist, es sei denn, es handelt sich um eine vollständig statische HTML-Site, aber Ihre Frage lautet "Webanwendung", was bedeutet, dass dies nicht der Fall ist.
Im Allgemeinen muss Sicherheit kosteneffizient sein und das Budget überschreiten.Meistens ist das Unternehmen nicht groß genug, um sich darum zu kümmern, oder bereit, das Geld zu verschwenden.Immerhin gibt es Protokolle, und wenn der Zugriff auf Computer an Benutzerkonten gebunden ist und sich jeder abmeldet, wenn er inaktiv ist, kann niemand ein Verbrechen ohne Beweise begehen, was den Reiz der erstmaligen Begehung zunichte macht.
@MichaelHampton ** Nachtrag: Sie können * keinem * Benutzer vertrauen.Nicht einmal du selbst. **
Eine der von Ihnen erwähnten Arten von Angriffen, CSRF, ist für eine böswillige Internetseite, die auf Ihren LAN- / Intranetseiten ausgeführt wird, trivial.
@jpmc26-Anmeldeinformationen werden über jedes System verwaltet, das der Client für sein Verwaltungssystem für Netzwerkanmeldeinformationen verwendet.Alle anderen Daten beziehen sich auf die Build-Automatisierung und die kontinuierliche Bereitstellung, aber selbst dann sind es reine Metadaten, die erforderlich sind, um zu wissen, was, wo und wie sie erstellt oder bereitgestellt werden.Es ist sehr wenig wert, diese Metadaten zu kennen, denn selbst wenn Sie es wissen, können Sie immer noch nicht viel damit anfangen.
Fünf antworten:
iwaseatenbyagrue
2017-03-14 15:39:15 UTC
view on stackexchange narkive permalink

Ja. Absolut ja.

Ihre Annahmen zu Ihrem internen Netzwerk haben Probleme:

  • Sie gehen davon aus, dass kein Angreifer jemals die Kontrolle über ein Gerät in Ihrem Netzwerk erlangen würde. Dies ist eine schlechte Annahme (siehe) http://www.verizonenterprise.com/verizon-insights-lab/dbir/, https://www.fireeye.com/current-threats/annual-threat-report/mtrends .html). Angreifer werden einige Zeit in Anspruch nehmen, um in einem Netzwerk Fuß zu fassen, und es gibt einen kommerziellen Marktplatz für den Kauf kompromittierter Hosts in bestimmten Unternehmen.
  • Sie gehen davon aus, dass nur Benutzer Zugriff haben, aber was ist mit Dritten wie Managed Service Providern, Auftragnehmern und Zeitarbeitskräften? Was passiert auch, wenn jemand in WLAN einbricht? Oder Sie erhalten Zugriff auf einen kabelgebundenen Port (z. B. einen pwnplug)

Ist es effizienter, einen einzigen Standard zu haben, der überall gilt?

Möglicherweise ist es hilfreich, Googles Artikel über BeyondCorp zu lesen, https://static.googleusercontent.com/media/research.google.com/de//pubs/archive/44860.pdf.

Das Tl; dr ist, dass Sie in ihrer Konzeption des Netzwerks Aussagen über Benutzer und Geräte machen, aber nicht über das Netzwerk - hauptsächlich, weil es einfacher ist anzunehmen, dass alle Netzwerke feindlich sind, als es ist Nehmen wir an, einige sind es und andere nicht (zum Teil könnten die Kosten für die Fehlklassifizierung eines Netzwerks als sicher sehr, sehr hoch sein).

Ein möglicher Grund für einen solchen Ansatz ist, dass die Snowden-Lecks zeigten, dass frühere Annahmen über die Sicherheit ihres Netzwerks falsch waren - die NSA tippte auf Glasfaser, um (zu der Zeit unverschlüsselt) Inter- DC-Datenflüsse.

Ich denke, die grundlegende Antwort auf Ihre Frage lautet, dass sich der Grenz- / Abgrenzungspunkt für die Sicherheit nicht mehr am Rand Ihres Netzwerks befindet, sondern an den Geräten in Ihrem Netzwerk. Daher ist es sowohl einfacher als auch realistischer, sich darauf zu konzentrieren, Kategorien von Angriffen / Missbrauch zu verhindern, als zu berücksichtigen, dass ein Netzwerk „besser“ als ein anderes ist. Möglicherweise benötigen Sie in einer internen DMZ keine so starken Kontrollen wie in einer externen, aber die Annahme, dass Ihr Netzwerk sicher ist, ist eine gefährliche Annahme.

Und wenn Sie sagen "Mein internes Netzwerk ist so sicher, dass all diese Probleme bereits zuverlässig behandelt werden", dann befinden Sie sich eindeutig in einem Bereich, in dem eine erhöhte Sicherheit gerechtfertigt ist und Sie daher keine Anforderungen verwerfen sollten!
Die Annahme, dass allen Benutzern vertraut wird, kann auch schnell scheitern, wenn ein ausreichender finanzieller Anreiz oder eine Beschwerde gegen das Unternehmen vorliegt - was so einfach sein kann wie eine wahrgenommene Ungerechtigkeit bei der Werbung.
Für Cloud-Systeme bietet Google einen Dienst namens "Identity-Aware Proxy" an, der hier von Interesse sein könnte (im Grunde eine BeyondCorp-Implementierung für die Massen).Offenlegung: Ich arbeite für Google und werde diesen Service in naher Zukunft SRE'ing.
Steffen Ullrich
2017-03-14 15:38:22 UTC
view on stackexchange narkive permalink

Die Angriffsfläche im internen und im externen Netzwerk ist unterschiedlich, was bedeutet, dass unterschiedliche Sicherheitsmaßnahmen angemessen sind. Dies bedeutet nicht, dass die Angriffsfläche im internen Netzwerk kleiner ist, da Benutzer auf der einen Seite normalerweise vertrauenswürdiger sind und auf der anderen Seite kritischere Daten vorhanden sind, auf die häufig von innen leicht zugegriffen werden kann.

Auch wenn allen Benutzern vertraut werden kann, ist es dennoch möglich, dass ihr System mit Malware infiziert wird. Abgesehen davon können viele der von Ihnen erwähnten Angriffe wie CSRF, SQLi oder XSS Cross-Origin ausgeführt werden, dh es reicht aus, wenn ein interner Benutzer eine externe Website besucht, die dann den internen Browser als Trampolin verwendet, um interne Angriffe durchzuführen Systeme.

Zusammenfassend: Auch für interne Netzwerke ist ein angemessener Schutz erforderlich, selbst wenn allen Benutzern vertraut werden kann. Dies gilt insbesondere dann, wenn über dasselbe System sowohl auf das interne Netzwerk als auch auf das Internet zugegriffen werden kann, da dies Cross-Origin-Angriffe aus dem Internet auf interne Systeme ermöglicht.

CSRF ist explizit ein Angriff einer böswilligen externen Seite auf einen ahnungslosen Benutzer.(Siehe Teil "CROSS SITE") Eine externe Seite wird vom Benutzer besucht, einschließlich JS, die vom Browser des Benutzers eine böswillige Anfrage an Ihre interne Anwendung sendet, und diese Anfrage enthält eine "; DROP DB;" ...
Waddles
2017-03-15 11:11:20 UTC
view on stackexchange narkive permalink

Ich würde nein sagen, hauptsächlich aufgrund dieses Zitats aus dem ursprünglich angegebenen Beitrag:

Es gibt keine externen Benutzer und die Daten in der Anwendung sind für Angreifer nicht sehr nützlich

Die wichtigste Überlegung ist, dass feindliche Akteure auch in einem internen Netzwerk Systeme kompromittieren können, mit denen sie dann auf Ihre Webanwendung zugreifen können.

Ihr Bedrohungsmodell I. Denken ist hier immer noch eine wichtige Überlegung, und trotz der Bedenken, dass in eine Anwendung eingebrochen werden kann, lohnt es sich möglicherweise nicht, HSTS zu implementieren, wenn Sie nur Joes Urlaubsplan und Sallys Partyeinladungen schützen. HPKP- und XSS-Filterung usw.

Die meiste Malware, die lokale Computer infiziert, ist wahrscheinlich nicht dafür ausgelegt, einen Netzwerkscan durchzuführen und Intranet-Webserver zu finden. Diejenigen, die es sind, werden wahrscheinlich nach bekannten Paketen suchen (obwohl einige nur nach gebräuchlichen Namen suchen und jede Form sprengen, die sie mit bekannten Exploits finden können).

Dies ähnelt der Sicherheit durch Dunkelheit und ist definitiv eine schlechte Praxis. In vielen Szenarien überwiegen jedoch die praktischen Bedenken die Ideale. Ich würde dennoch mindestens ein selbstsigniertes Zertifikat und HTTPS / TLS empfehlen.

Ein System wie dieses kann einen gezielten Angriff nicht überleben, aber da Sie die meisten eliminiert haben Häufige Angriffsfläche (öffentlicher Internetzugang), der Großteil des automatisierten Missbrauchs findet Ihre Website nicht.

jcaron
2017-03-16 05:58:24 UTC
view on stackexchange narkive permalink

Einige Ergänzungen zu den hervorragenden Antworten:

  • Viele Dinge, die Sie zum Schutz vor XSS tun sollten (Daten ordnungsgemäß codieren, wenn Sie sie meistens anzeigen), sind ebenfalls erforderlich um eine Vielzahl von Fehlern zu vermeiden, die durch vollkommen unschuldige Eingaben ausgelöst werden können (Sie möchten nicht, dass ein Textfeld unterbrochen wird, nur weil es einen < oder & im enthält falscher Ort). Gleiches gilt für SQL-Injektionen (Sie möchten nicht, dass eine Abfrage Juste bricht, da ein Feld ein Anführungszeichen enthält). Sie müssen diese Dinge also trotzdem tun, auch wenn dies nicht der Sicherheit dient.

  • Es besteht eine starke Tendenz, dass Browser Nicht-TLS-Websites immer restriktiver werden der Punkt, dass sie in naher Zukunft ziemlich unbrauchbar werden könnten (oder zumindest so viele Warnungen anzeigen, dass es Ihre Benutzer erschreckt).

  • auch, selbst wenn Sie es sind Wenn Sie nur interne Benutzer in einem internen Netzwerk ansprechen und ihnen volles Vertrauen schenken kann (siehe andere Antworten aus Gründen, warum sie dies nicht tun sollten), können sich die Dinge in Zukunft ändern. Möglicherweise müssen Sie (Teile) der Website für externe Benutzer (Partner, Lieferanten, Kunden ...) öffnen. Es ist viel einfacher, bei der ersten Entwicklung die richtigen Maßnahmen zu ergreifen, als die Sicherheit zu einem späteren Zeitpunkt nachzurüsten.

Tom
2017-03-16 13:12:45 UTC
view on stackexchange narkive permalink

Erstellen Sie ein Bedrohungsmodell. Abhängig von den gespeicherten Daten und den von Ihnen identifizierten Bedrohungen stellen Sie möglicherweise fest, dass Sie unterschiedliche Sicherheitsstandards benötigen oder dass es unter allen Umständen keinen entscheidenden Unterschied gibt.

Die allgemeine Beantwortung der Frage kann dazu führen Art und Weise, abhängig von den getroffenen Annahmen, wie Sie bereits in den gegebenen Antworten sehen können. Letztendlich ist LAN oder öffentliches Internet jedoch nur eine Variable in der Menge, und Sie können x = y + z nicht mit nur einer der angegebenen Variablen lösen.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...