Cisco ๋ฌด์ ์นจ์ ๋ฐฉ์ง ์์คํ (WIPS) ๋ก๊ทธ ์์ง
์ด ๋ฌธ์์์๋ Bindplane์ ์ฌ์ฉํ์ฌ Cisco ๋ฌด์ ์นจ์
๋ฐฉ์ง ์์คํ
(WIPS) ๋ก๊ทธ๋ฅผ Google Security Operations์ ์์งํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช
ํฉ๋๋ค. ํ์๋ syslog ๋ฉ์์ง์์ ํค-๊ฐ ์์ ์ถ์ถํ ๋ค์ ์ด๋ฌํ ๊ฐ์ ํตํฉ ๋ฐ์ดํฐ ๋ชจ๋ธ (UDM) ํ๋์ ๋งคํํฉ๋๋ค. ์ฃผ ๊ตฌ์ฑ์, ํ๊ฒ, ์ฌ์ฉ์ ์ ๋ณด์ ์กด์ฌ ์ฌ๋ถ์ ๋ฐ๋ผ ์ ์ ํ event_type
๋ฅผ ๊ฒฐ์ ํ๊ณ eventType
๋ฐ ๊ธฐํ ํ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ณด์ ์ด๋ฒคํธ๋ฅผ ๋ถ๋ฅํฉ๋๋ค.
์์ํ๊ธฐ ์ ์
๋ค์ ๊ธฐ๋ณธ ์๊ฑด์ด ์ถฉ์กฑ๋์๋์ง ํ์ธํฉ๋๋ค.
- Google SecOps ์ธ์คํด์ค
- Windows 2016 ์ด์ ๋๋
systemd
๊ฐ ์ค์น๋ Linux ํธ์คํธ - ํ๋ก์ ๋ค์์ ์คํํ๋ ๊ฒฝ์ฐ ๋ฐฉํ๋ฒฝ ํฌํธ๊ฐ ์ด๋ ค ์๋์ง ํ์ธ
- Cisco ์ก์ธ์ค ํฌ์ธํธ (AP) / ๋ฌด์ LAN ์ปจํธ๋กค๋ฌ (WLC)์ ๋ํ ๊ถํ ์๋ ์ก์ธ์ค
Google SecOps ์์ง ์ธ์ฆ ํ์ผ ๊ฐ์ ธ์ค๊ธฐ
- Google SecOps ์ฝ์์ ๋ก๊ทธ์ธํฉ๋๋ค.
- SIEM ์ค์ > ์์ง ์์ด์ ํธ๋ก ์ด๋ํฉ๋๋ค.
- ์์ง ์ธ์ฆ ํ์ผ์ ๋ค์ด๋ก๋ํฉ๋๋ค.
- BindPlane์ด ์ค์น๋ ์์คํ ์ ํ์ผ์ ์์ ํ๊ฒ ์ ์ฅํฉ๋๋ค.
Google SecOps ๊ณ ๊ฐ ID ๊ฐ์ ธ์ค๊ธฐ
- Google SecOps ์ฝ์์ ๋ก๊ทธ์ธํฉ๋๋ค.
- SIEM ์ค์ > ํ๋กํ๋ก ์ด๋ํฉ๋๋ค.
- ์กฐ์ง ์ธ๋ถ์ ๋ณด ์น์ ์์ ๊ณ ๊ฐ ID๋ฅผ ๋ณต์ฌํ์ฌ ์ ์ฅํฉ๋๋ค.
Bindplane ์์ด์ ํธ ์ค์น
๋ค์ ์๋ด์ ๋ฐ๋ผ Windows ๋๋ Linux ์ด์์ฒด์ ์ 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 log_type: 'CISCO_WIPS' raw_log_field: body ingestion_labels: 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
Cisco Catalyst์์ ์ ์ํ ๋ฌด์ ์นจ์ ๋ฐฉ์ง ์์คํ (aWIPS) ๊ตฌ์ฑ
- SSH๋ฅผ ์ฌ์ฉํ์ฌ Cisco Catalyst์ ๋ก๊ทธ์ธํฉ๋๋ค.
AP ํ๋กํ์์ aWIPS๋ฅผ ์ฌ์ฉ ์ค์ ํ๋ ค๋ฉด ์ ์ญ ๊ตฌ์ฑ์ ์ ๋ ฅํฉ๋๋ค.
configure terminal ap profile <profile-name> awips
syslog ์ ํ ๊ฐ๊ฒฉ์ 60์ด๋ก ๊ตฌ์ฑํฉ๋๋ค.
awips-syslog throttle period 60
Cisco AP ํ๋กํ์ ์ฌ์ฉํ์ฌ Syslog ๊ตฌ์ฑ
AP-join ํ๋กํ (CLI๋ฅผ ํตํด):
configure terminal ap profile <profile-name> syslog host <Bindplane_IP_address> syslog level informational syslog facility local0 end
Cisco WLC์์ Syslog ๊ตฌ์ฑ (GUI)
- WLC ์น UI์ ๋ก๊ทธ์ธํฉ๋๋ค.
- ๊ด๋ฆฌ > ๋ก๊ทธ > ๊ตฌ์ฑ์ผ๋ก ์ด๋ํฉ๋๋ค.
- Syslog Server IP Address(Syslog ์๋ฒ IP ์ฃผ์) ํ๋์ Bindplane ์์ด์ ํธ IP ์ฃผ์๋ฅผ ์ ๋ ฅํฉ๋๋ค.
- ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ๋ค์ ๊ตฌ์ฑ ์ธ๋ถ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค.
- Syslog Severity(Syslog ์ฌ๊ฐ๋): Informational(์ ๋ณด)์ ์ ํํฉ๋๋ค.
- Syslog Facility(Syslog ๊ธฐ๋ฅ): Local Use 0(๋ก์ปฌ ์ฌ์ฉ 0)์ ์ ํํฉ๋๋ค.
- ์ ์ฉ์ ํด๋ฆญํฉ๋๋ค.
- Save Configuration(๊ตฌ์ฑ ์ ์ฅ)์ ํด๋ฆญํฉ๋๋ค.
WLC (CLI)๋ฅผ ์ฌ์ฉํ์ฌ ์ก์ธ์ค ํฌ์ธํธ์์ Syslog ๊ตฌ์ฑ
์ ์ญ AP syslog ํธ์คํธ:
config ap syslog host global <Bindplane_IP_address>
ํน์ AP syslog ํธ์คํธ๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
config ap syslog host specific <AP-name> <Bindplane_IP_address>
AP syslog ์ฌ๊ฐ๋๋ฅผ ์ค์ ํฉ๋๋ค.
config ap logging syslog level informational
AP ๋ฉ์์ง ๊ธฐ๋ฅ์ ์ค์ ํฉ๋๋ค.
config logging syslog facility local0
UDM ๋งคํ ํ ์ด๋ธ
๋ก๊ทธ ํ๋ | UDM ๋งคํ | ๋ ผ๋ฆฌ |
---|---|---|
applicationCategoryData |
security_result.summary |
์ง์ ๋งคํ๋ฉ๋๋ค. |
applicationSpecificAlarmID |
target.resource.attribute.labels.applicationSpecificAlarmID |
๋์ ๋ฆฌ์์ค์ ๋ผ๋ฒจ๋ก ๋ณํ๋์์ต๋๋ค. |
attackerMacAddr |
target.mac |
์ง์ ๋งคํ๋ฉ๋๋ค. |
authEntityId |
principal.resource.attribute.labels.authEntityId |
์ฃผ ๊ตฌ์ฑ์ ๋ฆฌ์์ค์ ๋ผ๋ฒจ๋ก ๋ณํ๋์์ต๋๋ค. |
category |
security_result.category_details |
์ง์ ๋งคํ๋ฉ๋๋ค. |
detectingApCount |
target.resource.attribute.labels.detectingApCount |
๋์ ๋ฆฌ์์ค์ ๋ผ๋ฒจ๋ก ๋ณํ๋์์ต๋๋ค. |
description |
metadata.description |
์ง์ ๋งคํ๋ฉ๋๋ค. |
displayName |
principal.user.userid |
ํจํด์ด ์ผ์นํ๋ ๊ฒฝ์ฐ displayName ์์ ์ ๊ท ํํ์ host/(?P<user_id>[\\w-]+) ์ ์ฌ์ฉํ์ฌ ์ถ์ถ๋ฉ๋๋ค. |
eventType |
metadata.product_event_type |
์ง์ ๋งคํ๋ฉ๋๋ค. |
instanceId |
principal.resource.attribute.labels.instanceId |
์ฃผ ๊ตฌ์ฑ์ ๋ฆฌ์์ค์ ๋ผ๋ฒจ๋ก ๋ณํ๋์์ต๋๋ค. |
instanceUuid |
metadata.product_log_id |
์ง์ ๋งคํ๋ฉ๋๋ค. |
instanceVersion |
principal.resource.attribute.labels.instanceVersion |
์ฃผ ๊ตฌ์ฑ์ ๋ฆฌ์์ค์ ๋ผ๋ฒจ๋ก ๋ณํ๋์์ต๋๋ค. |
macInfo |
target.resource.attribute.labels.macInfo |
๋์ ๋ฆฌ์์ค์ ๋ผ๋ฒจ๋ก ๋ณํ๋์์ต๋๋ค. |
notificationDeliveryMechanism |
target.resource.attribute.labels.notificationDeliveryMechanism , network.ip_protocol |
๋์ ๋ฆฌ์์ค์ ๋ผ๋ฒจ๋ก ๋ณํ๋์์ต๋๋ค. ๊ฐ์ 'snmp' (๋์๋ฌธ์ ๊ตฌ๋ถ ์ ํจ)๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ network.ip_protocol ์ด 'UDP'๋ก ์ค์ ๋ฉ๋๋ค. |
previousSeverity |
target.resource.attribute.labels.previousSeverity |
๋์ ๋ฆฌ์์ค์ ๋ผ๋ฒจ๋ก ๋ณํ๋์์ต๋๋ค. eventType ์ด 'USER_AUTHENTICATION_FAILURE'์ด๊ณ user_id ์ด ๋น์ด ์์ง ์์ผ๋ฉด 'AUTHTYPE_UNSPECIFIED'๋ก ์ค์ ๋ฉ๋๋ค. ๋ก๊ทธ์ timestamp ์์ ๋ณต์ฌํ์ต๋๋ค. ์ฌ๋ฌ ์กฐ๊ฑด์ ๊ธฐ๋ฐ์ผ๋ก ํ์ ๋ก์ง์ ์ํด ๊ฒฐ์ ๋ฉ๋๋ค. eventType ์ด 'USER_AUTHENTICATION_FAILURE'์ด๊ณ user_id ์ด ๋น์ด ์์ง ์์ ๊ฒฝ์ฐ 'USER_LOGIN'์
๋๋ค.is_target_present ๋ฐ is_principal_present ๊ฐ ๋ชจ๋ true์ธ ๊ฒฝ์ฐ 'NETWORK_CONNECTION' is_principal_present ์ด true์ธ ๊ฒฝ์ฐ 'STATUS_UPDATE' user_id ์ด ๋น์ด ์์ง ์์ ๊ฒฝ์ฐ 'USER_UNCATEGORIZED' ๊ทธ๋ ์ง ์์ผ๋ฉด 'GENERIC_EVENT' 'CISCO_WIPS'๋ก ํ๋์ฝ๋ฉ๋ฉ๋๋ค. '๋ฌด์ ์นจ์ ๋ฐฉ์ง ์์คํ (WIPS)'์ผ๋ก ํ๋์ฝ๋ฉ๋ฉ๋๋ค. 'Cisco'๋ก ํ๋์ฝ๋ฉ๋จ notificationDeliveryMechanism ์ 'snmp' (๋์๋ฌธ์ ๊ตฌ๋ถ ์ ํจ)๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ 'UDP'๋ก ์ค์ ๋ฉ๋๋ค. IP๊ฐ ์๋ ๊ฒฝ์ฐ reportingEntityAddress ๋๋ source ์์ ๋งคํ๋ฉ๋๋ค. IP์ธ ๊ฒฝ์ฐ reportingEntityAddress ๋๋ source ์์ ๋งคํ๋ฉ๋๋ค. MAC ์ฃผ์์ธ ๊ฒฝ์ฐ source ์์ ์ ๊ท ํํ์์ ์ฌ์ฉํ์ฌ ์ถ์ถ๋ฉ๋๋ค. ์ฃผ ๊ตฌ์ฑ์ ๋ฆฌ์์ค์ ๋ผ๋ฒจ๋ก ๋ณํ๋์์ต๋๋ค. ์ฃผ ๊ตฌ์ฑ์ ๋ฆฌ์์ค์ ๋ผ๋ฒจ๋ก ๋ณํ๋์์ต๋๋ค. |
reportingEntityAddress |
principal.ip , principal.hostname |
IP ์ฃผ์์ธ ๊ฒฝ์ฐ principal.ip ์ ๋งคํ๋ฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด principal.hostname ๋ก ๋งคํ๋ฉ๋๋ค. |
severity |
security_result.severity |
๋ค์ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋งคํ๋ฉ๋๋ค. ์ด '0', '1', 'CRITICAL' ๋๋ 'VERY-HIGH'์ธ ๊ฒฝ์ฐ 'CRITICAL' severity severity ์ด '2', '3', '4' ๋๋ 'HIGH'์ธ ๊ฒฝ์ฐ ์ 'HIGH'์ ๋๋ค. severity ์ด '5' ๋๋ 'MEDIUM'์ธ ๊ฒฝ์ฐ ์ 'MEDIUM'์ ๋๋ค. severity ์ด '6', '7' ๋๋ 'LOW'์ธ ๊ฒฝ์ฐ ์ 'LOW'์ ๋๋ค. |
sigAlertDescription |
security_result.description |
์ง์ ๋งคํ๋ฉ๋๋ค. |
signatureName |
target.resource.attribute.labels.signatureName |
๋์ ๋ฆฌ์์ค์ ๋ผ๋ฒจ๋ก ๋ณํ๋์์ต๋๋ค. |
source |
principal.hostname , principal.ip , principal.mac |
IP ์ฃผ์์ธ ๊ฒฝ์ฐ principal.ip ์ ๋งคํ๋ฉ๋๋ค. MAC ์ฃผ์์ธ ๊ฒฝ์ฐ principal.mac ์ ๋งคํ๋ฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด principal.hostname ๋ก ๋งคํ๋ฉ๋๋ค. |
srcObjectClassId |
principal.resource.attribute.labels.srcObjectClassId |
์ฃผ ๊ตฌ์ฑ์ ๋ฆฌ์์ค์ ๋ผ๋ฒจ๋ก ๋ณํ๋์์ต๋๋ค. |
srcObjectId |
principal.resource.attribute.labels.srcObjectId |
์ฃผ ๊ตฌ์ฑ์ ๋ฆฌ์์ค์ ๋ผ๋ฒจ๋ก ๋ณํ๋์์ต๋๋ค. |
subclassName |
security_result.rule_name |
์ง์ ๋งคํ๋ฉ๋๋ค. applicationSpecificAlarmID ์ 'BlockList' (๋์๋ฌธ์ ๊ตฌ๋ถ ์ ํจ)๊ฐ ํฌํจ๋๊ฑฐ๋ eventType ์ด 'SIGNATURE_ATTACK', 'MALICIOUS_ROGUE_AP_DETECTED', 'USER_AUTHENTICATION_FAILURE' ์ค ํ๋์ธ ๊ฒฝ์ฐ 'BLOCK'์ผ๋ก ์ค์ ๋ฉ๋๋ค. eventType ์ ๊ธฐ๋ฐํ ํ์ ๋ก์ง์ ๋ฐ๋ผ ๊ฒฐ์ ๋ฉ๋๋ค. eventType ์ด 'MALICIOUS_ROGUE_AP_DETECTED'์ธ ๊ฒฝ์ฐ ์ 'NETWORK_MALICIOUS'์ ๋๋ค. eventType ์ด 'SIGNATURE_ATTACK'์ธ ๊ฒฝ์ฐ 'NETWORK_SUSPICIOUS' eventType ์ด 'USER_AUTHENTICATION_FAILURE'์ธ ๊ฒฝ์ฐ 'AUTH_VIOLATION' |
timestamp |
metadata.event_timestamp |
seconds ๋ฐ nanos ํ๋๋ ์ง์ ๋งคํ๋ฉ๋๋ค. |
๋์์ด ๋ ํ์ํ์ ๊ฐ์? ์ปค๋ฎค๋ํฐ ํ์ ๋ฐ Google SecOps ์ ๋ฌธ๊ฐ๋ก๋ถํฐ ๋ต๋ณ์ ๋ฐ์ผ์ธ์.