ManageEngine ADAudit Plus 로그 수집
이 문서에서는 Bindplane 에이전트를 사용하여 ManageEngine ADAudit Plus 로그를 Google Security Operations로 수집하는 방법을 설명합니다. 파서는 ADAudit Plus의 로그를 처리하여 UDM 형식으로 변환합니다. grok 패턴을 사용하여 SYSLOG (CEF) 및 키-값 형식 메시지 모두에서 필드를 추출하고, 알림 및 보고서 프로필에서 파생된 이벤트 유형을 기반으로 UDM 필드에 매핑하고, 추가 컨텍스트로 데이터를 보강합니다. 또한 파서는 로그인 실패, 사용자 변경, 파일 수정과 같은 특정 시나리오를 처리하고 이에 따라 UDM 매핑을 조정합니다.
시작하기 전에
- Google SecOps 인스턴스가 있는지 확인합니다.
- Windows 2016 이상 또는
systemd가 있는 Linux 호스트를 사용하고 있는지 확인합니다. - 프록시 뒤에서 실행하는 경우 방화벽 포트가 열려 있는지 확인합니다.
- ManageEngine ADAudit에 대한 권한 있는 액세스 권한이 있는지 확인합니다.
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: ADAUDIT_PLUS raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels인프라에서 필요한 대로 포트와 IP 주소를 바꿉니다.
<customer_id>를 실제 고객 ID로 바꿉니다.
Bindplane 에이전트를 다시 시작하여 변경사항 적용
Linux에서 Bindplane 에이전트를 다시 시작하려면 다음 명령어를 실행합니다.
sudo systemctl restart bindplane-agentWindows에서 Bindplane 에이전트를 다시 시작하려면 서비스 콘솔을 사용하거나 다음 명령어를 입력하면 됩니다.
net stop BindPlaneAgent && net start BindPlaneAgent
ManageEngine ADAudit Plus Syslog 구성
- ManageEngine ADAudit Plus 웹 UI에 로그인합니다.
- 관리자 > 구성 > SIEM 통합 으로 이동합니다.
- ADAudit Plus 로그를 전송하려면 사용 설정 을 선택합니다.
- ArcSight (CEF) 형식을 선택합니다.
- 다음 구성 세부정보를 제공합니다.
- IP 주소: Bindplane 에이전트 IP 주소
- 포트: Bindplane 포트 번호(예: UDP의 경우
514) - 타겟 유형: UDP를 선택합니다. Bindplane 에이전트 구성에 따라 TCP를 선택할 수도 있습니다.
- 저장 을 클릭합니다.
UDM 매핑 테이블
| 로그 필드 | UDM 매핑 | 논리 |
|---|---|---|
ACCOUNT_DOMAIN |
principal.administrative_domain |
원시 로그의 ACCOUNT_DOMAIN 값이 이 UDM 필드에 할당됩니다. |
ACCOUNT_NAME |
principal.user.userid |
원시 로그의 ACCOUNT_NAME 값이 이 UDM 필드에 할당됩니다. |
ALERT_PROFILE |
security_result.summary |
원시 로그의 ALERT_PROFILE 값이 이 UDM 필드에 할당됩니다. |
APPLICATION_NAME |
target.resource.name |
원시 로그의 APPLICATION_NAME 값이 이 UDM 필드에 할당됩니다. 또한 target.resource.resource_type을 TASK로, has_target_resource를 true로 설정합니다. |
CALLER_DISPLAY_NAME |
target.user.user_display_name |
원시 로그의 CALLER_DISPLAY_NAME 값이 이 UDM 필드에 할당됩니다. |
CALLER_USER_NAME |
target.user.userid |
원시 로그의 CALLER_USER_NAME 값이 이 UDM 필드에 할당됩니다. |
CALLER_USER_SID |
target.group.windows_sid |
원시 로그의 CALLER_USER_SID 값이 [%,{,}] 문자를 삭제한 후 이 UDM 필드에 할당됩니다. 이 작업은 값이 Windows SID 패턴과 일치하는 경우에만 실행됩니다. |
Category |
metadata.product_event_type |
원시 로그의 Category 값이 이 UDM 필드에 할당됩니다. |
CLIENT_HOST_NAME |
target.hostname, target.asset.hostname |
원시 로그의 CLIENT_HOST_NAME 값이 이러한 UDM 필드에 할당됩니다. |
CLIENT_IP_ADDRESS |
target.ip, target.asset.ip |
원시 로그의 CLIENT_IP_ADDRESS 값이 유효한 IP 주소인지 확인한 후 이러한 UDM 필드에 할당됩니다. |
CLIENT_PORT |
target.port |
원시 로그의 CLIENT_PORT 값이 정수로 변환된 후 이 UDM 필드에 할당됩니다. |
DOMAIN |
target.administrative_domain |
원시 로그의 DOMAIN 값이 이 UDM 필드에 할당됩니다. 이 값은 나중에 ACCOUNT_DOMAIN이 있는 경우 덮어쓰일 수 있습니다. |
FILE_LOCATION |
target.file.full_path |
원시 로그의 FILE_LOCATION 값이 이 UDM 필드에 할당됩니다. |
FILE_NAME |
target.file.full_path |
FILE_LOCATION이 없는 경우 원시 로그의 FILE_NAME 값이 이 UDM 필드에 할당됩니다. |
FORMAT_MESSAGE |
security_result.description |
원시 로그의 FORMAT_MESSAGE 값이 이 UDM 필드에 할당됩니다. 이 필드의 일부는 다른 UDM 필드를 채우는 데 사용된 후 설명에서 삭제될 수 있습니다. |
IP |
principal.ip, principal.asset.ip |
원시 로그의 IP 값이 유효한 IP 주소인지 확인한 후 이러한 UDM 필드에 할당됩니다. |
loggerHost |
intermediary.hostname, intermediary.asset.hostname |
원시 로그의 메시지 필드에서 추출된 loggerHost 값이 이러한 UDM 필드에 할당됩니다. |
login_name |
target.user.userid 또는 target.user.email_addresses 또는 target.user.user_display_name |
값에 @가 포함되어 있으면 이메일 주소로 처리됩니다. 공백이 포함되어 있으면 표시 이름으로 처리됩니다. 그렇지 않으면 사용자 ID로 처리됩니다. 또한 event_type을 USER_LOGIN으로, extensions.auth.type을 MACHINE으로, extensions.auth.mechanism을 USERNAME_PASSWORD로 설정합니다. |
RECORD_NUMBER |
principal.process.pid |
원시 로그의 RECORD_NUMBER 값이 이 UDM 필드에 할당됩니다. |
REPORT_PROFILE |
metadata.description |
원시 로그의 REPORT_PROFILE 값이 이 UDM 필드에 할당됩니다. |
SEVERITY |
security_result.severity |
SEVERITY 값은 이 UDM 필드의 값을 결정합니다. 1은 낮음으로, 2는 중간으로, 3은 높음으로 매핑됩니다. |
SOURCE |
principal.hostname, principal.asset.hostname |
원시 로그의 SOURCE 값이 도메인 부분이 포함되지 않은 경우 DOMAIN과 결합되어 이러한 UDM 필드에 할당됩니다.SOURCE 또한 has_principal_host를 true로 설정합니다. |
TIME_GENERATED |
metadata.event_timestamp.seconds |
원시 로그의 TIME_GENERATED 값이 이벤트 타임스탬프로 사용됩니다. |
UNIQUE_ID |
metadata.product_log_id |
원시 로그의 UNIQUE_ID 값이 이 UDM 필드에 할당됩니다. |
USERNAME |
principal.user.userid |
ACCOUNT_NAME이 없는 경우 원시 로그의 USERNAME 값이 이 UDM 필드에 할당됩니다. |
USER_OU_GUID |
metadata.product_log_id |
UNIQUE_ID가 없는 경우 원시 로그의 USER_OU_GUID 값이 중괄호를 삭제한 후 이 UDM 필드에 할당됩니다. |
access_mode |
security_result.detection_fields.value |
원시 로그의 access_mode 값이 키가 ACCESS_MODE로 설정된 이 UDM 필드에 할당됩니다. |
action_name |
security_result.description |
원시 로그의 action_name 값이 이 UDM 필드에 할당됩니다. |
domain_name |
principal.administrative_domain |
원시 로그의 domain_name 값이 이 UDM 필드에 할당됩니다. |
event.idm.read_only_udm.extensions.auth.mechanism |
event.idm.read_only_udm.extensions.auth.mechanism |
login_name이 있거나 event_type이 USER_LOGIN인 경우 USERNAME_PASSWORD로 설정됩니다. |
event.idm.read_only_udm.extensions.auth.type |
event.idm.read_only_udm.extensions.auth.type |
login_name이 있거나 event_type이 USER_LOGIN인 경우 MACHINE으로 설정됩니다. |
event.idm.read_only_udm.metadata.event_type |
event.idm.read_only_udm.metadata.event_type |
ALERT_PROFILE, REPORT_PROFILE, FORMAT_MESSAGE의 값을 기반으로 파서에 의해 결정됩니다. USER_CHANGE_PERMISSIONS, USER_STATS, USER_LOGIN, USER_CHANGE_PASSWORD, SETTING_MODIFICATION, FILE_DELETION, FILE_MODIFICATION, STATUS_SHUTDOWN, SCHEDULED_TASK_CREATION, FILE_READ, NETWORK_CONNECTION, GENERIC_EVENT, USER_UNCATEGORIZED 또는 STATUS_UPDATE를 비롯한 여러 값 중 하나일 수 있습니다. |
event.idm.read_only_udm.metadata.log_type |
event.idm.read_only_udm.metadata.log_type |
항상 ADAUDIT_PLUS로 설정됩니다. |
event.idm.read_only_udm.metadata.product_name |
event.idm.read_only_udm.metadata.product_name |
항상 ADAudit Plus로 설정됩니다. |
event.idm.read_only_udm.metadata.vendor_name |
event.idm.read_only_udm.metadata.vendor_name |
항상 Zoho Corporation으로 설정됩니다. |
host |
principal.hostname, principal.asset.hostname |
원시 로그의 host 값이 이러한 UDM 필드에 할당됩니다. 또한 has_principal_host를 true로 설정합니다. |
intermediary.hostname, intermediary.asset.hostname |
intermediary.hostname, intermediary.asset.hostname |
loggerHost 값으로 설정됩니다. |
principalHost |
principal.hostname, principal.asset.hostname |
원시 로그의 principalHost 값이 IP인지 확인한 후 이러한 UDM 필드에 할당됩니다. 또한 has_principal_host를 true로 설정합니다. |
security_result.action |
security_result.action |
outcome 또는 msg_data_2에 Success가 포함되어 있거나 FORMAT_MESSAGE에 Status:Success가 포함되어 있는 경우 ALLOW로 설정됩니다. status에 denied, locked out, incorrect, does not meet 또는 Unable to validate가 포함되어 있는 경우 BLOCK으로 설정됩니다. ALERT_PROFILE이 Logon Failures for Admin Users인 경우 BLOCK으로 설정됩니다. |
security_result.category |
security_result.category |
event_type이 USER_STATS이거나 ALERT_PROFILE이 Logon Failures for Admin Users인 경우 POLICY_VIOLATION으로 설정됩니다. |
security_result.rule_name |
security_result.rule_name |
FORMAT_MESSAGE 필드에 Reason:이 포함되어 있는 경우 이 필드에서 추출됩니다. |
status |
security_result.summary |
원시 로그의 status 값이 이 UDM 필드에 할당됩니다. |
targetHost |
target.hostname, target.asset.hostname 또는 target.ip, target.asset.ip |
원시 로그의 targetHost 값이 IP인지 확인한 후 이러한 UDM 필드에 할당됩니다. |
targetUser |
target.user.userid |
원시 로그의 targetUser 값이 이 UDM 필드에 할당됩니다. |
_CNtargetUser |
target.user.user_display_name |
원시 로그의 _CNtargetUser 값이 이 UDM 필드에 할당됩니다. |
_user |
principal.user.userid 또는 target.user.userid |
event_type이 USER_CHANGE_PASSWORD가 아닌 경우 원시 로그의 _user 값이 principal.user.userid에 할당됩니다. event_type이 USER_CHANGE_PASSWORD인 경우 target.user.userid에 할당됩니다. |
변경 로그
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가에게 문의하여 답변을 받으세요.