엔지니어링

Elastic Stack, Wazuh, IDS를 이용한 보안 분석 개선

Elastic Stack은 위협 탐색, 가시성, 사건 응답에 폭넓게 사용되는 보안 분석 기능을 제공합니다. Kibana 대시보드로 넓은 가시성과 쌍방향 위협 추적이 가능해짐과 동시에, 보안 관련 정보를 색인하고 검색하는 Elasticsearch의 속도와 스케일 덕분에 보안 분석가들이 보다 효율적으로 작업할 수 있게 되었습니다. 그리고, 머신 러닝 엔진은 복잡한 데이터 세트의 분석을 자동화할 수 있으며, 다른 방식으로는 탐색하지 못할 침입자를 찾아낼 수 있게 해 줍니다.

Wazuh 또는 Suricata와 같은 인기 있는 IDS(Intrusion Detection Systems)는 위협 탐색에 시그니처 기반 접근법을 활용합니다. 그 방법은 파일, 로그, 네트워크 트래픽에서 발견되는 패턴을 악성 활동과 관련된 것으로 알려진 패턴의 데이터베이스와 비교하고 일치하는 내역이 있으면 알리는 것입니다. 이러한 시스템은 유용한 데이터를 분석하고 지정하는 규칙 세트를 제공하며 보통 생산 환경 내에서 하루에 수천 또는 수백만 건의 알림을 생성합니다.

넓은 망을 구축하면 모든 잠재적 보안 이벤트를 포착할 수 있지만, 매일 수천(또는 수백만) 건의 선별 작업이 늘어납니다. Elastic 머신 러닝 기능은 비정상적인 동작을 자동으로 식별하여 노이즈를 줄여 줍니다. 이는 이상 기반 및 시그니처 기반 기술이 서로를 보완하는 분명한 사용 사례라고 할 수 있으며, 위협을 더욱 쉽게 탐색하고 조사를 더욱 효율적으로 할 수 있게 해 줍니다.

보통 Elastic Stack과 함께 배포되는 Wazuh는 오픈 소스 호스트 기반 침입 탐색 시스템(HIDS)입니다. 이 시스템은 로그 분석, 파일 통합 모니터링, 루트킷 및 취약성 탐색, 구성 평가 및 사건 응답 기능을 제공합니다. Wazuh 솔루션 아키텍처는 모니터링 대상 시스템에서 실행되는 다중 플랫폼 경량 에이전트를 기반으로 하며, 데이터 분석이 수행되는 중앙 집중식 서버에 보고합니다. 또한, 구성 관리, 상태 모니터링, 쿼리 및 알림 데이터 시각화를 위한 완전한 Kibana 플러그인을 제공합니다.

반면, Suricata는 실시간 네트워크 침입 탐색(NIDS), 인라인 침입 방지(NIPS), 네트워크 보안 모니터링(NSM), 오프라인 pcap 처리 등이 가능한 무료 오픈 소스 네트워크 위협 탐색 엔진입니다. Suricata는 자체 규칙 및 시그니처 언어로 네트워크 트래픽을 검사하여 알려진 위협, 정책 위반 및 악성 활동과 일치하는지 확인하고 복잡한 위협을 탐색하기 위한 스크립팅을 지원합니다.

본 블로그 포스트에서는 조사 우선순위를 정하는 데 도움이 되는 Elastic 머신 러닝 작업과 Wazuh와 Suricata를 함께 통합하여 침입을 탐색하는 방법에 대한 개요를 알려드리겠습니다.

Wazuh, Suricata와 Elastic Stack 통합하기

본 블로그 포스트의 목적을 위해, 여러 인터넷 연결 서버, 모니터링 시스템 및 애플리케이션 로그 데이터, 파일 무결성 및 시스템 호출에 Wazuh 에이전트가 배포되도록 연구 환경을 설정했습니다.

또한, 네트워크 트래픽의 모니터링을 담당하는 Suricata 센서를 작동시키고 있습니다. 이 센서는 종종 네트워크 탭, 미러링 포트 또는 SPAN(Switched Port Analyzer) 포트를 통해 트래픽을 모니터링하도록 구성되지만 서버에 직접 배포할 수도 있습니다.

이 두 가지 도구를 최대한 활용하기 위해 Wazuh 규칙을 사용하여 Suricata 알림을 분석하고, 알림 형식을 통합하고, 매칭(예를 들어, 위협 인텔리전스 소스)을 수행하고 자동 응답을 생성하도록 했습니다.

이러한 통합은 Suricata JSON 출력을 판독하도록 Wazuh 에이전트를 구성하여 이뤄졌습니다. 이 에이전트는 Suricata NIDS 알림을 Wazuh 서버로 전달하는 수집기 역할을 하며, 알림은 Wazuh 로그 분석 규칙을 통해 처리되어 강화된 신규 보안 이벤트가 생성됩니다.

이제 이 작업으로 인해 NIDS 및 HIDS 알림이 모두 Filebeat(Wazuh 알림을 판독하도록 구성됨) 및 Logstash(지리적 위치 강화에도 사용됨)를 통해 Elasticsearch로 전송되며, 이 경우 머신 러닝 작업을 사용하여 이상 및 비정상적인 동작을 탐색합니다.

다음은 Elastic Stack과 함께 통합된 호스트 기반 및 네트워크 기반 IDS 기술 배포의 예시입니다.

Elastic Stack 및 Wazuh를 이용한 보안 분석

머신 러닝 작업으로 악성 실행자 탐색하기

당사의 연구실 환경에서 모든 규칙을 활성화하고 나서, 인터넷 연결 웹 서버 중 한 대에서만도 Wazuh 에이전트에서 하루에 4,000~10,000개의 IDS 알림을 보고한다는 사실을 알게 되었습니다. 알림은 주로 웹 공격, 인증 실패, 구성 문제(강화 검사를 사용하여 탐색), 파일 통합 변경 또는 취약한 소프트웨어와 관련이 있습니다.

Wazuh IDS 알림은 보안 분석가가 보다 쉽게 필터링할 수 있도록 레벨 값 또는 그룹과 같은 메타데이터로 강화되어 우선순위 또는 유형별로 필터링할 수 있습니다. 또한 Wazuh Kibana 플러그인은 에이전트 상태, 구성 및 알림에 대한 유용한 정보가 포함된 사전 구성 대시보드를 제공합니다. 아래에 있는 스크린샷을 참조하세요.

Wazuh를 통해 제공되는 정보도 분명 유용하지만, 여전히 변칙 행동에 대해서는 알려주지 않습니다. 여기에서 Elastic 머신 러닝이 도움이 될 수 있습니다.

Elastic 머신 러닝을 통해 여러 유형의 "작업"을 생성할 수 있습니다. 작업은 머신 러닝 분석의 기본 요소입니다. 당사의 경우, "모집단 분석"으로 알려진 것을 생성하기로 결정했습니다. 여기서 우리는 머신 러닝 엔진에 일정 기간 동안 IP 주소의 일반적인 행동의 베이스라인 모델을 구축하도록 지시했습니다. 모집단의 나머지 부분에 비해 비정상적으로 동작하고 있는지 식별하기 위해서지요.

좀 더 구체적으로 말하자면, 다른 모든 IP 주소와 비교할 때 비정상적으로 많은 수의 알림 유형을 담당하는 소스 IP 주소를 찾고자 했습니다. 보안 분석가가 파악할 수 없는 특정 시점에 이상 현상이 발생하며, 60일 이상의 알림 데이터가 있기 때문에 집계표를 만드는 것만으로는 이 작업이 이뤄지지 않습니다(공격 기간이 2분 미만인 공격도 일부 탐색됨).

모집단 분석 결과, 몇 가지 비정상적인 행동(소스 IP 주소 목록의 형태)이 발견되어 조사해보기로 결정했습니다. 우리는 "변칙 탐색기"를 사용하여 발생 가능한 각각의 악성 실행자가 언제 우리의 환경을 공격했는지 알아냈습니다.

침입 시도 조사

보안 분석의 한 가지 예제로, 머신 러닝 작업으로 식별된 IP 주소 중 하나에 대한 조사를 자세히 들여다보겠습니다. 이 특정 IP 주소는 1분 미만의 시간 내에 여러 NIDS 및 HIDS 알림을 생성하여 웹 서버의 로컬 방화벽에서 IP 주소를 차단하는 자동 Wazuh 작업을 생성합니다.

위의 스크린샷과 같이 Suricata NIDS는 표시된 소스 IP 주소에서 악성 트래픽을 탐색했습니다. 네 개의 규칙이 들어오는 트래픽과 일치하며 다음과 같은 알림을 생성합니다.

  • ET DROP Dshield Block Listed Source group 1
  • ET CINS Active Threat Intelligence Poor Reputation IP group 77
  • SURICATA HTTP URI terminated by non-compliant character
  • SURICATA HTTP METHOD terminated by non-compliant character

Emerging Threats 규칙 세트의 일부인 처음 두 가지 규칙은 소스 IP 주소가 TI(Threat Intelligence) 소스에 따라 신뢰도가 좋지 않음을 나타냅니다. DshieldActive Threat Intelligence.

또한 두 개의 다른 시그니처가 동일한 소스 IP 주소에서 발생하는 비정상적인 HTTP 활동을 탐색했는데, 이는 공격자가 잠재적인 취약성을 찾으며 정보를 수집하는 검색 단계의 일부일 가능성이 높습니다.

Wazuh HIDS 구성 요소도 웹 서버 액세스 로그의 분석을 기반으로 서로 다른 알림을 생성했습니다. 이러한 접근 방식은 네트워크 패킷 검사와 전혀 다른 방식으로 다음과 같은 알림을 생성하는 것으로 마무리됩니다.

  • IP address found in AlienVault reputation database
  • Host Blocked by firewall-drop.sh Active Response
  • Host Unblocked by firewall-drop.sh Active Response

첫 번째 알림은 소스 IP 주소가 다른 TI(Threat Intelligence) 소스의 일부로 알려져 있다는 점을 나타냅니다. AlienVault OTX IP 신뢰도 데이터베이스.

두 건의 두 번째 알림은 이전에 언급한 알림의 결과로 특정 소스 IP 주소의 트래픽을 정확히 60초 동안 차단하는 방화벽 규칙을 자동으로 추가하는 Wazuh Active Response 모듈에 의해 생성됩니다(구성 가능). 이 작업은 검색 작업을 차단하기에 충분했으며 악성 실행자가 침입 시도를 중단하도록 했습니다.

결론

Wazuh, Suricata 및 Elastic 머신 러닝과 같은 기술을 통해 시그니처 및 이상 징후 기반 침입 탐색 기능을 모두 사용하면 보다 쉽게 위협 탐색을 수행하고 보다 효율적으로 조사를 수행할 수 있습니다.

또한, 호스트 기반 IDS(호스트 수준의 시스템 모니터링에 사용됨)와 네트워크 기반 IDS(네트워크 트래픽 검사에 사용됨)를 통합하면 위협 탐색 및 보안 가시성도 제고할 수 있습니다. Wazuh는 호스트 및 네트워크 IDS 시스템을 Elastic Stack과 통합하는 데 사용할 수 있고 자동 응답 및 블록 공격을 실시간으로 실행할 수 있는 메커니즘을 제공할 수 있어 이러한 작업을 쉽게 수행할 수 있게 해 줍니다.