Cylance PROTECT ๋ก๊ทธ ์์ง
์ด ๋ฌธ์์์๋ Bindplane์ ์ฌ์ฉํ์ฌ Cylance PROTECT ๋ก๊ทธ๋ฅผ Google Security Operations์ ์์งํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค. Logstash ํ์ ์ฝ๋๋ Cylance PROTECT syslog ๋ฉ์์ง๋ฅผ ํตํฉ ๋ฐ์ดํฐ ๋ชจ๋ธ (UDM)๋ก ๋ณํํฉ๋๋ค. syslog ๋ฉ์์ง์์ ํ๋๋ฅผ ์ถ์ถํ๊ณ , ์ ๊ทํํ๊ณ , UDM ํ๋์ ๋งคํํ๊ณ , ์ํ ์ฌ๊ฐ๋ ๋ฐ ์นดํ ๊ณ ๋ฆฌ ์ ๋ณด๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ฐํฉ๋๋ค.
์์ํ๊ธฐ ์ ์
๋ค์ ๊ธฐ๋ณธ ์๊ฑด์ด ์ถฉ์กฑ๋์๋์ง ํ์ธํฉ๋๋ค.
- Google SecOps ์ธ์คํด์ค
- Windows 2016 ์ด์ ๋๋
systemd
๊ฐ ์ค์น๋ Linux ํธ์คํธ - ํ๋ก์ ๋ค์์ ์คํํ๋ ๊ฒฝ์ฐ ๋ฐฉํ๋ฒฝ ํฌํธ๊ฐ ์ด๋ ค ์์
- Cylance PROTECT์ ๋ํ ์ก์ธ์ค ๊ถํ
Google SecOps ์์ง ์ธ์ฆ ํ์ผ ๊ฐ์ ธ์ค๊ธฐ
- Google SecOps ์ฝ์์ ๋ก๊ทธ์ธํฉ๋๋ค.
- SIEM ์ค์ > ์์ง ์์ด์ ํธ๋ก ์ด๋ํฉ๋๋ค.
- ์์ง ์ธ์ฆ ํ์ผ์ ๋ค์ด๋ก๋ํฉ๋๋ค. Bindplane์ด ์ค์น๋ ์์คํ ์ ํ์ผ์ ์์ ํ๊ฒ ์ ์ฅํฉ๋๋ค.
Google SecOps ๊ณ ๊ฐ ID ๊ฐ์ ธ์ค๊ธฐ
- Google SecOps ์ฝ์์ ๋ก๊ทธ์ธํฉ๋๋ค.
- SIEM ์ค์ > ํ๋กํ๋ก ์ด๋ํฉ๋๋ค.
- ์กฐ์ง ์ธ๋ถ์ ๋ณด ์น์ ์์ ๊ณ ๊ฐ ID๋ฅผ ๋ณต์ฌํ์ฌ ์ ์ฅํฉ๋๋ค.
Bindplane ์์ด์ ํธ ์ค์น
Windows ์ค์น
- ๋ช ๋ น ํ๋กฌํํธ ๋๋ PowerShell์ ๊ด๋ฆฌ์๋ก ์ฝ๋๋ค.
๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Linux ์ค์น
- ๋ฃจํธ ๋๋ sudo ๊ถํ์ผ๋ก ํฐ๋ฏธ๋์ ์ฝ๋๋ค.
๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
์ถ๊ฐ ์ค์น ๋ฆฌ์์ค
์ถ๊ฐ ์ค์น ์ต์ ์ ์ค์น ๊ฐ์ด๋๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Syslog๋ฅผ ์์งํ์ฌ Google SecOps๋ก ์ ์กํ๋๋ก Bindplane ์์ด์ ํธ ๊ตฌ์ฑ
- ๊ตฌ์ฑ ํ์ผ์ ์ก์ธ์คํฉ๋๋ค.
config.yaml
ํ์ผ์ ์ฐพ์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก Linux์์๋/etc/bindplane-agent/
๋๋ ํฐ๋ฆฌ์ ์๊ณ Windows์์๋ ์ค์น ๋๋ ํฐ๋ฆฌ์ ์์ต๋๋ค.- ํ
์คํธ ํธ์ง๊ธฐ (์:
nano
,vi
, ๋ฉ๋ชจ์ฅ)๋ฅผ ์ฌ์ฉํ์ฌ ํ์ผ์ ์ฝ๋๋ค.
๋ค์๊ณผ ๊ฐ์ด
config.yaml
ํ์ผ์ ์์ ํฉ๋๋ค.receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds_file_path: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization ingestion_labels: log_type: 'CYLANCE_PROTECT' raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
์ธํ๋ผ์ ํ์ํ ๋๋ก ํฌํธ์ IP ์ฃผ์๋ฅผ ๋ฐ๊ฟ๋๋ค.
<customer_id>
๋ฅผ ์ค์ ๊ณ ๊ฐ ID๋ก ๋ฐ๊ฟ๋๋ค.Google SecOps ์์ง ์ธ์ฆ ํ์ผ ๊ฐ์ ธ์ค๊ธฐ ์น์ ์์ ์ธ์ฆ ํ์ผ์ด ์ ์ฅ๋ ๊ฒฝ๋ก๋ก
/path/to/ingestion-authentication-file.json
๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.
Bindplane ์์ด์ ํธ๋ฅผ ๋ค์ ์์ํ์ฌ ๋ณ๊ฒฝ์ฌํญ ์ ์ฉ
Linux์์ Bindplane ์์ด์ ํธ๋ฅผ ๋ค์ ์์ํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
sudo systemctl restart bindplane-agent
Windows์์ Bindplane ์์ด์ ํธ๋ฅผ ๋ค์ ์์ํ๋ ค๋ฉด ์๋น์ค ์ฝ์์ ์ฌ์ฉํ๊ฑฐ๋ ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ฉด ๋ฉ๋๋ค.
net stop BindPlaneAgent && net start BindPlaneAgent
Cylance Protect์์ Syslog ๊ตฌ์ฑ
- Cylance ๊ด๋ฆฌ ์ฝ์์ ๋ก๊ทธ์ธํฉ๋๋ค.
- ์ค์ > ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ์ด๋ํฉ๋๋ค.
- Syslog/SIEM ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํฉ๋๋ค.
- ๋ชจ๋ ์ด๋ฒคํธ๋ฅผ ์ ํํฉ๋๋ค.
- ๋ค์ ๊ตฌ์ฑ ์ธ๋ถ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค.
- SIEM: Syslog๋ฅผ ์ ํํฉ๋๋ค.
- ํ๋กํ ์ฝ: UDP๋ฅผ ์ ํํฉ๋๋ค.
- 2KB ์ด๊ณผ ๋ฉ์์ง ํ์ฉ ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํฉ๋๋ค.
- IP/๋๋ฉ์ธ: Bindplane ์์ด์ ํธ IP ์ฃผ์๋ฅผ ์ ๋ ฅํฉ๋๋ค.
- ํฌํธ: Bindplane ์์ด์ ํธ ํฌํธ ๋ฒํธ๋ฅผ ์
๋ ฅํฉ๋๋ค (์: UDP์ ๊ฒฝ์ฐ
514
). - ๊ธฐ๋ฅ: ์ ํ๋ฆฌ์ผ์ด์ ๋ก๊น ์ ํ์ ์ ํํฉ๋๋ค.
- Test Connection(์ฐ๊ฒฐ ํ ์คํธ)์ ํด๋ฆญํฉ๋๋ค.
- ์ ์ฅ์ ํด๋ฆญํฉ๋๋ค.
UDM ๋งคํ ํ ์ด๋ธ
๋ก๊ทธ ํ๋ | UDM ๋งคํ | ๋ ผ๋ฆฌ |
---|---|---|
์์ด์ ํธ ๋ฒ์ | metadata.product_version | Agent Version: <value> ์์ ์ถ์ถ๋ ๊ฐ |
Cylance ์ ์ | security_result.severity_details | Cylance Score: <value> ์์ ์ถ์ถ๋ ๊ฐ |
security_result.severity | ๋ค์ ๋ก์ง์ ๋ฐ๋ผ ๋งคํ๋ฉ๋๋ค. - ๋์: Cylance ์ ์๊ฐ 67๋ณด๋ค ํฐ ๊ฒฝ์ฐ - ์ค๊ฐ: Cylance ์ ์๊ฐ 33๋ณด๋ค ํฐ ๊ฒฝ์ฐ - ๋ฎ์: Cylance ์ ์๊ฐ 33 ์ดํ์ธ ๊ฒฝ์ฐ |
|
๊ฐ์งํ ์์ค | security_result.detection_fields.value | Detected By: <value> ์์ ์ถ์ถ๋ ๊ฐ |
๊ธฐ๊ธฐ ID | principal.asset_id | Device Id: <value> ์์ ์ถ์ถ๋๊ณ Cylance: ์ด ์์ ์ถ๊ฐ๋ ๊ฐ |
๊ธฐ๊ธฐ ID | principal.asset_id | Device Ids: <value> ์์ ์ถ์ถ๋๊ณ Cylance: ์ด ์์ ์ถ๊ฐ๋ ๊ฐ์ผ๋ก, Device Id ์ด ์๋ ๊ฒฝ์ฐ ์ฌ์ฉ๋ฉ๋๋ค. |
๊ธฐ๊ธฐ ์ด๋ฆ | principal.hostname | Device Name: <value> ์์ ์ถ์ถ๋ ๊ฐ |
๊ธฐ๊ธฐ ์ด๋ฆ | target.hostname | Device Name: <value> ์์ ์ถ์ถํ ๊ฐ์ผ๋ก, ScriptControl ๊ณผ ๊ฐ์ ํน์ ์ด๋ฒคํธ ์ ํ์ ์ฌ์ฉ๋ฉ๋๋ค. |
๊ธฐ๊ธฐ ์ด๋ฆ | principal.hostname | Device Names: <value> ์์ ์ถ์ถํ ๊ฐ์ผ๋ก, Device Name ์ด ์๋ ๊ฒฝ์ฐ ์ฌ์ฉ๋ฉ๋๋ค. |
์ค๋ช | security_result.summary | Description: <value> ์์ ์ถ์ถํ ๊ฐ์ผ๋ก, OpticsCaeNetworkEvent ๊ณผ ๊ฐ์ ํน์ ์ด๋ฒคํธ ์ ํ์ ์ฌ์ฉ๋ฉ๋๋ค. |
๋์ IP | target.ip | Destination IP: <value> ์์ ์ถ์ถ๋ ๊ฐ |
๋์ ํฌํธ | target.port | Destination Port: <value> ์์ ์ถ์ถ๋ ๊ฐ |
์ด๋ฒคํธ ID | metadata.product_log_id | Event Id: <value> ์์ ์ถ์ถ๋ ๊ฐ |
์ด๋ฒคํธ ์ด๋ฆ | ํน์ ์ด๋ฒคํธ ํ์ ์ ํ์ ํ์ธํ๊ณ ํด๋น ๋ก์ง์ ์ ์ฉํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. | |
์ด๋ฒคํธ ์ ํ | metadata.product_event_type | Event Type: <value> ์์ ์ถ์ถ๋ ๊ฐ |
metadata.event_type | Event Type ๋ฐ Event Name ํ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋งคํ๋๋ฉฐ ๊ธฐ๋ณธ๊ฐ์ GENERIC_EVENT ์
๋๋ค. |
|
ํ์ผ ์ด๋ฆ | principal.process.file.full_path | File Name: <value> ์์ ์ถ์ถ๋ ๊ฐ์ผ๋ก, Path: <value> ์ ๊ฒฐํฉ๋์ด ์ ์ฒด ๊ฒฝ๋ก๋ฅผ ํ์ฑํฉ๋๋ค. |
ํ์ผ ๊ฒฝ๋ก | target.file.full_path | File Path: <value> ์์ ์ถ์ถ๋ ๊ฐ |
์์ ํ๋ก์ธ์ค ImageFileSha256 | principal.process.file.sha256 | Instigating Process ImageFileSha256: <value> ์์ ์ถ์ถ๋ ๊ฐ |
์์ ํ๋ก์ธ์ค ์ด๋ฆ | principal.process.file.full_path | Instigating Process Name: <value> ์์ ์ถ์ถ๋ ๊ฐ |
์์ ํ๋ก์ธ์ค ์์ ์ | principal.user.userid | Instigating Process Owner: <value> ์์ ์ถ์ถํ ๊ฐ์
๋๋ค. ์ฌ์ฉ์ ์ด๋ฆ์ ์๋ ๊ฒฝ์ฐ // ๋ก ๋ถํ ํ ํ ์ถ์ถ๋ฉ๋๋ค. |
์์ ํ๋ก์ธ์ค ์์ ์ | principal.administrative_domain | // ์ด ์๋ ๊ฒฝ์ฐ // ๋ก ๋ถํ ํ์ฌ Instigating Process Owner: <value> ์์ ์ถ์ถํ ๋๋ฉ์ธ ์ด๋ฆ |
IP ์ฃผ์ | principal.ip | IP Address: (<value>) ์์ ์ถ์ถ๋ IP ์ฃผ์ |
์ธํฐํ๋ฆฌํฐ | security_result.rule_labels.value | Interpreter: <value> ์์ ์ถ์ถ๋ ๊ฐ |
์ธํฐํ๋ฆฌํฐ ๋ฒ์ | security_result.rule_labels.value | Interpreter Version: <value> ์์ ์ถ์ถ๋ ๊ฐ |
๋ก๊ทธ์ธํ ์ฌ์ฉ์ | about.user.userid | Logged On Users: (<value>) ์์ ์ถ์ถํ ์ฌ์ฉ์ ์ด๋ฆ |
MAC ์ฃผ์ | principal.mac | MAC Address: (<value>) ์์ ์ถ์ถ๋๊ณ ์ฝ๋ก ์ผ๋ก ํ์์ด ์ง์ ๋ MAC ์ฃผ์ |
MD5 | principal.process.file.md5 | MD5: <value> ์์ ์ถ์ถ๋ ๊ฐ |
๋ฉ์์ง | AuditLog ์ ๊ฐ์ ํน์ ์ด๋ฒคํธ ์ ํ์ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. |
|
OS | principal.platform | OS ํ๋์ Windows ๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ WINDOWS ์ ๋งคํ๋ฉ๋๋ค. |
๊ฒฝ๋ก | principal.process.file.full_path | Path: <value> ์์ ์ถ์ถ๋ ๊ฐ์ผ๋ก, File Name: <value> ์ ๊ฒฐํฉ๋์ด ์ ์ฒด ๊ฒฝ๋ก๋ฅผ ํ์ฑํฉ๋๋ค. |
์ ์ฑ ์ด๋ฆ | security_result.rule_name | Policy Name: <value> ์์ ์ถ์ถ๋ ๊ฐ |
ํ๋ก์ธ์ค ID | principal.process.pid | Process ID: <value> ์์ ์ถ์ถ๋ ๊ฐ |
ํ๋ก์ธ์ค ์ด๋ฆ | principal.process.file.full_path | Process Name: <value> ์์ ์ถ์ถ๋ ๊ฐ |
ํด๊ฒฐ๋ ์ฃผ์ | network.dns.answers.name | Resolved Address: <value> ์์ ์ถ์ถ๋ ๊ฐ |
SHA256 | principal.process.file.sha256 | SHA256: <value> ์์ ์ถ์ถ๋ ๊ฐ |
์์ค IP | principal.ip | Source IP: <value> ์์ ์ถ์ถ๋ ๊ฐ์ผ๋ก, ํน์ ์ด๋ฒคํธ ์ ํ์ ์ฌ์ฉ๋ฉ๋๋ค. |
์ํ | security_result.action | ๊ฐ์ ๋ฐ๋ผ ํน์ UDM ์์
์ ๋งคํ๋ฉ๋๋ค. ~ Quarantined : QUARANTINE ~ Cleared : ALLOW_WITH_MODIFICATION |
๋์ ๋๋ฉ์ธ ์ด๋ฆ | network.dns.questions.name | Target Domain Name: <value> ์์ ์ถ์ถ๋ ๊ฐ |
ํ๊ฒ ํ๋ก์ธ์ค ImageFileSha256 | target.process.file.sha256 | Target Process ImageFileSha256: <value> ์์ ์ถ์ถ๋ ๊ฐ |
ํ๊ฒ ํ๋ก์ธ์ค ์ด๋ฆ | target.process.file.full_path | Target Process Name: <value> ์์ ์ถ์ถ๋ ๊ฐ |
ํ๊ฒ ํ๋ก์ธ์ค ์์ ์ | target.user.userid | Target Process Owner: <value> ์์ ์ถ์ถํ ๊ฐ์
๋๋ค. ์ฌ์ฉ์ ์ด๋ฆ์ ์๋ ๊ฒฝ์ฐ // ๋ก ๋ถํ ํ ํ ์ถ์ถ๋ฉ๋๋ค. |
ํ๊ฒ ํ๋ก์ธ์ค ์์ ์ | target.administrative_domain | // ์ด ์๋ ๊ฒฝ์ฐ // ๋ก ๋ถํ ํ์ฌ Target Process Owner: <value> ์์ ์ถ์ถํ ๋๋ฉ์ธ ์ด๋ฆ |
ํ๊ฒ ๋ ์ง์คํธ๋ฆฌ KeyPath | target.registry.registry_key | Target Registry KeyPath: <value> ์์ ์ถ์ถ๋ ๊ฐ |
์ํ ๋ถ๋ฅ | security_result.threat_name | Threat Classification: <value> ์์ ์ถ์ถ๋ ๊ฐ |
์ฌ์ฉ์ | principal.user.userid | User: <value> ์์ ์ถ์ถํ ์ฌ์ฉ์ ์ด๋ฆ(์๋ ๊ฒฝ์ฐ)์ด User Name ๊ฐ ์๋ ๊ฒฝ์ฐ ์ฌ์ฉ๋จ |
์ฌ์ฉ์ | principal.user.email_addresses | User: <value> ์์ ์ถ์ถ๋ ์ด๋ฉ์ผ ์ฃผ์(์๋ ๊ฒฝ์ฐ). User Name ์ด ์๋ ๊ฒฝ์ฐ ์ฌ์ฉ๋ฉ๋๋ค. |
์ฌ์ฉ์ ์ด๋ฆ | principal.user.userid | User Name: <value> ์์ ์ถ์ถ๋ ๊ฐ |
์๋ฐ ์ ํ | security_result.summary | Violation Type: <value> ์์ ์ถ์ถ๋๊ณ ExploitAttempt: ์ด ์์ ์ถ๊ฐ๋ ๊ฐ |
์๋ฐ ์ ํ | security_result.threat_name | Violation Type: <value> ์์ ์ถ์ถ๋ ๊ฐ |
์์ญ ์ด๋ฆ | security_result.description | Zone Names: (<value>) ์์ ์ถ์ถ๋๊ณ Zone_Names: ์ด ์์ ์ถ๊ฐ๋ ๊ฐ |
metadata.vendor_name | Cylance ๋ก ํ๋์ฝ๋ฉ๋จ |
|
metadata.product_name | ๋ก๊ทธ ๋ฉ์์ง์์ ์ถ์ถํ ๊ฐ(PROTECT ๋๋ OPTICS ) |
|
metadata.log_type | CYLANCE_PROTECT ๋ก ํ๋์ฝ๋ฉ๋จ |
|
network.ip_protocol | OpticsCaeNetworkEvent ์ด๋ฒคํธ์ ๊ฒฝ์ฐ TCP ๋ก ํ๋์ฝ๋ฉ๋จ |
|
network.application_protocol | OpticsCaeDnsEvent ์ด๋ฒคํธ์ ๊ฒฝ์ฐ DNS ๋ก ํ๋์ฝ๋ฉ๋จ |
|
security_result.rule_labels.key | ์ฌ์ฉ ๊ฐ๋ฅํ ํ๋์ ๋ฐ๋ผ Interpreter ๋๋ Interpreter Version ๋ก ์ค์ ํฉ๋๋ค. |
|
security_result.detection_fields.key | Detected By ๋ก ํ๋์ฝ๋ฉ๋จ |
|
security_result.category | ์ด๋ฒคํธ ์ ํ์ ๋ฐ๋ผ ๋งคํ๋๋ฉฐ ๊ฐ๋ฅํ ๊ฐ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. - SOFTWARE_SUSPICIOUS - AUTH_VIOLOATION - POLICY_VIOLATION - NETWORK_SUSPICIOUS - EXPLOIT - SOFTWARE_MALICIOUS |
|
security_result.action | ์ด๋ฒคํธ ์ ํ ๋ฐ ํน์ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋งคํ๋๋ฉฐ, ๊ฐ๋ฅํ ๊ฐ์ - ALLOW, - BLOCK, - QUARANTINE, - ALLOW_WITH_MODIFICATION์ ๋๋ค. |
๋์์ด ๋ ํ์ํ์ ๊ฐ์? ์ปค๋ฎค๋ํฐ ํ์ ๋ฐ Google SecOps ์ ๋ฌธ๊ฐ๋ก๋ถํฐ ๋ต๋ณ์ ๋ฐ์ผ์ธ์.