Best Practices zu Sicherheitsthemen für Information ProtectionSecurity best practices for Information Protection

Das Software Development Kit (SDK) für Information Protection stellt ein stabiles System zum Veröffentlichen und Nutzen geschützter Informationen aller Art bereit.Information Protection Software Development Kits (SDKs) provide a robust system for publishing and consuming protected information of all types. Um ein möglichst sicheres System zu erhalten, müssen für Information Protection aktivierte Anwendungen unter Berücksichtigung der Best Practices erstellt werden.To help a system be as strong as possible, information protection-enabled applications must be built using best practices. Anwendungen sind gemeinsam dafür zuständig, die Sicherheit dieses Ökosystems aufrechtzuerhalten.Applications share responsibility in helping maintain the security of this ecosystem. Durch Identifizieren und Minimieren von Sicherheitsrisiken, die bei der Anwendungsentwicklung entstehen, lässt sich die Sicherheit bei der Software-Implementierung erhöhen.Identifying security risks and providing mitigations for those risks introduced during application development helps to minimize the likelihood of a less secure software implementation.

Diese Informationen ergänzen den Vertrag, der unterzeichnet werden muss, um die digitalen Zertifikate für Anwendungen zu erhalten, die die SDKs verwenden.This information supplements the legal agreement that must be signed, to obtain digital certificates for applications using the SDKs.

Nicht behandelte InhalteSubjects not covered

Zwar handelt es sich bei den folgenden Themen um wichtige Überlegungen zum Erstellen einer Entwicklungsumgebung und sicherer Anwendungen, sie werden jedoch nicht in diesem Artikel behandelt:Although the following subjects are important considerations for creating a development environment and secure applications, they're out of scope for this article:

  • Verwaltung des Softwareentwicklungsprozesses – Konfigurationsverwaltung, Schützen von Quellcode, Minimieren des Zugriffs auf Code nach dem Debuggen sowie Zuweisen von Prioritäten zu Fehlern.Software development process management — Configuration management, securing source code, minimizing access to debugged code, and assigning priority to bugs. Für einige Kunden ist ein sichererer Softwareentwicklungsprozess von höchster Bedeutung.For some customers, having a more secure software development process is of paramount importance to them. Einige Kunden schreiben den Ablauf eines Entwicklungsprozesses sogar vor.Some customers even prescribe a development process.
  • Häufige Codierungsfehler – Informationen zur Vermeidung von Pufferüberläufen.Common coding errors — Information for avoiding buffer overruns. Es wird empfohlen, die aktuelle Ausgabe von „Writing Secure Code“ von Michael Howard und David LeBlanc (Microsoft Press, 2002) zu Rate zu ziehen, um mehr über diese allgemeinen Bedrohungen und Möglichkeiten zu ihrer Minimierung zu erfahren.We recommend the latest version of Writing Secure Code by Michael Howard and David LeBlanc (Microsoft Press, 2002) to review these generic threats and mitigations.
  • Social Engineering – Enthält Informationen über prozedur- und strukturbezogene Sicherheitsmaßnahmen, mit denen Sie sich gegen eine unerwünschte Verwendung von Code durch Entwickler oder andere Personen innerhalb der Organisation des Herstellers schützen können.Social engineering — Includes information about procedural and structural safeguards, to help protect code against exploitation by developers or others within the manufacturer's organization.
  • Physische Sicherheit: Enthält Informationen über das Sperren des Zugriffs auf Ihre Codebasis sowie über das Signieren von Zertifikaten.Physical security — Includes information about locking down access to your code base and signing certificates.
  • Bereitstellung und Verteilung von Vorabversionen: Enthält Informationen über das Verteilen Ihrer Betasoftware.Deployment or distribution of prerelease software — Includes information about distributing your beta software.
  • Netzwerkverwaltung: Enthält Informationen über Angriffserkennungssysteme in Ihren physischen Netzwerken.Network management — Includes information about intrusion-detection systems on your physical networks.

Bedrohungsmodelle und RisikominderungThreat models and mitigations

Besitzer digitaler Informationen müssen die Umgebungen, in denen ihre Objekte entschlüsselt werden, auswerten können.Digital information owners need the ability to evaluate the environments in which their assets will be decrypted. Informationen zu den Mindestsicherheitsstandards können Informationsbesitzern als Framework dienen, um die Sicherheitsstufe der Anwendungen zu verstehen und zu bewerten.A statement of minimum security standards provides information owners with a framework for understanding and assessing the security level of the applications.

In einigen Sektoren, z.B. bei Behörden und im Gesundheitswesen, gibt es Prozesse und Standards zur Zertifizierung und Akkreditierung, die möglicherweise für Ihr Produkt gelten.Some industries, such as government and health care, have certification and accreditation processes and standards that may apply to your product. Allein durch das Befolgen dieser Mindestsicherheitsempfehlungen werden die individuellen Akkreditierungsanforderungen Ihrer Kunden jedoch nicht erfüllt.Meeting these minimum security recommendations isn't a substitute for the unique accreditation needs of your customers. Diese Sicherheitsstandards sollen Sie jedoch bei der Vorbereitung auf aktuelle und zukünftige Kundenanforderungen unterstützen. Jede Investition, die Sie schon frühzeitig im Entwicklungszyklus tätigen, wird Ihrer Anwendung zugutekommen.However, the intent of the security standards is to help you prepare for current and future customer requirements, and any investment you make early in the development cycle will benefit your application. Bei diesen Richtlinien handelt es sich um Empfehlungen, nicht um ein formelles Microsoft-Zertifizierungsprogramm.These guidelines are recommendations, not a formal Microsoft certification program.

In einem Rights Management-Dienstsystem werden Sicherheitsrisiken in verschiedene Hauptkategorien zusammengefasst:There are several major categories of vulnerabilities in a rights management services system including:

  • Lecks: Informationen werden an nicht autorisierten Orten angezeigt.Leakage — Information appears in unauthorized locations.
  • Beschädigung: Software oder Daten werden in nicht autorisierter Weise geändert.Corruption — Software or data is modified in an unauthorized manner.
  • Verweigerung: Eine Computerressource steht für die Nutzung nicht zur Verfügung.Denial — A computing resource isn't available for use.

Bei diesen Themen geht es hauptsächlich um Probleme mit Lecks.These topics focus primarily on leakage issues. Die Integrität eines API-Systems hängt von seiner Fähigkeit ab, Informationen langfristig zu schützen und nur berechtigten Entitäten Zugriff zu gewähren.The integrity of an API system depends upon its ability, over time, to protect information, enabling access only to designated entities. In diesen Themen werden auch Probleme durch Beschädigungen behandelt.These topics also touch upon corruption issues. Probleme durch Verweigerungen werden hingegen nicht thematisiert.Denial issues aren't covered.

Microsoft führt keine Tests bezüglich der Einhaltung des Mindeststandards durch und prüft auch nicht die Ergebnisse derartiger Tests.Microsoft doesn't test or review test results related to meeting the minimum standard. Es obliegt dem Partner sicherzustellen, dass die Mindeststandards erfüllt werden.The partner is responsible for ensuring the minimum standards are met. Microsoft stellt zwei zusätzliche Empfehlungsstufen zur Verfügung, um häufige Bedrohungen zu minimieren.Microsoft provides two additional levels of recommendations to help mitigate common threats. Hierbei handelt es sich im Allgemeinen um ergänzende Vorschläge.In general, these suggestions are additive. Bei den bevorzugten Empfehlungen wird beispielsweise davon ausgegangen, dass die Mindeststandards erfüllt wurden – sofern anwendbar und nicht anderweitig spezifiziert.For example, meeting preferred recommendations assumes that you have met minimum standards, where applicable, unless otherwise specified.

StandardstufeStandard level DescriptionDescription
MindeststandardMinimum standard Eine Anwendung, die geschützte Informationen verarbeitet, muss vor dem Signieren des von Microsoft zur Verfügung gestellten Produktionszertifikats den Mindeststandard erfüllen.An application that handles protected information must meet the minimum standard, before it can be signed with the production certificate received from Microsoft. Partner verwenden im Allgemeinen das Produktionshierarchiezertifikat zum Zeitpunkt des letzten Releases der Software.Partners generally use the production hierarchy certificate, at the time of final release of the software. Mit den eigenen internen Tests eines Partners wird überprüft, ob die Anwendung diesen Mindeststandard erfüllt.A partner's own internal tests are used to verify whether the application meets this minimum standard. Das Erfüllen des Mindeststandards stellt keine von Microsoft bestätigte Sicherheitsgarantie dar und darf auch nicht als solche ausgelegt werden.Meeting the minimum standard isn't, and shouldn't be construed as, a guarantee of security by Microsoft. Microsoft führt keine Tests bezüglich der Einhaltung des Mindeststandards durch und prüft auch nicht die Ergebnisse derartiger Tests.Microsoft doesn't test or review test results related to meeting the minimum standard. Es obliegt dem Partner sicherzustellen, dass die Mindeststandards erfüllt werden.The partner is responsible for ensuring the minimum is met.
Empfohlener StandardRecommended standard Die empfohlenen Richtlinien sind richtungsweisend für erhöhte Anwendungssicherheit und lassen darauf schließen, wie sich das SDK möglicherweise entwickelt, wenn mehr Sicherheitskriterien implementiert werden.Recommended guidelines both chart a path to improved application security, and provide an indication of how the SDK may evolve as more security criteria are implemented. Anbieter können ihre Anwendungen durch Einhalten dieser strikteren Richtlinien mit erhöhter Sicherheit auf dem Markt differenzieren.Vendors may differentiate their applications by building to this higher level of security guidelines.
Bevorzugter StandardPreferred standard Dieser Standard ist die höchste Sicherheitsstufe, die derzeit festgelegt werden kann.This standard is the highest category of security currently defined. Anbieter, die ihre Anwendungen als äußerst sicher vermarkten möchten, sollten sich für diese Stufe entscheiden.Vendors who develop applications marketed as highly secure should aim for this standard. Anwendungen, die diesem Standard entsprechen, sind bei Angriffen wahrscheinlich dem geringsten Risiko ausgesetzt.Applications that adhere to this standard are likely to be the least vulnerable to attack.

SchadsoftwareMalicious software

Microsoft hat Mindeststandards definiert, die Ihre Anwendung erfüllen muss, um Inhalte vor Schadsoftware zu schützen.Microsoft has defined minimum required standards that your application must meet to protect content from malicious software.

Importieren von Schadsoftware durch Verwenden von AdresstabellenImporting malicious software by using address tables

Das Information Protection-SDK unterstützt keine Änderungen am Code zur Laufzeit oder Änderungen an der Importadresstabelle (IAT).The information protection SDK doesn't support code modification at run time or modification of the import address table (IAT). Eine Importadresstabelle wird für jede DLL erstellt, die in Ihren Prozessraum geladen wird.An import address table is created for every DLL loaded in your process space. Sie gibt die Adressen aller von Ihrer Anwendung importierten Funktionen an.It specifies the addresses of all functions that your application imports. Ein häufiger Angriff ist die Änderung der IAT-Einträge in Ihrer Anwendung, sodass diese auf die Schadsoftware zeigen.One common attack is to modify the IAT entries within an application to, for example, point to malicious software. Wenn das SDK diesen Angriffstyp erkennt, wird die Anwendung beendet.The SDK stops the application when it detects this type of attack.

MindeststandardMinimum standard

  • Während der Ausführung kann die Importadresstabelle im Anwendungsprozess nicht geändert werden.You can't modify the import address table in the application process during execution. In Ihrer Anwendung sind viele der Funktionen festgelegt, die zur Laufzeit über Adresstabellen aufgerufen werden.Your application specifies many of the functions called at run time by using address tables. Diese Tabellen können während oder nach der Laufzeit nicht verändert werden.These tables can't be altered during or after run time. Diese Einschränkung bedeutet unter anderem, dass Sie keine Codeprofile in einer Anwendung erstellen können, die mithilfe des Produktionszertifikats signiert ist.Among other things, this restriction means you can't perform code-profiling on an application signed by using the production certificate.
  • Sie können die DebugBreak-Funktion nicht aus einer im Manifest angegebenen DLL aufrufen.You can't call the DebugBreak function from within any DLL specified in the manifest.
  • Sie können LoadLibrary nicht aufrufen, wenn das Flag DONT_RESOLVE_DLL_REFERENCES festgelegt ist.You can't call LoadLibrary with the DONT_RESOLVE_DLL_REFERENCES flag set. Das Flag weist das Ladeprogramm an, die Bindung an die importierten Module zu überspringen, was die Änderung der Importadresstabelle zur Folge hat.This flag tells the loader to skip binding to the imported modules, thereby modifying the import address table.
  • Sie können das verzögerte Laden nicht verändern, indem Sie den Linkerschalter /DELAYLOAD zur Laufzeit oder später ändern.You can't alter delayed loading by making run-time or subsequent changes to the /DELAYLOAD linker switch.
  • Sie können das verzögerte Laden auch nicht verändern, indem Sie Ihre eigene Version der Hilfsfunktion Delayimp.lib bereitstellen.You can't alter delayed loading by providing your own version of the Delayimp.lib helper function.
  • Sie können keine Module entladen, die durch authentifizierte Module verzögert geladen wurden, während die Information Protection-SDK-Umgebung existiert.You can't unload modules that are delay-loaded by authenticated modules, while the information protection SDK environment exists.
  • Sie können den Linkerschalter /DELAY:UNLOAD nicht zum Aktivieren des Entladevorgangs der verzögerten Module verwenden.You can't use the /DELAY:UNLOAD linker switch to enable unloading of delayed modules.

Fehlerhafte Interpretation von LizenzrechtenIncorrectly interpreting license rights

Wenn Ihre Anwendung die in der SDK-Veröffentlichungslizenz aufgeführten Rechte nicht ordnungsgemäß interpretiert und durchsetzt, könnten Sie möglicherweise Informationen in einer Weise zur Verfügung stellen, die vom Besitzer der Informationen nicht beabsichtigt wurde.If your application doesn't correctly interpret and enforce the rights expressed in the SDK issuance license, you may make information available in ways that the information owner didn't intend. Beispiel: Eine Anwendung erlaubt einem Benutzer, unverschlüsselte Informationen auf ein neues Medium zu speichern, während die Veröffentlichungslizenz lediglich das Recht gewährt, die Informationen anzuzeigen.For example, when an application allows a user to save unencrypted information to new media, when the issuance license only confers the right to view the information.

Azure Information Protection (AIP)Azure Information Protection (AIP)

Das Informationsschutz System organisiert Rechte in einigen Gruppierungen.The information protection system organizes rights a few groupings. Weitere Informationen finden Sie unter Konfigurieren von Nutzungsrechten für Azure Information Protection.For more information, see Configuring usage rights for Azure Information Protection.

Mit AIP kann ein Benutzer Informationen auf Wunsch verschlüsseln.AIP allows a user to either decrypt information or not. Die Informationen haben keinen eigenen Schutz.The information doesn't have any inherent protection. Wenn ein Benutzer das Recht zur Entschlüsselung hat, gestattet die API diese Entschlüsselung.If a user has the right to decrypt, the API permits it. Die Anwendung ist verantwortlich für die Verwaltung bzw. den Schutz dieser Informationen, nachdem sie unverschlüsselt vorliegen.The application is responsible for managing or protecting that information after it is in the clear. Eine Anwendung ist für die Verwaltung ihrer Umgebung und Schnittstelle verantwortlich, um eine nicht autorisierte Nutzung von Informationen zu verhindern.An application is responsible for managing its environment and interface to prevent the unauthorized use of information. Beispiel: Deaktivieren der Schaltflächen Drucken und Kopieren, wenn eine Lizenz nur das Recht zum ANZEIGEN gewährt.For example, disabling the Print and Copy buttons if a license only grants the VIEW right. Ihre Testsuite sollte überprüfen, ob sich Ihre Anwendung im Hinblick auf alle von ihr erkannten Lizenzrechte ordnungsgemäß verhält.Your test suite should verify that your application acts correctly on all the license rights that it recognizes.

MindeststandardMinimum standard

  • Die Kundenimplementierung von XrML v.1.2-Rechten sollte mit den Definitionen dieser Rechte übereinstimmen, die in den XrML-Spezifikationen beschrieben sind. Letztere finden Sie auf der XrML-Website, http://www.xrml.org).The customer implementation of XrML v.1.2 rights should be consistent with the definitions of these rights, as described in the XrML specifications, which are available at the XrML Web site (http://www.xrml.org). Alle für Ihre Anwendung spezifischen Rechte müssen für sämtliche Entitäten definiert werden, die auf Ihre Anwendung möglicherweise zugreifen.Any rights that are specific to your application must be defined for all entities that have an interest in your application.
  • Ihre Testsuite und Ihr Testprozess sollten überprüfen, ob Ihre Anwendung im Hinblick auf die von der Anwendung unterstützten Rechte ordnungsgemäß agiert.Your test suite and test process should verify that your application executes properly against the rights that the application supports. Sie sollten auch sicherstellen, dass sie bei nicht unterstützten Rechten nicht reagiert.It should also verify that it doesn't act upon unsupported rights.
  • Wenn Sie eine veröffentlichende Anwendung erstellen, müssen Sie Informationen zur Verfügung stellen, die die verwendeten inhärenten Rechte erklären.If you're building a publishing application, you must make information available that explains the intrinsic rights used. Dies umfasst Rechte, die von der veröffentlichenden Anwendung unterstützt bzw. nicht unterstützt werden, sowie Angaben, wie diese Rechte interpretiert werden sollen.This includes those that are, and aren't, supported by the publishing application, and how these rights should be interpreted. Darüber hinaus sollte auf der Benutzeroberfläche für den Endbenutzer klar ersichtlich sein, welche Auswirkungen jedes der gewährten oder verweigerten Rechte für eine bestimmte Information hat.In addition, the user interface should make clear to the end user what the implications are of each right granted or denied an individual piece of information.
  • Jedes Recht, das durch Einschluss in neue, von einer Anwendung implementierte Rechte abstrahiert wurde, muss der neuen Terminologie zugeordnet werden.Any rights that are abstracted, by inclusion in new rights implemented by an application, must be mapped to the new terminology. Beispiel: Ein neues Recht, genannt MANAGER, beinhaltet möglicherweise Rechte wie Drucken, Kopieren und Bearbeiten als abstrahierte Rechte.For example, a new right called MANAGER might include as abstracted rights the PRINT, COPY, and EDIT rights.

Zurzeit keine.None at this time.

Bevorzugter StandardPreferred standard

Zurzeit keine.None at this time.

Nächste SchritteNext steps

Best Practices für das Implementieren von Anwendungen mittels AIP-SDK umfassen die folgenden Artikel:Best practices for implementing applications by using the AIP SDK include the following articles: