제퍼넷 로고

Sophos가 Amazon SageMaker를 사용하여 강력하고 가벼운 PDF 맬웨어 탐지기를 대규모로 훈련하는 방법

시간

이 게시물은 Sophos의 Salma Taoufiq와 Harini Kannan이 공동으로 작성했습니다.

차세대 사이버 보안의 리더로서, 소포스 (Sophos) 진화하는 위협으로부터 500,000개 이상의 국가에 걸쳐 150개 이상의 조직과 수백만 명의 고객을 보호하기 위해 노력하고 있습니다. Sophos X-Ops의 위협 인텔리전스, 머신 러닝(ML) 및 인공 지능을 기반으로 하는 Sophos는 피싱, 랜섬웨어, 맬웨어 및 공격으로부터 사용자, 네트워크 및 엔드포인트를 보호하고 방어하기 위해 광범위하고 다양한 고급 제품 및 서비스 포트폴리오를 제공합니다. 광범위한 사이버 공격이 있습니다.

최대 XNUMXW 출력을 제공하는 소포스 인공지능(AI) 그룹 (SophosAI)는 Sophos의 주요 ML 보안 기술의 개발 및 유지 관리를 감독합니다. 보안은 빅데이터 문제입니다. 탐지를 피하기 위해 사이버 범죄자들은 ​​끊임없이 새로운 공격을 시도하고 있습니다. 이는 그룹이 고객을 가장 잘 방어하기 위해 함께 작업해야 하는 거대한 위협 데이터 세트로 해석됩니다. 한 가지 주목할만한 예는 데이터 세트가 테라바이트 단위인 교활하게 악성코드가 연결된 파일을 탐지하고 제거하는 것입니다.

이 게시물에서는 특히 PDF 파일 형식에 대한 Sophos의 맬웨어 감지 시스템에 중점을 둡니다. SophosAI가 사용하는 방법을 보여줍니다. 아마존 세이지 메이커 강력한 경량 XGBoost(Extreme Gradient Boosting) 모델을 훈련하기 위해 테라바이트의 데이터로 분산 훈련. 이를 통해 팀은 자동 초매개변수 조정을 통해 기본 교육 인프라를 관리하지 않고도 대규모 교육 데이터를 더 빠르게 반복할 수 있습니다.

이 솔루션은 현재 프로덕션 교육 파이프라인에 완벽하게 통합되어 있으며 모델은 다음을 통해 수백만 사용자 엔드포인트에 배포됩니다. 소포스 엔드포인트 서비스.

사용 사례 컨텍스트

중요한 계약을 공유하거나 이력서의 멋진 디자인을 유지하려는 경우 PDF 형식이 가장 일반적인 선택입니다. 광범위한 사용과 그러한 문서가 기밀하고 정적이라는 일반적인 인식으로 인해 사용자는 잘못된 보안 감각을 갖게 되었습니다. 따라서 PDF는 공격자의 무기고에서 선택되는 감염 벡터가 되었습니다. PDF를 사용하는 악의적인 행동은 PDF 리더가 실행하는 JavaScript 페이로드를 포함하여 URI에서 바이러스를 다운로드하거나 사용자 컴퓨터를 방해하거나 중요한 정보를 훔치는 방식을 통해 가장 자주 발생합니다.

Sophos는 결정론적 및 ML 모델의 앙상블을 사용하여 다양한 공격 지점에서 악성 PDF 파일을 탐지합니다. 악성 PDF 파일이 이메일을 통해 전달되는 다음 다이어그램은 그러한 접근 방식 중 하나를 보여줍니다. 다운로드를 시도하는 즉시 악성 실행 스크립트를 트리거하여 공격자의 명령 및 제어 서버에 연결합니다. SophosAI의 PDF 탐지기는 악성을 탐지한 후 다운로드 시도를 차단합니다.

다른 방법으로는 끝점에서 PDF 파일을 차단하고, 악성 파일을 샌드박스(여러 모델을 사용하여 점수가 매겨지는 곳)로 전송하고, 악성 파일을 점수 인프라에 제출하고, 보안 보고서를 생성하는 등이 있습니다.

자극

SophosAI 팀은 낮은 엔드포인트 컴퓨팅 전력 소비와 빠른 추론 응답을 허용하면서 높은 신뢰도로 악성 PDF를 확인할 수 있는 트리 기반 탐지기를 구축하기 위해 XGBoost 알고리즘이 작업에 대한 완벽한 후보임을 발견했습니다. 이러한 연구 방법은 두 가지 이유로 Sophos에게 중요합니다. 강력하지만 작은 모델을 고객 엔드포인트 수준에 배포하는 것은 분석가의 회사 제품 리뷰에 큰 영향을 미칩니다. 또한 더 중요한 것은 전반적으로 더 나은 사용자 경험을 제공합니다.

기술적 과제

목표는 기존 PDF 멀웨어 탐지기(디스크 및 메모리 모두에서)보다 더 작은 메모리 공간을 가진 모델을 갖는 것이었으므로 SophosAI는 인상적인 결과를 달성하면서 신경망보다 훨씬 작은 모델을 생성하는 입증된 기록을 가진 분류 알고리즘인 XGBoost를 사용했습니다. 테이블 형식 데이터에 대한 성능. XGBoost 실험을 모델링하기 전에 중요한 고려 사항은 데이터 세트의 크기였습니다. 실제로 Sophos의 핵심 PDF 파일 데이터 세트는 테라바이트입니다.

따라서 주요 과제는 다운샘플링 없이 대규모 데이터 세트로 모델을 훈련시키는 것이었습니다. 탐지기가 PDF 기반 공격, 심지어 Sophos 고객을 더 잘 방어하기 위한 완전히 새로운 공격까지도 발견하는 방법을 배우는 것이 중요하기 때문에 사용 가능한 모든 다양한 데이터 세트를 사용하는 것이 가장 중요합니다.

배치로 훈련할 수 있는 신경망과 달리 XGBoost의 경우 메모리에 전체 훈련 데이터 세트가 필요합니다. 이 프로젝트의 가장 큰 훈련 데이터 세트는 1TB가 넘고, 분산 훈련 프레임워크의 방법론을 활용하지 않고는 이러한 규모로 훈련할 방법이 없습니다.

솔루션 개요

SageMaker는 ML 모델을 구축, 교육, 최적화 및 배포하기 위한 다양한 도구를 제공하는 완전 관리형 ML 서비스입니다. 그만큼 SageMaker 내장 알고리즘 라이브러리 XGBoost를 포함한 21개의 인기 있는 ML 알고리즘으로 구성됩니다. (자세한 내용은 XGBoost 및 Amazon SageMaker로 머신 러닝 간소화.) XGBoost 내장 알고리즘을 사용하면 오픈 소스를 활용할 수 있습니다. SageMaker XGBoost 컨테이너 유연성, 확장성, 확장성 및 Managed Spot Training이 개선되고 PDF 데이터 세트에 사용되는 형식인 Parquet과 같은 입력 형식을 지원하는 1.0-1 이상의 프레임워크 버전을 지정합니다.

SophosAI가 SageMaker를 선택한 주된 이유는 단순히 둘 이상의 인스턴스를 지정하여 다중 노드 CPU 인스턴스에 대한 완전 관리형 분산 교육의 이점을 누릴 수 있기 때문입니다. SageMaker는 노드 간에 데이터를 자동으로 분할하고 피어 노드에서 결과를 집계하며 단일 모델을 생성합니다. 인스턴스는 스팟 인스턴스가 될 수 있으므로 교육 비용이 크게 절감됩니다. 이랑 XGBoost용 내장 알고리즘, 추가 사용자 정의 스크립트 없이 이 작업을 수행할 수 있습니다. XGBoost의 분산 버전은 다음과 같은 오픈 소스로도 존재합니다. XGBoost-RayXGBoost4J-스파크그러나 이를 사용하려면 분산 컴퓨팅 클러스터를 구축, 보안, 조정 및 자체 관리해야 하며, 이는 과학 개발에 추가로 상당한 노력을 필요로 합니다.

또한, SageMaker 자동 모델 튜닝초매개변수 조정이라고도 하는 은 지정한 초매개변수 범위로 많은 훈련 작업을 실행하여 최상의 모델 버전을 찾습니다. 그런 다음 지정된 ML 작업에 대한 메트릭으로 측정된 최상의 성능을 내는 모델을 생성하는 하이퍼파라미터 값을 선택합니다.

다음 다이어그램은 솔루션 아키텍처를 보여줍니다.

SophosAI가 SageMaker로 전환하기 전에 XGBoost 실험을 시작했을 때 대용량 메모리를 사용하려는 시도가 있었습니다. 아마존 엘라스틱 컴퓨트 클라우드 (Amazon EC2) 인스턴스(예: r5a.24xlarge 및 x1.32xlarge)를 사용하여 가능한 한 많은 데이터 샘플에서 모델을 교육합니다. 그러나 이러한 시도는 평균 10시간 이상 소요되었으며 일반적으로 메모리 부족으로 인해 실패했습니다.

이와 대조적으로 SophosAI는 SageMaker XGBoost 알고리즘과 번거롭지 않은 분산 교육 메커니즘을 사용하여 20분 만에 거대한 PDF 교육 데이터 세트에서 부스터 모델을 대규모로 교육할 수 있습니다. 팀은 데이터를 아마존 단순 스토리지 서비스 (Amazon S3) 비슷한 크기의 Parquet 파일로, EC2 인스턴스 유형과 원하는 인스턴스 수를 선택하면 SageMaker가 기본 컴퓨팅 클러스터 인프라와 클러스터의 여러 노드 간의 분산 교육을 관리했습니다. 내부적으로 SageMaker는 ShardedByS3Key를 사용하여 노드 간에 데이터를 분할하여 각 인스턴스 간에 파일 개체를 균등하게 배포하고 XGBoost 구현을 사용합니다. 토끼 프로토콜 (신뢰할 수 있는 AllReduce 및 브로드캐스트 인터페이스) 분산 처리를 시작하고 기본 노드와 피어 노드 간에 통신합니다. (노드 간 히스토그램 집계 및 브로드캐스트에 대한 자세한 내용은 XGBoost: 확장 가능한 트리 부스팅 시스템.)

SageMaker를 사용하여 하나의 모델을 교육하는 것 외에도 XGBoost 하이퍼파라미터 튜닝 다른 실험을 동시에 실행하여 하이퍼파라미터의 최상의 조합을 미세 조정할 수 있는 기능으로 빠르고 쉽게 만들었습니다. 조정 가능한 하이퍼파라미터에는 부스터 관련 하이퍼파라미터와 목적 함수 관련 하이퍼파라미터가 모두 포함됩니다. 두 가지 검색 전략 무작위 또는 베이지안이 제공됩니다. 베이지안 검색 전략은 더 적은 실험 반복으로 단순한 무작위 검색보다 더 나은 하이퍼파라미터를 찾는 데 도움이 되기 때문에 가치가 있는 것으로 입증되었습니다.

데이터세트 정보

SophosAI의 PDF 악성코드 탐지 모델링은 n-gram 히스토그램 및 바이트 엔트로피 기능과 같은 다양한 기능에 의존합니다(자세한 내용은 MEADE: 악성 이메일 첨부 탐지 엔진을 향하여). 수집된 PDF 파일에서 추출한 메타데이터 및 기능은 분산 데이터 웨어하우스에 저장됩니다. 그런 다음 3,500개 이상의 기능으로 구성된 데이터 세트가 계산되고 시간에 따라 훈련 및 테스트 세트로 추가 분할되고 Amazon S3에 Parquet 파일로 배치로 저장되어 훈련 작업을 위해 SageMaker에서 쉽게 액세스할 수 있습니다.

다음 표는 훈련 및 테스트 데이터에 대한 정보를 제공합니다.

데이터 세트 샘플 수 쪽모이 세공 파일 수 총합 크기
트레이닝 70,391,634 5,500 ~ 1010 GB
Test 1,242,283 98 ~ 18 GB

데이터 크기는 다음 공식에 따라 계산되었습니다.

데이터 크기 = N × (nF + 엔L) × 4

수식에는 다음 매개변수가 있습니다.

  • N 데이터 세트의 샘플 수입니다.
  • nF 는 기능의 수입니다. nF = 3585
  • nL n은 정답 레이블의 수입니다.L = 1
  • 4는 기능의 데이터 유형에 필요한 바이트 수입니다. float32

또한 다음 파이 차트는 교육 및 테스트 세트의 레이블 분포를 제공하여 PDF 맬웨어 탐지 작업에서 직면한 클래스 불균형을 이끌어냅니다.

분포는 훈련 세트에서 XNUMX개월 테스트 세트로 이동합니다. 실제 배포 시나리오를 시뮬레이션하고 일시적인 스누핑을 피하기 위해 데이터 세트를 훈련 및 테스트로 시간 기반 분할이 적용됩니다. 이 전략을 통해 SophosAI는 예를 들어 이전에 볼 수 없었던 새로운 PDF 공격에 직면했을 때 모델의 진정한 일반화 기능을 평가할 수 있었습니다.

실험 및 결과

실험을 시작하기 위해 SophosAI 팀은 기본 매개변수를 사용하여 기본 XGBoost 모델을 훈련했습니다. 그런 다음 베이지안 전략을 사용하여 SageMaker로 하이퍼파라미터 미세 조정을 수행하기 시작했습니다. 하이퍼 파라미터 조정할 값과 원하는 값 범위, 평가 메트릭(이 경우 ROC(수신기 작동 특성) AUC) 및 교육 및 검증 세트. PDF 악성코드 탐지기의 경우 SophosAI는 부스팅 라운드 수를 포함한 하이퍼파라미터의 우선 순위를 지정했습니다(num_round), 최대 트리 깊이(max_depth), 학습률(eta), 나무를 만들 때 열 샘플링 비율(colsample_bytree). 결국 최고의 하이퍼파라미터를 얻어 전체 데이터 세트에서 모델을 훈련하는 데 사용하고 마지막으로 홀드아웃 테스트 세트에서 평가했습니다.

다음 플롯은 목표 메트릭(ROC AUC) 대 조정 작업 내에서 실행되는 15개의 교육 작업을 보여줍니다. 최고의 하이퍼파라미터는 XNUMX번째 훈련 작업에 해당하는 하이퍼파라미터입니다.

SageMaker에 대한 SophosAI의 실험을 시작할 때 대답해야 할 특히 중요한 질문은 다음과 같습니다. 현재 보유하고 있는 데이터에 대해 XGBoost를 훈련하는 데 필요한 인스턴스 유형과 인스턴스 수는 무엇입니까? 잘못된 수나 유형의 인스턴스를 사용하면 시간과 비용이 낭비될 수 있으므로 이는 매우 중요합니다. 메모리 부족으로 인해 훈련이 실패하거나 너무 많은 인스턴스를 사용하는 경우 불필요하게 비용이 많이 들 수 있습니다.

XGBoost는 메모리 바운드(컴퓨팅 바운드와 반대) 알고리즘입니다. 따라서 범용 컴퓨팅 인스턴스(예: M5)는 컴퓨팅 최적화 인스턴스(예: C4)보다 더 나은 선택입니다. 정보에 입각한 결정을 내리기 위해 전체 데이터 세트에서 교육을 실행하는 데 필요한 인스턴스 수를 선택하기 위한 간단한 SageMaker 지침이 있습니다.

총 교육 데이터 크기 × 안전 계수(*) < 인스턴스 개수 × 인스턴스 유형의 총 메모리

이 경우: 총 교육 데이터 크기 × 안전 계수(12) = 12120GB

다음 표에는 선택한 인스턴스 유형이 ml.m5.24xlarge일 때의 요구 사항이 요약되어 있습니다.

교육 규모 × 안전 계수 (12) 인스턴스 메모리 ml.m5.24xlarge 훈련에 필요한 최소 인스턴스 수
12120 GB 384 GB 32

*훈련 전에 전체 훈련 데이터 세트를 DMatrix 객체에 로드하고 추가 여유 메모리를 필요로 하는 XGBoost 분산 훈련의 특성으로 인해 10–12의 안전 계수가 권장됩니다.

제공된 데이터 세트에서 XGBoost의 전체 SageMaker 교육에 대한 메모리 사용률을 자세히 살펴보기 위해 교육에서 얻은 해당 그래프를 제공합니다. 아마존 클라우드 워치 모니터링. 이 교육 작업에는 40 ml.m5.24xlarge 인스턴스가 사용되었으며 최대 메모리 사용률은 약 62%에 도달했습니다.

SageMaker와 같은 관리형 ML 서비스를 데이터 파이프라인에 통합하여 절약한 엔지니어링 비용은 약 50%입니다. 교육 및 초매개변수 조정 작업에 스팟 인스턴스를 사용하는 옵션은 추가로 63%의 비용을 절감합니다.

결론

SageMaker를 사용하여 SophosAI 팀은 디스크에서(최대 25배 더 작음) 메모리에서(최대 5배 더 작음) 훨씬 작은 경량 PDF 맬웨어 탐지 XGBoost 모델을 구축하여 복잡한 우선 순위가 높은 프로젝트를 성공적으로 해결할 수 있었습니다. 검출기 전임자. ~0.99 AUC와 0.99의 참양성률, . 이 모델은 20TB 이상의 데이터에 대해 학습하는 데 1분 미만이 걸리므로 시간이 지남에 따라 빠르게 재학습할 수 있고 성능을 쉽게 모니터링할 수 있습니다.

SageMaker 내장 알고리즘을 활용할 수 있습니다. XGBoost 대규모 테이블 형식 데이터로 모델을 구축할 수 있습니다. 또한 이 문서에 설명된 대로 새로운 내장 Amazon SageMaker 알고리즘 LightGBM, CatBoost, AutoGluon-Tabular 및 Tab Transformer를 사용해 볼 수도 있습니다. 블로그.


저자 소개

살마 타우피크 기계 학습과 사이버 보안의 교차점에서 일하는 Sophos의 선임 데이터 과학자입니다. 컴퓨터 과학 학부 배경으로 중앙 유럽 대학에서 석사 학위를 받았습니다. 수학 및 응용 프로그램에서. 맬웨어 탐지기를 개발하지 않을 때 Salma는 열렬한 등산객, 여행자 및 스릴러 소비자입니다.

하리니 칸난 SophosAI의 데이터 과학자입니다. 그녀는 약 4년 동안 보안 데이터 과학 분야에서 일했습니다. 그녀는 이전에 Sophos에 인수된 Capsule8의 수석 데이터 과학자였습니다. 그녀는 CAMLIS, BlackHat(미국), Open Data Science Conference(East), Data Science Salon, PyData(Boston) 및 Data Connectors에서 강연했습니다. 그녀의 연구 분야에는 성능 카운터를 사용한 하드웨어 기반 공격 탐지, 사용자 행동 분석, 해석 가능한 ML 및 감독되지 않은 이상 탐지가 포함됩니다.

하산 푸나 왈라 영국 런던에 본사를 둔 AWS의 수석 AI/ML 전문가 솔루션 아키텍트입니다. Hasan은 고객이 AWS의 프로덕션 환경에서 기계 학습 애플리케이션을 설계하고 배포할 수 있도록 지원합니다. 그는 데이터 과학자, 기계 학습 실무자 및 소프트웨어 개발자로서 12년 이상의 경력을 가지고 있습니다. 여가 시간에 Hasan은 자연을 탐험하고 친구 및 가족과 함께 시간을 보내는 것을 좋아합니다.

디간트 파텔 AWS의 엔터프라이즈 지원 책임자입니다. 그는 고객과 협력하여 대규모 클라우드에서 설계, 배포 및 운영합니다. 그의 관심 분야는 MLOps 및 DevOps 사례와 이것이 고객의 클라우드 여정에 도움이 되는 방법입니다. 일 외에는 사진, 배구, 친구 및 가족과 시간을 보내는 것을 즐깁니다.

spot_img

최신 인텔리전스

spot_img