FortiSIEM de şöyle bir durum başıma geldi:
TrendMicro IMSVA loglarını almak üzere syslog konfigürasyonu yaptık. FortiSIEM tarafında özel bir parser kullanmadık. Defaultta kendi belirlediği jenerik parser ile logları okumaya başladık. Buraya kadar sorun yok. Ancak TrendMicro IMSVA’ nın gönderdiği loglarda source ip bilgisi olmadığı için jenerik parser logda gördüğü her IP adresini bizim envanterimizde yeni bir makineymiş gibi CMDB ye yazmaya başladı. Yani sanki resimde görülen tüm IP adresleri bize ait makineymiş ve hepsi için syslog konfiği yapmışız gibi algıladı. Tabii CMDB birkaç saat içerisinde yüzlerce makine ile doldu ve lisans limiti aşıldı.
Arayüz üzerinden silmek işkence olduğu için CMDB veritabanına bağlanarak silme işlemini yaptım. İnternette doğru düzgün bi doküman bulamadığım için benden başka bir garibe daha lazım olur diye yazmak istedim.
FortiSIEM’de (eski adı ile AccelOps SIEM) logların tutulduğu db ile cihaz envanterinin ve envanter özelinde oluşan incident ların tutulduğu db ler farklı. Loglar için ilişkisel olmayan Nosql mimarisi kullanılıyor. Cihaz envanterinin tutulduğu CMDB ise PostgreSql üzerinde koşuyor.
Neyse. FortiSIEM e root kullanıcısı ile SSH üzerinden bağlandıktan sonra
psql phoenixdb phoenix -c komutu ile CMDB veritabanına bağlanıyorum. Cihazlar ph_device tablosunda; incidentlar ise ph_incident2device tablosunda tutuluyor. Select çekerek bakabilirsiniz tablo içeriklerine.
Şöyle bir ifade benim işimi görebilir: psql phoenixdb phoenix -c “delete from ph_device where access_ip not like ‘Sunucu IP Bloğumun ilk okteti%'”
Ama hata verdi. İlgili cihaza ait incident oluşmuş. Şöyle bir join işlemi ile incident ın hangi cihaz özelinde oluştuğunu görebilirim.
psql phoenixdb phoenix -c “select ph_device.id, ph_device.access_ip,ph_incident2device.incident_id from ph_device inner join ph_incident2device on ph_device.id=ph_incident2device.device_id where id=13633274313”
İlgili incident ı arayüzden Incident>Actions bölümünden filtreleyebilirim.
Neyse incident ı sildikten sonra tekrar sql komutunu çalıştırarak CMDB den gereksiz sunucuları silebilirim.
[ ~]# psql phoenixdb phoenix -c “delete from ph_device where access_ip not like ‘Sunucubloğumun ilk okteti.%'”
DELETE 306
Parser ile ilgili problemin çözümü ise yeni parser geliştirilerek sağlanmış oldu.