WPF-Sicherheitsstrategie – PlattformsicherheitWPF Security Strategy - Platform Security

Während Windows Presentation Foundation (WPF) eine Vielzahl von Sicherheitsdiensten bereitstellt, nutzt es auch die Sicherheitsfunktionen der zugrunde liegenden Plattform, die das Betriebssystem, die CLR und Internet Explorer umfasst.While Windows Presentation Foundation (WPF) provides a variety of security services, it also leverages the security features of the underlying platform, which includes the operating system, the CLR, and Internet Explorer. Im Zusammenspiel stellen diese Ebenen für WPFWPF ein leistungsfähiges Modell für tiefgreifende, vorbeugende Sicherheitsmaßnahmen (Defense-in-Depth-Modell) bereit, das eine einzelne Fehlerquelle zu vermeiden sucht, wie aus der folgenden Abbildung hervorgeht:These layers combine to provide WPFWPF a strong, defense-in-depth security model that attempts to avoid any single point of failure, as shown in the following figure:

Diagramm, das das WPF-Sicherheitsmodell zeigt.

Im weiteren Verlauf dieses Themas werden die Features auf den einzelnen Ebenen erläutert, die besonders WPFWPF betreffen.The remainder of this topic discusses the features in each of these layers that pertain to WPFWPF specifically.

BetriebssystemsicherheitOperating System Security

Der Kern von Windows bietet verschiedene Sicherheitsfeatures, die die Sicherheits Grundlage für alle Windows-Anwendungen bilden, einschließlich derjenigen, die mit WPF erstellt wurden.The core of Windows provides several security features that form the security foundation for all Windows applications, including those built with WPF. In diesem Thema wird der Umfang dieser Sicherheitsfeatures erläutert, die für WPF wichtig sind, sowie die Art und Weise, wie WPF in Sie integriert wird, um weitere Schutzmaßnahmen bereitzustellen.This topic discusses the breadth of these security features that are important to WPF, as well as how WPF integrates with them to provide further defense-in-depth.

Microsoft Windows XP Service Pack 2 (SP2)Microsoft Windows XP Service Pack 2 (SP2)

Zusätzlich zu einer allgemeinen Überprüfung und Verstärkung von Windows gibt es drei wichtige Features von Windows XP SP2Windows XP SP2, die wir in diesem Thema erörtern werden:In addition to a general review and strengthening of Windows, there are three key features from Windows XP SP2Windows XP SP2 that we will discuss in this topic:

  • /GS-Kompilierung/GS compilation

  • Microsoft-Windows Update.Microsoft Windows Update.

/GS-Kompilierung/GS Compilation

Windows XP SP2Windows XP SP2 bietet Schutz durch das erneute Kompilieren vieler zentraler Systembibliotheken, einschließlich aller WPFWPF Abhängigkeiten (z. b. CLR), um Pufferüberläufe zu verringern.provides protection by recompiling many core system libraries, including all of the WPFWPF dependencies such as the CLR, to help mitigate buffer overruns. Dies wird mit dem /GS-Parameter und dem C/C++-Befehlszeilencompiler erreicht.This is achieved by using the /GS parameter with the C/C++ command-line compiler. Obwohl Pufferüberläufe ausdrücklich vermieden werden sollten, ist die Kompilierung mit /GS ein Beispiel für eine tiefgreifende Verteidigungsmaßnahme gegen potenzielle Sicherheitslücken, die versehentlich oder böswillig durch Pufferüberläufe erzeugt werden.Although buffer overruns should be explicitly avoided, /GS compilation provides an example of a defense-in-depth against potential vulnerabilities that are inadvertently or maliciously created by them.

In der Vergangenheit waren Pufferüberläufe die Ursache für viele Sicherheitslücken mit gravierenden Folgen.Historically, buffer overruns have been the cause of many high-impact security exploits. Ein Pufferüberlauf tritt auf, wenn ein Angreifer die Sicherheitsanfälligkeit eines Codes nutzt, die das Einfügen von schädlichem Code ermöglicht, der über die Begrenzungen eines Puffers schreibt.A buffer overrun occurs when an attacker takes advantage of a code vulnerability that allows the injection of malicious code that writes past the boundaries of a buffer. Ein Angreifer kann dann durch Überschreiben der Rückgabeadresse einer Funktion den Prozess, in dem der Code ausgeführt wird, hacken und die Ausführung des Angreifercodes auslösen.This then allows an attacker to hijack the process in which the code is executing by overwriting the return address of a function to cause the execution of the attacker's code. Daraus entsteht bösartiger Code, der beliebigen Code mit den gleichen Berechtigungen wie der gehackte Prozess ausführt.The result is malicious code that executes arbitrary code with the same privileges as the hijacked process.

Auf hoher Ebene schützt das-GS-Compilerflag gegen einige potenzielle Pufferüberläufe, indem ein spezielles Sicherheits Cookie eingefügt wird, um die Rückgabeadresse einer Funktion zu schützen, die über lokale Zeichen folgen Puffer verfügt.At a high level, the -GS compiler flag protects against some potential buffer overruns by injecting a special security cookie to protect the return address of a function that has local string buffers. Nach der Rückgabe einer Funktion wird das Sicherheitscookie mit seinem vorherigen Wert verglichen.After a function returns, the security cookie is compared with its previous value. Hat sich der Wert geändert, ist möglicherweise ein Pufferüberlauf aufgetreten, und der Prozess wird mit einer Fehlerbedingung beendet.If the value has changed, a buffer overrun may have occurred and the process is stopped with an error condition. Das Beenden des Prozesses verhindert die Ausführung von potenziell bösartigem Code.Stopping the process prevents the execution of potentially malicious code. Weitere Informationen finden Sie unter -GS (Puffer-Sicherheitsüberprüfung) .See -GS (Buffer Security Check) for more details.

WPFWPF wird mit dem /GS-Flag kompiliert, um eine weitere Schutzebene für WPFWPF-Anwendungen bereitzustellen.is compiled with the /GS flag to add yet another layer of defense to WPFWPF applications.

Windows VistaWindows Vista

WPF-Benutzer unter Windows Vista profitieren von den zusätzlichen Sicherheitserweiterungen des Betriebssystems, einschließlich "Benutzer Zugriff mit geringsten Rechten", Code Integritätsprüfungen und Berechtigungs Isolation.WPF users on Windows Vista will benefit from the operating system's additional security enhancements, including "Least-Privilege User Access", code integrity checks, and privilege isolation.

Benutzerkontensteuerung (User Account Control, UAC)User Account Control (UAC)

Heutzutage werden Windows-Benutzer tendenziell mit Administratorrechten ausgeführt, da Sie von vielen Anwendungen sowohl für die Installation als auch für die Ausführung oder beides benötigt werden.Today, Windows users tend to run with administrator privileges because many applications require them for either installation or execution, or both. Das Schreiben von Standardanwendungseinstellungen in die Registrierung ist nur ein Beispiel.Being able to write default application settings to the Registry is one example.

Das Arbeiten mit Administratorrechten bedeutet im Grunde, dass Anwendungen von Prozessen ausgeführt werden, denen Administratorrechte gewährt werden.Running with administrator privileges really means that applications execute from processes that are granted administrator privileges. Das hat Auswirkungen auf die Sicherheit, denn bösartiger Code, der zum Hacken eines mit Administratorrechten ausgeführten Prozesses verwendet wird, übernimmt automatisch dessen Berechtigungen, einschließlich des Zugriffs auf kritische Systemressourcen.The security impact of this is that any malicious code that hijacks a process running with administrator privileges will automatically inherit those privileges, including access to critical system resources.

Anwendungen nur mit den unbedingt erforderlichen Berechtigungen auszuführen, ist eine Möglichkeit, sich vor dieser Sicherheitsbedrohung zu schützen.One way to protect against this security threat is to run applications with the least amount of privileges that are required. Dies wird als Prinzip der geringsten Rechte bezeichnet und ist ein zentrales Feature des Windows-Betriebssystems.This is known as the principle of least privilege, and is a core feature of the Windows operating system. Diese Funktion wird als Benutzerkontensteuerung (User Account Control, UAC) bezeichnet und wird von Windows UAC auf zwei Arten verwendet:This feature is called User Account Control (UAC), and is used by Windows UAC in two key ways:

  • Die meisten Anwendungen werden standardmäßig mit den Rechten der Benutzerkontensteuerung ausgeführt, selbst wenn der Benutzer ein Administrator ist; nur Anwendungen, die Administratorrechte benötigen, werden mit Administratorrechten ausgeführt.To run most applications with UAC privileges by default, even if the user is an administrator; only applications that need administrator privileges will run with administrator privileges. Um mit Administratorrechten ausgeführt zu werden, müssen Anwendungen entweder in ihrem Anwendungsmanifest oder als Eintrag in der Sicherheitsrichtlinie besonders gekennzeichnet werden.To run with administrative privileges, applications must be explicitly marked in either their application manifest or as an entry in security policy.

  • Bereitstellen von Kompatibilitätslösungen wie die Virtualisierung.To provide compatibility solutions like virtualization. Viele Anwendungen versuchen beipielsweise, in eingeschränkte Speicherorte wie "C:\Programme" zu schreiben.For example, many applications try to write to restricted locations like C:\Program Files. Für Anwendungen, die über die Benutzerkontensteuerung ausgeführt werden, steht ein alternativer benutzerbezogener Speicherort zur Verfügung, der für Schreibvorgänge keine Administratorrechte erfordert.For applications executing under UAC, an alternative per-user location exists that does not require administrator privileges to write to. Für Anwendungen, die über die Benutzerkontensteuerung ausgeführt werden, wird "C:\Programme" virtualisiert. Dadurch wird der Anschein erweckt, dass die Anwendungen in dieses Verzeichnis schreiben, obwohl sie stattdessen in den alternativen, benutzerbezogenen Speicherort schreiben.For applications running under UAC, UAC virtualizes C:\Program Files so that applications who think they are writing to it are actually writing to the alternative, per-user location. Dank dieser Art von Kompatibilität kann das Betriebssystem viele Anwendungen ausführen, die zuvor nicht mit der Benutzerkontensteuerung ausgeführt werden konnten.This kind of compatibility work enables the operating system to run many applications that couldn't previously run in UAC.

Integritätsprüfungen für CodeCode Integrity Checks

Windows Vista enthält tiefere Code Integritätsprüfungen, um zu verhindern, dass bösartiger Code zur Lade-/Laufzeit in Systemdateien oder in den Kernel eingefügt wird.Windows Vista incorporates deeper code integrity checks to help prevent malicious code from being injected into system files or into the kernel at load/run time. Dies geht über den Schutz der Systemdateien hinaus.This goes beyond system file protection.

Prozess mit eingeschränkten Rechten für im Browser gehostete AnwendungenLimited Rights Process for Browser-Hosted Applications

Im Browser gehostete WPFWPF-Anwendungen werden im Sicherheitssandkasten der Internetzone ausgeführt.Browser-hosted WPFWPF applications execute within the Internet zone sandbox. durch die WPFWPF Integration in Microsoft Internet Explorer wird dieser Schutz um zusätzliche Unterstützung erweitert.WPFWPF integration with Microsoft Internet Explorer extends this protection with additional support.

Da XAML-Browser Anwendungen (XBAPs) in der Regel durch den Berechtigungs Satz für die Internet Zone in einem Sandkasten verwendet werden, werden XAML-Browser Anwendungen (XBAPs) durch das Entfernen dieser Berechtigungen aus Kompatibilitäts Sicht nicht beeinträchtigt.Since XAML browser applications (XBAPs) are generally sandboxed by the Internet zone permission set, removing these privileges does not harm XAML browser applications (XBAPs) from a compatibility perspective. Stattdessen wird eine zusätzliche Defense-in-Depth-Ebene geschaffen. Wenn eine in einem Sicherheitssandkasten ausgeführte Anwendung in der Lage ist, andere Ebenen anzugreifen und den Prozess zu hacken, verfügt auch der Prozess nur über eingeschränkte Berechtigungen.Instead, an additional defense-in-depth layer is created; if a sandboxed application is able to exploit other layers and hijack the process, the process will still only have limited privileges.

Weitere Informationen finden Sie unter Verwenden eines Benutzerkontos mit den geringsten Rechten.See Using a Least-Privileged User Account.

Common Language Runtime-SicherheitCommon Language Runtime Security

Der Common Language Runtime (CLR) bietet eine Reihe von wichtigen Sicherheitsvorteilen, einschließlich Validierung und Überprüfung, Code Zugriffssicherheit (Code Access Security, CAS) und der sicherheitskritischen Methodik.The common language runtime (CLR) offers a number of key security benefits that include validation and verification, Code Access Security (CAS), and the Security Critical Methodology.

Validierung und PrüfungValidation and Verification

Zum Bereitstellen von Assemblyisolation und-Integrität verwendet die CLR einen Validierungsprozess.To provide assembly isolation and integrity, the CLR uses a process of validation. Die CLR-Überprüfung stellt sicher, dass Assemblys isoliert werden, indem das PE-Dateiformat (portable ausführbare Datei) für Adressen, die auf die Assembly verweisenCLR validation ensures that assemblies are isolated by validating their Portable Executable (PE) file format for addresses that point outside the assembly. Die CLR-Überprüfung überprüft auch die Integrität der Metadaten, die in eine Assembly eingebettet sind.CLR validation also validates the integrity of the metadata that is embedded within an assembly.

Um die Typsicherheit zu gewährleisten, häufige Sicherheitsprobleme (z. b. Pufferüberläufe) zu vermeiden und Sandkasten durch die unter Prozess Isolation zu ermöglichen, verwendet die CLR-Sicherheit das Konzept der Überprüfung.To ensure type safety, help prevent common security issues (e.g. buffer overruns), and enable sandboxing through sub-process isolation, CLR security uses the concept of verification.

Verwaltete Anwendungen werden in Microsoft Intermediate Language (MSIL) kompiliert.Managed applications are compiled into Microsoft Intermediate Language (MSIL). Wenn Methoden in einer verwalteten Anwendung ausgeführt werden, wird die MSIL über Just-in-Time (JIT)-Kompilierung in systemeigenen Code kompiliert.When methods in a managed application are executed, its MSIL is compiled into native code through Just-In-Time (JIT) compilation. Die JIT-Kompilierung enthält einen Prüfprozess mit vielen Sicherheits- und Stabilitätsregeln, die sicherstellen, dass der Code keine der folgenden Eigenschaften aufweist:JIT compilation includes a verification process that applies many safety and robustness rules that ensure code does not:

  • Verletzen von TypverträgenViolate type contracts

  • Verursachen von PufferüberläufenIntroduce buffer overruns

  • Unkontrollierter Zugriff auf den ArbeitsspeicherWildly access memory.

Verwalteter Code, der den Prüfregeln nicht entspricht, darf nur dann ausgeführt werden, wenn er als vertrauenswürdiger Code gilt.Managed code that does not conform to verification rules is not allowed to execute, unless it is considered trusted code.

Der Vorteil von überprüfbarem Code ist ein wichtiger Grund, warum WPFWPF auf dem .NET Framework aufbaut.The advantage of verifiable code is a key reason why WPFWPF builds on the .NET Framework. Mit zunehmender Verwendung prüfbaren Codes sinkt die Wahrscheinlichkeit, dass potenzielle Schwachstellen ausgenutzt werden, ganz erheblich.To the extent that verifiable code is used, the possibility of exploiting possible vulnerabilities is greatly lowered.

CodezugriffssicherheitCode Access Security

Ein Clientcomputer stellt eine Vielzahl von Ressourcen bereit, auf die eine verwaltete Anwendung zugreifen kann. Dazu zählen u. a. Dateisystem, Registrierung, Druckdienste, Benutzeroberfläche, Reflektion und Umgebungsvariablen.A client machine exposes a wide variety of resources that a managed application can have access to, including the file system, the Registry, printing services, the user interface, reflection, and environment variables. Bevor eine verwaltete Anwendung auf eine Ressource auf einem Client Computer zugreifen kann, muss Sie über .NET Framework Berechtigung verfügen.Before a managed application can access any of the resources on a client machine, it must have .NET Framework permission to do so. Eine Berechtigung in CAS ist eine Unterklasse des CodeAccessPermission; CAS implementiert eine Unterklasse für jede Ressource, auf die verwaltete Anwendungen zugreifen können.A permission in CAS is a subclass of the CodeAccessPermission; CAS implements one subclass for each resource that managed applications can access.

Der Berechtigungs Satz, den eine verwaltete Anwendung von CAS bei der Ausführung erhält, wird als Berechtigungs Satz bezeichnet und wird durch von der Anwendung bereitgestellte Beweise bestimmt.The set of permissions that a managed application is granted by CAS when it starts executing is known as a permission set and is determined by evidence provided by the application. Bei WPFWPF-Anwendungen wird als Nachweis der Speicherort oder die Zone bereitgestellt, von dem bzw. der die Anwendungen gestartet werden.For WPFWPF applications, the evidence that is provided is the location, or zone, from which the applications are launched. CAS identifiziert die folgenden Zonen:CAS identifies the following zones:

  • Arbeitsplatz.My Computer. Anwendungen, die auf dem Clientcomputer gestartet werden (voll vertrauenswürdig).Applications launched from the client machine (Fully Trusted).

  • Lokales Intranet.Local Intranet. Anwendungen, die aus dem Intranet gestartet werdenApplications launched from the intranet. (in gewisser Weise vertrauenswürdig).(Somewhat Trusted).

  • Internet.Internet. Anwendungen, die aus dem Internet gestartet werdenApplications launched from the Internet. (wenig vertrauenswürdig).(Least Trusted).

  • Vertrauenswürdige Sites.Trusted Sites. Anwendungen, die von einem Benutzer als vertrauenswürdig identifiziert wurdenApplications identified by a user as being trusted. (wenig vertrauenswürdig).(Least Trusted).

  • Nicht vertrauenswürdige Sites.Untrusted Sites. Anwendungen, die von einem Benutzer als nicht vertrauenswürdig identifiziert wurdenApplications identified by a user as being untrusted. (nicht vertrauenswürdig).(Untrusted).

Für jede dieser Zonen stellt CAS einen vordefinierten Berechtigungs Satz bereit, der die Berechtigungen enthält, die der zugeordneten Vertrauens Ebene entsprechen.For each of these zones, CAS provides a predefined permission set that includes the permissions which matches the level of trust associated with each. Dazu gehören:These include:

  • FullTrust.FullTrust. Für Anwendungen, die aus der Arbeitsplatz Zone gestartet werden.For applications launched from the My Computer zone. Alle möglichen Berechtigungen werden gewährt.All possible permissions are granted.

  • LocalIntranet.LocalIntranet. Für Anwendungen, die aus der lokalen Intranetzone gestartet werden.For applications launched from the Local Intranet zone. Für einen moderaten Zugriff auf die Ressourcen des Clientcomputers wird eine Teilmenge von Berechtigungen gewährt. Dazu zählen isolierter Speicher, uneingeschränkter Zugriff auf die Benutzeroberfläche und Dateidialogfelder, eingeschränkte Reflektion sowie eingeschränkter Zugriff auf Umgebungsvariablen.A subset of permissions are granted to provide moderate access to a client machine’s resources, including isolated storage, unrestricted UI access, unrestricted file dialogs, limited reflection, limited access to environment variables. Berechtigungen für kritische Ressourcen wie die Registrierung werden nicht bereitgestellt.Permissions for critical resources like the Registry are not provided.

  • Internet.Internet. Für Anwendungen, die über die Zone Internet oder Vertrauenswürdige Sites gestartet werden.For applications launched from the Internet or Trusted Sites zone. Für einen eingeschränkten Zugriff auf die Ressourcen des Clientcomputers wird eine Teilmenge von Berechtigungen gewährt. Dazu zählen isolierter Speicher, Öffnen von Dateien sowie eingeschränkter Zugriff auf die Benutzeroberfläche.A subset of permissions are granted to provided limited access to a client machine’s resources, including isolated storage, file open only, and limited UI. Im wesentlichen isoliert dieser Berechtigungs Satz Anwendungen vom Client Computer.Essentially, this permission set isolates applications from the client machine.

Anwendungen, die als aus der Zone nicht vertrauenswürdiger Sites identifiziert werden, werden keinerlei Berechtigungen von CAS erteilt.Applications identified as being from the Untrusted Sites zone are granted no permissions by CAS at all. Daher gibt es für diese Anwendungen keinen vordefinierten Berechtigungssatz.Consequently, a predefined permission set does not exist for them.

In der folgenden Abbildung wird die Beziehung zwischen Zonen, Berechtigungs Sätzen, Berechtigungen und Ressourcen veranschaulicht:The following figure illustrates the relationship between zones, permission sets, permissions, and resources:

Diagramm, in dem CAS-Berechtigungs Sätze angezeigt werden.

Die Einschränkungen des Sicherheits Sandkastens der Internet Zone gelten in gleicher Weise für jeden Code, den eine XBAP aus einer Systembibliothek importiert, einschließlich WPFWPF.The restrictions of the Internet zone security sandbox apply equally to any code that an XBAP imports from a system library, including WPFWPF. Dadurch wird sichergestellt, dass jedes Bit des Codes (selbst WPFWPF) gesperrt wird.This ensures that every bit of the code is locked down, even WPFWPF. Zum Ausführen von muss eine XBAP leider eine Funktionalität ausführen, die mehr Berechtigungen erfordert, als die von der Sicherheits Sandbox der Internet Zone aktivierten.Unfortunately, to be able to execute, an XBAP needs to execute functionality that requires more permissions than those enabled by the Internet zone security sandbox.

Stellen Sie sich eine XBAP-Anwendung vor, die die folgende Seite enthält:Consider an XBAP application that includes the following page:

FileIOPermission fp = new FileIOPermission(PermissionState.Unrestricted);
fp.Assert();

// Perform operation that uses the assert

// Revert the assert when operation is completed
CodeAccessPermission.RevertAssert();
Dim fp As New FileIOPermission(PermissionState.Unrestricted)
fp.Assert()

' Perform operation that uses the assert

' Revert the assert when operation is completed
CodeAccessPermission.RevertAssert()

Um diese XBAP auszuführen, muss der zugrunde liegende WPFWPF Code mehr Funktionen ausführen, als für die Aufruf Bare XBAP verfügbar sind, einschließlich:To execute this XBAP, the underlying WPFWPF code must execute more functionality than is available to the calling XBAP, including:

  • Erstellen eines Fenster Handles (HWND) für das RenderingCreating a window handle (HWND) for rendering

  • Verteilen von NachrichtenDispatching messages

  • Laden der Schriftart TahomaLoading the Tahoma font

Unter dem Gesichtspunkt der Sicherheit wäre die Gewährung des direkten Zugriffs auf diese Vorgänge für die im Sicherheitssandkasten ausgeführte Anwendung eine Katastrophe.From a security point of view, allowing direct access to any of these operations from the sandboxed application would be catastrophic.

Zum Glück bietet WPFWPF einen Ausweg aus dieser Lage, indem es diesen Vorgängen die Ausführung mit erhöhten Rechten im Namen der im Sicherheitssandkasten ausgeführten Anwendung erlaubt.Fortunately, WPFWPF caters to this situation by allowing these operations to execute with elevated privileges on behalf of the sandboxed application. Während alle WPFWPF Vorgänge mit den eingeschränkten Sicherheits Berechtigungen der Internet Zone der Anwendungsdomäne der XBAP überprüft werden, wird WPFWPF (wie bei anderen Systembibliotheken) ein Berechtigungs Satz gewährt, der alle möglichen Berechtigungen enthält.While all WPFWPF operations are checked against the limited Internet zone security permissions of the application domain of the XBAP, WPFWPF (as with other system libraries) is granted a permission set that includes all possible permissions.

Dies setzt voraus, dass WPFWPF erhöhte Rechte eingeräumt werden und gleichzeitig verhindert wird, dass diese Berechtigungen vom Berechtigungssatz der Internetzone der Hostanwendungsdomäne gesteuert werden.This requires that WPFWPF receives elevated privileges while preventing those privileges from being governed by the Internet zone permission set of the host application domain.

WPFWPF führt dies mithilfe der Assert -Methode einer Berechtigung aus.does this by using the Assert method of a permission. Der folgende Code beschreibt die Vorgehensweise.The following code shows how this happens.

FileIOPermission fp = new FileIOPermission(PermissionState.Unrestricted);
fp.Assert();

// Perform operation that uses the assert

// Revert the assert when operation is completed
CodeAccessPermission.RevertAssert();
Dim fp As New FileIOPermission(PermissionState.Unrestricted)
fp.Assert()

' Perform operation that uses the assert

' Revert the assert when operation is completed
CodeAccessPermission.RevertAssert()

Durch die Assert -Berechtigung wird verhindert, dass die uneingeschränkten Berechtigungen, die von WPFWPF erforderlich sind, durch die Berechtigungen der Internet Zone der XBAP eingeschränkt werden.The Assert essentially prevents the unlimited permissions required by WPFWPF from being restricted by the Internet zone permissions of the XBAP.

Aus Platt Form Sicht ist WPFWPF für die korrekte Verwendung von Assert verantwortlich. eine falsche Verwendung von Assert könnte böswilligen Code ermöglichen, Berechtigungen zu erhöhen.From a platform perspective, WPFWPF is responsible for using Assert correctly; an incorrect use of Assert could enable malicious code to elevate privileges. Folglich ist es wichtig, dass Sie bei Bedarf nur Assert aufruft und sicherstellen, dass die Sandbox-Einschränkungen intakt bleiben.Consequently, it is important then to only call Assert when needed, and to ensure that sandbox restrictions remain intact. Beispielsweise darf im Sicherheitssandkasten ausgeführter Code zwar keine beliebigen Dateien öffnen, aber Schriftarten verwenden.For example, sandboxed code is not allowed to open random files, but it is allowed to use fonts. WPFWPF ermöglicht es Sandkasten Anwendungen, die Schriftart Funktionalität durch Aufrufen von Assertzu verwenden, und für WPFWPF Dateien zu lesen, die bekanntermaßen diese Schriftarten im Namen der Sandbox-Anwendung enthalten.enables sandboxed applications to use font functionality by calling Assert, and for WPFWPF to read files known to contain those fonts on behalf of the sandboxed application.

ClickOnce-BereitstellungClickOnce Deployment

ClickOnce ist eine umfassende Bereitstellungs Technologie, die in .NET Framework enthalten ist und in Visual Studio integriert ist (Weitere Informationen finden Sie unter ClickOnce-Sicherheit und-Bereitstellung ).ClickOnce is a comprehensive deployment technology that is included with .NET Framework, and integrates with Visual Studio (see ClickOnce security and deployment for detailed information). Eigenständige WPFWPF Anwendungen können mithilfe von ClickOnce bereitgestellt werden, während im Browser gehostete Anwendungen mit ClickOnce bereitgestellt werden müssen.Standalone WPFWPF applications can be deployed using ClickOnce, while browser-hosted applications must be deployed with ClickOnce.

Anwendungen, die mit ClickOnce bereitgestellt werden, erhalten über die Code Zugriffssicherheit (CAS) eine zusätzliche Sicherheitsschicht. im wesentlichen fordern ClickOnce-Anwendungen, die Sie benötigen, die erforderlichen Berechtigungen an.Applications deployed using ClickOnce are given an additional security layer over Code Access Security (CAS); essentially, ClickOnce deployed applications request the permissions that they need. Diese Berechtigungen werden nur gewährt, wenn sie nicht höher sind als die Berechtigungen im Berechtigungssatz für die Zone, von der die Anwendung bereitgestellt wird.They are granted only those permissions if they do not exceed the set of permissions for the zone from which the application is deployed. Durch die Reduzierung des Berechtigungs Satzes auf die benötigten Berechtigungen, selbst wenn Sie niedriger sind als die des Berechtigungs Satzes der Start Zone, wird die Anzahl der Ressourcen, auf die die Anwendung zugreifen kann, auf ein Minimum reduziert.By reducing the set of permissions to only those that are needed, even if they are less than those provided by the launch zone's permission set, the number of resources that the application has access to is reduced to a bare minimum. Dadurch wird der mögliche Schaden für den Clientcomputer reduziert, falls die Anwendung gehackt wird.Consequently, if the application is hijacked, the potential for damage to the client machine is reduced.

Sicherheitsrelevante MethodeSecurity-Critical Methodology

Der WPFWPF Code, der Berechtigungen verwendet, um den Internet Zonen-Sandkasten für XBAP-Anwendungen zu aktivieren, muss dem höchstmöglichen Maß an Sicherheitsüberwachung und-Kontrolle unterliegen.The WPFWPF code that uses permissions to enable the Internet zone sandbox for XBAP applications must be held to highest possible degree of security audit and control. Um diese Anforderung zu vereinfachen, bietet .NET Framework eine neue Unterstützung für die Verwaltung von Code, der Berechtigungen erhöht.To facilitate this requirement, .NET Framework provides new support for managing code that elevates privilege. Die CLR ermöglicht es Ihnen, Code zu identifizieren, der Berechtigungen erhöht und ihn mit dem SecurityCriticalAttribute markiert. jeglicher Code, der nicht mit SecurityCriticalAttribute gekennzeichnet ist, wird mit dieser Methodik transparent .Specifically, the CLR enables you to identify code that elevates privilege and mark it with the SecurityCriticalAttribute; any code not marked with SecurityCriticalAttribute becomes transparent using this methodology. Umgekehrt wird verhindert, dass verwalteter Code, der nicht mit dem SecurityCriticalAttribute gekennzeichnet ist, die Rechte erhöht.Conversely, managed code that is not marked with SecurityCriticalAttribute is prevented from elevating privilege.

Die sicherheitsrelevante Methode ermöglicht die Organisation von WPFWPF Code, der Berechtigungen in den sicherheitskritischen Kernelerweitert, wobei der Rest transparent ist.The Security-Critical Methodology allows the organization of WPFWPF code that elevates privilege into security-critical kernel, with the remainder being transparent. Durch das Isolieren des sicherheitskritischen Codes kann sich das WPFWPF Engineering-Team auf eine zusätzliche Sicherheitsanalyse und Quell Code Verwaltung auf dem sicherheitskritischen Kernel konzentrieren, der oberhalb und über den standardmäßigen Sicherheitsverfahren liegt (siehe WPF-Sicherheitsstrategie-Sicherheit). Engineering).Isolating the security-critical code enables the WPFWPF engineering team focus an additional security analysis and source control on the security-critical kernel above and beyond standard security practices (see WPF Security Strategy - Security Engineering).

Beachten Sie, dass .NET Framework vertrauenswürdigen Code ermöglicht, die XBAP-Internet Zonen Sandbox zu erweitern, indem Entwickler verwaltete Assemblys schreiben können, die mit AllowPartiallyTrustedCallersAttribute (APTCA) markiert sind und im globalen Assemblycache (GAC) des Benutzers bereitgestellt werden.Note that .NET Framework permits trusted code to extend the XBAP Internet zone sandbox by allowing developers to write managed assemblies that are marked with AllowPartiallyTrustedCallersAttribute (APTCA) and deployed to the user's Global Assembly Cache (GAC). Das Kennzeichnen einer Assembly mit dem APTCA-Attribut ist ein extrem kritischer Sicherheitsvorgang, da jeder Code, auch bösartiger Code aus dem Internet, diese Assembly aufrufen kann.Marking an assembly with APTCA is a highly sensitive security operation as it allows any code to call that assembly, including malicious code from the Internet. Bei diesem Vorgang sind äußerste Vorsicht und die Verwendung bewährter Methoden ein absolutes Muss. Die Benutzer müssen zuerst angeben, dass sie dieser Software vertrauen, bevor sie installiert werden kann.Extreme caution and best practices must be used when doing this and users must choose to trust that software in order for it to be installed.

Microsoft Internet Explorer-SicherheitMicrosoft Internet Explorer Security

Neben der Reduzierung von Sicherheitsproblemen und der Vereinfachung der Sicherheitskonfiguration enthält Microsoft Internet Explorer 6 (SP2) mehrere Features, die Sicherheitsverbesserungen für Benutzer von XAML-Browser Anwendungen (XBAPs) verbessern.Beyond reducing security issues and simplifying security configuration, Microsoft Internet Explorer 6 (SP2) contains several features that security improvements that enhance security for users of XAML browser applications (XBAPs). Hauptziel dieser Features ist eine bessere Kontrolle des Benutzers über seine Arbeit im Brower.The thrust of these features attempts to allow users greater control over their browsing experience.

Vor IE6 SP2 konnten Benutzer folgende Aktionen ausführen:Prior to IE6 SP2, users could be subject to any of the following:

  • Zufällige PopupfensterRandom popup windows.

  • Verwirrende SkriptumleitungConfusing script redirection.

  • Zahlreiche Sicherheitsdialogfelder auf manchen WebsitesNumerous security dialogs on some Web sites.

In einigen Fällen versuchen nicht vertrauenswürdige Websites, Benutzer durch Spoofing der Installation Benutzeroberfläche (User Interface, UI)user interface (UI) oder wiederholt ein Microsoft ActiveX-Installations Dialogfeld anzuzeigen, auch wenn der Benutzer Sie möglicherweise abgebrochen hat.In some cases, untrustworthy Web sites would try to trick users by spoofing installation Benutzeroberfläche (User Interface, UI)user interface (UI) or repeatedly showing a Microsoft ActiveX installation dialog box, even though the user may have canceled it. Mit diesen Techniken ist es möglich, eine große Anzahl von Benutzern zu schlechten Entscheidungen zu verleiten, die zur Installation von Spyware-Anwendungen führen.Using these techniques, it is possible that a significant number of users have been tricked into making poor decisions that resulted with the installation of spyware applications.

IE6 SP2 umfasst mehrere Features, um diese Art von Problemen zu beheben, die sich auf das Konzept der Benutzer Initiierung beziehen.IE6 SP2 includes several features to mitigate these types of issues, which revolve around the concept of user initiation. IE6 SP2 erkennt, wenn ein Benutzer vor einer Aktion auf einen Link oder ein Seitenelement geklickt hat, was als Benutzer Initiierungbezeichnet wird, und behandelt es anders, als wenn eine ähnliche Aktion stattdessen durch das Skript auf einer Seite ausgelöst wird.IE6 SP2 detects when a user has clicked on a link or page element prior to an action, which is known as user initiation, and treats it differently than when a similar action is instead triggered by the script on a page. Beispielsweise enthält IE6 SP2 einen Popup Blocker , der erkennt, wenn ein Benutzer auf eine Schaltfläche klickt, bevor die Seite ein Popup erstellt.As an example, IE6 SP2 incorporates a Pop-Up Blocker that detects when a user clicks a button prior to the page creating a pop-up. Dadurch kann IE6 SP2 die meisten unschädlichen Popups zulassen und gleichzeitig Popups verhindern, die Benutzer weder anfordern noch wünschen.This enables IE6 SP2 to allow most innocuous pop-ups while preventing pop-ups that users neither ask for nor want. Blockierte Popups werden unter der neuen Informationsleisteerfasst, sodass der Benutzer den Block manuell überschreiben und das Popup anzeigen kann.Blocked pop-ups are trapped under the new Information Bar, which allows the user to manually override the block and view the pop-up.

Die gleiche Benutzer Initiierungs Logik wird auch zum Öffnen /Speichern von Sicherheits Aufforderungen angewendet.The same user-initiation logic is also applied to Open/Save security prompts. ActiveX-Installations Dialogfelder werden immer unter der Informationsleiste erfasst, es sei denn, Sie stellen ein Upgrade von einem zuvor installierten Steuerelement dar.ActiveX installation dialog boxes are always trapped under the Information Bar unless they represent an upgrade from a previously installed control. All diese Maßnahmen sorgen für eine Benutzererfahrung mit mehr Sicherheit und Kontrolle und bieten Schutz vor Websites, die den Benutzer belästigen und zur Installation von unerwünschter oder schädlicher Software verleiten wollen.These measures combine to give users a safer, more controlled user experience since they are protected against sites which harass them to install either unwanted or malicious software.

Diese Features schützen außerdem Kunden, die IE6 SP2 zum Navigieren zu Websites verwenden, die es Ihnen ermöglichen, WPFWPF Anwendungen herunterzuladen und zu installieren.These features also protect customers who use IE6 SP2 to browse to web sites that allow them to download and install WPFWPF applications. Dies ist insbesondere darauf zurückzuführen, dass IE6 SP2 eine bessere Benutzer Leistung bietet, die die Wahrscheinlichkeit verringert, dass Benutzer böswillige oder undurchsichtiger-Anwendungen installieren können, unabhängig davon, welche Technologie für die Erstellung verwendet wurde, einschließlich WPFWPF.In particular, this is because IE6 SP2 offers a better user experience that reduces the chance for users to install malicious or devious applications irrespective of what technology was used to build it, including WPFWPF. WPFWPF wird diesen Schutzmaßnahmen mithilfe von ClickOnce hinzugefügt, um das Herunterladen von Anwendungen über das Internet zu vereinfachen.adds to these protections by using ClickOnce to facilitate downloading of its applications over the Internet. Da XAML-Browser Anwendungen (XBAPs) innerhalb eines Sicherheits Sandkastens der Internet Zone ausgeführt werden, können Sie nahtlos gestartet werden.Since XAML browser applications (XBAPs) execute within an Internet zone security sandbox, they can be seamlessly launched. Andererseits setzen eigenständige WPFWPF-Anwendungen volle Vertrauenswürdigkeit voraus, um ausgeführt werden zu können.On the other hand, standalone WPFWPF applications require full trust to execute. Bei diesen Anwendungen zeigt ClickOnce während des Startvorgangs ein Sicherheits Dialogfeld an, um die Verwendung der zusätzlichen Sicherheitsanforderungen der Anwendung zu benachrichtigen.For these applications, ClickOnce will display a security dialog box during the launch process to notify the use of the application's additional security requirements. Da dies vom Benutzer initiiert werden muss, unterliegt der Vorgang außerdem der Benutzerinitiierungslogik und kann kann abgebrochen werden.However, this must be user-initiated, will also be governed by user initiated logic, and can be canceled.

Internet Explorer 7 umfasst und erweitert die Sicherheitsfunktionen von IE6 SP2 im Rahmen eines kontinuierlichen Engagements der Sicherheit.Internet Explorer 7 incorporates and extends the security capabilities of IE6 SP2 as part of an ongoing commitment to security.

Siehe auchSee also