Bagaimana cara mengkonfigurasi agregator log untuk mengotentikasi data?


8

Latar Belakang : Agregasi log jarak jauh dianggap sebagai cara untuk meningkatkan keamanan. Secara umum, ini mengatasi risiko bahwa penyerang yang berkompromi dengan sistem dapat mengedit atau menghapus log untuk menggagalkan analisis forensik. Saya telah meneliti opsi keamanan di alat log umum.

Tapi ada yang terasa salah. Saya tidak bisa melihat cara mengkonfigurasi remote logger yang umum (mis. Rsyslog, syslog-ng, logstash) untuk mengautentikasi bahwa pesan yang masuk benar-benar berasal dari host yang diklaim. Tanpa semacam batasan kebijakan, satu pembuat log dapat memalsukan pesan atas nama pembuat log yang lain.

Penulis rsyslog tampaknya memperingatkan tentang otentikasi data log :

Satu kata peringatan terakhir: transport-tls melindungi koneksi antara pengirim dan penerima. Itu tidak selalu melindungi terhadap serangan yang hadir dalam pesan itu sendiri. Khususnya dalam lingkungan relai, pesan mungkin berasal dari sistem jahat, yang menempatkan nama host yang tidak valid dan / atau konten lainnya ke dalamnya. Jika tidak ada ketentuan terhadap hal-hal seperti itu, catatan ini dapat muncul di repositori penerima. -transport-tls tidak melindungi dari ini (tetapi mungkin membantu, digunakan dengan benar). Perlu diingat bahwa syslog-transport-tls menyediakan keamanan hop-by-hop. Itu tidak memberikan keamanan ujung ke ujung dan itu tidak mengotentikasi pesan itu sendiri (hanya pengirim terakhir).

Jadi pertanyaan lanjutannya adalah: apakah konfigurasi yang baik / praktis (dalam alat log umum pilihan Anda - rsyslog, syslog-ng, logstash, dll.) Yang menyediakan sejumlah keaslian?

Atau ... jika tidak ada yang mengotentikasi data log, lalu mengapa tidak ?

-

(Selain itu: Dalam membahas / membandingkan, mungkin membantu menggunakan beberapa diagram atau terminologi dari RFC 5424: Bagian 4.1: Contoh Skenario Penempatan - misalnya "originator" vs "relay" vs "collector")


Bagian mana yang Anda coba amankan? Log agregat menerima data dari host yang benar, atau data itu sendiri?
Shane Andrie

Menerima dari tuan rumah yang benar. Jika Alice dan Bob sama-sama pencipta log, dan Trent adalah pengumpul log, Alice harus dapat memberikan log Trent dengan "hostname = alice" tetapi bukan "hostname = bob". Tapi saya pikir pengaturan default dirancang untuk mengasumsikan bahwa Alice bisa menjadi log-relay, sehingga mereka akan mengizinkannya untuk mengirimkan apa pun.
Tim Otten

Jawaban:


1

Ini pertanyaan yang bagus.

Saya menggunakan logstash untuk mencapai sesuatu seperti apa yang Anda usulkan. Menggunakan logstash (atau logstash-forwarder) untuk mengirimkan log ke sistem pengumpulan pusat Anda, tambahkan konfigurasi logstash untuk menambahkan bidang kunci ke pesan, dengan nilainya menjadi string acak yang panjang dan unik untuk setiap server.

Kemudian di sisi penerima, Anda dapat menambahkan aturan terkait untuk membuang (atau mengingatkan) pesan apa pun di mana kunci host tertentu tidak cocok dengan apa yang Anda harapkan untuk nama hostnya.

Ini bukan anti-peluru, tapi ini adalah langkah solid ke arah yang benar.


3

Hal yang benar untuk digunakan adalah TLS dengan sertifikat klien mesin.

rsyslog melakukan ini sejak sekitar 2008, dan memiliki instruksi hebat: http://www.rsyslog.com/doc/v8-stable/tutorials/tls_cert_summary.html

Prosesnya sangat sederhana, begini:

  1. Siapkan CA
  2. Keluarkan sertifikat ke semua komputer tempat Anda ingin membuat log
  3. Konfigurasikan rsyslog untuk menggunakan otentikasi itu

Kemudian, komputer Anda tidak dapat saling meniru dan tidak ada yang bisa masuk ke server log Anda tanpa salah satu sertifikat Anda.

Saya melihat Anda sudah menemukan itu, tetapi Anda masih khawatir tentang peringatan mereka. Saya tidak akan terlalu khawatir tentang itu. Injeksi kayu memang suatu hal, tetapi banyak hal, termasuk injeksi melalui aplikasi dan injeksi ke dalam proses logging. Rsyslog terotentikasi tidak akan melindungi Anda jika seseorang memiliki serangan injeksi log dalam perangkat lunak aplikasi Anda, tetapi tidak ada yang bisa atau bisa; hanya memperbaiki aplikasi yang dapat membantu itu. Ini hanya akan melindungi Anda dari log palsu.

Peringatan lainnya dapat dengan mudah dikurangi dengan tidak menggunakan relay, yang sebenarnya tidak ada banyak alasan untuk melakukannya. Jika Anda tidak memiliki relay, dan Anda menggunakan opsi x509 / name untuk driver koneksi gtls di server rsyslog, Anda seharusnya tidak mengalami masalah.

Lihat juga gtls config doc: http://www.rsyslog.com/doc/v8-stable/concepts/ns_gtls.html

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.