Udostępnij za pośrednictwem


Konkretne zagadnienia dotyczące zabezpieczeń dla rozwiązań pakietu Office

Funkcje zabezpieczeń udostępniane przez program Microsoft .NET Framework i pakiet Microsoft Office mogą pomóc w ochronie rozwiązań pakietu Office przed możliwymi zagrożeniami bezpieczeństwa. W tym temacie opisano niektóre z tych zagrożeń i przedstawiono zalecenia ułatwiające ochronę przed nimi. Zawiera również informacje o tym, jak ustawienia zabezpieczeń pakietu Microsoft Office wpływają na rozwiązania pakietu Office.

Dotyczy: informacje w tym temacie dotyczą projektów na poziomie dokumentu i projektów dodatków VSTO. Zobacz Funkcje dostępne według aplikacja pakietu Office lication i typu projektu.

Zaufany kod jest zmieniany w nowym, złośliwym dokumencie

Osoba atakująca może użyć zaufanego kodu przeznaczonego do określonego celu, na przykład pobrania danych osobowych dla aplikacji zatrudnienia i ponownego użycia go w innym dokumencie, takim jak arkusz. Kod nie wie, że oryginalny dokument nie jest uruchomiony i może otwierać inne zagrożenia, takie jak ujawnianie informacji osobistych lub wykonywanie kodu ze zwiększonymi uprawnieniami po otwarciu przez innego użytkownika. Alternatywnie osoba atakująca może zmodyfikować dane w arkuszu, tak aby po wysłaniu do ofiary zachowywała się nieoczekiwanie. Zmiana wartości, formuł lub cech prezentacji arkusza połączonego z kodem jest możliwa, aby złośliwy użytkownik zaatakował innego użytkownika, wysyłając zmodyfikowany plik. Użytkownicy mogą również uzyskiwać dostęp do informacji, których nie powinni widzieć, modyfikując wartości w arkuszu.

Ponieważ zarówno lokalizacja zestawu, jak i lokalizacja dokumentu muszą mieć wystarczające dowody do wykonania, ten atak nie jest łatwy do zainstalowania. Na przykład dokumenty w załącznikach poczty e-mail lub na niezaufanych serwerach intranetowych nie mają wystarczających uprawnień do uruchomienia.

Aby ten atak był możliwy, sam kod musi być napisany w taki sposób, że podejmuje decyzje w oparciu o potencjalnie niezaufane dane. Przykładem jest utworzenie arkusza zawierającego ukrytą komórkę zawierającą nazwę serwera bazy danych. Użytkownik przesyła arkusz do strony środowiska ASPX, która próbuje nawiązać połączenie z tym serwerem przy użyciu uwierzytelniania SQL i zakodowanego hasła zabezpieczeń. Osoba atakująca może zastąpić zawartość ukrytej komórki inną nazwą komputera i uzyskać hasło administratora. Aby uniknąć tego problemu, nigdy nie należy kodować haseł i zawsze sprawdzać identyfikatory serwerów względem wewnętrznej listy serwerów, które są znane jako dobre przed uzyskaniem dostępu do serwera.

Zalecenia

  • Zawsze weryfikuj dane wejściowe i dane pochodzące od użytkownika, dokumentu, bazy danych, usługi internetowej lub innego źródła.

  • Należy zachować ostrożność podczas uwidaczniania określonych typów funkcji, takich jak uzyskiwanie uprzywilejowanych danych w imieniu użytkownika i umieszczanie ich w arkuszu niechronionym.

  • W zależności od typu aplikacji warto sprawdzić, czy oryginalny dokument jest uruchomiony przed wykonaniem dowolnego kodu. Na przykład sprawdź, czy jest on uruchomiony z dokumentu przechowywanego w znanej, bezpiecznej lokalizacji.

  • Dobrym pomysłem może być wyświetlenie ostrzeżenia po otwarciu dokumentu, jeśli aplikacja wykonuje jakiekolwiek akcje uprzywilejowane. Możesz na przykład utworzyć ekran powitalny lub okno dialogowe uruchamiania z informacją, że aplikacja będzie uzyskiwać dostęp do danych osobowych, a użytkownik zdecyduje się kontynuować lub anulować. Jeśli użytkownik końcowy otrzyma takie ostrzeżenie od pozornie niewinnego dokumentu, będzie mógł zamknąć aplikację, zanim coś zostanie naruszone.

Kod jest blokowany przez ochronę modelu obiektów programu Outlook

Pakiet Microsoft Office może ograniczyć używanie określonych właściwości, metod i obiektów w modelu obiektów. Ograniczając dostęp do tych obiektów, program Outlook pomaga zapobiec używaniu robaków i wirusów poczty e-mail do złośliwych celów przy użyciu modelu obiektów. Ta funkcja zabezpieczeń jest znana jako ochrona modelu obiektów programu Outlook. Jeśli dodatek VSTO próbuje użyć właściwości lub metody z ograniczeniami, gdy funkcja ochrony modelu obiektów jest włączona, program Outlook wyświetla ostrzeżenie o zabezpieczeniach, które umożliwia użytkownikowi zatrzymanie operacji lub umożliwia użytkownikowi udzielanie dostępu do właściwości lub metody przez ograniczony okres czasu. Jeśli użytkownik zatrzyma operację, dodatki VSTO programu Outlook utworzone przy użyciu rozwiązań pakietu Office w programie Visual Studio będą zgłaszać wyjątek COMException.

Funkcja ochrony modelu obiektów może wpływać na dodatki VSTO na różne sposoby, w zależności od tego, czy program Outlook jest używany z programem Microsoft Exchange Server:

  • Jeśli program Outlook nie jest używany z programem Exchange, administrator może włączyć lub wyłączyć ochronę modelu obiektów dla wszystkich dodatków VSTO na komputerze.

  • Jeśli program Outlook jest używany z programem Exchange, administrator może włączyć lub wyłączyć ochronę modelu obiektów dla wszystkich dodatków VSTO na komputerze lub administrator może określić, że niektóre dodatki VSTO mogą być uruchamiane bez napotkania funkcji ochrony modelu obiektów. Administracja istratory mogą również modyfikować zachowanie funkcji ochrony modelu obiektów dla niektórych obszarów modelu obiektów. Na przykład administratorzy mogą automatycznie zezwalać do dodatków VSTO na programowe wysyłanie wiadomości e-mail, nawet jeśli funkcja ochrony modelu obiektów jest włączona.

    Począwszy od programu Outlook 2007, zachowanie funkcji ochrony modelu obiektów zostało zmienione w celu ulepszenia środowiska dewelopera i użytkownika, a jednocześnie pomaga zapewnić bezpieczeństwo programu Outlook. Aby uzyskać więcej informacji, zobacz Code security changes in Outlook 2007 (Zmiany zabezpieczeń kodu w programie Outlook 2007).

Minimalizowanie ostrzeżeń ochrony modelu obiektów

Aby uniknąć ostrzeżeń dotyczących zabezpieczeń podczas korzystania z ograniczonych właściwości i metod, upewnij się, że dodatek VSTO uzyskuje obiekty programu Outlook z Application pola ThisAddIn klasy w projekcie. Aby uzyskać więcej informacji na temat tego pola, zobacz Program VSTO Add-ins (Dodatki programu VSTO).

Tylko obiekty programu Outlook uzyskane z tego obiektu mogą być zaufane przez ochronę modelu obiektów. Natomiast obiekty uzyskane z nowego Microsoft.Office.Interop.Outlook.Application obiektu nie są zaufane, a ograniczone właściwości i metody będą zgłaszać ostrzeżenia o zabezpieczeniach, jeśli funkcja ochrony modelu obiektów jest włączona.

Poniższy przykład kodu wyświetla ostrzeżenie o zabezpieczeniach, jeśli włączono funkcję ochrony modelu obiektów. To Właściwość Microsoft.Office.Interop.Outlook.MailItem klasy jest ograniczona przez ochronę modelu obiektów. Obiekt Microsoft.Office.Interop.Outlook.MailItem jest niezaufany, ponieważ kod pobiera go z Microsoft.Office.Interop.Outlook.Application obiektu utworzonego przy użyciu nowego operatora, zamiast uzyskiwać go z Application pola.

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);
}

W poniższym przykładzie kodu pokazano, jak używać właściwości Microsoft.Office.Interop.Outlook.MailItem Ograniczone do obiektu, który jest zaufany przez osłonę modelu obiektów. Kod używa zaufanego Application pola, aby pobrać element Microsoft.Office.Interop.Outlook.MailItem.

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);
}

Uwaga

Jeśli program Outlook jest używany z programem Exchange, uzyskanie wszystkich obiektów programu Outlook z ThisAddIn.Application programu nie gwarantuje, że dodatek VSTO będzie mógł uzyskać dostęp do całego modelu obiektów programu Outlook. Jeśli na przykład administrator programu Exchange ustawia program Outlook tak, aby automatycznie odrzucał wszystkie próby uzyskania dostępu do informacji o adresie przy użyciu modelu obiektów programu Outlook, program Outlook nie zezwoli poprzedniemu przykładowi kodu na dostęp do właściwości To, mimo że przykładowy kod używa zaufanego ThisAddIn.Application pola.

Określ, które dodatki mają być zaufane podczas korzystania z programu Exchange

Gdy program Outlook jest używany z programem Exchange, administratorzy mogą określić, że niektóre dodatki VSTO mogą być uruchamiane bez napotkania ochrony modelu obiektów. Dodatki programu Outlook VSTO utworzone przy użyciu rozwiązań pakietu Office w programie Visual Studio nie mogą być zaufane indywidualnie; mogą być zaufane tylko jako grupa.

Program Outlook ufa dodatku VSTO na podstawie kodu skrótu biblioteki DLL punktu wejścia dodatku VSTO. Wszystkie dodatki VSTO programu Outlook przeznaczone dla środowiska uruchomieniowego Visual Studio Tools dla pakietu Office używają tej samej biblioteki DLL punktu wejścia (VSTOLoader.dll). Oznacza to, że jeśli administrator ufa dowolnemu dodatekowi VSTO, który jest przeznaczony dla środowiska uruchomieniowego Visual Studio Tools dla pakietu Office do uruchomienia bez napotkania funkcji ochrony modelu obiektów, wszystkie inne dodatki VSTO przeznaczone dla środowiska uruchomieniowego Visual Studio Tools dla pakietu Office są również zaufane. Aby uzyskać więcej informacji na temat zaufania określonych dodatków VSTO do uruchamiania bez napotkania funkcji modelu obiektów, zobacz Określanie metody używanej przez program Outlook do zarządzania funkcjami zapobiegania wirusom.

Zmiany uprawnień nie są natychmiast wprowadzane

Jeśli administrator dostosuje uprawnienia do dokumentu lub zestawu, użytkownicy muszą zakończyć działanie, a następnie ponownie uruchomić wszystkie aplikacja pakietu Office licacje, aby te zmiany były wymuszane.

Inne aplikacje hostujące aplikacja pakietu Office licacje firmy Microsoft mogą również uniemożliwić wymuszanie nowych uprawnień. Użytkownicy powinni zamknąć wszystkie aplikacje korzystające z pakietu Office, hostowanego lub autonomicznego po zmianie zasad zabezpieczeń.

Ustawienia centrum zaufania w systemie Microsoft Office nie mają wpływu na dodatki ani dostosowania na poziomie dokumentu

Użytkownicy mogą uniemożliwić ładowanie dodatków VSTO, ustawiając opcję w Centrum zaufania. Jednak dodatki VSTO i dostosowania na poziomie dokumentu utworzone przy użyciu rozwiązań pakietu Office w programie Visual Studio nie mają wpływu na te ustawienia zaufania.

Jeśli użytkownik uniemożliwia ładowanie dodatków VSTO przy użyciu Centrum zaufania, następujące typy dodatków VSTO nie zostaną załadowane:

  • Zarządzane i niezarządzane dodatki COM VSTO.

  • Zarządzane i niezarządzane dokumenty inteligentne.

  • Zarządzane i niezarządzane dodatki VSTO usługi Automation.

  • Zarządzane i niezarządzane składniki danych w czasie rzeczywistym.

    Poniższe procedury opisują, jak użytkownicy mogą używać Centrum zaufania do ograniczania ładowania dodatków VSTO w pakietach Microsoft Office 2013 i Microsoft Office 2010. Te procedury nie mają wpływu na dodatki VSTO ani dostosowania utworzone przy użyciu narzędzi programistycznych pakietu Office w programie Visual Studio.

Aby wyłączyć dodatki VSTO w aplikacjach pakietu Microsoft Office 2010 i Microsoft Office 2013

  1. Wybierz kartę Plik .

  2. Wybierz przycisk Opcje nazwy aplikacji.

  3. W okienku kategorii wybierz pozycję Centrum zaufania.

  4. W okienku szczegółów wybierz pozycję Centrum zaufania Ustawienia.

  5. W okienku kategorii wybierz pozycję Dodatki.

  6. W okienku szczegółów wybierz pozycję Wymagaj dodatków aplikacji, aby były podpisane przez zaufanego wydawcę lub Wyłącz wszystkie dodatki aplikacji.