您好,登錄后才能下訂單哦!
這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)怎么在Security中安裝 Elastic SIEM 與 EDR,文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
安裝 Elasticsearch
首先安裝 transport-https
sudo apt-get install curl apt-transport-https
接下來(lái),將 Elastic 倉(cāng)庫(kù)添加到你的源列表。
curl -s https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list
然后更新。
sudo apt update
現(xiàn)在安裝 Elasticsearch
sudo apt-get install elasticsearch
對(duì)于中國(guó)有的開(kāi)發(fā)者來(lái)說(shuō),上面的安裝步驟可能會(huì)很慢,一種辦法就是直接到網(wǎng)址 https://www.elastic.co/downloads/ 直接下載 Elasticsearch 的 deb 安裝包,并按如下的命令來(lái)進(jìn)行安裝:
sudo dpkg -i elasticsearch-7.11.1-amd64.deb
安裝 Elasticsearch 之后,我們需要對(duì)其配置文件進(jìn)行幾處更改。 該文件位于 /etc/elasticsearch/elasticsearch.yml 中。要訪問(wèn)此文件,你需要 root 特權(quán)。
首先,我們需要更改 network.host 值。 其默認(rèn)設(shè)置為localhost。 將其更改為安裝了 Elasticsearch 的主機(jī)的 IP 地址。
cluster.name: demo-elk node.name: elk-1 network.host: 0.0.0.0 discovery.type: single-node
現(xiàn)在,你應(yīng)該準(zhǔn)備啟動(dòng) Elasticsearch 并檢查它是否已正確啟動(dòng)。
sudo service elasticsearch start
我們可以使用如下的命令來(lái)查看 elasticsearch 服務(wù)的狀態(tài):
service elasticsearch status
如上所示,如果我們看到 Elasticsearch 服務(wù)的狀態(tài)為 active,則表明它的安裝是成功的。
你還可以通過(guò)運(yùn)行以下命令來(lái)檢查 Elasticsearch 是否可從其他主機(jī)訪問(wèn):
curl http://<elasticsearch_ip>:9200
輸出應(yīng)類(lèi)似于以下內(nèi)容:
運(yùn)行以下命令以安裝 Kibana。
sudo apt install kibana
對(duì)于中國(guó)有的開(kāi)發(fā)者來(lái)說(shuō),上面的安裝步驟可能會(huì)很慢,一種辦法就是直接到網(wǎng)址 https://www.elastic.co/downloads/ 直接下載 Kibana 的 deb 安裝包,并按如下的命令來(lái)進(jìn)行安裝:
sudo dpkg -i kibana-7.11.1-amd64.deb
一旦安裝完成后,編輯 /etc/kibana/kibana.yml 并指定托管 Kibana 的 IP 地址。
server_port: 5601 server_host: 0.0.0.0 server_name: demo-kibana
在上面,我們可以只修改 server_host 即可,其它的我們可以使用默認(rèn)的配置即可。設(shè)置 server_host 為 0.0.0.0 為的是我們可以在其它的機(jī)器上訪問(wèn)當(dāng)前的 Kibana。我們可以使用 Ubuntu 機(jī)器的 IP 地址加上端口 5601 就可以訪問(wèn)了。
啟動(dòng) Kibana 并檢查其狀態(tài)。
sudo service kibana start sudo service kibana status
如果我們能看到狀態(tài)為 active,則表明我們的安裝是成功。我們可以通過(guò)另外一個(gè)電腦來(lái)訪問(wèn) Kibana:
你如果能看到上面的畫(huà)面,則表明你的安裝是成功的。
Filebeat 用于將數(shù)據(jù)從設(shè)備傳送到 Elasticsearch。 對(duì)于不同的產(chǎn)品,有許多不同的 Filebeat 模塊,它們以所需的格式將日志和數(shù)據(jù)發(fā)送到 Elasticsearch。 在此示例中,我們將模塊用于 Zeek,但是 Elastic 也擴(kuò)展了其對(duì)其他產(chǎn)品的支持,包括 AWS,CrowdStrike,ZScaler 等。
目前,我們只打算在運(yùn)行 Zeek 的主機(jī)上安裝 Filebeat,我們稍后會(huì)對(duì)其進(jìn)行配置。
sudo apt-get install filebeat
對(duì)于中國(guó)有的開(kāi)發(fā)者來(lái)說(shuō),上面的安裝步驟可能會(huì)很慢,一種辦法就是直接到網(wǎng)址 https://www.elastic.co/downloads/ 直接下載 Filebeat 的 deb 安裝包,并按如下的命令來(lái)進(jìn)行安裝:
sudo dpkg -i filebeat-7.11.1-amd64.deb
現(xiàn)在,我們準(zhǔn)備著手安裝 Zeek。 首先,我們需要安裝所有必備組件。 通過(guò)運(yùn)行以下命令來(lái)執(zhí)行此操作。
sudo apt-get install cmake make gcc g++ flex bison libpcap-dev libssl-dev python-dev swig zlib1g-dev
接下來(lái),我們需要為 Zeek 創(chuàng)建工作目錄,由于某些原因,Zeek 在安裝時(shí)默認(rèn)不執(zhí)行此操作。
sudo mkdir /opt/zeek sudo chown -R root:root /opt/zeek sudo chmod 740 /opt/zeek
接下來(lái)下載帶有 GIT 的 Zeek
git clone --recursive https://github.com/zeek/zeek
等下載完文件,進(jìn)入 zeek 下載目錄。 然后將我們先前創(chuàng)建的 /opt/zeek 目錄設(shè)置為安裝目錄。
cd /home/$USER/zeek ./configure --prefix=/opt/zeek
在上面,我們假設(shè)你把 zeek 的文件 clone 到 home 目錄下的 zeek 目錄?,F(xiàn)在,我們準(zhǔn)備安裝 Zeek,運(yùn)行以下 make 命令,然后將其保留安裝(這可能需要一些時(shí)間)
make sudo make install
接下來(lái),我們需要添加 PATH 環(huán)境變量
export PATH=/opt/zeek/bin:$PATH
我們可以在 /opt/zeek/etc 找到一個(gè)叫做 node.cfg 的配置文件。
# pwd /opt/zeek/etc root@liuxgu:/opt/zeek/etc# ls networks.cfg node.cfg zeekctl.cfg zkg
這個(gè)文件包含對(duì) zeek 的節(jié)點(diǎn)配置。我們需要配置我們的 interface:
node.cfg
上面的 interface, 我們可以通過(guò) ifconfig 命令來(lái)獲得本機(jī)的接口。另外,我們需要安裝 sendmail,否則在運(yùn)行 zeek 時(shí)會(huì)發(fā)生無(wú)法找到 sendmail 的錯(cuò)誤。
sudo apt-get install sendmail
現(xiàn)在,我們準(zhǔn)備運(yùn)行下面的命令來(lái)部署 Zeek。我們需要在 root 賬號(hào)下運(yùn)行:
zeekctl deploy
我們可以在 /opt/zeek/logs 目錄里發(fā)現(xiàn)日志?!癱urrent” 目錄保存當(dāng)天的日志,而前幾天的日志則存檔到其自己的目錄中。 還有一個(gè)針對(duì)不同數(shù)據(jù)類(lèi)型的日志文件,例如 DNS 連接,HTTP 連接等。
讓我們檢查DNS日志
# pwd /opt/zeek/logs root@liuxgu:/opt/zeek/logs# ls 2021-02-24 current
就目前而言,我們?cè)?ELK 部署中擁有的唯一功能是日志提取和可視化。 我們可以將日志提取到 Elastisearch 中,并通過(guò) Kibana 可視化來(lái)處理數(shù)據(jù),但是缺少 SIEM 的核心功能。 我們無(wú)法建立檢測(cè)或用例。 此功能不是“開(kāi)箱即用”的,要使用它,我們必須首先在所有不同節(jié)點(diǎn)之間配置安全性。 X-Pack 是 Elastic 軟件包,它基本上負(fù)責(zé)所有 Elastic Security 功能。
所需的一個(gè)關(guān)鍵組件是配置每個(gè)節(jié)點(diǎn)之間的 SSL 連接,可以通過(guò)多種方法進(jìn)行。 我們也將使用 X-Pack 來(lái)執(zhí)行此操作。
首先,在安裝了 Elasticsearch 的主機(jī)上,我們需要?jiǎng)?chuàng)建一個(gè) YAML 文件 /usr/share/elasticsearch/instances.yml,它將包含我們要使用 SSL 保護(hù)的不同節(jié)點(diǎn)/實(shí)例。 就我而言,我只有 Elasticsearch,Kibana 和 Zeek。
/usr/share/elasticsearch/instances.yml
instances: - name: "elasticsearch" ip: - "192.168.0.4" - name: "kibana" ip: - "192.168.0.4" - name: "zeek" ip: - "192.168.0.4"
接下來(lái),我們將使用 Elastic 的 certutil 工具為我們的實(shí)例生成證書(shū)。 這也將生成一個(gè)證書(shū)頒發(fā)機(jī)構(gòu)(Certificate Authority)。
/usr/share/elasticsearch/bin/elasticsearch-certutil cert ca --pem --in instances.yml --out certs.zip
這將為我們的每個(gè)實(shí)例創(chuàng)建一個(gè) .crt 和 .key 文件,以及一個(gè) ca.crt 文件。你可以使用 unzip 來(lái)解壓縮不同的證書(shū)。
unzip /usr/share/elasticsearch/certs.zip -d /usr/share/elasticsearch/
現(xiàn)在我們有了我們的證書(shū),我們可以配置每個(gè)實(shí)例。
首先,我們需要?jiǎng)?chuàng)建一個(gè)文件夾將你的證書(shū)存儲(chǔ)在我們的 Elasticsearch 主機(jī)上。
mkdir /etc/elasticsearch/certs/ca -p
接下來(lái),我們需要將解壓縮的證書(shū)復(fù)制到其相關(guān)文件夾中并設(shè)置正確的權(quán)限。
cp ca/ca.crt /etc/elasticsearch/certs/ca cp elasticsearch/elasticsearch.crt /etc/elasticsearch/certs cp elasticsearch/elasticsearch.key /etc/elasticsearch/certs chown -R elasticsearch: /etc/elasticsearch/certs chmod -R 770 /etc/elasticsearch/cert
接下來(lái),我們需要將 SSL 配置添加到我們的 /etc/elasticsearch/elasticsearch.yml 文件中。
/etc/elasticsearch/elasticsearch.yml
# Transport layer xpack.security.transport.ssl.enabled: true xpack.security.transport.ssl.verification_mode: certificate xpack.security.transport.ssl.key: /etc/elasticsearch/certs/elasticsearch.key xpack.security.transport.ssl.certificate: /etc/elasticsearch/certs/elasticsearch.crt xpack.security.transport.ssl.certificate_authorities: [ "/etc/elasticsearch/certs/ca/ca.crt" ] # HTTP layer xpack.security.http.ssl.enabled: true xpack.security.http.ssl.verification_mode: certificate xpack.security.http.ssl.key: /etc/elasticsearch/certs/elasticsearch.key xpack.security.http.ssl.certificate: /etc/elasticsearch/certs/elasticsearch.crt xpack.security.http.ssl.certificate_authorities: [ "/etc/elasticsearch/certs/ca/ca.crt" ]
現(xiàn)在重新啟動(dòng) Elasticsearch。
service elasticsearch restart
現(xiàn)在,我們將重復(fù)此過(guò)程,但這一次是 Kibana。 Kibana 的配置略有不同。同樣,將你的證書(shū)移動(dòng)到正確的文件夾并設(shè)置正確的權(quán)限。
注意:以下步驟假定你正在運(yùn)行獨(dú)立的 ELK 配置。 如果你正在運(yùn)行分布式部署,則需要將證書(shū)移至適當(dāng)?shù)闹鳈C(jī)。
mkdir /etc/kibana/certs/ca -p cp ca/ca.crt /etc/kibana/certs/ca cp kibana/kibana.crt /etc/kibana/certs cp kibana/kibana.key /etc/kibana/certs chown -R kibana: /etc/kibana/certs chmod -R 770 /etc/kibana/certs
接下來(lái),在文件 /etc/kibana/kibana.yml 中,在 Elasticsearch 和 Kibana 之間添加SSL設(shè)置。
/etc/kibana/kibana.yml
# The URLs of the Elasticsearch instances to use for all your queries. elasticsearch.hosts: ["https://192.168.0.4:9200"] elasticsearch.ssl.certificateAuthorities: ["/etc/kibana/certs/ca/ca.crt"] elasticsearch.ssl.certificate: "/etc/kibana/certs/kibana.crt" elasticsearch.ssl.key: "/etc/kibana/certs/kibana.key"
然后在同一文件中,在 Kibana 和瀏覽器之間添加配置。
# These settings enable SSL for outgoing requests from the Kibana server to the browser. server.ssl.enabled: true server.ssl.certificate: "/etc/kibana/certs/kibana.crt" server.ssl.key: "/etc/kibana/certs/kibana.key"
然后,重新啟動(dòng) Kibana。
service kibana restart
下一步,我們需要為運(yùn)行 Zeek 和 Beats 的主機(jī)配置 SSL。 如果你沒(méi)有運(yùn)行 Zeek 或其他使用 Filebeats 模塊的產(chǎn)品,例如 Suricata,Windows Event Log 等,則可以跳過(guò)此步驟。
首先將證書(shū)復(fù)制到運(yùn)行 Zeek 的主機(jī)上,然后使用正確的權(quán)限創(chuàng)建證書(shū)目錄。 您需要同時(shí)復(fù)制 Zeek 證書(shū)和 CA 證書(shū)。
mkdir /etc/filebeat/certs/ca -p cp ca/ca.crt /etc/filebeat/certs/ca cp zeek/zeek.crt /etc/filebeat/certs cp zeek/zeek.key /etc/filebeat/certs chmod 770 -R /etc/filebeat/certs
接下來(lái),我們需要將更改添加到 /etc/filebeat/filebeat.yml。
首先,我們的 Elasticsearch 配置設(shè)置。
# Elastic Output output.elasticsearch.hosts: ['192.168.0.4:9200'] output.elasticsearch.protocol: https output.elasticsearch.ssl.certificate: "/etc/filebeat/certs/zeek.crt" output.elasticsearch.ssl.key: "/etc/filebeat/certs/zeek.key" output.elasticsearch.ssl.certificate_authorities: ["/etc/filebeat/certs/ca/ca.crt"]
然后是我們的 Kibana 配置設(shè)置。
setup.kibana: host: "https://192.168.0.4:5601" ssl.enabled: true ssl.certificate_authorities: ["/etc/filebeat/certs/ca/ca.crt"] ssl.certificate: "/etc/filebeat/certs/zeek.crt" ssl.key: "/etc/filebeat/certs/zeek.key"
然后重新啟動(dòng) Filebeat。
service filebeat restart
現(xiàn)在,你可以通過(guò)運(yùn)行以下命令來(lái)檢查 FileBeats 是否可以連接到 Elasticsearch。 一切都應(yīng)該返回“OK”。
filebeat test output
我們還需要向 Elasticsearch 添加身份驗(yàn)證。 這很容易做到。 首先通過(guò)編輯 /etc/elasticsearch/elasticsearch.yml 啟用安全
/etc/elasticsearch/elasticsearch.yml
# X-Pack Setting xpack.security.enabled: true
設(shè)置完上面,我們必須重新啟動(dòng) Elasticsearch:
service elasticsearch restart
接下來(lái),我們需要為所有內(nèi)置的 Elasticsearch 角色和用戶(hù)生成密碼。 Elasticsearch 附帶了一個(gè)工具來(lái)執(zhí)行此操作。 運(yùn)行以下命令以生成這些密碼并將其保存在安全的地方(密碼管理器)。
/usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive
為了方便,我將把所有的賬號(hào)的密碼都設(shè)置為 password。
我們可以通過(guò)另外一個(gè)機(jī)器來(lái)訪問(wèn) ubuntu 機(jī)器 https://ubuntu.9200。當(dāng) Chrome 瀏覽器上出現(xiàn)如下的畫(huà)面時(shí):
我們?cè)诋?dāng)前的頁(yè)面打入如下的字符串:
thissisunsafe
我們就可以看到:
我們把用戶(hù)名及密碼 elastic/password 輸入進(jìn)去即可:
針對(duì) Kibana,我們需要修改 /etc/kibana/kibana.yml 文件,并把相應(yīng)的用戶(hù)名及密碼填入:
/etc/kibana/kibana.yml
elasticsearch.username: "kibana_system" elasticsearch.password: "password"
修改完后,我們必須重新啟動(dòng) Kibana:
service kibana restart
我們也可以按照同樣的方法來(lái)啟動(dòng) Kibana https://ubuntu:5601。
接下來(lái),將新創(chuàng)建的 Elasticsearch 憑證添加到我們的 Filebeat 配置文件中:
/etc/filebeat/filebeat.yml
# Elastic Credentials output.elasticsearch.username: "elastic" output.elasticsearch.password: "Your_Elastic_Pass_Here"
我們需要重新啟動(dòng) Filebeat:
service filebeat restart
添加 Zeek 數(shù)據(jù)到 Elasticsearch
我們可以通過(guò) Filebeat 把 Zeek 的日志信息導(dǎo)入到 Elasticsearch 中去。首先,我們必須啟動(dòng) zeek 模塊。我們打開(kāi) Kibana 的界面:
里面有詳細(xì)的步驟介紹如何配置 Filebeat。首先,我們需要使用如下的命令來(lái)啟動(dòng) zeek 模塊:
sudo filebeat modules enable zeek
$ sudo filebeat modules enable zeek Enabled zeek
完成后,我們需要配置 Zeek 將 Zeek 日志轉(zhuǎn)換為 JSON 格式。 首先,停止 Zeek 的運(yùn)行。然后將 @load policy / tuning / json-logs.zeek 行編輯到文件 /opt/zeek/share/zeek/site/local.zeek
保存好文件,并重新啟動(dòng) zeek:
zeekctl deploy
現(xiàn)在檢查日志是否為 JSON 格式。 即使你不熟悉 JSON,日志的格式也應(yīng)該與以前明顯不同。
tail -f /opt/zeek/logs/current/dns.log
然后編輯配置文件 /etc/filebeat/modules.d/zeek.yml。 我們需要指定 Zeek 創(chuàng)建的每個(gè)單獨(dú)的日志文件,或者至少指定我們希望 Elasticsearch 提取的日志文件。 對(duì)于 /opt/zeek/logs/ 文件夾中的每個(gè)日志文件,必須定義 “current” 日志的路徑以及以前的任何日志,如下所示。
dns: enabled: true var.paths: [ "/opt/zeek/logs/current/dns.log", "/opt/zeek/logs/*.dns.json" ]
如果 opt 文件夾中有一些默認(rèn)日志文件(例如 capture_loss.log),你不希望 Elasticsearch 提取這些文件,則只需將 “enabled” 字段設(shè)置為 false。 重要的是,將在 /opt/zeek/logs中沒(méi)有日志文件的所有日志源設(shè)置為 enabled: false,否則會(huì)收到錯(cuò)誤消息。 此外,請(qǐng)務(wù)必注意間距,因?yàn)?YML 文件對(duì)空格敏感。在我的 current 目錄中我們可以看到如下的文件:
root@liuxgu:/opt/zeek/logs/current# ls capture_loss.log http.log ntp.log ssh.log weird.log conn.log known_services.log packet_filter.log stats.log dhcp.log loaded_scripts.log reporter.log stderr.log dns.log notice.log software.log stdout.log
那么我們的 /etc/filebeat/modules.d/zeek.yml 最終格式為:
json
完成后,你應(yīng)該可以很好地啟動(dòng) Filebeat 并啟動(dòng)該服務(wù)。
sudo filebeat setup sudo service filebeat restart
我們將在 Kibana 中看到如下的信息:
點(diǎn)擊上面的 Zeek Overview 按鈕, 我們將看到 Zeek 的信息:
如果你轉(zhuǎn)到 SIEM 應(yīng)用程序中的網(wǎng)絡(luò)儀表板,則應(yīng)該看到使用 Zeek!數(shù)據(jù)填充的不同儀表板! 這里的儀表板很好地概述了從網(wǎng)絡(luò)中收集的一些數(shù)據(jù)。
一旦完成上述所有步驟,并將數(shù)據(jù)提取到 Elasticsearch 中,你可能會(huì)注意到仍然無(wú)法創(chuàng)建檢測(cè)。
點(diǎn)擊上面的 View document。這是我們最后要完成的步驟。 編輯你的 Kibana 配置件 /etc/kibana/kibana.yml,然后添加 xpack.encryptedSavedObjects.encryptionKey。 我相信這可以是任何32個(gè)字符串。
xpack.security.enabled: true # xpack.fleet.agents.tlsCheckDisabled: true xpack.encryptedSavedObjects.encryptionKey: "something_at_least_32_characters"
重新啟動(dòng) Kibana:
service kibana restart
經(jīng)過(guò)上面的設(shè)置后,我們終于可以創(chuàng)建檢測(cè)規(guī)則了:
現(xiàn)在,我們準(zhǔn)備安裝 Elastic endpoint。首先,通過(guò)單擊側(cè)面菜單上管理標(biāo)簽下的鏈接,導(dǎo)航到 “Fleet” 儀表板。
如果我們現(xiàn)在將代理安裝到 Windows 主機(jī)上,則會(huì)收到一個(gè)錯(cuò)誤消息,即我們的自簽名證書(shū)來(lái)自不受信任的來(lái)源,并且代理安裝將失敗。因此,我們需要做的是將我們的 CA 證書(shū)添加為 Windows 主機(jī)上的受信任證書(shū)。
首先在 Windows 搜索欄中搜索 “本地安全策略”。 然后轉(zhuǎn)到 安全設(shè)置 > 公鑰策略 > 證書(shū)路徑驗(yàn)證設(shè)置
然后,選中“定義這些策略設(shè)置”,然后選中 “允許使用用戶(hù)信任的根CA來(lái)驗(yàn)證證書(shū)” 和 “允許用戶(hù)信任對(duì)等信任證書(shū)” 選項(xiàng)(如果尚未選中)。
最后,選中 “第三方根CA 和企業(yè)根CA”。單擊 “應(yīng)用”,然后單擊 “確定”。
接下來(lái)在 Windows 搜索欄中搜索 certmgr.msc。
然后轉(zhuǎn)到 “受信任的根證書(shū)頒發(fā)機(jī)構(gòu)” > “證書(shū)”,右鍵單擊空白處的任意位置,然后選擇 “所有任務(wù)” > “導(dǎo)入”
然后簡(jiǎn)單地按照向?qū)Р僮?,并選擇我們之前創(chuàng)建的 ca.crt。
上述就是小編為大家分享的怎么在Security中安裝 Elastic SIEM 與 EDR了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。