Share via


Specifické aspekty zabezpečení pro řešení Office

Funkce zabezpečení poskytované rozhraním Microsoft .NET Framework a systém Microsoft Office můžou pomoct chránit řešení Office před možnými bezpečnostními hrozbami. Toto téma vysvětluje některé z těchto hrozeb a poskytuje doporučení, která vám pomůžou před nimi chránit. Obsahuje také informace o tom, jak systém Microsoft Office nastavení zabezpečení ovlivňují řešení Office.

Platí pro: Informace v tomto tématu platí pro projekty na úrovni dokumentu a projekty doplňků VSTO. Viz Funkce dostupné podle typu aplikace Office lication a projektu.

Důvěryhodný kód se znovu používá v novém škodlivém dokumentu.

Útočník může použít důvěryhodný kód, který je určený pro jeden konkrétní účel, například stažení osobních údajů pro aplikaci pro zaměstnání a jeho opakované použití v jiném dokumentu, jako je list. Kód neví, že původní dokument není spuštěný a může otevřít jiné hrozby, například odhalit osobní údaje nebo spustit kód se zvýšenými oprávněními při otevření jiným uživatelem. Případně může útočník upravit data v listu tak, aby se při odeslání oběti neočekávaně chová. Změnou hodnot, vzorců nebo prezentačních charakteristik listu propojeného s kódem může uživatel se zlými úmysly napadnout jiného uživatele odesláním upraveného souboru. Uživatelé můžou mít také přístup k informacím, které nemají vidět, úpravou hodnot v listu.

Vzhledem k tomu, že umístění sestavení i umístění dokumentu musí mít dostatečné důkazy ke spuštění, není tento útok snadné připojit. Například dokumenty v e-mailových přílohách nebo na nedůvěryhodných intranetových serverech nemají dostatečná oprávnění ke spuštění.

Aby bylo možné tento útok provést, musí být samotný kód napsán takovým způsobem, že provádí rozhodnutí na základě potenciálně nedůvěryhodných dat. Příkladem je vytvoření listu, který obsahuje skrytou buňku, která obsahuje název databázového serveru. Uživatel odešle list na stránku ASPX, která se pokusí připojit k danému serveru pomocí ověřování SQL a pevně zakódovaného hesla SA. Útočník by mohl nahradit obsah skryté buňky jiným názvem počítače a získat heslo SA. Abyste se tomuto problému vyhnuli, nikdy nezakódujte hesla a před přístupem k serveru vždy zkontrolujte ID serveru s interním seznamem serverů, o kterých je známo, že jsou dobré.

Doporučení

  • Vždy ověřte vstup a data, ať už pochází od uživatele, dokumentu, databáze, webové služby nebo jakéhokoli jiného zdroje.

  • Dávejte pozor na zveřejnění konkrétních typů funkcí, jako je získání privilegovaných dat jménem uživatele a jejich umístění do nechráněného listu.

  • V závislosti na typu aplikace může být vhodné před spuštěním jakéhokoli kódu ověřit, jestli je původní dokument spuštěný. Ověřte například, že je spuštěný z dokumentu uloženého ve známém zabezpečeném umístění.

  • Může být vhodné zobrazit upozornění, když se dokument otevře, pokud vaše aplikace provádí nějaké privilegované akce. Můžete například vytvořit úvodní obrazovku nebo spouštěcí dialogové okno s informací, že aplikace bude mít přístup k osobním údajům a že se uživatel rozhodne pokračovat nebo zrušit. Pokud se koncovému uživateli zobrazí takové upozornění z zdánlivě nevinného dokumentu, bude moct aplikaci ukončit předtím, než dojde k ohrožení zabezpečení.

Ochrana objektového modelu Outlooku blokuje kód.

systém Microsoft Office může omezit použití určitých vlastností, metod a objektů v objektovém modelu. Když omezíte přístup k těmto objektům, outlook pomáhá zabránit tomu, aby červi a viry e-mailu používali objektový model pro škodlivé účely. Tato funkce zabezpečení se označuje jako ochrana objektového modelu Aplikace Outlook. Pokud se doplněk VSTO pokusí použít omezenou vlastnost nebo metodu, když je povolená ochrana objektového modelu, Outlook zobrazí upozornění zabezpečení, které uživateli umožní zastavit operaci, nebo povolí uživateli udělit přístup k vlastnosti nebo metodě po omezenou dobu. Pokud uživatel zastaví operaci, doplňky VSTO aplikace Outlook vytvořené pomocí řešení Office v sadě Visual Studio vyvolá výjimku COMException.

Ochrana objektového modelu může ovlivnit doplňky VSTO různými způsoby v závislosti na tom, jestli se Outlook používá s Microsoft Exchange Serverem:

  • Pokud se Outlook nepoužívá s Exchangem, může správce povolit nebo zakázat ochranu objektového modelu pro všechny doplňky VSTO v počítači.

  • Pokud se Outlook používá s Exchangem, může správce povolit nebo zakázat ochranu objektového modelu pro všechny doplňky VSTO v počítači nebo může určit, že určité doplňky VSTO se můžou spouštět, aniž by došlo k ochranu objektového modelu. Správa istrátory mohou také změnit chování ochrany objektového modelu pro určité oblasti objektového modelu. Správci můžou například automaticky povolit, aby doplňky VSTO odesílaly e-maily prostřednictvím kódu programu, i když je povolená ochrana objektového modelu.

    Od Outlooku 2007 se chování ochrany objektového modelu změnilo, aby se zlepšilo prostředí pro vývojáře a uživatele a zároveň pomáhá zajistit zabezpečení Outlooku. Další informace najdete v tématu Změny zabezpečení kódu v aplikaci Outlook 2007.

Minimalizace upozornění ochrany objektového modelu

Abyste se vyhnuli upozorněním zabezpečení při použití omezených vlastností a metod, ujistěte se, že doplněk VSTO získá objekty Aplikace Outlook z Application pole ThisAddIn třídy v projektu. Další informace o tomto poli naleznete v tématu Programové doplňky VSTO.

Ochrana modelu objektu může důvěřovat pouze objektům Outlooku získaným z tohoto objektu. Naproti tomu objekty získané z nového Microsoft.Office.Interop.Outlook.Application objektu nejsou důvěryhodné a omezené vlastnosti a metody zobrazí upozornění zabezpečení, pokud je povolená ochrana objektového modelu.

Následující příklad kódu zobrazí upozornění zabezpečení, pokud je povolena ochrana objektového modelu. To Vlastnost Microsoft.Office.Interop.Outlook.MailItem třídy je omezena hlídanou objektového modelu. Objekt Microsoft.Office.Interop.Outlook.MailItem je nedůvěryhodný, protože kód ho získá z vytvořeného Microsoft.Office.Interop.Outlook.Application pomocí nového operátoru místo jeho získání z Application pole.

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

Následující příklad kódu ukazuje, jak použít restricted To vlastnost objektu Microsoft.Office.Interop.Outlook.MailItem , který je považován za důvěryhodný objekt ochrany modelu objektu. Kód používá důvěryhodné Application pole k získání 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);
}

Poznámka:

Pokud se outlook používá s Exchangem, získání všech objektů Outlooku z ThisAddIn.Application nezaručuje, že váš doplněk VSTO bude mít přístup k celému objektovém modelu Outlooku. Pokud například správce Exchange nastaví Outlook tak, aby automaticky odepřel všechny pokusy o přístup k informacím o adresách pomocí objektového modelu Outlooku, outlook nepovolí předchozí příklad kódu přístup k vlastnosti Komu, i když příklad kódu používá důvěryhodné ThisAddIn.Application pole.

Určení doplňků, kterým se má důvěřovat při použití Exchange

Když se Outlook používá s Exchangem, můžou správci určit, že některé doplňky VSTO se můžou spouštět bez výskytu ochrany objektového modelu. Doplňky VSTO aplikace Outlook vytvořené pomocí řešení Office v sadě Visual Studio nelze považovat za důvěryhodné jednotlivě; můžou být důvěryhodné jenom jako skupina.

Outlook důvěřuje doplňku VSTO na základě kódu hash knihovny DLL vstupního bodu doplňku VSTO. Všechny doplňky aplikace Outlook VSTO, které cílí na Visual Studio Tools for Office runtime, používají stejnou knihovnu DLL vstupního bodu (VSTOLoader.dll). To znamená, že pokud správce důvěřuje jakémukoli doplňku VSTO, který cílí na visual Studio Tools for Office Runtime, aby běžel bez výskytu ochrany objektového modelu, jsou také důvěryhodné všechny ostatní doplňky VSTO, které cílí na Visual Studio Tools for Office Runtime. Další informace o důvěřování konkrétním doplňkům VSTO ke spuštění bez výskytu ochrany objektového modelu naleznete v tématu Určení metody, která Outlook používá ke správě funkcí prevence virů.

Změny oprávnění se neprojeví okamžitě.

Pokud správce upraví oprávnění pro dokument nebo sestavení, musí uživatelé ukončit a potom restartovat všechny aplikace Office konfici, aby se tyto změny vynutily.

Jiné aplikace, které hostují systém Microsoft Office aplikace, můžou také zabránit vynucování nových oprávnění. Uživatelé by měli ukončit všechny aplikace, které používají Office, hostované nebo samostatné, když se změní zásady zabezpečení.

Nastavení Centra zabezpečení v systému systém Microsoft Office nemá vliv na přizpůsobení na úrovni doplňků ani dokumentů

Uživatelé můžou zabránit načtení doplňků VSTO nastavením možnosti v Centru zabezpečení. Tyto nastavení důvěryhodnosti ale neovlivní doplňky VSTO a přizpůsobení na úrovni dokumentů vytvořené pomocí řešení Office v sadě Visual Studio.

Pokud uživatel zabrání v načítání doplňků VSTO pomocí Centra zabezpečení, nenačtou se následující typy doplňků VSTO:

  • Spravované a nespravované doplňky modelu COM VSTO

  • Spravované a nespravované inteligentní dokumenty

  • Spravované a nespravované doplňky VSTO automation

  • Spravované a nespravované datové komponenty v reálném čase

    Následující postupy popisují, jak můžou uživatelé používat Centrum zabezpečení k omezení načítání doplňků VSTO v systém Microsoft Office 2013 a systém Microsoft Office 2010. Tyto postupy neovlivňují doplňky VSTO ani vlastní nastavení vytvořené pomocí vývojových nástrojů Office v sadě Visual Studio.

Zakázání doplňků VSTO v aplikacích systém Microsoft Office 2010 a systém Microsoft Office 2013

  1. Zvolte kartu Soubor.

  2. Zvolte tlačítko Možnosti aplikace.

  3. V podokně kategorií zvolte Centrum zabezpečení.

  4. V podokně podrobností zvolte Centrum zabezpečení Nastavení.

  5. V podokně kategorií zvolte Doplňky.

  6. V podokně podrobností vyberte Vyžadovat, aby doplňky aplikace byly podepsány důvěryhodným vydavatelem nebo zakázány všechny doplňky aplikace.