# Konu İçeriği #
# Siber Tehdit İstihbaratı Nedir? #
# OpenCTI Kurulumu #
# Siber Tehdit İstihbaratı Nedir? #
Siber tehdit istihbaratı; güncel olarak sistemler için oluşturulmuş saldırı tekniklerini ve yazılımlarını çeşitli araçlarla tespit edip, güncel raporlar oluşturarak saldırının önüne geçilmesine olanak sağlamaktadır. Siber tehdit istihbaratında verilerin analizi yapılmaktadır. Kullanılan birtakım araçlarda virüsler, exploitler, açıklar ve bunun gibi birçok şey hakkında raporlar dünyaya sunulmaktadır. Karşı taraftan gelecek olan bir saldırıyı bu raporlar sayesinde önceden engellemiş oluyoruz.
Yani Siber Tehdit İstihbaratı, sistemlerin güvenliği için çeşitli araçlarla saldırı engelleme bilgisi (istihbarat) toplayarak saldırıların engellenmesini sağlamaktadır.
# OpenCTI Kurulumu #
Siber Tehdit İstihbaratı için kullanacağımız aracımız "OpenCTI" adında bir araçtır. Bu aracın özelliği ise dünyaya sunulan zero-day ve bunun gibi birçok saldırı, zafiyet ve virüs hakkında oluşturulmuş raporları görmemizdir. Aracımız ücretsiz bir kullanıma sahip olup docker mimarisi ile kullanılmaktadır. Ben sizlere docker kullanarak kullanımını göstereceğim. OpenCTI yapımcıları tarafından da docker kurulumu önerilmektedir. Hemen kuruluma geçelim.
Evet arkadaşlar, öncelikle sistemimize update komutunu girmemiz gerekiyor. Hemen update atalım.
Şimdi sistemimize bir de upgrade komutunu girelim.
Evet, şimdi sistemimize docker-compose kurulumunu yapacağız. Repoda bulunduğu için hemen indirebiliyoruz.
docker-compose kurulumu tamamlandıktan sonra istediğimiz bir dizine gidip bir klasör oluşturuyoruz ve içine giriyoruz.
Evet, şimdi github üzerinden OpenCTI-Platform docker indireceğiz. Hemen kurulumunu yapalım.
Clone işlemini yaptıktan sonra docker klasörüne giriyoruz.
Evet arkdaşlar, şimdi içinde bulunan "docker-compose.yml" dosyasını düzenlememiz gerekiyor. Bunu hemen nano aracı ile açıyoruz ve düzenlemeleri yapacağız.
Evet, arkadaşlar burada düzenlememiz gereken birkaç yer var. Size burayı nasıl düzenleyeceğinizi göstermek için resim ekliyorum. Vereceğim resimde olan yerleri bulup düzeltme işlemi yapıyoruz. Ek olarak Bizden "token" veya "ID" gibi bilgiler de istemekte. Bunun için de arkadaşlar UUIDv4 gerekiyor. Bunun için internete girip UUIDv4'ten alabilirsiniz.
Evet, düzenleme işlemimiz tamam. Ctrl + O yapıyoruz. Daha sonra Enterleyip Ctrl + X ile çıkış yapıyoruz. Öncelikle arkadaşlar yapmamız gereken bir olayımız var. Bu olayımız ElasticSearch servisini Docker Hub üzerinden indirmek olacak. Hemen komutumuzu girelim.
İndirme işlemimiz bittikten sonra "docker images" komutu ile container yapısını göreceğiz ve docker hub üzerinden indirmiş olduğumuz imagesleri farklı environment ile çalıştıracağız ve indirdiğimiz imagesi göreceğiz. Bu komutu kullandıktan sonra test amaçlı "single-node" arama başlatıyoruz. Bazı yerlerde boot olayı olduğu atlayacağız. Bunu da kodumuzda belirtiyoruz.
En son kullandığımız komut sayesinde yein containerimiz 9200 ve 9300 portlarında barınıyor. Container idsi ise bize uzun bir şekilde dönen bilgidir. Şimdi asıl docker-compose.yml'den farklı olarak ElasticSearchü denemek için bir docker-compose.yml oluşturuyoruz.
Bunun içeriğini vereceğim komutla dolduruyoruz.
CTRL + O ve sonra CTRL + X yapıp çıkıyoruz. Daha sonra "docker-compose up" ile çalıştırıyoruz.
Evet, şimdi arkadaşlar 9200:9200 portunda bulunan "_cat/nodes" çalışıyor mu diye kontrol edeceğiz. Bunun için bir istek gönderiyoruz.
Evet, şuan çalışıyor arkadaşlar. OpenCTI aracı elasticsearche bağlı olduğu için çalıştırmadan önce birkaç sysctl değerini değiştireceğiz. Değiştirmeyi yaptıran sonra kaydetmek için de aynı komuta parametre ekleyip dosyanın yolunu belirtiyoruz.
Evet, şimdi config dosyasına gidiyoruz ve sonuna demin yazmış olduğumuz değer değişiklik kodunu yazıp kaydediyoruz.
Evet, buradan da kaydedip çıkıyoruz. Daha sonra tekrardan docker-compose.yml'i çalıştırıyoruz ancak bu sefer asıl dosyanın içinde çalıştırıyoruz. Ek olarak durumu görmek için -d parametresi ekliyoruz.
Şimdi ise arkadaşlar birkaç ayarlama yapmak gerekiyor. Swarm modda ilk olarak init girerek bir cluster oluşturuyoruz. Sizler farklı bir node için burada verilen tokenler ile giriş yapabilirsiniz. Ben otomatik oluşturulan manager node ile devam edeceğim. Sizler farklı bir node daha eklemek isterseniz komuttan sonra verilen "docker swarm join" kısmını kullanarak node manager/worker olarak girersiniz.
Evet, artık son işlemimize geldik. Stack depoloy ile bilgiler yerleştirilecek. Bu bilgiler de sunucu tarafından açılacak tüm servisleri açmamızı sağlayacak. Hadi şimdi deploy işlemini yapalım.
Evet arkadaşlar, bu işlemden sonra artık localhost:8080 ya da opencti:8080'e giderek login ekranına gideceğiz.
Girş ekranımız geldi. İlk başta belirlemiş olduğumuz bilgileri buraya giriyoruz. Eğer unuttuysanız docker-compose.yml ya da .env.sample dosyasından bakabilirsiniz.
Evet arkadaşlar, giriş yaptık. Bu sistem sayesinde haritadan bölge seçebilir ve orada raporlanan bilgilere ulaşabiliriz.
# Siber Tehdit İstihbaratı Nedir? #
# OpenCTI Kurulumu #
# Siber Tehdit İstihbaratı Nedir? #
Siber tehdit istihbaratı; güncel olarak sistemler için oluşturulmuş saldırı tekniklerini ve yazılımlarını çeşitli araçlarla tespit edip, güncel raporlar oluşturarak saldırının önüne geçilmesine olanak sağlamaktadır. Siber tehdit istihbaratında verilerin analizi yapılmaktadır. Kullanılan birtakım araçlarda virüsler, exploitler, açıklar ve bunun gibi birçok şey hakkında raporlar dünyaya sunulmaktadır. Karşı taraftan gelecek olan bir saldırıyı bu raporlar sayesinde önceden engellemiş oluyoruz.
Yani Siber Tehdit İstihbaratı, sistemlerin güvenliği için çeşitli araçlarla saldırı engelleme bilgisi (istihbarat) toplayarak saldırıların engellenmesini sağlamaktadır.
# OpenCTI Kurulumu #
Siber Tehdit İstihbaratı için kullanacağımız aracımız "OpenCTI" adında bir araçtır. Bu aracın özelliği ise dünyaya sunulan zero-day ve bunun gibi birçok saldırı, zafiyet ve virüs hakkında oluşturulmuş raporları görmemizdir. Aracımız ücretsiz bir kullanıma sahip olup docker mimarisi ile kullanılmaktadır. Ben sizlere docker kullanarak kullanımını göstereceğim. OpenCTI yapımcıları tarafından da docker kurulumu önerilmektedir. Hemen kuruluma geçelim.
Evet arkadaşlar, öncelikle sistemimize update komutunu girmemiz gerekiyor. Hemen update atalım.
sudo apt-get update
Şimdi sistemimize bir de upgrade komutunu girelim.
sudo apt-get upgrade -y
Evet, şimdi sistemimize docker-compose kurulumunu yapacağız. Repoda bulunduğu için hemen indirebiliyoruz.
sudo apt-get install docker-compose
docker-compose kurulumu tamamlandıktan sonra istediğimiz bir dizine gidip bir klasör oluşturuyoruz ve içine giriyoruz.
mkdir opencti && cd opencti
Evet, şimdi github üzerinden OpenCTI-Platform docker indireceğiz. Hemen kurulumunu yapalım.
git clone https://github.com/OpenCTI-Platform/docker.git
Clone işlemini yaptıktan sonra docker klasörüne giriyoruz.
cd docker
Evet arkdaşlar, şimdi içinde bulunan "docker-compose.yml" dosyasını düzenlememiz gerekiyor. Bunu hemen nano aracı ile açıyoruz ve düzenlemeleri yapacağız.
sudo nano docker-compose.yml
Evet, arkadaşlar burada düzenlememiz gereken birkaç yer var. Size burayı nasıl düzenleyeceğinizi göstermek için resim ekliyorum. Vereceğim resimde olan yerleri bulup düzeltme işlemi yapıyoruz. Ek olarak Bizden "token" veya "ID" gibi bilgiler de istemekte. Bunun için de arkadaşlar UUIDv4 gerekiyor. Bunun için internete girip UUIDv4'ten alabilirsiniz.
Evet, düzenleme işlemimiz tamam. Ctrl + O yapıyoruz. Daha sonra Enterleyip Ctrl + X ile çıkış yapıyoruz. Öncelikle arkadaşlar yapmamız gereken bir olayımız var. Bu olayımız ElasticSearch servisini Docker Hub üzerinden indirmek olacak. Hemen komutumuzu girelim.
sudo docker pull docker.elastic.co/elasticsearch/elasticsearch:7.6.2
İndirme işlemimiz bittikten sonra "docker images" komutu ile container yapısını göreceğiz ve docker hub üzerinden indirmiş olduğumuz imagesleri farklı environment ile çalıştıracağız ve indirdiğimiz imagesi göreceğiz. Bu komutu kullandıktan sonra test amaçlı "single-node" arama başlatıyoruz. Bazı yerlerde boot olayı olduğu atlayacağız. Bunu da kodumuzda belirtiyoruz.
sudo docker images
sudo docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.6.2
En son kullandığımız komut sayesinde yein containerimiz 9200 ve 9300 portlarında barınıyor. Container idsi ise bize uzun bir şekilde dönen bilgidir. Şimdi asıl docker-compose.yml'den farklı olarak ElasticSearchü denemek için bir docker-compose.yml oluşturuyoruz.
sudo nano docker-compose.yml
Bunun içeriğini vereceğim komutla dolduruyoruz.
version: '2.2'
services:
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:7.14.0
container_name: es01
environment:
- node.name=es01
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es02,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data01:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- elastic
es02:
image: docker.elastic.co/elasticsearch/elasticsearch:7.14.0
container_name: es02
environment:
- node.name=es02
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es01,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data02:/usr/share/elasticsearch/data
networks:
- elastic
es03:
image: docker.elastic.co/elasticsearch/elasticsearch:7.14.0
container_name: es03
environment:
- node.name=es03
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es01,es02
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data03:/usr/share/elasticsearch/data
networks:
- elastic
volumes:
data01:
driver: local
data02:
driver: local
data03:
driver: local
networks:
elastic:
driver: bridge
CTRL + O ve sonra CTRL + X yapıp çıkıyoruz. Daha sonra "docker-compose up" ile çalıştırıyoruz.
sudo docker-compose up
Evet, şimdi arkadaşlar 9200:9200 portunda bulunan "_cat/nodes" çalışıyor mu diye kontrol edeceğiz. Bunun için bir istek gönderiyoruz.
curl -X GET "localhost:9200/_cat/nodes?v=true&pretty"
Evet, şuan çalışıyor arkadaşlar. OpenCTI aracı elasticsearche bağlı olduğu için çalıştırmadan önce birkaç sysctl değerini değiştireceğiz. Değiştirmeyi yaptıran sonra kaydetmek için de aynı komuta parametre ekleyip dosyanın yolunu belirtiyoruz.
sudo sysctl -w vm.max_map_count=1048575
sudo sysctl -p /etc/sysctl.conf
Evet, şimdi config dosyasına gidiyoruz ve sonuna demin yazmış olduğumuz değer değişiklik kodunu yazıp kaydediyoruz.
vm.max_map_count=1048575
Evet, buradan da kaydedip çıkıyoruz. Daha sonra tekrardan docker-compose.yml'i çalıştırıyoruz ancak bu sefer asıl dosyanın içinde çalıştırıyoruz. Ek olarak durumu görmek için -d parametresi ekliyoruz.
sudo docker-compose up -d
Şimdi ise arkadaşlar birkaç ayarlama yapmak gerekiyor. Swarm modda ilk olarak init girerek bir cluster oluşturuyoruz. Sizler farklı bir node için burada verilen tokenler ile giriş yapabilirsiniz. Ben otomatik oluşturulan manager node ile devam edeceğim. Sizler farklı bir node daha eklemek isterseniz komuttan sonra verilen "docker swarm join" kısmını kullanarak node manager/worker olarak girersiniz.
Evet, artık son işlemimize geldik. Stack depoloy ile bilgiler yerleştirilecek. Bu bilgiler de sunucu tarafından açılacak tüm servisleri açmamızı sağlayacak. Hadi şimdi deploy işlemini yapalım.
sudo docker stack deploy --compose-file docker-compose.yml opencti
Evet arkadaşlar, bu işlemden sonra artık localhost:8080 ya da opencti:8080'e giderek login ekranına gideceğiz.
Girş ekranımız geldi. İlk başta belirlemiş olduğumuz bilgileri buraya giriyoruz. Eğer unuttuysanız docker-compose.yml ya da .env.sample dosyasından bakabilirsiniz.
Evet arkadaşlar, giriş yaptık. Bu sistem sayesinde haritadan bölge seçebilir ve orada raporlanan bilgilere ulaşabiliriz.