Symantec VIP Authentication Hub ๋ก๊ทธ ์์ง
์ด ๋ฌธ์์์๋ Bindplane์ ์ฌ์ฉํ์ฌ Symantec VIP Authentication Hub ๋ก๊ทธ๋ฅผ Google Security Operations์ ์์งํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค. ํ์ ์ฝ๋๋ ๋จผ์ ์ ๋ ฅ ๋ก๊ทธ ๋ฉ์์ง๋ฅผ ์ ๋ฆฌํ๊ณ ์ฌ์ ์ฒ๋ฆฌํ์ฌ ํน์ ํ๋๋ฅผ ๋ณํํ๊ณ ํค-๊ฐ ์์์ ๋ฐ์ดํฐ๋ฅผ ์ฌ๊ตฌ์ฑํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ grok ํจํด๊ณผ ์กฐ๊ฑด๋ถ ๋ก์ง์ ์ฌ์ฉํ์ฌ ๋ค์ํ ํ๋์์ ๊ด๋ จ ์ ๋ณด๋ฅผ ์ถ์ถํ๊ณ ํ์คํ๋ ๋ณด์ ์ด๋ฒคํธ ํํ์ ์ํด ํตํฉ ๋ฐ์ดํฐ ๋ชจ๋ธ (UDM) ๋ด์ ํด๋น ์์ฑ์ ๋งคํํฉ๋๋ค.
์์ํ๊ธฐ ์ ์
๋ค์ ๊ธฐ๋ณธ ์๊ฑด์ด ์ถฉ์กฑ๋์๋์ง ํ์ธํฉ๋๋ค.
- Google SecOps ์ธ์คํด์ค
- Windows 2016 ์ด์ ๋๋ systemd๊ฐ ์๋ Linux ํธ์คํธ
- ํ๋ก์ ๋ค์์ ์คํํ๋ ๊ฒฝ์ฐ ๋ฐฉํ๋ฒฝ ํฌํธ๊ฐ ์ด๋ ค ์์
- Symantec VIP Authentication Hub์ ๋ํ ๊ถํ ์๋ ์ก์ธ์ค
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: '/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: 'SYMANTEC_VIP_AUTHHUB' 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
Symantec VIP Authentication Hub์์ Syslog ๊ตฌ์ฑ
- Symantec VIP Gateway ์น UI์ ๋ก๊ทธ์ธํฉ๋๋ค.
- ๋ก๊ทธ > Syslog ๊ตฌ์ฑ์ผ๋ก ์ด๋ํฉ๋๋ค.
- Syslog๋ฅผ ์ฒ์ ๊ตฌ์ฑํ๋ ๊ฒฝ์ฐ Syslog ์ค์ ์ ๊ตฌ์ฑํ๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค. ์๋ฅผ ์ ํํฉ๋๋ค.
- Syslog๋ฅผ ์ด๋ฏธ ๊ตฌ์ฑํ ๊ฒฝ์ฐ ํ์ด์ง ํ๋จ์์ ์์ ์ ํด๋ฆญํฉ๋๋ค.
- ๋ค์ ๊ตฌ์ฑ ์ธ๋ถ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค.
- Syslog Facility(Syslog ๊ธฐ๋ฅ): LOG_LOCAL0์ ์ ํํฉ๋๋ค.
- Syslog ํธ์คํธ: Bindplane ์์ด์ ํธ IP ์ฃผ์๋ฅผ ์ ๋ ฅํฉ๋๋ค.
- Syslog Port(Syslog ํฌํธ): Bindplane ์์ด์ ํธ ํฌํธ ๋ฒํธ๋ฅผ ์
๋ ฅํฉ๋๋ค(์: UDP์ ๊ฒฝ์ฐ
514
).
- ์ ์ฅ์ ํด๋ฆญํฉ๋๋ค.
- ID ์ ๊ณต์ ์ฒด > ์ ํ ์๋น์ค ํฌํธ ๊ตฌ์ฑ์ผ๋ก ์ด๋ํฉ๋๋ค.
- ๋ค์ ๊ตฌ์ฑ ์ธ๋ถ์ ๋ณด๋ฅผ ์์ ํฉ๋๋ค.
- ๋ก๊น ์์ค: ์ ๋ณด๋ฅผ ์ ํํฉ๋๋ค.
- Enable Syslog: Yes๋ฅผ ์ ํํฉ๋๋ค.
- ์ ์ถ์ ํด๋ฆญํฉ๋๋ค.
- ID ๊ณต๊ธ์ > VIP ๊ด๋ฆฌ์ ์ธ์ฆ ๊ตฌ์ฑ์ผ๋ก ์ด๋ํฉ๋๋ค.
- ๋ค์ ๊ตฌ์ฑ ์ธ๋ถ์ ๋ณด๋ฅผ ์์ ํฉ๋๋ค.
- ๋ก๊น ์์ค: ์ ๋ณด๋ฅผ ์ ํํฉ๋๋ค.
- Enable Syslog: Yes๋ฅผ ์ ํํฉ๋๋ค.
- ์ ์ถ์ ํด๋ฆญํฉ๋๋ค.
- ์ฌ์ฉ์ ์คํ ์ด > LDAP ๋๋ ํฐ๋ฆฌ ๋๊ธฐํ๋ก ์ด๋ํฉ๋๋ค.
- ๋ค์ ๊ตฌ์ฑ ์ธ๋ถ์ ๋ณด๋ฅผ ์์ ํฉ๋๋ค.
- ๋ก๊ทธ ์์ค: ์ ๋ณด๋ฅผ ์ ํํฉ๋๋ค.
- Enable Syslog: Yes๋ฅผ ์ ํํฉ๋๋ค.
- ์ ์ถ์ ํด๋ฆญํฉ๋๋ค.
UDM ๋งคํ ํ ์ด๋ธ
๋ก๊ทธ ํ๋ | UDM ๋งคํ | ๋ ผ๋ฆฌ |
---|---|---|
/auth/v1/authenticate |
security_result.detection_fields[].value |
๊ฐ์ ์์ ๋ก๊ทธ์ /auth/v1/authenticate ํ๋์์ ๊ฐ์ ธ์ ํค api ๊ฐ ์๋ security_result.detection_fields ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
__isAuditIdLcmIdStore |
additional.fields[].value.string_value |
๊ฐ์ ์์ ๋ก๊ทธ์ __isAuditIdLcmIdStore ํ๋์์ ๊ฐ์ ธ์ ํค __isAuditIdLcmIdStore ๊ฐ ์๋ additional.fields ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
accessTokenScopes |
security_result.detection_fields[].value |
๊ฐ์ ์์ ๋ก๊ทธ์ accessTokenScopes ํ๋์์ ๊ฐ์ ธ์ ํค accessTokenScopes ๊ฐ ์๋ security_result.detection_fields ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
accessTokenTid |
security_result.detection_fields[].value |
๊ฐ์ ์์ ๋ก๊ทธ์ accessTokenTid ํ๋์์ ๊ฐ์ ธ์ ํค accessTokenTid ๊ฐ ์๋ security_result.detection_fields ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
api |
security_result.detection_fields[].value |
๊ฐ์ ์์ ๋ก๊ทธ์ api ํ๋์์ ๊ฐ์ ธ์ ํค api ๊ฐ ์๋ security_result.detection_fields ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
appId |
additional.fields[].value.string_value |
๊ฐ์ ์์ ๋ก๊ทธ์ appId ํ๋์์ ๊ฐ์ ธ์ ํค appId ๊ฐ ์๋ additional.fields ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
appName |
principal.application |
๊ฐ์ ์์ ๋ก๊ทธ์ appName ํ๋์์ ๊ฐ์ ธ์ต๋๋ค. |
azpName |
additional.fields[].value.string_value |
๊ฐ์ ์์ ๋ก๊ทธ์ azpName ํ๋์์ ๊ฐ์ ธ์ ํค azpName ๊ฐ ์๋ additional.fields ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
bytes_sent |
network.sent_bytes |
๊ฐ์ ์์ ๋ก๊ทธ์ bytes_sent ํ๋์์ ๊ฐ์ ธ์ต๋๋ค. |
client |
principal.asset.ip , principal.ip |
IP ์ฃผ์๋ grok ํจํด์ ์ฌ์ฉํ์ฌ ์์ ๋ก๊ทธ์ client ํ๋์์ ์ถ์ถ๋๊ณ principal.ip ๋ฐ principal.asset.ip ํ๋์ ์ถ๊ฐ๋ฉ๋๋ค. |
clientId |
additional.fields[].value.string_value , principal.user.userid |
๊ฐ์ ์์ ๋ก๊ทธ์ clientId ํ๋์์ ๊ฐ์ ธ์ ํค clientId ๊ฐ ์๋ additional.fields ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. clientId ํ๋๊ฐ ๋น์ด ์์ง ์์ผ๋ฉด principal.user.userid ํ๋๋ฅผ ์ฑ์ฐ๋ ๋ฐ๋ ์ฌ์ฉ๋ฉ๋๋ค. |
clientIp |
principal.asset.ip , principal.ip |
๊ฐ์ ์์ ๋ก๊ทธ์ clientIp ํ๋์์ ๊ฐ์ ธ์ principal.ip ๋ฐ principal.asset.ip ํ๋์ ์ถ๊ฐ๋ฉ๋๋ค. |
clientTid |
additional.fields[].value.string_value |
๊ฐ์ ์์ ๋ก๊ทธ์ clientTid ํ๋์์ ๊ฐ์ ธ์ ํค clientTid ๊ฐ ์๋ additional.fields ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
clientTxnId |
additional.fields[].value.string_value |
๊ฐ์ ์์ ๋ก๊ทธ์ clientTxnId ํ๋์์ ๊ฐ์ ธ์ ํค clientTxnId ๊ฐ ์๋ additional.fields ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
contentType |
additional.fields[].value.string_value |
๊ฐ์ ์์ ๋ก๊ทธ์ contentType ํ๋์์ ๊ฐ์ ธ์ ํค contentType ๊ฐ ์๋ additional.fields ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
countryISO |
principal.location.country_or_region |
๊ฐ์ ์์ ๋ก๊ทธ์ countryISO ํ๋์์ ๊ฐ์ ธ์ต๋๋ค. |
eventId |
metadata.product_event_type |
๊ฐ์ ์์ ๋ก๊ทธ์ eventId ํ๋์์ ๊ฐ์ ธ์ต๋๋ค. |
flowStateId |
additional.fields[].value.string_value |
๊ฐ์ ์์ ๋ก๊ทธ์ flowStateId ํ๋์์ ๊ฐ์ ธ์ ํค flowStateId ๊ฐ ์๋ additional.fields ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
geo.city_name |
principal.location.city |
๊ฐ์ ์์ ๋ก๊ทธ์ geo.city_name ํ๋์์ ๊ฐ์ ธ์ต๋๋ค. |
geo.country_name |
principal.location.country_or_region |
๊ฐ์ ์์ ๋ก๊ทธ์ geo.country_name ํ๋์์ ๊ฐ์ ธ์ต๋๋ค. |
geo.location.lat |
principal.location.region_coordinates.latitude |
๊ฐ์ ์์ ๋ก๊ทธ์ geo.location.lat ํ๋์์ ๊ฐ์ ธ์ ๋ถ๋ ์์์ ์ผ๋ก ๋ณํ๋๊ณ principal.location.region_coordinates.latitude ๋ก ์ด๋ฆ์ด ๋ฐ๋๋๋ค. |
geo.location.lon |
principal.location.region_coordinates.longitude |
๊ฐ์ ์์ ๋ก๊ทธ์ geo.location.lon ํ๋์์ ๊ฐ์ ธ์ ๋ถ๋ ์์์ ์ผ๋ก ๋ณํ๋๊ณ principal.location.region_coordinates.longitude ๋ก ์ด๋ฆ์ด ๋ฐ๋๋๋ค. |
guid |
metadata.product_log_id |
๊ฐ์ ์์ ๋ก๊ทธ์ guid ํ๋์์ ๊ฐ์ ธ์ต๋๋ค. |
host |
principal.asset.hostname , principal.hostname |
์ด ๊ฐ์ ์์ ๋ก๊ทธ์ host ํ๋์์ ๊ฐ์ ธ์ค๋ฉฐ, ๋ฐ์ดํ๊ฐ ์ญ์ ๋๊ณ principal.hostname ๋ฐ principal.asset.hostname ํ๋์ ์ถ๊ฐ๋ฉ๋๋ค. |
httpMethod |
network.http.method |
๊ฐ์ ์์ ๋ก๊ทธ์ httpMethod ํ๋์์ ๊ฐ์ ธ์ต๋๋ค. |
httpReferrer |
network.http.referral_url |
๊ฐ์ ์์ ๋ก๊ทธ์ httpReferrer ํ๋์์ ๊ฐ์ ธ์ต๋๋ค. |
identitySourceId |
additional.fields[].value.string_value |
๊ฐ์ ์์ ๋ก๊ทธ์ identitySourceId ํ๋์์ ๊ฐ์ ธ์ ํค identitySourceId ๊ฐ ์๋ additional.fields ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
internal-user-sync-ext-resourceGuid |
target.user.userid |
๊ฐ์ ์์ ๋ก๊ทธ์ internal-user-sync-ext-resourceGuid ํ๋์์ ๊ฐ์ ธ์ต๋๋ค. |
internal-user-sync-ext-resourceName |
target.user.email_addresses |
๊ฐ์ ์์ ๋ก๊ทธ์ internal-user-sync-ext-resourceName ํ๋์์ ๊ฐ์ ธ์ target.user.email_addresses ํ๋์ ์ถ๊ฐ๋ฉ๋๋ค. |
issuerUrl |
target.url |
๊ฐ์ ์์ ๋ก๊ทธ์ issuerUrl ํ๋์์ ๊ฐ์ ธ์ต๋๋ค. |
kubernetes.annotations.cni.projectcalico.org_containerID |
target.resource.product_object_id |
๊ฐ์ ์์ ๋ก๊ทธ์ kubernetes.annotations.cni.projectcalico.org_containerID ํ๋์์ ๊ฐ์ ธ์ต๋๋ค. |
kubernetes.annotations.cni.projectcalico.org_podIP |
target.resource.attribute.labels[].value |
๊ฐ์ ์์ ๋ก๊ทธ์ kubernetes.annotations.cni.projectcalico.org_podIP ํ๋์์ ๊ฐ์ ธ์ ํค podIP ๊ฐ ์๋ target.resource.attribute.labels ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
kubernetes.annotations.cni.projectcalico.org_podIPs |
target.resource.attribute.labels[].value |
๊ฐ์ ์์ ๋ก๊ทธ์ kubernetes.annotations.cni.projectcalico.org_podIPs ํ๋์์ ๊ฐ์ ธ์ ํค podIPs ๊ฐ ์๋ target.resource.attribute.labels ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
kubernetes.container_hash |
target.resource.attribute.labels[].value |
๊ฐ์ ์์ ๋ก๊ทธ์ kubernetes.container_hash ํ๋์์ ๊ฐ์ ธ์ ํค container_hash ๊ฐ ์๋ target.resource.attribute.labels ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
kubernetes.container_image |
target.resource.attribute.labels[].value |
๊ฐ์ ์์ ๋ก๊ทธ์ kubernetes.container_image ํ๋์์ ๊ฐ์ ธ์ ํค container_image ๊ฐ ์๋ target.resource.attribute.labels ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
kubernetes.container_name |
target.resource.attribute.labels[].value |
๊ฐ์ ์์ ๋ก๊ทธ์ kubernetes.container_name ํ๋์์ ๊ฐ์ ธ์ ํค container_name ๊ฐ ์๋ target.resource.attribute.labels ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
kubernetes.docker_id |
target.resource.attribute.labels[].value |
๊ฐ์ ์์ ๋ก๊ทธ์ kubernetes.docker_id ํ๋์์ ๊ฐ์ ธ์ ํค docker_id ๊ฐ ์๋ target.resource.attribute.labels ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
kubernetes.host |
principal.asset.hostname , principal.hostname |
๊ฐ์ ์์ ๋ก๊ทธ์ kubernetes.host ํ๋์์ ๊ฐ์ ธ์ principal.hostname ๋ฐ principal.asset.hostname ํ๋์ ์ถ๊ฐ๋ฉ๋๋ค. |
kubernetes.labels.app |
์ด ํ๋๋ UDM์ IDM ๊ฐ์ฒด์ ๋งคํ๋์ง ์์ต๋๋ค. | |
kubernetes.labels.app.kubernetes.io/component |
target.resource.attribute.labels[].value |
๊ฐ์ ์์ ๋ก๊ทธ์ kubernetes.labels.app.kubernetes.io/component ํ๋์์ ๊ฐ์ ธ์ ํค io_component ๊ฐ ์๋ target.resource.attribute.labels ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
kubernetes.labels.app.kubernetes.io/instance |
target.resource.attribute.labels[].value |
๊ฐ์ ์์ ๋ก๊ทธ์ kubernetes.labels.app.kubernetes.io/instance ํ๋์์ ๊ฐ์ ธ์ ํค io_instance ๊ฐ ์๋ target.resource.attribute.labels ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
kubernetes.labels.app.kubernetes.io/managed-by |
target.resource.attribute.labels[].value |
๊ฐ์ ์์ ๋ก๊ทธ์ kubernetes.labels.app.kubernetes.io/managed-by ํ๋์์ ๊ฐ์ ธ์ ํค io_managed-by ๊ฐ ์๋ target.resource.attribute.labels ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
kubernetes.labels.app.kubernetes.io/name |
target.resource.attribute.labels[].value |
๊ฐ์ ์์ ๋ก๊ทธ์ kubernetes.labels.app.kubernetes.io/name ํ๋์์ ๊ฐ์ ธ์ ํค io_name ๊ฐ ์๋ target.resource.attribute.labels ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
kubernetes.labels.app.kubernetes.io/part-of |
target.resource.attribute.labels[].value |
๊ฐ์ ์์ ๋ก๊ทธ์ kubernetes.labels.app.kubernetes.io/part-of ํ๋์์ ๊ฐ์ ธ์ ํค io_part-of ๊ฐ ์๋ target.resource.attribute.labels ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
kubernetes.labels.app.kubernetes.io/version |
target.resource.attribute.labels[].value |
๊ฐ์ ์์ ๋ก๊ทธ์ kubernetes.labels.app.kubernetes.io/version ํ๋์์ ๊ฐ์ ธ์ ํค io_version ๊ฐ ์๋ target.resource.attribute.labels ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
kubernetes.labels.helm.sh/chart |
target.resource.attribute.labels[].value |
๊ฐ์ ์์ ๋ก๊ทธ์ kubernetes.labels.helm.sh/chart ํ๋์์ ๊ฐ์ ธ์ ํค helm_sh_chart ๊ฐ ์๋ target.resource.attribute.labels ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
kubernetes.labels.helmChartName |
target.resource.attribute.labels[].value |
๊ฐ์ ์์ ๋ก๊ทธ์ kubernetes.labels.helmChartName ํ๋์์ ๊ฐ์ ธ์ ํค helmChartName ๊ฐ ์๋ target.resource.attribute.labels ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
kubernetes.labels.imageTag |
target.resource.attribute.labels[].value |
๊ฐ์ ์์ ๋ก๊ทธ์ kubernetes.labels.imageTag ํ๋์์ ๊ฐ์ ธ์ ํค imageTag ๊ฐ ์๋ target.resource.attribute.labels ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
kubernetes.labels.pod-template-hash |
target.resource.attribute.labels[].value |
๊ฐ์ ์์ ๋ก๊ทธ์ kubernetes.labels.pod-template-hash ํ๋์์ ๊ฐ์ ธ์ ํค pod-template-hash ๊ฐ ์๋ target.resource.attribute.labels ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
kubernetes.namespace_name |
target.resource.attribute.labels[].value |
๊ฐ์ ์์ ๋ก๊ทธ์ kubernetes.namespace_name ํ๋์์ ๊ฐ์ ธ์ ํค namespace_name ๊ฐ ์๋ target.resource.attribute.labels ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
kubernetes.pod_id |
target.resource.attribute.labels[].value |
๊ฐ์ ์์ ๋ก๊ทธ์ kubernetes.pod_id ํ๋์์ ๊ฐ์ ธ์ ํค pod_id ๊ฐ ์๋ target.resource.attribute.labels ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
kubernetes.pod_name |
target.resource.attribute.labels[].value |
๊ฐ์ ์์ ๋ก๊ทธ์ kubernetes.pod_name ํ๋์์ ๊ฐ์ ธ์ ํค pod_name ๊ฐ ์๋ target.resource.attribute.labels ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
level |
security_result.severity |
์์ ๋ก๊ทธ์ level ํ๋๊ฐ notice ๋๋ info ์ ์ผ์นํ๋ฉด (๋์๋ฌธ์ ๊ตฌ๋ถ ์ ํจ) security_result.severity ํ๋๊ฐ INFORMATIONAL ๋ก ์ค์ ๋ฉ๋๋ค. |
log |
security_result.description , level , kv_data |
level ๋ฐ kv_data ํ๋๋ grok ํจํด์ ์ฌ์ฉํ์ฌ ์์ ๋ก๊ทธ์ log ํ๋์์ ์ถ์ถ๋ฉ๋๋ค. security_result.description ํ๋๋ ์ ์ฒด log ํ๋๋ก ์ฑ์์ง๋๋ค. |
logtag |
additional.fields[].value.string_value |
๊ฐ์ ์์ ๋ก๊ทธ์ logtag ํ๋์์ ๊ฐ์ ธ์ ํค logtag ๊ฐ ์๋ additional.fields ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
method |
network.http.method |
๊ฐ์ ์์ ๋ก๊ทธ์ method ํ๋์์ ๊ฐ์ ธ์ต๋๋ค. |
msg |
metadata.event_type , security_result.description |
๊ฐ์ ์์ ๋ก๊ทธ์ msg ํ๋์์ ๊ฐ์ ธ์ security_result.description ํ๋๋ฅผ ์ฑ์ฐ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. metadata.event_type ํ๋๋ msg ํ๋์ ์ฝํ
์ธ ์ ๋ฐ๋ผ ๊ฒฐ์ ๋ฉ๋๋ค. * msg ์ Internal user created or updated ์ด ํฌํจ๋ ๊ฒฝ์ฐ USER_CREATION * msg ์ Authorization Initiated Succesfully , Authentication Initiated Successfully ๋๋ Authentication Successful ์ด ํฌํจ๋ ๊ฒฝ์ฐ USER_LOGIN * msg ์ Token Generated ๋๋ token verified ์ด ํฌํจ๋ ๊ฒฝ์ฐ USER_RESOURCE_ACCESS * has_principal ์ has_target ๊ฐ ๋ชจ๋ true์ด๋ฉด NETWORK_CONNECTION * has_principal ์ด true์ธ ๊ฒฝ์ฐ STATUS_UPDATE * ๊ทธ๋ ์ง ์์ผ๋ฉด GENERIC_EVENT ์
๋๋ค. |
path |
principal.file.full_path |
๊ฐ์ ์์ ๋ก๊ทธ์ path ํ๋์์ ๊ฐ์ ธ์ต๋๋ค. |
principalId |
additional.fields[].value.string_value , principal.user.userid |
๊ฐ์ ์์ ๋ก๊ทธ์ principalId ํ๋์์ ๊ฐ์ ธ์ ํค principalId ๊ฐ ์๋ additional.fields ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. principalId ํ๋๊ฐ clientId ์ด ์๋๊ณ ๋น์ด ์์ง ์์ผ๋ฉด principal.user.userid ํ๋๋ฅผ ์ฑ์ฐ๋ ๋ฐ๋ ์ฌ์ฉ๋ฉ๋๋ค. |
principalType |
additional.fields[].value.string_value |
๊ฐ์ ์์ ๋ก๊ทธ์ principalType ํ๋์์ ๊ฐ์ ธ์ ํค principalType ๊ฐ ์๋ additional.fields ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
protocol |
network.application_protocol |
์์ ๋ก๊ทธ์ protocol ํ๋๊ฐ HTTP (๋์๋ฌธ์ ๊ตฌ๋ถ ์ ํจ)์ ์ผ์นํ๋ฉด network.application_protocol ํ๋๊ฐ HTTP ๋ก ์ค์ ๋ฉ๋๋ค. |
referrer |
network.http.referral_url |
์ด ๊ฐ์ ์์ ๋ก๊ทธ์ referrer ํ๋์์ ๊ฐ์ ธ์ค๊ณ ๋ฐ์ดํ๊ฐ ์ญ์ ๋ ํ network.http.referral_url ํ๋์ ํ ๋น๋ฉ๋๋ค. |
relVersion |
metadata.product_version |
๊ฐ์ ์์ ๋ก๊ทธ์ relVersion ํ๋์์ ๊ฐ์ ธ์ต๋๋ค. |
remoteAddr |
additional.fields[].value.string_value |
๊ฐ์ ์์ ๋ก๊ทธ์ remoteAddr ํ๋์์ ๊ฐ์ ธ์ ํค remoteAddr ๊ฐ ์๋ additional.fields ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
requestId |
additional.fields[].value.string_value |
๊ฐ์ ์์ ๋ก๊ทธ์ requestId ํ๋์์ ๊ฐ์ ธ์ ํค requestId ๊ฐ ์๋ additional.fields ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
requestTime |
additional.fields[].value.string_value |
๊ฐ์ ์์ ๋ก๊ทธ์ requestTime ํ๋์์ ๊ฐ์ ธ์ ํค requestTime ๊ฐ ์๋ additional.fields ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
responseCode |
network.http.response_code |
์ซ์ ๊ฐ์ grok ํจํด์ ์ฌ์ฉํ์ฌ ์์ ๋ก๊ทธ์ responseCode ํ๋์์ ์ถ์ถ๋๊ณ ์ ์๋ก ๋ณํ๋์ด network.http.response_code ํ๋์ ํ ๋น๋ฉ๋๋ค. |
request |
method , path , protocol |
method , path , protocol ํ๋๋ ๋ฐ์ดํ๋ฅผ ์ญ์ ํ ํ ์์ ๋ก๊ทธ์ request ํ๋์์ grok ํจํด์ ์ฌ์ฉํ์ฌ ์ถ์ถ๋ฉ๋๋ค. |
server |
target.asset.hostname , target.hostname |
๊ฐ์ ์์ ๋ก๊ทธ์ server ํ๋์์ ๊ฐ์ ธ์ target.hostname ๋ฐ target.asset.hostname ํ๋์ ์ถ๊ฐ๋ฉ๋๋ค. |
service |
additional.fields[].value.string_value |
๊ฐ์ ์์ ๋ก๊ทธ์ service ํ๋์์ ๊ฐ์ ธ์ ํค service ๊ฐ ์๋ additional.fields ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
status |
network.http.response_code |
๊ฐ์ ์์ ๋ก๊ทธ์ status ํ๋์์ ๊ฐ์ ธ์ ์ ์๋ก ๋ณํ๋๊ณ network.http.response_code ํ๋์ ํ ๋น๋ฉ๋๋ค. |
stream |
additional.fields[].value.string_value |
๊ฐ์ ์์ ๋ก๊ทธ์ stream ํ๋์์ ๊ฐ์ ธ์ ํค stream ๊ฐ ์๋ additional.fields ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
sub |
additional.fields[].value.string_value |
๊ฐ์ ์์ ๋ก๊ทธ์ sub ํ๋์์ ๊ฐ์ ธ์ ํค sub ๊ฐ ์๋ additional.fields ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
subType |
additional.fields[].value.string_value |
๊ฐ์ ์์ ๋ก๊ทธ์ subType ํ๋์์ ๊ฐ์ ธ์ ํค subType ๊ฐ ์๋ additional.fields ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
tid |
additional.fields[].value.string_value |
๊ฐ์ ์์ ๋ก๊ทธ์ tid ํ๋์์ ๊ฐ์ ธ์ ํค tid ๊ฐ ์๋ additional.fields ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
timestamp |
metadata.event_timestamp |
์ด ๊ฐ์ ์์ ๋ก๊ทธ์ timestamp ํ๋์์ ๊ฐ์ ธ์ ISO8601 ํ์์คํฌํ๋ก ํ์ฑ๋ฉ๋๋ค. |
tname |
additional.fields[].value.string_value |
๊ฐ์ ์์ ๋ก๊ทธ์ tname ํ๋์์ ๊ฐ์ ธ์ ํค tname ๊ฐ ์๋ additional.fields ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
txnId |
additional.fields[].value.string_value |
๊ฐ์ ์์ ๋ก๊ทธ์ txnId ํ๋์์ ๊ฐ์ ธ์ ํค txnId ๊ฐ ์๋ additional.fields ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
type |
additional.fields[].value.string_value |
๊ฐ์ ์์ ๋ก๊ทธ์ type ํ๋์์ ๊ฐ์ ธ์ ํค type ๊ฐ ์๋ additional.fields ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
userAgent |
network.http.parsed_user_agent , network.http.user_agent |
๊ฐ์ ์์ ๋ก๊ทธ์ userAgent ํ๋์์ ๊ฐ์ ธ์ network.http.user_agent ๋ฐ network.http.parsed_user_agent ํ๋์ ํ ๋น๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ network.http.parsed_user_agent ํ๋๊ฐ ํ์ฑ๋ ์ฌ์ฉ์ ์์ด์ ํธ ๊ฐ์ฒด๋ก ๋ณํ๋ฉ๋๋ค. |
userDN |
additional.fields[].value.string_value |
๊ฐ์ ์์ ๋ก๊ทธ์ userDN ํ๋์์ ๊ฐ์ ธ์ ํค userDN ๊ฐ ์๋ additional.fields ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
userGuid |
additional.fields[].value.string_value |
๊ฐ์ ์์ ๋ก๊ทธ์ userGuid ํ๋์์ ๊ฐ์ ธ์ ํค userGuid ๊ฐ ์๋ additional.fields ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
userIdpGuid |
additional.fields[].value.string_value |
๊ฐ์ ์์ ๋ก๊ทธ์ userIdpGuid ํ๋์์ ๊ฐ์ ธ์ ํค userIdpGuid ๊ฐ ์๋ additional.fields ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
userIP |
principal.asset.ip , principal.ip , target.asset.ip , target.ip , intermediary.ip |
IP ์ฃผ์๋ grok ํจํด์ ์ฌ์ฉํ์ฌ ์์ ๋ก๊ทธ์ userIP ํ๋์์ ์ถ์ถ๋ฉ๋๋ค. ์ฒซ ๋ฒ์งธ IP ์ฃผ์๊ฐ principal.ip ๋ฐ principal.asset.ip ํ๋์ ์ถ๊ฐ๋ฉ๋๋ค. ๋ ๋ฒ์งธ IP ์ฃผ์๊ฐ target.ip ๋ฐ target.asset.ip ํ๋์ ์ถ๊ฐ๋ฉ๋๋ค. ์ธ ๋ฒ์งธ IP ์ฃผ์๊ฐ intermediary.ip ํ๋์ ์ถ๊ฐ๋ฉ๋๋ค. |
userLoginId |
target.user.email_addresses |
์์ ๋ก๊ทธ์ userLoginId ํ๋๊ฐ ๋น์ด ์์ง ์๊ณ ์ด๋ฉ์ผ ์ฃผ์ ํจํด๊ณผ ์ผ์นํ๋ฉด target.user.email_addresses ํ๋์ ์ถ๊ฐ๋ฉ๋๋ค. |
userLoginIdAttributeMappingName |
target.user.user_display_name |
๊ฐ์ ์์ ๋ก๊ทธ์ userLoginIdAttributeMappingName ํ๋์์ ๊ฐ์ ธ์ต๋๋ค. |
userRiskLevel |
additional.fields[].value.string_value |
๊ฐ์ ์์ ๋ก๊ทธ์ userRiskLevel ํ๋์์ ๊ฐ์ ธ์ ํค userRiskLevel ๊ฐ ์๋ additional.fields ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
userRiskScore |
additional.fields[].value.string_value |
๊ฐ์ ์์ ๋ก๊ทธ์ userRiskScore ํ๋์์ ๊ฐ์ ธ์ ํค userRiskScore ๊ฐ ์๋ additional.fields ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
userIp |
principal.asset.ip , principal.ip |
๊ฐ์ ์์ ๋ก๊ทธ์ userIp ํ๋์์ ๊ฐ์ ธ์ principal.ip ๋ฐ principal.asset.ip ํ๋์ ์ถ๊ฐ๋ฉ๋๋ค. |
userUniversalId |
additional.fields[].value.string_value |
๊ฐ์ ์์ ๋ก๊ทธ์ userUniversalId ํ๋์์ ๊ฐ์ ธ์ ํค userUniversalId ๊ฐ ์๋ additional.fields ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
vhost |
additional.fields[].value.string_value |
๊ฐ์ ์์ ๋ก๊ทธ์ vhost ํ๋์์ ๊ฐ์ ธ์ ํค vhost ๊ฐ ์๋ additional.fields ๊ฐ์ฒด์ ํ ๋น๋ฉ๋๋ค. |
ํด๋น ์ฌํญ ์์ | extensions.auth.type |
metadata.event_type ํ๋๊ฐ USER_LOGIN ์ธ ๊ฒฝ์ฐ ๊ฐ์ SSO ๋ก ์ค์ ๋ฉ๋๋ค. |
ํด๋น ์ฌํญ ์์ | metadata.log_type |
๊ฐ์ SYMANTEC_VIP_AUTHHUB ๋ก ์ค์ ๋ฉ๋๋ค. |
๋์์ด ๋ ํ์ํ์ ๊ฐ์? ์ปค๋ฎค๋ํฐ ํ์ ๋ฐ Google SecOps ์ ๋ฌธ๊ฐ๋ก๋ถํฐ ๋ต๋ณ์ ๋ฐ์ผ์ธ์.