다음을 통해 공유


Syslog 및 Microsoft Sentinel용 AMA 커넥터를 통한 CEF(Common Event Format)

AMA를 통한 Syslog 및 Microsoft Sentinel용 AMA 데이터 커넥터를 통한 CEF(Common Event Format)는 Linux 컴퓨터와 네트워크, 보안 어플라이언스 및 어플라이언스에서 CEF(Common Event Format) 메시지를 포함한 Syslog 메시지를 필터링하고 수집합니다. 이러한 커넥터는 Syslog 및/또는 CEF 메시지를 수집하려는 Linux 컴퓨터에 AMA(Azure Monitor 에이전트)를 설치합니다. 이 컴퓨터는 메시지의 원본일 수도 있고, 네트워크나 보안 어플라이언스, 어플라이언스와 같은 다른 컴퓨터에서 메시지를 수집하는 전달자일 수도 있습니다. 커넥터는 사용자가 정의한 DCR(데이터 수집 규칙)에 따라 에이전트 지침을 보냅니다. DCR은 모니터링할 시스템과 수집할 로그 또는 메시지 유형을 지정합니다. 더 나은 성능과 보다 효율적인 쿼리 및 분석을 위해 수집되기 전에 메시지에 적용할 필터를 정의합니다.

Syslog와 CEF는 다양한 디바이스와 애플리케이션의 데이터를 로깅하는 두 가지 일반적인 형식입니다. 이는 시스템 관리자와 보안 분석가가 네트워크를 모니터링하고 해당 문제를 해결하고 잠재적인 위협이나 인시던트를 식별하는 데 도움이 됩니다.

Syslog란?

Syslog는 네트워크를 통해 서로 다른 디바이스나 애플리케이션 간에 메시지를 보내고 받기 위한 표준 프로토콜입니다. 원래 Unix 시스템용으로 개발되었지만 현재는 다양한 플랫폼과 공급업체에서 널리 지원됩니다. Syslog 메시지에는 우선 순위, 타임스탬프, 호스트 이름, 애플리케이션 이름, 프로세스 ID 및 메시지 텍스트로 구성된 미리 정의된 구조가 있습니다. 구성 및 보안 요구 사항에 따라 UDP, TCP 또는 TLS를 통해 Syslog 메시지를 보낼 수 있습니다.

Azure Monitor 에이전트는 Syslog RFC 3164 및 5424를 지원합니다.

CEF(Common Event Format)란?

CEF(Common Event Format)는 방화벽, 라우터, 검색 및 응답 솔루션, 침입 탐지 시스템과 같은 네트워크 및 보안 어플라이언스와 어플라이언스뿐만 아니라 웹 서버와 같은 다른 종류의 시스템의 데이터를 기록하기 위한 공급업체 중립적 형식입니다. Syslog의 확장으로, SIEM(보안 정보 및 이벤트 관리) 솔루션용으로 특별히 개발되었습니다. CEF 메시지에는 디바이스 공급업체, 디바이스 제품, 디바이스 버전, 이벤트 클래스, 이벤트 심각도 및 이벤트 ID와 같은 정보가 포함된 표준 헤더가 있습니다. CEF 메시지에는 원본 및 대상 IP 주소, 사용자 이름, 파일 이름 또는 수행된 작업과 같은 이벤트에 대한 자세한 정보를 제공하는 다양한 확장자가 있습니다.

AMA를 사용한 Syslog 및 CEF 메시지의 컬렉션

다음 다이어그램은 AMA를 통한 SyslogAMA를 통한 CEF(Common Event Format) 커넥터를 사용하여 Microsoft Sentinel의 Syslog 및 CEF 메시지 컬렉션 아키텍처를 보여 줍니다.

이 다이어그램은 AMA(Azure Monitor 에이전트)가 설치된 단일 개별 Linux 가상 머신에서 수집되는 Syslog 메시지를 보여 줍니다.

단일 원본의 Syslog 컬렉션 다이어그램

Azure Monitor 에이전트를 사용하는 데이터 수집 프로세스는 다음과 같은 구성 요소와 데이터 흐름을 사용합니다.

  • 로그 원본은 Syslog 메시지를 생성하는 환경의 다양한 Linux VM입니다. 이러한 메시지는 TCP 또는 UDP 포트 514(또는 기본 설정에 따라 다른 포트)에서 로컬 Syslog 디먼에 의해 수집됩니다.

  • 로컬 Syslog 디먼(rsyslog 또는 syslog-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 테이블에 저장되며, 여기에서 로그를 쿼리하고 이에 대한 분석을 수행하여 보안 위협을 검색하고 대응할 수 있습니다.

로그 메시지를 수집하는 설정 프로세스

Microsoft Sentinel의 콘텐츠 허브에서 Syslog 또는 Common Event Format에 대한 적절한 솔루션을 설치합니다. 이 단계에서는 AMA를 통해 해당 데이터 커넥터 Syslog를 설치하거나 AMA 데이터 커넥터를 통해 CEF(Common Event Format)를 설치합니다. 자세한 내용은 Microsoft Sentinel 기본 제공 콘텐츠 검색 및 관리를 참조하세요.

설치 프로세스의 일부로 데이터 수집 규칙을 만들고 로그 전달자에 AMA(Azure Monitor 에이전트)를 설치합니다. Azure 또는 Microsoft Defender 포털을 사용하거나 Azure Monitor 로그 수집 API를 사용하여 이러한 작업을 수행합니다.

  • Azure 또는 Microsoft Defender 포털에서 Microsoft Sentinel에 대한 데이터 커넥터를 구성할 때 작업 영역당 DCR을 만들고, 관리하고, 삭제할 수 있습니다. AMA는 커넥터 구성에서 선택한 VM에 자동으로 설치됩니다.

  • 또는 로그 수집 API에 HTTP 요청을 보냅니다. 이 설정을 통해 DCR을 만들기, 관리 및 삭제할 수 있습니다. 이 옵션은 포털보다 더 유연합니다. 예를 들어 API를 사용하면 특정 로그 수준으로 필터링할 수 있습니다. Azure 또는 Defender 포털에서 최소 로그 수준만 선택할 수 있습니다. 이 방법을 사용하는 단점은 DCR을 만들기 전에 로그 전달자에 Azure Monitor 에이전트를 수동으로 설치해야 한다는 점입니다.

DCR을 만들고 AMA가 설치되면 로그 전달자에서 "설치" 스크립트를 실행합니다. 이 스크립트는 다른 컴퓨터의 메시지를 수신 대기하고 필요한 로컬 포트를 열도록 Syslog 디먼을 구성합니다. 그런 다음 필요에 따라 보안 디바이스 또는 어플라이언스를 구성합니다.

자세한 내용은 Azure Monitor 에이전트를 사용하여 Syslog 및 CEF 메시지를 Microsoft Sentinel에 수집을 참조하세요.

데이터 수집 중복 방지

Syslog 및 CEF 메시지 모두에 같은 기능을 사용하면 CommonSecurityLog 테이블과 Syslog 테이블 간에 데이터 수집 중복이 발생할 수 있습니다.

이 시나리오를 방지하려면 다음 방법 중 하나를 사용합니다.

  • 소스 디바이스에서 대상 기능 구성을 사용하도록 설정한 경우: 로그를 CEF 형식으로 로그 전달자에게 보내는 각 원본 컴퓨터에서 Syslog 구성 파일을 편집하여 CEF 메시지를 보내는 데 사용되는 기능을 제거합니다. 이렇게 하면 CEF 형식으로 전송되는 기능도 Syslog 형식으로 전송되지 않습니다. 다음 단계에서 구성하는 각 DCR에서 각각 CEF 또는 Syslog 관련 기능을 사용하는지 확인합니다.

    동일한 에이전트에서 Syslog 및 CEF 메시지를 모두 수집하도록 DCR을 정렬하는 방법의 예를 보려면 동일한 DCR의 Syslog 및 CEF 스트림으로 이동합니다.

  • 원본 어플라이언스 기능을 변경할 수 없는 경우: 다음 쿼리 예제에서처럼 중복이 방지되도록 수집 시간 변환을 사용하여 Syslog 스트림에서 CEF 메시지를 필터링합니다.

    source |
    where ProcessName !contains "CEF"
    

다음 단계