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

Os recursos de segurança fornecidos pelo Microsoft.NET framework e Microsoft Office podem ajudar a proteger suas soluções do Office contra ameaças possíveis de segurança.Este tópico explica algumas de essas ameaças e fornece recomendações ajudar a proteger contra eles.Também inclui informações sobre como as configurações de segurança do Microsoft Office afetam soluções do Office.

Aplicáve a: As informações neste tópico se aplicam a projetos em nível de aplicativo e em nível de documento para o Office 2013 e o Office 2010. Consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.

O código de confiança é Repurposed em um novo documento, mal-intencionado

Um invasor poderia levar o código confiável que é significado para uma finalidade específico, por exemplo, baixando informações pessoais para um aplicativo de emprego, e reutilizá-lo em outro documento, como uma planilha.O código não souber o documento original não estiver sendo executado, e pode abrir outras ameaças, como revelar de informações pessoais ou executar código com privilégios elevados, quando aberto por um usuário diferente.Como alternativa, o invasor pode simplesmente modificar os dados na planilha para que, quando enviado para a vítima, se comporta inesperado.Alterando os valores, as fórmulas, ou características de apresentação de uma planilha vinculada ao código, é possível que um usuário mal-intencionado atacar outro usuário enviar um arquivo alterado.Também pode ser possível acessar informações para usuários que não deveriam consulte alterando valores na planilha.

Desde o local do assembly e o local de documento deve ter a prova suficiente para executar, este ataque não é fácil de montar.Por exemplo, documentos em anexos de email ou em servidores não confiáveis da intranet não tem permissões suficientes para executar.

Para executar este possível ataque, o próprio código deve ser escrito de tal forma que toma decisões com base nos dados potencialmente não.Um exemplo é criando uma planilha que tenha uma célula oculto que contém o nome de um servidor de banco de dados.O usuário envia a planilha a uma página ASPX, que tenta se conectar ao servidor usando a autenticação SQL e uma senha embutida da américa.Um invasor pode substituir o conteúdo da célula oculto com um nome do computador diferente e obter a senha da américa.Para evitar esse problema, nunca embuta senhas de código, e sempre IDs de servidor com uma lista de verificação interna de servidores que são conhecidas por ser bons antes de acessar o servidor.

1thd35d7.collapse_all(pt-br,VS.110).gifRecomendações

  • Sempre valide a entrada e, se os dados do usuário, do documento, de um banco de dados, de um serviço da Web, ou de qualquer outra fonte.

  • Seja cuidadoso a exposição de tipos específicos de funcionalidade, como obter dados privilegiados em nome de usuário e os coloca em uma planilha desprotegida.

  • Dependendo do tipo de aplicativo, pode fazer sentido verifique se o documento original é executado antes de executar qualquer código.Por exemplo, verifique que a está executando de um documento armazenado em um local conhecido, seguro.

  • Pode ser uma boa idéia exibir um aviso quando o documento abre se seu aplicativo executa qualquer ações privilegiadas.Por exemplo, você pode criar um tela inicial ou caixa de diálogo de inicialização informando que o aplicativo irá acessar informações pessoais, e instrua o usuário escolha para continuar ou cancelar.Se um usuário final obtém um aviso de um documento convenientemente inocente, ou poderão interromper o aplicativo antes que qualquer coisa está comprometido.

O código é bloqueado pelo backup do modelo de objeto do Outlook

Microsoft Office pode restringir o código de usar determinadas propriedades, métodos, e objetos no modelo de objeto.Por restringindo acesso a esses objetos, ajuda do Outlook para impedir que os sem-fins e vírus de email usam o modelo de objeto para fins mal-intencionados.Este recurso de segurança é conhecido como o backup do modelo de objeto do Outlook.Se um suplemento tentar usar uma propriedade ou método restrita quando o objeto do modelo de objeto está ativado, o Outlook exibe um aviso de segurança que permite ao usuário para interromper a operação, ou ativar o usuário para conceder acesso à propriedade ou método por um período de tempo limitado.Se o usuário para a operação, suplementos do Outlook criado usando soluções do Office no Visual Studio irá acionar COMException.

O objeto do modelo de objeto pode afetar suplementos de maneiras diferentes, dependendo se o Outlook é usado com Microsoft Exchange Server:

  • Se o Outlook não é usado com Exchange, um administrador pode ativar ou desativar o backup do modelo de objeto para qualquer suplementos no computador.

  • Se o Outlook é usado com Exchange, um administrador pode ativar ou desativar o backup do modelo de objeto para qualquer suplementos no computador, ou o administrador pode especificar que determinado suplementos pode executar sem encontrar o backup do modelo de objeto.Os administradores podem também alterar o comportamento das áreas de backup do modelo de objeto com certeza do modelo de objeto.Por exemplo, os administradores podem automaticamente permitir que os suplementos enviar email via programação, mesmo se o objeto do modelo de objeto é ativado.

Iniciando no Outlook 2007, o comportamento de backup do modelo de objeto foi alterado para melhorar a experiência do desenvolvedor e o usuário para ajudar a manter Outlook seguro.Para obter mais informações, consulte Alterações de segurança de código em Outlook 2007.

1thd35d7.collapse_all(pt-br,VS.110).gifMinimizando avisos de backup do modelo de objeto

Para ajudar a evitar avisos de segurança quando você usa propriedades e métodos restritos, certifique-se que o suplemento são objetos do Outlook do campo de Application da classe de ThisAddIn em seu projeto.Para obter mais informações sobre este campo, consulte Os suplementos de nível de aplicativo de programação..

Somente os objetos do Outlook obtidos de esse objeto podem ser confiáveis por backup do modelo de objeto.A o contrário, os objetos que são obtidos de um novo objeto de Microsoft.Office.Interop.Outlook.Application não são confiáveis, e propriedades e métodos restritos irá gerar avisos de segurança se o objeto do modelo de objeto é ativado.

O exemplo de código a seguir exibe um aviso de segurança se o objeto do modelo de objeto é ativado.A propriedade de To da classe de Microsoft.Office.Interop.Outlook.MailItem é restrita pelo backup do modelo de objeto.O objeto de Microsoft.Office.Interop.Outlook.MailItem é não confiável porque o código obtém o de Microsoft.Office.Interop.Outlook.Application que é criado usando o operador de new , em vez de obter do campo de 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 demonstra como usar a propriedade restrita de To de um objeto de Microsoft.Office.Interop.Outlook.MailItem que seja confiável pelo backup do modelo de objeto.o código usa o campo de confiança de Application para obter 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çãoObservação

Se o Outlook é usado com Exchange, então otenha todos os objetos do Outlook de ThisAddIn.Application não garante que o suplemento poderá acessar o modelo de objeto inteiro do Outlook.Por exemplo, se um administrador do Outlook Exchange define para negar automaticamente qualquer tentativa de acessar informações de endereço usando o modelo de objeto do Outlook, então Outlook não permitirá que o exemplo de código anterior acessa a propriedade de To , mesmo que o exemplo de código usa o campo de confiança de ThisAddIn.Application .

1thd35d7.collapse_all(pt-br,VS.110).gifEspecificando que suplementos para confiar quando usando Exchange

Quando Outlook é usado com Exchange, os administradores podem especificar que determinado suplementos pode executar sem encontrar o backup do modelo de objeto.Suplementos do Outlook criado usando soluções do Office no Visual Studio não pode ser confiável individualmente; só podem ser confiáveis como um grupo.

Outlook depende de um suplemento com base em um código hash de DLL do ponto de entrada do suplemento.Qualquer suplementos do Outlook que acessam o uso de Visual Studio Tools for Office Runtime o mesmo DLL do ponto de entrada (VSTOLoader.dll).Isso significa que um administrador depende se qualquer suplemento que tem como alvo Visual Studio Tools for Office Runtime para executar sem encontrar o backup do modelo de objeto, então os suplementos restante de direcionamento Visual Studio Tools for Office Runtime também é confiável.Para obter mais informações sobre depender de suplementos específico para a execução sem encontrar o backup do modelo de objeto, consulte Especificar os usos do Outlook do método gerenciar recursos de prevenção de anti-vírus.

As alterações de permissão não terão efeito imediatamente

Se o administrador ajusta permissões para um documento ou um assembly, os usuários devem interromper e reiniciar em todos os aplicativos do Office para que as alterações sejam aplicadas.

Outros aplicativos que hospedam aplicativos do Microsoft Office também podem impedir que as novas permissões são aplicadas.Os usuários devem parar todos os aplicativos que usam Office, hospedados ou autônomos, quando as políticas de segurança são alteradas.

As configurações do centro de confiança no Microsoft Office system não afetam personalizações de suplementos ou de um documento Nível

Os usuários podem evitar carregar suplementos definindo uma opção em Central de Confiabilidade.Em o entanto, suplementos de aplicativo e personalizações da nível criados usando soluções do Office no Visual Studio não são afetados por essas configurações de confiança.

Se o usuário evitar carregar suplementos usando Central de Confiabilidade, os seguintes tipos de suplementos não carregará:

  • Suplementos gerenciado e não gerenciado.

  • Documentos inteligentes gerenciados e não gerenciados.

  • Suplementos gerenciado e não gerenciado de automação.

  • Componentes gerenciados e não gerenciados de dados em tempo real.

Os procedimentos a seguir descrevem como os usuários podem usar Central de Confiabilidade para restringir carregar suplementos no Microsoft Office 2013 e Microsoft Office 2010.Esses procedimentos não afetam suplementos ou personalizações criado usando ferramentas de desenvolvimento do Office no Visual Studio.

Para desativar suplementos em aplicativos do Microsoft Office 2010 e Microsoft Office 2013

  1. Escolha a guia de Arquivo .

  2. Escolha o botão de Nome Opções .

  3. Em o painel de categorias, escolha Central de Confiabilidade.

  4. Em o painel de detalhes, clique Configurações da Central de Confiabilidade.

  5. Em o painel de categorias, escolha Suplementos.

  6. Em o painel de detalhes, selecione Requer suplementos do aplicativo ser assinado pelo fornecedor confiável ou Desabilitar todos os suplementos de aplicativos.

Consulte também

Outros recursos

Protegendo soluções do Office