[인공지능 보안을 배우다] 나홀로 프로젝트 도전_0213

daniayo·2025년 2월 13일

이번 주는 계속 투썸에서 바나나라떼만 마신 것 같다. 너무 맛있당 ㅎㅎ
오늘의 목표 : 진짜 많이 힘들 것 같긴 하지만, 12장 끝내기!!!!! 할 수 있다!!

12장. 이상 탐지와 비지도 학습

1. 이상 탐지 이해

이상 탐지란 대다수의 데이터와 다른 양상을 보이는 특이하고 이상한(비정상으로 의심되는) 데이터를 찾아내는 기술.
'이상'을 주장하려면 먼저 '정상'에 대한 기준과 근거 데이터가 필요하다.

< 이상 탐지 시스템 구축 시 고려해야 할 필수 요건 >

  • 정상과 이상을 결정하는 기준.
  • 모든 분야에 적용 가능한 만능 이상 탐지 기술은 존재하지 않는다.
  • 이상과 노이즈의 경계선은 종이 한 장 차이다.
  • 이상 데이터를 구하는 것은 어렵다.
  • 수집한 데이터에 정확한 레이블을 지정하는 것이 어렵다.
  • 정상과 이상에 대한 기준은 시간이 지나면서 변화할 수 있다.
  • 악의적인 사용자가 이상 데이터를 변조할 수도 있다.

정상의 '정도'도 성능에 매우 중요한 영향을 미친다. '이상'을 잡아내는 정도를 민감하게 설정할 경우, 과도한 이상 탐지 경보를 받게된다. 특정 분야의 경우 노이즈 데이터를 처리하는 기능이 필요할 수도 있다.

네트워크 침입 탐지 분야와 같이 정상과 이상의 비율이 극단적으로 차이가 날 경우 일반적인 분류 알고리즘을 사용해 모델을 만들 수 없다.

< 이상 탐지 기법 >
(1) 학습 방식과 데이터 유형에 따른 분류

이상 탐지는 지도학습, 반지도, 비지도 학습 방식 모두와 관련이 있다.

  • 지도 학습 : 전체 데이터를 정상과 이상으로 명확이 구분이 가능한 경우
  • 반지도 학습 : 정상 데이터만 명확히 구분이 가능한 경우
  • 비지도 학습 : 정상과 이상 데이터 중 어떠한 데이터도 명확히 분류가 어려운 경우

대부분의 상황에서는 비지도 학습 방식에 의존할 수밖에 없다.

데이터의 형식에 따른 이상 탐지 기술 유형 :

  • 데이터의 형식이 수치형이자 동시에 정적인 데이터(파일 헤더의 필드 값, 크기 등)일 경우 : 데이터가 좌표상에 위치하는 점(point)을 기준으로 정상과 이상 영역을 구분할 수 있다.
  • 데이터가 1차원이고(특징이 하나) 중심 값이 하나인 경우 :
    특정 데이터가 전체 데이터의 중심으로부터 얼마나 떨어져 있는지를 '이상' 데이터 판단 기준으로 사용할 수 있다. 이때, 이상 여부를 결정하는 최적의 임계치를 찾는 별도의 분석 과정이 수반되어야 한다.

데이터가 고차원으로 넘어가면 밀집도, 클러스터, 트리 기반 알고리즘 접근 방식을 사용해야한다.
데이터 형식에 상관없이 데이터의 문맥(contextual)에 따라 이상 여부를 결정하는 문맥 기반 이상 탐지의 경우 인과 관계와 시간 흐름을 함께 고려해 이상 데이터를 판별한다.

시계열(time series) 데이터는 시간의 순서대로 인덱스 된 연속된 점으로 이루어진 데이터이다. 시계열 데이터는 경향(trend), 주기(cycle), 계절성(seasonality), 불규칙성(irregularity) 형태로 구분할 수 있다. 일반적으로 시계열 데이터는 개별 형태보다 규칙성을 가지는 패턴과 불규칙한 패턴이 혼합된 형태를 가진다. 탐지를 원하는 '이상 데이터'의 특성을 고려해 적절한 크기의 샘플링 단위를 결정해주는 과정이 선행되어야 한다.

(2) 이상 탐지 방식에 따른 분류

이상 탐지 기술은 통계 기반, 근접도(proximity) 기반, 밀도(density) 기반, 클러스터링 기반, 트리 기반, 주성분 분석 기반, 확률 기반 방식으로 구분할 수 있다. 정상과 이상을 표현하는 방식과 기술적인 기준의 차이가 있을 뿐 '정상을 규정한 후 정상을 벗어나는 데이터를 이상으로 판정'하는 궁극적인 목표는 모두 동일하다.

  • 통계 기반 방식 : 통계 모델(평균과 분산)을 벗어나는 이상치(outlier)를 찾는 방식

    • 장점 : 구현이 간단하고 직관적
    • 단점 : 데이터가 정규 분포 형태를 띄고있어야함, 고차원 데이터의 이상치를 찾기 어려움
    • 시계열 데이터의 경우 주어진 학습 데이터를 분석해 예측(forecasting) 모델을 만드는 방식으로 이상 데이터를 탐지할 수 있음
    • ARIMA 모형 : 이전의 결과와 이후의 결과 사이에서 발생하는 자기 상관성을 기반으로 하는 AR 모형 + 이전에 생긴 불규칙한 사건이 이후의 결과에 편향성을 초래하는 이동 평균 기반 MR 모형 >> 시간이 지나면서 누적된 데이터의 패턴과 데이터의 경향성 변화(이동 평균)를 모두 고려해 이상 데이터를 찾아내는 방식
  • 근접도, 밀도, 클러스터링 기반 방식 : 주어진 데이터가 충분히 밀집되어 있는 많은 데이터로부터 어느 정도 떨어져 있는지를 판단해 이상 여부를 결정

    • 단순 데이터의 중심으로부터의 거리가 아닌 복잡하게 얽힌 다차원 평면상에서 밀집도와 거리를 이용
    • 장점 : 데이터의 이상 정도를 정량적으로 평가 가능, 다차원의 데이터에도 적용 가능
    • 단점 : 데이터 밀집도가 충분히 높지 않은 경우 적용하기 어려움, 모델 복잡도가 높음, 초기값(K-NN의 K값, DBSCAN의 epsilon 등)을 필요로 함
  • 주성분 분석 기반 방식 : 데이터의 분산을 최대화하는 주성분을 찾는 분석 기술

    • 주성분은 데이터의 패턴을 가장 잘 나타내주는 핵심축
    • 최소한 정상 데이터에 대한 레이블링이 확실하게 정리된 상태(반지도와 지도)에서 수행해야함

      < PCA 기반 이상 탐지 >
      정상 데이터와 이상 데이터가 서로 다른 주성분을 가지게 된다는 것을 이용해 이상 데이터를 탐지하는 방법
      첫째, 정상으로 분류된 학습 데이터를 대상으로 주성분 분석을 수행한다.
      둘째, 가장 높은 비율을 차지하는 상위 성분을 선택한다.
      셋째, 상위 성분을 이용해 마할라노비스 거리를 계산한다.
      넷째, 새롭게 유입되는 데이터의 마할라노비스 거리 값이 크다면 이상 데이터로 판단한다.

2. 비지도 학습과 이상 탐지

LOF(Local Outlier Factor) 알고리즘은 주어진 데이터와 이웃한 데이터들이 근처의 밀집 데이터 영역으로부터 얼마나 떨어져 있는지를 토대로 이상 데이터를 탐지하는 '비지도 기반 학습 방법'이다 = 거리와 상대적인 밀도를 함께 고려하는 방식

특정 데이터로부터 K번째 근접 이웃까지의 거리를 의미하는 k-distance와, k-distance 안에 위치한 데이터의 집합을 이용해 밀집도를 판단한다. LOF에서는 실제 점과 점 사이의 거리 값과 k-distance 값 중 큰 값을 두 점 사이의 거리로 사용한다.

다음으로, 특정 데이터에 대한 lrd(local reachability density)를 계산한다. A가 밀집된 데이터 영역 안에 속한다면 lrd 값이 커지게 되고, 그 반대의 경우 lrd 값이 작아진다.

LOF 값은 결국 점 A를 기준으로 k-distance 거리 안에 위치한 모든 점들의 lrd 평균 값을 k-distance 내의 점 개수 값으로 나눈 것으로 해석 가능하다.
LOF 값이 크다 = 주변에 밀집된 데이터 영역이 없다
LOF는 데이터에서 밀집된 영역이 여러 개라고 하더라도 효과적으로 이상 데이터를 찾아낼 수 있다.

Isolation Forest는 이상결정 트리 기반 이상 탐지 기법으로, 랜덤하게 차원(특징)을 선택해 임의의 기준으로 공간을 분할하는 방식을 사용한다. 데이터 분포에서 많이 벗어난 확실한 이상 데이터의 경우 적은 횟수의 공간 분할로 고립이 가능하며, 분포 내부에 위치한 정상 데이터의 경우 많은 횟수의 공간 분할을 필요로 한다.
공간 분할 횟수 = 트리의 깊이 >> 평균 이상의 트리 깊이 = 정상 데이터
많은 연구 자료와 세미나에서 비지도 기반 학습 알고리즘 중 가장 좋은 성능을 보장해주는 것으로 알려져있다. 트리 만세~~

3. 이상 탐지와 정보 보안

정보 보안 분야에서는 보안 위협으로 의심되는 데이터를 찾아내는 모든 하위 분야에 이상 탐지 기법을 활용할 수 있다.
정보 보안 분야의 이상 탐지는 '이상' 데이터를 탐지하는 위치를 기준으로 크게 호스트 기반네트워크 기반 이상 탐지로 구분할 수 있다.

< 호스트 기반 이상 탐지>
단말 시스템(일반 직원이 사용하는 데스크톱 PC ~ 서버 시스템 모두 포함)에서 발생하는 데이터를 이용해 이상 탐지를 수행하는 방식을 의미한다.

  • 침해사고 탐지 및 분석(외부 위협) : 악성 공격으로 인한 단말 시스템의 침해 여부 탐지 또는 침해사고 발생 시 사고 원인 추적에 활용
  • 정보유출 탐지(내부 위협) : 주요 정보 취급자의 정보유출 탐지 또는 핵심 자산(웹 서버, 데이터베이스 서버 등)의 이상 징후 탐지

데이터는 운영체제 생성 로그와 자체 수집 프로그램 운용을 통해 획득할 수 있다. 윈도우 로그는 별도의 프로그램 설치 없이도 정보 수집으 가능하다는 장점이 있으나, 양질의 정보를 제공하지 않는다.

  • 응용 프로그램 : 응용 프로그램이 기록한 다양한 이벤트 저장
  • 보안 : 로그인 시도, 리소스 사용, 감사 로그 등 다양한 보안 이벤트 저장
  • 시스템 : 윈도우 시스템 구성요소 관련 이벤트 저장

다양한 시나리오를 토대로 이상 탐지 모델을 구축하려면 별도의 로그 기록 프로그램이 필요하다. 최근에는 단말 시스템 수준의 모니터링과 대응 솔루션인 EDR(Endpoint Detection & Response)이 주목받고 있다. 핵심 기능으로는 보안 침해 탐지, 침해 조사, 보안 통제, 치료 등이 있다.
Sysmon은 이벤트 로그 강화 도구로 기본 윈도우 로그에서 잡아내지 못하는 프로세스 생성, 네트워크 연결 등 자세한 시스템 행위 정보를 수집해 로그로 기록한다.


호스트 기반 이상 탐지 모델은 단순히 특정 이벤트 로그에 담긴 정보만으로 침해 사고나 정보유출 여부를 판단할 수 없다. 그보다 시스템에서 발생하는 연속적인 사건을 토대로 시나리오 또는 종합적인 문맥을 반영할 수 있는 모델 구축이 필요하다.

< 네트워크 기반 이상 탐지 >
네트워크를 오가는 패킷을 이용해 이상 탐지를 하는 방식을 의미한다.
패킷 안에는 많은 정보가 담겨 있어 명확한 레이블링이 어렵다. 패킷을 이용한 이상 탐지는 크게 단일 패킷 안에 담긴 데이터여러 패킷이 모여 형성한 흐름 데이터 기반 모델로 나눌 수 있다.

  • 단일 패킷 기반 이상 탐지 모델 : 네트워크 공격에 사용된 헤더 또는 데이터 영역에서 공격과 관련된 정보를 특징으로 추출하고, 이를 이용해 모델을 만든다.
    • 웹 애플리케이션 공격 : HTTP 요청과 관련된 페이로드 부분에 빨간색으로 강조된 문자열 패턴이 발견될 경우 공격이 의심된다는 의미를 가진다. HTTP 통신 방식과 탐지하려는 공격 유형에 따라 서로 다른 특징 추출 방식을 필요로 한다.
    • 쉘코드 탐지 : 쉘코드는 실제로 공격의 목적이 되는 '목적 코드'를 의미한다. 쉘코드는 패킷의 다양한 위치에 삽입이 가능하며, 인코딩이 될 경우 찾아내기가 어렵고, 무엇보다 실제 쉘코드가 아님에도 해당 바이트를 낸부에 가지고 있기만 하더라도 과도하게 탐지되는 문제가 발생할 수 있다.
    • 네트워크 스캔 : SYN/FIN 스캔은 공격자가 열려 있는 포트 탐색을 위해 SYN과 FIN을 설정한 패킷을 대상 포트에 전송하는 방식을 의미한다. 네트워크 스캔 시도의 경우 명확한 플래그 값으로 찾아낼 수 있지만 쉘코드와 마찬가지로 해당 정보가 반드시 위협으로 보장되는 것은 아니다.

패킷은 시간의 흐름을 가지는 정보를 기록한 데이터 형식으로, 단일 패킷 안에 담긴 정보만으로 정확한 이상 탐지 모델을 구축하기 어렵다. 따라서 패킷의 흐름 정보를 담고 있는 특징과 함께 사용해야 한다.

  • 흐름 데이터 기반 이상 탐지 모델 : ARIMA 모형 & Elastic 사의 X-Pack 플러그인에서 제공하는 머신러닝 기능 등이 있다.

4. 딥러닝과 보안 2 - 오토 인코더(Auto Encoder)

오토 인코더는 입력에서 계산된 출력이 입력과 비슷해지도록 비지도 학습 방식으로 훈련한 신경망을 의미한다. 데이터를 저차원으로 압축한 후(encoder) 다시 원래 데이터를 복원하는(decoder) 구조로 이루어진다.
데이터 압축, 노이즈 제거, 차원 축소, 이상 탐지 등에 사용할 수 있다.
오토 인코더는 일반적인 압축이 아닌 다차원 데이터 영역에서 상대적으로 중요도가 낮은 데이터를 제외하는 방식으로 정보를 압축하는 손실 압축 방식을 사용한다. 오직 선형 상관성만 고려해 차원을 축소하는 주성분 분석에 비해 복잡한 상관성을 가지는 데이터에서도 주요 정보를 추출할 수 있다.


일반적인 딥러닝 모델과 달리 오토 인코더는 학습 시 별도의 정답지(label)를 필요로 하지 않는다. 학습을 통해 재구성한 데이터가 원본 데이터와 최대한 가까워지도록 가중치를 조정하는 방식으로 동작한다.

13장. PJ2_네트워크 이상 탐지 모델(프로젝트 개요)

1. 프로젝트 개요

(1) 프로젝트 목적
두 번째 프로젝트에서는 비지도 학습 기반 네트워크 이상징후 탐지 모델을 구축해본다. 통합 보안 로그 관리 시스템 구축을 통해 보안 로그의 특성을 이해하고 비지도 기반 이상 탐지 기법을 실제 탐지 시스템에 적용하는 방법을 이해하는 것이 이번 프로젝트의 핵심 목표이다!

(2) 프로젝트 진행 과정

1. 데이터 수집

  • 네트워크 구성 : 데이터 수집 및 탐지 모델 배치를 위한 네트워크 환경을 구성한다.
  • SIEM 구축 : 외부 인터넷과 내부망을 연결하는 관문 역할을 하는 우분투 가상머신에 SIEM을 구축한다. ELK 스택을 이용해 SIEM 데이터베이스 및 UI를 구성한다. 여기에 방화벽 및 IDS 로그, 네트워크 패킷 데이터를 연결해 구축을 완료한다.
  • 샘플 데이터 수집 : 네트워크 데이터 분석 및 특징 추출을 위해 '통제된' 환경하에 네트워크 트래픽을 발생시키고 이 데이터를 수집한다.

2. 모델링

  • 데이터 분석 : 데이터가 오류 없이 정삭적으로 잘 수집되었는지 검사하고, 필요한 경우 탐지 모델에 사용하기 적합한 형태로 데이터 추출 후 변환한다.
  • 특징 공학 : 네트워크 이상 징후 탐지에 도움을 줄 수 있는 특징을 추출한다. 네트워크 흐름 파악을 위해 네트워크를 오가는 패킷 흐름을 주된 특징으로 사용하고, 여기에 IDS 로그에서 탐지된 결과를 반영해 위험도에 따른 가중치를 부여한다.
  • 모델링 : 이상 탐지 모델에서 '이상'이라고 판단한 데이터를 그대로 이상 징후로 처리하지 않고 별도의 인터페이스를 통해 분석가가 의사결정을 할 수 있도록 구성한다. 또한 모델링 단계에서 만든 탐지 모델을 시각화하는 UI를 별도로 제작한다.

3. 배치

이상 징후 탐지 모델은 지속적으로 데이터를 수집하고 이상 여부를 판단해 성능을 개선시켜야 한다. 따라서 파이썬으로 작성한 탐지 모듈이 백그라운드에서 계속 동작하면서 이상 징후를 탐지하고, 그 결과를 키바나 대시보드에서 확인하는 형태를 사용한다.

오늘의 공부 끄으-읕!
환경 구축부터 시작하면 될 것 같다! 꺄호! 뿌듯한 하루구만~

profile
댜니에요

0개의 댓글