
Makra ve Wordu a zbytku Office jsou velmi užitečným nástrojem.Automatizují reporty, generují dokumenty za chodu a každý týden šetří hodiny práce. Stejná schopnost má ale i velmi nepříjemnou nevýhodu: jsou jedním z oblíbených vektorů útoku pro distribuovat malwarekrádež dat nebo infiltrace podnikové sítě. Proto, pokud pracujete s VBA, budete dříve či později muset brát bezpečnost vážně. A zejména digitální podpis maker.
Tento článek nabízí osvědčené tipy, jak zajistit spolehlivost a snadnou údržbu vašich projektů VBA. Vysvětlíme také, jak funguje digitální podepisování maker ve Wordu (a zbytku Office), co je potřeba k jeho implementaci, jak přidat časová razítka a jaké bezpečnostní zásady můžete kombinovat (důvěryhodná umístění, ochrana heslem, audity, školení uživatelů atd.) k vytvoření robustní a realistické strategie pro vaši organizaci.
Zabezpečení maker ve Wordu a Centrum důvěryhodnosti
První vrstva obrany pro jakékoli makro ve Wordu je v Centrum důvěryhodnosti OfficeOdtud se rozhodnete, jak se aplikace chová s jakýmkoli dokumentem obsahujícím kód VBA: zda blokovat vše, povolit pouze podepsaný kód nebo pokaždé, když detekuje makra, požádat o potvrzení.
the možnosti konfigurace maker Tyto se obvykle nacházejí v Centru důvěryhodnosti:
- Zakažte všechna makra bez varování.
- Zakázat všechna oznámení.
- Povolit vše (tato poslední možnost se v reálném prostředí důrazně nedoporučuje).
- Zakažte všechny kromě těch, které jsou digitálně podepsány.
Pokud je nastavena zásada „Zakázat všechna makra kromě digitálně podepsaných“Word a zbytek Office spouštějí pouze kód VBA s platným podpisem. Pokud dokument obsahuje nepodepsaná makra, kód je zcela zablokován a v závislosti na verzi a aktualizačním kanálu se typická výstražná zpráva nemusí zobrazit – čehož si mnoho správců všimlo, zejména v Excelu 2016 a 365 Klikni a spusť.
Toto chování může být v rozporu s tím, co popisují některé oficiální články, které uvádějí, že by se mělo zobrazit bezpečnostní varování, aby uživatel mohl dokumentu důvěřovat. V praxi je u možnosti „pouze podepsané“ filozofie mnohem přísnější: pokud neexistuje podpis, nic se neprovede a soubor se okamžitě nepřevede na důvěryhodný dokument.
Digitální certifikáty: co to je a jak je získat
Abyste mohli digitálně podepisovat makra ve Wordu, potřebujete digitální certifikát který se používá konkrétně pro podepisování kódu nebo projektů VBA. Tento certifikát může být vydán komerční certifikační autoritou (CA), vlastní infrastrukturou veřejných klíčů společnosti nebo, pro testovací prostředí, certifikátem s vlastním podpisem vytvořeným pomocí nástrojů společnosti Microsoft.
Komerční certifikační orgány nabízejí standardní certifikáty pro podepisování kódu a stále častěji certifikáty s rozšířeným ověřováním (EV)Tyto druhé obvykle vyžadují zabezpečený hardware (HSM, USB tokeny nebo služby jako Azure Key Vault) k uložení soukromého klíče, což poskytuje větší zabezpečení a kontrolu nad tím, kdo může v organizaci podepisovat kód.
Pokud hledáte testovací nebo interní vývojové prostředí, můžete si zvolit vytvoření certifikát podepsaný svým držitelem pomocí nástroje SelfCert.exe, který je součástí OfficeSlouží to pouze k tomu, aby váš vlastní počítač (nebo ty, do kterých je kód ručně importován) důvěřoval kódu, ale postačí k experimentování s digitálními podpisy, než se přejde k certifikátům vydaným skutečnou certifikační autoritou.
Chcete-li tento certifikát s vlastním podpisem vygenerovat pomocí SelfCertu, jednoduše vyhledejte spustitelný soubor ve složce Office, spusťte jej, zadejte popisný název do pole „Název certifikátu“ a potvrďte. Průvodce vytvoří a uloží certifikát přímo do osobního úložiště certifikátů uživatele, čímž jej připraví pro použití ve Visual Basic při podepisování projektů.
Vytváření, zobrazování a správa certifikátů pro makra
Jakmile je certifikát vytvořen nebo nainstalován, je důležité ověřte, zda se skutečně nachází ve správném skladuCertifikáty pro podepisování kódu pro VBA jsou obvykle uloženy v osobních certifikátech uživatele a lze k nim přistupovat pomocí nástrojů pro správu certifikátů systému nebo prohlížeče.
V týmech s Microsoft hranNapříklad je možné rychle zkontrolovat osobní certifikáty otevřením prohlížeče a zadáním edge://settings/privacy V adresním řádku přejděte dolů do sekce zabezpečení, kde najdete možnost „Spravovat certifikáty“. Odtud si můžete prohlížet, importovat nebo exportovat certifikáty a také kontrolovat data jejich platnosti.
Je to zásadní ujasnit si, které certifikáty jsou platnéPodpis založený na certifikátu s vypršenou platností bez časového razítka již nemusí být považován za platný. Samotný Office zobrazí varování, pokud zjistí, že platnost přihlašovacích údajů použitých k podepsání projektu VBA vypršela nebo byly odvolány vydávajícím orgánem.
Některé certifikační autority specializující se na podepisování kódu Usnadňují přímou instalaci certifikátu na HSM klienta nebo do cloudových úložišť klíčů, bez nutnosti manipulovat se soukromým klíčem na jednotlivých počítačích. Tento přístup minimalizuje riziko krádeže nebo úniku klíče pro podpis makra, což je zásadní, pokud jsou podepsané šablony distribuovány tisícům uživatelů.

Jak digitálně podepsat projekt maker ve Wordu
Digitální podpis se použije na celý projekt VBA, který obsahuje makra.ne pro každou proceduru zvlášť. Proces je velmi podobný ve Wordu, Excelu, PowerPointu, Outlooku a dalších aplikacích Office, které podporují VBA.
El typický průtok Chcete-li podepsat projekt maker ve Wordu, použijte tuto metodu:
- Otevřete dokument nebo šablonu, která obsahuje kód.
- Přejděte na kartu „Vývojář“.
- Ve skupině „Kód“ klikněte na „Visual Basic“ pro přístup k editoru VBA.
- V nabídce „Nástroje“ editoru vyberte možnost „Digitální podpis“.
Po otevření dialogového okna digitálního podpisu se zobrazí následující: seznam certifikátů dostupných v počítači který lze použít k podepsání projektu. Jednoduše vyberte příslušný certifikát (buď certifikát pro podepisování kódu, nebo dříve vytvořený certifikát s vlastním podpisem) a potvrďte, že se podpis použije na aktuální projekt.
Po uložení dokumentu nebo šablonyPodpis je vložen do souboru. Když jiný uživatel otevře dokument ve Wordu, systém zabezpečení maker ověří podpis a zkontroluje, zda je certifikát důvěryhodný a zda nebyl odvolán. Pokud je vše v pořádku, uživatel bude moci spustit makra bez snížení celkové úrovně zabezpečení.
Je důležité si uvědomit, že jakákoli změna kódu VBA zneplatní podpis.Pokud je modul upraven, odstraněn nebo je přidáno nové makro, předchozí podpis se stane neplatným a dokument je opět považován za nepodepsaný. Pokud má však vývojář na svém počítači stále k dispozici stejný certifikát použitý pro počáteční podepsání, lze projekt po uložení znovu podepsat a obnovit tak důvěryhodnost.
Rizika nebezpečného kódu VBA a použití funkce Environ
Jazyk VBA je velmi výkonný, ale jeho flexibilita ho také činí nebezpečný útočný povrchJednoduchá skutečnost, že makra mohou spustit kód při otevření dokumentu, z nich činí vynikající nástroj pro malware, ransomware a krádež informací, pokud nejsou uplatňovány přísné kontroly.
Z pohledu vývojářeMnoho zranitelností vzniká proto, že makra jsou psána bez ohledu na zabezpečení: externí data jsou důvěryhodná bez ověření, citlivé akce (přístup k systémovým souborům, připojení k databázi, odesílání e-mailů) jsou automatizovány bez kontroly oprávnění nebo je automatické spuštění povoleno při otevření dokumentu prostřednictvím událostí, jako je Document_Open.
Koncoví uživatelé jsou také součástí problémuprotože často povolují makra v dokumentech pocházejících z podezřelých e-mailů nebo nejasných zdrojů. Tyto kampaně Phishing Právě této důvěry zneužívají: připojují dokument Wordu s makry, která po aktivaci stáhnou a spustí škodlivý kód, často pro uživatele neviditelný.
V této fázi funkce Environ VBA je obzvláště citliváTato funkce umožňuje dotazovat se na proměnné systémového prostředí (jako například USERNAME, APPDATA, USERPROFILEatd.), což je velmi užitečné pro psaní maker, která se automaticky přizpůsobí různým počítačům, cestám a uživatelům.
Problém je v tom Proměnné prostředí mohou také odhalit citlivé informace nebo být zneužity. Útočník se může uchýlit k Environ k vyhledání konkrétních složek, profilování systému oběti nebo směrování dat do konkrétních cest. Mohlo by se dokonce pokusit ovlivnit chování makra, pokud se mu podaří manipulovat s určitými proměnnými prostředí v napadeném systému.

Nejlepší postupy pro bezpečné používání Environu
Klíč k použití Environ bezpečně v makrech Wordu Nejde o to, abychom to zakázali, ale o to, abychom s informacemi, které vrací, zacházeli jako s nedůvěryhodným vstupem. To znamená, že před použitím v cestách k souborům, připojeních nebo obchodních rozhodnutích každou hodnotu ověříme, vyčistíme a zkontrolujeme. Zde jsou naše doporučení:
- Ověřte jakoukoli trasu vrácenou
EnvironPokud makro očekává typickou složku uživatele systému Windows, je vhodné ověřit, zda hodnota odpovídá rozumnému vzoru a zda cesta skutečně existuje. Pokud řetězec obsahuje podivné znaky, nebezpečné relativní cesty nebo sekvence, které by mohly naznačovat pokus o vložení kódu, nejbezpečnějším postupem je operaci přerušit a uživatele varovat. - Vyhněte se nadměrnému spoléhání se na proměnné prostředí Pro kritická rozhodnutí v kódu, pokud je trasa nebo hodnota klíče v praxi pevně stanovena pro všechny týmy v organizaci, může být bezpečnější ji nastavit na konstantu, než ji dynamicky číst z prostředí, kde by s ní někdo mohl manipulovat.
- Použijte princip nejmenších privilegií. Uživatelský účet, který spouští makro, by měl mít pouze nezbytná oprávnění. Tímto způsobem, i když někdo manipuluje s proměnnou prostředí a makro nakonec ukazuje na neočekávanou cestu, potenciální poškození bude omezeno systémovými omezeními.
- Implementujte robustní ošetření chyb při volání metody
EnvironPokud proměnná neexistuje, změnila svůj název nebo vrátí něco neočekávaného, makro by mělo reagovat kontrolovaným způsobem: zobrazit uživateli jasnou zprávu, v případě potřeby zaznamenat incident a elegantně se zastavit před vyvoláním řetězové reakce nebo zveřejněním dalších informací.
Důvěryhodná umístění, zásady a digitální podpisy v rámci organizace
Kromě digitálních podpisů má Word a zbytek Office také koncept „důvěryhodných míst“Jedná se o specifické složky, lokální nebo síťové, jejichž obsah je již od začátku považován za bezpečný, takže dokumenty s makry uloženými v nich lze spustit bez dalších varování.
Důvěryhodná místa jsou dvojsečná zbraň:
- Na jedné straně umožňují spouštění firemních maker bez nepříjemností pro uživatele.
- Na druhou stranu, pokud jsou nadužívány nebo je definováno příliš mnoho cest, oblast útoku se výrazně rozšiřuje, protože jakýkoli škodlivý soubor umístěný v těchto složkách by obešel některé kontroly.
Nejrozumnější je obvykle omezit počet důvěryhodných míst na několik přísně kontrolovaných cest, ideálně na síťových serverech spravovaných IT oddělením. Uživatelé by neměli mít možnost volně přidávat nová umístění. Je také vhodné pravidelně kontrolovat, které cesty byly označeny jako bezpečné, aby se zajistilo, že nebyly přidány zbytečné nebo dočasné složky.
Souběžně s tím firemní zásady makrobezpečnosti Mohou vyžadovat, aby jakékoli interně distribuované řešení VBA bylo podepsáno firemním certifikátem. Tímto způsobem, i když je dokument zkopírován mimo důvěryhodné umístění, podpis stále zajistí kontrolu integrity a pravosti.
Audity, kontroly a školení uživatelů
Seriózní politika makrobezpečnosti nespočívá jen v jednorázové konfiguraci možností a zapomenutí na ni. Ekosystém hrozeb se neustále mění a vyvíjí se i způsob, jakým zaměstnanci používají makra. Proto Je vhodné plánovat pravidelné audity používaného kódu VBA a šablon.
Z vývojářského hlediska tyto audity zahrnují kontrolu kódu, zda neobsahuje zastaralé funkce, nebezpečné závislosti, nedostatečné ošetření chyb nebo nechráněný přístup k citlivým zdrojům. Ověřují také dodržování interních pokynů, jako je například vyhýbání se zbytečným samospouštěcím makrům nebo ukládání přihlašovacích údajů v prostém textu v kódu.
Souběžně je to užitečné kombinujte manuální kontroly s automatizovanými analytickými nástrojiTyto nástroje dokáží detekovat podezřelé vzorce v makrech, jako jsou volání systémového API, manipulace se soubory mimo očekávané cesty nebo datová komunikace po síti. Lze je integrovat do vývojového pracovního postupu, aby upozornily programátory před vydáním nových verzí.
Důležitou roli hraje také správa verzí a správa změnDokumentace toho, kdo, kdy a proč upravil každé makro, vám umožňuje sledovat původ potenciálních bezpečnostních problémů a rychle se vrátit k předchozí verzi, pokud aktualizace způsobí nežádoucí chování.
Když se všechna tato opatření zkombinují – digitální podpisy, dobře spravované certifikáty, časová razítka, sledování polohy, ochrana kódu, audity a povědomí uživatelů –Makra ve Wordu přestávají být nekontrolovatelnou hrozbou a stávají se mocným, ale spravovaným nástrojem, který přináší produktivitu, aniž by ohrožoval bezpečnost organizace.

