Aruba ClearPass 로그 수집
이 문서에서는 Bindplane을 사용하여 Aruba ClearPass 로그를 수집하는 방법을 설명합니다. 파서는 불필요한 필드를 삭제하고 메시지 형식을 표준화하여 수신 로그를 정리하고 구조화하려고 시도합니다. 그런 다음 로그가 CEF 형식을 따르는지 또는 다른 구조를 따르는지에 따라 코드는 grok 패턴, 키-값 추출, 조건부 로직을 조합하여 관련 필드를 통합 데이터 모델 (UDM)에 매핑하고 궁극적으로 각 이벤트를 특정 보안 이벤트 유형으로 분류합니다.
시작하기 전에
- Google Security Operations 인스턴스가 있는지 확인합니다.
- Windows 2016 이상 또는
systemd
를 사용하는 Linux 호스트를 사용하고 있는지 확인합니다. - 프록시 뒤에서 실행하는 경우 방화벽 포트가 열려 있는지 확인합니다.
- Aruba ClearPass에 대한 액세스 권한이 있는지 확인합니다.
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: CLEARPASS raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
인프라에서 필요에 따라 포트와 IP 주소를 바꿉니다.
<customer_id>
를 실제 고객 ID로 바꿉니다./path/to/ingestion-authentication-file.json
를 Google SecOps 처리 인증 파일 가져오기 섹션에서 인증 파일이 저장된 경로로 업데이트합니다.
Bindplane 에이전트를 다시 시작하여 변경사항 적용
Linux에서 Bindplane 에이전트를 다시 시작하려면 다음 명령어를 실행합니다.
sudo systemctl restart bindplane-agent
Windows에서 Bindplane 에이전트를 다시 시작하려면 서비스 콘솔을 사용하거나 다음 명령어를 입력하면 됩니다.
net stop BindPlaneAgent && net start BindPlaneAgent
Aruba ClearPass syslog 서버 구성
- ClearPass Policy Manager 콘솔에 로그인합니다.
- 관리 > 외부 서버 > Syslog 타겟을 선택합니다.
- 추가를 클릭합니다.
- 표시되는 Syslog 타겟 추가 창에서 다음 세부정보를 지정합니다.
- 호스트 주소: Bindplane IP 주소를 입력합니다.
- 서버 포트: Bindplane 포트 번호를 입력합니다.
- 프로토콜: UDP를 선택합니다 (Bindplane 구성에 따라 TCP를 선택할 수도 있음).
- 저장을 클릭합니다.
syslog 내보내기 필터 구성
- 관리 > 외부 서버 > Syslog 내보내기 필터로 이동합니다.
- 추가를 클릭합니다.
- 표시되는 Syslog 필터 추가 창의 일반 탭에서 다음을 지정합니다.
- 이름: 템플릿 항목 내보내기의 표를 기반으로 syslog 내보내기 필터 이름을 입력합니다.
- 템플릿 내보내기: 템플릿 항목 내보내기의 표에 따라 적절한 내보내기 템플릿을 선택합니다.
- 이벤트 형식 내보내기 유형: 표준을 선택합니다.
- Syslog 서버: Bindplane IP 주소를 선택합니다.
- 내보내기 템플릿 목록에서 세션 또는 통계 내보내기 템플릿을 선택하면 필터 및 열 탭이 사용 설정됩니다. 다음 단계를 완료합니다.
- 필터 및 열 탭을 클릭합니다.
- 데이터 필터: 기본값인 모든 요청이 선택되어 있는지 확인합니다.
- 열 선택: 템플릿 항목 내보내기의 표를 기반으로 사전 정의된 필드 그룹을 선택합니다.
- 선택한 열: 자동으로 채워진 필드가 템플릿 항목 내보내기의 표와 일치하는지 확인합니다.
- 요약 탭을 클릭합니다.
- 저장을 클릭합니다.
- 내보내기 템플릿 목록에서 시스템 이벤트 및 감사 기록 내보내기 템플릿을 선택하면 필터 및 열 탭이 사용 설정되지 않습니다. 요약 탭으로 이동하여 저장을 클릭합니다.
- 내보내기 템플릿 항목 요약의 표에 나온 세부정보를 기반으로 모든 세션, 유용한 정보, 감사 기록, 시스템 이벤트 내보내기 템플릿에 syslog 내보내기 필터를 추가하는 단계를 반복합니다.
템플릿 항목 내보내기
다음 표에는 각 내보내기 템플릿에 대해 구성해야 하는 항목이 설명되어 있습니다. 선택한 열에 나열된 기본 필드는 이벤트 파싱에 지원됩니다. '선택한 열 (기본값)' 아래의 표에 언급된 모든 필드가 표시되고 동일한 순서로 표시되는지 확인합니다. syslog 내보내기 필터 템플릿은 표에 제공된 대로 정확하게 만들어야 합니다(대소문자 구분 필터 이름 포함).
Syslog 내보내기 필터 이름 (대소문자 구분) | 템플릿 내보내기 | 사전 정의된 필드 그룹 | 선택한 열 (기본값) |
---|---|---|---|
ACPPM_radauth | 통계 로그 | Radius 인증 | Auth.Username Auth.Host-MAC-Address Auth.Protocol Auth.NAS-IP-Address CppmNode.CPPM-Node Auth.Login-Status Auth.Service Auth.Source Auth.Roles Auth.Enforcement-Profiles |
ACPPM_radfailedauth | 통계 로그 | Radius 인증 실패 | Auth.Username Auth.Host-MAC-Address Auth.NAS-IP-Address CppmNode.CPPM-Node Auth.Service CppmErrorCode.Error-Code-Details CppmAlert.Alerts |
ACPPM_radacct | 통계 로그 | RADIUS 회계 | Radius.Username Radius.Calling-Station-Id Radius.Framed-IP-Address Radius.NAS-IP-Address Radius.Start-Time Radius.End-Time Radius.Duration Radius.Input-bytes Radius.Output-bytes |
ACPPM_tacauth | 통계 로그 | tacacs 인증 | tacacs.Username tacacs.Remote-Address tacacs.Request-Type tacacs.NAS-IP-Address tacacs.Service tacacs.Auth-Source tacacs.Roles tacacs.Enforcement-Profiles tacacs.Privilege-Level |
ACPPM_tacfailedauth | 통계 로그 | tacacs 인증 실패 | tacacs.Username tacacs.Remote-Address tacacs.Request-Type tacacs.NAS-IP-Address tacacs.Service CppmErrorCode.Error-Code-Details CppmAlert.Alerts |
ACPPM_webauth | 통계 로그 | WEBAUTH | Auth.Username Auth.Host-MAC-Address Auth.Host-IP-Address Auth.Protocol Auth.System-Posture-Token CppmNode.CPPM-Node Auth.Login-Status Auth.Service Auth.Source Auth.Roles Auth.Enforcement-Profiles |
ACPPM_webfailedauth | 통계 로그 | WEBAUTH 인증 실패 | Auth.Username Auth.Host-MAC-Address Auth.Host-IP-Address Auth.Protocol Auth.System-Posture-Token CppmNode.CPPM-Node Auth.Login-Status Auth.Service CppmErrorCode.Error-Code-Details CppmAlert.Alerts |
ACPPM_appauth | 통계 로그 | 애플리케이션 인증 | Auth.Username Auth.Host-IP-Address Auth.Protocol CppmNode.CPPM-Node Auth.Login-Status Auth.Service Auth.Source Auth.Roles Auth.Enforcement-Profiles |
ACPPM_failedappauth | 통계 로그 | 애플리케이션 인증 실패 | Auth.Username Auth.Host-IP-Address Auth.Protocol CppmNode.CPPM-Node Auth.Login-Status Auth.Service CppmErrorCode.Error-Code-Details CppmAlert.Alerts |
ACPPM_endpoints | 통계 로그 | 엔드포인트 | Endpoint.MAC-Address Endpoint.MAC-Vendor Endpoint.IP-Address Endpoint.Username Endpoint.Device-Category Endpoint.Device-Family Endpoint.Device-Name Endpoint.Conflict Endpoint.Status Endpoint.Added-At Endpoint.Updated-At |
ACPPM_cpguest | 통계 로그 | Clearpass Guest | Guest.Username Guest.MAC-Address Guest.Visitor-Name Guest.Visitor-Company Guest.Role-Name Guest.Enabled Guest.Created-At Guest.Starts-At Guest.Expires-At |
ACPPM_onbenroll | 통계 로그 | 온보딩 등록 | OnboardEnrollment.Username OnboardEnrollment.Device-Name OnboardEnrollment.MAC-Address OnboardEnrollment.Device-Product OnboardEnrollment.Device-Version OnboardEnrollment.Added-At OnboardEnrollment.Updated-At |
ACPPM_onbcert | 통계 로그 | 온보딩 인증서 | OnboardCert.Username OnboardCert.Mac-Address OnboardCert.Subject OnboardCert.Issuer OnboardCert.Valid-From OnboardCert.Valid-To OnboardCert.Revoked-At |
ACPPM_onboscp | 통계 로그 | OCSP 온보딩 | OnboardOCSP.Remote-Address OnboardOCSP.Response-Status-Name OnboardOCSP.Timestamp |
ACPPM_cpsysevent | 통계 로그 | Clearpass 시스템 이벤트 | CppmNode.CPPM-Node CppmSystemEvent.Source CppmSystemEvent.Level CppmSystemEvent.Category CppmSystemEvent.Action CppmSystemEvent.Timestamp |
ACPPM_cpconfaudit | 통계 로그 | Clearpass 구성 감사 | CppmConfigAudit.Name CppmConfigAudit.Action CppmConfigAudit.Category CppmConfigAudit.Updated-By CppmConfigAudit.Updated-At |
ACPPM_possummary | 통계 로그 | 상황 요약 | Endpoint.MAC-Address Endpoint.IP-Address Endpoint.Hostname Endpoint.Usermame Endpoint.System-Agent-Type Endpoint.System-Agent-Version Endpoint.System-Client-OS Endpoint.System-Posture-Token Endpoint.Posture-Healthy Endpoint.Posture-Unhealthy |
ACPPM_posfwsummary | 통계 로그 | 상태 방화벽 요약 | Endpoint.MAC-Address Endpoint.IP-Address Endpoint.Hostname Endpoint.Usermame Endpoint.System-Agent-Type Endpoint.System-Agent-Version Endpoint.System-Client-OS Endpoint.System-Posture-Token Endpoint.Firewall-APT Endpoint.Firewall-Input Endpoint.Firewall-Output |
ACPPM_poavsummary | 통계 로그 | 상황별 안티바이러스 요약 | Endpoint.MAC-Address Endpoint.IP-Address Endpoint.Hostname Endpoint.Usermame Endpoint.System-Agent-Type Endpoint.System-Agent-Version Endpoint.System-Client-OS Endpoint.System-Posture-Token Endpoint.Antivirus-APT Endpoint.Antivirus-Input Endpoint.Antivirus-Output |
ACPPM_posassummary | 통계 로그 | 스파이웨어 방지 상태 요약 | Endpoint.MAC-Address Endpoint.IP-Address Endpoint.Hostname Endpoint.Usermame Endpoint.System-Agent-Type Endpoint.System-Agent-Version Endpoint.System-Client-OS Endpoint.System-Posture-Token Endpoint.Antispyware-APT Endpoint.Antispyware-Input Endpoint.Antispyware-Output |
ACPPM_posdskencrpsummary | 통계 로그 | Posture DiskEncryption 요약 | Endpoint.MAC-Address Endpoint.IP-Address Endpoint.Hostname Endpoint.Usermame Endpoint.System-Agent-Type Endpoint.System-Agent-Version Endpoint.System-Client-OS Endpoint.System-Posture-Token Endpoint.DiskEncryption-APT Endpoint.DiskEncryption-Input Endpoint.DiskEncryption-Output |
ACPPM_loggedusers | 세션 로그 | 로그인한 사용자 | Common.Username Common.Service Common.Roles Common.Host-MAC-Address RADIUS.Acct-Framed-IP-Address Common.NAS-IP-Address Common.Request-Timestamp |
ACPPM_failedauth | 세션 로그 | 인증 실패 | Common.Username Common.Service Common.Roles RADIUS.Auth-Source RADIUS.Auth-Method Common.System-Posture-Token Common.Enforcement-Profiles Common.Host-MAC-Address Common.NAS-IP-Address Common.Error-Code Common.Alerts Common.Request-Timestamp |
ACPPM_radacctsession | 세션 로그 | RADIUS 회계 | RADIUS.Acct-Username RADIUS.Acct-NAS-IP-Address RADIUS.Acct-NAS-Port RADIUS.Acct-NAS-Port-Type RADIUS.Acct-Calling-Station-Id RADIUS.Acct-Framed-IP-Address RADIUS.Acct-Session-Id RADIUS.Acct-Session-Time RADIUS.Acct-Output-Pkts RADIUS.Acct-Input-Pkts RADIUS.Acct-Output-Octets RADIUS.Acct-Input.Octets RADIUS.Acct-Service-Name RADIUS.Acct-Timestamp |
ACPPM_tacadmin | 세션 로그 | tacacs+ 관리 | Common.Username Common.Service tacacs.Remote-Address tacacs.Privilege.Level Common.Request-Timestamp |
ACPPM_tacacct | 세션 로그 | tacacs+ Accounting | Common.Username Common.Service tacacs.Remote-Address tacacs.Acct-Flags tacacs.Privilege.Level Common.Request-Timestamp |
ACPPM_webauthsession | 세션 로그 | 웹 인증 | Common.Username Common.Host-MAC-Address WEBAUTH.Host-IP-Address Common.Roles Common.System-Posture-Token Common.Enforcement-Profiles Common.Request-Timestamp |
ACPPM_guestacc | 세션 로그 | 참석자 액세스 | Common.Username RADIUS.Auth-Method Common.Host-MAC-Address Common.Roles Common.System-Posture-Token Common.Enforcement-Profiles Common.Request-Timestamp |
ACPPM_auditrecords | 감사 기록 | 해당 없음 | 해당 없음 |
ACPPM_systemevents | 시스템 이벤트 | 해당 없음 | 해당 없음 |
UDM 매핑 표
로그 필드 | UDM 매핑 | 논리 |
---|---|---|
작업 | security_result.action | 값이 'ALLOW' 또는 'BLOCK'인 경우 'Action' 필드에서 값이 매핑됩니다. |
Auth.Enforcement-Profiles | security_result.detection_fields.value | 값이 'Auth.Enforcement-Profiles' 필드에서 매핑됨 |
Auth.Host-MAC-Address | principal.mac | 값이 콜론으로 구분된 MAC 주소 형식으로 변환된 후 'Auth.Host-MAC-Address' 필드에서 매핑됩니다. |
Auth.Login-Status | security_result.detection_fields.value | 값은 'Auth.Login-Status' 필드에서 매핑됩니다. |
Auth.NAS-IP-Address | target.ip | 값은 'Auth.NAS-IP-Address' 필드에서 매핑됩니다. |
Auth.Protocol | intermediary.application | 값이 'Auth.Protocol' 필드에서 매핑됨 |
Auth.Service | security_result.detection_fields.value | 값이 'Auth.Service' 필드에서 매핑됨 |
Auth.Source | principal.hostname | 선행 영숫자 문자와 공백을 삭제한 후 'Auth.Source' 필드에서 값이 매핑됩니다. |
Auth.Username | principal.user.user_display_name | 값이 'Auth.Username' 필드에서 매핑됨 |
카테고리 | metadata.event_type | 값이 'Logged in'이면 UDM 필드가 'USER_LOGIN'으로 설정됩니다. 값이 'Logged out'이면 UDM 필드가 'USER_LOGOUT'으로 설정됩니다. |
Common.Alerts | security_result.description | 값이 'Common.Alerts' 필드에서 매핑됨 |
Common.Enforcement-Profiles | security_result.detection_fields.value | 값이 'Common.Enforcement-Profiles' 필드에서 매핑됨 |
Common.Login-Status | security_result.detection_fields.value | 값은 'Common.Login-Status' 필드에서 매핑됩니다. |
Common.NAS-IP-Address | target.ip | 값이 'Common.NAS-IP-Address' 필드에서 매핑됩니다. |
Common.Roles | principal.user.group_identifiers | 값이 'Common.Roles' 필드에서 매핑됨 |
Common.Service | security_result.detection_fields.value | 값이 'Common.Service' 필드에서 매핑됨 |
Common.Username | principal.user.userid | 값이 'Common.Username' 필드에서 매핑됨 |
구성요소 | intermediary.application | 값이 '구성요소' 필드에서 매핑됨 |
설명 | metadata.description | 줄바꿈 문자를 파이프 기호로 바꾼 후 'Description' 필드에서 값이 매핑됩니다. 'Description' 필드에 'User', 'Address', 'Role'이 포함된 경우 키-값 쌍으로 파싱되고 상응하는 UDM 필드에 매핑됩니다. 'Description' 필드에 'Unable connection with'가 포함된 경우 대상 호스트 이름이 추출되어 'target.hostname'에 매핑됩니다. |
EntityName | principal.hostname | 값이 'EntityName' 필드에서 매핑됨 |
InterIP | target.ip | 값이 'InterIP' 필드에서 매핑됨 |
수준 | security_result.severity | 값이 'ERROR' 또는 'FATAL'인 경우 UDM 필드는 'HIGH'로 설정됩니다. 값이 'WARN'인 경우 UDM 필드는 'MEDIUM'으로 설정됩니다. 값이 'INFO' 또는 'DEBUG'인 경우 UDM 필드가 'LOW'로 설정됩니다. |
LogNumber | metadata.product_log_id | 값이 'LogNumber' 필드에서 매핑됨 |
RADIUS.Acct-Framed-IP-Address | principal.ip | 값이 'RADIUS.Acct-Framed-IP-Address' 필드에서 매핑됩니다. |
타임스탬프 | metadata.event_timestamp | 값이 '타임스탬프' 필드에서 UTC로 변환되고 타임스탬프로 파싱된 후 매핑됩니다. |
사용자 | principal.user.userid | 값이 '사용자' 필드에서 매핑됨 |
agent_ip | principal.ip, principal.asset.ip | 값이 'agent_ip' 필드에서 매핑됨 |
커뮤니티 | additional.fields.value.string_value | 값이 'community' 필드에서 매핑됨 |
descr | metadata.description | 값이 'descr' 필드에서 매핑됨 |
기업 | additional.fields.value.string_value | 값이 'enterprise' 필드에서 매핑됨 |
eventDescription | metadata.description | 따옴표를 삭제한 후 'eventDescription' 필드에서 값이 매핑됨 |
generic_num | additional.fields.value.string_value | 값이 'generic_num' 필드에서 매핑됨 |
prin_mac | principal.mac | 값은 콜론으로 구분된 MAC 주소 형식으로 변환된 후 'prin_mac' 필드에서 매핑됩니다. |
prin_port | principal.port | 값이 'prin_port' 필드에서 매핑되고 정수로 변환됨 |
specificTrap_name | additional.fields.value.string_value | 값이 'specificTrap_name' 필드에서 매핑됨 |
specificTrap_num | additional.fields.value.string_value | 값이 'specificTrap_num' 필드에서 매핑됨 |
uptime | additional.fields.value.string_value | 값이 'uptime' 필드에서 매핑됨 |
version | metadata.product_version | 값이 '버전' 필드에서 매핑됨 |
extensions.auth.type | 값이 'SSO'로 설정됨 | |
metadata.event_type | 값은 다양한 로그 필드와 파서 로직을 기반으로 결정됩니다. 자세한 내용은 파서 코드를 참고하세요. | |
metadata.log_type | 값이 'CLEARPASS'로 설정됨 | |
metadata.product_name | 값이 'ClearPass'로 설정됨 | |
metadata.vendor_name | 값이 'ArubaNetworks'로 설정됨 |
변경사항
2024-09-12
개선사항:
- 새 형식의 SYSLOG 및 JSON 로그 파싱을 지원하도록 추가했습니다.
2024-08-08
개선사항:
Acct-NAS-IP-Address
를principal.ip
에 매핑했습니다.Acct-Username
를principal.user.userid
에 매핑했습니다.Acct-Calling-Station-Id
를principal.user.product_object_id
에 매핑했습니다.
2024-05-05
개선사항:
- SYSLOG 형식 로그의 파싱 취소를 처리했습니다.
prin_port
를principal.port
에 매핑했습니다.agent_ip
를principal.ip
및principal.asset.ip
에 매핑했습니다.descr
및eventDescription
를metadata.description
에 매핑했습니다.version
를metadata.product_version
에 매핑했습니다.specificTrap_name
,uptime
,enterprise
,generic_num
,specificTrap_num
,community
를additional.fields
에 매핑했습니다.
2024-01-11
개선사항:
Common.NAS-IP-Address
를target.ip
에 매핑했습니다.Common.Service
,Common.Enforcement-Profiles
,Common.Login-Status
를security_result.detection_fields
에 매핑했습니다.
2022-08-18
개선사항:
- 파싱 속도를 개선하기 위해 CEF 형식의 삭제된 로그와 파싱되지 않은 로그를 처리했습니다.
principal.hostname/principal.ip
가 null이 아닌 경우metadata.event_type
를STATUS_UPDATE
에 매핑하고, 그렇지 않은 경우에는GENERIC_EVENT
로 매핑했습니다.
2022-07-08
개선사항:
_target_user_groupid
의 매핑을target.user.groupid
에서target.user.group_identifiers
로 수정했습니다.Common.Roles
의 매핑을principal.user.groupid
에서principal.user.group_identifiers
로 수정했습니다.
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가의 답변을 받으세요.