머신 러닝 및 Elasticsearch를 통한 보안 분석: Deep Dive
소개
여러 파트로 연재된 ArcSight SIEM과 Elasticsearch 의 통합 시리즈의 기존 포스트에서는 X-Pack 알림(Alerting) 기능을 사용하여 잔악한 강제 로그인 공격을 성공적으로 감지했으며, X-Pack의 Machine Learning 기능이 곧 출시될 예정이라는 기대를 알아챌 수 있었습니다.
시간이 지나 드디어 X-Pack Machine Learning 기능 이 출시되었습니다. 이제 Machine Learning으로 Elasticsearch에서 실행되는 로그 데이터의 사이버 위협 행동과 관련된 비정상을 감지한다는 것이 어떤 의미인지를 살펴보고자 합니다.
마법이 아닙니다. 수학입니다.
시작하기 전에 몇 가지 배경을 추가하는 것이 좋겠습니다. 사이버 보안에 대한 일반적인 오해는 Machine Learning이 사용자를 데이터 지옥에서 해방시키고 폼나는 사이버 분석 결과물을 창조할 수 있는 알고리즘으로 가득 찬 마법의 상자라는 착각입니다.
사이버 보안 분야의 Machine Learning에 올바른 대한 이해는, 보안팀이 인간 보안 전문가의 지시를 받는 동시에 잘못된 비정상적인 요소와 패턴을 찾아내어 보안 관련 로그 데이터의 분석을 자동화하는 과정을 지원하는 "알고리즘 지원" 도구로 볼 수 있습니다.
위협 모니터링 또는 위협 탐지 - Machine Learning에 대한 역할
X-Pack Machine Learning 기능은 위협과 관련된 비정상에 대한 대화형 탐지에 사용할 수 있습니다. Kibana의 "비정상 레인" 시각화는 위협 탐지의 출발점으로 자주 사용되지만, 탐지된 비정상에 관한 세부 사항은 탐지된 행동이 비정상인 "이유", 비정상 행태, 탐지하고자 하는 기본 공격 행동과 관련된 이유, 공격 행동에 영향을 미친 데이터 엔티티를 보안 전문가에게 투명하게 보여줍니다.
X-Pack Machine Learning 기능은 Elastic Stack에 긴밀하게 통합되어 있기 때문에, 이제 ArcSight SIEM에 대한 Elasticsearch 통합 2부 및 4부 포스트를 토대로 ml-anomalies-*이라고 하는 인덱스 패턴을 가지는 Machine Learning 결과 인덱스를 이해할 수 있습니다. 이와 같이 이 알고리즘 지원으로 생성된 결과는 지속적인 위협 모니터링에 대한 알림을 트리거하는 데 사용될 수 있습니다.
그림 1. Elastic Stack이 통합된 X-Pack Machine Learning 기능
위협 탐지를 위한 Machine Learning "레시피"
로그인을 여러 번 실패한 후 로그인이 성공할 때 알림을 트리거하는 것과 같이 임계값 기반 이벤트 알림은 강력하지만, 특정 데이터 조건을 정의하지 않고 비정상 행동의 탐지를 자동화하는 능력은 보안 전문가의 업무를 더욱 수월하게 합니다.
즉, 위에서 언급한것처럼 우리는 마술이 아니라, 수학에 대해 이야기하고 있습니다. Machine Learning 엔진에 대한 학습 명령은 작업 구성의 설정에 따라 주어져야 합니다. 엔진은 수치 또는 범위 등 유형을 막론한 시계열 데이터를 모델링할 수 있으므로, 구성할 수 있는 Machine Learning 작업의 유형은 무제한입니다. 이는 매우 유연한 방식이지만, 위협 탐지만을 원하는 보안 전문가에게는 다소 지나친 기능일 수 있습니다.
이제 보안 사용 사례에 대한 Machine Learning "레시피"의 개념을 소개하겠습니다. 레시피는 Machine Learning 작업을 구성하는 방법입니다. 때문에 자동화된 비정상 탐지를 사용하면 다른 방법으로는 탐지하기 어려울 수 있는 기본 공격 행동을 찾아낼 수 있습니다. 기본 공격 행동은 DNS 터널링, 웹 데이터 유출, 의심스러운 엔드포인트 프로세스 실행 등의 활동을 포함합니다.
그림 2. Machine Learning 보안 사용 사례의 레시피 표 예시
각 레시피는 작동 원리, 설명, 결과 모델링 및 관찰을 위한 구체적인 레시피 단계를 설명하는 섹션이 포함된 짧은 문서에 포함되어 있습니다. 레시피 설정 단계는 기능 선택, 모델링 방식, 탐지 대상, 비교 집합, 후보 영향자, 분석 기간, 결과 해석을 포함하고 있습니다.
우리는 V5.4를 출시하면서 네 가지 Machine Learning 보안 사용 사례를 소개했습니다. 현재 이 GitHub Repo 에서 이용 가능한 각 예시에는 직접 테스트 해볼 수 있는 보안 사용 사례 레시피 시트와 다양한 구성, 데이터 및 스크립트가 포함되어 있습니다.
DNS 터널링 탐지를 위한 머신 러닝 레시피
레시피의 한 예로서, 머신 러닝을 활용하여 DNS 터널링 활동을 탐지하는 방법을 살펴보겠습니다.
배경 지식을 위해 짧게 설명드리자면, DNS 터널링이란 DNS(Domain Name Service) 인터넷 프로토콜을 사용하여 비 DNS 정보를 조직 네트워크 안이나 밖으로 전송하는 활동을 말합니다. 모든 인터넷 연결 IT 인프라가 요구하는 DNS 네트워크 트래픽은 일반적으로는 방화벽 정책에 의해 차단되지 않으며, 따라서 조직의 기존의 보안 방어망을 피해 무단 및/또는 악의적 통신을 전송하고 터널링하는 데 매력적인 채널이 됩니다. 예를 들어, FrameworkPOS 맬웨어는 이 기법을 사용하여 소매점 단말기에서 훔친 카드홀더 데이터를 유출시킵니다.
Elastic 보안 영역에서 DNS-EAB02로 정의된 보안 사용 사례 레시피를 살펴보겠습니다. "DNS"는 이 레시피에서 분석할 로그 유형이 "DNS"임을 나타냅니다. "EAB'는 이 레시피가 기본 공격 행동을 탐지하는 것임을 나타냅니다. "02"는 이 레시피를 다른 DNS 레시피를 구별짓는 고유 식별자입니다. 레시피는 다음과 같은 여러 개의 단원으로 구성됩니다.
원리: DNS 쿼리 요청의 하위 도메인 필드에 비정상적인 양의 엔트로피("정보 콘텐트")가 존재하는 것은 DNS 프로토콜을 통해 데이터가 유출되고 있다는 징후일 수 있습니다.
DNS 데이터 유출을 탐지하는 방법은 여러 가지가 있지만, 이 작업(job)은 단 하나만의 매커니즘을 사용하며, 실제 기업 환경에서 효과적인 것으로 입증되었다는 사실에 주목하십시오. 보안팀이 다른 방법이나 추가 방법을 선호하는 경우에는 이 작업을 복제하고, 기본 설정에 따라 수정한 후 실행하기만 하면 됩니다! 또는 둘 다 실행해서 결과를 비교하거나 통합할 수도 있습니다.
설명: 이 사용 사례 레시피는 전송된 "정보 내용"의 값이 비정상적으로 높은 DNS 쿼리 요청이 포함된 도메인과 이러한 비정상적인 요청을 생성한 IP 주소를 식별합니다.
처음에는 필드의 하위 도메인 부분에 비정상적인 양의 엔트로피가 존재하는 요청이 포함된 도메인을 탐지하는 것이 올바른 검토 방식인지는 명확하지 않을 수 있습니다. 그러나 데이터 모델링 관점에서 생각해보면 분석 과정에 걸쳐 비정상적 특성을 가질 가능성이 높은 데이터 기능을 식별해야 합니다. 이 분석에서 DNS 쿼리 로그의 도메인 필드는 모델링하려는 기능이고, 특성은 그 하위 도메인 필드에 포함된 정보 내용의 양입니다.
효용성: 이 사용 사례 레시피는 자동화된 비정상 탐지를 활용하여 DNS 데이터 유출을 탐지하는 방법을 보여주는 기본 예시로 제공되었습니다. 대체 또는 보다 복잡한 접근법에 기반한 다른 레시피로 더 효과적인 탐지 결과를 얻을 수도 있습니다.
이 레시피는 예시임에 유의하십시오. 이 유형의 탐지에 팀의 주제 전문 지식을 응용하면 효용성을 개선할 수 있습니다.
사용 사례 유형: 기본 공격 행동(EAB) - 이 사용 사례는 기본 공격 행동과 관련된 비정상을 탐지합니다. 탐지된 각 비정상에는 정규화된 비정상 점수가 부여되며, 비정상의 통계적 영향을 가지는 다른 데이터 필드의 값으로 주석이 지정됩니다. 공통 통계 영향자를 공유하는 기본 공격 행동은 공통 공격 진행과 연관된 경우가 많습니다.
배경을 간단히 소개하자면, 이 레시피는 위험 요인의 메타 분석을 실행하지 않으며, X-Pack 알림을 사용하여 다른 공격 행동과 상관관계가 있을 수 있는 기본 공격 행동을 탐지하면서 사이버 공격 진행을 탐지합니다.
사용 사례 데이터 소스: (클라이언트에서 DNS 서버로 전송되는) DNS 쿼리 로그
이 레시피에 필요한 데이터 유형 알림
사용 사례 레시피:
대상: DNS 쿼리 요청(문의 유형에 대해 필터링됨: A, AAAA, TXT)
모델: 하위 도메인 문자열 내 정보 내용
탐지: 비정상적으로 높은 양의 정보 내용
비교 대상: (등록된 최고 수준) 쿼리 결과의 전체 도메인
파티션 기준: 없음
예외: 분석에서 자주 발생하는 도메인
기간: 2주 이상의 DNS 쿼리 분석 실행
관련 레시피: 이 EAB 사용 사례 단독, 또는 DNS-EAB01 DNS DGA 활동과 함께 실행
결과: DNS 터널링 활동 원인일 가능성이 높은 영향자 호스트
다음은 쉽게 설명한 레시피입니다. 이 섹션은 데이터를 가져올 로그 메시지, 모델링할 데이터 기능, 탐지할 비정상 행동, 비교 대상, 분석을 파티션할지 여부, 결과에서 우세한 빈번한 값을 제외할지 여부, 바람직한 결과를 얻는 데 필요한 데이터의 양, 이 작업과 함께 실행하면 좋은 다른 작업, 그리고 마지막으로 분석 결과를 보고 해석하는 방법을 설명합니다.
추가 구성 매개 변수:
이 섹션(Elasticsearch 인덱스 패턴 예시, Elasticsearch 쿼리 예시, Machine Learning 분석/탐지기 구성)은 Machine Learning 작업의도대로 원활하게 작동하는 데 필요한 기술 구성의 세부 사항을 제공합니다. 이 세부 사항은 작업 구성 보기의 설정에 해당합니다.
이 레시피로 구성한 후 Machine Learning 작업을 시작하고나면 X-Pack Machine Learning 기능이 클라이언트 워크스테이션에서 생성된 DNS 요청 로그의 인덱싱 및 분석을 시작하고, 각 클라이언트가 전송한 DNS 요청의 정상적인 특성의 기준선을 생성하고, 이 특성들이 비정상일 때를 탐지합니다.
앞에서 언급했듯이, 탐지된 비정상들은 Elasticsearch 인덱스에 기본적으로 ml-anomalies-* 형태의 이름으로 저장되며 Kibana 대시보드에서 검색하고 볼 수 있고, X-Pack Machine Learning 플러그인을 사용하여 세부 사항에서 탐색하거나 X-Pack 알림 기능을 사용하여 알림을 생성하는 데 사용할 수 있습니다.
X-Pack Machine Learning 기능의 실행 방식을 보여드리기 위해 몇 가지 짧은 동영상을 준비했습니다. 이 예시에서 X-Pack Machine Learning 비정상 익스플로러 보기는 DNS 터널링 작업 결과를 표시하는 V5.4(베타)와 유사해 보입니다.
결론
X-Pack Machine Learning은 Elasticsearch에 보안 관련 로그 데이터를 가지고 있는 보안 분석가와 엔지니어가 이용할 수 있는 Machine Learning 기술을 제작하고 있습니다. X-Pack Machine Learning 작업의 기본 요소는 비정상 탐지 작업입니다. 보안 분석 사용 사례 레시피는 공격 행동을 탐지하는 작업을 구성하는 방법을 설명합니다. 프로그래밍 없이도 위협을 탐지하고 전반적인 보안 범위를 개선하는 알고리즘 지원으로 구성된 군대의 수장이 될 수 있습니다.