Security Container ашиглан Container Protection-ийг хэрхэн байршуулах вэ?
Энэ хуудсыг AI-аар орчуулж, автоматаар шалгасан. Нарийн тохиргоо хийхээсээ өмнө англи эхтэй тулгаж болно.
Container Protection (Контейнерийн хамгаалалт) нь хост үйлдлийн системийн аюулгүй байдлын давхаргыг өргөтгөж, Linux контейнер ажлын ачаалал болон тэдгээрийн хостыг хамгаалдаг. Серверийн ажлын ачааллын Endpoint Detection and Response, Advanced Anti-Exploit, Linux-д зориулсан exploit-ийн эсрэг технологи, Antimalware шалгалт болон аюулаас урьдчилан сэргийлэх үйлчилгээг ашигладаг. Аюулгүй байдлын модуль бүрийг хүссэнээрээ идэвхжүүлж, идэвхгүй болгож болно.
- Docker суусан Linux хост дээр суулгасан, Container Protection модуль агуулсан BEST агент.
- Linux хост төхөөрөмжийн дор байршуулсан Security Container. Security Container нь Ubuntu 20.04 суурь image болон Linux-д зориулсан BEST-ийн албан ёсны Debian багц ажиллуулдаг тусгай Docker контейнер юм. Энэ нь контейнер хост дээр өндөр эрхтэй (privileged) контейнер болж ажиллана.
Энэ заавар нь Security Container ашиглан байршуулах аргыг тайлбарлана.
Security Container одоогоор дараах хязгаарлагдмал боломжуудыг санал болгодог:
- Antimalware
- EDR Sensor
- Advanced Anti-Exploit
- Container Protection
Linux хост дээр байршуулсан үед Security Container нь хостыг төдийгүй тухайн хост дээр ажиллаж буй бусад контейнерийг хамгаалах чадвартай.
Бүрэлдэхүүн хэсгүүд
Container Protection дараах бүрэлдэхүүн хэсгүүдийг ашигладаг:
- GravityZone Control Center
- Security Container
- Хамгаалалтын агент суугаагүй Linux хост
Container Protection суулгаж, тохируулах
Энэ зааварт Kubernetes кластер дээр Security Container байршуулах жишээг үзүүлнэ.
Эхлэхийн өмнө дараах урьдчилсан нөхцөлийг шалгана:
- Linux node-той Kubernetes кластер байршсан байх.
Энэ зааварт 4 node-той дараах кластер дээр Security Container байршуулна:
```
root@tcor-temp-workspace:~# kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
node1 Ready control-plane 359d v1.26.1 10.17.13.92 <none> Ubuntu 20.04.5 LTS 5.4.0-139-generic containerd://1.6.16
node2 Ready control-plane 359d v1.26.1 10.17.13.123 <none> Ubuntu 20.04.5 LTS 5.4.0-139-generic containerd://1.6.16
node3 Ready <none> 359d v1.26.1 10.17.13.93 <none> Ubuntu 20.04.5 LTS 5.4.0-139-generic containerd://1.6.16
node4 Ready <none> 359d v1.26.1 10.17.13.94 <none> Ubuntu 20.04.5 LTS 5.4.0-139-generic containerd://1.6.16
```
- GravityZone дахь шаардлагатай модулиудыг агуулсан суулгах багц.
- Таны компанийн ID.
- Container Protection боломжид хандах эрх олгосон лиценз.
Энэ боломжийг төхөөрөмж дээрээ суулгах гурван тохиолдол бий:
- GravityZone Control Center-т нэвтэрнэ.
- Зүүн талын цэснээс Network > Installation Packages (Суулгах багцууд) руу орно.
- Суулгахад ашиглах багцаа сонгоно.
Багц нь Container Protection модулийг идэвхжүүлсэн байх ёстой.
> Зөвлөмж: Багцыг засах, шинээр үүсгэх талаар Суулгах багц үүсгэх хэсгээс үзнэ үү.
- Download (Татах) дарж Security Container-ийг сонгоно.
Ингэснээр Download Security Container дэлгэц нээгдэнэ. Энэ дэлгэц нь дэмжигдсэн бүх Kubernetes орчинд Security Container суулгах скриптүүдийг өгнө.
> Анхааруулга: Одоогоор Openshift орчин нь зөвхөн Azure Kubernetes Service (AKS) болон VMware-тэй нийцтэй.
- Security Container суулгах орчныхоо хажуунд байгаа Copy (Хуулах) товчийг дарна.
- Өөрийн орчинд очиж скриптийг ажиллуулна:
```
curl -s https://download.bitdefender.com/business/k8s/bitdefender-security-container | bash -s -- --server cloudirl-ecs.gravityzone.bitdefender.com:443 --company <COMPANY_ID>
configmap/bitdefender-security-container-config configured
daemonset.apps/bitdefender-security-container created
```
> Тэмдэглэл: Энэ нь таны заасан кластер дахь хост бүр дээр Security Container-ийн нэг хуулбар байршуулна.
Нөөцүүд bitdefender-security-container нэртэй namespace дотор үүснэ.
- Бүх pod ажиллаж байгаа эсэхийг шалгана:
```
root@tcor-temp-workspace:~# kubectl get pods -n bitdefender-security-container -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
bitdefender-security-container-6kzg7 1/1 Running 0 109s 10.17.13.92 node1 <none> <none>
bitdefender-security-container-9m6bg 1/1 Running 0 109s 10.17.13.94 node4 <none> <none>
bitdefender-security-container-fv7qc 1/1 Running 0 109s 10.17.13.123 node2 <none> <none>
bitdefender-security-container-txnd6 1/1 Running 0 109s 10.17.13.93 node3 <none> <none>
```
Pod-уудыг DaemonSet объектоор байршуулдаг. Энэ нь кластерын node бүр дээр үргэлж яг нэг pod ажиллахыг хангана. Алдаа гарч pod зогсвол DaemonSet шинэ pod-ыг автоматаар үүсгэнэ.
```
root@tcor-temp-workspace:~# kubectl get daemonsets -n bitdefender-security-container
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
bitdefender-security-container 4 4 4 4 4 <none> 5m24s
```
- GravityZone консолд очиж, зүүн талын цэснээс Network хуудас руу орно. Кластерын node-ууд контейнер хостоор харагдаж байгаа эсэхийг шалгана.
- Network хуудсан дээрээ байхдаа Containers > Custom Container Groups руу орж, кластерын node бүрт контейнер групп харагдаж байгаа эсэхийг шалгана.
- Контейнер групп бүрийг нээж, бүх контейнер, мөн ялгагдах дүрсээр тэмдэглэгдсэн Security Container GravityZone-д харагдаж байгаа эсэхийг шалгана.
> Тэмдэглэл: Node дээр Kubernetes-ийн дэд бүтцийн өөр контейнерууд аль хэдийн ажиллаж байж болно.
Нэмэлт мэдээлэл харахын тулд Security Container дээр дарж болно.
- Байршуулалтыг дараах аргуудын аль нэгээр баталгаажуулна:
- Өөрийн Kubernetes орчинд kubectl get pods -n bitdefender-security-container командыг ажиллуулна.
- GravityZone консолын зүүн талын цэснээс Network хуудас руу орно.
Policies (Бодлого) нь төхөөрөмж дээрх боломжуудыг идэвхжүүлж, тохируулахад мөн ерөнхий үйл ажиллагааг тодорхойлоход ашиглагддаг.
GravityZone нь ихэнх хэрэглэгчийн хэрэгцээнд тохирсон анхдагч бодлогын тохиргоотой ирдэг. BEST агент суусны дараа эдгээр бодлого төхөөрөмжүүдэд анхдагчаар хэрэгжинэ. Анхдагч GravityZone бодлогыг өөрчилж, устгах боломжгүй.
Анхдагч бодлогын тохиргоог ашиглаад дараа тохируулж болно, эсвэл доорх алхмаар боломжоо өөрийн хэрэгцээнд тохируулж болно:
- GravityZone Control Center-т нэвтэрнэ.
- Зүүн талын цэснээс Policies хуудас руу орно.
- Дараах хоёрын аль нэгийг хийнэ:
- Шинэ бодлогыг үүсгэнэ.
- Одоо байгаа бодлогуудын нэгийг засна.
- Antimalware > On-Access хэсэгт On-access scanning сонголт идэвхтэй эсэхийг шалгаж, боломжийг тохируулна.
- Antimalware > Advanced Anti-Exploit хэсэгт Advanced Anti-Exploit сонголт идэвхтэй эсэхийг шалгаж, боломжийг тохируулна.
- Incident Sensor хэсэгт модулийг идэвхжүүлнэ.
- Бодлогоо Save (Хадгалах) хийнэ.
- Шинэ бодлого үүсгэсэн бол боломж байршсан төхөөрөмжүүдэд хэрэгжүүлнэ.
1. Зүүн талын цэснээс Network хуудас руу орно.
2. Бодлого хэрэгжүүлэх төхөөрөмжүүдээ сонгоно.
> Тэмдэглэл: Өөр өөр контейнерт өөр өөр бодлого хэрэгжүүлж болно. Эдгээр бодлого нь төхөөрөмж (контейнер хост) дээр хэрэгжиж буй бодлогоос өөр байж болно.
3. Хүснэгтийн дээд талын Actions (Үйлдэл) товчийг дараад Assign policy-г сонгоно.
4. Хэрэгжүүлэх бодлогоо сонгоно.
5. Finish дарна.
> Тэмдэглэл: Дэлгэрэнгүйг Төхөөрөмжийн бодлого оноох-оос үзнэ үү.
Хэрэв одоо байгаа бодлогыг засварласан бол тухайн боломж байршсан бүх төхөөрөмжид хэрэгжиж байгаа эсэхийг шалгана уу.
Ингэснээр боломж идэвхжиж, таны байгууллагын хэрэгцээнд хамгийн сайн тохирсон байдлаар тохирно.
Шинэ боломжийг турших
Байршуулалтыг турших
Тодорхой node дээр байршуулалт амжилттай болсныг шалгахын тулд доорх алхмуудыг хийнэ.
Тухайн node дээр байршуулсан Security Container-тэй харилцахын тулд pod дотор байрлах контейнер дотор shell нээх шаардлагатай. Shell нээгдсэний дараа бүтээгдэхүүний бүх файлтай (binary, лог болон бусад) энгийн машин дээр суулгасан юм шиг ажиллаж болно.
- Ажиллаж буй pod-ын нэгэн доторх shell-ийг нээж, бүтээгдэхүүн байгааг шалгана.
```
root@tcor-temp-workspace:~# kubectl exec -it bitdefender-security-container-6kzg7 -n bitdefender-security-container -- bash
root@node1:~# /opt/bitdefender-security-tools/bin/bdsecd -V
Bitdefender Security Tools version 7.0.5.200049 (d0fd7aa8)
```
- BEST процессууд ажиллаж байгааг шалгана.
```
root@node1:~# ps afx | grep bitdef
27820 ? S 0:00 | \_ /bin/sh -c cd /; "/opt/bitdefender-security-tools/bin/bdwatchdogd" -c "/opt/bitdefender-security-tools/etc/bdwatchdogd.json"
27821 ? S 0:00 | \_ /opt/bitdefender-security-tools/bin/bdwatchdogd -c /opt/bitdefender-security-tools/etc/bdwatchdogd.json
27822 ? Sl 0:43 | \_ /opt/bitdefender-security-tools/bin/bdsecd -c /opt/bitdefender-security-tools/etc/bdsecd.json
27920 ? Sl 0:33 | | \_ /opt/bitdefender-security-tools/bin/bdsecd -c /opt/bitdefender-security-tools/etc/bdsecd.json -m fanotify -M
27932 ? S 0:00 | | | \_ /opt/bitdefender-security-tools/bin/bdsecd -c /opt/bitdefender-security-tools/etc/bdsecd.json -m fanotify -M
27936 ? S 0:00 | | | | \_ /opt/bitdefender-security-tools/bin/bdsecd -c /opt/bitdefender-security-tools/etc/bdsecd.json -m fanotify -M
33967 ? S 0:00 | | | \_ /opt/bitdefender-security-tools/bin/bdsecd -c /opt/bitdefender-security-tools/etc/bdsecd.json -m fanotify -M
33968 ? S 0:00 | | | | \_ /opt/bitdefender-security-tools/bin/bdsecd -c /opt/bitdefender-security-tools/etc/bdsecd.json -m fanotify -M
33977 ? S 0:00 | | | \_ /opt/bitdefender-security-tools/bin/bdsecd -c /opt/bitdefender-security-tools/etc/bdsecd.json -m fanotify -M
33978 ? S 0:00 | | | | \_ /opt/bitdefender-security-tools/bin/bdsecd -c /opt/bitdefender-security-tools/etc/bdsecd.json -m fanotify -M
33995 ? S 0:00 | | | \_ /opt/bitdefender-security-tools/bin/bdsecd -c /opt/bitdefender-security-tools/etc/bdsecd.json -m fanotify -M
33996 ? S 0:00 | | | | \_ /opt/bitdefender-security-tools/bin/bdsecd -c /opt/bitdefender-security-tools/etc/bdsecd.json -m fanotify -M
34005 ? S 0:00 | | | \_ /opt/bitdefender-security-tools/bin/bdsecd -c /opt/bitdefender-security-tools/etc/bdsecd.json -m fanotify -M
34006 ? S 0:00 | | | | \_ /opt/bitdefender-security-tools/bin/bdsecd -c /opt/bitdefender-security-tools/etc/bdsecd.json -m fanotify -M
34015 ? S 0:00 | | | \_ /opt/bitdefender-security-tools/bin/bdsecd -c /opt/bitdefender-security-tools/etc/bdsecd.json -m fanotify -M
34016 ? S 0:00 | | | | \_ /opt/bitdefender-security-tools/bin/bdsecd -c /opt/bitdefender-security-tools/etc/bdsecd.json -m fanotify -M
34025 ? S 0:00 | | | \_ /opt/bitdefender-security-tools/bin/bdsecd -c /opt/bitdefender-security-tools/etc/bdsecd.json -m fanotify -M
34066 ? S 0:00 | | | \_ /opt/bitdefender-security-tools/bin/bdsecd -c /opt/bitdefender-security-tools/etc/bdsecd.json -m fanotify -M
28649 ? Sl 0:11 | | \_ /opt/bitdefender-security-tools/bin/bdsecd -c /opt/bitdefender-security-tools/etc/bdsecd.json -m antimalware -M config=/opt/bitdefender-security-tools/var/lib/modules/antimalware/update.jso.temp
29354 ? Sl 1:31 | | \_ /opt/bitdefender-security-tools/bin/bdsecd -c /opt/bitdefender-security-tools/etc/bdsecd.json -m ctc -M config=/opt/bitdefender-security-tools/var/lib/modules/ctc/update.jso.temp
27823 ? Sl 0:04 | \_ /opt/bitdefender-security-tools/bin/updated -c /opt/bitdefender-security-tools/etc/bdsecd.json
27824 ? Sl 0:04 | \_ /opt/bitdefender-security-tools/bin/epagngd -c /opt/bitdefender-security-tools/etc/bdsecd.json
```
> Тэмдэглэл: Node дээр аль хэдийн ажиллаж байсан олон контейнер байгаа тул fanotify процесс олон гарна.
- GravityZone Control Center-ийн зүүн талын цэснээс Network хуудас руу орно.
- Нэмэлт мэдээлэл харахын тулд шалгах контейнер хостоо сонгоно.
- Protection (Хамгаалалт) таб руу орж дараах мэдээллийг шалгана:
- Agent хэсэгт Primary scan engine нь Central Scan, Fallback scan engine нь Hybrid Scan байгааг шалгана.
- Overview хэсэгт Antimalware, Advanced Anti-Exploit, Container Protection, EDR Sensor боломжууд идэвхтэй байгааг шалгана.
Бүх шалгалт давсан бол байршуулалт амжилттай болсныг баталлаа. Кластерын node бүрт эдгээр алхмыг давтаж болно.
On-Access хамгаалалтыг турших
BSC дээр Antimalware On-Access шалгалтын энгийн туршилт хийж, хамгаалалт контейнер хост болон удирдлагад байгаа ажиллаж буй бүх контейнерийг хамарч байгааг баталгаажуулахын тулд доорх алхмуудыг хийнэ.
Орчин нь Kubernetes кластер тул BSC-г байршуулсантай адил (кластерын node бүрт нэг pod) өөр pod үүсгэхийн тулд DaemonSet тодорхойлолт хэрэгтэй. Дараах тодорхойлолт нь 50000 секунд ажиллах CentOS 7 контейнеруудын DaemonSet-ийг тодорхойлно.
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: centos-temp
namespace: default
labels:
name: centos-temp
spec:
selector:
matchLabels:
name: centos-temp
template:
metadata:
name: centos-temp
labels:
name: centos-temp
spec:
tolerations:
- key: node-role.kubernetes.io/master
operator: Exists
effect: NoSchedule
- key: node-role.kubernetes.io/control-plane
operator: Exists
effect: NoSchedule
containers:
- name: centos-temp
image: centos:7
command: ["sleep", "50000"]- Энэ тодорхойлолтыг кластерын гадна
centos.yamlнэртэй файлд хадгална.
- Олон DaemonSet үүсгэхийн тулд файлыг бага зэрэг өөрчилдөг дараах командыг ажиллуулна.
```
for i in {1..5}; do sed "s/centos-temp/centos-temp$i/g" centos.yaml > /tmp/centos-tmp.yaml && kubectl apply -f /tmp/centos-tmp.yaml; done
daemonset.apps/centos-temp1 created
daemonset.apps/centos-temp2 created
daemonset.apps/centos-temp3 created
daemonset.apps/centos-temp4 created
daemonset.apps/centos-temp5 created
```
- Объектууд үүсч, бүх pod ажиллах хүртэл хүлээнэ.
```
root@tcor-temp-workspace:~# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
centos-temp1-4krnb 1/1 Running 0 51s 10.233.71.61 node3 <none> <none>
centos-temp1-6fq8v 1/1 Running 0 51s 10.233.75.61 node2 <none> <none>
centos-temp1-7fhqp 1/1 Running 0 51s 10.233.102.135 node1 <none> <none>
centos-temp1-s2985 1/1 Running 0 51s 10.233.74.65 node4 <none> <none>
centos-temp2-kv7sz 1/1 Running 0 51s 10.233.71.28 node3 <none> <none>
centos-temp2-m48hx 1/1 Running 0 51s 10.233.75.4 node2 <none> <none>
centos-temp2-n2z9c 1/1 Running 0 51s 10.233.74.127 node4 <none> <none>
centos-temp2-pwc69 1/1 Running 0 51s 10.233.102.133 node1 <none> <none>
centos-temp3-b8vdm 1/1 Running 0 50s 10.233.75.26 node2 <none> <none>
centos-temp3-cxjrz 1/1 Running 0 50s 10.233.74.66 node4 <none> <none>
centos-temp3-p8qxs 1/1 Running 0 50s 10.233.71.26 node3 <none> <none>
centos-temp3-ztqrb 1/1 Running 0 50s 10.233.102.157 node1 <none> <none>
centos-temp4-4chdk 1/1 Running 0 50s 10.233.75.21 node2 <none> <none>
centos-temp4-8fqtx 1/1 Running 0 50s 10.233.74.121 node4 <none> <none>
centos-temp4-cqchs 1/1 Running 0 50s 10.233.71.21 node3 <none> <none>
centos-temp4-lptjt 1/1 Running 0 50s 10.233.102.136 node1 <none> <none>
centos-temp5-8xx8z 1/1 Running 0 50s 10.233.75.62 node2 <none> <none>
centos-temp5-hbdtk 1/1 Running 0 49s 10.233.102.139 node1 <none> <none>
centos-temp5-kfx7t 1/1 Running 0 50s 10.233.74.92 node4 <none> <none>
centos-temp5-lzq44 1/1 Running 0 50s 10.233.71.60 node3 <none> <none>
```
- Боломжийг кластерын нэг node дээр турших:
1. GravityZone-ийн зүүн талын цэснээс Network хуудас руу орж, node-ийн контейнер группт 5 шинэ контейнер нэмэгдсэн эсэхийг шалгана.
2. Контейнер хост дээр хамгаалагдсан замд хортой программын дээж файл (жишээ нь EICAR мөр агуулсан файл) үүсгэнэ.
```
root@node3:~# echo 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' > /home/test1.txt
```
Antimalware On-Access хамгаалалт EICAR файлыг автоматаар илрүүлж, хорио (Quarantine)-д шилжүүлнэ.
3. Өмнө нь байршуулсан контейнеруудын нэгний дотор хамгаалагдсан замд хортой программын дээж үүсгэнэ.
```
root@tcor-temp-workspace:~# kubectl exec -it centos-temp5-lzq44 -- bash
[root@centos-temp5-lzq44 /]# echo 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' > /home/test2.txt
```
Antimalware On-Access хамгаалалт EICAR файлыг автоматаар илрүүлж, хорио (Quarantine)-д шилжүүлнэ.
4. GravityZone-ийн зүүн талын цэснээс Incidents хуудас руу орж, Antimalware боломжоос үүдсэн 2 инцидент (test1.txt, test2.txt тус бүрд нэг) байгааг шалгана.
- Одоо туршилтад үүсгэсэн pod-уудаа устгаж болно.
Бүтээгдэхүүний шинэчлэлт
Linux v7-д зориулсан BEST-ийн багцын хувилбараас ялгаатай нь Security Container бүтээгдэхүүний шинэчлэлтийг дэмждэггүй. Шинэ image хувилбар гарахад Security Container-ийг дахин байршуулах шаардлагатай.
Аюулгүй байдлын агуулгын шинэчлэлт
Аюулгүй байдлын агуулгыг дараах аргуудын аль нэгээр шинэчилнэ:
- Контейнер хост дээр хэрэгжиж буй GravityZone бодлогод автомат сигнатурын шинэчлэлтийг тохируулж идэвхжүүлнэ.
- GravityZone-оос контейнер хост дээр Update даалгавар үүсгэж гараар шинэчилнэ.
Энэ хуудсанд гарсан нэр томъёо
- Control Center
- GravityZone-ийн удирдлагын вэб консол
- Endpoint
- Хамгаалж буй компьютер, сервер, виртуал машин
- Policy
- Хамгаалалтын тохиргооны багц; төхөөрөмж эсвэл бүлэгт оноодог
- Network
- Таны байгууллагын бүх төхөөрөмжийн жагсаалт (Inventory)
- Quarantine
- Хорио: сэжигтэй файлыг тусгаарлаж хадгалдаг газар
- Incidents
- Илэрсэн халдлага, түүний алхмуудын бүртгэл (EDR/XDR)
- Installation package
- Агент суулгах файл; Control Center-оос үүсгэнэ
