오늘날처럼 빠르게 변화하는 세상에서 사이버 위협 환경은 점점 더 복잡해지고 있으며, 시그니처 기반 시스템은 엔드포인트 보호에 뒤처지고 있습니다. 모든 주요 보안 솔루션은 오늘날의 지능형 위협으로부터 엔드포인트를 보호하기 위해 계층화된 보안 모델을 기반으로 구축됩니다. 머신러닝 기반 탐지 또한 이러한 계층화된 보안 모델의 필수적인 구성 요소가 되고 있습니다. 이 글에서는 Quick Heal이 엔드포인트 보호를 위해 자사 제품에 머신러닝(ML)을 어떻게 통합하고 있는지 살펴보겠습니다.
보안 업계에서는 이미 머신러닝(ML) 또는 AI(인공지능)를 적극적으로 활용하고 있습니다. Quick Heal은 다양한 활용 사례에 머신러닝을 활용하고 있습니다. 그중 하나는 다단계 보안의 초기 단계입니다. 이 단계의 주요 목적은 특정 파일이나 샘플의 의심 여부를 판단하는 것입니다. 의심스러운 것으로 판단되면 다음 단계의 보안 단계로 넘어갑니다. 이러한 필터링을 통해 다른 보안 계층의 부하를 줄일 수 있습니다.
여기에서는 ML을 사용하여 PE 파일의 정적 분석을 수행하여 다음 보안 계층으로 전송되는 트래픽을 필터링하는 방법에 대해 논의하겠습니다.
머신 러닝 개요
머신러닝에서는 컴퓨터가 명시적으로 프로그래밍하는 대신 데이터로부터 학습할 수 있는 능력을 부여하고자 합니다. 문제 정의에서 머신러닝의 힘을 활용하여 정상 파일과 악성 파일의 알려진 데이터를 기반으로 학습되고 알려지지 않은 샘플 파일의 특성을 더욱 예측할 수 있는 모델을 만들 수 있습니다. 머신러닝 모델을 구축하는 데 있어 핵심 요건은 학습용 데이터를 확보하는 것입니다. 또한, 데이터에 정확한 레이블이 지정되어야 합니다. 그렇지 않으면 결과와 예측에 오해의 소지가 있을 수 있습니다.
이 과정은 다수의 정상 샘플과 악성 샘플을 수집하고 레이블을 지정하여 훈련된 세트를 구성하는 것으로 시작됩니다. 이 샘플에서 특징을 추출합니다(모델의 경우, 수집된 모든 샘플의 PE 헤더에서 특징을 추출했습니다). 그런 다음, 아래 블록 다이어그램과 같이 이러한 특징 행렬을 모델에 제공하여 모델을 훈련합니다.

훈련된 모델에 알려지지 않은 샘플의 특징 배열이 제공됩니다. 모델은 해당 샘플에 대한 신뢰도 점수를 반환하여 해당 파일이 정상 파일 세트와 유사한지, 아니면 악성 파일 세트와 유사한지 판단합니다.

기능 선택
특징은 관찰 대상의 개별적인 측정 가능한 속성이나 특성입니다. 예를 들어, 고양이와 개를 분류하려면 "털 종류", "다른 동물과 어울리는 것을 좋아하는지 혼자 있는 것을 좋아하는지", "짖는지 여부", "다리 수", "매우 날카로운 발톱" 등과 같은 특징을 사용할 수 있습니다.
좋은 특성을 선택하는 것은 모든 ML 모델 학습에서 가장 중요한 단계 중 하나입니다. 위 예시에서 볼 수 있듯이, 학습 특성으로 "다리 수"를 선택하면 개와 고양이의 다리 수가 같다고 분류할 수 없습니다. 하지만 "짖는지 아닌지"를 선택하면, 개는 짖고 고양이는 짖지 않으므로 좋은 분류기가 될 것입니다. 또한 "발톱의 날카로움"도 좋은 특성이 될 것입니다.
마찬가지로, 악성 샘플과 정상 샘플을 구분하려면 특징이 필요합니다. 따라서 먼저 다음과 같은 특징을 도출합니다. pe 파일 헤더 계산량이 적은 속성을 추출할 수 있습니다. "첫 번째 섹션에 진입점 존재", "리소스 존재", "섹션 이름에 특수 문자 포함"과 같은 부울 유형 피처가 있습니다. 또한 "섹션 수", "파일 시간/날짜 스탬프" 등과 같은 개수 또는 값 기반 피처도 있습니다. 이러한 피처 중 일부는 매우 강력하여 악성 샘플과 양성 샘플을 구분하는 효과적인 구분자로 작용하는 경우가 많습니다. 다음 두 가지 예를 통해 이를 설명하겠습니다. 아래 그래프 1.0에서 볼 수 있듯이, 대부분의 경우 정상 파일의 진입점 섹션은 0번째 섹션이지만 악성 파일의 경우 다를 수 있습니다.

마찬가지로, 파일의 "첫 번째 빈 섹션" 인덱스의 경우 다음과 같은 플롯을 얻습니다.

기능 스케일링
모델에 입력하는 데이터는 적절하게 스케일링되어야 합니다. 예를 들어, 다음과 같은 속성의 값은 진입점 주소 = 307584는 다음과 같은 속성 값과 비교했을 때 매우 큰 값을 갖게 됩니다. 섹션 수 = 5. 이렇게 큰 차이로 인해 모델이 제대로 학습되지 않을 수 있습니다. 최소_최대 스케일링 데이터 크기를 조정합니다. 여기서는 모든 특성을 0에서 1까지 동일한 범위로 맞춥니다.
차원 축소
다음 단계는 차원 감소데이터에는 서로 연관되어 있는 특성 그룹이 있는 경우가 많습니다. 즉, 한 특성이 변경되면 다른 특성도 어느 정도 변경됩니다. 이러한 특성을 제거하거나 결합하면 공간과 시간을 절약하고 머신 러닝 모델의 성능을 향상시킬 수 있습니다. 원치 않거나 중복되는 특성의 수를 줄이는 이러한 과정을 차원 축소라고 합니다. 이를 통해 정확도를 저하시키지 않고 모델을 더 빠르게 학습하고 테스트할 수 있습니다. PCA(주성분 분석)를 사용해 보았습니다. K-베스트를 선택하세요 다양한 알고리즘을 통해.
PCA 가능한 상관관계가 있는 변수의 관찰 집합을 선형적으로 상관관계가 없는 변수의 값 집합으로 변환하는 데 사용됩니다. 주성분PCA는 표본과 주성분 사이의 거리가 최소화되도록 주성분을 찾으려고 합니다. 표본과 주성분 사이의 거리가 짧을수록 분산이 더 많이 유지됩니다.
거의 모든 데이터를 포괄하는 데 필요한 주성분(PC)의 개수를 구하기 위해 누적 분산을 주성분 개수에 대한 그래프를 그릴 수 있습니다. 데이터에 PCA를 적용하고 조정하면 다음과 같은 결과를 얻을 수 있습니다. 163 PC를 거의 1000 다양한 특성이 있습니다. 즉, 이제 전체 데이터 세트를 거의 포괄할 수 있는 163개의 특성으로 모델을 학습할 수 있습니다.

테스트 데이터를 163개의 주성분으로 변환하고 분류 모델을 적용할 수 있습니다. PCA는 잘 작동하지만, 예측 전에 클라이언트 측에서 PC를 계산해야 합니다. 따라서 카이제곱 통계량을 사용하는 Select K-Best를 선택했습니다. 이 방법은 전체 데이터를 비교하여 중요도를 파악하여 k개의 가장 우수한 특징을 도출합니다.
트레이닝
다음 단계는 모델 학습입니다. 학습하는 동안 다음 매개변수에 집중해야 합니다.
모델의 크기: 모든 알고리즘을 통해 생성된 모델은 최적의 크기를 가져야 하며, 이를 업데이트하는 데 최소한의 노력이 필요해야 합니다.
훈련 시간: 알고리즘이 학습하는 동안 사용하는 시간과 리소스는 최소화되어야 합니다(하지만 이것이 가장 중요한 요구 사항은 아닙니다).
예측 시간: 예측 기능은 가능한 한 빨라야 합니다.
피팅: 일부 알고리즘은 작은 데이터셋에서는 잘 작동합니다. 하지만 데이터셋이 커질수록 결과는 떨어지는 경향이 있는데, 이를 과적합이라고 합니다.
우리는 몇 가지 알고리즘을 시도했습니다. 로지스틱 회귀 작은 데이터 세트에서는 잘 작동하지만 과도하게 맞춤되는 경향이 있으며 학습 세트가 늘어날수록 정확도가 떨어집니다.
그런 다음 우리는 시도했습니다 랜덤 포레스트 분류기정확도는 좋지만, 여러 개의 의사결정나무 숲처럼 생성되는 모델의 크기가 큽니다. 또한 예측 함수는 트리를 순회해야 하므로 시간이 오래 걸립니다. 그래서 다음으로 이동했습니다. SVM(지원 벡터 머신).
서포트 벡터 머신
지원 벡터 머신(SVM)은 분류 및 회귀 문제 모두에 사용할 수 있는 지도 학습 알고리즘입니다. 하지만 주로 분류 문제에 사용됩니다. 이 알고리즘에서는 각 데이터 항목을 n차원 공간(n은 특성의 개수)의 한 점으로 표시하고, 각 특성의 값은 특정 좌표의 값입니다. 그런 다음 두 클래스를 정확하게 구분하는 초평면을 찾아 분류를 수행합니다.
데이터를 분류하는 초평면은 여러 개일 수 있지만, SVM은 평면 양쪽에서 가장 가까운 샘플 집합으로부터 가장 먼 거리를 갖는 초평면을 찾는 것을 목표로 합니다.
예를 들어, 여기에서 SVM은 A와 B 중에서 평면 C를 선택합니다.

위의 예는 선형 SVM입니다. SVM에서 커널 함수를 사용하면 비선형 분포 데이터도 분류할 수 있습니다. 커널 함수는 두 개의 입력을 받아 두 입력의 유사도를 나타내는 숫자를 출력하는 함수입니다. SVM에서 일반적으로 사용되는 커널은 다음과 같습니다. 선형 커널, 다항식 커널, 방사형 편향 함수 커널(RBF). 이 모든 커널을 사용해 본 결과, RBF와 Linear 커널이 우리 데이터에 잘 맞는다는 것을 확인했습니다. Linear 커널은 매우 빠른 예측 함수를 제공하므로, 이를 최종적으로 확정했습니다. 예측 함수는 다음과 같습니다. (w*x + b) 여기서 w는 지원 벡터의 벡터이고, x는 테스트 샘플의 특징 벡터이고, b는 절편 또는 기준입니다.
위 단계를 사용하여 학습된 SVM 모델은 매우 높은 정확도를 보여 다음 레벨로 이동하는 트래픽을 거의 1/3로 줄였습니다. 이는 탐지 성능과 정확도 향상에 큰 도움이 되고 있습니다.
맺음말
머신러닝은 바이러스 백신 업계에서 효과적으로 활용될 수 있으며, 그 활용 사례는 무궁무진합니다. Quick Heal은 최신 머신러닝 연구를 통해 엔드포인트 보안을 혁신하는 데 전념하고 있습니다. Quick Heal은 다양한 단계에서 머신러닝을 적용하고 있으며, 위 사례 연구는 그중 하나입니다. 향후 다른 사례 연구에 대한 분석도 공유할 예정입니다.



