Palo Alto MineMeld Nedir? Ne işe yarar? Nasıl Konfigüre Edilir?
Minemeld, tehdit istihbaratı toplanması, uygulanması ve paylaşılmasını kolaylaştıran ve Palo Alto Networks tarafından sunulan açık kaynak bir uygulamadır.
Minemeld, AWS, Microsoft Azure, Google Cloud, Office/Microsoft 365 ve Cisco gibi bir çok platform desteklediği gibi halka açık bir yapısı olduğu için her geçen gün daha fazla platform tarafından desteklemektedir.
Soldaki 4 yeşil düğüme Madenciler denir ve 3 farklı kaynaktan peryodik olarak sötergeleri almaktan ve güncelleme mesajlarını kullanarak bunları bağlı düğümlere iletmekten sorumludur.
Merkezde bulunan kırmızı düğüme işlemci düğümü denir ve 3 madenciden aldığı bilgileri toplar ve toplanan göstergeleri çıkış düğümlerine iletir.
Sağ tarafta bulunan 3 sarı düğüm çıkış düğümüdür. İşlemci düğümünden alınan göstergeleri çeşitli platformların kullanabileceği bir biçime dönüştürür (parse).
Yukarda bulunan tabloda 3 çıkış düğümü de işlemciden aynı gösterge bilgisini alır. Fakat “inboundfeedhc” sadece güven seviyesi 75 üzerindekileri kabul eder “inboundfeedmc” güven seviyesi 75 ila 50 arasında olan göstergeleri kabul eder, ”inboundfeedlc” güven seviyesi 50 aşağısındaki göstergeleri kabul eder.
Bizim bu makalede yapacağımız MineMeld ile Office365 in web servislerinden ip listesi , URL listelerini alarak Palo Alto tarafında manuel bir şekilde ip ve url yazmamızın önüne gececek ve bize sundugu bu listelerle daha hızlı ve kolay kural yazmamızı sağlayacaktır.
MineMeld Office365 web servisleri ile sürekli iletişim halinde olacağı için bize sunulan listelerdeki değişiklikleride dinamik bir şekilde değiştirecek ve işlerimizi daha da kolaylaştıracaktır.
Web servis veya xml dosyası sunumuyla farklı provider’ların sunduğu dinamik url hizmetleri de minemeld e entegre edilebilir.
Minumum System gereksinimleri :
-1 CPU
-1 GB RAM
-8 GB disk
Test Ortamı için Hyper-V üzerine aşağıdaki özelliklere sahip bir makine açtım:
-4 Cpu
-8 GB RAM
-127 GB Disk Alanı
-Ubuntu Server 16.04.6
Ubuntu Server kurulumu mu tamamladıktan sonra MineMeld kurulumuna geçebiliriz.
Minemeld,kuruluma başlamadan önce işletim sistemimizin güncelleştirmelerini geçiyoruz, bunun için aşağıdaki komutu paylaşıyorum.
#sudo apt update && sudo apt dist-upgrade -y
1.Adım Sistem güncelleştirmelerini geçtikten sonra Iptables kurulumu ve yetkilendirme için aşağıdaki komutları sırasıyla çalıştırıyoruz.
# sudo iptables -A INPUT -i lo -j ACCEPT
# sudo iptables -A INPUT -m conntrack — ctstate RELATED,ESTABLISHED -j ACCEPT
# sudo iptables -A INPUT -p tcp -m tcp — dport 22 -j ACCEPT
# sudo iptables -A INPUT -p tcp -m tcp — dport 80 -j ACCEPT
# sudo iptables -A INPUT -p tcp -m tcp — dport 443 -j ACCEPT
# sudo iptables -A INPUT -p tcp -m tcp — dport 13514 -j ACCEPT
# sudo iptables -A INPUT -p icmp -m icmp — icmp-type 0 -j ACCEPT
# sudo iptables -A INPUT -p icmp -m icmp — icmp-type 3 -j ACCEPT
# sudo iptables -A INPUT -p icmp -m icmp — icmp-type 8 -j ACCEPT
# sudo iptables -A INPUT -p icmp -m icmp — icmp-type 11 -j ACCEPT
# sudo iptables -P INPUT DROP
# sudo iptables -P FORWARD DROP
# sudo bash -c “iptables-save > /etc/iptables/rules.v4”
# sudo ip6tables -A INPUT -i lo -j ACCEPT
# sudo ip6tables -P INPUT DROP
# sudo ip6tables -P FORWARD DROP
# sudo bash -c “ip6tables-save > /etc/iptables/rules.v6”
2.Adım olarak MineMeld e APT key ekliyoruz.
#wget -q0 -https://minemeld-updates.panw.io/gpg.key | Sudo apt-key add-
MineMeld GPG anahtarıyla eşleştiğinden emin olmak için anahtarı iki kez kontrol ediyoruz.
#apt-key adv — fingerprint DD0DA1F9
3.Adım MineMeld APT deposunu ekleme
MineMeld APT deposunu sistem listesine ekleyin ve apt önbelleğini güncelleyin:
#sudo add-apt-repository “deb http://minemeld-updates.panw.io/ubuntu xenial-minemeld main”
#sudo apt update
4.Adım nginx ve redis kurulumu
Yapılandırma çakışmalarını önlemek için MineMeld yüklemeden önce nginx ve redis yüklemeliyiz:
#sudo apt install -y nginx redis-server
5.Adım MineMeld Kurulumu
Bu aynı zamanda en son MineMeld paketlerinin indirilmesini ve otomatik olarak yüklenmesini sağlayacaktır.
#sudo apt install -o Dpkg::Options::=” — force-overwrite” -y minemeld
6.Adım
Tüm yapılandırmaların uygulandığından ve tüm hizmetlerin doğru sırada başlatıldığından emin olmak için yeniden başlatmalıyız
#sudo shutdown -r now
7.Adım
MineMeld hizmetinin çalışır durumda olduğunu aşağıdaki komutla kontrol ediyoruz
#sudo -u minemeld /opt/minemeld/engine/current/bin/supervisorctl -c /opt/minemeld/local/supervisor/config/supervisord.conf status
Servislerimizin çalıştığını doğruladıktan sonra Minemeld arayüzüne girebiliriz.
Default kullanıcı adı ve parolası : admin/minemeld
Minemeld login olduktan sonra platformlardan veri toplama işlemlerine geçmeden önce minemeld’e sertifika yüklememiz gerekmektedir. Platformlardan veri toplamak için kimlik doğrulamayı etkinleştirdiyseniz, kurumsal bir sertifika otoritesi (Public CA) veya kendi altyapınızda bulunan bir sertifika otoritesinden (Internal CA) aldığınız sertifika ile https üzerinden iletişimi etkinleştirmelisiniz.
Ben pfx formatında bir sertifikayı OpenSSL kullanarak .pem ve .key uzantılı olacak şekilde sertifika ve private key dosyalarına ayırdım.
OpenSSL>pkcs12 -in “Sertifika Path\wildcard.pfx” -out “Sertifika Path\minemeld.pem”
OpenSSL>pkcs12 -in “Sertifika Path\wildcard.pfx” -out “Sertifika Path\SSL\key.key”
OpenSSl>rsa -in “Sertifika Path\key.key” -out “Sertifika Path\SSL\minemeld.key”
Oluşturduğumuz sertifikaları Winscp programını kullanarak MineMeld sunucusunun /etc/ngix altına atıyoruz.
Sertifika ile ilgili daha fazla bilgiyi bu adresten görüntüleyebilirsiniz.
Sertifika yükleme işini bitirdikten sonra ortamımızda bulunan DNS sunucusunda Minemeld’in IP’sine giden bir A kaydı açıyoruz.
MineMeld tarafında bir adet kullanıcı açıyoruz. Burada oluşturacağımız kullanıyı Minemeld ile Palo Alto EDL (External Dynamic List) arasında kimlik doğrulama yapması için kullanacağız.
Minemeld login olduktan sonra ADMIN->sol tarafta bulanan yuvarlak icon tıklayarak devam ediyoruz.
Açılan sayfada “Warning! authentication for output feeds is disabled” böyle bir hata alırsanız.
Ubuntu server cli dan login olarak aşağıdaki komutu çalıştırıyoruz.
# sudo -u minemeld sh -c ‘echo “FEEDS_AUTH_ENABLED: True” > /opt/minemeld/local/config/api/30-feeds-auth.yml’
Sayfayı yenilediğimiz de hata gitmiş olacaktır.
Sağ alt köşeden artıyı tıklayarak yeni bir kullanıcı oluşturuyoruz.
Oluşturduğumuz kullanıcıya “ACCESS” sekme sinde bir tag belirliyoruz. Bu belirlediğimiz tag ile kullanıcı minemeld çıkış düğümlerinde belirlediğimiz tag le alakalı tüm akışlara erişebilecek.
Node -> Madencilerden herhangi bir tanesini tıklıyoruz.
Tag kısmına açtığımız kullanıcı için belirlediğimiz tag yazıyoruz.
Kullanıcı ve Sertifika işlemlerimiz bittikten sonra Office 365 entegrasyonuna geçebiliriz.
Minemeld Office 365 entegrasyonu
Office365 entegrasyonu için öncelikle madencilerimizi oluşturmamız gerekiyor bunun için gerekli dosyalara buradan erişebilirsiniz.
Config ->Import seçerek devam ediyoruz.
Rar dosyasını indirdikten sonra içerisinde ki “o365-api-any-any.txt” adlı dosyayı açıyoruz ve txt kopyalayarak buraya yapıştırıyoruz ardından “REPLACE” seçerek devam ediyoruz.
Sahip olduğumuz tüm yapılandırmaları yeni konfigurasyona göre değiştirileceğine dair bir uyarı alıyoruz. Kabul ederek devam ediyoruz.
“Commit” tıklayarak yaptığımız değişiklikleri kadediyoruz.
Madencilerimizi kontrol etmek için NODE->Herhangi bir madenciyi seçerek devam ediyoruz.
Burada Microsoft un dinamik olarak sunduğu uç noktalarını,URL ler,IPv4 ve IPv6 adreslerini alan işlemcileri ve Palo Alto tarafında EDL (External Dynamic List) kısmına ekleyeceğimiz çıkış düğümlerini görüntüleyebilirsiniz.
MineMeld Office365 entegrasyonunu yaptıktan sonra Palo Alto tarafına geçiyoruz.
Object->External Dynamic List ->Add
1 – EDL isim veriyoruz.
2 – MineMeld de çıkış düğümlerinde bulanan URL yazıyoruz. (Aşağıda Paylaşıyorum)
3 – Oluşturduğumuz Sertifikayı seçiyoruz.
4 – Minemeld tarafında oluşturduğumuz kullanıcı bilgilerini yazıyoruz.
5 – Kaynak URL’ i test ediyoruz.
6 – Kurulumu tamamlıyoruz.
Yaptığımız bu işlemi diğer 2 çıkış düğümleri içinde yapıyoruz. Burada dikkat etmemiz gereken “O365-any-any-url-feed” eklerken Type kısmında “URL List”
seçmemiz gerekiyor.
İşlemlerimiz bittikten sonra EDL son hali yukardaki gibi olacaktır. EDL tarafında işlerimiz bittiğine göre kural yazma adımına geçmeden oluşturduğumuz URL filtering Category kontrol edelim.
Object->URL Filtering->Add profilimize izin veriyoruz ve EDL mizin başaralı bir şekilde geldiğini görüntülüyoruz.
Artık kuralımızı yazabiliriz.
Policies->Security->Add
Burada seçeceğimiz uygulamalar.
activesync
mapi-over-http
ms-exchange
ms-office365
ms-onedrive
rpc-over-http
soap
ssl
stun
web-browsing
webdav
ms-office365
office-live
office-on-demand
outlook-web-online
ms-lync-online
ms-lync-online-apps-sharing
sharepoint-online
ms-lync-online-file-transfer
Son: böylece Minemeld’i kullanarak Office 365 hizmet URL’lerini dinamik bir şekilde güvenlik duvarımızdaki kurala eklemiş olduk. Microsoft web servisindeki URL’leri güncellediğinde bizim herhangi bir işlem yapmamıza gerek kalmadan güncel listeyi güvenlik duvarımız Minemeld üzerinden alacak.
Umarım faydalı olmuştur. Bir sonraki makalede görüşmek üzere.
Eline sağlık, çok güzel bir makale olmuş.
Teşekkürler Hocam.