Melhores práticas de segurança para proteção de informaçõesSecurity best practices for Information Protection

Kits de desenvolvimento de Software de proteção de informações (SDKs) fornecem um sistema robusto para publicar e consumir informações protegidas de todos os tipos.Information Protection Software Development Kits (SDKs) provide a robust system for publishing and consuming protected information of all types. Para ajudar a um sistema ser tão forte quanto possível, aplicativos de ativar a proteção de informações devem ser criados utilizando as melhores práticas.To help a system be as strong as possible, information protection-enabled applications must be built using best practices. Aplicações partilham responsabilidade nos ajudar a manter a segurança deste ecossistema.Applications share responsibility in helping maintain the security of this ecosystem. Identificar os riscos de segurança e proporcionar soluções de mitigação para esses riscos introduzidos durante o desenvolvimento da aplicação ajuda a minimizar a probabilidade de uma implementação de software menos segura.Identifying security risks and providing mitigations for those risks introduced during application development helps to minimize the likelihood of a less secure software implementation.

Estas informações complementam o contrato legal que deve estar assinado, para obter os certificados digitais para aplicações com os SDKs.This information supplements the legal agreement that must be signed, to obtain digital certificates for applications using the SDKs.

Assuntos não abrangidosSubjects not covered

Embora os seguintes assuntos são considerações importantes para a criação de um ambiente de desenvolvimento e aplicativos seguros, estão fora do escopo deste artigo:Although the following subjects are important considerations for creating a development environment and secure applications, they're out of scope for this article:

  • Gerenciamento de processos de desenvolvimento de software – gerenciamento de configuração, protegendo o código-fonte, minimizando o acesso ao código depurado e atribuir prioridade a erros.Software development process management — Configuration management, securing source code, minimizing access to debugged code, and assigning priority to bugs. Para alguns clientes, ter um processo de desenvolvimento de software mais seguro é de fundamental importância aos mesmos.For some customers, having a more secure software development process is of paramount importance to them. Alguns clientes prescrevem mesmo um processo de desenvolvimento.Some customers even prescribe a development process.
  • Erros de codificação comuns – informações para evitar saturações de buffer.Common coding errors — Information for avoiding buffer overruns. Recomendamos a versão mais recente de “Writing Secure Code”, de Michael Howard e David LeBlanc (Microsoft Press, 2002), para rever estas ameaças e mitigações genéricas.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.
  • Engenharia social – inclui informações sobre salvaguardas processuais e estruturais, para ajudar a proteger o código contra a exploração por programadores ou outras pessoas na organização do fabricante.Social engineering — Includes information about procedural and structural safeguards, to help protect code against exploitation by developers or others within the manufacturer's organization.
  • Segurança física – inclui informações sobre o bloqueio do acesso ao seu código base e a assinatura de certificados.Physical security — Includes information about locking down access to your code base and signing certificates.
  • Implementação ou distribuição de software de pré-lançamento – inclui informações sobre a distribuição de software beta.Deployment or distribution of prerelease software — Includes information about distributing your beta software.
  • Gestão de rede – inclui informações sobre sistemas de deteção de intrusões nas suas redes físicas.Network management — Includes information about intrusion-detection systems on your physical networks.

Modelos de ameaças e mitigaçõesThreat models and mitigations

Os proprietários de informações digitais tem a capacidade de avaliar os ambientes em que os seus recursos serão desencriptados.Digital information owners need the ability to evaluate the environments in which their assets will be decrypted. Uma instrução de padrões de segurança mínima fornece aos proprietários de informações uma estrutura de compreender e avaliar o nível de segurança dos aplicativos.A statement of minimum security standards provides information owners with a framework for understanding and assessing the security level of the applications.

Alguns setores, como a administração pública e a saúde, têm processos e normas de certificação e acreditação que se podem aplicar ao seu produto.Some industries, such as government and health care, have certification and accreditation processes and standards that may apply to your product. Estas recomendações de segurança mínimo de reunião, não é um substituto para as necessidades de acreditação exclusivas dos seus clientes.Meeting these minimum security recommendations isn't a substitute for the unique accreditation needs of your customers. No entanto, o objetivo dos padrões de segurança consiste em ajudá-lo a preparar-se para os requisitos atuais e futuros dos clientes e qualquer investimento que faça no início do ciclo de desenvolvimento será vantajoso para a sua aplicação.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. Essas diretrizes são recomendações e não um programa de certificação de Microsoft formal.These guidelines are recommendations, not a formal Microsoft certification program.

Existem várias categorias principais de vulnerabilidades num sistema de serviços de gestão de direitos, incluindo as seguintes:There are several major categories of vulnerabilities in a rights management services system including:

  • Fuga – as informações aparecem em localizações não autorizadas.Leakage — Information appears in unauthorized locations.
  • Danos – o software ou os dados são modificados de forma não autorizada.Corruption — Software or data is modified in an unauthorized manner.
  • Negação — um recurso informático não está disponível para utilização.Denial — A computing resource isn't available for use.

Estes tópicos concentram-se principalmente nos problemas relacionados com as fugas.These topics focus primarily on leakage issues. A integridade de um sistema AIP depende da sua capacidade, ao longo do tempo, para proteger as informações, permitindo o acesso apenas a entidades designadas.The integrity of an API system depends upon its ability, over time, to protect information, enabling access only to designated entities. Estes tópicos abordam também os problemas relacionados com os danos.These topics also touch upon corruption issues. Os problemas de rejeição não são abrangidos.Denial issues aren't covered.

Microsoft não testa nem revê os resultados de testes relacionados com o cumprimento dos padrões mínimos.Microsoft doesn't test or review test results related to meeting the minimum standard. O parceiro é responsável por garantir que os padrões mínimos são cumpridos.The partner is responsible for ensuring the minimum standards are met. A Microsoft disponibiliza dois níveis adicionais de recomendações para ajudar a mitigar ameaças comuns.Microsoft provides two additional levels of recommendations to help mitigate common threats. Em geral, estas sugestões são cumulativas.In general, these suggestions are additive. Por exemplo, cumprir as recomendações preferenciais parte do princípio de que cumpriu os padrões mínimos, quando aplicável, salvo especificação em contrário.For example, meeting preferred recommendations assumes that you have met minimum standards, where applicable, unless otherwise specified.

Nível do padrãoStandard level DescriçãoDescription
Padrão mínimoMinimum standard Um aplicativo que identificadores protegidos informações têm de cumprir o padrão mínimo, antes de ele pode ser assinado com o certificado de produção recebido da Microsoft.An application that handles protected information must meet the minimum standard, before it can be signed with the production certificate received from Microsoft. Parceiros em geral, utilizam o certificado de hierarquia de produção, no momento do lançamento final do software.Partners generally use the production hierarchy certificate, at the time of final release of the software. Um parceiro proprietário interno os testes são usados para verificar se a aplicação satisfaz este padrão mínimo.A partner's own internal tests are used to verify whether the application meets this minimum standard. Cumprimento dos padrões mínimos não é e não deve ser interpretada como uma garantia de segurança pela Microsoft.Meeting the minimum standard isn't, and shouldn't be construed as, a guarantee of security by Microsoft. Microsoft não testa nem revê os resultados de testes relacionados com o cumprimento dos padrões mínimos.Microsoft doesn't test or review test results related to meeting the minimum standard. O parceiro é responsável por assegurar que o mínimo é cumprido.The partner is responsible for ensuring the minimum is met.
Padrão recomendadoRecommended standard Diretrizes recomendadas traçam um caminho para maior segurança das aplicações tanto proporcionarem uma indicação da forma como o SDK pode evoluir à medida que são implementados mais critérios de segurança.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. Fornecedores podem diferenciar seus aplicativos pela criação para este nível mais elevado de diretrizes de segurança.Vendors may differentiate their applications by building to this higher level of security guidelines.
Padrão preferencialPreferred standard Este padrão é a mais elevada categoria de segurança atualmente definida.This standard is the highest category of security currently defined. Os fornecedores que desenvolvem aplicações comercializadas como altamente seguras devem ter em vista este padrão.Vendors who develop applications marketed as highly secure should aim for this standard. As aplicações que satisfazem este padrão são, provavelmente, as menos vulneráveis a ataques.Applications that adhere to this standard are likely to be the least vulnerable to attack.

Software maliciosoMalicious software

A Microsoft definiu padrões obrigatórios mínimos que a sua aplicação tem de satisfazer para proteger os conteúdos contra software malicioso.Microsoft has defined minimum required standards that your application must meet to protect content from malicious software.

Importar software malicioso através de tabelas de endereçosImporting malicious software by using address tables

O SDK do information protection não suporta a modificação do código em tempo de execução ou modificação da tabela de endereços de importação (IAT).The information protection SDK doesn't support code modification at run time or modification of the import address table (IAT). É criada uma tabela de endereços de importação para cada DLL carregado no seu espaço de processo.An import address table is created for every DLL loaded in your process space. Essa tabela especifica os endereços de todas as funções que a sua aplicação importa.It specifies the addresses of all functions that your application imports. Um ataque comum consiste em modificar as entradas de IAT numa aplicação para, por exemplo, apontarem para software malicioso.One common attack is to modify the IAT entries within an application to, for example, point to malicious software. O SDK para a aplicação quando Deteta este tipo de ataque.The SDK stops the application when it detects this type of attack.

Padrão mínimoMinimum standard

  • Não é possível modificar a tabela de endereços de importação no processo do aplicativo durante a execução.You can't modify the import address table in the application process during execution. A aplicação especifica muitas das funções chamadas durante o tempo de execução por usando tabelas de endereços.Your application specifies many of the functions called at run time by using address tables. Estas tabelas não podem ser alteradas durante ou após o tempo de execução.These tables can't be altered during or after run time. Entre outras coisas, significa que esta restrição não é possível efetuar o perfil do código de uma aplicação assinada com o certificado de produção.Among other things, this restriction means you can't perform code-profiling on an application signed by using the production certificate.
  • Não pode chamar o DebugBreak funcionar de qualquer dll especificado no manifesto.You can't call the DebugBreak function from within any DLL specified in the manifest.
  • Não pode chamar LoadLibrary com o DONT_RESOLVE_DLL_REFERENCES sinalizar o conjunto.You can't call LoadLibrary with the DONT_RESOLVE_DLL_REFERENCES flag set. Este sinalizador indica ao carregador para ignorar o enlace aos módulos importados, que modifica a tabela de endereços de importação.This flag tells the loader to skip binding to the imported modules, thereby modifying the import address table.
  • Não é possível alterar o carregamento atrasado ao fazer alterações de tempo de execução ou subsequentes ao comutador de ligação /delayload.You can't alter delayed loading by making run-time or subsequent changes to the /DELAYLOAD linker switch.
  • Não é possível alterar o carregamento atrasado ao fornecer sua própria versão da função de programa auxiliar delayimp.You can't alter delayed loading by providing your own version of the Delayimp.lib helper function.
  • Não pode descarregar módulos que são carregados com atraso por módulos autenticados, enquanto o ambiente de SDK de proteção de informações existe.You can't unload modules that are delay-loaded by authenticated modules, while the information protection SDK environment exists.
  • Não é possível utilizar o /DELAY:UNLOAD comutador de ligação para ativar a descarga dos módulos de atrasados.You can't use the /DELAY:UNLOAD linker switch to enable unloading of delayed modules.

Interpretar incorretamente direitos de licençaIncorrectly interpreting license rights

Se seu aplicativo corretamente não interpretar e impor os direitos expressos na licença de emissão de SDK, pode disponibilizar informações disponíveis de forma a que o proprietário de informações não tinha a intenção.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. Por exemplo, quando um aplicativo permite que um utilizador guardar informações não encriptadas para o novo suporte de dados, quando a licença de emissão confere apenas o direito de ver as informações.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)

O sistema de proteção de informações organiza os direitos em alguns agrupamentos.The information protection system organizes rights into a few groupings. Para obter mais informações, veja Configuração de direitos de utilização para o Azure Rights Management.For more information, see Configuring usage rights for Azure Rights Management.

AIP permite que um utilizador desencripte informações ou não.AIP allows a user to either decrypt information or not. As informações não têm qualquer proteção inerente.The information doesn't have any inherent protection. Se um utilizador tiver o direito de desencriptar, a API permite que o faça.If a user has the right to decrypt, the API permits it. A aplicação é responsável por gerir ou proteger essas informações depois é transparente.The application is responsible for managing or protecting that information after it is in the clear. Uma aplicação é responsável por gerenciar seu ambiente e interface para impedir a utilização não autorizada de informações.An application is responsible for managing its environment and interface to prevent the unauthorized use of information. Por exemplo, poderá desativar a impressão e cópia botões se uma licença conceder apenas a EXIBIÇÃO diretamente.For example, disabling the Print and Copy buttons if a license only grants the VIEW right. O seu conjunto de aplicações de teste deve confirmar se a aplicação atua corretamente em todos os direitos de licença que reconhece.Your test suite should verify that your application acts correctly on all the license rights that it recognizes.

Padrão mínimoMinimum standard

  • A implementação de cliente direitos de XrML v.1.2 deve ser consistente com as definições desses direitos, conforme descrito nas especificações de XrML, que estão disponíveis no site do XrML (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). Quaisquer direitos que sejam específicos da sua aplicação têm de ser definidos para todas as entidades que têm um interesse na mesma.Any rights that are specific to your application must be defined for all entities that have an interest in your application.
  • O processo de teste suite e o teste deverá certificar-se de que a aplicação executa corretamente os direitos de que o aplicativo oferece suporte.Your test suite and test process should verify that your application executes properly against the rights that the application supports. Ele também deve verificar que ele não agir de acordo com os direitos não suportados.It should also verify that it doesn't act upon unsupported rights.
  • Se estiver a criar uma aplicação de publicação, tem de disponibilizar informações que explica os direitos intrínsecos utilizados.If you're building a publishing application, you must make information available that explains the intrinsic rights used. Isto inclui os que são e não são suportados pela aplicação e como esses direitos devem ser interpretados.This includes those that are, and aren't, supported by the publishing application, and how these rights should be interpreted. Além disso, a interface de utilizador deve explicar claramente ao utilizador final quais são as implicações de cada direito concedido ou negado a uma determinada informação.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.
  • Quaisquer direitos que sejam abstraídos por inclusão em novos direitos implementados por uma aplicação, tem de ser mapeados para a nova terminologia.Any rights that are abstracted, by inclusion in new rights implemented by an application, must be mapped to the new terminology. Por exemplo, um novo direito denominado GESTOR pode incluir como direitos abstraídos os direitos IMPRIMIR, COPIAR e EDITAR.For example, a new right called MANAGER might include as abstracted rights the PRINT, COPY, and EDIT rights.

Nenhum neste momento.None at this time.

Padrão preferencialPreferred standard

Nenhum neste momento.None at this time.

Passos SeguintesNext steps

Melhores práticas para implementar aplicações com o SDK do AIP incluem os seguintes artigos:Best practices for implementing applications by using the AIP SDK include the following articles: