Coders Conquer Security: Share & Learn Series - Unrestricted File Uploads

Veröffentlicht Jan 10, 2019
von Jaap Karan Singh
FALLSTUDIE

Coders Conquer Security: Share & Learn Series - Unrestricted File Uploads

Veröffentlicht Jan 10, 2019
von Jaap Karan Singh
Ressource anzeigen
Ressource anzeigen

Das Problem der unbeschränkten Dateiuploads ist kein Angriff an sich, sondern eine häufige Situation oder ein Zustand, der Angreifern einen einfachen Zugriff auf Anwendungen und Netzwerkressourcen ermöglicht. Man kann es sich in etwa so vorstellen, als würde man in nasser Kleidung in der Kälte herumlaufen. Das macht Sie zwar nicht unbedingt krank, aber es senkt Ihre Widerstandskraft so weit, dass jeder opportunistische Virus die körpereigenen Abwehrkräfte leicht überwältigen kann.

In der Cybersicherheit können Angreifer schnell jede Anwendung oder jedes Programm ausnutzen, das uneingeschränkte Datei-Uploads unterstützen darf. Und die Folgen können verheerend sein. Clevere Angreifer können ihren uneingeschränkten Zugriff nutzen, um bösartige Dateien hochzuladen, Skripte einzurichten, um Anmeldeinformationen zu stehlen oder tiefere Angriffe auf ein Netzwerk zu starten, indem sie die eigenen Berechtigungen einer Anwendung nutzen. Selbst ein relativ unbedarfter Angreifer könnte diese Art von uneingeschränktem Zugriff nutzen, um Denial-of-Service-Angriffe durchzuführen oder eine Anwendung zum Absturz zu bringen.

Glücklicherweise gibt es eine Reihe von Möglichkeiten, das Problem der unbeschränkten Dateiuploads zu überwinden, die Möchtegern-Angreifer in die Schranken weisen. Zu diesem Zweck werden wir drei Schlüsselaspekte von Unrestricted File Uploads besprechen:

  • Wie sie funktionieren
  • Warum sie so gefährlich sind
  • Wie Sie Abwehrmaßnahmen ergreifen können, um sie zu stoppen.

Wie nutzen Angreifer unbeschränkte Dateiuploads aus?

Es gibt viele Gründe, warum Websites der Öffentlichkeit das Hochladen von Dateien erlauben wollen. Vielleicht sucht ein Unternehmen nach neuen Mitarbeitern und möchte ihnen erlauben, ihren Lebenslauf als Teil des Bewerbungsprozesses hochzuladen. Banken könnten ihre Kunden dazu ermutigen, wichtige Papiere zu Hause auszufüllen, z. B. bei der Beantragung eines Kredits oder eines neuen Kontos. Tourismus- oder Social-Media-Seiten können Benutzer dazu einladen, ihre Fotos hochzuladen, um sie mit anderen zu teilen.

Es gibt viele triftige Gründe, Datei-Uploads zuzulassen. Und standardmäßig werden die meisten neuen Anwendungen wahrscheinlich jede Art von Dateiupload ohne Einschränkungen zulassen. Das Problem beginnt, wenn ein potenzieller Angreifer feststellt, dass es keine Einschränkungen für diese Uploads gibt.

Da es keine Einschränkungen für Uploads gibt, sind Websites drei Arten von Angriffen ausgesetzt. Beginnend mit der am wenigsten ausgefeilten Variante kann ein böswilliger Benutzer einfach riesige Dateien hochladen, z. B. gezippte Archive mit Hunderten von Gigabyte an Informationen. Dies drosselt nicht nur die Bandbreite, sondern kann auch den der Anwendung zugewiesenen Speicherbereich überlasten.

Die nächste Stufe auf der berüchtigten Leiter ist ein Benutzer, der eine bösartige Datei wie einen Virus oder sogar etwas noch Unheimlicheres wie Ransomware hochlädt. Das ist in etwa so wie der alte Aberglaube, dass man einen Vampir ausdrücklich in sein Haus einladen muss. Wenn Sie ein Schild aufhängen, auf dem steht, dass jeder ungehindert eintreten kann, ist das genau so, als ob Sie ungehindert Dateien hochladen könnten. Sie haben keine Kontrolle mehr darüber, was durch Ihre Tür kommt, und Sie sollten wahrscheinlich damit rechnen, dass nicht jeder Besucher oder jede Datei gutartig sein wird. Einige von ihnen könnten Monster sein.

Schließlich kann ein geschickter Angreifer uneingeschränkte Uploads nutzen, um in einem Netzwerk für tiefergehende Angriffe Fuß zu fassen. Da es keine Beschränkungen dafür gibt, was jemand hochladen kann, kann ein Angreifer seine eigene Web-Shell durch diesen Prozess schicken. Danach kann er Befehle in seine Shell senden, und diese Befehle werden auf dem Server mit der gleichen Berechtigungsstufe wie die Anwendung ausgeführt.

Warum ist der uneingeschränkte Dateizugriff so gefährlich?

Die Bereitstellung einer Anwendung mit uneingeschränktem Dateizugriff ist zwar nicht sofort gefährlich, aber es ist im Grunde so, als ob Sie eine Lücke in Ihrer Cybersicherheitsverteidigung öffnen und jemanden einladen, Ihr Unternehmen anzugreifen. Früher oder später wird jemand darauf reagieren.

Auf der einfachsten Ebene brauchen Angreifer nicht einmal viel Geschick, um Schaden anzurichten. Es reicht schon aus, extrem große Dateien zu komprimieren und hochzuladen, um berechtigten Benutzern den Dienst zu verweigern. Mit der Zeit kann es sogar die Anwendung oder eine ganze Website zum Absturz bringen, je nachdem, wie die App programmiert und vernetzt ist.

Uneingeschränkter Dateizugriff kann auch ein Loch durch Netzwerk-Firewalls und andere Schutzmaßnahmen öffnen. Es spielt keine Rolle, ob Sie einen Scanner haben, der Ihre eingehenden E-Mails oder die Web-Browsing-Aktivitäten Ihrer Mitarbeiter überprüft, wenn Sie einen Weg für Angreifer geschaffen haben, Malware direkt in Ihr Kernnetzwerk zu laden. Die Malware könnte die Anwendung oder sogar den Server, auf dem sie ausgeführt wird, zum Absturz bringen, obwohl dies wahrscheinlich das bestmögliche Ergebnis ist. Im schlimmsten Fall kann ein wirklich bösartiges Programm wie Ransomware den kompromittierten Server nutzen, um sich auf das gesamte Netzwerk auszubreiten.

Geschicktere Angreifer werden wahrscheinlich nicht so offensichtlich sein, wenn sie eine Anwendung mit uneingeschränktem Dateizugriff ausnutzen. Stattdessen können sie die Schwachstelle nutzen, um die Anwendung zu kompromittieren und auf diese Weise tiefer in das Netzwerk einzudringen, wobei sie sich langsam bewegen und versuchen, eine Entdeckung zu vermeiden. Dies kann geschehen, indem eine Web-Shell oder eine andere Datei vom Typ .exe hochgeladen wird und dann Befehle direkt an diese gesendet werden, sobald sie angekommen ist. Alles, was der Benutzer über seine Shell ausführt, wird normalerweise vom Server ausgeführt, und zwar unter Verwendung der Berechtigungsstufen, die für die Anwendung, die sie hostet, festgelegt sind. Für den Server kommen diese Befehle von der Anwendung und werden wahrscheinlich nicht weiter geprüft oder untersucht.

All das macht die Schwachstelle mit uneingeschränktem Dateizugriff zu einer der gefährlichsten, die Sie in Ihrem Netzwerk haben. Es ist wahrscheinlich nicht die Frage, ob sie ein Problem verursachen wird, sondern wann.

Wie beseitige ich die Sicherheitslücke "Uneingeschränkter Dateizugriff"?

Wie lösen Sie also das Problem des unbeschränkten Dateizugriffs? Der einfachste Weg ist, einfach eine oder mehrere Einschränkungen für die Dateitypen, die hochgeladen werden können, hinzuzufügen. Diese können, wenn Sie wollen, dem Benutzer mitgeteilt werden, z. B. dass die Site nur Word- oder Textdateien akzeptiert, oder im Falle einer Bildfreigabe-Site nur .jpgs oder .gifs. Im Backend müssen Sie eine Whitelist mit akzeptablen Dateierweiterungen erstellen und dann alles andere verweigern. Auch die maximale Länge von Dateinamen sollte eingeschränkt werden. Wenn eine Datei Sonderzeichen im Namen hat, die auf den Versuch hinweisen könnten, einen ausführbaren Befehl auszulösen, sollte sie ebenfalls abgelehnt werden.

Zusätzlich zu den Dateitypen und Benennungsregeln sollten Sie auch die maximale Größe der einzelnen Dateien begrenzen. Die maximale Größe sollte vernünftig und angemessen für den Dateityp sein, den die Anwendung sammeln soll. Das könnte eine Obergrenze von 10 Megabyte oder so für Word-Dateien bedeuten und etwas größer, vielleicht um die 50 Megabyte, für grafische Dateien. Es ist auch möglich, Regeln für die Mindestdateigröße festzulegen, aber nur, wenn der Größenbereich der erwarteten Dateien bekannt ist, was der Fall sein könnte, wenn Benutzer ein bestimmtes Formular ausfüllen und hochladen.

Angreifer können immer noch einen geschickten Weg finden, eine Shell oder ein anderes potenziell bösartiges Programm an den Beschränkungen für Dateityp und -größe vorbei zu schleusen. Um dies zu kompensieren, sollten gesammelte Dateien immer in einem privaten Verzeichnis ohne Ausführungsberechtigung gespeichert werden. Für zusätzliche Sicherheit können Dateien vom System in eine Reihe von Zufallszeichen umbenannt werden. Dies würde verhindern, dass unbefugte Benutzer von außerhalb des Netzwerks nach dem Speicherort der hochgeladenen Datei suchen, wodurch sie möglicherweise einen Einblick in Ihr Netzwerk erhalten. Wenn Sie das tun, müssen Sie jedoch wahrscheinlich eine Tabelle einrichten und pflegen, die die zufälligen Dateinamen mit ihren ursprünglichen Bezeichnungen verknüpft.

Schließlich sollte alles, was über einen Upload im Netzwerk ankommt, von den Abwehrprogrammen, die das Unternehmen für diese Aufgaben verwendet, auf Malware und Viren gescannt werden. Dies fängt vielleicht nicht alles ab, ist aber eine wichtige Sicherheitsebene, mit der bis zu 90 Prozent oder mehr der häufigsten bösartigen Dateien, die versuchen, über einen Dateiupload einzudringen, erkannt werden können.

Einschränkung des Problems des unbeschränkten Dateiuploads

Sobald mehrere Sicherheitsebenen im Backend eingerichtet sind, ist das Problem des unbeschränkten Dateiuploads kein Problem mehr. Sie beseitigen das Problem im Grunde, indem Sie Ihre Dateiuploads einschränken, sodass sie nicht mehr uneingeschränkt sind. Nur gute Dateien werden zugelassen, während alle Vampire und Malware außen vor bleiben.

Als weitere Lektüre können Sie einen Blick auf das OWASP Cheat Sheet"Unrestricted File Upload Prevention" werfen, das einige der häufigsten Probleme umreißt, wenn diese Art von Situation in einem Netzwerk zugelassen wird. Sie können Ihr neu erworbenes Verteidigungswissen auch mit dem kostenlosen Showcase der Plattform Secure Code Warrior auf die Probe stellen, die Cybersecurity-Teams zu den ultimativen Cyberkriegern ausbildet. Um mehr über das Besiegen dieser Schwachstelle und einer Schurkengalerie anderer Bedrohungen zu erfahren, besuchen Sie den BlogSecure Code Warrior .

Denken Sie, dass Sie jetzt bereit sind, diese Schwachstelle zu bekämpfen? Begeben Sie sich auf das Schlachtfeld und testen Sie Ihre Fähigkeiten:

Ressource anzeigen
Ressource anzeigen

Autor

Jaap Karan Singh

Sie wollen mehr?

Tauchen Sie ein in unsere neuesten Erkenntnisse über sichere Kodierung im Blog.

Unsere umfangreiche Ressourcenbibliothek zielt darauf ab, die menschliche Herangehensweise an eine sichere Weiterbildung im Bereich der Programmierung zu stärken.

Blog ansehen
Sie wollen mehr?

Holen Sie sich die neuesten Forschungsergebnisse zur entwicklergesteuerten Sicherheit

Unsere umfangreiche Ressourcenbibliothek ist voll von hilfreichen Ressourcen, von Whitepapers bis hin zu Webinaren, die Ihnen den Einstieg in die entwicklungsorientierte sichere Programmierung erleichtern. Erforschen Sie sie jetzt.

Ressourcendrehscheibe

Coders Conquer Security: Share & Learn Series - Unrestricted File Uploads

Veröffentlicht Jan 10, 2019
Von Jaap Karan Singh

Das Problem der unbeschränkten Dateiuploads ist kein Angriff an sich, sondern eine häufige Situation oder ein Zustand, der Angreifern einen einfachen Zugriff auf Anwendungen und Netzwerkressourcen ermöglicht. Man kann es sich in etwa so vorstellen, als würde man in nasser Kleidung in der Kälte herumlaufen. Das macht Sie zwar nicht unbedingt krank, aber es senkt Ihre Widerstandskraft so weit, dass jeder opportunistische Virus die körpereigenen Abwehrkräfte leicht überwältigen kann.

In der Cybersicherheit können Angreifer schnell jede Anwendung oder jedes Programm ausnutzen, das uneingeschränkte Datei-Uploads unterstützen darf. Und die Folgen können verheerend sein. Clevere Angreifer können ihren uneingeschränkten Zugriff nutzen, um bösartige Dateien hochzuladen, Skripte einzurichten, um Anmeldeinformationen zu stehlen oder tiefere Angriffe auf ein Netzwerk zu starten, indem sie die eigenen Berechtigungen einer Anwendung nutzen. Selbst ein relativ unbedarfter Angreifer könnte diese Art von uneingeschränktem Zugriff nutzen, um Denial-of-Service-Angriffe durchzuführen oder eine Anwendung zum Absturz zu bringen.

Glücklicherweise gibt es eine Reihe von Möglichkeiten, das Problem der unbeschränkten Dateiuploads zu überwinden, die Möchtegern-Angreifer in die Schranken weisen. Zu diesem Zweck werden wir drei Schlüsselaspekte von Unrestricted File Uploads besprechen:

  • Wie sie funktionieren
  • Warum sie so gefährlich sind
  • Wie Sie Abwehrmaßnahmen ergreifen können, um sie zu stoppen.

Wie nutzen Angreifer unbeschränkte Dateiuploads aus?

Es gibt viele Gründe, warum Websites der Öffentlichkeit das Hochladen von Dateien erlauben wollen. Vielleicht sucht ein Unternehmen nach neuen Mitarbeitern und möchte ihnen erlauben, ihren Lebenslauf als Teil des Bewerbungsprozesses hochzuladen. Banken könnten ihre Kunden dazu ermutigen, wichtige Papiere zu Hause auszufüllen, z. B. bei der Beantragung eines Kredits oder eines neuen Kontos. Tourismus- oder Social-Media-Seiten können Benutzer dazu einladen, ihre Fotos hochzuladen, um sie mit anderen zu teilen.

Es gibt viele triftige Gründe, Datei-Uploads zuzulassen. Und standardmäßig werden die meisten neuen Anwendungen wahrscheinlich jede Art von Dateiupload ohne Einschränkungen zulassen. Das Problem beginnt, wenn ein potenzieller Angreifer feststellt, dass es keine Einschränkungen für diese Uploads gibt.

Da es keine Einschränkungen für Uploads gibt, sind Websites drei Arten von Angriffen ausgesetzt. Beginnend mit der am wenigsten ausgefeilten Variante kann ein böswilliger Benutzer einfach riesige Dateien hochladen, z. B. gezippte Archive mit Hunderten von Gigabyte an Informationen. Dies drosselt nicht nur die Bandbreite, sondern kann auch den der Anwendung zugewiesenen Speicherbereich überlasten.

Die nächste Stufe auf der berüchtigten Leiter ist ein Benutzer, der eine bösartige Datei wie einen Virus oder sogar etwas noch Unheimlicheres wie Ransomware hochlädt. Das ist in etwa so wie der alte Aberglaube, dass man einen Vampir ausdrücklich in sein Haus einladen muss. Wenn Sie ein Schild aufhängen, auf dem steht, dass jeder ungehindert eintreten kann, ist das genau so, als ob Sie ungehindert Dateien hochladen könnten. Sie haben keine Kontrolle mehr darüber, was durch Ihre Tür kommt, und Sie sollten wahrscheinlich damit rechnen, dass nicht jeder Besucher oder jede Datei gutartig sein wird. Einige von ihnen könnten Monster sein.

Schließlich kann ein geschickter Angreifer uneingeschränkte Uploads nutzen, um in einem Netzwerk für tiefergehende Angriffe Fuß zu fassen. Da es keine Beschränkungen dafür gibt, was jemand hochladen kann, kann ein Angreifer seine eigene Web-Shell durch diesen Prozess schicken. Danach kann er Befehle in seine Shell senden, und diese Befehle werden auf dem Server mit der gleichen Berechtigungsstufe wie die Anwendung ausgeführt.

Warum ist der uneingeschränkte Dateizugriff so gefährlich?

Die Bereitstellung einer Anwendung mit uneingeschränktem Dateizugriff ist zwar nicht sofort gefährlich, aber es ist im Grunde so, als ob Sie eine Lücke in Ihrer Cybersicherheitsverteidigung öffnen und jemanden einladen, Ihr Unternehmen anzugreifen. Früher oder später wird jemand darauf reagieren.

Auf der einfachsten Ebene brauchen Angreifer nicht einmal viel Geschick, um Schaden anzurichten. Es reicht schon aus, extrem große Dateien zu komprimieren und hochzuladen, um berechtigten Benutzern den Dienst zu verweigern. Mit der Zeit kann es sogar die Anwendung oder eine ganze Website zum Absturz bringen, je nachdem, wie die App programmiert und vernetzt ist.

Uneingeschränkter Dateizugriff kann auch ein Loch durch Netzwerk-Firewalls und andere Schutzmaßnahmen öffnen. Es spielt keine Rolle, ob Sie einen Scanner haben, der Ihre eingehenden E-Mails oder die Web-Browsing-Aktivitäten Ihrer Mitarbeiter überprüft, wenn Sie einen Weg für Angreifer geschaffen haben, Malware direkt in Ihr Kernnetzwerk zu laden. Die Malware könnte die Anwendung oder sogar den Server, auf dem sie ausgeführt wird, zum Absturz bringen, obwohl dies wahrscheinlich das bestmögliche Ergebnis ist. Im schlimmsten Fall kann ein wirklich bösartiges Programm wie Ransomware den kompromittierten Server nutzen, um sich auf das gesamte Netzwerk auszubreiten.

Geschicktere Angreifer werden wahrscheinlich nicht so offensichtlich sein, wenn sie eine Anwendung mit uneingeschränktem Dateizugriff ausnutzen. Stattdessen können sie die Schwachstelle nutzen, um die Anwendung zu kompromittieren und auf diese Weise tiefer in das Netzwerk einzudringen, wobei sie sich langsam bewegen und versuchen, eine Entdeckung zu vermeiden. Dies kann geschehen, indem eine Web-Shell oder eine andere Datei vom Typ .exe hochgeladen wird und dann Befehle direkt an diese gesendet werden, sobald sie angekommen ist. Alles, was der Benutzer über seine Shell ausführt, wird normalerweise vom Server ausgeführt, und zwar unter Verwendung der Berechtigungsstufen, die für die Anwendung, die sie hostet, festgelegt sind. Für den Server kommen diese Befehle von der Anwendung und werden wahrscheinlich nicht weiter geprüft oder untersucht.

All das macht die Schwachstelle mit uneingeschränktem Dateizugriff zu einer der gefährlichsten, die Sie in Ihrem Netzwerk haben. Es ist wahrscheinlich nicht die Frage, ob sie ein Problem verursachen wird, sondern wann.

Wie beseitige ich die Sicherheitslücke "Uneingeschränkter Dateizugriff"?

Wie lösen Sie also das Problem des unbeschränkten Dateizugriffs? Der einfachste Weg ist, einfach eine oder mehrere Einschränkungen für die Dateitypen, die hochgeladen werden können, hinzuzufügen. Diese können, wenn Sie wollen, dem Benutzer mitgeteilt werden, z. B. dass die Site nur Word- oder Textdateien akzeptiert, oder im Falle einer Bildfreigabe-Site nur .jpgs oder .gifs. Im Backend müssen Sie eine Whitelist mit akzeptablen Dateierweiterungen erstellen und dann alles andere verweigern. Auch die maximale Länge von Dateinamen sollte eingeschränkt werden. Wenn eine Datei Sonderzeichen im Namen hat, die auf den Versuch hinweisen könnten, einen ausführbaren Befehl auszulösen, sollte sie ebenfalls abgelehnt werden.

Zusätzlich zu den Dateitypen und Benennungsregeln sollten Sie auch die maximale Größe der einzelnen Dateien begrenzen. Die maximale Größe sollte vernünftig und angemessen für den Dateityp sein, den die Anwendung sammeln soll. Das könnte eine Obergrenze von 10 Megabyte oder so für Word-Dateien bedeuten und etwas größer, vielleicht um die 50 Megabyte, für grafische Dateien. Es ist auch möglich, Regeln für die Mindestdateigröße festzulegen, aber nur, wenn der Größenbereich der erwarteten Dateien bekannt ist, was der Fall sein könnte, wenn Benutzer ein bestimmtes Formular ausfüllen und hochladen.

Angreifer können immer noch einen geschickten Weg finden, eine Shell oder ein anderes potenziell bösartiges Programm an den Beschränkungen für Dateityp und -größe vorbei zu schleusen. Um dies zu kompensieren, sollten gesammelte Dateien immer in einem privaten Verzeichnis ohne Ausführungsberechtigung gespeichert werden. Für zusätzliche Sicherheit können Dateien vom System in eine Reihe von Zufallszeichen umbenannt werden. Dies würde verhindern, dass unbefugte Benutzer von außerhalb des Netzwerks nach dem Speicherort der hochgeladenen Datei suchen, wodurch sie möglicherweise einen Einblick in Ihr Netzwerk erhalten. Wenn Sie das tun, müssen Sie jedoch wahrscheinlich eine Tabelle einrichten und pflegen, die die zufälligen Dateinamen mit ihren ursprünglichen Bezeichnungen verknüpft.

Schließlich sollte alles, was über einen Upload im Netzwerk ankommt, von den Abwehrprogrammen, die das Unternehmen für diese Aufgaben verwendet, auf Malware und Viren gescannt werden. Dies fängt vielleicht nicht alles ab, ist aber eine wichtige Sicherheitsebene, mit der bis zu 90 Prozent oder mehr der häufigsten bösartigen Dateien, die versuchen, über einen Dateiupload einzudringen, erkannt werden können.

Einschränkung des Problems des unbeschränkten Dateiuploads

Sobald mehrere Sicherheitsebenen im Backend eingerichtet sind, ist das Problem des unbeschränkten Dateiuploads kein Problem mehr. Sie beseitigen das Problem im Grunde, indem Sie Ihre Dateiuploads einschränken, sodass sie nicht mehr uneingeschränkt sind. Nur gute Dateien werden zugelassen, während alle Vampire und Malware außen vor bleiben.

Als weitere Lektüre können Sie einen Blick auf das OWASP Cheat Sheet"Unrestricted File Upload Prevention" werfen, das einige der häufigsten Probleme umreißt, wenn diese Art von Situation in einem Netzwerk zugelassen wird. Sie können Ihr neu erworbenes Verteidigungswissen auch mit dem kostenlosen Showcase der Plattform Secure Code Warrior auf die Probe stellen, die Cybersecurity-Teams zu den ultimativen Cyberkriegern ausbildet. Um mehr über das Besiegen dieser Schwachstelle und einer Schurkengalerie anderer Bedrohungen zu erfahren, besuchen Sie den BlogSecure Code Warrior .

Denken Sie, dass Sie jetzt bereit sind, diese Schwachstelle zu bekämpfen? Begeben Sie sich auf das Schlachtfeld und testen Sie Ihre Fähigkeiten:

Wir bitten Sie um Ihre Erlaubnis, Ihnen Informationen über unsere Produkte und/oder verwandte Themen der sicheren Codierung zuzusenden. Wir werden Ihre persönlichen Daten immer mit äußerster Sorgfalt behandeln und sie niemals zu Marketingzwecken an andere Unternehmen verkaufen.

Um das Formular abzuschicken, aktivieren Sie bitte "Analytics"-Cookies. Sie können die Cookies wieder deaktivieren, sobald Sie fertig sind.