CIS: FreeBSD hardening

Címkék

Na lássuk...

Az előző cikkben volt szó a Center for Internet Security FreeBSD audit eszközéről. Gondoltam kipróbálom. A teszthez egy alapértelmezetten* telepített FreeBSD 5.2.1-RELEASE-t használtam. Kíváncsi voltam, hogy a CIS szerint egy alapértelmezetten telepített FreeBSD 5.2.1 mennyire biztonságos, azon milyen változtatásokat kell elvégezni ahhoz, hogy szerintük az ilyen szempontból megfelelő legyen.

Letöltöttem a FreeBSD scoring tool-t és a hozzá való dokumentációt.

A dokumentációból kitűnik, hogy a teszt 8 fő részből áll össze:1.) Patchek és egyéb szoftver konfigurációk

2.) A futó inetd szolgáltatások minimalizálása

3.) A boot időben induló szolgáltatások minimalizálása

4.) Kernel tuning

5.) Logolás

6.) File/könyvtár hozzáférés/jogok

7.) Redszer hozzáférés/jogok/authentikáció

8.) Felhasználói fiókok és környezet

Maga a szoftver nem más, mint egy egy soros README file amely megmutatja, hogyan kell futtatni az audit eszközt, és maga a program, amely egy perl script.

A programot root-ként kell futtatni. Azt mindenkinek magának kell eldöntenie, hogy egy éles rendszeren lefuttat-e egy idegen programot root-ként, de mindenesetre megnyugtató, hogy a program egy olvasható perl script, és nem egy zárt bináris program. Én egy teszt rendszeren futtattam.

A program futása után egy összegzést ad a rendszerről, mellé pedig egy 10-es skálán minősíti a rendszer biztonságát.

Lássuk mennyi pontot kapott egy default install FreeBSD 5.2.1-RELEASE:

5.62 pont a maximális 10-ből. A program futtatása után kapunk egy logfile-t, amelyben fel vannak sorolva a rendszerünk pozitívumai és negatívumai. Ezekre egyszerűen rákereshetünk. Az én rendszerem pozitívumai:

su-2.05b# egrep "^Positive" ./cis-ruler-log.20040820-09:43:00.14363 | less

Positive: 1.2 TCP Wrappers still enabled, or inetd not running.

Positive: 1.3 sshd_config parameter PermitRootLogin has default negative value.

Positive: 2.1 inetd/xinetd is not listening on any of the miscellaneous ports checked in this item.

Positive: 2.2 telnet is deactivated.

Positive: 2.3 ftp is deactivated.

Positive: 2.4 rsh, rcp and rlogin are deactivated.

Positive: 2.5 tftp is deactivated.

Positive: 2.6 finger is deactivated.

Positive: 2.7 Kerberos v4 or v5 services are not enabled.

Positive: 3.1 All Serial login prompts are disabled.

Positive: 3.3 syslogd has the -s switch and is thus not listening to the network.

Positive: 3.5 DNS named daemon is not listening on port 53.

Positive: 3.8 No NFS client enabled.

Positive: 3.10 No non-privileged mount requests allowed.

Positive: 3.11 No NIS server enabled.

Positive: 3.12 No NIS client enabled.

Positive: 3.13 No Printer daemon is enabled.

Positive: 4.2 secure level > 0.

Positive: 5.1 syslog captures daemon.debug messages.

Positive: 6.1 password and group files have right permissions and owners.

Positive: 7.2 All .rhosts files are readable only by their owner.

Positive: 7.6 X Wrapper package is NOT installed.

Positive: 7.6 X11 Server is not running or is not listening on TCP port 6000.

Positive: 8.1 All system accounts are locked/deleted

Positive: 8.2 All users have passwords

Positive: 8.7 No group or world-writable dotfiles in user home directories!


A rendszer negatívumai:

su-2.05b# egrep "^Negative" ./cis-ruler-log.20040820-09:43:00.14363

Negative: 1.1 System appears not to have been patched within the last month.

Negative: 1.3 sshd_config parameter Protocol is not set.

Negative: 1.3 sshd_config parameter Banner is not set.

Negative: 1.3 ssh_config must have 'Protocol 2' underneath Host *.

Negative: 3.4 Mail daemon is still listening on TCP 25.

Negative: 3.6 RPC services enabled (rc.conf portmap_enable="")

Negative: 3.7 NFS servers enabled (rc.conf single_mountd_enable="")

Negative: 3.9 non-privileged NFS ports allowed (rc.conf nfs_reserved_port_only="NO")

Negative: 4.1 Core dumps enabled (sysctl.conf kern.coredump="1")

Negative: 5.2 No System Accounting enabled (rc.conf accounting_enable="NO")

Negative: 5.3 No Logging of packets received on closed ports (sysctl.conf net.inet.tcp.log_in_vain="0")

Negative: 5.3 No Logging of packets received on closed ports (sysctl.conf net.inet.udp.log_in_vain="0")

Negative: 5.4 /var/log/lpd-errs should not be world readable.

Negative: 5.4 /var/log/messages should not be world readable.

Negative: 5.4 /var/log/wtmp.0 should not be world readable.

Negative: 5.4 /var/log/wtmp.1 should not be world readable.

Negative: 5.4 /var/log/wtmp.2 should not be world readable.

Negative: 5.5 /etc/newsyslog.conf permissions (0644) for /var/log/amd.log are world readable.

Negative: 5.5 /etc/newsyslog.conf permissions (0644) for /var/log/lpd-errs are world readable.

Negative: 5.5 /etc/newsyslog.conf permissions (0644) for /var/log/messages are world readable.

Negative: 5.5 /etc/newsyslog.conf permissions (0644) for /var/log/wtmp are world readable.

Negative: 6.2 User test has a world-executable homedir!

Negative: 6.2 User test has a world-readable homedir!

Negative: 7.3 File /etc/hosts.equiv exists, is non-zero size, isn't linked to /dev/null, and doesn't contain only the - character.

Negative: 7.4 /var/cron/allow does not exist.

Negative: 7.4 /var/at/allow does not exist.

Negative: 7.4 file /etc/crontab has permissions (644).

Negative: 7.5 No 'Authorized use only' message in /etc/motd.

Negative: 8.3 User test does not have a maximum password life. (91 days or less recommended).

Negative: 8.4 User 'toor' has not been removed.

Negative: 8.5 A non-root UID 0 account (named toor) was found.

Negative: 8.6 Current umask setting in file /etc/login.conf is 022 -- it should be stronger to block world-read/write/execute.

Negative: 8.6 Current umask setting in file /etc/login.conf is 022 -- it should be stronger to block group-read/write/execute.

Negative: 8.8 /etc/profile should set mesg n to block talk/write commands and strengthen permissions on user tty.

Negative: 8.8 /etc/csh.login should set mesg n to block talk/write commands and strengthen permissions on user tty.


Értelemszerűen be lehet azonosítani a pozitívumok és negatívumok helyét a dokumentumban a mellettük levő számok alapján. A dokumentum leírja, hogy mit kell tennünk annak érdekében, hogy az audit eszköz által feltárt hiányosságokat elháríthassuk.

Azt mindenki döntse el maga, hogy mennyire hasznos az eszköz. Mindenesetre jó látni listaszerűen, hogy milyen főbb pontokon kell ellenőrizni egy frissen feltelepített rendszert ahhoz, hogy a minimális lépéseket megtegyük a biztonság érdekében még akkor is, ha nem teljesen ezeket a lépéseket végezzük el...

Hozzászólások

Már régen telepítettem éles szervert (bsd-t még soha), de amikor csináltam, akkor mindíg használtam valami Security Check List-et, amit könyvből, netről szereztem be. Én úgy érzem, hogy soha nem árthat egy ilyen automatikus (szoftver) vagy manuális (check list) típusú ellenőrzés. Profiknál meg aztán elengedhetetlen több szempontból is (megrendelői elvárás, garancia, tanusítás, metodika).

Negative: 7.5 No 'Authorized use only' message in /etc/motd.

LOL!


Negative: 8.5 A non-root UID 0 account (named toor) was found.


ilyen user miert van bsdben?

>Negative: 7.5 No 'Authorized use only' message in /etc/motd.

LOL!

Igen, ez mulatsagos. Bar en elkepzelhetonek tartom, hogy a tesztet mondjuk valami olyan dokumentum alapjan allitottak ossze, (mint mondjuk a Common Criteria) ahol esetleg nem csak a funkcionalis, hanem a formai kovetelmenyekre is vannak kitetelek.

En el tudom kepzelni, hogy ha valaki egy Trusted (Hardened vagy nevezzuk barminek) FreeBSD-t akarna letrehozni (mondjuk abbol a celbol, hogy azt kormanyzati korokben is hasznalhassak, es azt mondjuk egy EAL 7 szint szerint minosittetni is szeretne, akkor az ilyen mulatsagonsak tuno dolgoknak is meg kell felelnie. Ez mar tulmutat Jozsika warez szervere kategorian.

(Kb. van ralatasom, hogy nalunk mi kell ahhoz, hogy egy ceg NATO minositett beszallito legyen szamitastechnikai eszkozokben. Nem keves formai kovetelmenynek kell megfelelni.)

Miért baj az, hogy van egy ilyen scripted és gyorsan tudsz csekkolni valamit. Egy kezdő emberkének pl. nagyon hasznos, megtanulhatja mire és miért kell odafigyelni.

Ha a teszt egyes részeivel nem ért egyet az ember, akkor ne vegye figyelembe és kész.

Egyébként van az anyagban néhány hiba:

1. 5.X-en a pam check nem megy, meg kell hack-elni.

2. a doksi szerint "pw usermod -e +91d"-vel kell beállítani a jelszócsere kérését, itt természetesen a -p kapcsolót kell használni.

3. a /var/log alatti file-ok group jogosultságainak cseréje nem olyan egyszerű, mint ahogy a doc-ban írja, pl. az Xorg.*.log-ot hiába változtatod, ha újraindítod az X-et, megint a régi jogosultságok látszanak, ehhez máshová kell nyúlni. A gyengébbek magukhoz :-)

4. egyéb apróságok...

De azért jó kis móka ez a test.

Laci

Szerintem annyiban hulyeseg, hogy esetlegesen a script lefuttatasa es a fixalas utan tevesen azt hiszi, hogy namostaztan mar ultrasecure minden. Ez kb olyan, mint amikor valaki felrakja a Debiant (nem fikazas! mielott meg valaki belekot...) es azt hiszi, hogy innentol kezdve minden ok.