1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
|
<?xml version="1.0" encoding="iso-8859-2"?>
<!--
The FreeBSD Documentation Project
$FreeBSD$
-->
<!-- The FreeBSD Hungarian Documentation Project
Translated by: PALI, Gabor <pgj@FreeBSD.org>
%SOURCE% en_US.ISO8859-1/books/handbook/audit/chapter.xml
%SRCID% 1.34
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="audit" xml:lang="hu">
<info><title>Biztonsági események vizsgálata</title>
<authorgroup>
<author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Írta: </contrib></author>
<author><personname><firstname>Robert</firstname><surname>Watson</surname></personname></author>
</authorgroup>
</info>
<sect1 xml:id="audit-synopsis">
<title>Áttekintés</title>
<indexterm><primary>AUDIT</primary></indexterm>
<indexterm>
<primary>Biztonsági események
vizsgálata</primary>
<see>MAC</see>
</indexterm>
<para>A &os; támogatja a biztonsági események
aprólékos vizsgálatát. Ezzel egy
megbízható, részletes és jól
konfigurálható naplózási rendszert
nyújtanak a rendszerben található
biztonságot igénylõ események
széles köréhez, beleértve a
bejelentkezéseket, a konfigurációs
állományokban bekövetkezõ
változásokat, állomány- és
hálózati hozzáféréseket. Az
így létrehozott naplóbejegyzések
felbecsülhetetlen értékûnek bizonyulhatnak
egy élõ rendszer felügyelete során, vagy
egy hálózati támadás
észleléséhez, esetleg egy
összeomlás okainak kielemezéséhez. A
&os; ehhez a &sun; által kifejlesztett
<acronym>BSM</acronym> technológia API-ját és
állományformátumát
valósítja meg, és így képes
együttmûködni a &sun; &solaris; valamint az &apple;
&macos; X bizonsági rendszereivel
egyaránt.</para>
<para>Ebben a fejezetben a biztonsági események
vizsgálatának telepítéséhez
és beállításához
szükséges ismeretek tekintjük át. Ennek
keretében szó esik a vizsgálati
házirendekrõl, valamint mutatunk egy
példát a vizsgálatok
beállítására.</para>
<para>A fejezet elolvasása során
megismerjük:</para>
<itemizedlist>
<listitem>
<para>mit jelent az események vizsgálata és
hogyan mûködik;</para>
</listitem>
<listitem>
<para>hogyan kell beállítani az események
vizsgálatát &os;-n a
különbözõ felhasználók
és programok esetén;</para>
</listitem>
<listitem>
<para>hogyan értelmezzük a vizsgálati
nyomokat a vizsgálatot szûkítõ
és -elemzõ segédprogramok
segítségével.</para>
</listitem>
</itemizedlist>
<para>A fejezet elolvasásához ajánlott:</para>
<itemizedlist>
<listitem>
<para>alapvetõ &unix;-os és &os;-s ismeretek (<xref linkend="basics"/>);</para>
</listitem>
<listitem>
<para>a rendszermag konfigurálásával
és fordításával kapcsolatos
tudnivalók alapszintû ismerete (<xref linkend="kernelconfig"/>);</para>
</listitem>
<listitem>
<para>az informatikai biztonság alapfogalmainak és
annak a &os;-re vonatkozó részleteinek
minimális ismerete (<xref linkend="security"/>).</para>
</listitem>
</itemizedlist>
<warning>
<para>Az események vizsgálatával kapcsolatos
ismert korlátozások: nem mindegyik
biztonságot érintõ esemény
vizsgálható, mint például az egyes
bejelentkezési típusok, mivel azok nem
megfelelõen hitelesítik a belépõ
felhasználókat. Ilyenek például az
X11-alapú felületek és az egyéb, erre
a célra alkalmas, más által fejlesztett
démonok.</para>
<para>A biztonsági események vizsgálata
során a rendszer képes nagyon részletes
naplókat készíteni az érintett
tevékenységekrõl. Így egy
kellõen forgalmas rendszeren az
állománymozgások alapos
nyomonkövetése bizonyos
konfigurációkon akár gigabyte-okat is
kitehet hetente. A rendszergazdáknak ezért mindig
javasolt számolniuk a nagy forgalmú
események biztonsági vizsgálatának
tárigényével. Például,
emiatt érdemes lehet egy egész
állományrendszert szánni erre a feladatra a
<filename>/var/audit</filename> könyvtárban,
és így a többi állományrendszer
nem látja kárát, ha véletlenül
betelne ez a terület.</para>
</warning>
</sect1>
<sect1 xml:id="audit-inline-glossary">
<title>A fejezet fontosabb fogalmai</title>
<para>A fejezet elolvasása elõtt meg kell ismernünk
néhány fontos alapfogalmat:</para>
<itemizedlist>
<listitem>
<para><emphasis>esemény:</emphasis>
Vizsgálható eseménynek azt az
eseményt nevezzük, amely egy vizsgálati
alrendszerben naplózható. Biztonsági
események lehetnek például: egy
állomány létrehozása, egy
hálózati kapcsolat
felépítése, vagy egy
felhasználó bejelentkezése. Egy
esemény <quote>jellegzetes</quote>, ha
visszakövethetõ valamelyik hitelesített
felhasználóhoz, vagy <quote>nem
jellegzetes</quote>, ha ez nem lehetséges. Nem
jellegzetes esemény lehet minden olyan esemény,
amely egy bejelentkezési folyamat
hitelesítési lépése elõtt
történik, például egy
belépési kísérlet hibás
jelszóval.</para>
</listitem>
<listitem>
<para><emphasis>osztály:</emphasis>
Eseményosztálynak az összefüggõ
események névvel ellátott halmazát
tekintjük, és szûrési
feltételekben használjuk ezeket.
Általában alkalmazott osztályok:
<quote>file creation</quote> (fc,
állománylétrehozás),
<quote>exec</quote> (ex, programindítás),
és <quote>login_logout</quote> (lo, ki- és
bejelentkezés).</para>
</listitem>
<listitem>
<para><emphasis>rekord:</emphasis> Rekordnak nevezzük a
biztonsági eseményeket leíró
biztonsági naplóbejegyzéseket. A
rekordok tartalmazhatják a feljegyzett esemény
típusát, az eseményt
kiváltó tevékenységet
(felhasználót), a dátumot és az
idõt, tetszõleges objektum vagy paraméter
értékét, feltételek
teljesülését vagy
meghiúsulását.</para>
</listitem>
<listitem>
<para><emphasis>nyom:</emphasis> Vizsgálati nyomnak vagy
naplóállománynak nevezzük a
különféle biztonsági
eseményeket leíró vizsgálati
rekordok sorozatát. A nyomok többnyire
nagyjából az események
bekövetkezése szerinti idõrendben
következnek. Csak és kizárólag az
erre felhatalmazott programok hozhatnak létre
rekordokat a vizsgálati nyomban.</para>
</listitem>
<listitem>
<para><emphasis>szûrési feltétel:</emphasis>
Szûrési feltételnek nevezünk egy olyan
karakterláncot, amelyet események
szûrésére használunk, és
módosítókat valamint
eseményosztályok neveit tartalmazza.</para>
</listitem>
<listitem>
<para><emphasis>elõválogatás:</emphasis>
Elõválogatásnak nevezzük a folyamatot,
amelynek során a rendszer beazonosítja azokat az
eseményeket, amelyek a rendszergazda
számára fontosak. Ezáltal
elkerülhetjük olyan vizsgálati rekordok
generálását, amelyek számunkra
érdektelen eseményekrõl számolnak
be. Az elõválogatás szûrési
feltételek sorát használja az adott
felhasználókhoz tartozó adott
biztonsági események vizsgálatának
beállításához, akárcsak a
hitelesített és a nem hitelesített
programokat értintõ globális
beállítások
meghatározásához.</para>
</listitem>
<listitem>
<para><emphasis>leszûkítés:</emphasis>
Leszûkítésnek nevezzük a folyamatot,
amelynek során a már meglevõ
biztonsági rekordokból válogatunk le
tárolásra, nyomtatásra vagy
elemzésre. Hasonlóan ez a folyamat, ahol a
szükségtelen rekordokat eltávolítjuk
a vizsgálatai nyomból. A
leszûkítés
segítségével a rendszergazdák a
vizsgálati adatok eltárolására
alakíthatnak ki házirendet.
Például a részletesebb vizsgálati
nyomokat érdemes egy hónapig megtartani, ennek
lejártával viszont már inkább
ajánlott leszûkíteni ezeket és
archiválásra csak a bejelentkezési
információkat megtartani.</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="audit-install">
<title>A vizsgálat támogatásának
telepítése</title>
<para>A eseményvizsgálathoz szükséges
felhasználói programok a &os; alaprendszer
részét képezik. Az
eseményvizsgálat támogatása
alapértelmezés szerint megtalálható a
rendszermagban, azonban egy saját rendszermag esetén
már külön be kell kapcsolnunk a megfelelõ
támogatást, mégpedig a rendszermag
konfigurációs állományában az
alábbi sor hozzáadásával:</para>
<programlisting>options AUDIT</programlisting>
<para>Fordítsuk és telepítsük újra
a rendszermagot az <xref linkend="kernelconfig"/>ben ismertetett
folyamat szerint.</para>
<para>Ahogy a rendszermagot a bekapcsolt
eseményvizsgálati támogatással
sikerült lefordítanunk és
telepítenünk, valamint a rendszerünk is
újraindult, indítsuk el a vizsgáló
démont a következõ sor
hozzáadásával az &man.rc.conf.5;
állományban:</para>
<programlisting>auditd_enable="YES"</programlisting>
<para>A vizsgálatot innentõl ténylegesen egy
ismételt újraindítással vagy pedig az
elõbb említett démon manuális
elindításával aktiválhatjuk:</para>
<programlisting>/etc/rc.d/auditd start</programlisting>
</sect1>
<sect1 xml:id="audit-config">
<title>A vizsgálat beállítása</title>
<para>A vizsgálatok beállításához
szükséges összes konfigurációs
állomány a <filename>/etc/security</filename> könyvtárban
található. A következõ
állományok vannak itt a démon
indítása elõtt:</para>
<itemizedlist>
<listitem>
<para><filename>audit_class</filename> - a vizsgálati
osztályok definícióit tartalmazza.</para>
</listitem>
<listitem>
<para><filename>audit_control</filename> - a vizsgálati
alrendszer különbözõ területeit
vezérli, többek közt az
alapértelmezett vizsgálati osztályokat,
az vizsgálati adatok tárhelyén
fenntartandó minimális lemezterületet, a
vizsgálati nyom maximális méretét,
stb.</para>
</listitem>
<listitem>
<para><filename>audit_event</filename> - a rendszerben
jelenlevõ vizsgálati események
szöveges megnevezése és
leírása, valamint a lista, hogy melyikük
mely osztályban található.</para>
</listitem>
<listitem>
<para><filename>audit_user</filename> -
felhasználónként változó
vizsgálati elvárások, kombinálva a
bejelentkezéskor érvényes
globálisan alapértelmezett
beállításokkal.</para>
</listitem>
<listitem>
<para><filename>audit_warn</filename> - az
<application>auditd</application> által használt
testreszabható shell szkript, aminek
segítségével a
szélsõséges helyzetekben figyelmeztetõ
üzeneteket tudunk generálni, mint
például amikor a rekordok számára
fenntartott hely hamarosan elfogy, vagy amikor a nyomokat
tartalmazó állományt
archiváltuk.</para>
</listitem>
</itemizedlist>
<warning>
<para>Az eseményvizsgálat
konfigurációs állományait alapos
körültekintés mellett szabad szerkeszteni
és karbantartani, mivel a bennük keletkezõ
hibák az események helytelen
naplózását eredményezhetik.</para>
</warning>
<sect2>
<title>Eseményszûrési feltételek</title>
<para>Az eseményvizsgálati
beállítások során számtalan
helyen felbukkanak a vizsgálni kívánt
eseményeket meghatározó szûrési
feltételek. Ezen feltételek
eseményosztályok felsorolását
tartalmazzák, mindegyiküket egy
módosító vezeti be, ezzel jelezve, hogy az
adott eseményosztályba tartozó rekordokat
tartsuk meg vagy vessük el. Esetleg utalhatnak arra is,
hogy vagy csak a sikerességet jelzõ rekordokat, vagy
csak a sikertelenséget jelzõ rekordokat
szûrjük ki. A szûrési feltételek
balról jobbra értékelõdnek ki,
és két kifejezés
összefûzéssel
kombinálható.</para>
<para>A most következõ lista tartalmazza a
<filename>audit_class</filename> állományban
található alapértelmezett
eseményvizsgálati osztályokat:</para>
<itemizedlist>
<listitem>
<para><literal>all</literal> - <emphasis>all (mind)</emphasis>
- Minden eseményosztályra vonatkozik.</para>
</listitem>
<listitem>
<para><literal>ad</literal> - <emphasis>administrive
(adminisztrációs)</emphasis> - olyan
adminisztrációs tevékenységek,
amelyek egyben az egész rendszeren
végrehajtódnak.</para>
</listitem>
<listitem>
<para><literal>ap</literal> - <emphasis>application
(alkalmazás)</emphasis> - az alkalmazások
által meghatározott
tevékenység.</para>
</listitem>
<listitem>
<para><literal>cl</literal> - <emphasis>file close
(állomány lezárása)</emphasis> -
a <function>close</function> rendszerhívás
meghívásának vizsgálata.</para>
</listitem>
<listitem>
<para><literal>ex</literal> - <emphasis>exec
(programindítás)</emphasis> - egy program
indításának vizsgálata. A
parancssorban átadott paraméterek és a
környezeti változók
vizsgálatát az &man.audit.control.5;
vezérli a <literal>policy</literal>
beállításhoz tartozó
<literal>argv</literal> és <literal>envv</literal>
paraméterek segítségével.</para>
</listitem>
<listitem>
<para><literal>fa</literal> - <emphasis>file attribute access
(állományjellemzõk
hozzáférése)</emphasis> - a
rendszerbeli objektumok jellemzõinek
hozzáférésnek vizsgálata, mint
például a &man.stat.1;, &man.pathconf.2;
és ehhez hasonló események.</para>
</listitem>
<listitem>
<para><literal>fc</literal> - <emphasis>file create
(állomány
létrehozása)</emphasis> -
állományt eredményezõ
események vizsgálata.</para>
</listitem>
<listitem>
<para><literal>fd</literal> - <emphasis>file delete
(állomány törlése)</emphasis> -
állományt törlõ események
vizsgálata.</para>
</listitem>
<listitem>
<para><literal>fm</literal> - <emphasis>file attribute modify
(állományjellemzõk
módosítása)</emphasis> -
állományok jellemzõit
megváltoztató események
vizsgálata, mint például a
&man.chown.8;, &man.chflags.1;, &man.flock.2;, stb.</para>
</listitem>
<listitem>
<para><literal>fr</literal> - <emphasis>file read
(állományolvasás)</emphasis> -
állományok megnyitásával
olvasásra, olvasásával, stb.
kapcsolatos események vizsgálata.</para>
</listitem>
<listitem>
<para><literal>fw</literal> - <emphasis>file write
(állományírás)</emphasis> -
állományok megnyitásával
írásra, írásával,
módosításával, stb. kapcsolatos
események vizsgálata.</para>
</listitem>
<listitem>
<para><literal>io</literal> - <emphasis>ioctl</emphasis> - az
&man.ioctl.2; rendszerhívást
használó események
vizsgálata.</para>
</listitem>
<listitem>
<para><literal>ip</literal> - <emphasis>ipc</emphasis> - a
folyamatok közti kommunikáció
különféle formáinak,
beleértve a POSIX csövek és System V
<acronym>IPC</acronym> mûveleteinek
vizsgálata.</para>
</listitem>
<listitem>
<para><literal>lo</literal> - <emphasis>login_logout (ki-
és bejelentkezés)</emphasis> - a rendszerben
megjelenõ &man.login.1; és &man.logout.1;
események vizsgálata.</para>
</listitem>
<listitem>
<para><literal>na</literal> - <emphasis>non attributable (nem
jellegzetes)</emphasis> - a nem jellegzetes események
vizsgálata.</para>
</listitem>
<listitem>
<para><literal>no</literal> - <emphasis>invalid class
(érvénytelen osztály)</emphasis> -
egyetlen biztonsági eseményt sem
tartalmaz.</para>
</listitem>
<listitem>
<para><literal>nt</literal> - <emphasis>network
(hálózat)</emphasis> - a
hálózathoz tartozó események
vizsgálata, mint például a
&man.connect.2; és az &man.accept.2;.</para>
</listitem>
<listitem>
<para><literal>ot</literal> - <emphasis>other
(egyéb)</emphasis> - más egyéb
események vizsgálata.</para>
</listitem>
<listitem>
<para><literal>pc</literal> - <emphasis>process
(folyamat)</emphasis> - a folyamatokkal kapcsolatos
mûveletek, mint például az &man.exec.3;
és az &man.exit.3; vizsgálata.</para>
</listitem>
</itemizedlist>
<para>Az imént felsorolt eseményosztályok az
<filename>audit_class</filename> és az
<filename>audit_event</filename> állományok
módosításával igény szerint
testreszabhatóak.</para>
<para>A listában szereplõ minden egyes
eseményosztályhoz tartozik még egy
módosító is, amely jelzi, hogy a sikeres
vagy a sikertelen mûveleteket kell-e szûrnünk,
valamint hogy a bejegyzés az adott típust vagy
osztályt hozzáadja vagy elveszi az adott
szûrésbõl.</para>
<itemizedlist>
<listitem>
<para>(üres) az adott típusból mind a
sikereseket és mind a sikerteleneket
feljegyzi.</para>
</listitem>
<listitem>
<para><literal>+</literal> az eseményosztályba
tartozó sikeres eseményeket vizsgálja
csak.</para>
</listitem>
<listitem>
<para><literal>-</literal> az eseményosztályba
tartozó sikertelen eseményeket
vizsgálja csak.</para>
</listitem>
<listitem>
<para><literal>^</literal> az
eseményosztályból sem a sikereseket,
sem pedig a sikerteleneket nem vizsgálja.</para>
</listitem>
<listitem>
<para><literal>^+</literal> az
eseményosztályból nem vizsgálja
a sikeres eseményeket.</para>
</listitem>
<listitem>
<para><literal>^-</literal> az
eseményosztályból nem vizsgálja
a sikertelen eseményeket.</para>
</listitem>
</itemizedlist>
<para>Az alábbi példa egy olyan szûrési
feltételt mutat be, amely a ki- és
bejelentkezések közül megadja a sikereset
és a sikerteleneket, viszont a
programindítások közül csak a
sikereseket:</para>
<programlisting>lo,+ex</programlisting>
</sect2>
<sect2>
<title>A konfigurációs
állományok</title>
<para>A vizsgálati rendszer
beállításához az esetek
túlnyomó részében a
rendszergazdáknak csupán két
állományt kell módosítaniuk: ezek az
<filename>audit_control</filename> és az
<filename>audit_user</filename>. Az elõbbi felelõs a
rendszerszintû vizsgálati jellemzõkért
és házirendekért, míg az
utóbbi az igények
felhasználókénti
finomhangolásához
használható.</para>
<sect3 xml:id="audit-auditcontrol">
<title>Az <filename>audit_control</filename>
állomány</title>
<para>Az <filename>audit_control</filename>
állomány határozza meg a
vizsgálati alrendszer alapértelmezéseit.
Ezt az állományt megnyitva a
következõket láthatjuk:</para>
<programlisting>dir:/var/audit
flags:lo
minfree:20
naflags:lo
policy:cnt
filesz:0</programlisting>
<para>A <option>dir</option> opciót használjuk a
vizsgálati naplók
tárolására szolgáló egy
vagy több könyvtár megadására.
Ha egynél több könyvtárra
vonatkozó bejegyzés található az
állományban, akkor azok a megadás
sorrendjében kerülnek feltöltésre.
Nagyon gyakori az a beállítás, ahol a
vizsgálati naplókat egy erre a célra
külön kialakított
állományrendszeren tárolják,
megelõzve ezzel az állományrendszer
betelésekor keletkezõ problémákat a
többi alrendszerben.</para>
<para>A <option>flags</option> mezõ egy rendszerszintû
alapértelmezett elõválogatási
maszkot határoz meg a jellegzetes események
számára. A fenti példában a
sikeres és sikertelen ki- és
bejelentkezéseket mindegyik felhasználó
esetén vizsgáljuk.</para>
<para>A <option>minfree</option> opció megszabja a
vizsgálati nyom tárolására
szánt állományrendszeren a
minimális szabad helyet, a teljes kapacitás
százalékában. Amint ezt a
küszöböt túllépjük, egy
figyelmeztetés fog generálódni. A fenti
példa a minimálisan szükséges
rendelkezésre álló helyet húsz
százalékra állítja.</para>
<para>A <option>naflags</option> opció megadja azokat az
eseményosztályokat, amelyeket vizsgálni
kell a nem jellegzetes események, mind
például a bejelentkezési folyamatok vagy
rendszerdémonok esetén.</para>
<para>A <option>policy</option> opció a vizsgálat
különbözõ szempontjait
irányító házirendbeli
beállítások vesszõvel
elválasztott listáját tartalmazza. Az
alapértelmezett <literal>cnt</literal>
beállítás azt adja meg, hogy a rendszer a
felmerülõ vizsgálati hibák
ellenére is folytassa tovább a
mûködését (erõsen javasolt a
használata). A másik gyakorta alkalmazott
beállítás az <literal>argv</literal>,
amellyel a rendszer a parancsvégrehajtás
részeként az &man.execve.2;
rendszerhívás parancssori paramétereit is
megvizsgálja.</para>
<para>A <option>filesz</option> opció határozza
meg a vizsgálati nyom automatikus
szétvágása és
archiválása elõtti maximális
méretét, byte-ban. Az alapértelmezett
értéke a 0, amely kikapcsolja ezt az
archiválást. Ha az itt megadott
állományméret nem nulla és a
minimálisan elvárt 512 KB alatt van, akkor
a rendszer figyelmen kívül hagyja és
errõl egy figyelmeztetést ad.</para>
</sect3>
<sect3 xml:id="audit-audituser">
<title>Az <filename>audit_user</filename>
állomány</title>
<para>Az <filename>audit_user</filename> állomány
lehetõvé teszi a rendszergazda
számára, hogy az egyes
felhasználók számára
további vizsgálati szigorításokat
határozzon meg. Minden sor egy-egy
felhasználó vizsgálatának
pontosítását adja meg két
mezõ segítségével: az elsõ
közülük az <literal>alwaysaudit</literal>
mezõ, mely felsorolja azokat az eseményeket,
amelyeket minden esetben vizsgáni kell az adott
felhasználó esetén, valamint a
második a <literal>neveraudit</literal> mezõ, mely
az adott felhasználó esetén a nem
vizsgálandó eseményeket adja meg.</para>
<para>A most következõ <filename>audit_user</filename>
példában vizsgáljuk a
<systemitem class="username">root</systemitem> felhasználó ki-
és bejelentkezéseit és sikeres
programindításait, valamint a
<systemitem class="username">www</systemitem> felhasználó
állománylétrehozásait és
sikeres programindításait. Ha a korábban
bemutatott <filename>audit_control</filename>
példával együtt használjuk, akkor
észrevehetjük, hogy a <literal>lo</literal>
bejegyzés a <systemitem class="username">root</systemitem>
felhasználó esetén redundáns,
illetve ilyenkor a ki/bejelentkezést a
<systemitem class="username">www</systemitem> felhasználó
esetén is vizsgáljuk.</para>
<programlisting>root:lo,+ex:no
www:fc,+ex:no</programlisting>
</sect3>
</sect2>
</sect1>
<sect1 xml:id="audit-administration">
<title>A vizsgálati alrendszer használata</title>
<sect2>
<title>A vizsgálati nyomok megtekintése</title>
<para>A vizsgálati nyomok a BSM bináris
formátumban tárolódnak, ezért a
tartalmának konvertálásához
és módosításához
külön segédprogramokra van szükség.
A &man.praudit.1; parancs a nyomállományokat
egyszerû szöveges formátumra alakítja,
az &man.auditreduce.1; parancs pedig a nyomok
elemzéséhez, archiválásához
vagy nyomtatásához szükséges
leszûkítéséket végzi el. Az
<command>auditreduce</command> a szûrési
feltételek paramétereinek széles
skáláját kezeli, beleértve az
eseménytípusokat, -osztályokat,
felhasználókat, események
dátumát vagy idõpontját,
állományok elérési
útvonalát vagy az általuk érintett
objektumokat.</para>
<para>Például a <command>praudit</command>
segédprogram képes kilistázni
szövegesen egy adott vizsgálati napló teljes
tartalmát:</para>
<screen>&prompt.root; <userinput>praudit /var/audit/AUDITFILE</userinput></screen>
<para>ahol az
<filename>AUDITFILE</filename> a
kiírandó vizsgálati napló.</para>
<para>A vizsgálati nyomok tokenekbõl
összeállított vizsgálati rekordok,
amelyeket a <command>praudit</command> egymás után
soronként megjelenít. Minden token adott
típusú, például a
<literal>header</literal> egy vizsgálati rekord
fejlécét tartalmazza, vagy a
<literal>path</literal>, amely a
névfeloldásból származó
elérési utat tartalmaz. A következõ
példa egy <literal>execve</literal> eseményt mutat
be:</para>
<programlisting>header,133,10,execve(2),0,Mon Sep 25 15:58:03 2006, + 384 msec
exec arg,finger,doug
path,/usr/bin/finger
attribute,555,root,wheel,90,24918,104944
subject,robert,root,wheel,root,wheel,38439,38032,42086,128.232.9.100
return,success,0
trailer,133</programlisting>
<para>Ez a vizsgálat egy sikeres <literal>execve</literal>
hívást rögzít, ahol a <literal>finger
doug</literal> parancs futott le. A paramétereket
tartalmazó token magában foglalja a shell
által a rendszermag felé jelzett parancsot
és annak paraméterét egyaránt. A
<literal>path</literal> token tárolja a
végrehajtott állomány rendszermag
által feloldott elérési
útját. A <literal>attribute</literal> token
errõl a binárisról ad további
információkat, különösen az
állomány módjáról, amely
segít megállapítani, hogy az adott
alkalmazásnál be volt-e állítva a
setuid bit. A <literal>subject</literal> token leírja az
érintett folyamatot és rendre megjegyzi a
vizsgált felhasználó
azonosítóját, az aktuálisan
érvényben levõ felhasználó
és csoport azonosítóját, a
valós felhasználói és csoport
azonosítót, a folyamat
azonosítóját, a munkamenet
azonosítóját, a port
azonosítóját és a
bejelentkezéshez használt hálózati
címet. Vegyük észre, hogy a vizsgált
felhasználó azonosítója és a
valódi azonosítója eltér
egymástól: a <systemitem class="username">robert</systemitem> nevû
felhasználó a <systemitem class="username">root</systemitem>
accountjára váltott a parancs futattása
elõtt, de az eredetileg hitelesített
felhasználójaként lett vizsgálva.
Végezetül a <literal>return</literal> token jelzi a
sikeres végrehajtást, és a
<literal>trailer</literal> pedig zárja a rekordot.</para>
</sect2>
<sect2>
<title>A vizsgálati nyomok
leszûkítése</title>
<para>Mivel a vizsgálatokhoz tartozó naplók
akár egészen nagyok is lehetnek, ezért a
rendszergazdának minden bizonnyal szüksége
lehet a számára fontos, például egy
adott felhasználóhoz tartozó rekordok
kiválogatására:</para>
<screen>&prompt.root; <userinput>auditreduce -u trhodes /var/audit/AUDITFILE | praudit</userinput></screen>
<para>Ezzel ki tudjuk szûrni a <systemitem class="username">trhodes</systemitem>
nevû felhasználóhoz tartozó
összes vizsgálati rekordot az
<filename>AUDITFILE</filename>
állományból.</para>
</sect2>
<sect2>
<title>A naplók megtekintéséhez
szükséges jogok továbbadása</title>
<para>Az <systemitem class="groupname">audit</systemitem> csoport tagjai
olvashatják a <filename>/var/audit</filename>
könyvtárban található
vizsgálati nyomokat. Alapértelmezés
szerint ez a csoport üres, ezért csak a
<systemitem class="username">root</systemitem> képes ekkor vizsgálni a
nyomokat. A többi felhasználó
számára úgy tudunk olvasási jogot
biztosítani, ha felvesszük õket az
<systemitem class="groupname">audit</systemitem> csoportba. Mivel a
vizsgálati naplók tartalmának
figyelése jelentõs rálátást
adhat a rendszerben jelenlevõ felhasználók
és folyamatok viselkedésére,
ajánlott körültekintõen kiosztani az
olvasási jogokat.</para>
</sect2>
<sect2>
<title>Élõ rendszerfelügyelet a vizsgálati
csövekkel</title>
<para>A vizsgálati csövek az eszközök
állományabsztrakcióit
klónozzák le, és ezzel teszik
lehetõvé az alkalmazások
számára, hogy menet közben
megcsapolhassák a megfigyelt eszközök adatait.
Ez az elsõdleges célja a
különbözõ betörésfigyelõ
és rendszerfelügyeleti eszközök
készítõinek. A rendszergazda
számára azonban a vizsgálati csövek
megkönnyítik az élõ megfigyelést,
mert itt nem merülnek fel a nyomok
jogosultságaiból vagy az archiválás
miatt megszakadó eseményfolyamokból
adódó problémák. Az élõ
eseményfolyamra az alábbi parancs
kiadásával lehet rácsatlakozni:</para>
<screen>&prompt.root; <userinput>praudit /dev/auditpipe</userinput></screen>
<para>Alapértelmezés szerint a vizsgálati
csõhöz tartozó csomópontok
kizárólag csak a <systemitem class="username">root</systemitem>
felhasználó részére
érhetõek el. Az <systemitem class="groupname">audit</systemitem>
csoport tagjai úgy tudnak majd hozzáférni,
ha felvesszük a következõ
<literal>devfs</literal> szabályt a
<filename>devfs.rules</filename>
állományba:</para>
<programlisting>add path 'auditpipe*' mode 0440 group audit</programlisting>
<para>A devfs állományrendszer
beállításárõl bõvebben
lásd a &man.devfs.rules.5; oldalt.</para>
<warning>
<para>Könnyen gerjedést lehet elõidézni
a vizsgált események
megfigyelésével, amikor is az egyes
események megtekintése újabb
vizsgálandó események sorozatát
indítják el. Például, ha az
összes hálózati forgalmat egyszerre
vizsgáljuk és a &man.praudit.1; egy
SSH-munkameneten keresztül fut, akkor a vizsgálati
események töméntelen áradata indul
meg, mivel minden kiírandó esemény egy
újabb eseményt indukál. Ennek
elkerülése érdekében ajánlott
a <command>praudit</command> parancsot részletes
forgalmat nem figyelõ vizsgálati csõvel
ellátott munkameneten keresztül
elindítani.</para>
</warning>
</sect2>
<sect2>
<title>A vizsgálati nyomok
archiválása</title>
<para>A vizsgálati nyomokat egyedül a rendszermag
képes írni, illetve csak a vizsgálati
démon, az <application>auditd</application> képes
felügyelni. A rendszergazdáknak ebben az esetben
tehát nem szabad használniuk a
&man.newsyslog.conf.5; vagy a hozzá hasonló
eszközök használatát a vizsgálati
naplók archiválásához.
Helyettük a <command>audit</command> segédprogramot
javasolt használni a vizsgálatok
leállítására, a vizsgálati
rendszer újrakonfigurálására vagy a
napló archiválásának
elvégzésére. Az alábbi parancs
utasítja a vizsgálati démont, hogy hozzon
létre egy új vizsgálati naplót
és jelzi a rendszermagnak, hogy váltson erre az
új naplóra. Az eddig használt
naplót lezárja és átnevezi, ami
ezután a rendszergazda által tetszõlegesen
feldolgozható.</para>
<screen>&prompt.root; <userinput>audit -n</userinput></screen>
<warning>
<para>Ha az <application>auditd</application> démon a
parancs kiadásánák pillanatában
nem futna, akkor hiba történik és
errõl hibaüzenetet kapunk.</para>
</warning>
<para>A &man.cron.8; segítségével
tizenként óránként
kikényszeríthetjük a naplók
váltását, ha felvesszük a
<filename>/etc/crontab</filename> állományba az
alábbi sort:</para>
<programlisting>0 */12 * * * root /usr/sbin/audit -n</programlisting>
<para>Ez a változtatás akkor fog
érvénybe lépni, ha elmentjük az
új <filename>/etc/crontab</filename>
állományt.</para>
<para>A vizsgálati nyomok mérete szerinti
automatikus váltás is
megvalósítható az &man.audit.control.5;
állományban szereplõ <option>filesz</option>
opció beállításával, amit meg
is találhatunk ebben a fejezetben, a
konfigurációs állományok
beállításánál.</para>
</sect2>
<sect2>
<title>A vizsgálati nyomok
tömörítése</title>
<para>Mivel a vizsgálati nyomok óriásira is
megnõhetnek, sokszor felmerül az igény, hogy
lehessen õket tömöríteni vagy más
egyéb módon archiválni a vizsgálati
démon által lezárt nyomokat. Az
<filename>audit_warn</filename> szkript
használható a különbözõ
vizsgálatokhoz kapcsolódó események
esetén elvégzendõ mûveletek
megadásához, beleértve ebbe a
vizsgálati nyomok váltásakor
elvégzett szabályos
lezárását. Például a
következõket kell beleírnunk az
<filename>audit_warn</filename> szkriptbe a nyomok
lezárását követõ
tömörítéséhez:</para>
<programlisting>#
# Lezáráskor tömöríti a vizsgálati nyomot.
#
if [ "$1" = closefile ]; then
gzip -9 $2
fi</programlisting>
<para>Egyéb archiválási
tevékenységek lehetnek még: a nyomok
felmásolása egy központi szerverre, a
régebbi nyomok törlése, vagy a meglevõ
nyomok leszûkítése csak a fontos
információkra. A szkript csak akkor fog lefutni,
ha a vizsgálati nyomot sikerült szabályosan
lezárni, így tehát a szabálytalan
leálláskor megmaradó nyomok esetén
nem.</para>
<para>A &os; 6.3 és késõbbi
verzióiban, a <command>praudit</command> XML kimeneti
formátumot is támogat, amely az
<option>-x</option> kapcsolóval érhetõ
el.</para>
</sect2>
</sect1>
</chapter>
|