KKV-nál dolgozok, a logokat, logbejegyzéseket digitálisan aláírjuk

...mindent.
1% (3 szavazat)
...csak az üzleti szempontból fontosakat.
1% (3 szavazat)
...csak az IT szempontból fontosakat.
0% (1 szavazat)
...nem írjuk alá.
52% (125 szavazat)
(Nem érint a szavazás)
45% (109 szavazat)
Összes szavazat: 241

Hozzászólások

Eddig jó.

--
arch,debian,retropie,osmc,android,windows

troll:
Nem bízunk ebben a digitális izében. Minden logra tail -f és már megy is mátrixnyomtatón a leporellóra. Minden doboznál szorgalmas kollégák guggolnak, akik kék (!) tollal aláírják az egyes sorokat, majd lepecsételik.
Múltkor, mikor etikusan hekkeltek minket, több kolléga is ínhüvely-gyulladást kapott.

Üdv,
Marci

Multinál dolgozom, és még itt sem írjuk alá.

Nem vagyok üzemeltető, de ezt hogy kéne elképzelni?

A syslogd írná alá soronként a log bejegyzéseket, amikor kiírja őket egy fájlba?
Vagy időnként egy ember kézzel elindít valamit, hogy egy logfájlt aláírjon?

Mi a célja egy ilyen aláírásnak?
Nem lehet új sorokat beletenni, vagy meglevő sorokat átírni, ez tiszta. De mi miatt kell ezt védeni? Hátha bíróság kéri? Hátha valamelyik rendszergazda a saját hibáját másra kenné? Kreálna logbejegyzéseket egy sosem volt incidensről?

De ha soronként logolok, akkor mi van, ha az aláírt sort egyszerűen kitörli az ember?
Vagy átírja a syslogd konfigját, és az adott súlyosságnak megfelelő sorokat nem logolja sehová?

Vagy akkor kell valami sorszám is, hogy látszódjék, ha valami log sor hiányzik? De akkor mindent, még a debug üzeneteket is fájlba kell logolni, mert egyébként lukak lesznek?

És ugyanez, ha a fájl nincs rögtön aláírva, hanem valaki az egészet aláírja valamikor majd, akkor honnan tudom, hogy aláírás előtt senki nem változtatott benne, vagy törölt belőle?

Lehet, hogy csak azért, mert nem látom pontosan a célját, de elég nehéznek tűnik ezt robosztusra megcsinálni.

Hogy valami értékelhetőt is írjak a témához:
Dolgoztam (régen) egy budapesti kisvállalatnál. Órabérben fizettek minket, és a központi szerverre kellett bejelentkezni, kijelentkezni a munka elején, végén (vagy ha szünetet tartottunk).
Pont azért, hogy a logokat ne lehessen módosítani, és így mondjuk felpumpálni az embernek a saját fizetését, a syslogd ezeket a bejegyzéseket nem csak logfájlba, de rögtön leporellós mátrixnyomtatóra is írta.

Digitális aláírás mondjuk nem volt.

szavazás gondolom azért van mert a saxus által felügyelt/fejlesztett cms-eket állandóan borogat(hat)ják, utána a támadó takarítaná a nyomait a logokból

> man journalctl
...
--setup-keys
Instead of showing journal contents, generate a new key pair for Forward Secure Sealing (FSS). This will generate a
sealing key and a verification key. The sealing key is stored in the journal data directory and shall remain on the
host. The verification key should be stored externally. Refer to the Seal= option in journald.conf(5) for
information on Forward Secure Sealing and for a link to a refereed scholarly paper detailing the cryptographic
theory it is based on.
...
--verify
Check the journal file for internal consistency. If the file has been generated with FSS enabled and the FSS
verification key has been specified with --verify-key=, authenticity of the journal file is verified.

--verify-key=
Specifies the FSS verification key to use for the --verify operation.

"but also consider remote logging", https://encrypted.google.com/#q=OpenBSD+as+a+remote+logserver

Igazából a szavazás azért van, mert egy beszélgetés során arra jutottunk, hogy a logolás önmagában aláírás nélkül nem túl sokat bizonyít. És érdekel, hogy hányan jutottak még hasonló megfontolásra.

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

Szerintem aláírással sem jó túl sok mindenre, időbélyeg nélkül.

Csak annyit mond, hogy az adott file, abban az állapotban XY kezében volt valaha és ő ismerte valaha a tartalmát.

Alkalmas arra, hogy pl az üzemeltetőn számon kérd, hogy miért nem hárította el időben a hibát, ha egyszer ott volt a logban.

Nyilván az a kérdés, hogy mi a probléma, amit meg akarunk oldani?
Ugyanis jelentős gond lehet, hogy nem zárt így a folyamat, tehát nem tudható, hogy hiteles-e az aláírt holmi.

Üdv,
Marci

Áh.. Igazából "logokat, logbejegyzéseket" akart az lenni, csak elég röptében írtam a szavazást, felénél átszerkesztettem egy picit, csak úgy néz ki nem az egészet.

Egyébként azt, hogy egyes bejegyzést (legyen az egy sor egy logfájlban, vagy valami komplexebb adatszerkezet valami másban) vagy kötegelve egy részét vagy egy adott időre szóló logfájlt.

Nem akartam túlspecifikálni, hogy mekkora részére kerül egyszerre aláírás és/vagy időbélyeg.

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

Implementáció itt most nem lényeg. És igen, nehéz robosztusra és/vagy elvárásoknak megfelelően megoldani, kompromisszumokat muszáj kötni.

Egyébként a digitális aláírás célja minden esetben az, hogy bizonyítani lehessen, hogy valóban az történt, ami a logokban van. Nem feltétlen csak üzemeltetési feladatokra gondolok.

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

Mi a stök az a KKV?
Komplett Kretének Vállalata? :D


     The directors of the firm hired to     
     continue the credits after the other   
     people had been sacked, wish it to     
     be known that they have just been      
     sacked.                                
                      
     The credits have been completed        
     in an entirely different style at great
     expense and at the last minute.    

                Directed By
                     
           40 SPECIALLY TRAINED
        ECUADORIAN MOUNTAIN LLAMAS
                     
          6 VENEZUELAN RED LLAMAS
                     
        142 MEXICAN WHOOPING LLAMAS
                     
         14 NORTH CHILEAN GUANACOS
      (CLOSELY RELATED TO THE LLAMA)
                     
           REG LLAMA OF BRIXTON
                     
           76000 BATTERY LLAMAS
FROM "LLAMA-FRESH" FARMS LTD. NEAR PARAGUAY
                     
                    and
                     
        TERRY GILLIAM & TERRY JONES

Üdv,
Marci

Hehe, én vagyok az egyik kilógós.

Aláírunk és időbélyegzünk bizonyos logfájlokat. Ennek az a haszna, hogy tudod bizonyítani, hogy a log létezett és pontosan azzal a tartalommal létezett abban a pillanatban, amikor az időbélyeg készült. Ezzel sikerült már bíróságon perdöntő bizonyítékot szolgáltatni. Részleteket nem mondhatok, titkosak, de nem teljesen lényegtelen és jelentéktelen ügyről van szó.

Szóval szép és jó dolog az aláírás és időbélyegzés.

Mivel van rajta időbelyeg amit egy 3. fél szolgáltat, ezért tulajdonképpen két aláírás van rajta :D

Ebből kifolyólag ha a nálad lévő kulcs kompromittálódik akkor sem lehet a logot utólag meghamisítani.

Azt meg elég durva feltételezni, hogy a te kulcsod és a 3. fél által üzemeltetett szervert is egyszerre / egymás után kompromittálják.

+1

Én nem tudok elképzelni olyan megoldást ami egy zárt szervezeten belül hiteles lehetne. Szerintem mindenképp kell hozzá egy független külső szereplő. Ha pl időnként feltolod a fájlokat egy felhőbe, ahol az API nem ad lehetőséget arra, hogy a fájlok módosítását visszadátumozd, az simán lehet bizonyító erejű. Más kérdés, hogy a log tartalma valós időben ettől még simán manipulálható.

Semmi extra nincs benne. Naponta egyszer lefut egy script cronból, ami a logfájlokról csinál hasheket, majd a hasheket elküldi egy timestamp szolgáltatónak, a visszajött timestampet meg eltárolja. Valójában egy csomó lyuk van a rendszerben (kezdve azzal, hogy napközben még átírhatnám a logfájlokat...), de azt bizonyíthatod, hogy a nap végén már megvolt a fájlod, az adott tartalommal.

Egyébként még technikaibban így néz ki a dolog (copypaste, kicsit nyers):

Itt van egy fájl:

# ls -l audit.log
-rw-------. 1 root root 151330886 Mar 12 23:59 audit.log

Csinálok belőle egy hash-t:

# openssl ts -query -data audit.log -cert -sha256 -no_nonce -out audit.log.tsq

A hashfájl tartalma:

# openssl ts -query -in audit.log.tsq -text
Version: 1
Hash Algorithm: sha256
Message data:
    0000 - 35 f1 d8 63 78 a0 86 27-ff c9 f7 88 83 5c 3f d7   5..cx..'.....\?.
    0010 - ce 4b c0 9f f3 7e 49 33-fa d9 60 5f ec 79 de 32   .K...~I3..`_.y.2
Policy OID: unspecified
Nonce: unspecified
Certificate required: yes
Extensions:

Elküldöm a hasfájlt az időbélyeg szolgáltatónak, a kapott választ pedig elrakom:

# cat audit.log.tsq |curl --proxy proxy.ceg.hu:3128 --proxy-user user:pass -s -S -H 'Content-Type: application/timestamp-query' --data-binary @- https://www.timestampszolgaltato.hu/ts.cgi?auth=blehdebenak -o audit.log.tsr

A válaszként kapott fájl tartalma:

# openssl ts -reply -in audit.log.tsr -text
Status info:
Status: Granted.
Status description: unspecified
Failure info: unspecified

TST info:
Version: 1
Policy OID: 1.3.6.1.4.1.3555.1.15.20080206.23
Hash Algorithm: sha256
Message data:
    0000 - 35 f1 d8 63 78 a0 86 27-ff c9 f7 88 83 5c 3f d7   5..cx..'.....\?.
    0010 - ce 4b c0 9f f3 7e 49 33-fa d9 60 5f ec 79 de 32   .K...~I3..`_.y.2
Serial number: 0xB30193
Time stamp: Mar 13 16:00:27 2013 GMT
Accuracy: unspecified
Ordering: no
Nonce: unspecified
TSA: unspecified
Extensions:

A válaszként kapott fájl segítségével ellenőrzöm, hogy az eredeti fájlhoz tartalma az-e, amiről a hash készült, és megállapítom, hogy igen (a ca.pem-ben a timestamp szolgáltató CA és intermediate certificate-jei vannak benne PEM formátumban egymás után):

# openssl ts -verify -in audit.log.tsr -data audit.log -CAfile ca.pem
Verification: OK

Aztán módosítom a fájlt, a végére írok egy szóközt:

# echo " " >> audit.log

És az ellenőrzés azt mondja, hogy módosítva van a fájl:

# openssl ts -verify -in audit.log.tsr -data audit.log -CAfile ca.pem
Verification: FAILED
140254632286024:error:2F064067:time stamp routines:TS_CHECK_IMPRINTS:message imprint mismatch:ts_rsp_verify.c:659:

Ez az egész arra jó, hogy (akár bíróság előtt is) tudjuk bizonyítani, hogy "Time stamp: Mar 13 16:00:27 2013 GMT" óta az audit.log fájl tartalma nem változott és akkor már létezett a fájl, ezzel a tartalommal.

Olyat is lehetett csinálni egy ideig a syslog-ng-vel:

https://www.balabit.com/documents/syslog-ng-pe-6.0-guides/en/syslog-ng-… (itt a timestamp-*() dolgokat nézd meg)

De ez mintha elmúlt volna a 7-es verzióban. Nem követtem, hogy mi történt, de hátha valaki megírja ide válaszként...

A 7-es PE már az OSE-vel közös kódbázison fut, illetve rolling-release-re váltottak. A közös kódbázis miatt van egy kis feature loss a 6-os PE-hez képest, de folyamatosan csorgatják bele vissza. Jelenleg még csak 6PE-vel tudod használni, arra is van még kb. 3 év support.

Disclaimer: Balabit fejlesztő vagyok, de Blindspotter, nem syslog-ng, így az információim tévesek lehetnek :)