Makroi u Wordu: najbolje prakse za sigurnost i digitalne potpise

  • Pravilno konfigurisanje sigurnosti makroa u Wordu i korištenje digitalnih certifikata omogućava vam da kontrolišete koji se VBA kod izvršava i od koga potiče.
  • Potpisivanje makro projekata važećim certifikatima, idealno s vremenskom oznakom, osigurava integritet koda čak i kada certifikat istekne.
  • Politike u vezi s pouzdanim lokacijama, lozinkama projekata i odgovarajućim algoritmima za heširanje jačaju zaštitu od modifikacija i napada.
  • Periodične revizije koda i obuka korisnika upotpunjuju sveobuhvatnu strategiju za korištenje makroa bez ugrožavanja sigurnosti.

Word makroi za digitalni potpis

Makroi u Wordu i ostatku Officea su vrlo koristan alatOni automatiziraju izvještaje, generiraju dokumente u hodu i štede sate rada svake sedmice. Ali ta ista moć ima i vrlo neugodnu manu: oni su jedan od omiljenih vektora napada za distribuirati malwarekrađu podataka ili infiltraciju u korporativnu mrežu. Zato ćete, ako radite s VBA-om, prije ili kasnije morati ozbiljno shvatiti sigurnost. A posebno, digitalni potpis makroa.

Ovaj članak nudi najbolje savjete iz prakse kako biste osigurali da su vaši VBA projekti pouzdani i jednostavni za održavanje. Također objašnjavamo kako digitalno potpisivanje makroa funkcionira u Wordu (i ostatku Officea), što vam je potrebno za njegovu implementaciju, kako dodati vremenske oznake i koje sigurnosne politike možete kombinirati (pouzdane lokacije, zaštita lozinkom, revizije, obuka korisnika itd.) kako biste izgradili robusnu i realističnu strategiju za vašu organizaciju.

Sigurnost makroa u Wordu i centar za pouzdanost

Prvi sloj odbrane za bilo koji makro u Wordu je u Centar za pouzdanost sistema OfficeOdatle odlučujete kako će se aplikacija ponašati sa bilo kojim dokumentom koji sadrži VBA kod: da li da blokira sve, dozvoli samo potpisani kod ili da traži potvrdu svaki put kada otkrije makroe.

u opcije konfiguracije makroa To su obično oni u Centru za povjerenje:

  • Onemogući sve makroe bez upozorenja.
  • Onemogućite sva obavještenja.
  • Omogući sve (ova posljednja opcija se strogo ne preporučuje u stvarnim okruženjima).
  • Onemogućite sve osim onih koji su digitalno potpisani.

Kada je postavljena politika "Onemogući sve makroe osim digitalno potpisanih"Word i ostatak Officea izvršavaju samo VBA kod koji ima važeći potpis. Ako dokument sadrži nepotpisane makroe, kod se potpuno blokira i, ovisno o verziji i kanalu ažuriranja, tipična poruka upozorenja se možda neće pojaviti - nešto što su mnogi administratori primijetili, posebno u Excelu 2016 i 365 Klikni i pokreni.

Ovo ponašanje može biti u suprotnosti s onim što neki službeni članci opisuju, a koji navode da bi trebalo prikazati sigurnosno upozorenje kako bi korisnik mogao vjerovati dokumentu. U praksi, s opcijom "samo potpisano", filozofija je mnogo stroža: ako nema potpisa, ništa se ne izvršava i datoteka se ne pretvara odmah u pouzdani dokument.

Windows 11 digitalni sertifikati

Digitalni certifikati: šta su i kako ih dobiti

Da biste mogli digitalno potpisivati ​​makroe u Wordu, potreban vam je digitalni certifikat koji se posebno koristi za potpisivanje koda ili VBA projekata. Ovaj certifikat može izdati komercijalni autoritet za certifikaciju (CA), vlastita infrastruktura javnih ključeva kompanije ili, za testna okruženja, samopotpisani certifikat kreiran pomoću Microsoftovih alata.

Komercijalna certifikacijska tijela nude standardni certifikati za potpisivanje koda i, sve češće, certifikati za proširenu validaciju (EV)Ovi posljednji obično zahtijevaju siguran hardver (HSM, USB tokene ili usluge poput Azure Key Vaulta) za pohranjivanje privatnog ključa, što pruža dodatnu sigurnost i kontrolu nad tim ko može potpisivati ​​kod u organizaciji.

Ako tražite okruženje za testiranje ili interni razvoj, možete odabrati kreiranje samopotpisani certifikat pomoću uslužnog programa SelfCert.exe koji je uključen u OfficeSluži samo da vaš računar (ili oni na koje je ručno uvezen) povjeruje kodu, ali je dovoljno eksperimentirati s digitalnim potpisima prije nego što se pređe na certifikate koje izdaje pravi CA.

Da biste generirali ovaj samopotpisani certifikat pomoću SelfCerta, jednostavno pronađite izvršnu datoteku u mapi Office, pokrenite je, unesite opisno ime u polje "Naziv certifikata" i potvrdite. Čarobnjak će kreirati i pohraniti certifikat direktno u korisnikovo lično spremište certifikata, čineći ga spremnim za korištenje u Visual Basicu prilikom potpisivanja projekata.

Kreiranje, pregled i upravljanje certifikatima za makroe

Nakon što je certifikat kreiran ili instaliran, važno je provjerite da li se zaista nalazi u ispravnom skladištuCertifikati za potpisivanje koda za VBA se obično pohranjuju u ličnim certifikatima korisnika i može im se pristupiti pomoću alata za upravljanje certifikatima sistema ili preglednika.

U timovima sa Microsoft EdgeNa primjer, moguće je brzo provjeriti lične certifikate otvaranjem preglednika i upisivanjem edge://settings/privacy U adresnoj traci, skrolujte prema dolje do odjeljka za sigurnost, gdje ćete pronaći opciju "Upravljanje certifikatima". Odatle možete pregledati, uvesti ili izvesti certifikate, kao i provjeriti njihove datume isteka.

To je bitno jasno o tome koji su certifikati važećiPotpis zasnovan na isteklom certifikatu, bez vremenske oznake, više se ne može smatrati važećim. Sam Office će prikazati upozorenja ako otkrije da je akreditiv korišten za potpisivanje VBA projekta istekao ili da ga je opozvao organ izdavanja.

Neki CA-ovi specijalizirani za potpisivanje koda Oni olakšavaju direktnu instalaciju certifikata na HSM klijenta ili u trezore ključeva u oblaku, bez potrebe za rukovanjem privatnim ključem na pojedinačnim računarima. Ovaj pristup minimizira rizik od krađe ili curenja ključa za potpisivanje makroa, što je ključno ako se potpisani predlošci distribuiraju hiljadama korisnika.

certificirano skladište

Kako digitalno potpisati Word makro projekat

Digitalni potpis se primjenjuje na cijeli VBA projekat koji sadrži makroe.ne za svaku proceduru zasebno. Proces je vrlo sličan u Wordu, Excelu, PowerPointu, Outlooku i drugim Office aplikacijama koje podržavaju VBA.

El tipičan protok Da biste potpisali makro projekat u Wordu, koristite ovu metodu:

  1. Otvorite dokument ili predložak koji sadrži kod.
  2. Idite na karticu "Programer".
  3. Unutar grupe "Kod" kliknite na "Visual Basic" da biste pristupili VBA editoru.
  4. U meniju "Alati" uređivača odaberite opciju "Digitalni potpis".

Kada otvorite dijaloški okvir za digitalni potpis, prikazuje se sljedeće: lista certifikata dostupnih na računaru koji se može koristiti za potpisivanje projekta. Jednostavno odaberite odgovarajući certifikat (ili certifikat za potpisivanje koda ili samopotpisani certifikat koji je prethodno kreiran) i prihvatite da se potpis primijeni na trenutni projekat.

Nakon spremanja dokumenta ili predloškaPotpis je ugrađen u datoteku. Kada drugi korisnik otvori dokument u Wordu, sistem sigurnosti makroa će provjeriti potpis i provjeriti da li je certifikat pouzdan i da li je opozvan. Ako je sve ispravno, korisnik će moći pokrenuti makroe bez snižavanja ukupnog nivoa sigurnosti.

Važno je razumjeti da svaka promjena VBA koda poništava potpis.Ako se modul modificira, izbriše ili se doda novi makro, prethodni potpis postaje nevažeći i dokument se ponovo smatra nepotpisanim. Međutim, ako programer i dalje ima isti certifikat koji je korišten za početno potpisivanje dostupan na svom računaru, projekat se može ponovo potpisati nakon spremanja kako bi se obnovilo povjerenje.

Rizici nesigurnog VBA koda i korištenja funkcije Environ

VBA jezik je veoma moćan, ali njegova fleksibilnost ga čini i opasna površina za napadJednostavna činjenica da makroi mogu izvršavati kod kada se dokument otvori čini ih odličnim sredstvom za zlonamjerni softver, ransomware i krađu informacija ako se ne primjenjuju stroge kontrole.

Sa stanovišta programeraMnoge ranjivosti nastaju jer se makroi pišu bez razmatranja sigurnosti: vanjski podaci se smatraju pouzdanima bez validacije, osjetljive radnje (pristup sistemskim datotekama, veze s bazom podataka, slanje e-pošte) su automatizirane bez kontrole dozvola ili je automatsko izvršavanje omogućeno kada se dokument otvori putem događaja kao što su... Document_Open.

Krajnji korisnici su također dio problemajer često omogućavaju makroe u dokumentima koji potiču iz sumnjivih e-poruka ili nejasnih izvora. Ove kampanje phishing Oni iskorištavaju upravo to povjerenje: prilažu Word dokument s makroima koji, kada se aktiviraju, preuzimaju i izvršavaju zlonamjerni kod, često nevidljiv korisniku.

U ovoj fazi, funkcija Environ VBA je posebno osjetljivOva funkcija vam omogućava da upitate varijable sistemskog okruženja (kao što su USERNAME, APPDATA, USERPROFILEitd.), što je vrlo korisno za pisanje makroa koji se automatski prilagođavaju različitim računarima, putanjama i korisnicima.

Problem je u tome Varijable okoline također mogu otkriti osjetljive informacije ili biti zlonamjerno korišten. Napadač može pribjeći Environ da locira određene foldere, profilira sistem žrtve ili usmjeri svoje korisne podatke na određene putanje. Mogao bi čak pokušati utjecati na ponašanje makroa ako uspije manipulirati određenim varijablama okruženja na napadnutom sistemu.

riječ

Najbolje prakse za sigurno korištenje Environa

Ključ za usar Environ sigurno u Word makroima Ne radi se o zabrani, već o tretiranju informacija koje vraća kao nepouzdanog unosa. To jest, validacija, čišćenje i provjera svake vrijednosti prije upotrebe u putanjama datoteka, vezama ili poslovnim odlukama. Evo naših preporuka:

  • Validiraj bilo koju rutu koju vrati EnvironAko makro očekuje tipičnu korisničku mapu Windowsa, preporučljivo je provjeriti da li vrijednost odgovara razumnom obrascu i da li putanja zaista postoji. Ako niz sadrži čudne znakove, opasne relativne putanje ili nizove koji bi mogli ukazivati ​​na pokušaj ubrizgavanja, najsigurniji postupak je prekinuti operaciju i upozoriti korisnika.
  • Izbjegavajte preveliko oslanjanje na varijable iz okoline Za kritične odluke u vezi s kodom, ako je vrijednost rute ili ključa u praksi fiksna za sve timove u organizaciji, možda je sigurnije postaviti je na konstantu, nego je dinamički čitati iz okruženja gdje bi je neko mogao manipulirati.
  • Primijenite princip najmanjih privilegija. Korisnički račun koji pokreće makro treba imati samo potrebna ovlaštenja. Na ovaj način, čak i ako neko manipuliše varijablom okruženja i makro na kraju pokaže na neočekivanu putanju, potencijalna šteta će biti ograničena sistemskim ograničenjima.
  • Implementirajte robusnu obradu grešaka oko poziva na EnvironAko varijabla ne postoji, promijenila je ime ili vrati nešto neočekivano, makro bi trebao reagirati na kontroliran način: prikazati jasnu poruku korisniku, zabilježiti incident ako je potrebno i elegantno se zaustaviti prije nego što izazove lančane reakcije ili otkrije dodatne informacije.

Pouzdane lokacije, politike i digitalni potpisi unutar organizacije

Pored digitalnih potpisa, Word i ostatak Officea također imaju koncept „pouzdanih lokacija“To su određene mape, lokalne ili mrežne, čiji se sadržaj smatra sigurnim po dizajnu, tako da se dokumenti s makroima spremljenim tamo mogu pokrenuti bez dodatnih upozorenja.

Pouzdane lokacije su oružje sa dvije oštrice:

  • S jedne strane, oni omogućavaju pokretanje korporativnih makroa bez neugodnosti za korisnika.
  • S druge strane, ako se previše koriste ili se definira previše putanja, površina napada se znatno proširuje, jer bi svaka zlonamjerna datoteka smještena u te mape zaobišla neke od kontrola.

Najrazumnija stvar je obično ograničite broj pouzdanih lokacija na nekoliko strogo kontroliranih putanja, idealno na mrežnim serverima kojima upravlja IT. Korisnici ne bi trebali moći slobodno dodavati nove lokacije. Također je preporučljivo periodično provjeravati koje su putanje označene kao sigurne kako bi se osiguralo da nisu dodane nepotrebne ili privremene mape.

Paralelno, korporativne politike makro sigurnosti Mogu zahtijevati da svako interno distribuirano VBA rješenje bude potpisano certifikatom kompanije. Na ovaj način, čak i ako se dokument kopira izvan pouzdane lokacije, potpis će i dalje pružati kontrolu integriteta i autentičnosti.

Revizije, pregledi i obuka korisnika

Ozbiljna politika makro sigurnosti ne sastoji se samo u tome da se opcije konfigurišu jednom i zaborave na to. Ekosistem prijetnji se stalno mijenja, a i način na koji zaposleni koriste makroe se također razvija. Zato Preporučljivo je planirati periodične revizije VBA koda i predložaka koji se koriste.

Sa stanovišta razvoja, ove revizije uključuju pregled koda u potrazi za zastarjelim funkcijama, opasnim zavisnostima, neadekvatnim rukovanjem greškama ili nezaštićenim pristupom osjetljivim resursima. Također provjeravaju usklađenost s internim smjernicama, kao što je izbjegavanje nepotrebnih samostalno izvršavajućih makroa ili pohranjivanje vjerodajnica u običnom tekstu unutar koda.

Paralelno s tim, korisno je kombinujte ručne preglede sa automatizovanim alatima za analizuOvi alati su sposobni detektovati sumnjive obrasce u makroima, kao što su pozivi sistemskog API-ja, manipulacija datotekama izvan očekivanih putanja ili komunikacija podataka preko mreže. Mogu se integrisati u proces razvoja kako bi upozorili programere prije objavljivanja novih verzija.

Kontrola verzija i upravljanje promjenama također igraju važnu uloguDokumentovanje ko je izmijenio svaki makro, kada i zašto vam omogućava da pratite porijeklo potencijalnih sigurnosnih problema i brzo se vratite na prethodnu verziju ako ažuriranje izazove neželjeno ponašanje.

Kada se sve ove mjere kombinuju - digitalni potpisi, dobro upravljani certifikati, vremenski žigovi, praćenje lokacije, zaštita koda, revizije i svijest korisnika -Makroi u Wordu prestaju biti nekontrolirana prijetnja i postaju moćan, ali kontroliran alat koji donosi produktivnost bez ugrožavanja sigurnosti organizacije.

Zaštita od zlonamjernog softvera i hakova u Windowsu 11 i Windowsu 10: Potpuni vodič
Vezani članak:
Zaštita od zlonamjernog softvera i hakova u Windowsu 11 i Windowsu 10: Potpuni vodič