banner

소식

Aug 28, 2023

머신러닝 학습 3부: 블랙박스 모델 공격

홈 » 사이버 보안 » 분석 및 인텔리전스 » 머신러닝 학습 3부: 블랙박스 모델 공격

이 시리즈의 첫 번째 게시물에서는 기계 학습에 대한 간략한 배경, 난독화된 PowerShell 스크립트를 탐지하기 위한 Revoke-Obfuscation 접근 방식, 난독화된 PowerShell 탐지를 위한 데이터 세트 및 모델을 개선하기 위한 나의 노력을 다루었습니다. 우리는 L2(Ridge) 정규화된 로지스틱 회귀, LightGBM 분류기 및 신경망 아키텍처의 세 가지 모델을 만들었습니다.

두 번째 게시물에서는 이러한 모델을 공격하는 방법을 다루었습니다.흰색 상자 즉, 입력 기능, 모델 아키텍처, 모델 매개변수/가중치 및 훈련 데이터를 포함하여 훈련된 모델 자체 전체가 있는 곳입니다. 이 모든 것이 가능한 한 이해가 되는지 확인하기 위해 진행하기 전에 최소한 처음 두 게시물을 훑어보는 것이 좋습니다.

이번 포스팅에서는 좀 더 일반적이고 어려운 내용을 다루겠습니다.블랙 박스 관점. 여기에서는 각 샘플에서 어떤 기능이 추출되는지만 알 수 있습니다. 심지어 아키텍처도 우리에게 불투명하게 유지됩니다.

적대적 기계 학습에 대한 수백 페이지에 달하는 학문적 연구를 읽은 후에는 연구의 상당 부분이 화이트 박스 관점에서 이루어졌다고 안전하게 말할 수 있습니다. 이 시리즈의 두 번째 게시물에서 설명한 화이트박스 및 블랙박스 공격에 대한 정의를 기억하세요.

또한 대부분의 연구는 영상인식 분야에서 이루어졌던 것으로 보인다. 이는 흥미롭지만 확실히 우리가 다루고 있는 것과는 다른 문제 공간입니다. 특히, 이미지는 인간의 눈에 수정된 것처럼 보이는 결과적인 적대적 이미지 없이 소량으로 교란된 여러 픽셀을 가질 수 있습니다. PowerShell 난독화 문제 공간과 같이 보안에서 다루고 있는 많은 문제의 경우 a) 수정할 수 있는 기능의 수와 b) 해당 기능을 수정할 수 있는 정도가 더 제한됩니다. 즉, 이미지와 달리 PowerShell 스크립트에 대해 수정할 수 있는 기능적 하위 공간이 더 작습니다.

블랙박스 공격에는 여러 가지가 포함됩니다.모델 추출 (다음 섹션 참조) 대체 또는 대리 모델이라고도 하는 로컬 모델을 생성합니다. 그런 다음 로컬 모델에 대해 기존 공격을 실행하여 이러한 샘플이 대상 모델도 회피할 수 있기를 희망하는 적대적 샘플을 생성합니다. 이것은 종종 현상 때문에 작동합니다.공격 전달성에 대해 곧 이야기하겠습니다.

블랙박스 공격은 모델 추출을 건너뛰고 대상 모델에 대한 입력을 직접 쿼리할 수도 있습니다. 모델의 내부 구성이 전혀 필요하지 않은 이러한 공격은 실제로 학술 문헌에서 블랙박스 공격으로 알려져 있습니다. 그러나 모델 추출을 사용하면 입력을 제출하고 레이블을 얻을 수 있는 오라클만 있는 블랙박스 모델의 로컬 복제본에 대해 잠재적으로 화이트박스 공격을 적용할 수 있습니다.

Will Pearce와 다른 사람들에 따르면 모델 추출은 적대적 ML의 가장 기본적인 기본 요소 중 하나입니다. 이 아이디어는 한동안 주변에 있었지만, 모델 추출의 첫 공식화(또는 적어도 이 방법을 대중화한 것)는 2016년 논문 Transferability in Machine Learning: from Phenomena to Black-Box Attacks using Adversarial Samples"와 Papernot 등의 2017년 논문 "기계 학습에 대한 실제 블랙박스 공격" 2017년 논문의 접근 방식에 대한 일반적인 요약은 다음과 같습니다.

우리의 공격 전략은 적에 의해 종합적으로 생성되고 대상 DNN에 의해 ​​레이블이 지정된 입력을 사용하여 대상 DNN(심층 신경망)을 대체할 로컬 모델을 훈련하는 것으로 구성됩니다. 우리는 로컬 대체를 사용하여 적대적인 예제를 만들고 대상 DNN에 의해 ​​잘못 분류되었음을 발견합니다.

전체 아이디어는 모델이 원래 훈련된 것보다 적은(그리고 일반적으로 다른) 데이터를 사용하여 대상 모델의 결정 경계를 근사화하는 것입니다. 기본적으로 모델 추출에는 먼저 라벨링 오라클 역할을 하는 알려진 라벨링 샘플을 모델에 제출하는 작업이 포함됩니다. 바이너리가 악성인지 아닌지를 알려주는 일종의 웹 사이트에 여러 개의 바이너리를 제출한다고 상상해 보십시오. 또는 조정된 Revoke-Obfuscation 모델을 일종의 내부 API로 사용하여 기능 측정값을 제출하고 정상 또는 난독화 레이블 결과 또는 난독화 확률 점수를 얻을 수 있다고 상상해 보세요. 입력이 충분하면 대상 모델과 유사하게 기능하는 로컬 대체 모델을 훈련할 수 있습니다.

공유하다