Zabezpečení VBA v MS Office

Delší dobu pracuji s produkty z dílny Microsoft, různých verzí Office, do nichž byla poměrně zdařile impementováno prostředí Visual Basic for Application. IDE je „obšlehnuto“ z Visual Basic 6,  za pomoci několika doplnků třetích stran z něj vytvoří slušné vývojové prostředí. Kdo se někdy pohyboval ve Visual Studio 6, bude i zde „jako doma“.

Prostředí umožňuje vytvářet jednak makra, ulehčující rutinní činnost, nebo vytvářet All-In-One aplikace, kdy program Office běží pouze na pozadí jako RunTime. Tyto aplikace většinou již obsahují rozsáhlý kód, několik form a dalších souborů zdrojových kódů, které si autor chce ponechat veřejnosti nepřístupné jako svoje duševní vlastnictví. A obsahuje magický čudlík Zaznamenat makro, známe všichni, že?

Microsoft od doby uvolnění formátu .ZIP pro volné použití a jeho integrace do Windows ho používá jako „slučovač“ souborů popisující obsah dokumentů, tabulek, databáze a dalších. Protože při ukládání těchto supersouborů „všechnovjednom“ vzniká několik souborů, které jsou zkomprimovány do jednoho souboru právě ve formátu .ZIP a přejmenován. Pak se můžeme podivovat tomu, že v jednom souboru je uložena databáze, kód, ovládací prostředí, obrázky… A navíc při náhledu na obsah souboru je vše krásně „parsováno“, obsah je nerozpoznatelný a nečitelný. Prostě výborně navržený a vytvořený formát, nad jehož robustností ochrany musí každé srdce programátora ve VBA zaplesat. A všechno jde zabezpečit heslem, takže náš kód je v suchu, že?

Vše je krásné a sluncem zalité, dokud nezačnete tomuto superformátu nahlížet pod krovky. Pro začátek stačí přejmenovat koncovku souboru na výše uvedený formát .ZIP a… Zdání chráněného formátu mizí a nastává realita.

Houstone máme problém…

Při náhledu do souboru zjišťujeme, že obsahuje celou adresářovou strukturu s celou řadou souborů, jejichž obsah je již plně čitelný. Takže máme přístup k obsahu souboru, jak pro čtení, tak pro modifikaci. Změnou jednoho příznaku v jednom ze souborů odstraníme ochranu heslem a najednou je celý obsah souboru NAPROSTO nechráněn a k dispozici ke všem kalým i nekalým úmyslům. Tímto se celá platforma VBA, původně profesionální nástroj stává amatérsko-kutilským nástrojem, pro „takové to domácí žvýkání“.

Odporníci budou odporovat, že striktním nastavením přístupových práv ve Widows a Active Directory lze nastavit přístup k souborům tak, že je jejich modifikace znemožněna, bohužel se při načítání souborů Office provádí jejich rozbalení do temporary adresářů, které jsou přístupné a dá se provést jejich kopie. Obsah je nechráněn…

Na iternetu jsou lehce dostupné články typu: „Čtyři způsoby jak odstranit hesla z souborů Excel“, což působí jako vztyčený prostředníček Microsoftu programátorům ve VBA napříč celým MS Office.

Tímto diletanským přístupem Microsoft naprosto zdiskreditoval ochranu duševního vlastnictví ve svých vlastních produktech. Z tohoto důvodu nedošlo k většímu rozšíření tvorby maker, ani tvorby aplikací All-In-One, celý skvěle navržený koncept programování v aplikací MS Office byl zahozen a degradován na občasný klik na čudlík Zaznamenat makro. Škoda…

 

Zdroje:

 

Komentáře

Napsat komentář