Norse Goddess
Norse Goddess
Merhaba;

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.

No alt text provided for this image

Ş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.

No alt text provided for this image

Ş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.

No alt text provided for this image
No alt text provided for this image
No alt text provided for this image

“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.

No alt text provided for this image

Bu ekrandan, “Security”i seçtim. Ardından gelen ekrandan “Administration”ı ve bu bölümden “Endpoints” seçtim.

No alt text provided for this image

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.

No alt text provided for this image

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.

No alt text provided for this image

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.

No alt text provided for this image
No alt text provided for this image
No alt text provided for this image
No alt text provided for this image
No alt text provided for this image

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.

No alt text provided for this image

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).

No alt text provided for this image

Fleet ekranından aşağıdaki gibi ajanın yüklendiğini görüyoruz.

No alt text provided for this image

Aşağıda, “Security App”’dan “Endpoints” olarak “zero”yu görüyoruz.

No alt text provided for this image

test1 “Integration Policy”i seçtiğimiz zaman Linux sistemimiz için nelerin aktif olduğunu aşağıda görebiliriz.

No alt text provided for this image
No alt text provided for this image

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