Considerações de segurança específicas para soluções do Office

Os recursos de segurança fornecidos pelo Microsoft .NET Framework, Microsoft Office 2003 e o sistema pode ajudar a proteger suas soluções Ferramentas do Visual Studio para o Office contra ameaças de segurança do 2007 Microsoft Office.Este tópico explica algumas dessas ameaças e fornece recomendações para ajudar a proteger contra eles. Ele também inclui informações sobre como as configurações de segurança do Microsoft Office afetam soluções Ferramentas do Visual Studio para o Office.

Confiável o código É Repurposed em um documento novo, mal-intencionado

Um invasor poderá assumir o código confiável que serve para uma finalidade específica (por exemplo, baixar informações pessoais para um emprego Aplicativo) e reutilizá-lo em outro documento (como uma planilha).O código não sabe que o documento original não está sendo executado e pode abrir Outro ameaças (como revelar informações pessoais ou Executando código com privilégios maiores) quando aberto por um usuário diferente.Como alternativa, o invasor simplesmente pode modificar os dados na planilha, que, quando enviada para a vítima, ele se comporta inesperadamente.Alterando os valores, fórmulas ou características de apresentação de uma planilha vinculada a código, é possível que um usuário mal-intencionado atacar outro usuário, enviando um arquivo modificado.Talvez também seja possível que usuários para acessar as informações que não deveriam para ver, modificar valores na planilha.

  • Desde que ambos o Ambossembly local e o local do documento devem ter o evidênciAmbos suficientes para executar, esse ataque não é fácil de montagem.Por exemplo, documentos em anexos de email ou em servidores de intranet não confiável não tem permissões suficientes para executar.

  • Para fazer esse ataque possível, o código deve ser escrito de tal forma que ele toma decisões com base nos dados potencialmente não confiáveis.Um exemplo é criar uma planilha que contém uma célula oculta que contém o nome de um servidor de banco de dados.O usuário envia a planilha em uma página ASPX, que tenta se conectar a esse servidor usando a autenticação do SQL e uma senha embutida em.Um invasor poderia Substituir o conteúdo da célula oculto com um computador diferente de nomes e obter a senha.Para evitar esse problema, as senhas nunca embutir em código e sempre Marcar IDs de servidor com uma lista interna de servidores que são conhecidos por ser bom antes de acessar o servidor.

Recomendações

  • Sempre Validar entrada e de dados, se se trata do usuário, o documento, um banco de dados, um serviço da Web ou qualquer Outro Origem.

  • Tenha cuidado ao expor tipos específicos de funcionalidades, como obter dados privilegiados Sobre nome do usuário e colocá-lo Sobre uma planilha desprotegida.

  • Dependendo do tipo de aplicativo, ele pode fazer sentido para verificar se o documento original estiver sendo executado antes de Executando qualquer código (por exemplo, verificar se ele está sendo executado de um documento armazenado em um local conhecido e seguro).

  • Ele pode ser uma boa idéia para Exibir um aviso quando o documento for aberto se seu aplicativo executa qualquer privilegiado ações.Por exemplo, você pode criar uma tela inicial ou uma caixa de diálogo de inicialização dizendo que o aplicativo irá acessar informações pessoais e que o usuário optar por continuar ou Cancelar.Se um usuário final recebe um aviso de um documento aparentemente inocente, ele consiga feche o aplicativo antes de qualquer coisa for comprometida.

Código É bloqueado pelo Outlook Objeto Model Guard

Microsoft Office Outlook 2003 e o Microsoft Office Outlook 2007 podem impedir código usando determinadas propriedades, métodos e objetos no modelo de objeto.Restringindo o Acessar a esses objetos, o Outlook ajuda a evitar worms de email e vírus de usar o modelo de objeto para fins mal-intencionados.Esse recurso de segurança é conhecido como a proteção de modelo de objeto do Outlook.Se um Adicionar-em tenta utilizar um método ou propriedade restrita enquanto a proteção do modelo de objeto está habilitada, o Outlook exibe um aviso de segurança que permite que o usuário parar a operação, ou permite que o usuário conceder Acessar à propriedade ou método por um período limitado de tempo.Se o usuário parar a operação, o Outlook Adicionar-ins criados usando Ferramentas do Visual Studio para o Office lançará um COMException.

A proteção do modelo de objeto pode afetar Adicionar-ins de diversas maneiras, dependendo se o Outlook é usado com o Microsoft Exchange Servidor:

  • Se o Outlook não for usado com o Exchange, um administrador pode habilitar ou Desativar a proteção do modelo de objeto para Tudo Adicionar-ins no computador.

  • Se o Outlook é usado com o Exchange, um administrador poderá habilitar ou desabilitar a proteção do modelo de objeto para Tudo Adicionar-ins no computador, ou o administrador pode especificar que determinadas Adicionar-ins pode executar sem encontrando a proteção do modelo de objeto.Os administradores também podem modificar o comportamento da proteção do modelo de objeto para certas áreas do modelo de objeto.Por exemplo, os administradores podem permitir automaticamente que Adicionar-ins enviar email programaticamente, mesmo que a proteção do modelo de objeto esteja Habilitado.

Para obter mais informações sobre a proteção de modelo de objeto do Outlook no Outlook 2003, incluindo uma lista dos restritos métodos e propriedades, consulte que do Novo no Microsoft Office Outlook 2003 para desenvolvedores?.Para obter mais informações sobre configurações de segurança do Outlook para os administradores do Exchange, consulte personalizando o Outlook 2003 para ajuda evitar vírus.

Observação:

O Outlook 2007 apresenta várias alterações para o comportamento da proteção do modelo de objeto para melhorar a experiência desenvolvedor e usuário ao ajudar a proteger o Outlook.Para obter mais informações, consulte Alterações de segurança do código no Outlook 2007.

Minimizar Objeto Model Guard avisos

Para ajudar a evitar avisos de segurança ao usar propriedades restritas e métodos, certifique-se de que seu Adicionar - in obtém objetos do Outlook do campo Application de classe ThisAddIn no seu projeto.Para obter mais informações sobre esse campo, consulte Programação Application-Nível Adicionar-ins.

Somente objetos do Outlook obtidos esse objeto podem ser confiável para a proteção do modelo de objeto.Por outro lado, objetos que são obtidos de um novo objeto Microsoft.Office.Interop.Outlook.Application não são confiáveis e restritas propriedades e métodos irão gerar avisos de segurança se a proteção do modelo de objeto Habilitado.

O exemplo de código a seguir exibe um aviso de segurança se a proteção do modelo de objeto Habilitado.A propriedade To da classe Microsoft.Office.Interop.Outlook.MailItem é restrito pela proteção do modelo de objeto.O objeto Microsoft.Office.Interop.Outlook.MailItem é não-confiável porque o código obtém-lo de um Microsoft.Office.Interop.Outlook.Application é criada usando o operador de new , em vez de obtenção do campo Application.

Private Sub UntrustedCode()
    Dim application As New Microsoft.Office.Interop.Outlook.Application
    Dim mailItem1 As Microsoft.Office.Interop.Outlook.MailItem = _
        TryCast(application.CreateItem( _
        Microsoft.Office.Interop.Outlook.OlItemType.olMailItem),  _
        Microsoft.Office.Interop.Outlook.MailItem)
    mailItem1.To = "someone@example.com"
    MessageBox.Show(mailItem1.To)
End Sub
private void UntrustedCode()
{
    Microsoft.Office.Interop.Outlook.Application application =
        new Microsoft.Office.Interop.Outlook.Application();
    Microsoft.Office.Interop.Outlook.MailItem mailItem1 =
        application.CreateItem(
        Microsoft.Office.Interop.Outlook.OlItemType.olMailItem) as
        Microsoft.Office.Interop.Outlook.MailItem;
    mailItem1.To = "someone@example.com";
    MessageBox.Show(mailItem1.To);
}

O exemplo de código a seguir demonstra como usar a propriedade restrito To de um objeto de Microsoft.Office.Interop.Outlook.MailItem que confia a proteção do modelo de objeto.O código usa o campo confiável Application para obter o Microsoft.Office.Interop.Outlook.MailItem.

Private Sub TrustedCode()
    Dim mailItem1 As Microsoft.Office.Interop.Outlook.MailItem = _
        TryCast(Me.Application.CreateItem( _
        Microsoft.Office.Interop.Outlook.OlItemType.olMailItem),  _
        Microsoft.Office.Interop.Outlook.MailItem)
    mailItem1.To = "someone@example.com"
    MessageBox.Show(mailItem1.To)
End Sub
private void TrustedCode()
{
    Microsoft.Office.Interop.Outlook.MailItem mailItem1 =
        this.Application.CreateItem(
        Microsoft.Office.Interop.Outlook.OlItemType.olMailItem) as
        Microsoft.Office.Interop.Outlook.MailItem;
    mailItem1.To = "someone@example.com";
    MessageBox.Show(mailItem1.To);
}
Observação:

Se Outlook for usado com o Exchange, em seguida, obter Tudo objetos do Outlook de ThisAddIn.Application não garante que o Adicionar-in será consiga acessar o modelo de objeto do Outlook inteiro.Por exemplo, se um administrador do Exchange define automaticamente Outlook para negar todas as tentativas de acessar informações de endereço usando o modelo de objeto do Outlook, e o Outlook não permitirá que o exemplo de código anterior para acessar a propriedade To , mesmo que o exemplo de código usa o campo confiável ThisAddIn.Application.

Especificando O Adicionar-ins para Confiar quando usando o Exchange

Quando o Outlook é usado com Exchange, os administradores podem especificar que determinadas Adicionar-ins pode executar sem encontrando a proteção do modelo de objeto.O Outlook Adicionar-ins criados usando Ferramentas do Visual Studio para o Office não forem confiáveis individualmente; Eles só podem ser confiáveis como um AAgruparar.

O Outlook confia um Adicionar-in com base em um código de hash da DLL de ponto de entrada do suplemento.Tudo Outlook suplementos criados usando Ferramentas do Visual Studio para o Office usar a mesma DLL de ponto de entrada (AddinLoader.dll para Outlook 2003 add-ins; VSTOLoader.dll para o Outlook 2007 Adicionar-ins).Isso significa que se um administrador confia qualquer Adicionar - criado usando Ferramentas do Visual Studio para o Office para executar sem encontrando a proteção do modelo de objeto e Tudos os outros Adicionar-ins criar usando Ferramentas do Visual Studio para o Office também são confiáveis.Para obter mais informações sobre confiança específicas Adicionar-ins seja executado sem encontrando a proteção do modelo de objeto, consulte personalizando o Outlook 2003 para ajuda evitar vírus.

Alterações de permissão não se efeito imediatamente

Se o administrador ajusta permissões para um documento ou um assembly, os usuários devem sair e, em seguida, reiniciar Tudo aplicativos do Office para que essas alterações sejam impostas.

Outros aplicativos que hospedam Microsoft Office aplicativos também podem impedir que as Novos permissões do que está sendo aplicada.Os usuários devem feche Tudo aplicativos que usam o Office, hospedado ou autônomo, quando as diretivas de segurança são alteradas.

Confiar Centralizar Settings in the 2007 Microsoft Office Sistema não afetam Adicionar-ins ou personalizações de nível de documento

Os usuários podem evitar Adicionar-ins sejam carregados, definindo uma opção no de Confiar Central .No entanto, nível de aplicativo Adicionar-ins e personalizações em nível de documento criadas usando Ferramentas do Visual Studio para o Office não são afetadas por essas configurações Confiar.

Se o usuário impede Adicionar-ins carregamento usando o de Confiar Central , os seguintes tipos de Adicionar-ins não carregará:

  • Gerenciados e não gerenciado COM Adicionar-ins.

  • Marcas inteligentes gerenciadas e não gerenciadas.

  • Documentos inteligentes gerenciados e não gerenciados.

  • Gerenciados e não gerenciado automação Adicionar-ins.

  • Componentes gerenciados e dados em tempo real.

Os procedimentos a seguir descrevem como os usuários podem usar o de Confiar Central para impedir Adicionar-ins Carregando no 2007 Microsoft Office Sistema.Esses procedimentos não afetam Adicionar-ins ou personalizações criadas usando Ferramentas do Visual Studio para o Office.

Para desativar Adicionar-ins no Excel 2007, o PowerPoint 2007 ou o Word 2007

  1. Clique o botão Microsoft Office .

  2. Clique no botão de ApplicationName opções.

  3. No painel de categorias, clique em Confiar Central.

  4. No painel de detalhes, clique De Confiar Centralizar configurações.

  5. No painel de categorias, clique em Adicionar-ins.

  6. No painel de detalhes, Selecionar Requer aplicativo Adicionar-ins a ser assinado pelo editor confiável ou Desativar Tudo aplicativos Adicionar-ins.

Para desativar Adicionar-ins no InfoPath 2007, o Outlook 2007 ou o Visio 2007

  1. No menu ferramentas, clique em Confiar Central.

  2. No painel de categorias, clique em De segurança de macro.

  3. No painel de detalhes, Selecionar Sem avisos e Desativar Tudo as macros ou Avisos para macros assinadas; Tudo as macros não assinadas são Desativados.

  4. No painel de categorias, clique em Adicionar-ins.

  5. No painel Detalhes, Selecionar Aplicar configurações de segurança de macro para instalado Adicionar-ins.

Consulte também

Conceitos

Segurança no Office Solutions (sistema de 2007)

Outros recursos

Segurança em soluções do Office

Segurança no Office Solutions (sistema de 2003)