Archive for the 'sieci' Category

11%

Saturday, October 27th, 2007

Cytat z wyników sondażu przeprowadzonego w USA:

Only 11% of respondents said they be willing to safely implant a device that enabled them to use their mind to access the Internet.

Hihi, tylko.

remote integrity checker

Monday, September 18th, 2006

Problem:
Chcemy monitorować zdalnego hosta, tak aby uniknąć nieautoryzowanych zmian w filesystemie.

Rozwiązaniem jest oprogramowanie typu “system integrity checker”. najbardziej znany był chyba Tripwire, w tej chwili jest tego mnóstwo ale ja wybrałem AIDE.

Aby uniknąć dodatkowego ryzyka oraz umozliwić centralizację, program skanujący oraz jego bazy sygnatur przechowujemy na dedykowanym, bezpiecznym serwerze. Na skanowane hosty kopiujemy tylko na czas skanowania plik wykonywalny (zlinkowany statycznie aby uniknąć zatrutych bibliotek).

Oczywiście takie skanowanie nie jest doskonałe. Włamywacz mógł zatruć samo jądro nadpisując funkcje stat, fopen itd tak ze ukrywają wprowadzone przez niego zmiany.

Najlepiej utworzyć wzorcową bazę w momencie instalacji monitorowanego hosta, a potem cyklicznie ją porównywać z bieżącą. Zautoryzowane zmiany można potwierdzać poprzez commit (patrz skrypt aide.sh )

Instalacja krok po kroku

  1. Pobieramy AIDE i instalujemy lokalnie, np.

    ./configure --prefix=/usr && make
    su
    checkinstall || make install
  2. Na każdym monitorowanym (zdalnym) hoście musi być zainstalowane ssh oraz sudo.
  3. Ustawiamy sobie bezhasłowy dostęp do zdalnego hosta za pomocą ssh (autoryzacja za pomocą kluczy)
  4. Poprzez visudo dodajemy następującą linię:
    filip ALL = NOPASSWD: /var/tmp/aide

    Uwaga: mozna zmienić ścieżkę /var/tmp/ na inną, ale ze względu na ograniczenia sudo musi być ona bezwzględna, więc niestety ./ odpada.
  5. zakładamy lokalnie katalog aide, w którym będziemy trzymać wszystkie dane dotyczące hostów zdalnych
  6. umieszczamy w nim dla każdego monitorowanego hosta plik konfiguracyjny o nazwie aide_HOST.conf.
    # man aide.conf(5)
    database=stdin
    database_out=stdout
    report_url=stderr
    #
    /bin R
    /boot R
    /dev L
    /etc R
    /lib R
    /root R
    /sbin R
    /usr R
  7. umieszczamy w nim skrypt aide.sh
  8. chmod +x aide.sh
  9. Inicjalizujemy bazę sygnatur: ./aide.sh HOST init
  10. dopisujemy do swojego crontaba:
    0 6 * * * ( cd $HOME/aide && ./aide.sh HOST scan )
  11. należy upewnić się że odbieramy maile które wysyła do nas cron.