A Veeam már igen régóta adós az többfaktoros authentikáció megvalósításával a termékeiben. A 12-es főverzióval a Backup and Replication termékben lehetővé is tette a használatát. Jelenleg csak authentikátoros verziót támogat, TOTP ugye. Bevezetéséhez sok dolog nem kell:
- a Backup Server alatt szolgáló Microsoft Windows operációs rendszer órája járjon jól – mondjuk NTP-n kapjon időt egy megbízható helyről.
- Veeam-ben a jogosultságoknál nem lehet csoport, csak felhasználó
- amennyiben például Enterprise Manager vagy valamilyen 3rd party és API-n megvalósított kapcsolatot biztosít meg egy felhasználó, akkor arra nem lehet – mármint be lehet csak nem fog működni – az MFA-t.
A bemutatásához telepítettem egy Veeam Backup and Replication szervert és persze az immáron MS SQL Express helyett a postgreSQL opciót választottam. A kiszolgáló nem tagja domain-nek, ez már korábban is erősen javasolt volt, jobb csökkenteni a támadási felületeket.
Létrehoztam – a default Administrator – mellett két felhasználót a Windows-ban, nem tagjai az Administrator csoportnak:
- user1
- user2
A jogosultságok így néznek ki az MFA előtt:
Az MFA bekapcsolása egyetlen mező kiválasztásával elvégezhető, méghozzá a „Require two-factor authentication for interactive logon” segítségével. Ezek után maximum a felhasználókra egyedileg tudjuk azt kikapcsolni.
A Veeam konzol indítása után továbbra is Administrator felhasználóval lépek be.
Rögvest meg is jelenik egy ablak, hogy egy általam választott alkalmazással olvassam be a megjelenített QR-kódot vagy írjam be a string-et.
Ha készen vagyok, akkor a következő ablakban már kéri is a TOTP-t.
Bevezetni tényleg ennyire könnyű. De álljunk meg egy pillanatra, hogyan tudom egyszerűen megnézni, hogy bár én bekapcsoltam már, de ténylegesen mely felhasználók léptek már be MFA-val eddig. Félreértés ne essék, MFA nélkül nem lehet belépni, engem az érdekel, hogy mostanában léptek-e be és nem akarok naplót olvasgatni.
Nézzük meg a postgre-be! Rengeteg tábla van ami érdekes lehet, de engem első körben a „backup.security.accounts” érdekel.
Látszik is a három felhasználóm – illetve egy csoport is, bár azt törölni kellett Veeam jogosultságok közül az MFA miatt.
Az account és role összerendelést a „backup.security.roleaccounts” tábla adja meg. Azaz a „backup.security.accounts” tábla „id” mezője itt van összerendelve a „role_id” val.
A „role_id” pedig megadja melyik szerepkörről van szó.
Nézzük meg, akkor ki használta már az MFA-t, mióta kötelezővé tettük neki. Látható, hogy bizony az „Administrator” már használta, de a user1 és user2 azóta még be sem lépett. Ennek kiderítésére én a GUI-n nem találtam semmiféle módot, pedig elég hasznos.
Akkor most jöjjön az a rész, hogy letörlöm a user1 és user2-t és marad csak az Administrator. Aztán az Administrator elveszti a telefonját és nincs szinkronizálva az authenticator-a. Lényegében zárjuk ki magunkat.
Ezzel meg is vagyunk:
Ezen a ponton nem tudok belépni Veeam-be. A Backup Server alatti Microsoft Windows Server-be adminisztrátori jogosultsággal bírok, de a Veeam nem enged be. Lőjük ki hát a postgresql oldaláról. Pusztán az „is_mfa_enabled” és az „is_activated” mezőt kell átírni.
Ha ez készen van, akkor a Veeam konzol már nem is kér kódot, egyből kapcsolódik a szolgáltatáshoz, mintha sose lett volna MFA bekapcsolva. Kizártam magam, de SQL-ben átírtam és bejutottam.
Ez utóbbit olvassuk el újra. A Veeam biztonságosságához mindenképpen a teljes képet kell látni és biztosítani az alatta lévő operációs rendszer sértetlenségét és sérthetetlenségét. Ha a támadó bejut a Windows Server-re, akkor onnan a postgres felhasználóval, simán kilövi az MFA-t és már bent is van a Veeam konzolban. Ez nem a Veeam problémája, mert mit tud tenni, ha valaki mögötte átírja az általa használt adatbázist.
Általános javaslatként talán annyi, hogy inkább használjuk a Veeam Backup Server-től független PostgreSQL-t, hiszen ha ő maga telepíti – vagy mi kézzel – akkor a Windows-ban lévő Administrator felhasználó jelszavának ismeretében a postgresql-hez történő kapcsolódás is azonos jelszóval – SSO-val történik.
És gyakorlatilag ezen a ponton a bekapcsolt MFA sem ér semmit, mert simán ki lehet kapcsolni. Az operációs rendszeren implementált MFA is legalább olyan fontos mint a Veeam MFA-sítása, ugyanakkor még a külön szerveren futó postgre sem megoldás, mert ha megtörik a Veeam Backup szerver alatt az OS-t, akkor abból kinyerhető olyan információ, amivel hozzá tudunk férni a Veeam nevében az adatbázishoz és ugyanígy kilőhető az MFA. Végső soron ez csak egy tapasz, hogy el lehessen mondani van, de egyáltalán nem megoldás semmire, nemad semmi szignifikáns növekményt a mentőrendszer biztonságában, sokkal átfogóbban kell gondolkodni.