<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=939333007162424&amp;ev=PageView&amp;noscript=1">

Happy Threat Hunting Part 2.

fabio-oyXis2kALVg-unsplash_(1)

©Unsplashfabio

#Threat Hunting #Knowledge Discovery from Data

Genians Security Center는 기업에 대한 위협을 식별하고 대응하기 위한 능동적이며 효율적인 Threat Hunting 전략을 연구하며 제시합니다. Threat Hunting 이란 발생할 수 있거나 진행되고 있는 위협을 제거하며, 그 결과를 기업의 보안체계에 적용하는 능동적인 대응 전략입니다.

이를 통해 창의적이고 고도화되는 공격 전략에 지속적으로 대응할 수 있는 기업의 보안 수준을 만들 수 있습니다. 그중 두 번째는 EDR에서 수집되는 행위 이벤트를 기반으로 KDD(Knowledge Discovery from Data)하는 것입니다. KDD는 데이터로부터 의미있는 정보, 패턴을 얻기 위한 Data Mining 기법입니다.

Happy Threat Hunting Series
- Happy Threat Hunting Part 1.

 

#A Needle in a Haystack #A Theat in a Alertstack

기업의 내외부 접점들이 증가하게 되고 어떤 요소들이 피해를 발생시킬지 예상할 수 없는 상황에서 보안조직은 당연하게도 리스크 중심의 운영과 악의적인 공격에 대해서 대응할 수 있는 실질적인 대응 전략이 필요합니다. 이런 상황에서 기업에서 발생하는 위협에 대한 경보(Alert)는 비즈니스에 따라 기술/문화가 고도화되고 인프라스트럭처가 확장됨에 따라 자연스럽게 증가하게 됩니다. 

이렇게 수 백, 수 천 개로 증가되는 위협 경보는 보안조직의 리소스를 스스로 잡아먹으며, 경보개수를 줄이기 위한 목적의 수동적인 움직임을 만들게 됩니다. 점점 증가하게 되는 경보피로(Alert Fatigue)는 실제적으로 발생한 위협을 놓치게 만들거나 보안솔루션 혹은 탐지민감도를 낮추는 결과로 이어지게 됩니다. 결국에는 악순환이 발생하며, 모든 경보에서 위협을 찾는 것은 건초더미에서 바늘을 찾는 것(A Needle in a Haystack)으로 사실상 불가능한 일이 됩니다. 

이 문제를 해결하기 위한 방식으로 ML/DL/AI와 플레이북과 같은 자동화 기술들이 고도화되고 보안 솔루션들에 적용됩니다. 당연하게도 우리는 발생할 수 있는 위협들을 탐지하고 이런 것들을 해결할 수 있게 되었다라는 착각을 만듭니다. 또한, 잘 구축된 체계에 의해 이렇게 운영하면 안전할거라는 확증 편향(Confirmation Bias)에 빠지게 됩니다. 현재 이런 흐름은 명확한 근거나 사실에 대한 해석이 누락되는 결과를 만들고 있고 지속적인 증명없이 발생한 반복적인 업무의 익숙함과 편안함을 주며, 결국에는 매트릭스의 스카이넷을 볼지도 모릅니다.(유머입니다)

근본적인 원인은 경보에 대한 인식에 있습니다. 참, 아이러니하게도 리스크를 줄이기 위한 가장 필수적인 요소가 가장 큰 리스크가 되었습니다. 이를 해결하기 위한 대부분의 대응 전략은 경보를 1)성과를 위한 보고서의 주제로 소비하거나 2)하루종일 목 빠지게 쳐다보거나 3)다른 할일이 많아서 못 본척 넘어가는것 입니다.

좀 더 능동적이며 적합한 인식은 원래 목적대로 리스크를 줄이고 실제 위협을 능동적으로 대응하기 위한 도구로 사용하는 것입니다. 경보더미에서 위협을 찾는 것(A Threat in a Alertstack)은 매트릭스의 네오(NEO)가 보는 시야를 가지는 것으로부터 시작합니다. 그러기 위해서는 현재 운영환경을 기반으로 데이터 자체에 대한 이해도를 가지고 있어야 하며, 이를 활용할 줄 알아야 합니다.

Matrix

© 영화 Matrix 캡쳐

#Data Sources #Data Structures #Data Associations

EDR에서 활용하고 있는 데이터소스(Data Sources)는 기본적인 행위이벤트 외 시스템 로그(예를 들어 윈도 환경의 이벤트로그), 위협이벤트 등으로 구분되어 있으며, 각 데이터 소스는 다른 데이터 구조(Data Structures)를 가지고 있습니다. 이러한 데이터 구조는 세부적인 데이터 속성(Data Attributes)과 그에 대한 값으로 이루어졌으며, 데이터 소스 내부적으로 혹은 데이터 소스 간 관계(Data Associations)를 가지고 있습니다. 

대표적인 EDR의 데이터소스인 행위이벤트는 윈도 환경으로 기준으로 프로세스, 파일, 모듈, 네트워크, 레지스트리로 유형(Type)이 분류되며, ProcessStart, ChildProcessCreate, FileCreate, FileDelete, NetworkConnect 등의 세부 유형(SubType)으로 분류됩니다. 이러한 세부 유형은 특징에 따른 데이터 속성(Attribute)들을 포함하고 있습니다. 이러한 데이터 속성들은 공통적이거나 세부 유형별로 별도값을 보유하고 있습니다. 가장 기본적으로 알고있어야 하는 데이터의 구조입니다.

데이터 구조

이렇게 행위라는 측면에서 행위의 [유형(Type)-세부유형(SubType)-속성(Attribute)]의 계층(hierarchy)이 만들어집니다. 이러한 계층이 만들어지는 또 다른 대표적인 구조가 타임라인(Timeline)입니다. 이벤트가 발생한 시간을 [년(Year)-분기(Quarter)-월(Month)]에서 [시(Hour)-분(Minute)-초(Second)]의 구조를 가지게 됩니다. 또한, 기업의 조직도를 이용해 [부서(AuthDepthName)-사용자(User)-IP(IP|LocalIP)], [운영체제(OS)-파일경로(FilePath)-파일명(FileName)] 등 데이터 속성에 대해서 의미적으로 이해하고 있다면 개념적으로 계층을 정의하는 것이 가능합니다.

 

#Data Cube #Roll-up #Drill-down

어떠한 관점에서 데이터를 해석하는가에 따라 다양한 기준이 생기게 됩니다. 바로 이전에 정의해봤던 계층이 분석 기준이 되며 이를 차원(Dimension)이라고 표현하기도 합니다. 위에서 정의했던것처럼 차원은 n개가 존재할 수 있으며, 이러한 다차원 구조의 모델링 결과 중 대표적인 데이터 구조가 데이터 큐브(Data Cube)입니다. 이 구조를 머릿속에서 인식시켜야 하며, 필요와 목적에 따라 활용할 수 있어야 합니다. 

image (9)

데이터 큐브를 활용할 수 있는 방식 중 롤업(Roll-up)과 드릴다운(Drill-down)이 있습니다. 우리가 이미 잘 알고있는 각 차원의 계층 수준을 위 아래로 조절하며 데이터를 분석 및 해석하는 것입니다. 간단하게, 타임라인을 기준으로 년도별, 분기별, 월별 분석을 하는 것으로 쉽게 이해가 가능합니다. 이러한 움직임은 행위이벤트 유형(Type)이나, 부서(Department), 파일(File)을 기준으로도 적용이 가능합니다. 복잡하게 다양한 기준들이 동시에 움직이는 데이터 큐브를 상상해보세요.

데이터 큐브의 형태를 어느정도 이해했다면 TDIR(Threat Detection and Incident Response)하거나 실질적이며 효율적인 탐지로직을 적용시키기 위해 DE(Detection Engineering)에 활용하는 것이 가능합니다. 다양한 측면의 분석 기준의 관계들을 이해한 상태에서 VP(View Point)를 현재 상황에 맞게 다양하게 이동시켜 보세요. 최종 분석 목적에 따라 조사(Investigament) 과정에 생길 수 있는 수 많은 접근 방식들 중 가장 최적화되고 생산성있는 방식을 찾아낼 수 있게 됩니다. 

image (8)

Detection Engineering

이렇게 Data Cube를 대상으로 VP를 적용시키는 방식은 단일 결과를 만들지 않으며, 데이터 차원을 점점 줄여나가거나 다중 데이터 큐브를 가지고 분석하는 경우에도 아주 많은 분석 결과들이 생길 수 있습니다. 또한, 데이터는 기업의 운영환경에 따라 다양하게 바뀔 수 있으며, 어느 하나 동일하게 만들어지지 않습니다. 

EDA(Exploratory Data Analysis), Data Mining 및 Data Wragling 하거나 ML/DL의 모델을 만들고 적용시키거나 경보 및 위협을 기반으로 분석을 하거나 결론적으로 이해해야 합니다. 이를 위해 필요한 기반 지식이나 전문 분야의 경험 또한 항상 같은 정답은 없으며, 현재의 데이터를 기반으로 해석해야 합니다.

대응전략을 수립하거나  혹은 직접 분석을 해야하는 입장이라면 반드시 분석의 생산성을 고려해야 합니다. 분석의 생산성을 만들고 싶다면 데이터에 대한 관점을 가져야 합니다. 분석의 대상이 되는 데이터는 초기 분석시 방향성을 결정하는 데 큰 기준이 될 수 있습니다. 초기 분석의 목적 및 방향이 잘못되었다면 전체적인 사실을 해석하는 데 오류가 발생할 수 있으며, 확실한 목적없이 끝없는 분석을 하고있는 자신을 발견할 수 있습니다. 

EDA(Exploratory Data Analysis)

#Graph #Pattern

Graph theory Graph theory
Wikipedia, Graph theory Wikipedia, Graph theory

Timeline investigation tools for law enforcement

Cambridge-Intelligence, Timeline investigation tools for law enforcement

또 다른 데이터의 구조는 그래프(Graph)입니다. 차트나 도형, 시각적인 개념을 이야기하는 것이 아닌 데이터 구조가 가지고 있는 관계성을 모델링하고 활용하는 것을 의미합니다. 분석이 되는 대상을 객체 자체를 의미하는 노드(Node) 뿐만 아니라 관계(Relation)로 확장시킬 수 있습니다. 

이러한 관계 정보는 데이터 구조에 포함된 의미적(Semantic) 관계를 정의할 수 있기에 필요에 따라서는 분석결과에 확장성을 가지게 됩니다. 노드와 관계로 확장된 데이터 구조 시공간(타임라인, 뷰 레벨 등)을 초월하며 데이터 큐브와 결합시키면 쉽사리 해결할 수 없는 문제들을 쉽게 해결하게 해주기도 합니다. 

또한, EDR의 행위이벤트는 기존의 디지털 아티팩트와는 다르게 실시간으로 수집됨에 따라 행위의 패턴(Pattern)을 가지게 됩니다. 이러한 패턴은 행위를 정상/비정상으로 구분하게 해주는 판단의 기준이 되며, 언제부터 언제까지 혹은 그 때 그 순간의 상황을 설명하는 증거가 됩니다. 

운영체제의 기본적인 패턴, 인프라에서 발생하는 정상/비정상적인 패턴 및 공격자들의 공격기법에 따라 발생하는 공격패턴까지 이 모든것을 인지하고 정의하는 것은 좀 더 어려운 문제입니다. 운영체제의 동작방식, 운영환경에 대한 이해와 경험 및 공격기법을 Techniques 수준까지 이해하며 정의할 수 있는 도메인의 전문적인 지식과 경험을 요구하게 됩니다. 그래프와 패턴의 복합적인 적용 문제는 추후에 다시 다루어보겠습니다.

 

#Business Intelligence #Data Visualization #Dashboard

이러한 개념들을 자연스럽게 인지하면서 활용할 수 있다면 알람 더미 혹은 데이터 더미에서 위협을 찾는 것이 가능해집니다. EDR은 네오가 보는 세상을 엔드포인트 행위이벤트를 통해 구체화시킬 수 있으며, 목적에 따라 적절한 기능을 복합적으로 활용해야 합니다. 대표적으로는 “대시보드”, “공격 스토리라인”, “이벤트 조사”가 있습니다. 그 중 대시보드는 데이터를 활용하기에 가장 적합한 기능입니다.

슬기로운 EDR 대시보드 활용하기에서 대시보드의 기본적인 개념 및 사용법들을 참고하시되, 좀 더 자유롭게 사용할 줄 알아야 합니다. 기업 혹은 보안 서비스를 운영하고 있는 분석가라면 데이터를 최대한 활용하여 대시보드를 분석도구로 사용하세요. 그리고 분석하여 의미있게 해석한 결과를 표현하여 BI(Business Intelligence)도구로 활용하세요. 

태블로(Tableau)와 같은 아름답고 마치 데이터를 살아있게하며 활용하기 좋은 인프라를 가지고 있는 엄청난 도구가 있지만 분석을 목적으로 구성된 데이터 파이프라인이 이미 존재하고 분석하기 좋은 형태로 정제된 데이터를 만나는 상황 및 환경을 가지기는 현실적으로 쉽지가 않습니다. 또한, 기본적으로 폐쇄적인 성격을 가지고 있는 기업의 민감데이터를 인사이트를 줄 수 있는 형태의 보고서로 만드는 것이 부담스럽기도 합니다.

EDR에서 자체적으로 제공하고 있는 대시보드는 기본적인 운영 목적을 포함하여 분석 및 BI 형태로도 활용할 수 있으며, 간단한 문제 사례를 통해 EDR을 활용하는 방법을 공유드리겠습니다. 주어진 문제는 1년동안 발생한 위협알람 중에서 실제 위협을 효과적으로 찾는 방식을 적용해 보는 것입니다. 이 문제를 해결하기 위해서 적용하는 방식은 위협 스코어링입니다. 


#Drill-down

아주 간단한 개념으로 기업의 조직도에 따라 부서, IP를 하나의 차원으로 드릴다운하는 것입니다. VP가 존재하는 중심이 되는 차원은 위협분류 정보이며 [DetectType → DetectSubType → RuldID]의 계층 구조를 보유하며, 대상이 되는 위협정보를 실제로 적용되는 탐지로직을 단위로 정의되는  RuleID의 개수를 합산하여 점수화시킵니다. 관련 계층은 아래는 관련 정보를 바(Bar) 차트로 만든 화면입니다.

Drill-down

이러한 RuleID는 운영체제에서 동작하는 프로세스의 특징에 따라 단일, 수십 혹은 수백만까지 발생할 수 있습니다. 이를 당연한 결과로서 인지해야 하지만 현재 적용하고 있는 분석방식의 결과에는 의미상 적합하지 않습니다. 이를 위해 RuleID의 측정 항목을 데이터가 가지고 있는 고유값으로 계산하여 동일하게 발생한 결과에 대한 계산 수치를 제외하겠습니다.

바차트

이제 경보가 많이 발생한 부서와 IP정보가 스코어링되었습니다. 현재 부서→IP로 이어지는 계층에 대해서 부서 레벨에서 확인된 결과를 보고 있습니다. 이제 특정 부서를 기준으로 드릴다운하여 결과를 확인하겠습니다. 

💡 [TIP] 대시보드에 위치한 위젯간 데이터를 상호 간 전달할 수 있습니다.

1. 이를 위해서 각 위젯 옵션에서 링크 옵션을 활성화 시킨 후 연결된 위젯에 입력된 검색 결과가 반영되도록 설정합니다.
    1. 링크 옵션은 “연결된 위젯에 출력” 외 다른 기능과 연결시킬 수 있습니다.
2. 입력 값을 선택하여 반영시킬 수 있도록 그리드(Grid) 형태의 위젯을 추가합니다.
3. 결과 값 중 조건으로 원하는 값을 클릭하여 조건에 추가합니다.

위젯설정

위젯설정 위젯설정

위협스코어링

입력된 값을 부서정보를 기준으로 IP 결과에 조건으로 반영된 것을 확인할 수 있습니다. 이러한 형태로 스코어링된 결과를 기준으로 한번 더 드릴다운합니다. 현재 기준으로 가장 많이 발생한 IP 정보를 동일하게 조건으로 넣어보겠습니다. 그 결과 기존의 부서. IP의 바 차트에서 선택된 결과만 확인됩니다.

Untitled (16) Untitled (17)

 

#VP Change #VP Switch

 다차원에서 값을 적용시킨 상황에서 타임라인에 대한 차원을 추가하여 VP를 움직입니다.현재 설정된 데이터를 타임라인 상에 분포를 확인해보겠습니다. 필요에 따라 산포도나 라인차트를 통해 결과를 확인하는 방법도 있습니다. 테스트 환경이다 보니 실제 환경보다 많이 발생한 것을 확인할 수 있습니다.

실제 조직의 데이터를 보면 타임라인 상에 발생하는 빈도와 패턴이 존재합니다. 또한, 특정 기간 내 경보의 패턴 및 군집화되어있는 것을 확인할 수 있는 데, 이럴 경우 “공격 스토리라인”과 “이벤트 조사”를 통해 한 단계 자세하게 데이터를 확인해볼 필요가 있습니다. 이러한 분포는 관련된 다른 차원의 데이터들을 이용해 상호작용할 수 있도록 대시보드를 구성합니다.

Untitled (18)

아래처럼 “이벤트 세부유형”, “RuleID”, “프로세스명”, “파일명”에 대해서 개수를 기준으로 정렬된 그리드를 바 차트에 적용할 조건(이벤트 세부 유형, RuleID, 프로세스명, 파일명 등)으로 구성한 후에 값을 하나씩 적용해가면서 결과를 확인합니다. 그 후 특정 패턴이나 분포를 기준으로 점차 패턴 및 정보가 구체화되면, ProcGuid를 이용해 위협관리 목록이나 이벤트 조사로 연결합니다. ProcGuid는 발생하는 행위이벤트의 그룹ID입니다. 이렇게 대시보드를 이용해 분석의 UserFlow를 구성하면 불필요한 움직임을 줄일 수 있습니다.

Untitled (19)

 

#Summary

이렇게 데이터 큐브 구조를 이용한 분석 방식을 EDR에 이용해 스코어링 방식으로 적용해보았습니다. 위에서 설명했던 개념적인 부분들을 실제로 적용하지 않는다면 위협경보에 대한 결과를 일일이 분석 및 해석하는 작업을 해야하며, 데이터 구조를 활용하지 않는 보안조직은 경보를 처리하기 위한 피로도가 점점 쌓이고 탐지민감도 하락과 수동적인 운영방식을 적용할 수 밖에 없습니다.

간단하게 계산해보면, 2023년 올해 발생한 경보의 건수가 약 1500건이라고 가정을 해보면 1500건의 분석 및 해석해야 합니다. 이는 실제로 관련 정보를 솔루션의 n 개의 기능과 화면으로 확인해야 한다고 하면 1500*n번의 손목의 움직임과 뇌의 사용을 소비하게 합니다. 터미네이터가 아니라면 점점 신체를 오래쓰기가 힘들게 되는 상황이 만들어집니다.

리소스가 1500번 소비되게끔 할 것인지 효과적으로 분석 전략을 도입하여 분석 횟수를 100번으로 줄여나갈지 이것은 선택사항이 아닌 당연히도 적용해야할 부분입니다. 보안조직을 건강하고 능동적인 상태로 개선 및 유지하기 위해서는 이렇게 KDD를 적용하여 데이터 기반의 분석전략을 적용하세요. 또한, 지속적으로 결과를 검토 및 개선하여 예외된 결과에 대한 책임과 두려움을 제거하세요.

궁극적으로는 기업의 대응전략에 데이터 기반의 분석기법을 운영의 전반적인 과정에 적용하고 주기적으로 검토하고 개선해서 경보를 보안조직을 무너뜨리고 와해시키는 요소보다는 피로도를 줄이고 분석 생산성을 개선할 수 있는 도구로 활용하시길 바랍니다.

물론, 쉬운일은 아니지만 장기적인 계획에 반영하여 데이터를 기반으로 사실적인 보안조직을 만드는 것이 스카이넷을 만들지 않는 미래를 만들게 됩니다. 또한, 추후 발생할 수 있는 상황에 대한 예측을 시도하며, 실질적으로 보안 수준을 향상시킬 수 있는 의사결정을 만드세요.


#Hands-on

Untitled (20)

Untitled (21)

 #References

- DATA MINING: Concepts and Techniques (Third Edition) - Jiawei Han, Micheline Kamber, Jian Pei
- Graph Algorithms: Practical Examples in Apache Spark & Neo4j - Mark Needham & Amy E. Hodler
- Wikipedia, Graph theory

 

글쓴이. 유현

l3Iadk | Threat Hunter | Genians Security Center

지니언스 시큐리티 센터에서 공격자 관점의 위협탐지와 EDR을 이용해 위협사냥을 하고 있습니다.


New call-to-action New call-to-action