Moravské přístroje, a. s., zdroj: https://www.mii.cz/art?id=1145&lang=405, vytištěno: 19.04.2024 18:37:27

Hlavní stránkaProduktyProgramový systém Control WebČlánky

Kybernetická bezpečnost a systém přístupových oprávnění v systému Control Web
 Kybernetická bezpečnost a zabezpečení aplikací patří k aktuálním tématům. Následující článek popisuje řešení této problematiky v systému Control Web.

V prostředí systému Control Web je pro ochranu běžících aplikačních programů proti neautorizovaným zásahům nepovolaných osob k dispozici systém přístupových práv uživatelů. Tento systém nejen zabrání osobě bez příslušného oprávnění zastavit aplikační program, ale prakticky každá programová komponenta může mít omezen přístup jen na určitou skupinu uživatelů, která je oprávněna s patřičnou komponentou manipulovat. V praxi to tedy znamená, že neoprávněný uživatel nedokáže např. pohnout knoflíkem nebo stisknout tlačítko.

V OS Windows je samozřejmě možno určitými prostředky ukončit jakoukoli aplikaci, tedy i takovou která na zasílané zprávy s povelem k ukončení nereaguje. Takovému „násilnému“ ukončení aplikačního programu ani systém přístupových práv uživatelů dost dobře nedovede zabránit. Stejně tak není možno zabránit zastavení programu prostým vypnutím počítače.

Každý aplikační program v prostředí systému Control Web není takto vždy automaticky chráněn. Nutnost přihlašování uživatele by pro řadu aplikací, které žádnou ochranu nepotřebují, pouze zbytečně komplikovala práci. Systém přístupových práv uživatelů je v případě potřeby nutno v rámci aplikačního programu aktivovat. To můžeme učinit v grafickém vývojovém prostředí v záložce Datové inspektory. Ve stromu vybereme v položce Nastavení aplikace větev Zabezpečení aplikace a zde nastavíme požadované hodnoty u nabízených parametrů. Ve zdrojovém textu se nastavení projeví v sekci settings v podsekci security.

Definice parametrů zabezpečení aplikace

Parametry sekce security.

ParametrVýznam
security_mode

Nastavení parametru určuje intenzitu bezpečnostních opatření, a tím i odolnost vůči napadení aplikace

disabled - žádné zabezpečení aplikace

basic - základní zabezpečení aplikace, kompatibilní s předchozími verzemi

advanced - nabízí řadu výkonných bezpečnostních mechanismů, kdy o míře jejich použití rozhoduje autor aplikace

strong - automaticky nastaví nejbezpečnější řešení, které ani autorovi aplikačního programu neumožní cokoliv zanedbat

Poznámka:

Nastavení security_mode = strong, splňuje požadavky na kybernetickou odolnost, jak ji definuje směrnice „o opatřeních k dosažení vysoké společné úrovně kybernetické bezpečnosti v unii“, známá pod zkratkou NIS 2.

login_window_visible

Parametr určuje, zda bude přihlašovací okno viditelné. Přihlašovací okne lze zobrazit stiskem kombice kláves <Alt>+<Ctrl>+<Space>

receivers

Seznam přístrojů, které budou aktivovány při každém přihlášení i odhlášení uživatele.

stop_access

Úrovně oprávnění uživatelů pro zastavení aplikace.

Poznámka:

Platí jen pro security_mode = basic

activity_log

Parametr určuje, kam budou ukládány záznamy o aktivitě uživatelů

database - záznamy budou ukládány do databázové tabulky

file - záznamy budou ukládány do textového souboru ve formátu CSV

database

Identifikátor databáze, odkazující se na definici databáze v sekci database, kam budou ukládány záznamy o aktivitě uživatelů.

history

Časové omezení historie uchovávaných záznamů v databázi nebo souboru.

users_id

Identifikátor databáze uživatelů. Pokud chcete, aby aplikace běžící na stejném PC sdílely uživatele, pak je třeba v aplikacích nastavit stejný identifikátor.

Poznámka:

Identifikátor může být libovolný řetězec znaků. Pokud není identifikátor uveden, bude vygenerován jednoznačný identifikátor (GUID).

password_complexity

Požadavek na složitost hesla. Pokud je parametr nastaven na hodnotu true, je vyžadováno, aby heslo splňovalo alespoň tři požadavky z následujícího seznamu požadavků:

  • alespoň jedno malé písmeno

  • alespoň jedno velké písmeno

  • alespoň jednu číslici

  • alespoň jeden speciální znak

password_expiration

Počet dnů platnosti hesla. Po uplynutí definované doby bude uživatel vyzván k zadání nového hesla.

min_password_length

Minimální délka hesla (počet znaků) běžného uživatele.

min_root_password_length

Minimální délka hesla (počet znaků) správce.

password_recycling

Počet po sobě následujících hesel, kdy se hesla nesmí opakovat.

password_redefinition_period

Doba (v sekundách), po kterou nelze změnit heslo.

web_2fa

Pokud je parametr nastaven na hodnotu true, bude vyžadována dvoufázová autentifikace uživatele při přihlašování z webových stránek.

number_of_login_attepmts

Počet neúspěšných pokusů o přihlášení, po kterých bude úcet zablokován na dobu určenou parametrem account_blocking_period

account_blocking_period

Doba zablokování uživatelského účtu po vyčerpání počtu povolených pokusů o přihlášení.

idle_logout_timeout

Doba automatického odhlášení přihlášeného uživatele při jeho nečinnosti.

Přístupová práva

Systém definice přístupových práv uživatelů je různý pro základní a pokročilé zabezpečení. U základního (basic) se užívají pro definici přístupu úrovně definované číslicemi (UID) a u pokročilého zabezpečení se přístupy definují pomocí uživatelských rolí.

V systému vždy existuje alespoň jeden uživatel s funkcí správce systému. Přihlašovací jméno tohoto uživatele je root.

Upozornění:

U nově nainstalovaného systému Control Web uživatel root nemá přiděleno žádné heslo. Je tedy nanejvýš žádoucí, aby se správce systému co nejdříve přihlásil pod tímto jménem a definoval heslo správce na daném počítači.

Základní zabezpečení - basic

Každý autorizovaný uživatel má správcem systému přiděleno určité číslo (UID — User Identifier). Tato čísla mohou být v rozsahu od nuly do více než čtyř miliard. Mezi jednotlivými UID čísly není obecně žádný vztah, je to prosté nahrazení potencionálně dlouhého jména jediným číslem.

Význam UID je jiný — tato čísla se rovněž vyskytují v aplikaci jako hodnoty parametrů přístrojů definujících přístupová práva. Při tvorbě aplikace samozřejmě netušíme, kteří konkrétní uživatelé budou s aplikací pracovat. S pomocí zvolených UID ale můžeme definovat strukturu přístupu uživatelů. Je pak na správci konkrétní instalace aplikace, aby definoval konkrétní uživatele a jim odpovídající UID. UID je tak spojovací článek mezi aplikací, která pracuje pouze s číselnými identifikátory, a během aplikace na určitém počítači, na kterém jsou definováni skuteční uživatelé.

Jak bude vysvětleno později, lze přístupová práva přidělovat nejen po jednotlivých číslech, ale i po intervalech (např. přístup mají všichni uživatelé s UID 100 až 199, není nutno vyjmenovávat všech 100 uživatelů). Přidělení čísel z určitého intervalu skupině uživatelů, jež mají mít stejná práva, tak může být velmi výhodné. Samozřejmě více uživatelů může mít přiděleno jediné číslo UID. Z hlediska systému pak ale práva těchto uživatelů nelze rozlišit.

Výjimečné postavení má UID nula. Uživatel s touto identifikací má automaticky právo provádět jakékoliv akce a má přístup ke všem částem systému. UID nula náleží zabudovanému správci systému, mohou ji však mít i další uživatelé. Ti pak mají práva shodná se správcem, nemusí ale znát heslo skutečného správce a do systému se nepřihlašují pod jménem root, ale pod svým jménem.

Pokročilé zabezpečení - advanced a strong

Narozdíl od základního zabezpečení jsou uživatelská oprávnění v pokročilém režimu definována pomocí uživatelských rolí.

Uživatelské role

Uživatelské role umožňují komfortnější správu uživatelských oprávnění. V rámci definice role lze nastavovat kromě přístupové úrovně i další oprávnění a možnosti. Role je v systému identifikována svým jedinečným jménem, kterým je přiřazována uživatelům a přístrojům. Role se definují v rámci aplikace v Datových inspektorech.

Definice uživatelských rolí v Datovém inspektoru

Definice uživatelských rolí v Datovém inspektoru

Parametry sekce roles.

ParametrVýznam
name

Jedinečné jméno role. Toto jméno se používá pro identifikaci role a přiřazuje se jednotlivým uživatelům a přístrojům.

Poznámka:

Vyhrazená jména pro zabudované role jsou root, app_operator a web_operator.

level

Přístupová úroveň role.

access

Definice přístupu

application - uživatelé s touto přiřazenou rolí se smí přihlásit z aplikace

web - uživatelé s touto přiřazenou rolí se smí přihlásit přes webové rozhraní

Upozornění:

V režimu zabezpečení strong smí být přístup pouze výhradní - buď z aplikace nebo přes web.

permissions

Seznam povolených oprávnění role

stop_application - uživatelé s touto přiřazenou rolí smí zastavit aplikaci

view_login_log - uživatelé s touto přiřazenou rolí smí prohlížet záznamy o aktivitě uživatelů

debug - uživatelé s touto přiřazenou rolí smí používat ladicí okno aplikace

options

Seznam možností role

idle_logout_disabled - uživatelé s touto přiřazenou rolí nebudou automaticky odhlašováni při své nečinnosti. Platí pouze pro přístup z aplikace.

status

Parametr určuje stav role

enabled - role je povolena

disabled - role je zakázána. Uživatelé s touto přiřazenou rolí se nebudou moci přihlásit.

Přístupová práva virtuálních přístrojů

Každý viditelný virtuální přístroj umožňuje definovat přístupová práva parametrem access.Tento parametr obsahuje v hranatých závorkách výčet UID, kteří mají ke konkrétnímu přístroji přístup nebo výčet uživatelských rolí s povoleným přístupem. Parametr access tak může vypadat např. následovně:

access = [ 1..5, 8, 10..20 ], Dispečer, Operátor;

Přístupová práva virtuálních přístrojů - basic

Pro security_mode = basic je přístup k přístroji definován výčtem UID.

access = [ 1..5, 8, 10..20 ];

Tento zápis povoluje přístup všem uživatelům s UID 1 až 5, 8 a 10 až 20. Uživatel s UID 0 (root a případně další uživatelé) mají přístup samozřejmě také zajištěn.

V Inspektoru přístrojů je parametr access v tabulce popisující vzhled přístroje (sekce gui). Aby nebylo nutno ručně zadávat intervaly, pomocné okno usnadňuje editaci:

Editace přístupových práv v inspektoru přístrojů pro mód basic

Editace přístupových práv v inspektoru přístrojů pro mód basic

Poznámka:

Systém přístupových práv ve verzi Control Web 2000 a v předchozích verzích nebyl obecný, ale hierarchický. Přístupová práva přístroje byla představována jediným číslem, definujícím maximální hodnotu UID uživatele, který má k dané komponentě přístup. Např. úroveň přístupu 100 zaručovala, že všichni uživatelé s přidělenými UID 0 až 100 měli přístup zajištěn, ostatní uživatelé s většími čísly nikoliv. Tento mechanismus ale nepostihoval situaci, kdy bylo nutno zajistit přístup výlučně — jeden uživatel k jednomu přístroji a druhý uživatel k druhému přístroji.

Aby systém Control Web zajistil kompatibilitu s aplikacemi pro předchozí verze systému, načítá parametr

access = 100;

který povoloval přístup všem uživatelům s přidělenými čísly od 0 do 100 a interpretuje jej jako parametr

access = [ 0..100 ];

Tím je zajištěna kompatibilita starých aplikací s novým systémem přístupových práv.

Přístupová práva virtuálních přístrojů - advanced a strong

Pro security_mode = advanced a security_mode = strong je přístup k přístroji definován výčtem uživatelských rolí.

access = Dispečer, Operátor;

Tento zápis povoluje přístup všem uživatelům s přiřazenou rolí Dispečer nebo Operátor a samozřejmě s rolí root.

I inspektoru přístrojů je parametr access v tabulce popisující vzhled přístroje (sekce gui). Aby nebylo nutné ručně zadávat výčet rolí, pomocné okno usnadňuje editaci:

Editace přístupových práv v inspektoru přístrojů pro mód advanced a strong

Editace přístupových práv v inspektoru přístrojů pro mód advanced a strong

Poznámka:

Z důvodu kompatibility lze kombinovat výčet rolí i s výčtem uživatelských UID.

Přístupová práva u přístroje httpd

Velmi často jsou v roli klienta systému Control Web používány standardní WWW prohlížeče. Samostatnou otázkou je proto ochrana aplikačního programu před neautorizovaným přístupem v sítích Internetu a intranetu. HTML dokumenty pro internetové prohlížeče jsou dynamicky generovány virtuálním přístrojem httpd, který je standardní součástí systému Control Web. Vzhledem k tomu, že HTML rozhraní aplikačního programu může být zcela odlišné od samotné aplikace, je nutno hlídat přístup k jednotlivým stránkám a k internetovému serveru jako celku.

Je-li v aplikaci systém kontroly přístupových práv aktivován, pak také při přístupu prostřednictvím standardního WWW prohlížeče přes HTTP nebo HTTPS protokol je vyžadováno zadání jména a hesla uživatele. Není-li systém kontroly přístupu v aplikaci použit, pro přístup k HTML rozhraní stačí znalost IP adresy nebo doménového jména.

Přístroj httpd dovoluje definovat přístup k jednotlivým URL. Pokud zadaná URL nemá definována přístupová práva, zkontroluje se zda-li existují práva pro adresář, v němž se URL nachází. Pokud ani práva pro adresář nejsou definována, mohou se uplatnit práva definována pro celý přístroj. Podrobněji je systém práv a přihlašování popsán v dokumentaci k přístroji httpd.

V případě využití HTML rozhraní systému Control Web je zde ještě jeden velmi podstatný prvek bezpečnosti. Přístroj httpd umožňuje přístup jen k těm datům a komponentám aplikačního programu, které ve svém návrhu zpřístupní autor aplikace. Ani autorizovanému uživateli tedy není žádným způsobem umožněn přístup k těm datům aplikace, o jejichž nepřístupnosti rozhodl autor aplikace.

Jméno uživatele i jeho heslo je při přihlašování v prostředí WWW prohlížeče přenášeno standardními prostředky protokolu HTTP. Údaje tedy nejsou při přenosu zašifrovány. To je nutno brát v úvahu zejména při připojení přes veřejný Internet. Vyšší bezpečnost je vhodné zajistit dalšími prostředky pro hlídání přístupu v Internetu a intranetových sítích, jako je např. oddělení přes firewall. Prakticky naprostou jistotu bezpečnosti i při propojení kritických aplikací přes veřejný internet poskytuje zapnutí šifrovaného přenosu HTTPS .

Pokud je v aplikaci zapnut globální Systém přístupových práv uživatelů, lze nastavením parametru access (buď pro celý přístroj nebo pro adresáře (folders) / soubory (files)) zapnout také přihlašování do aplikace přes webové rozhraní. Některé parametry z globální sekce security pak ovlivňují chování i samotného httpd přístroje. Jedná se především o parametry pro složitost či expiraci hesla, odhášení při nečinnosti, blokování uživatelů, atd.

Přihlášení do aplikace

Pokud není uživatel již přihlášen a přistoupí na URL, která přihlášení vyžaduje, je přesměrován na stránku Přihlášení uživatele. Zde stačí zadat své uživatelské jméno a heslo. Teprve po úspěšném přihlášení přístroj vyhodnocuje, zda má uživatel dostatečnou úroveň pro přístup na danou URL.

Přihlašovací stránka do aplikace

Přihlašovací stránka do aplikace

Upozornění:

Pokud je použito základní zabezpečení aplikace (security_mode = basic), může se přes web přihlásit každý definovaný uživatel. V pokročilém zabezpečení je toto dovolenou pouze uživateli, jehož role obsahuje definici přístupu web.

Údaje o přihlášení jsou následně uloženy v prohlížeči pomocí cookies. Zneplatnit přihlášení lze následujícími způsoby:

  • Zavřením okna s prohlížečem, popř. vymazáním údajů o prohlížení.

  • Kliknutím na tlačítko Odhlásit v menu, které se otevře po kliknutí na uživatelské jméno v liště přihlášeného uživatele. Platí pouze, pokud aplikace byla vygenerována průvodcem pro tvorbu WWW podoby aplikace a byla zapnuta volba Generovat lištu přihlášeného uživatele.

    Lišta přihlášeného uživatele vygenerovaná průvodcem

    Lišta přihlášeného uživatele vygenerovaná průvodcem

  • Přistoupením na adresu <adresa_serveru>/session/logout.

  • Automatickým odhlášením přihlášeného uživatele při jeho nečinnosti. Platí pouze, pokud aplikace byla vygenerována průvodcem pro tvorbu WWW podoby aplikace, používá se rozšířené zabezpečení aplikace a je nastaven parametr idle_logout_timeout v sekci security.

  • Zastavením běžící aplikace s přístrojem httpd. Tímto dojde k odhlášení všech uživatelů.

Změna hesla

Pokud uživateli vypršelo heslo (časovou expirací, popř. vynucením od správce systému) nebo si ho sám chce změnit, lze v prohlížeči navštívit stránku Změna hesla.

Stránka s formulářem pro změnu hesla

Stránka s formulářem pro změnu hesla

Stránku pro změnu hesla lze navštívit těmito způsoby:

  • Kliknutím na tlačítko Změna hesla v menu, které se otevře po kliknutí na uživatelské jméno v liště přihlášeného uživatele. Platí pouze, pokud aplikace byla vygenerována průvodcem pro tvorbu WWW podoby aplikace a byla zapnuta volba Generovat lištu přihlášeného uživatele.

    Lišta přihlášeného uživatele vygenerovaná průvodcem

    Lišta přihlášeného uživatele vygenerovaná průvodcem

  • Přistoupením na adresu <adresa_serveru>/session/change-pw.

Poznámka:

Při expiraci hesla uživatele je stránka Změna hesla zobrazena ihned po úspěšném přihlášení starým heslem a uživateli není dovoleno přistoupit do aplikace, dokud nedojde ke změně hesla na nové.

Seznam interních URL

Pokud je zapnuto v přístroji přihlašování do aplikace přes webové rozhraní, vyhradí si httpd přistroj virtuální adresář /session, který slouží k obsluze přihlašovacího systému. Je proto doporučeno nevyvářet tuto cestu ani fyzicky v kořenovém adresáři, ani dynamicky pomocí sekcí pages, files a folders.

/session/login

Stránka pro přihlášení uživatele.

/session/logout

Virtuální stránka pro odhlášení uživatele, přesměrovává zpátky na /session/login.

/session/change-pw

Stránka pro změnu hesla přihlášeného uživatele.

Přihlášení do aplikace

Do aplikace se uživatelé přihlašují v okně Přihlášení uživatele, které lze vyvolat kliknutím na toto okno v liště nebo současným stisknutím kláves <Alt>+<Ctrl>+<Space>.

Uživatel se přihlašuje pomocí svého uživatelského jména a hesla. Po úspěšném přihlášení je zobrazeno jméno uživatele a jeho avatar (obrázek), je-li zadán, tlačítko pro odhlášení a tlačítko pro změnu hesla (pokud je změna hesla povolena).

Okno pro přihlášení uživatele v módu basic

Okno pro přihlášení uživatele v módu basic

Okno pro přihlášení uživatele v módu advanced a strong

Okno pro přihlášení uživatele v módu advanced a strong

Definice uživatelů

To, jestli je systém přístupových práv aktivní či nikoliv, je vždy dáno právě spuštěnou aplikací.

Definice uživatelů - basic

Seznam autorizovaných uživatelů spolu s jejich přístupovými právy není svázán s jednotlivými aplikacemi, ale s počítačem — přesněji řečeno s instalací systému Control Web. Není-li však v aplikaci systém přístupových práv aktivován, není seznam uživatelů nijak využíván, a aplikační program může ovládat každý bez jakéhokoliv omezení.

Jednotlivé uživatele a jejich přístupová práva je oprávněn zadávat pouze správce systému.

Poznámka:

Zde se můžete ptát, kdo tedy definuje správce systému. Je to však velmi prosté — správcem systému se může prohlásit kdokoliv, kdo si v prostředí, které ještě nemá stanoveného správce, zadá heslo správce, které ostatní neznají. Správce systému se v prostředí Control Web přihlašuje rezervovaným jménem root a svým heslem.

Správce systému může přidávat nebo odstraňovat jednotlivé uživatele a stanovovat jim úrovně přístupových práv, nastavovat a měnit jejich hesla a nastavovat jednotlivým uživatelům právo ke změně svého hesla. To můžete učinit dvěma způsoby:

  1. Ve vývojové verzi můžete pomocí menu Nástroje / Průvodce právy uživatelů aplikace... spustit Průvodce přístupovými právy uživatelů. Zde můžete mimo jiných nastavení také editovat seznam uživatelů a jejich přístupových práv. Přístup k tomuto seznamu je zde také možný jen po ověření hesla správce systému.

    Editace seznamu uživatelů v průvodci

    Editace seznamu uživatelů v průvodci

  2. Za běhu jakékoliv aplikace s aktivovaným systémem kontroly přístupových práv se přihlásíte jako správce systému. Poté můžete stiskem tlačítka Uživatelé vyvolat dialogové okno se seznamem autorizovaných uživatelů.

    Editace seznamu autorizovaných uživatelů za běhu aplikačního programu

    Editace seznamu autorizovaných uživatelů za běhu aplikačního programu

  3. Správce systému může při editaci seznamu uživatelů povolit nebo zakázat jednotlivým uživatelům měnit své heslo. Toto nastavení se provádí změnou hodnoty ve sloupci Změna hesla. Sloupec Heslo obsahuje heslo uživatele. Kliknutím na tlačítko se šipkou v buňce s heslem lze otevřít dialogové okno pro zadání nového hesla.

    Okno pro nastavení hesla správcem systému

    Okno pro nastavení hesla správcem systému

Editor seznamu uživatelů je v obou případech stejný a má podobu snadno ovladatelné a přehledné tabulky.

Tip:

Editor umožňuje dovezení nebo vyvezení seznamu uživatelů prostřednictvím souboru. Veškerá data o uživatelích tak můžete uložit na přenosné médium a snadno přenést např. na všechny počítače distribuovaného systému. Do souboru je uloženo i heslo správce systému — při dovozu dat ze souboru je přeneseno i heslo správce. Máte-li tedy na přenosném médiu uložena data z doby, ze které si již své heslo správce nepamatujete, raději tato data do systému nepřenášejte. Data jsou při vývozu šifrována a tak nemusíte mít příliš obav z úniku citlivých dat ani při případné ztrátě přenosného média.

Jednotliví uživatelé si mohou měnit svá hesla jen za běhu aplikačního programu a pokud to mají povoleno

Jednotliví uživatelé si mohou měnit svá hesla jen za běhu aplikačního programu a pokud to mají povoleno

Data o uživatelích jsou uložena v registru systému Windows. I zde jsou samozřejmě zašifrována. Nikdy se proto nepokoušejte tato data modifikovat přímo prostřednictvím editoru registru.

Definice uživatelů - advanced a strong

V režimu advanced a strong je seznam uživatelů spolu s přiřazenými přístupovými rolemi uložen v registru systému a je identifikován řetězcem zadaným u parametru user_id. Výhodou, oproti režimu basic je, že každá aplikace běžící na PC může mít vlastní množinu uživatelů nebo je mohou aplikace se stejným user_id sdílet.

Jednotlivé uživatele, jejich uživatelské role a další možnosti je oprávněn zadávat pouze správce systému, resp. uživatel s přiřazenou rolí root.

Správce systému může přidávat nebo odstraňovat jednotlivé uživatele, přidělovat jim uživatelské role, nastavovat a měnit jejich hesla, odblokovat je v případě jejich zablokování a nastavovat jim další nabízené možnosti.

Za běhu jakékoliv aplikace s aktivovaným systémem kontroly přístupových práv se přihlásíte jako správce systému. Poté můžete stiskem tlačítka Uživatelé vyvolat dialogové okno se seznamem autorizovaných uživatelů.

Editace seznamu uživatelů za běhu aplikačního programu v pokročilém režimu

Editace seznamu uživatelů za běhu aplikačního programu v pokročilém režimu

Okno pro nastavení hesla správcem systému

Okno pro nastavení hesla správcem systému

Seznam nabízených možností uživatelského účtu

Seznam nabízených možností uživatelského účtu

Tip:

Editor umožňuje export a import seznamu uživatelů prostřednictvím souboru. Veškerá data o uživatelích tak můžete uložit do šifrovaného souboru a snadno přenést na jiný počítače nebo do jiné databáze uživatelů.

Upozornění:

Do souboru je při exportu uživatelů uloženo i heslo správce systému. Při importu dat ze souboru je tedy přeneseno i heslo správce. Po úspěšném importu uživatelů je vyžadováno nové přihlášení!

Jednotliví uživatelé si mohou měnit svá hesla za běhu aplikačního programu a pokud to mají povoleno

Jednotliví uživatelé si mohou měnit svá hesla za běhu aplikačního programu a pokud to mají povoleno

Data o uživatelích jsou uložena v registru systému Windows. I zde jsou samozřejmě zašifrována. Nikdy se proto nepokoušejte tato data modifikovat přímo prostřednictvím editoru registru.

Zastavení aplikace

Zastavení aplikace je nepochybně dosti zásadním zásahem do běhu programu. Proto je při aktivovaném systému přístupových práv umožněno zastavit aplikaci pouze uživatelům s právy správce systému, tedy uživateli s přiděleným UID nula nebo s UID definovaným u parametru stop_access v režimu basic nebo v pokročilých režimech rolí root nebo pokud je v definici role povolena volba stop_application . Nástroje a položky menu sloužící k zastavení aplikace jsou zneplatněny, pokud není přihlášen uživatel s odpovídajícím oprávněním.

Bez příslušných práv aplikaci nelze zastavit

Bez příslušných práv aplikaci nelze zastavit

Systémová nativní procedura StopApplication()

Existuje ještě jedna možnost zastavení aplikačního programu (samozřejmě mimo chyby za běhu aplikace, např. dělíte-li v aplikačním programu nulou, bude tento rovněž zastaven bez ohledu na úroveň práv právě přihlášeného uživatele). Touto možností je systémová nativní procedura StopApplication(). Zavoláním této procedury může aplikační program zastavit sám sebe kdykoliv, a to nezávisle na tom, jaký uživatel je zrovna do systému přihlášen. Nechcete-li tuto možnost připustit, musíte volat proceduru StopApplication() podmíněně. Jméno a úroveň práv aktuálně přihlášeného uživatele jsou trvale k dispozici v systémových proměnných. Rozhodnutí, zda zastavení aplikace povolit je už v tomto případě pouze na vás.

Umístění dat o uživatelích a jejich přenos mezi různými počítači

Jak již bylo uvedeno v sekci Definice uživatelů, veškerá data o uživatelích jsou uložena v registru systému Windows. Aby se nikdo nepovolaný nemohl dozvědět cizí hesla, je záznam v registru zašifrován.

Veškerá tato data mohou být rovněž uložena do souboru a v této podobě přenášena mezi jednotlivými počítači. Do souboru je rovněž uloženo i heslo správce systému, které je při dovozu ze souboru rovněž přeneseno na cílový počítač. Rozšíření celého systému uživatelských práv na více počítačů je tak velmi snadné a rychlé — samozřejmě jen pro správce systému. Pro nepovolanou osobu jsou nástroje pro vývoz i dovoz dat nepřístupné.

Události šířené při přihlášení uživatele

Řídí-li se aplikační program informací o aktuálním uživateli, může si jméno uživatele a jeho úroveň, roli a i nastavený režim yabeypečení aplikace přečíst ze systémových proměnných user_name a user_level a pomocí OCL procedur přístroje zabudovaného přístroje system.. Není však jasné, kdy by tato informace měla být čtena. Periodické čtení a testování dat v systémových proměnných nebo volání OCL procedur by bylo velmi neefektivní. Proto může být v nastavení parametrů login definován seznam přístrojů, které budou aktivovány při každém přihlášení i odhlášení uživatele. Seznam přístrojů je stejně jako všude jinde uvozen klíčovým slovem receivers. Další možností je zachytávat aktivitu přihlášování nebo odhlašování uživatelů pomocí přístroje system_event a jeho událostních procedur OnLogin( Level : longcard; UserName : string ), OnLogout() a OnIvalidLogin().

settings
  ...
  security
    login_system_enabled = basic;
    receivers = vitrual_instrument_1, vitrual_instrument_2;
  end_security;
  ...
end_settings;

Takto mohou být snadno evidovány všechny změny uživatelů včetně nepodařených pokusů o přihlášení. Seznam aktivovaných přístrojů můžete vytvářet a upravovat v oblasti datových inspektorů integrovaného vývojového prostředí.

Možnost zachytávání udalostí souvisejicích s přihlašováním přístrojem system_event

Události týkající se přihlašování (i neúspěšných) a odhlašování jednotlivých operátorů lze zachytávat v událostních procedurách OnLogin( Level : longcard; UserName : string ), OnInvalidLogin() a OnLogout() virtuálního přístroje system_event. V těchto procedurách pak lze tyto události zpracovávat uživatelským skriptem.

Možnost archivace událostí systému kontroly přístupových práv virtuálním přístrojem journal

Archivaci veškerých přihlašování (i neúspěšných) a odhlašování jednotlivých operátorů přináší virtuální přístroj journal. Tento přístroj je určen pro sledování vybrané sady dat a archivaci veškerých změn. Zde postačí pouze zapnout volbu Registrovat u parametru (vodorovné záložky) register_login nebo uvést příznak

register_login;

do zdrojového textu přístroje. O další vazby či šíření událostí mezi takovýmto přístrojem journal a systémem kontroly přístupových práv se již nemusíte starat. Přístroj journal totiž dokáže zpracovávat vnitřní systémové události šířené systémem kontroly přístupových práv.

Možnost přenosu informací o přihlašování uživatelů do ovladačů

Ovladače vstupně-výstupních zařízení jsou samostatnými komponentami systému Control Web. Jejich funkce může být kromě zprostředkování čtení a zápisu kanálů prakticky libovolná. Proto může být někdy užitečné, má-li také ovladač vstupně/výstupního zařízení k dispozici aktuální informaci o právě přihlášeném uživateli. Má-li nějaký ovladač být informován o událostech systému kontroly přístupových práv, musí ve své proceduře DriverProc zachycovat zprávu cw_drv.dpfLogin:

DriverProc( cw_drv.dpfLogin, LoginLevel, AddressOfLoginNameString, 0, 0 );

Další parametry pak obsahují úroveň práv aktuálně přihlášeného uživatele a adresu na řetězec s jeho jménem. Není-li nikdo přihlášen, má LoginLevel hodnotu MAX( CARDINAL )LoginName obsahuje text 'none'. Podrobnější informace o mechanizmech komunikace mezi ovladači a systémem a o programovém rozhraní ovladačů vstupně/výstupních zařízení naleznete v druhém dílu dokumentace v kapitole Rozhraní ovladačů pro Control Web.

Logování aktivity uživatelů v režimu advanced a strong

Význam hodnot ve sloupci Reason.

Zaznamenávání aktivity uživatelů do textového souboru

Zaznamenávání aktivity uživatelů do textového souboru je nastaveno jako výchozí. Soubory jsou zakládány při prvním požadavku zápisu události ve dni. Soubory jsou ve formátu CSV (oddělovač je středník) a jsou lokalizovány ve složkách podle pravidel definovaných v sekci directories.

Textové soubory obsahují záznamy vždy za jeden den. Název souboru je uvozen předponou cw_sec_, za kterou je doplněno datum záznamů v souboru ve formátu yyyymmdd, tedy např. 'cw_sec_20221209.log', je soubor se záznamy ze dne 9. 12. 2022.

Nejmenší možná fragmentace historie souborů je v řádu dnů.

Ukázka zápisu událostí do textového souboru v CSV formátu

UTC; Application; UserName; Access; Reason; HostIP; Note
12:48:33.977; "security"; "", "application"; "Start the application"; "127.0.0.1"; ""
12:48:43.318; "security"; "root", "application"; "Login"; "127.0.0.1"; ""
12:49:16.042; "security"; "root", "application"; "Stop the application"; "127.0.0.1"; ""

Zaznamenávání aktivity uživatelů do databázové tabulky

Zaznamenávání aktivity uživatelů do databázové tabulky je volitelné a je vhodné pro pohodlné zpracování dat pomocí SQL příkazů. Cílová databáze je určena parametrem database v sekci security, který se odkazuje na název předefinované databáze v sekci database. Historie uchovávaných záznamů je určena parametrem history v sekci security.

Při prvním požadavku na zápis události jsou v databázi založeny tabulky cw_sec a cw_sec_reasons.Tabulka cw_sec obsahuje záznamy související s aktivitou uživatelů a tabulka cw_sec_reasons je tabulka s popisy hodnot ukládanými do sloupce REASON v tabulce cw_sec.

Položka Popis
UTC Čas (UTC) vytvoření události
UTC_BIAS Pásmový posuní času
DST_BIAS Posun letního času
APPLICATION Název aplikace
USER_NAME Přihlašovací jméno uživatele
ACCESS Rozlišení přístupu do aplikace
REASON Důvod zápisu události
HOST_IP IP nebo název hostitele
NOTE Poznámka - upřesnění události

Struktura tabulky cw_sec

Hodnota Význam
0 Spuštění aplikace
1 Zastavení aplikace
2 Přihlášení
3 Přihlášení zakázáno
4 Neznámý uživatel
5 Neznámá uživatelská role
6 Uživatelská role je zakázána
7 Uživatelská role je povolena
8 Chybné heslo
9 Uživatel si změnil heslo
10 Uživatel byl zablokován
11 Pokus o přihlášení zablokovaného uživatele
12 Odhlášení
13 Odhlášení voláním systémové procedury Logout()
14 Odhlášení po chybném přihlášení
15 Odhlášení po importu uživatelů
16 Odhlášení - zadání nového hesla
17 Odhlášení při nečinnosti
18 Vynucené odhlášení
19 Správa uživatelů

Význam hodnot ve sloupci REASON - obsah tabulky cw_sec_reasons

Hodnota Význam
1 Přístup z aplikace
2 Přístup z webu

Význam hodnot ve sloupci Access.

Příklad SQL dotazu pro zobrazení záznamů aktivity uživatelů:

SELECT 
  CONVERT(DATETIME, s.UTC - 2415020.5) UTC,
  s.APPLICATION, 
  s.USER_NAME, 
  CASE s.ACCESS WHEN 1 THEN 'App' WHEN 2 THEN 'Web' END ACCESS,
  s.HOST_IP, 
  r.CZ REASON,
  s.NOTE
FROM
  cw_sec s INNER JOIN cw_sec_reasons r ON s.REASON = r.ID

UTC APPLICATION USER_NAME ACCESS HOST REASON NOTE
2022-12-09 12:48:33.977 security   App 127.0.0.1 Spuštění aplikace  
2022-12-09 12:48:43.317 security root App 127.0.0.1 Přihlášení  
2022-12-09 12:49:16.043 security root App 127.0.0.1 Zastavení aplikace  

Příklad tabulky získané vykonáním dotazu

Shrnutí

  • Každá aplikace není automaticky chráněna — chceme-li využívat systém ochrany před neautorizovanými zásahy, je nutno jej v dané aplikaci aktivovat.

  • Systém Control Web nabízí tři módy zabezpečení aplikace.

  • Nastavení security_mode = strong, splňuje požadavky na kybernetickou odolnost, jak ji definuje směrnice „o opatřeních k dosažení vysoké společné úrovně kybernetické bezpečnosti v unii“, známá pod zkratkou NIS 2.

  • Přihlašovací okno může být skryté, tj. neviditelné na pracovní ploše. Neviditelné (nebo jen minimalizované) přihlašovací okno lze zobrazit současným stiskem kláves <Ctrl>+<Alt>+<Space> nebo z menu otevřeného nad ikonou systému Control Web v liště s úlohami.

  • Seznam autorizovaných uživatelů je v režimu basic společný pro danou instalaci systému Control Web na konkrétním počítači, není tedy spjat s aktuální aplikací.

  • Seznam autorizovaných uživatelů v režimu advanced nebo strong může být jedinečný pro konkrétní aplikaci nebo může být aplikacemi sdílen.

  • Virtuální přístroj umožní přístup jen těm uživatelům, jejichž přístupová práva jsou uvedena v parametru access tohoto přístroje.

  • Definovaní uživatelé jsou kontrolováni i při přístupu přes internet a intranet k vestavěnému serveru httpd.

  • Zavolání systémové nativní procedury StopApplication() zastaví aplikaci bez ohledu na přístupová práva momentálně přihlášeného uživatele.

  • Můžete definovat seznam přístrojů, které budou aktivovány při každém přihlášení i odhlášení uživatele.

  • Události systému kontroly přístupových práv můžete evidovat a archivovat virtuálním přístrojem journal.

  • Události systému kontroly přístupových práv jsou prostřednictvím mechanizmu DriverProc přenášeny i do ovladačů vstupně/výstupních zařízení.

  • Jste-li správcem systému, nezapomeňte své heslo!