SDS Audit Log

SDS Audit Log

Pro zajištění bezpečnosti zařízení SDS je jednou z klíčových věcí možnost auditovat základní stavy a změny. Detailní historie akcí je v rámci webového rozhraní SDS k dispozici, nicméně ta je udržována jen do doby resetu zařízení (např. při vypnutí napájení). Proto, pro zajištění trvalého, nesmazatelného záznamu je zde funkcionalita označená jako Audit Log.

Audit Log je záznam takových událostí, které umožní zpětně zjistit, jestli bylo s SDS manipulováno (např. nechtěná změna konfigurace, útoky se snahou prolomit vstupní heslo), nebo jestli je SDS vystaveno nesprávnému zacházení či jiným problémům (napŕ. časté výpadky napájení).

Pozor: pro funkci Audit Log je potřeba mít v zařízení SDS aktuální firmware.

Jak se Audit Log zobrazí

Proklikáním se ve webovém rozhraní (menu - Historie - Audit Log), nebo přímo na odkazu SDSIP/cgi_auditlog .

Dostupnost dat

Audit Log je jednosměrný, tzn. SDS do něj umí jen přidávat další položky, číst a zobrazit jej. Zapsané položky nelze smazat - k tomu by bylo potřeba fyzického přístupu k modulu SDS a zničení nebo výměna součástky (chipu) připájeného na desce.

Zaznamenávané údaje

Údaje jsou k dispozici v následujícím formátu:

  • hodnota UPTIME
  • hodnota UTC
  • popis události
  • data připojená k dané události

Vzorový příklad záznamu je zde:

 [001] uptime:     20951  UTC:1586983688 | MASTER CONFIG CHANGED HIP:fa01a8c0 GW:0101a8c0 MSK:00ffffff WEB:0050 WbyFW:15.04.20 [aaa]       [bbbbbbbbbb]    [cccccccccc] [ddddddddddddddddddddd][eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee]
  • [a] = pořadové číslo záznamu, jen pro informaci
  • [b] = hodnota v milisekundách od zapnutí zařízení (0 = zapnutí procesoru pro daný běh)
  • [c] = hodnota v sekundách určující Linux Epoch (UTC) čas, pokud je zařízení SDS známý (pokud SDS nemá v době záznamu přístup k NTP tak zde platná hodnota nebude)
  • [d] = název události
  • [e] = doplňující data pro danou událost


Jednotlivé události

Zde je seznam pro SDS První Produktové Řady:

  • Start zařízení (spuštění procesoru)
  • Reset procesoru
  • Spuštění bootloaderu
  • Chyba startu Ethernet HW
  • Reset SDS-C programu jeho watchdogem
  • Neúspěšná změna hesla (původní heslo nebylo zadáno správně)
  • Neúspěšná změna hesla (nové heslo nebylo zadáno správně)
  • Úspěšná změna hesla
  • Opakované pokusy o přihlášení s neplatným heslem
  • Nastavení na tovární hodnoty aktivované z webového rozhraní
  • Změna hlavní konfigurace (MFCA)
  • Hlídání neočekávané změny vlastní (ruční) IP adresy zařízení

Další zařízení SDS tento seznam mohou mít rozšířený nebo částečně jiný (Druhá Produktová Řada).



Start zařízení (spuštění procesoru)

Záznam proveden vždy po připojení napájení, nebo po resetu zařízení. Pokud se zařízení často resetuje, což je obvykle nežádoucí a pátrá se po příčině, pak to půjde vidět i v záznamech a může to pomoct v pátrání. Typicky je pak problém v napájení (např. nevhodný napájecí zdroj pro SDS, výpadky napájení zdroje, atd.).

[001] uptime:         0  UTC:         0 | SoC BOOT HIP:fa01a8c0 GW:0101a8c0 MSK:00ffffff WEB:0050 WbyFW:15.04.20, SW-RST
  • Soc BOOT - název události
  • HIP - Host IP Address, adresa na které je SDS k dispozici
  • GW - Gateway IP Adress, adresa brány kterou SDS používá
  • MSK - Network Mask, síťová maska pro určení podsítě
  • WEB - číslo TCP portu pro webové rozhraní (pozor, je to hex, takže 0x0050 je: 80 decimálně)
  • WbyFW - verze FW která provedla poslední zápis konfigurace do paměti
  • SW-RST - typ spuštění procesoru (obsah zde může být jiný)

Možné důvody spuštění či restartu procesoru: SW-RST, EXT-RST, POR-RST, BOR-RST, WDG-RST. Na problém ukazuje BOR nebo WDG reset, ostatní jsou OK.



Reset procesoru

Procesor je možné resetovat jen v přesně daných situacích. Pokud je v logu záznam o resetu a přitom by k tomu neměl být důvod, je potřeba pátrat po příčině. Vždy je to z nějakého důvodu, který je potřeba zjistit a odstranit. Může to být útočník co se snaží SDS vyřadit z provozu, nebo jen problematické napájení.

[001] uptime:         0  UTC:         0 | MCU RESET FWver: 16.4.20 (B:0, T:5), HIP:192.168.1.250
  • FWver - aktuální verze FW
  • B - beta verze ano/ne
  • T - typ zařízení SDS
  • HIP - IP adresa zařízení SDS



Spuštění bootloaderu

Tento záznam se smí objevit jedině, když uživatel provádí aktualizaci FW v zařízení. Po naběhnutí BL může uživatel do zařízení poslat nový FW.

[001] uptime:         0  UTC:         0 | JUMP TO BOOTLOADER FWver: 16.4.20 (B:0, T:5), HIP:192.168.1.250
  • FWver - aktuální verze FW
  • B - beta verze ano/ne
  • T - typ zařízení SDS
  • HIP - IP adresa zařízení SDS



Chyba startu Ethernet HW

Tento záznam se může vyskytnout jedině v případě závažné poruchy zařízení SDS.

[001] uptime:         0  UTC:         0 | EMAC START FAILURE



Reset SDS-C programu jeho watchdogem

Pokud pro svůj SDS-C program zapnete ochranu SDS-C watchdogem, a ten není správně obsluhován (tzn. vyprší ochranný interval), tak SDS provede restart tohoto programu. Toto je nezávislá bezpečnostní ochrana jakéhokoliv SDS-C programu proti jeho nechtěnému zaseknutí (např. je-li špatně navrhnutý). Použití SDS-C watchdogu je sice dobrovolné, ale v každém případě to doporučujeme jako vhodnou další vrstvu jistoty.

[001] uptime:         0  UTC:         0 | SDS-C RESET BY WDG
</pree>


----
====  Neúspěšná změna hesla (původní heslo nebylo zadáno správně) ==== 

Při pokusu o změnu přístupového hesla, uživatel zadal neplatné původní heslo.

<pre>
[001] uptime:         0  UTC:         0 | NEW-PWD CHANGE: FAILED (ORIGINAL WRONG), from 192.168.1.2
  • from - IP adresa odkud byl pokus o změnu hesla proveden



Neúspěšná změna hesla (nové heslo nebylo zadáno správně)

Při pokusu o změnu přístupového hesla, uživatel zadal neplatné nové heslo (např. prázdné, nebo s nevhodnými znaky)

[001] uptime:         0  UTC:         0 | NEW PWD CHANGE: FAILED (NEW WRONG), from 192.168.1.2
  • from - IP adresa odkud byl pokus o změnu hesla proveden



Úspěšná změna hesla

Změna přístupového hesla proběhla úspěšně.

[001] uptime:         0  UTC:         0 | NEW PWD CHANGE: SUCCESS (new length 4), from 192.168.1.2
  • new length - délka nového hesla (počet znaků)
  • from - IP adresa odkud byla změna hesla provedena



Opakované pokusy o přihlášení s neplatným heslem

V případě více opakovaných pokusů o přihlášení s neplatným heslem se provede záznam. Typicky se taková situace stává při pokusu útočníka uhádnout heslo do SDS, tím že zkouší postupně různá hesla.

[001] uptime:         0  UTC:         0 | 64 x INVALID LOGIN ATTEMPT FROM 192.168.3.40</b>, PWD(6): abc ...
  • 64 x - počet už provedených pokusů v okamžiku zápisu do logu
  • FROM - IP adresa odkud byl poslední z pokusů proveden
  • PWD(6) - počet znaků v hesle, kterým se snažil útočník proniknout dovnitř
  • abc ... - první tři znaky z posledního neplatného použitého hesla



Nastavení na tovární hodnoty aktivované z webového rozhraní

Pokud je aktivní RSTD propojka (např. zapojena až za běhu zařízení) a uživatel otevře stránku reset.htm, dojde k celkovému nastavení konfigurace na tovární hodnoty (toto je správné a záměrné chování SDS). Informace o tom je uložena do logu.

[001] uptime:         0  UTC:         0 | CONFIG RESET BY USER VIA WEB</b> FROM 192.168.1.100
  • FROM: IP adresa odkud byla stránka reset.htm otevřena



Změna hlavní konfigurace (MFCA)

Základní nastavení (např. IP adresa zařízení) je uložena v hlavním konfiguračním bloku (označovaný jako MFCA), který je uvnitř SoC chipu. Při změně tohoto nastavení je proveden záznam do logu a jsou vypsány některé důležité prvky.

[001] uptime:         0  UTC:         0 | MASTER CONFIG CHANGED HIP:fa01a8c0 GW:0101a8c0 MSK:00ffffff WEB:0050 WbyFW:15.04.20

Význam položek viz popis pro "SoC BOOT" (v seznamu nahoře).



Hlídání neočekávané změny vlastní (ruční) IP adresy zařízení

Protože se objevil uživatel SDS který nám nahlásil že mu dochází ke změně IP adresy zařízení, a to z pro něj neznámého důvodu, byla do SDS přidána funkce hlídání aktuální používané IP adresy. Pokud dojde ke změně této hodnoty, je taková situace uložena do logu, a lze ji zpětně dohledat. Hlídá se jak provozní hodnota (tzn. aktuální hodnota IP adresy kterou SDS pro sebe používá), tak hodnota v konfiguračním záznamu (MFCA).

Pokud dochází k provozní změně IP adresy (RUN) z důvodu činnosti DHCP serveru (což je v pořádku, pokud DHCP používáte), pak to SDS neukládá do logu (aby se neplnil nečím, co není chybou). Pokud ale DHCP aktivní pro SDS není, a dochází ke změně hodnoty IP adresy zařízení SDS, je to logováno. Z časových značek a dalších typů záznamů pak lze dovodit, co se změnou souviselo (např. změna IP uživatelem atd.).

[001] uptime:         0  UTC:         0 | MASTER IP ADDR CHANGED: RUN: 192.168.1.250 to 192.168.1.100 , MFCA: 192.168.1.250 to 192.168.1.100
  • RUN - změna IP adresy (která je právě používána v provozu) z předchozí na novou
  • MFCA - změna IP adresy (která je uložena v konfiguraci) z předchozí na novou




Další položky

Podle dalších zkušeností se bude nový FW doplňovat o další položky.