Amazon Rekognition PlatoBlockchain 데이터 인텔리전스를 사용한 악성 코드 탐지 및 분류. 수직 검색. 일체 포함.

Amazon Rekognition을 사용한 맬웨어 탐지 및 분류

에 따라 기사 Cybersecurity Ventures에 따르면 랜섬웨어(사용자가 몸값을 지불하지 않으면 데이터에 액세스하지 못하도록 차단할 수 있는 맬웨어 유형)로 인한 피해는 57년에 비해 2021년에 2015배 증가했습니다. 또한 피해자에게 265억 달러의 비용이 들 것으로 예상됩니다. 미화) 매년 2031년까지. 작성 시점에 랜섬웨어 공격으로 인한 금전적 피해는 50을 약간 상회합니다.th 순위에 따라 순위가 매겨진 국가 목록의 위치 GDP.

맬웨어로 인한 위협을 고려하여 맬웨어 공격을 탐지하고 억제하기 위한 몇 가지 기술이 개발되었습니다. 오늘날 가장 일반적으로 사용되는 두 가지 기술은 서명 기반 탐지와 행동 기반 탐지입니다.

서명 기반 탐지는 알려진 악성 개체에 대한 고유 식별자를 설정하여 나중에 개체를 식별할 수 있도록 합니다. 파일에 첨부된 고유한 코드 패턴이거나 알려진 맬웨어 코드의 해시일 수 있습니다. 새 개체를 검사하는 동안 알려진 패턴 식별자(시그니처)가 발견되면 개체에 악성 플래그가 지정됩니다. 서명 기반 감지는 빠르고 낮은 컴퓨팅 성능이 필요합니다. 그러나 탐지를 피하기 위해 지속적으로 형태를 변경하는 다형성 맬웨어 유형에 대해서는 어려움을 겪고 있습니다.

행동 기반 탐지는 행동을 기반으로 의심스러운 개체를 판단합니다. 맬웨어 방지 제품에서 고려할 수 있는 아티팩트는 프로세스 상호 작용, DNS 쿼리 및 개체의 네트워크 연결입니다. 이 기술은 서명 기반에 비해 다형성 맬웨어를 탐지하는 데 더 효과적이지만 몇 가지 단점이 있습니다. 개체가 악의적인지 평가하려면 호스트에서 실행되고 맬웨어 방지 제품이 탐지할 수 있는 충분한 아티팩트를 생성해야 합니다. 이 사각지대는 악성코드가 호스트를 감염시키고 네트워크를 통해 확산되도록 할 수 있습니다.

기존 기술은 완벽하지 않습니다. 결과적으로 맬웨어에 대한 전투 능력을 향상시킬 새로운 대체 기술을 개발하기 위한 연구를 계속하고 있습니다. 최근 몇 년 동안 등장한 새로운 기술 중 하나는 이미지 기반 맬웨어 탐지입니다. 이 기술은 그레이스케일 이미지로 변환된 알려진 악성 코드 바이너리로 딥 러닝 네트워크를 교육할 것을 제안합니다. 이 게시물에서는 다음을 사용하여 이미지 기반 맬웨어 탐지를 수행하는 방법을 보여줍니다. 아마존 인식 맞춤 라벨.

솔루션 개요

다중 분류 모델과 멀웨어 탐지 모델을 교육하기 위해 먼저 플러더, 애드웨어, 스파이웨어 등과 같은 다양한 멀웨어 유형과 무해한 객체를 포함하는 교육 및 테스트 데이터 세트를 준비합니다. 그런 다음 PE(이식 가능한 실행 파일) 개체를 그레이스케일 이미지로 변환합니다. 다음으로 Amazon Rekognition으로 이미지를 사용하여 모델을 교육합니다.

Amazon Rekognition은 애플리케이션에서 다양한 유형의 시각적 분석을 간단하게 수행할 수 있게 해주는 서비스입니다. Rekognition Image는 수백만 개의 이미지를 검색, 확인 및 구성하는 강력한 애플리케이션을 구축하는 데 도움이 됩니다.

Amazon Rekognition Custom Labels는 여러 범주에 걸쳐 수천만 개의 이미지에 대해 이미 훈련된 Rekognition의 기존 기능을 기반으로 합니다.

Amazon Rekognition Custom Labels는 사용자가 수백만 개의 이미지를 분석하고 이를 활용하여 이미지 분류, 얼굴 감지 및 콘텐츠 조정을 비롯한 다양한 기계 학습(ML) 문제를 해결할 수 있는 완전관리형 서비스입니다. 뒤에서 Amazon Rekognition은 딥 러닝 기술을 기반으로 합니다. 이 서비스는 레이블이 지정된 대규모 데이터 세트에서 사전 훈련된 컨볼루션 신경망(CNN)을 사용합니다. 이러한 실측 데이터에 노출됨으로써 알고리즘은 다양한 도메인의 이미지에서 패턴을 인식하는 방법을 학습할 수 있으며 많은 산업 사용 사례에서 사용할 수 있습니다. AWS는 모델 아키텍처를 구축 및 유지 관리하고 당면한 작업에 적합한 훈련 방법을 선택하는 소유권을 갖기 때문에 사용자는 훈련 작업에 필요한 인프라를 관리하는 데 시간을 할애할 필요가 없습니다.

솔루션 아키텍처

다음 아키텍처 다이어그램은 솔루션의 개요를 제공합니다.

솔루션은 다음을 사용하여 구축됩니다. AWS 배치, AWS 파게이트아마존 인식. AWS Batch를 사용하면 Fargate에서 수백 개의 배치 컴퓨팅 작업을 실행할 수 있습니다. Fargate는 두 가지 모두와 호환됩니다. Amazon Elastic Container Service(Amazon ECS)Amazon Elastic Kubernetes 서비스(Amazon EKS). Amazon Rekognition 사용자 지정 레이블을 사용하면 컴퓨터 비전용 AutoML을 사용하여 사용자 지정 모델을 교육하여 맬웨어를 감지하고 다양한 맬웨어 범주를 분류할 수 있습니다. AWS Step Functions는 데이터 사전 처리를 오케스트레이션하는 데 사용됩니다.

이 솔루션의 경우 다음을 통해 전처리 리소스를 생성합니다. AWS 클라우드 포메이션. CloudFormation 스택 템플릿과 AWS Batch, Fargate 및 Step 함수의 소스 코드는 다음에서 사용할 수 있습니다. GitHub 저장소.

데이터 세트

이 예에서 모델을 교육하기 위해 다음 공개 데이터 세트를 사용하여 악성 및 양성 데이터를 추출했습니다. 휴대용 실행 파일(PE):

데이터 세트 문서(소포스/리버싱 연구소 README, PE 맬웨어 기계 학습 데이터 세트) 맬웨어 개체를 안전하게 처리합니다. 기본 설정에 따라 바이너리 형식으로 맬웨어 및 무해한 개체를 제공하는 한 다른 데이터 세트를 사용할 수도 있습니다.

다음으로 솔루션의 다음 단계를 안내합니다.

  • 개체 전처리 및 이미지로 변환
  • CloudFormation으로 전처리 리소스 배포
  • 모델 선택
  • 모델 훈련
  • 모델 평가
  • 비용 및 성능

개체 전처리 및 이미지로 변환

우리는 Step Functions를 사용하여 다음 단계를 포함하는 객체 사전 처리 워크플로를 오케스트레이션합니다.

  1. 타고 메타.db sqllite 데이터베이스 소렐-20m S3 버킷을 만들고 .csv 파일로 변환합니다. 이를 통해 Fargate 컨테이너에 .csv 파일을 로드하고 맬웨어 개체를 처리하는 동안 메타데이터를 참조할 수 있습니다.
  2. sorel-20m S3 버킷에서 객체를 가져오고 csv 형식으로 객체 목록을 생성합니다. 이 단계를 수행하여 병렬로 처리할 수 있는 일련의 .csv 파일을 생성하여 전처리에 소요되는 시간을 줄입니다.
  3. sorel-20m S3 버킷의 객체를 작업 배열이 있는 이미지로 변환합니다. AWS Batch 어레이 작업은 맬웨어 개체를 이미지로 변환하기 위한 공통 파라미터를 공유합니다. 여러 호스트에 분산되고 동시에 실행되는 이미지 변환 작업 모음으로 실행됩니다.
  4. 맬웨어 범주에 해당하는 일련의 작업으로 모델 교육을 위해 미리 결정된 수의 이미지를 선택합니다.
  5. 2단계와 유사하게 양성 160k S3 버킷에서 양성 개체를 가져와 csv 형식의 개체 목록을 생성합니다.
  6. 3단계와 유사하게 양성 160k S3 버킷의 객체를 작업 배열이 있는 이미지로 변환합니다.
  7. 사용자 지정 레이블 교육(250개 이미지)에 대한 Amazon Rekognition 기본 할당량으로 인해 모델 교육을 위해 사전 결정된 양성 이미지 수를 선택합니다.
  8. 다음 이미지와 같이 이미지는 먼저 멀웨어 및 양성 폴더로 분할된 S3 버킷에 저장된 다음 멀웨어가 멀웨어 유형별로 분할됩니다.
    훈련 S3 버킷
    훈련 데이터세트

CloudFormation으로 전처리 리소스 배포

사전 조건

계속하기 전에 다음 전제 조건이 필요합니다.

리소스 배포

CloudFormation 스택은 다음 리소스를 생성합니다.

파라미터

  • 스택_이름 – CloudFormation 스택 이름
  • AWS_지역 – 솔루션이 배포될 AWS 지역
  • AWS_프로필 – AWS CLI 명령에 적용할 명명된 프로필
  • ARTEFACT_S3_BUCKET – 인프라 코드가 저장될 S3 버킷. (버킷은 솔루션이 있는 동일한 지역에 생성되어야 합니다.)
  • AWS_계정 – AWS 계정 ID.

다음 명령을 사용하여 리소스를 배포합니다.

Docker 에이전트가 머신에서 실행 중인지 확인하십시오. 배포는 bash 스크립트를 사용하여 수행되며 이 경우 다음 명령을 사용합니다.

bash malware_detection_deployment_scripts/deploy.sh -s '' -b 'malware-
detection--artifacts' -p  -r "" -a

이는 CloudFormation 템플릿(예: cloudformation.yaml)이 참조하는 로컬 아티팩트를 빌드하고 배포합니다.

모델 훈련

Amazon Rekognition이 모델 훈련을 처리하므로 컴퓨터 비전 또는 고도로 전문화된 ML 지식이 필요하지 않습니다. 그러나 적절하게 레이블이 지정된 입력 이미지로 채워진 버킷을 Amazon Rekognition에 제공해야 합니다.

이 게시물에서는 사용자 지정 레이블 기능을 통해 두 개의 독립적인 이미지 분류 모델을 교육합니다.

  1. 맬웨어 탐지 모델(이진 분류) – 주어진 객체가 악성인지 양성인지 식별
  2. 맬웨어 분류 모델(다중 클래스 분류) – 주어진 악성 개체에 대한 맬웨어 계열 식별

모델 학습 연습

다음 연습에 나열된 단계는 두 모델 모두에 적용됩니다. 따라서 두 모델을 모두 교육하려면 단계를 두 번 수행해야 합니다.

  1. 에 로그인 AWS 관리 콘솔 Amazon Rekognition을 엽니다. 콘솔.
  2. 왼쪽 창에서 맞춤 라벨 사용. Amazon Rekognition Custom Labels 랜딩 페이지가 표시됩니다.
  3. Amazon Rekognition Custom Labels 랜딩 페이지에서 다음을 선택합니다. 시작하기.
  4. 왼쪽 창에서 선택 프로젝트.
  5. 왼쪽 메뉴에서 프로젝트 만들기.
  6. In 프로젝트 이름, 프로젝트 이름을 입력합니다.
  7. 왼쪽 메뉴에서 프로젝트 만들기 프로젝트를 생성합니다.
  8. . 프로젝트 페이지에서 데이터세트를 추가할 프로젝트를 선택합니다. 프로젝트의 세부 정보 페이지가 표시됩니다.
  9. 왼쪽 메뉴에서 데이터 세트 만들기. 그만큼 데이터 세트 만들기 페이지가 표시됩니다.
  10. In 시작 구성선택한다. 단일 데이터 세트로 시작 Amazon Rekognition이 데이터 세트를 교육 및 테스트로 분할하도록 합니다. 각 모델 학습 반복에서 서로 다른 테스트 샘플로 끝날 수 있으므로 결과와 평가 메트릭이 약간 다를 수 있습니다.
  11. 왼쪽 메뉴에서 Amazon S3 버킷에서 이미지 가져 오기.
  12. In S3 URI, S3 버킷 위치 및 폴더 경로를 입력합니다. 사전 처리 단계에서 제공된 동일한 S3 버킷을 사용하여 맬웨어 탐지 및 맬웨어 분류의 두 데이터 세트를 생성합니다. 맬웨어 탐지 데이터 세트는 루트(즉, s3://malware-detection-training-{account-id}-{region}/), 멀웨어 분류 데이터 세트는 멀웨어 폴더(즉, s3://malware-detection-training-{account-id}-{region}/malware) S3 버킷의. 훈련 데이터
  13. 왼쪽 메뉴에서 폴더를 기반으로 이미지에 라벨을 자동으로 부착.
  14. 왼쪽 메뉴에서 데이터 세트 만들기. 프로젝트의 데이터 세트 페이지가 열립니다.
  15. 모델 학습 페이지에서 선택 모델 학습. 프로젝트의 Amazon 리소스 이름(ARN)은 프로젝트 선택 편집 상자. 그렇지 않은 경우 프로젝트의 ARN을 입력합니다.
  16. . 모델을 훈련시키시겠습니까? 대화 상자에서 모델 학습.
  17. 교육이 완료되면 모델 이름을 선택합니다. 모델 상태가 교육_완료됨.
  18. . 모델 섹션에서 사용 모델 탭하여 모델 사용을 시작합니다.

자세한 내용은 Amazon Rekognition 사용자 정의 레이블을 확인하십시오. 시작하기 안내서.

모델 평가

교육 모델이 완료되면 다음을 선택하여 평가 메트릭에 액세스할 수 있습니다. 메트릭 확인 모델 페이지에서 Amazon Rekognition은 분류 모델의 성능을 평가하는 데 일반적으로 사용되는 F1 점수, 평균 정밀도 및 전체 재현율 지표를 제공합니다. 후자는 레이블 수에 대한 평균 메트릭입니다.

. 레이블당 성능 섹션에서 라벨별로 이러한 측정항목의 값을 찾을 수 있습니다. 또한 True Positive, False Positive 및 False Negative에 대한 값을 얻으려면 테스트 결과보기.

맬웨어 탐지 모델 지표

두 개의 레이블(양성 및 맬웨어)이 있는 199,750개 이미지의 균형 잡힌 데이터 세트에서 다음 결과를 얻었습니다.

  • F1 점수 – 0.980
  • 평균 정밀도 – 0.980
  • 전반적인 회상 – 0.980

맬웨어 탐지 모델 지표

맬웨어 분류 모델 지표

130,609개의 레이블(11개의 맬웨어 계열)이 있는 11개 이미지의 균형 잡힌 데이터 세트에서 다음과 같은 결과를 얻었습니다.

  • F1 점수 – 0.921
  • 평균 정밀도 – 0.938
  • 전반적인 회상 – 0.906

맬웨어 분류 모델 지표

모델이 잘 수행되고 있는지 평가하려면 동일한(또는 적어도 유사한) 데이터 세트에서 훈련된 다른 업계 벤치마크와 모델의 성능을 비교하는 것이 좋습니다. 불행하게도 이 글을 쓰는 시점에는 동일한 기술과 동일한 데이터 세트를 사용하여 이 문제를 해결하는 비교 연구 기관이 없습니다. 그러나 데이터 과학 커뮤니티 내에서 F1 점수가 0.9 이상인 모델은 매우 잘 수행되는 것으로 간주됩니다.

비용 및 성능

리소스의 서버리스 특성으로 인해 전체 비용은 각 서비스가 사용되는 시간의 영향을 받습니다. 반면에 성능은 처리 중인 데이터의 양과 Amazon Rekognition에 대한 교육 데이터 세트 크기 피드의 영향을 받습니다. 비용 및 성능 추정을 위해 다음 시나리오를 고려합니다.

  • 20만 개의 객체가 sorel 데이터 세트에서 분류되고 처리됩니다.
  • 160,000개의 개체가 PE Malware Machine Learning Dataset에서 카탈로그화되고 처리됩니다.
  • 약 240,000개의 개체가 훈련 S3 버킷에 작성됩니다(160,000개의 맬웨어 개체 및 80,000개의 양성 개체).

이 시나리오를 기준으로 모델을 사전 처리하고 배포하는 평균 비용은 $510.99 USD입니다. 모델을 사용하는 시간당 $4 USD/h가 추가로 청구됩니다. 자세한 비용 내역은 견적 통해 생성 AWS 요금 계산기.

성능 측면에서 측정 결과는 다음과 같습니다.

  • 전처리 흐름이 완료되는 데 ~2시간
  • 맬웨어 감지 모델 교육을 완료하는 데 ~40시간
  • 맬웨어 분류 모델 학습을 완료하는 데 ~40시간

대청소

향후 비용이 발생하지 않도록 중지삭제 Amazon Rekognition 모델을 통해 전처리 리소스를 삭제합니다. 파괴.sh 스크립트. 스크립트를 성공적으로 실행하려면 다음 매개변수가 필요합니다.

  • 스택_이름 – CloudFormation 스택 이름
  • AWS_지역 – 솔루션이 배포되는 지역
  • AWS_프로필 – AWS CLI 명령에 적용되는 명명된 프로필

다음 명령을 사용하여 ./malware_detection_deployment_scripts/destroy.sh 스크립트:

bash malware_detection_deployment_scripts/destroy.sh -s  -p
 -r 

결론

이 게시물에서는 Amazon Rekognition을 사용하여 맬웨어 탐지 및 분류를 수행하는 방법을 시연했습니다. 이 솔루션은 서버리스 패턴을 따르며 데이터 사전 처리, 오케스트레이션 및 모델 배포를 위해 관리 서비스를 활용합니다. 이 게시물이 맬웨어 퇴치를 위한 지속적인 노력에 도움이 되기를 바랍니다.

향후 게시물에서는 이 게시물에 배포된 모델을 사용하여 맬웨어 탐지의 실제 사용 사례를 보여줄 것입니다.


저자 소개

에드빈 할박슈에드빈 할박슈 AWS Professional Services의 수석 글로벌 보안 설계자이며 사이버 보안 및 자동화에 대한 열정이 있습니다. 그는 고객이 클라우드에서 안전하고 규정을 준수하는 솔루션을 구축하도록 돕습니다. 일 외에는 여행과 스포츠를 좋아합니다.

라훌 샤우리야라훌 샤우리야 AWS Professional Services의 수석 데이터 설계자입니다. 그는 AWS에서 데이터 플랫폼 및 분석 애플리케이션을 구축하는 고객을 돕고 긴밀하게 협력합니다. 직장 밖에서 Rahul은 반려견 Barney와 함께 긴 산책을 하는 것을 좋아합니다.

브루노 데프토브루노 데프토 AWS Professional Services의 글로벌 보안 설계자입니다. 그는 고객이 AWS에서 안전하고 신뢰할 수 있는 아키텍처를 구축하도록 돕는 데 주력하고 있습니다. 업무 외에는 최신 기술 업데이트 및 여행에 관심이 있습니다.

나딤 마제드나딤 마제드 AWS Professional Services의 데이터 아키텍트입니다. 그는 AWS에서 데이터 플랫폼을 구축하는 고객과 함께 일합니다. 직장 밖에서 Nadim은 탁구를 치고 축구/축구 관람을 좋아합니다.

타임 스탬프 :

더보기 AWS 기계 학습