이번 주는 계속 투썸에서 바나나라떼만 마신 것 같다. 너무 맛있당 ㅎㅎ
오늘의 목표 : 진짜 많이 힘들 것 같긴 하지만, 12장 끝내기!!!!! 할 수 있다!!
이상 탐지란 대다수의 데이터와 다른 양상을 보이는 특이하고 이상한(비정상으로 의심되는) 데이터를 찾아내는 기술.
'이상'을 주장하려면 먼저 '정상'에 대한 기준과 근거 데이터가 필요하다.
< 이상 탐지 시스템 구축 시 고려해야 할 필수 요건 >
- 정상과 이상을 결정하는 기준.
- 모든 분야에 적용 가능한 만능 이상 탐지 기술은 존재하지 않는다.
- 이상과 노이즈의 경계선은 종이 한 장 차이다.
- 이상 데이터를 구하는 것은 어렵다.
- 수집한 데이터에 정확한 레이블을 지정하는 것이 어렵다.
- 정상과 이상에 대한 기준은 시간이 지나면서 변화할 수 있다.
- 악의적인 사용자가 이상 데이터를 변조할 수도 있다.
정상의 '정도'도 성능에 매우 중요한 영향을 미친다. '이상'을 잡아내는 정도를 민감하게 설정할 경우, 과도한 이상 탐지 경보를 받게된다. 특정 분야의 경우 노이즈 데이터를 처리하는 기능이 필요할 수도 있다.
네트워크 침입 탐지 분야와 같이 정상과 이상의 비율이 극단적으로 차이가 날 경우 일반적인 분류 알고리즘을 사용해 모델을 만들 수 없다.
< 이상 탐지 기법 >
(1) 학습 방식과 데이터 유형에 따른 분류
이상 탐지는 지도학습, 반지도, 비지도 학습 방식 모두와 관련이 있다.
대부분의 상황에서는 비지도 학습 방식에 의존할 수밖에 없다.
데이터의 형식에 따른 이상 탐지 기술 유형 :
데이터가 고차원으로 넘어가면 밀집도, 클러스터, 트리 기반 알고리즘 접근 방식을 사용해야한다.
데이터 형식에 상관없이 데이터의 문맥(contextual)에 따라 이상 여부를 결정하는 문맥 기반 이상 탐지의 경우 인과 관계와 시간 흐름을 함께 고려해 이상 데이터를 판별한다.
시계열(time series) 데이터는 시간의 순서대로 인덱스 된 연속된 점으로 이루어진 데이터이다. 시계열 데이터는 경향(trend), 주기(cycle), 계절성(seasonality), 불규칙성(irregularity) 형태로 구분할 수 있다. 일반적으로 시계열 데이터는 개별 형태보다 규칙성을 가지는 패턴과 불규칙한 패턴이 혼합된 형태를 가진다. 탐지를 원하는 '이상 데이터'의 특성을 고려해 적절한 크기의 샘플링 단위를 결정해주는 과정이 선행되어야 한다.
(2) 이상 탐지 방식에 따른 분류
이상 탐지 기술은 통계 기반, 근접도(proximity) 기반, 밀도(density) 기반, 클러스터링 기반, 트리 기반, 주성분 분석 기반, 확률 기반 방식으로 구분할 수 있다. 정상과 이상을 표현하는 방식과 기술적인 기준의 차이가 있을 뿐 '정상을 규정한 후 정상을 벗어나는 데이터를 이상으로 판정'하는 궁극적인 목표는 모두 동일하다.
통계 기반 방식 : 통계 모델(평균과 분산)을 벗어나는 이상치(outlier)를 찾는 방식
근접도, 밀도, 클러스터링 기반 방식 : 주어진 데이터가 충분히 밀집되어 있는 많은 데이터로부터 어느 정도 떨어져 있는지를 판단해 이상 여부를 결정
주성분 분석 기반 방식 : 데이터의 분산을 최대화하는 주성분을 찾는 분석 기술
< PCA 기반 이상 탐지 >
정상 데이터와 이상 데이터가 서로 다른 주성분을 가지게 된다는 것을 이용해 이상 데이터를 탐지하는 방법
첫째, 정상으로 분류된 학습 데이터를 대상으로 주성분 분석을 수행한다.
둘째, 가장 높은 비율을 차지하는 상위 성분을 선택한다.
셋째, 상위 성분을 이용해 마할라노비스 거리를 계산한다.
넷째, 새롭게 유입되는 데이터의 마할라노비스 거리 값이 크다면 이상 데이터로 판단한다.
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는 이상결정 트리 기반 이상 탐지 기법으로, 랜덤하게 차원(특징)을 선택해 임의의 기준으로 공간을 분할하는 방식을 사용한다. 데이터 분포에서 많이 벗어난 확실한 이상 데이터의 경우 적은 횟수의 공간 분할로 고립이 가능하며, 분포 내부에 위치한 정상 데이터의 경우 많은 횟수의 공간 분할을 필요로 한다.
공간 분할 횟수 = 트리의 깊이 >> 평균 이상의 트리 깊이 = 정상 데이터
많은 연구 자료와 세미나에서 비지도 기반 학습 알고리즘 중 가장 좋은 성능을 보장해주는 것으로 알려져있다. 트리 만세~~
정보 보안 분야에서는 보안 위협으로 의심되는 데이터를 찾아내는 모든 하위 분야에 이상 탐지 기법을 활용할 수 있다.
정보 보안 분야의 이상 탐지는 '이상' 데이터를 탐지하는 위치를 기준으로 크게 호스트 기반과 네트워크 기반 이상 탐지로 구분할 수 있다.
< 호스트 기반 이상 탐지>
단말 시스템(일반 직원이 사용하는 데스크톱 PC ~ 서버 시스템 모두 포함)에서 발생하는 데이터를 이용해 이상 탐지를 수행하는 방식을 의미한다.
데이터는 운영체제 생성 로그와 자체 수집 프로그램 운용을 통해 획득할 수 있다. 윈도우 로그는 별도의 프로그램 설치 없이도 정보 수집으 가능하다는 장점이 있으나, 양질의 정보를 제공하지 않는다.
다양한 시나리오를 토대로 이상 탐지 모델을 구축하려면 별도의 로그 기록 프로그램이 필요하다. 최근에는 단말 시스템 수준의 모니터링과 대응 솔루션인 EDR(Endpoint Detection & Response)이 주목받고 있다. 핵심 기능으로는 보안 침해 탐지, 침해 조사, 보안 통제, 치료 등이 있다.
Sysmon은 이벤트 로그 강화 도구로 기본 윈도우 로그에서 잡아내지 못하는 프로세스 생성, 네트워크 연결 등 자세한 시스템 행위 정보를 수집해 로그로 기록한다.

호스트 기반 이상 탐지 모델은 단순히 특정 이벤트 로그에 담긴 정보만으로 침해 사고나 정보유출 여부를 판단할 수 없다. 그보다 시스템에서 발생하는 연속적인 사건을 토대로 시나리오 또는 종합적인 문맥을 반영할 수 있는 모델 구축이 필요하다.
< 네트워크 기반 이상 탐지 >
네트워크를 오가는 패킷을 이용해 이상 탐지를 하는 방식을 의미한다.
패킷 안에는 많은 정보가 담겨 있어 명확한 레이블링이 어렵다. 패킷을 이용한 이상 탐지는 크게 단일 패킷 안에 담긴 데이터와 여러 패킷이 모여 형성한 흐름 데이터 기반 모델로 나눌 수 있다.
패킷은 시간의 흐름을 가지는 정보를 기록한 데이터 형식으로, 단일 패킷 안에 담긴 정보만으로 정확한 이상 탐지 모델을 구축하기 어렵다. 따라서 패킷의 흐름 정보를 담고 있는 특징과 함께 사용해야 한다.
오토 인코더는 입력에서 계산된 출력이 입력과 비슷해지도록 비지도 학습 방식으로 훈련한 신경망을 의미한다. 데이터를 저차원으로 압축한 후(encoder) 다시 원래 데이터를 복원하는(decoder) 구조로 이루어진다.
데이터 압축, 노이즈 제거, 차원 축소, 이상 탐지 등에 사용할 수 있다.
오토 인코더는 일반적인 압축이 아닌 다차원 데이터 영역에서 상대적으로 중요도가 낮은 데이터를 제외하는 방식으로 정보를 압축하는 손실 압축 방식을 사용한다. 오직 선형 상관성만 고려해 차원을 축소하는 주성분 분석에 비해 복잡한 상관성을 가지는 데이터에서도 주요 정보를 추출할 수 있다.

일반적인 딥러닝 모델과 달리 오토 인코더는 학습 시 별도의 정답지(label)를 필요로 하지 않는다. 학습을 통해 재구성한 데이터가 원본 데이터와 최대한 가까워지도록 가중치를 조정하는 방식으로 동작한다.
(1) 프로젝트 목적
두 번째 프로젝트에서는 비지도 학습 기반 네트워크 이상징후 탐지 모델을 구축해본다. 통합 보안 로그 관리 시스템 구축을 통해 보안 로그의 특성을 이해하고 비지도 기반 이상 탐지 기법을 실제 탐지 시스템에 적용하는 방법을 이해하는 것이 이번 프로젝트의 핵심 목표이다!
(2) 프로젝트 진행 과정

1. 데이터 수집

2. 모델링
3. 배치
이상 징후 탐지 모델은 지속적으로 데이터를 수집하고 이상 여부를 판단해 성능을 개선시켜야 한다. 따라서 파이썬으로 작성한 탐지 모듈이 백그라운드에서 계속 동작하면서 이상 징후를 탐지하고, 그 결과를 키바나 대시보드에서 확인하는 형태를 사용한다.
오늘의 공부 끄으-읕!
환경 구축부터 시작하면 될 것 같다! 꺄호! 뿌듯한 하루구만~