Mindern von Bedrohungen und Sicherheitsrisiken (Reporting Services)
In diesem Thema werden Techniken und Strategien beschrieben, um Bedrohungen für eine Reporting Services-Bereitstellung zu reduzieren.
Übersicht
Ein Berichtsserver ist ein statusloser Server, der Inhalts- und Anwendungsdaten extern speichert. Eine der größten Bedrohungen für eine Berichtsserverinstallation besteht im unberechtigten Zugriff oder in der Manipulation der Datenbank und der Konfigurationsdateien des Berichtsservers. Eine weniger offensichtliche, aber dennoch gleichermaßen bedeutende Bedrohung liegt darin verborgen, wie Sie Berichte erstellen und wer über Berechtigungen zum Veröffentlichen von Inhalt auf einem Berichtsserver verfügt. Berichtsdefinitionen sind Assemblys, die mit vollständiger Vertrauenswürdigkeit auf einem Servercomputer ausgeführt werden. Berichtsdefinitionen können andere benutzerdefinierte Assemblys enthalten, die auch auf dem Server ausgeführt werden. Falls der Bericht oder eine benutzerdefinierte Assembly bösartigen Code enthält, wird dieser Code auf dem Berichtsservercomputer mit den Anmeldeinformationen des Benutzers ausgeführt, der den Bericht angefordert hat. Andere subtile Bedrohungen können durch einen Berichtsentwurf entstehen, der unabsichtlich sensible Daten verfügbar macht. Wenn ein Mitarbeiter beispielsweise einen Bericht ausführt, der eine Mitarbeiter-ID als Parameter verwendet, sollte dieser Mitarbeiter nicht in der Lage sein, Informationen über andere Mitarbeiter anzuzeigen, indem er eine Zufalls-ID in eine Berichts-URL einfügt. Berücksichtigen Sie letztendlich auch die Berichtsverteilungsverfahren in der Organisation. Sie können einen Berichtsserver so konfigurieren, dass die Möglichkeit, Berichte außerhalb der Organisation zu übermitteln, minimiert wird. Sie können auch mithilfe von Berechtigungen für das Dateisystem und für den Berichtsserver sicherstellen, dass Berichte nur von autorisierten Benutzern geöffnet werden können.
In den folgenden Abschnitten dieses Themas werden zusätzliche Bedrohungen beschrieben und wie Sie die Risiken eines tatsächlichen Missbrauchs minimieren können.
Abmildern eines Angriffs auf einen Berichtsserver
In der folgenden Tabelle werden Bedrohungen und Minderungen beschrieben, die Serverkomponenten und Konfigurationseinstellungen beeinflussen.
Funktion oder Vorgang |
Bedrohung |
Minderung |
---|---|---|
Konfigurationseinstellungen werden in der Datei Web.config und in Anwendungskonfigurationsdateien auf dem Berichtsservercomputer gespeichert. |
Ein Angreifer könnte Zugriff auf den Computer erhalten, eine unverschlüsselte oder ungeschützte Konfigurationsdatei suchen und die Datei manipulieren. |
Legen Sie Berechtigungen für die Datei fest. Standardmäßig werden Reporting Services-Sicherheitsgruppen, die während des Setups erstellt werden, Berechtigungen erteilt. |
Der Berichtsserver-Webdienst verarbeitet bedarfsgesteuerte über TCP/IP-Verbindungen gesendete Anforderungen. |
Ein Angreifer könnte einen Denial-of-Service-Angriff starten, der die folgenden Ausprägungen hat: Mehrere nicht authentifizierte Anforderungen werden an einen Zielserver gerichtet. Unvollständige Anforderungen werden an einen Zielserver gerichtet, jedoch nie abgeschlossen. Anforderungen sind übermäßig groß; der Angreifer startet eine Anforderung und sendet dann eine große Nutzlast an den Server. |
Der Berichtsserver verwirft alle nicht autorisierten Anforderungen innerhalb von zwei Minuten. Dies kann einige der Auswirkungen eines Denial-of-Service-Angriffs minimieren. Das Intervall von zwei Minuten ist fest und kann nicht verkürzt werden. Wenn der Angriff aus Uploadvorgängen auf den Berichtsserver besteht, können Sie den Wert für das maxRequestLength-Element in der Datei Machine.config senken. Standardmäßig setzt ASP.NET für Elemente, die auf eine Serveranwendung hochgeladen werden können, eine Megabyte-Grenze (MB). Beachten Sie, dass das Reduzieren des Werts für maxRequestLength eine temporäre Maßnahme sein sollte. Setzen Sie den Wert wieder auf den Ausgangswert zurück, wenn das Hochladen großer Dateien (z. B. Modelle) häufig vorkommt. Weitere Informationen zum Festlegen von maxRequestLength in einer Installation von Reporting Services finden Sie unter Größenbeschränkungen für Berichte und Momentaufnahmen. |
Reporting Services unterstützt eine erweiterbare Architektur, mit der Sie die Datenverarbeitung eines Drittanbieters, Rendering- und Übermittlungserweiterungen bereitstellen können. Außerdem können Sie benutzerdefinierte Abfrage-Designer bereitstellen. Erweiterungen müssen mit vollständiger Vertrauenswürdigkeit ausgeführt werden. |
Ein Angreifer könnte bösartigen Code in eine benutzerdefinierte Erweiterung einschließen. |
Stellen Sie nur Erweiterungen von Benutzern oder Organisationen, denen Sie vertrauen, bereit. |
Mindern von Bedrohungen für Berichtsdefinitionen und Berichtsmodelle
In der folgenden Tabelle werden Bedrohungen und Minderungen beschrieben, die Berichtsdefinitionen und Modelldateien beeinflussen.
Funktion oder Vorgang |
Bedrohung |
Minderung |
---|---|---|
Veröffentlichen von Berichten, Modellen und freigegebenen Datenquellen auf einem Berichtsserver. Berichte und Modelle stellen eine Verbindung zu externen Datenquellen her und fragen diese ab. |
Abfangen von Berichten, Modellen und freigegebenen Datenquellen während eines Veröffentlichungsvorgangs. Abfangen von Anforderungen auf dem Weg zu einem externen Computer. |
Verwenden Sie einen sicheren, verschlüsselten Kanal, z. B. SSL/TLS/IPsec, für die Verbindung. Ein Kanal muss mithilfe von Verschlüsselungstechnologien geschützt werden. Informieren Sie Benutzer vor dem Senden, dass der Kanal nicht sicher ist. |
Authentifizierungstoken oder Anmeldeinformationen werden verwendet, um eine Verbindung mit Remotecomputern und Datenquellen herzustellen. |
Abfangen von Authentifizierungsdaten beim Verarbeiten einer Anforderung. |
Verwenden Sie einen sicheren, verschlüsselten Kanal. Informieren Sie den Benutzer, wenn der Kanal nicht sicher ist. Folgen Sie dem Prinzip der Mindestberechtigung. Für das Abrufen von in einem Bericht verwendete Daten sind schreibgeschützte Berechtigungen für Datenquellen erforderlich. |
Berichts-URLs zeigen Parameterwerte in der Adressleiste des Browserfensters an. |
Wenn ein Bericht vertrauliche Daten enthält, fügen Sie der URL keine Parameterwerte hinzu, die manipuliert werden können. Wenn ein parametrisierter Bericht beispielsweise eine Mitarbeiter-ID enthält, kann ein Benutzer eine zufällige Mitarbeiter-ID in die URL einfügen, um Daten anzuzeigen, die für andere Benutzer bestimmt sind. |
Überprüfen Sie vor dem Veröffentlichen eines Berichts zur endgültigen Verteilung die entsprechende URL, um festzustellen, ob Parameterwerte durch Zufallswerte ersetzt werden können. Beachten Sie beim Entwerfen von Berichten, dass es in Verbindung mit dem Festlegen von Parametern keine Berechtigungen gibt. Es gibt einige mögliche Minderungen:
|
Berichte und Modelle enthalten Datenquelleninformationen und Abfragen. |
Durch Offenlegen von Informationen über eine Datenquelle oder deren Struktur erhält ein Angreifer interne Informationen, die missbraucht werden könnten. |
Bevor ein Benutzer ein Berichtsmodell ändern darf, legen Sie die Sicherheit des Modellelements fest und schränken Sie den Zugriff auf Modellelemente ein, die der Benutzer im Modell-Designer nicht sehen soll. Legen Sie Berechtigungen für die Dateien fest. Dazu gehören RDL-, RDS-, SMDL-, DS-, DSV- und SMGL-Dateien. Standardmäßig können unter Windows XP oder höher Dateien, die lokal im Ordner eines Benutzers gespeichert sind, nur von Benutzergruppen und Konten geöffnet werden, die auf dem lokalen Computer definiert sind. |
Berichtsdefinitionen und freigegebene Datenquellen enthalten Datenquellenverbindungszeichenfolgen. Es ist möglich, Anmeldeinformationen in eine Verbindungszeichenfolge einzuschließen. |
Ein Angreifer könnte auf in den Datenbankverbindungszeichenfolgen gespeicherte Datenbankanmeldeinformationen zugreifen, wenn die Berichtdateien nicht sicher sind. |
Speichern Sie die Anmeldeinformationen getrennt von der Verbindungszeichenfolge. Verwenden Sie die Option zum Speichern von Anmeldeinformationen auf den Seiten der Datenquelleneigenschaft, um ein Benutzerkonto und ein Kennwort zu verschlüsseln und zu speichern. |
Berichte und Modelle werden bedarfsgesteuert verarbeitet. Berichte können auf benutzerdefinierte Assemblys verweisen oder diese enthalten. Berichte können benutzerdefinierte Berichtselemente oder Steuerelemente eines Drittanbieters enthalten. Benutzerdefinierte Berichtselementsteuerelemente erfordern vollständige Vertrauenswürdigkeit. |
Ein Angreifer überzeugt einen Benutzer davon, einen Bericht auszuführen, der eingebetteten Visual Basic-Code oder Datenbankabfragen dazu missbraucht, willkürlichen Code mit den Berechtigungen des Benutzers auszuführen. Einen Bericht oder ein Modell auszuführen, das manipuliert wurde, kann Pufferüberläufe verursachen, einen Serverabsturz verursachen oder noch schlimmere Folgen haben. |
Schränken Sie die Anzahl von Benutzern ein, die die Berechtigung haben, Berichte und Modelle zu veröffentlichen. Stellen Sie sicher, dass nur authentifizierte Benutzer die Berechtigung haben, Dateien hochzuladen. Stellen Sie sicher, dass Benutzer, die Berichte erstellen, wissen, wie sie Skripts erstellen können, die gegen SQL Injection-, Script-Injection- und HTML Injection-Angriffe resistent sind. Laden Sie nur Berichte und Modelle hoch oder veröffentlichen Sie nur Berichte und Modelle von Personen, denen Sie vertrauen. Installieren oder verwenden Sie nur ein benutzerdefiniertes Berichtselementsteuerelement von Personen, denen Sie vertrauen. Überprüfen Sie Dateien vor dem Hochladen, um festzustellen, ob alle Verweise auf benutzerdefinierte Assemblys gültig sind. Legen Sie Dateiberechtigungen für Assemblys fest, damit sie nicht von böswilligen Benutzern überschrieben werden können. |
Durch das Anzeigen eines Berichts oder Modells auf der Registerkarte Vorschau im Berichts-Designer werden Daten im Zwischenspeicher abgelegt, die mit den Anmeldeinformationen des Erstellers abgerufen werden können. |
Andere Benutzer, die einen Bericht auf dem Computer eines Berichterstellers anzeigen, könnten Berichtdaten anzeigen, die sie andernfalls nicht sehen könnten. |
Stellen Sie Berichte auf einem Testserver oder einem Testspeicherort bereit, wenn Sie einen Berichtsentwurf beenden. |
Weitere Informationen finden Sie unter Sichern von Berichten und Ressourcen.
Allgemeine Schritte zur Minderung von Bedrohungen und Sicherheitsrisiken
Übernehmen Sie die folgenden Best Practice-Empfehlungen, um die Gesamtsicherheit einer Berichtsserverbereitstellung zu erhöhen:
Deaktivieren Sie nicht verwendete Funktionen, um Angriffsfläche zu reduzieren. Weitere Informationen finden Sie unter Vorgehensweise: Aktivieren und Deaktivieren der Reporting Services-Features.
Verwenden Sie SSL für Berichtsserververbindungen. Weitere Informationen finden Sie unter Konfigurieren eines Berichtsservers für SSL-Verbindungen (Secure Sockets Layer).
Erstellen Sie eine Ordnerhierarchie, die strenge Berechtigungsrichtlinien unterstützt, indem Sie sensible oder vertrauliche Berichte in Ordner in den abgelegensten Zweigen der Ordnerhierarchie in Ordner ablegen, die nur einer eingeschränkten Gruppe von Benutzern zugänglich sind. Berichte, Modelle, freigegebene Datenquellen und Ressourcen, die Sie auf einem Berichtsserver veröffentlichen, werden durch Rollenzuweisungen gesichert. Diese Zuweisungen werden für Ordner und bestimmte Elemente auf der Berichtsserverwebsite erstellt. Da die Ordnerhierarchie vollständig benutzerdefiniert ist, können Sie die Hierarchie so aufbauen, dass Elemente mit ähnlichen Benutzerberechtigungen zusammen gruppiert werden. Weitere Informationen finden Sie unter Sichern von Ordnern.
Beachten Sie, dass bedarfsgesteuerte Berichte kompilierte Assemblys sind, die mit vollständiger Vertrauenswürdigkeit auf einem Berichtsserver mit den Anmeldeinformationen des Benutzers ausgeführt werden, der den Bericht öffnet. Berichtbenutzer, die sich mit lokalen oder Domain-Administratoranmeldeinformationen anmelden und einen Bericht mit bösartigem Skript öffnen, führen dieses Skript unbeabsichtigterweise mit Administratorberechtigungen aus. Ermutigen Sie Benutzer, beim Anzeigen von Berichten Konten mit Minimalprivilegien zu verwenden. Weitere Informationen finden Sie unter Integrierte Sicherheit und erhöhte Berechtigungen.
Beachten Sie, wie Daten abgerufen und in einem Bericht verwendet werden. Wenn ein Bericht vertrauliche Daten enthält, verwenden Sie Modelle als Datenquelle, sodass Sie Sicherheitsfilter und Modellelementsicherheit anwenden können. Weitere Informationen finden Sie unter Anwenden von Sicherheitsfiltern auf Berichtsmodellelemente (Lernprogramm).
Beachten Sie, wie der Bericht verteilt wird. Abonnement- und Übermittlungsfunktionen sind leistungsstarke Techniken zur Automatisierung der Berichtsverarbeitung und zur Verteilung eines generierten Berichts. Zur Vermeidung von unberechtigtem Zugriff empfiehlt es sich allerdings, zu überwachen, welche Benutzer über Freigabeberechtigungen für Netzwerkordner verfügen, und E-Mail-Konfigurationseinstellungen für Berichtsserver auszuwerten, um festzustellen, ob Sie die E-Mail-Verteilung einschränken müssen. Weitere Informationen finden Sie unter Steuern der Berichtsverteilung.