Bugün birlikte “Elastic Security” kurulumu yapacağız. Çok genel anlamda https://www.linkedin.com/pulse/elasticsearch-ve-elasticin-sa%C4%9Flad%C4%B1%C4%9F%C4%B1-%C3%A7%C3%B6z%C3%BCmler-sarav-asiye-yigit/ yazımda “Elastic Security”den bahsetmiştim. Bu yazımda daha detaylı olarak anlatıyor olacağım.
“Elastic Security”, SIEM tehdit algılama özelliklerini uç nokta önleme ve yanıt yetenekleriyle tek bir çözümde birleştirmektedir. “Elasticsearch”ün hızı ve genişletilebilirliği ile güçlendirilen bu analitik ve koruma yetenekleri sayesinde kuruluşlar, hasar ve kayıp meydana gelmeden önce tehditlere karşı önlem alabilir.
“Elastic Security” bize ne tür kazançlar ve yetenekler sağlıyor?
Saldırıları ve sistem yanlış yapılandırmalarını belirlemek için bir algılama motoru (“detection engine”) sunuyor.
Olay triyajı ve incelemeleri için bir çalışma alanı sağlar.
Süreç ilişkilerini araştırmak için etkileşimli görselleştirmeler kullanmamıza imkan verir.
Otomatik eylemlerle dahili vaka yönetimi yapabiliriz.
Önceden oluşturulmuş makine öğrenimi anormallik işleri ve algılama kuralları ile imzasız saldırıların tespit edilmesini kolaylaştırır.
Peki, veriler acaba “Elasticsearch”e nasıl iletiliyor? Oldukça basit, beat modülleri ve “Elastic Endpoint Security” aracı (ajanı) entegrasyonu aracılığıyla gönderilmektedir.
“Elastic Endpoint Security”: Ana bilgisayarlarınızı kötü amaçlı yazılımlara karşı koruyan ve aşağıdaki veri kümelerini gönderen esnek ajan entegrasyonu sağlar:
Windows: İşlem (“process), ağ (“network”), dosya, DNS, kayıt defteri (“registry”), DLL ve sürücü yüklemeleri, kötü amaçlı yazılım (“malware”) güvenlik algılamaları.
Linux / macOS: İşlem, ağ, dosya.
Kibana’daki “Elastic Security” uygulaması (“Security App”), Algılama (“Detection”) motorunu, Vakaları (“Cases”) ve Zaman Çizelgesini (“Timeline”) ve Uç Nokta Güvenliği (Endpoint Security”) çalıştıran ana bilgisayarları yönetmek için kullanılmaktadır.
Algılama motoru neler yapıyor? Şüpheli ana bilgisayar ve network trafiğini otomatik olarak arar. Bu arama işlemini nasıl yapıyor?
Tespit kuralları (“Detection Rules”): Şüpheli olaylar için ana bilgisayarlarınızdan gönderilen verileri (aslında Elasticsearch indeksleri) periyodik olarak arar. Şüpheli bir olay tespit edildiğinde, bir tespit uyarısı oluşturulur. Slack ve e-posta gibi harici sistemler, uyarılar oluşturulduğunda bildirim göndermek için kullanılabilir. Ek olarak kendi kurallarınızı oluşturabilir ve önceden oluşturulmuş ürün ile gelen kuralları da kullanabilirsiniz.
İstisnalar (“Expections”): Gürültüyü ve yanlış pozitiflerin sayısını azaltabilirsiniz. İstisnalar kurallarla ilişkilendirilir ve bir istisnanın koşulları karşılandığında uyarıları önlenir. Değer listeleri, istisna koşullarının bir parçası olarak kullanılabilen kaynak olay değerlerini içerir. “Elastic Endpoint Security”i, ana makinenize yüklediğinizde, kötü amaçlı yazılım istisnalarını Güvenlik uygulamasından (“Security App”) uç noktaya ekleyebilirsiniz.
Makine öğrenimi işleri (“Machine learning jobs”): Ana bilgisayar ve ağ olaylarındaki anormallikleri otomatik olarak tespit eder. Anormallik puanları ana bilgisayar başına verilir ve algılama kuralları ile de kullanılabilir.
Kibana içinden kullandığımız “Security App” için, Zaman çizelgesi (“Timeline”) dediğimiz bileşen, uyarıları ve olayları araştırmak için bir çalışma alanıdır. Zaman çizelgeleri, belirli bir olayla ilgili olayları ayrıntılı olarak incelemek için sorgular ve filtreler de kullanabilir. Zaman çizelgesi şablonları kurallara eklenir. Uyarılar araştırılırken önceden tanımlanmış sorgular da kullanılabilir. Daha iyisi, Zaman çizelgeleri kaydedilebilir, başkalarıyla paylaşılabilir ve Vakalara (“Cases”) da eklenebilir.
Kibana içinden kullandığımız “Security App” için,Vakalar (“Cases”) dediğimiz bileşen, güvenlik sorunlarını “Security App” içinde açmak, izlemek ve paylaşmak için dahili bir yapı sunar. Vakalar mevcut çağrı açma sistemleriyle (“ticketing systems”) de entegre olabilir.
“Security App” ile, “Elastic Endpoint Security” çalıştıran ana bilgisayarları görüntüleyebilir ve yönetebilirsiniz.
“Elasticsearch” ve “Kibana” ile ilgili detaylı bilgiyi yazımın başında linkini yazdığım makaleden de tekrar okuyabilirsiniz.
“Elastic Endpoint Security” aracı/ajanı entegrasyonu bize neler sağlıyor? Olayları toplama, kötü niyetli etkinlikleri, istisnaları ve yapay teslimatı algılama ve önleme gibi yetenekler sağlamaktadır. Fleet uygulaması ile ana bilgisayarlarınıza Elastic aracıları/ajanları yükleyebilir, entegrasyonlarını yapabilir ve yönetebilirsiniz.
“Endpoint self-protection” yine oldukça önemli bir özellik. Bu özellik, “Elastic Endpoint”in, işlevselliğine müdahale etmeye çalışan kullanıcılara ve saldırganlara karşı korumaya sahip olduğu anlamına gelir. Bu koruma özelliği, “Elastic Endpoint”e müdahale etmek için daha yeni, daha sofistike taktikler kullanmaya çalışabilecek saldırganları önlemek için sürekli olarak geliştirilmektedir. “Elastic Endpoint”, aşağıda listelenen desteklenen platformlara yüklendiğinde, kendi kendini koruma özelliği etkindir.
64-bit Windows:
Windows 8.1
Windows 10
Windows Server 2012 R2
Windows Server 2016
Windows Server 2019
MacOS:
macOS 10.15 (Catalina)
macOS 11 (Big Sur)
Varsayılan olarak, “Elastic Security”, APM endekslerini izler, apm-*-transaction*. İlave APM endeksleri de ekleyebilirsiniz.
Bu çözüm için diğer önemli bir bileşen, “Elastic Common Schema:ECS”dır. “Elastic Common Schema (ECS)”, “Elasticsearch”te olay verilerini depolamak için kullanılacak ortak bir alan kümesini tanımlar. ECS, kullanıcıların, olaylarında temsil edilen verileri daha iyi analiz etmek, görselleştirmek ve ilişkilendirmek için olay verilerini normalleştirmesine yardımcı olur. “Elastic Security”, herhangi bir ECS uyumlu veri kaynağından olayları ve gösterge dizin verilerini desteklemektedir. “Elastic Security”, ECS uyumlu verileri gerektirmektedir. “Elasticsearch”e veri göndermek için üçüncü taraf veri toplayıcıları kullanıyorsanız, verilerin ECS ile eşleştirilmesi gerekmektedir.
“Elastic Security”, Kibana’nın yerleşik bir parçasıdır. “Elastic Security”yi kullanmak için, yalnızca bir “Elastic Stack” dağıtımına (bir Elasticsearch kümesi ve Kibana) ihtiyacınız vardır. https://www.elastic.co/support/matrix adresinden desteklenen tüm yapıları görebilirsiniz.
Aşağıdakiler hariç tüm özellikler ücretsiz Temel (“Basic”) planın bir parçası olarak gelmektedir:
Harici sistemler aracılığıyla algılama uyarısı bildirimleri.
Makine öğrenimi işleri ve kuralları.
Üçüncü taraf çağrı sistemleriyle vaka entegrasyonu.
https://www.elastic.co/subscriptions adresinden hangi abonelik seviyesiyle hangi özellikler geliyor inceleyebilirsiniz.
“Cross-Cluster Search” (Kümeler arası arama), bir veya daha fazla uzak kümeye (“cluster”) karşı tek bir arama isteği çalıştırmanızı sağlar. Örneğin, farklı veri merkezlerindeki kümelerde depolanan günlük verilerini filtrelemek ve analiz etmek için kümeler arası bir arama yapabilirsiniz.
https://www.elastic.co/guide/en/elastic-stack-get-started/7.12/get-started-elastic-stack.html linkini kullanarak kurulum işlemine başlayalım.
Kurulumu aşağıda olan sistemimize yapacağız.
[root@zero ~]# uname -a
Linux zero 4.18.0-240.22.1.el8_3.x86_64 #1 SMP Thu Mar 25 14:36:04 EDT 2021 x86_64 x86_64 x86_64 GNU/Linux
[root@zero ~]# rpm -q redhat-release
redhat-release-8.3-1.0.el8.x86_64
[root@zero ~]#
Kullanacağımız komutumuz aşağıdadır.
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.12.0-x86_64.rpm sudo rpm -i elasticsearch-7.12.0-x86_64.rpm sudo service elasticsearch start
[root@zero ~]# curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.12.0-x86_64.rpm
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 312M 100 312M 0 0 4334k 0 0:01:13 0:01:13 –:–:– 3997k
[root@zero ~]#
[root@zero ~]# ls
anaconda-ks.cfg elasticsearch-7.12.0-x86_64.rpm initial-setup-ks.cfg
[root@zero ~]#
[root@zero ~]# rpm -i elasticsearch-7.12.0-x86_64.rpm
warning: elasticsearch-7.12.0-x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID d88e42b4: NOKEY
Creating elasticsearch group…
OK
Creating elasticsearch user… OK
### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemd
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
### You can start elasticsearch service by executing
sudo systemctl start elasticsearch.service
Created elasticsearch keystore in /etc/elasticsearch/elasticsearch.keystore
[/usr/lib/tmpfiles.d/dovecot.conf:1] Line references path below legacy directory /var/run/, updating /var/run/dovecot → /run/dovecot; please update the tmpfiles.d/ drop-in file accordingly.
[/usr/lib/tmpfiles.d/elasticsearch.conf:1] Line references path below legacy directory /var/run/, updating /var/run/elasticsearch → /run/elasticsearch; please update the tmpfiles.d/ drop-in file accordingly.
[/usr/lib/tmpfiles.d/pesign.conf:1] Line references path below legacy directory /var/run/, updating /var/run/pesign → /run/pesign; please update the tmpfiles.d/ drop-in file accordingly.
[root@zero ~]#
[root@zero ~]#
[root@zero ~]# service elasticsearch start
Starting elasticsearch (via systemctl):
[ OK ]
[root@zero ~]#
“Elasticsearch”ün çalıştığını aşağıda görüyoruz.
[root@zero ~]# curl http://127.0.0.1:9200
{
“name” : “zero”,
“cluster_name” : “elasticsearch”,
“cluster_uuid” : “h-_h7v_TSBqggy1CF3ojmA”,
“version” : {
“number” : “7.12.0”,
“build_flavor” : “default”,
“build_type” : “rpm”,
“build_hash” : “78722783c38caa25a70982b5b042074cde5d3b3a”,
“build_date” : “2021-03-18T06:17:15.410153305Z”,
“build_snapshot” : false,
“lucene_version” : “8.8.0”,
“minimum_wire_compatibility_version” : “6.8.0”,
“minimum_index_compatibility_version” : “6.0.0-beta1”
},
“tagline” : “You Know, for Search”
}
[root@zero ~]#
GUI’den de çalıştığını aşağıdaki gibi görebiliriz.
Şimdi “Kibana”yı yükleyeceğiz. Yine “zero” isimli sistemimize yükleyeceğiz. Bu amaç ile kullanacağımız komutlar aşağıdadır.
curl -L -O https://artifacts.elastic.co/downloads/kibana/kibana-7.12.0-linux-x86_64.tar.gz tar xzvf kibana-7.12.0-linux-x86_64.tar.gz cd kibana-7.12.0-linux-x86_64/ ./bin/kibana
[root@zero ~]# curl -L -O https://artifacts.elastic.co/downloads/kibana/kibana-7.12.0-linux-x86_64.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 268M 100 268M 0 0 4456k 0 0:01:01 0:01:01 –:–:– 4508k
[root@zero ~]#
[root@zero ~]# ls
anaconda-ks.cfg elasticsearch-7.12.0-x86_64.rpm initial-setup-ks.cfg kibana-7.12.0-linux-x86_64.tar.gz
[root@zero ~]#
[root@zero ~]#
[root@zero ~]# tar xzvf kibana-7.12.0-linux-x86_64.tar.gz
…
kibana-7.12.0-linux-x86_64/x-pack/plugins/xpack_legacy/target/types/
kibana-7.12.0-linux-x86_64/x-pack/plugins/xpack_legacy/target/types/server/
kibana-7.12.0-linux-x86_64/x-pack/plugins/xpack_legacy/target/types/server/index.d.ts.map
kibana-7.12.0-linux-x86_64/x-pack/plugins/xpack_legacy/target/types/server/plugin.d.ts.map
kibana-7.12.0-linux-x86_64/x-pack/plugins/xpack_legacy/target/types/server/routes/
kibana-7.12.0-linux-x86_64/x-pack/plugins/xpack_legacy/target/types/server/routes/settings.d.ts.map
[root@zero ~]#
[root@zero kibana-7.12.0-linux-x86_64]# ./bin/kibana –allow-root
log [18:36:55.081] [info][plugins-service] Plugin “osquery” is disabled.
log [18:36:55.243] [warning][config][deprecation] Config key [monitoring.cluster_alerts.email_notifications.email_address] will be required for email notifications to work in 8.0.”
…
log [18:37:01.211] [info][listening] Server running at http://localhost:5601
log [18:37:02.412] [info][server][Kibana][http] http server running at http://localhost:5601
Aşağıda “Kibana”nın çalıştığını görüyoruz.
Şimdi “Beat”leri yükleyeceğiz. “Beats”, operasyonel verileri “Elasticsearch”e göndermek için sunucularımıza ajanlar olarak kurduğunuz açık kaynaklı veri göndericileridir. “Beats”, verileri doğrudan “Elasticsearch”e veya verileri daha fazla işleyip geliştirebileceğimiz “Logstash”e gönderebilir.
Her “Beat” ayrı olarak kurulmaktadır.
Auditbeat (Audit data)
Filebeat (Log files)
Functionbeat (Cloud data)
Heartbeat (Availability monitoring)
Journalbeat (Systemd journals)
Metricbeat (Metrics)
Packetbeat (Network traffic)
Winlogbeat (Windows event logs)
[root@zero ~]# curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.12.0-x86_64.rpm
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 36.7M 100 36.7M 0 0 4292k 0 0:00:08 0:00:08 –:–:– 4522k
[root@zero ~]#
[root@zero ~]# sudo rpm -vi metricbeat-7.12.0-x86_64.rpm
warning: metricbeat-7.12.0-x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID d88e42b4: NOKEY
Verifying packages…
Preparing packages…
metricbeat-7.12.0-1.x86_64
[root@zero ~]#
[root@zero ~]# curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.12.0-x86_64.rpm
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 31.0M 100 31.0M 0 0 4061k 0 0:00:07 0:00:07 –:–:– 4474k
[root@zero ~]#
[root@zero ~]# sudo rpm -vi filebeat-7.12.0-x86_64.rpm
warning: filebeat-7.12.0-x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID d88e42b4: NOKEY
Verifying packages…
Preparing packages…
filebeat-7.12.0-1.x86_64
[root@zero ~]#
[root@zero ~]# curl -L -O https://artifacts.elastic.co/downloads/beats/heartbeat/heartbeat-7.12.0-x86_64.rpm
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 23.9M 100 23.9M 0 0 3859k 0 0:00:06 0:00:06 –:–:– 4512k
[root@zero ~]#
[root@zero ~]# sudo rpm -vi heartbeat-7.12.0-x86_64.rpm
warning: heartbeat-7.12.0-x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID d88e42b4: NOKEY
Verifying packages…
Preparing packages…
heartbeat-elastic-7.12.0-1.x86_64
[root@zero ~]#
[root@zero ~]# curl -L -O https://artifacts.elastic.co/downloads/beats/auditbeat/auditbeat-7.12.0-x86_64.rpm
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 25.4M 100 25.4M 0 0 3939k 0 0:00:06 0:00:06 –:–:– 4516k
[root@zero ~]#
[root@zero ~]# sudo rpm -vi auditbeat-7.12.0-x86_64.rpm
warning: auditbeat-7.12.0-x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID d88e42b4: NOKEY
Verifying packages…
Preparing packages…
auditbeat-7.12.0-1.x86_64
[root@zero ~]#
[root@zero ~]# curl -L -O https://artifacts.elastic.co/downloads/beats/journalbeat/journalbeat-7.12.0-x86_64.rpm
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 23.4M 100 23.4M 0 0 3874k 0 0:00:06 0:00:06 –:–:– 4508k
[root@zero ~]#
[root@zero ~]# sudo rpm -vi journalbeat-7.12.0-x86_64.rpm
warning: journalbeat-7.12.0-x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID d88e42b4: NOKEY
Verifying packages…
Preparing packages…
journalbeat-7.12.0-1.x86_64
[root@zero ~]#
[root@zero ~]# curl -L -O https://artifacts.elastic.co/downloads/beats/packetbeat/packetbeat-7.12.0-x86_64.rpm
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 25.0M 100 25.0M 0 0 3848k 0 0:00:06 0:00:06 –:–:– 4500k
[root@zero ~]#
[root@zero ~]# sudo rpm -vi packetbeat-7.12.0-x86_64.rpm
warning: packetbeat-7.12.0-x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID d88e42b4: NOKEY
Verifying packages…
Preparing packages…
packetbeat-7.12.0-1.x86_64
[root@zero ~]#
Aşağıda “metricbeat” için gerekli konfigürasyonu yaptık.
[root@zero ~]# sudo metricbeat modules enable system
Module system is already enabled
[root@zero ~]# sudo metricbeat setup -e
2021-04-11T19:03:14.524+0300 INFO instance/beat.go:660 Home path: [/usr/share/metricbeat] Config path: [/etc/metricbeat] Data path: [/var/lib/metricbeat] Logs path: [/var/log/metricbeat
[root@zero ~]# sudo service metricbeat start
Starting metricbeat (via systemctl): [ OK ]
[root@zero ~]#
Bu işlemlerin ardından, “Kibana” ekranında “metricbeat”den gelen verileri aşağıdaki şekilde görüyoruz. http://localhost:5601/app/kibana#/dashboard/Metricbeat-system-overview-ecs adresi üzerinden bu verilere ulaştık.
“Elastic Security”i verilerle beslemek için “Auditbeat” ve “Filebeat”teki modülleri etkinleştirmeniz gerekmektedir. “Elastic Security “ ile ilgili tüm modüllere https://www.elastic.co/integrations?solution=security adresinden ulaşabilirsiniz.
Auditbeat system module – Linux, macOS, Windows:
packages
processes
logins
sockets
users and groups
Auditbeat auditd module – Linux kernel audit events
Auditbeat file integrity module – Linux, macOS, Windows
Filebeat system module – Linux system logs
Filebeat Santa module – macOS security events
Winlogbeat – Windows event logs
Network verilerini almak için “Packetbeat” protokollerini ve “Filebeat” modüllerini etkinleştirmemiz gerekiyor.
Packetbeat
DNS
TLS
Other supported protocols
Filebeat
Zeek NMS module
Suricata IDS module
Iptables/Ubiquiti module
CoreDNS module
Envoy proxy module (Kubernetes)
Palo Alto Networks firewall module
Cisco ASA firewall module
AWS module
CEF module
Google Cloud module
NetFlow module
“Auditbeat” için modüllerin konfigürasyonunu yapalım. “Auditbeat” paketi ile hangi dosyaların geldiğine bakalım.
[root@zero ~]# rpm -qlp auditbeat-7.12.0-x86_64.rpm
warning: auditbeat-7.12.0-x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID d88e42b4: NOKEY
/etc/auditbeat/audit.rules.d/sample-rules.conf.disabled
/etc/auditbeat/auditbeat.reference.yml
/etc/auditbeat/auditbeat.yml
/etc/auditbeat/fields.yml
/etc/init.d/auditbeat
/lib/systemd/system/auditbeat.service
/usr/bin/auditbeat
/usr/share/auditbeat/.build_hash.txt
/usr/share/auditbeat/LICENSE.txt
/usr/share/auditbeat/NOTICE.txt
/usr/share/auditbeat/README.md
/usr/share/auditbeat/bin/auditbeat
/usr/share/auditbeat/bin/auditbeat-god
/usr/share/auditbeat/kibana/7/dashboard/auditbeat-file-integrity.json
/usr/share/auditbeat/kibana/7/dashboard/auditbeat-kernel-executions.json
/usr/share/auditbeat/kibana/7/dashboard/auditbeat-kernel-overview.json
/usr/share/auditbeat/kibana/7/dashboard/auditbeat-kernel-sockets.json
/usr/share/auditbeat/kibana/7/dashboard/auditbeat-system-host-dashboard.json
/usr/share/auditbeat/kibana/7/dashboard/auditbeat-system-login-dashboard.json
/usr/share/auditbeat/kibana/7/dashboard/auditbeat-system-overview-dashboard.json
/usr/share/auditbeat/kibana/7/dashboard/auditbeat-system-package-dashboard.json
/usr/share/auditbeat/kibana/7/dashboard/auditbeat-system-process-dashboard.json
/usr/share/auditbeat/kibana/7/dashboard/auditbeat-system-socket-dashboard.json
/usr/share/auditbeat/kibana/7/dashboard/auditbeat-system-user-dashboard.json
[root@zero ~]#
Bizim ilgi alanımız /etc/auditbeat/auditbeat.yml dosyasıdır. Aşağıda görüldüğü gibi, varsayılan dosyada herhangi bir kural açık değildir.
[root@zero ~]# which auditbeat
/usr/bin/auditbeat
[root@zero ~]# auditbeat show auditd-status
enabled 1
failure 1
pid 1042
rate_limit 0
backlog_limit 8192
lost 0
backlog 0
backlog_wait_time 60000
features 0x7f
[root@zero ~]# auditbeat show auditd-rules
No rules
[root@zero ~]#
Dosyada “- module: auditd” kısmında aşağıdaki değişiklikleri yaptım.
Aşağıda olan satırların başındaki “#”i kaldırdım.
## Identity changes.
-w /etc/group -p wa -k identity
-w /etc/passwd -p wa -k identity
-w /etc/gshadow -p wa -k identity
## Unauthorized access attempts.
-a always,exit -F arch=b64 -S open,creat,truncate,ftruncate,openat,open_by_handle_at -F exit=-EACCES -k access
-a always,exit -F arch=b64 -S open,creat,truncate,ftruncate,openat,open_by_handle_at -F exit=-EPERM -k access
Bu değişiklikler sonrası kurallarımız aşağıdaki gibi geldi.
[root@zero ~]# auditbeat show auditd-rules
-a never,exit -S all -F pid=20086
-w /etc/group -p wa -k identity
-w /etc/passwd -p wa -k identity
-w /etc/gshadow -p wa -k identity
-a always,exit -F arch=b64 -S open,truncate,ftruncate,creat,openat,open_by_handle_at -F exit=-EACCES -F key=access
-a always,exit -F arch=b64 -S open,truncate,ftruncate,creat,openat,open_by_handle_at -F exit=-EPERM -F key=access
[root@zero ~]#
“Kibana” GUI’mizin mevcut hali aşağıdaki gibidir.
Bu ekrandan, “Security”i seçtim. Ardından gelen ekrandan “Administration”ı ve bu bölümden “Endpoints” seçtim.
Fleet üzerinde işlem yapacağımız için kullanıcı ile ilgili bir konfigürasyon yapmamız gerekiyor. https://www.elastic.co/guide/en/fleet/current/fleet-troubleshooting.html dökümanı takip edilebilir.
Bu amaç ile /etc/elasticsearch/elasticsearch.yml dosyasına ve config/kibana.yml dosyalarına ekleme yapmamız gerekiyor. İlk olarak “/usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto” komutunu kullanarak aşağıdaki gibi şifrelerin otomatik oluşmasını sağlayalım.
[root@zero ~]# /usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user.
The passwords will be randomly generated and printed to the console.
Please confirm that you would like to continue [y/N]y
Changed password for user apm_system
PASSWORD apm_system = 6iqxvgWn1XVZ9waCPKXr
Changed password for user kibana_system
PASSWORD kibana_system = qff1W8TuLox9gCjfuWHc
Changed password for user kibana
PASSWORD kibana = qff1W8TuLox9gCjfuWHc
Changed password for user logstash_system
PASSWORD logstash_system = CBWDSPcMFO44FOEF5HmH
Changed password for user beats_system
PASSWORD beats_system = xaSNskN2uo2WEfZWDuBm
Changed password for user remote_monitoring_user
PASSWORD remote_monitoring_user = Yoiptq9J3Qa715NZDh8z
Changed password for user elastic
PASSWORD elastic = G9i1HvfPE7UGaOwinIWQ
[root@zero ~]#
Daha sonra;
elasticsearch.yml dosyasına
xpack.security.enabled: true
xpack.security.authc.api_key.enabled: true
satırlarını;
kibana.yml dosyasına da aşağıdaki satırları eklememiz gerekiyor.
xpack.fleet.enabled: true
xpack.fleet.agents.tlsCheckDisabled: true
xpack.encryptedSavedObjects.encryptionKey: “something_at_least_32_characters”
xpack.security.enabled: true
elasticsearch.username: elastic
elasticsearch.password: G9i1HvfPE7UGaOwinIWQ
Ardından, “elasticsearch”ü stop/start yapmalıyız.
[root@zero config]# sudo systemctl stop elasticsearch.service
[root@zero config]# sudo systemctl start elasticsearch.service
Kibana’da ctrl C ile sonlandırıp tekrar yukardaki gibi çalıştırmamız gerekiyor.
Ardından kibana bize kullanıcı ismi ve şifre soruyor. elastic kullanıcı ismi ve şifresini girdikten sonra aşağıdaki gibi fleet ekranı açılıyor. https://www.elastic.co/guide/en/security/current/install-endpoint.html linkindeki dökümana göre adımları gerçekleştirdim.
Gelen bu ekrandan, “Agent policy” olarak, “Default policy”i kabul ettim. “Integration name” için test1 yazdım ve ardından “Save integration” butonuna bastım.
Kaydetme işlemi başarıyla gerçekleştikten sonra bize aşağıdaki ekranı getiriyor. Bu ekran üzerinden ajanları/aracıları, “Endpoint Security”e kaydetmek için “Enroll Agent” seçmemiz gerekiyor.
Linux 64-BIT seçerek aşağıdaki gibi sistem üzerinde açtım.
[root@zero ~]# ls -ltr
-rw-r–r–. 1 root root 155709271 Apr 11 23:35 elastic-agent-7.12.0-linux-x86_64.tar.gz
[root@zero ~]# tar xzvf elastic-agent-7.12.0-linux-x86_64.tar.gz
…
[root@zero ~]#
https://www.elastic.co/guide/en/fleet/current/elastic-agent-installation.html dökümanını takip etmemiz gerekiyor.
Aşağıda gördüğünüz gibi ajanı sistem üzerine yükledik. Bu komut fleet GUI’de yazan komut (yukardaki görseli özellikle ekledim).
Fleet ekranından aşağıdaki gibi ajanın yüklendiğini görüyoruz.
Aşağıda, “Security App”’dan “Endpoints” olarak “zero”yu görüyoruz.
test1 “Integration Policy”i seçtiğimiz zaman Linux sistemimiz için nelerin aktif olduğunu aşağıda görebiliriz.
Bu yazımda “elasticsearch”, “kibana”, “beats” ve “endpoint security agent” kurulumlarını ve konfigürasyonlarını yaptık. “Elastic Security”i, zero Linux sistemi için aktifleştirdik. Daha sonraki yazımda, “Elastic Security”i Windows host için yapılandıracağım. Daha sonra ileri düzeyde konfigürasyon özelliklerine bakacağız. Ardından planlı bir kaç güvenlik açığı oluşturup ne şekilde alarmlar üretildiğini kontrol edeceğiz.
Asiye Yiğit 11 Nisan 2021 Pazar
Leave A Comment