AMA 및 CEF(Common Event Format)를 통한 Syslog는 Microsoft Sentinel 필터를 위한 AMA 데이터 커넥터를 통한 Syslog이며, CEF(Common Event Format)의 메시지를 포함하여 Linux 컴퓨터와 네트워크 및 보안 디바이스 및 어플라이언스에서 Syslog 메시지를 수집합니다. 이러한 커넥터는 Syslog 및/또는 CEF 메시지를 수집하려는 모든 Linux 컴퓨터에 AMA(Azure Monitor Agent)를 설치합니다. 이 컴퓨터는 메시지의 생성자이거나 네트워크 또는 보안 디바이스 및 어플라이언스와 같은 다른 컴퓨터에서 메시지를 수집하는 전달자일 수 있습니다. 커넥터는 정의한 DCR(데이터 수집 규칙) 에 따라 에이전트 지침을 보냅니다. DCR은 모니터링할 시스템과 수집할 로그 또는 메시지 유형을 지정합니다. 더 나은 성능과 보다 효율적인 쿼리 및 분석을 위해 수집되기 전에 메시지에 적용할 필터를 정의합니다.
Syslog와 CEF는 서로 다른 디바이스 및 애플리케이션에서 데이터를 로깅하기 위한 두 가지 일반적인 형식입니다. 시스템 관리자와 보안 분석가가 네트워크를 모니터링하고 문제를 해결하고 잠재적인 위협 또는 인시던트 식별을 지원합니다.
Syslog란?
Syslog는 네트워크를 통해 서로 다른 디바이스 또는 애플리케이션 간에 메시지를 보내고 받기 위한 표준 프로토콜입니다. 원래 Unix 시스템을 위해 개발되었지만 지금은 다양한 플랫폼과 공급업체에서 널리 지원됩니다. Syslog 메시지에는 우선 순위, 타임스탬프, 호스트 이름, 애플리케이션 이름, 프로세스 ID 및 메시지 텍스트로 구성된 미리 정의된 구조가 있습니다. Syslog 메시지는 구성 및 보안 요구 사항에 따라 UDP, TCP 또는 TLS를 통해 보낼 수 있습니다.
AMA(Azure Monitor Agent)는 RFC 3164(BSD Syslog) 및 RFC 5424(IETF Syslog)에 따라 형식이 지정된 Syslog 메시지를 지원합니다.
CEF(Common Event Format)란?
CEF 또는 Common Event Format은 네트워크 및 보안 디바이스 및 어플라이언스(예: 방화벽, 라우터, 검색 및 응답 솔루션, 침입 검색 시스템) 및 웹 서버와 같은 다른 종류의 시스템에서 데이터를 로깅하기 위한 공급업체 중립적 형식입니다. Syslog의 확장으로, 특히 SIEM(보안 정보 및 이벤트 관리) 솔루션을 위해 개발되었습니다. CEF 메시지에는 디바이스 공급업체, 디바이스 제품, 디바이스 버전, 이벤트 클래스, 이벤트 심각도 및 이벤트 ID와 같은 정보가 포함된 표준 헤더가 있습니다. 또한 CEF 메시지에는 원본 및 대상 IP 주소, 사용자 이름, 파일 이름 또는 수행된 작업과 같이 이벤트에 대한 자세한 정보를 제공하는 다양한 확장명이 있습니다.
AMA를 사용하여 Syslog 및 CEF 메시지 컬렉션
다음 다이어그램에서는 AMA를 통한 Syslog 및 AMA 커넥터를 통한 CEF(일반 이벤트 형식)를 사용하여 Microsoft Sentinel Syslog 및 CEF 메시지 컬렉션의 아키텍처를 보여 줍니다.
이 다이어그램은 AMA(Azure Monitor Agent)가 설치된 단일 개별 Linux 가상 머신에서 수집되는 Syslog 메시지를 보여 줍니다.
Azure Monitor 에이전트를 사용하는 데이터 수집 프로세스는 다음 구성 요소 및 데이터 흐름을 사용합니다.
로그 원본은 Syslog 메시지를 생성하는 환경의 다양한 Linux VM입니다. 이러한 메시지는 TCP 또는 UDP 포트 514(또는 기본 설정에 따라 다른 포트)의 로컬 Syslog 디먼에 의해 수집됩니다.
로컬 Syslog 디먼 (또는
rsyslogsyslog-ng)은 TCP 또는 UDP 포트 514(또는 기본 설정에 따라 다른 포트)에서 로그 메시지를 수집합니다. 그런 다음 디먼은 AMA 버전에 따라 두 가지 방법으로 Azure Monitor 에이전트에 이러한 로그를 보냅니다.- AMA 버전 1.28.11 이상은 TCP 포트 28330에서 로그를 받습니다.
- 이전 버전의 AMA는 Unix 도메인 소켓을 통해 로그를 받습니다.
Syslog/CEF 메시지를 수신하기 위해 514 이외의 포트를 사용하려는 경우 Syslog 디먼의 포트 구성이 메시지를 생성하는 애플리케이션의 포트 구성과 일치하는지 확인합니다.
데이터 커넥터를 설정하여 Syslog 메시지를 수집하려는 각 Linux VM에 설치하는 Azure Monitor 에이전트입니다. 에이전트는 로그를 구문 분석한 다음 Microsoft Sentinel(Log Analytics) 작업 영역으로 보냅니다.
Microsoft Sentinel(Log Analytics) 작업 영역: 여기에 전송된 Syslog 메시지는 Syslog 테이블에 표시됩니다. 여기서 로그를 쿼리하고 분석을 수행하여 보안 위협을 감지하고 대응할 수 있습니다.
참고
로그 전달자와 AMA(Monitor Agent) Azure 사용하여 syslog 데이터를 수집할 때 및 EventTime 필드 간에 불일치가 TimeGenerated 발생할 수 있습니다.
- TimeGenerated는 로그 전달자 또는 수집기를 호스트하는 컴퓨터에서 syslog 메시지를 처리한 UTC 시간을 반영합니다.
- EventTime은 표준 시간대 정보를 포함하지 않고 전달자/수집기의 현지 표준 시간대 오프셋을 사용하여 UTC로 변환되는 syslog 헤더에서 추출됩니다.
이로 인해 전달자/수집기와 로그를 생성하는 디바이스가 서로 다른 표준 시간대에 있을 때 두 필드 간에 차이가 발생할 수 있습니다.
로그 메시지를 수집하는 설정 프로세스
Microsoft Sentinel 콘텐츠 허브에서 Syslog 또는 Common Event Format에 적합한 솔루션을 설치합니다. 이 단계에서는 AMA 또는 AMA 데이터 커넥터를 통해 CEF(Common Event Format)를 통해 해당 데이터 커넥터 Syslog를 설치합니다. 자세한 내용은 기본 제공 콘텐츠 Microsoft Sentinel 검색 및 관리를 참조하세요.
설정 프로세스의 일부로 데이터 수집 규칙을 만들고 로그 전달자에 Azure AMA(Monitor Agent)를 설치합니다. Azure 또는 Microsoft Defender 포털을 사용하거나 Azure Monitor 로그 수집 API를 사용하여 이러한 작업을 수행합니다.
Azure 또는 Microsoft Defender 포털에서 Microsoft Sentinel 대한 데이터 커넥터를 구성할 때 작업 영역당 DCR을 만들고, 관리하고, 삭제할 수 있습니다. AMA는 커넥터 구성에서 선택한 VM에 자동으로 설치됩니다.
또는 HTTP 요청을 로그 수집 API로 보냅니다. 이 설정을 사용하면 DCR을 만들고, 관리하고, 삭제할 수 있습니다. 이 옵션은 포털보다 더 유연합니다. 예를 들어 API를 사용하면 특정 로그 수준을 기준으로 필터링할 수 있습니다. Azure 또는 Defender 포털에서 최소 로그 수준만 선택할 수 있습니다. 이 메서드를 사용하는 단점은 DCR을 만들기 전에 로그 전달자에 Azure Monitor 에이전트를 수동으로 설치해야 한다는 것입니다.
DCR을 만들고 AMA가 설치되면 로그 전달자에서 "설치" 스크립트를 실행합니다. 이 스크립트는 다른 컴퓨터의 메시지를 수신 대기하고 필요한 로컬 포트를 열도록 Syslog 디먼을 구성합니다. 그런 다음 필요에 따라 보안 디바이스 또는 어플라이언스를 구성합니다.
자세한 내용은 다음 문서를 참조하세요.
- Azure Monitor 에이전트를 사용하여 Microsoft Sentinel Syslog 및 CEF 메시지 수집
- AMA 데이터 커넥터를 통한 CEF - Microsoft Sentinel 데이터 수집을 위한 특정 어플라이언스 또는 디바이스 구성
- AMA 데이터 커넥터를 통한 Syslog - Microsoft Sentinel 데이터 수집을 위한 특정 어플라이언스 또는 디바이스 구성
데이터 수집 중복 방지
Syslog 및 CEF 메시지 둘 다에 대해 동일한 기능을 사용하면 CommonSecurityLog와 Syslog 테이블 간에 데이터 수집 중복이 발생할 수 있습니다.
이 시나리오를 방지하려면 다음 방법 중 하나를 사용합니다.
원본 디바이스가 대상 기능의 구성을 사용하도록 설정하는 경우: CEF 형식으로 로그 전달자에게 로그를 보내는 각 원본 컴퓨터에서 Syslog 구성 파일을 편집하여 CEF 메시지를 보내는 데 사용되는 기능을 제거합니다. 이렇게 하면 CEF로 전송된 시설도 Syslog에 전송되지 않습니다. 구성하는 각 DCR이 각각 CEF 또는 Syslog에 대한 관련 기능을 사용하는지 확인합니다.
동일한 에이전트에서 Syslog 및 CEF 메시지를 모두 수집하도록 DCR을 정렬하는 방법의 예를 보려면 동일한 DCR의 Syslog 및 CEF 스트림으로 이동합니다.
원본 어플라이언스 대한 기능을 변경할 수 없는 경우: DCR을 만든 후 수집 시간 변환을 추가하여 Syslog 스트림에서 CEF 메시지를 필터링하여 중복을 방지합니다. 자습서: DCR(데이터 수집 규칙 편집)을 참조하세요. 다음 예제와 유사한 KQL 변환을 추가합니다.
"transformKql": " source\n | where ProcessName !contains \"CEF\"\n"