USOM nedir?
Ulusal Siber Olaylara Müdahale Merkezi (USOM), 20 Haziran 2013 tarihinde Bakanlar Kurulu Kararı ile yayınlanan “Ulusal Siber Güvenlik Stratejisi ve 2013-2014 Eylem Planı” 4. maddesi çerçevesinde Bilgi Teknolojileri ve İletişim Kurumu bünyesinde kurulmuştur.
Tüm dünya Threat Intelligence olarak bilgi paylaşımları yaparken bir çok URL Filter , Malware, Anti Spam özelliğini içeren ürünler Türkiye ve Türk kullanıcılarına yapılan saldırı tiplerinde sınıfta kalabiliyorlar. ( Özellikle phishing içeren bir çok yeni sitelerde)
Bu noktada USOM bize geniş ve sürekli güncellenen bir url listesi vererek aslında korunmamızı sağlıyor.
Checkpoint IOC nedir? Custom Intelligence Feed dedikleri ne oluyor?
Checkpoint kendi istihbaratı ile ünlenmiş bir şirket, fakat konu Türkçe domainler olunca bu istihbarat biraz yetersiz kalabiliyor. Aynı şekilde Dünya’nın farklı yerlerinde bizimle aynı sıkıntıyı çeken müşteriler yüzünden R80.20 sürümü içerisine kendi istihbaratlarımızı ekleyebilme özelliği getirdi. ( Daha önceki sürümlerde bu bazı scriptlerle oluyordu, fakat böyle direk dahili olması işlerimizi çok daha kolaylaştırıyor. )
Temel olarak bir link ya da dosyadan ilgili içerikleri okuyup Anti-Virus ve Anti-Bot blade leri ile bunları engelliyor. Yani cihazınızda bu bladeler açık olması gerekiyor.
IOC Ekleme methodları neler?
Eğer kendiniz bir IOC dosyası verecekseniz, şu kurallara uymanız bekleniyor.
- Başlıkları ayırmak için ‘,’
- Kayıtları ayırmak için ‘\n’
- Başlıklar düz text olmalı(Herhangi bir noktalama olmamalı)
- Her kayıt başlığa uygun olmalı ( Bir veride IP numarası ilk bölümde, ikinci veride Data,IP gibi olmamalı. Eğer vereceğiniz IP listesi ise, bütün hepsi IP listesi olmalı
- Açıklama kısmı girebilirsiniz. ( Comment parametresi ile ayırabiliyorsunuz)
- # işareti ile ilk satır olduğunu işaret edersiniz.
Bazı örnekler;
Dosyanızda sadece IP adresleri var ise;
ioc_feeds add –feed_name ip_list –transport http –resource “http://blocklist.greensnow.co/greensnow.txt” –format [value:1,type:ip]
46.38.144.146 104.131.154.154 192.42.116.41 46.38.144.17 46.38.144.32 46.38.144.57
Dosyanızda sadece domain adresleri var ise;
ioc_feeds add –feed_name ip_cidr_list_with_delimiter –transport https –resource “https://www.spamhaus.org/drop/edrop.txt” –format [value:1,type:ip] –delimiter “;” –comment “;”
# # DShield.org Suspicious Domain List # (c) 2020 DShield.org # some rights reserved. Details http://creativecommons.org/licenses/by-nc-sa/2.5/ # use on your own risk. No warranties implied. # primary URL: http://www.dshield.org/feeds/suspiciousdomains_High.txt # # comments: info@dshield.org # updated: Sat Jan 4 04:04:03 2020 UTC # # This list consists of High Level Sensitivity website URLs # Columns (tab delimited): # # (1) site # # Site 3qbyaoohkcqkzrz6.torgate.es pmenboeqhyrpvomq.swissprogramms.bid fapet.ipb.ac.id wasabi.mine.nu 52uo5k3t73ypjije.7jiff7.top wjfkoqueatxdmqw.biz 52uo5k3t73ypjije.m5fgoi.top 974gfbjhb23hbfkyfaby3byqlyuebvly5q254y.mendilobo.com cerberhhyed5frqa.lfotp5.top 76tguy6hh6tgftrt7tg.su preapprovedloansonline.kz cerberhhyed5frqa.zgf48j.win bolerakopsoa.pw
Dosyanızda birden çok bilgi var olup, belli bir işaret ile ayrılmış ise;
ioc_feeds add –feed_name ip_list_with_spaces –transport local_file –resource “/home/admin/ioc/ip_list_with_spaces.txt” –format [value:3,comment:#2,type:ip] –comment [#] –delimiter “|”
IOC eklemek için kullanabileceğimiz CLI Komutları
Parametre | Açıklama | Örnek |
push | Feed’i tetikler | ioc_feeds push |
show | Tüm feedleri görüntüler | ioc_feeds show |
show -feed-name feed_adi | Seçtiğiniz feed’in özelliklerini gösterir | ioc_feeds feed-name feed_adi |
show_interval | Feedlerin kaynaktan kaç saniyede okuyacağını gösterir | ioc_feeds show_interval |
set_interval sec | Feedlerin kaynaktan kaç saniyede okuyacağını değiştirir | ioc_feeds set_interval xxx |
show_scanning_mode | Scanning modun ayarlarını gösterir | ioc_feeds show_scanning_mode |
set_scanning_mode | Scanning modun kapatıp açılmasını sağlar | ioc_feeds set_scanning_mode off / on |
add | Yeni Feed eklemek için kullanabileceğiniz parametreler; –feed_name feed_adi –transport <http/https/local_file/local_directory> –resource <url/full_path> Opsiyonel ayarlar; –state <true/false> (active/inactive. default – True) –feed_action <Prevent/Detect/Ask> (default – Prevent) –user_name <user> –proxy <proxy:port> –proxy <none> don’t use proxy –proxy <proxy:port> – Eğer gw ler çıkışta bir fw kullanıyor ise; –proxy_user_name <user> –test true | ioc_feeds add –feed_name local_feed –transport local_file –resource /home/admin/my_feed.csv ioc_feeds add –feed_name remote_feed –transport http –resource 10.0.0.1/my_feeds/stix_feed.xml –proxy 127.10.10.1:8080 –state false feed_action detect –user_name admin@checkpoint.com |
modify | Eklediğiniz feedi düzenleme yarar | ioc_feeds modify –feed_name feed_adi –state true |
delete | Eklediğiniz feedi silmeye yarar | ioc_feeds delete –feed_name feed_adi |
USOM dan dosyaları indirmek
Burada 2 yöntem kullanılabiliyor, 1. yöntem direk firewall üzerinden yapmak, 2. yöntem ise bir sunucu aracılığı ile firewall a tanıtmak. Firewall varken neden bir sunucuya ihtiyacım var derseniz, USOM istek sınırı getirmiş olmasından dolayı. Örneğin bir dosyayı beğenmeyip aynı anda bir daha çekmek isterseniz usom, sizi anlık olarak blocklayabiliyor. belli bir süre geçmesi gerekiyor. Ya da 1 den fazla cihazınız var ise, crontabları tek tek yapmanız gerekiyor, çünkü 2 veya daha fazla firewallınız aynı anda istek yapınca USOM gene blocklayacak. Belki bir cihazınız almışken, diğer cihazınız almamış olacak ya da eski kalmış olacak.
Normal şartlarda, Dünya üzerinde belli başlı ücretsiz servisleri eklerken çok bir işlem yapmanıza gerek kalmıyor, belli bir standartta geliyor. Ama şu anda en azından USOM’ı eklerken bazı düzenlemeler yapmamız gerekiyor. USOM Dosyası verirken çünkü hem domain veriyor, hem IP veriyor, hemde url veriyor. En temiz yöntem olarak ben hem URL yöntemine çevirmek hem de IP olarak ayrıştırıp eklemekte çözüm üretebildim.
Firewall Gateway lerimize bağlanarak işlemlere başlayalım.
mkdir /var/tmp/IOC
mkdir /var/tmp/IOC/sh
mkdir /var/tmp/IOC/data
mkdir /var/tmp/IOC/gecici
/var/tmp/IOC altında 4 klasör oluşturacağız. SH scriptimizin çalışacağı klasör sh klasörü, data klasörünün çalışacağı ise data klasörü. Bunların temizliklerini yaparken ise, gecici klasörünü kullanacağız.
Ardından sh çalışacak scriptimizi yaratalım.
vi /var/tmp/IOC/sh/usom.sh
#!/bin/sh
source /etc/profile.d/CP.sh
#Degerleri Ata
Gecici=/var/tmp/IOC/gecici
Kalici=/var/tmp/IOC/data
#USOM Dosyalarini indir ve temizle
curl_cli --insecure --retry 3 --retry-delay 180 https://www.usom.gov.tr/url-list.txt -o $Gecici/usom_domain.txt
#Dosyalari temizle
sed -i '/^$/d' $Gecici/usom_domain.txt
sed -i 's/,//g' $Gecici/usom_domain.txt
sed -i '/^http:\/\//! s/^/http:\/\//g' $Gecici/usom_domain.txt
#Dosyalari bos olmayanlari tasi
find $Gecici -size -1024k -delete
mv $Gecici/*.txt $Kalici/
Çıkmak için Escape tuşuna basıp :wq! yazabilirsiniz
Üstteki betiği özetlemek gerekirse, ilk 2 satırdaki checkpoint’e eğer crontab koyacaksanız güvenlik olarak bu şekilde eklemeniz gerekiyor. Aksi halde chmod dahi yapsanız çalışmayabiliyor.
Gecici ve Kalıcı olarak 2 değer atadık, neden direk dosyayı indirip üzerinde çalışmıyorsun derseniz, bazı durumlarda USOM dediğim gibi IP mizi bloklayabiliyor, bu zamanda da var olan dosyamız bozulmasın diye ayrı bir klasörde işlemleri yapıyoruz.
curl_cli –insecure ile https hatalarını bypass edip olası bir bağlantı probleminde 3 kere deneme üzerine ayarladık. Denemeler arasında ise 3 dakikalık bir ara bıraktık.
sed parametresi ise dosya içerisindeki bazı bozuk karakterleri temizliyor, örneğin direk usom dosyasında bir domain ‘,’ işareti ile bitiyor, bu yüzdende checkpoint bunu algılayamıyor. En son ise yazının başında belirttiğim gibi URL olarak ekleyeceğim için http:// yi tüm satırlarına başına ekliyoruz.
Olası bir durumda USOM ipnize block koyduysa, bir hata mesajı gönderiyor. Bu var olan dosyamızı bozmasın diye 1 mb altındaki bütün dosyaları siliyoruz.
Dosyamızı çalıştıralım.
sh /var/tmp/IOC/sh/usom.sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1240k 100 1240k 0 0 2414k 0 –:–:– –:–:– –:–:– 2431k
Dosyamız data klasöründe usom_domain.txt adında bulunuyor. Dilerseniz icerigine bakabilirsiniz, şu şekilde domainler olması gerekiyor.
Dosyamız indiğine göre, artık ioc_feeds özelliği ile gatewayimize tanıtabiliriz.
ioc_feeds add –feed_name usom_domain –transport local_file –resource “/var/tmp/IOC/data/usom_domain.txt” –format type:url,value:1 –feed_action Prevent
Aşağıdaki şekilde bir bekleme süresi gelecek. Ondan sonra tanımlanmış olacak.
Doğru yüklenip yüklenmediğine bakmak için, usom listesindeki bir domaine istekte bulunalım.
Aşağıdaki listeden DNS Bilgisi olanı rastgele seçiyorum.
Firewall loglarımızda ilgili isteği görelim. IOC ler anti-virus blade’i altında bulunuyor. Bu yüzden log ekranına blade:anti-virus yazarak görebiliriz.
Eğer Blade üzerinde herhangi bir ayar yapmazsanız, bu istekler direk olarak checkpoint sunucularına gidiyor, ben logları göreyim ama istekler dışarıya çıkmasın diye, DNS trap özelliği ile 127.0.0.1 olarak ayarladım. Böylece istek yapan makine kendi içerisinde kalıyor.
Bunun ayarı için Threat Prevention tarafında Anti-Virus blade’i açık policy mizi edit yapıyoruz
Ve Malware DNS Trap bölümünde 127.0.0.1 olarak güncelliyoruz.
Bundan sonrası tamamen size kalmış. İsterseniz gaia OS ekranında Schedule edebilirsiniz, dilerseniz elle zaman zaman güncelleyebilirsiniz.