blokování vybraných služeb Apple, jako jsou FaceTime hovory
Nemají být blokované FaceTime jako takové, ale jen příchozí od kontaktů, kterým uživatel dosud nevolal:
Incoming invitations and service requests, like FaceTime calls, are blocked if you've never called the person before.
Já ta makra nechápu. Jejich primárním účelem je modifikovat dokument, ve kterém jsou spuštěna – tím nemohou nijak škodit. Škodit mohou funkcemi navíc – čtením a zápisem na filesystém, spouštěním externích programů nebo komponent, síťovou komunikací. Představoval bych si, že tohle je v makrojazyce pár funkcí, které je možné izolovat a spouštět je jenom na základě samostatného oprávnění.
Nejde o programovací jazyk, ale k čemu má přístup ve svém běhovém prostředí. JavaScript je také plnotučný programovací jazyk, přesto jím v prohlížeči nejde napáchat žádné škody (pokud není někde chyba), protože má k vnějšímu světu přístup jenom prostřednictvím sady API, kde jsou ty nebezpečné funkce vždy chráněné samostatným oprávněním.
Tady je otázka, co od maker chcete. A v případě MS Office od nich chcete možnost načítat soubory z filesystému, měnit je a ukládat. Chcete možnost dělat HTTP dotazy včetně POST. Chcete umět si přes OLE Automation (COM, ActiveX nebo jak se to vlastně dneska jmenuje) povídat s jinou aplikací. Chcete možnost přistupovat do všelijakých databází, ať již internetových nebo lokálních souborových.
Prostě to není o tom napsat si makro na změnu velikosti písma. Je to o tom napsat si makra dotazující se do databází, načítajících a procesujících soubory, exportující soubory. Ale hlavní problém je možnost používat "ActiveX" komponenty registrované v OS.
"Dualita" maker v MS Office je ten problém. Na "skutečná makra" nic moc nepotřebujete a ochránit se to dá. Jenže VBA je tam také na "aplikace", kdy stiskem tlačítka stáhnete data z databáze, vyplníte je do šablony dokumentu, vyexportujete do pdf, ten soubor podepíšete a někam odešlete.
Některé funkce se nesnadno omezují (například "uložení dokumentu" je poměrně legitimní přístup k filesystému, nicméně pokud obsah zaměníte za malware...), jiné by mohly obecně vést ke znefunkčnění "wordovské aplikace" (spuštění externího programu, který udělá kouzlo z makra nedosažitelné...).
Ostatně, komplexní makra považuji za (nutné?) zlo spíše, než za užitečnou vlastnost.
Uložení dokumentu ukládá aktuální dokument. Tudíž útočník nemá jak nahradit obsah.
Ano, pokud makro spouští externí program, bylo by nepoužitelné (resp. by vyžadovalo od uživatele svolení ke spuštění toho programu). Jenže takových maker je menšina. A pořád mi připadá lepší znefunkčnit jenom taková makra než je vypnout úplně všechna (a pak zase všechna povolit).
Nezkusil jsem to, ale myšlenkový "proof-of-cocnept": obsah wordovského dokumentu nahradit obsahem spustitelného souboru - "save-as" - prostý text - jméno se "spustitelnou" příponou - odvolat několik posledních kroků - "save-as" - původní typ a jméno dokumentu. Čistě teoreticky by tak šlo uložit kód i bez přímého přístupu k filesystému.
VBA vůbec nebylo navržené s ohledem na bezpečnost - je to záležitost ještě z dob před internetem. Často se používá pro integraci dokumentů (přebíráte data odjinud, a někam jinam je zapisujete, můžete posílat maily, číst email schránku), jde z něj volat win32 API. Prostě taková noční můra sekuriťáka.
Hodně jsem se kolem VBA a VB motal před 20 roky. Netuším jaký je stav dnes. Tipnul bych si, že bez docela zásadního rozbití zpětné kompatibility to nejde moc fixnout, a předpokládám, že se do toho moc nebude nikomu chtít hrabat. Je to mrtvá technologie, která se pořád dost používá. Pro malé věci je možnost propojit skript a data (dokument) dohromady relativně šikovná. Tehdy se cílelo na malé kanceláře. Pro větší organizace, pro větší aplikace je to ale šílenost, a nemyslím si, že office jsou dneska pro MS prioritou.
IMHO se to obvykle ukládá jako "alternativní stream" a drží se jen na NTFS = může se (ale nemusí!) ztratit už při kopírování na síťový disk.
Celkem spolehlivě zmizí už u prostého "uložení jako", když zvolíte nové jméno souboru (což je pochopitelné, protože ten odnikud stažen nebyl...).
Další účinný žrout atributů je obyčejné přeposlání e-mailem...
A to mluvím o věcech, které se se soubory dějí normálně, nikoliv o záměrném zbavování se rozšířených atributů.
On není ani tak problém s otvíráním souborů s makry (pokud se tedy nějaké to makro nespustí hned po startu...), ale spíše s tím, že ten soubor otevřete v něčem bezpečném, kde ta makra nefungují, shledáte neškodným a uložíte pro kolegy k dalšímu použití.
S tím e-mailem je to "jak kdy", mně se ten příznak ztratí zcela spolehlivě, stejně, jako datum a čas vytvoření/změny a mnohé další atributy. Firemní Outlook to zahodí také, ale zase trvá na nastavení jiných "dodatečných" atributů. (Ale dokument s makry poslat nelze, to je hlídané.) Naopak při sdílení skrzevá Onedrive to vcelku spolehlivě zůstává.
A aby to bylo pestřejší, tak uložení přílohy z webového rozhraní (firemního) e-mailu či webového rozhraní (firemního) Onedrive/Shareport portal ten příznak nastaví na "staženo z internetu".
Na domácím počítači se mi to nenastavuje, můj Linux s tím nepočítá...
Tenhle pseudoatribut opravdu není nic, na co by se dalo spoléhat!
VBA je primárně lepidlo pro COM, nebo DCOM objekty (knihovny). Bez těchto knihoven neumí vůbec nic. A COM nebo DCOM dlouho (nevím jak dnes) neumělo běžet v sandboxu. Co si pamatuji, tak se dala nastavovat nějaká securita DCOMu, ale bylo to dost pracné a dost se to rozbíjelo (cca kolem roku 2002). Navíc, pro to co se to požívalo - kancelářskou integraci, automatizaci - tak chca nechca musíte přistupovat někam mimo svůj dokument - generovaly se nové dokumenty, aktualizovaly se stávající, automatizoval se tisk, rozesílání mailů
Problém je, že COM objekty nemají informaci o kontextu - já mohu odesílat maily skrze COM wordu - protože to umí word. Pokud bych napsal aplikaci, bebo extenzi do wordu, tak je to ok, ale pokud to samé API volám z makra, které je součástí dokumentu, který se distribuuje, tak je to bezpečnostní díra.
Tam jde o to, že VBA umožňuje i takové use case:
1) v Excelu je seznam zaměstnanců s jejich platy
2) ve Wordu šablona oznamující, že se zaměstnanci X zvyšuje plat na Y
3) VBA makro dokáže ten seznam postupně projít, ze šablony vytvořit dokument a ten poslat e-mailem
4) navíc třeba ještě nějak označí v kalendáři, od kdy to zvýšení bude
5) a uloží si log s poslaným oznámením do Accessu (nebo něco takového...)
(neříkám, že bych to uměl udělat, ale už jsem podobné věci viděl, prostě to místní ajťák takto udělal za 1/20 ceny, za kterou by to udělal profík - a mnohdy se stejnými bezpenostními dírami :-p).
Za svého mládí jsem dělal takovou IT ambulanci, měl jsem několik klientů (firem) které byly postavené na podobné technologii. Přesně jak píšete – rezidentní IT mág jim po večerech slepil z různých kousků funkční ekvivalent CRM/ERP programu od Abry.
IT mág odešel, a po uplynutí nějaké doby se musely rychle řešit problémy jako např. že Seznam změnil vzhled nějaké stránky (tuším s kurzovním lístkem) a firmě přestal fungovat excel na tvorbu objednávek mezinárodní kontejnerové přepravy, atd. :-)