Slow is better than NOTHING

적대적 공격(Adversarial Attack)

적대적 공격 동향(Adversarial Attacks Survey)

Jeff_Kang 2019. 6. 2. 17:56
반응형

 Deep Learning 을 활용한 Neural Network 기술들이 등장하면서 Machine Learning의 다양한 공학적 접근이 개발되고 있습니다. ImageNet과 같은 거대한 데이터셋에 대해서도 효율적으로 연산할 수 있는 알고리즘이라던지 연산을 가속화 시킬 수 있는 하드웨어적인 발전이 뒷받침되어 Real World에서 발생할 수 있는 많은 문제들을 놀라운 성능으로 해결하고 있습니다.

 

 하지만 최근 DNN(Deep Neural Network) 의 훈련에서의 불안정성 및 비신뢰적인 과정으로 인해 Adversarial Attack 에 대해 매우 취약하다는 사실들이 학계에서는 많이 알려지고 있습니다. Adversarial Examples 는 DNN이 잘못된 결과를 산출하도록 공격자가 의도적으로 조작 시킨 입력값들로 육안으로는 구분할 수 없는 미세한 차이를 갖는 영상에 대해서 딥 신경망이 전혀 다른 결과를 이끌어 낸다는 것이 이미 알려져있습니다. 이러한 공격이 보안업계에서는 DNN을 통해 학습시킨 Malware Detection System(MDS) 또는 Intrusion Detection System(IDS) 들을 간단하게 Detour 할 수 있는 공격이 쉽게 행해질 수 있음을 주목해야합니다. 실제로 2017년에는 GAN 을 기반으로한 Black-Box 공격으로 DNN 기반 MDS를 우회할 수 있는 적대적 공격 기법이 publishing 되기도 했습니다.[1] 

 이러한 적대적 위협공격을 방어하기 위한 다양한 Defence 모델들도 연구되고 있습니다. [2] 는 Generative Adversarial Networks 를 이용하여 전통적인 Classification Model 의 robustness 를 증가시키기 위한 연구였는데 내용이 상당히 흥미롭습니다. 

 

서론이 길었군요.. 각설하고 적대적 위협(Adversarial Threat) 은 무엇인지 부터 알아보겠습니다.

 

◎ Adversarial Threat

 Adversarial Threat or Attack 은 앞서 말씀드렸듯, 분류 성능이 매우 우수한 DNN을 이용한 Classifier 들에 적대적 교란(Adversarial Pertubation) 을 적용할 경우 최신 분류 알고리즘들이 쉽게 Misclassification을 발생할 수 있도록 만드는 것입니다. 

  예를 들면, 57.7% 확률로 Panda 를 분류하는 분류 시스템에 육안으로는 구별할 수 없는 '어떠한 특정 노이즈' 를 주어 이미지를 합성합니다. 흥미롭게도 사람의 눈으로는 여전히 Panda로 보이지만 이를 분류하는 Classifier는 'Gibbon(긴팔원숭이)' 로 분류하는 것을 볼 수 있습니다. 

 이렇게 'gibbon' 으로 분류되도록 만들어진 Sample Image를 Adversarial Examples(AEs) 라고 합니다. [3] 은 이러한 AEs를 통해 DNN이 높은 확률로 Misclassification을 일어날 수 있다는 사실을 증명하였습니다. 

 AEs 는 Training 단계에서 만들어지지만 DNN이 Training 된 후에는 Train 과정에 대한 변경이 필요하지 않습니다. 즉, Real Image 의 일부 픽셀 변화로 생성하는 것입니다. 

 

 Szegedy 등은 Source/Target Misclassification 을 일으킬 수 있는 AEs 를 만들 수 있는 알고리즘을 제안하였는데, 이 알고리즘을 통해 일어난 변화들은 현재 알려진 Computer Vision 과 관련된 많은 기술들에 적용하여 Misclassification을 일으 킬 수 있으면서 육안으로는 구분할 수 없는 이미지를 생성할 수 있습니다. [4]

 예를 들어, 자동차와 관련된 이미지에 자신들이 만든 알고리즘을 적용하여 사람의 시각으로는 여전히 자동차로 볼 수 밖에 없는 이미지를 타조(Ostrich)로 분류하도록 만들었습니다. 

타조로 분류된 자동차 사진

실제 적대적 공격을 PyTorch 기반의 코드로 구현하여 실험을 진행한 내용은 아래의 글을 참조해주세요.

 

[PyTorch] 적대적 공격(Adversarial Attack) - FGSM/PGD

적대적 공격(Adversarial Attack)은 딥러닝 모델의 내부적 취약점을 이용하여 만든 특정 노이즈(Noise or Perturbation)값을 이용해 의도적으로 오분류를 이끌어내는 입력값을 만들어내는것을 의미합니다.

rain-bow.tistory.com

 실제 AEs를 이용한 공격 사례에 대해서 살펴보겠습니다. 

워싱턴 대학의 타다요시 코노 박사 연구팀에 따르면 도로 교통 표지판에 작은 스티커를 붙여 "정지" 신호를 "시속 45마일 속도 제한" 신호로 오분류하게 만드는 방법을 발견해내었습니다. 연구팀은 이 사이버 공격 수법을 ‘Robust Physical Perturbations(RP2)’라고 명명했는데요, 이 공격 수법을 이용해서 특정 모델에 대한 적응형 또는 맞춤형 이미지를 생성하게 될 수 있다는 위험성을 강조하였습니다. 자세한 내용은 다음의 글을 참조바랍니다.

 

Robust Physical-World Attacks(RP2)

Robust Physical-World Attacks on Deep Learning Visual Classification, CVPR 2018(이하 RP2) 논문은 2018년 CVPR에 게재된 adversarial attack의 가능성을 소개하는 논문입니다. 그동안 많은 Adversarial attac..

rain-bow.tistory.com

 

시속 45마일 제한으로 오분류된 일시 정지 신호

이러한 AEs 가 동작하는 원인은 무엇일까요?

현재의 DNN 기술에 기반을 둔 Classification Algorithm은 Natural Image 즉, Real World에 존재할 수 있는 이미지에 대해서는 정상적으로 동작하도록 설계되었지만 사람이 일부 변화를 가한 AEs에 대해서는 취약할 수 있습니다.

일반적으로 디지털 이미지들은 8bit의 Resoultion을 갖고 있으며 이는 256개의 정보 차이를 구분 할 수 있음을 의미합니다. 하지만 256개 이하의 정보가 변경되는 경우 차이를 육안으로 구별할 수 없습니다. 그러나 Neural Network에서는 입력된 데이터에 가중치가 곱해지고 바이어스가 더해지게 되는데, 이때 원본 데이터에서 1/256 보다 작은 입력이 더해져도 가중치가 큰 경우 1/256의 정밀도 이상의 값이 결과에 반영될 수 있습니다. Layer가 복잡한 Network에서는 작은 변화에도 이러한 과정이 일반 데이터와 함께 증폭이 일어나게 되고 이런 증폭이 계속되면 최종적으로 Misclassification이 발생할 수 있는 것입니다. 

 

◎ Adversarial Threat Model

 적대적 위협과 간단한 사례에 대해 알아보았습니다. 그렇다면 이러한 적대적 위협은 어떠한 목적을 가지고 진행되는지 알아보도록 하겠습니다. 적대적 위협은 주로 보안적인 관점에서 많이 다루게 됩니다. 기계학습 모델들의 보안은 'Adversarial Goal''Adversarial Capabilities' 에 관해서 다루어집니다. 이번 단락에서는 적대적 위협의 내용을 인지하고 Machine Learning 에서 목적과 정보에 따라 위협 모델들을 분류해보도록 하겠습니다.

 

1. Adversarial Goals

 적대적 공격의 목표는 분류 시스템이 잘못된 결과를 이끌어 내도록 Input 을 조작하는 것입니다. 적대적 학습에서 공격자가 설정할 수 있는 목표는 계산 복잡도에 따라 4가지 방식으로 구분할 수 있습니다.

 

1) 신뢰도 저하(Confidence Reduction) 

 가장 낮은 복잡도를 갖는 공격 모델로, 이 공격의 목표는 공격을 통해서 Machine Learning 결과에 대한 분류의 신뢰성을 감소시키는 것입니다. 예를 들어, 자율주행차에서 'Stop'  이라는 표지판을 99% 확률로 분류해낸다면 이 확률을 50%로 만들어 분류되는 클래스의 분류성능을 ambiguous 하는것입니다.

 

Stop sign

 

 2) 오분류 (Misclassification)

 본래의 클래스와 전혀 다른 클래스로 분류가 일어나게 하는 공격입니다. Stop 표지판의 클래스를 'Stop'이 아닌 다른 Class, 예를 들면 속도 제한 표지판, 이정표 등으로 오분류되도록 만드는 것이죠.

 

 3) 의도된 오분류(Targeted Misclassification)

 기존의 오분류 기법과 유사하지만 Output에 대해 정해진(Targeted) 클래스로 오분류하도록 입력을 만드는 것입니다. 예를 들면, Input image에 'Go' 라는 이미지로 분류할 수 있도록 모든 클래스들을 조작하는 것입니다. 이렇게되면 자율주행 시스템이 Stop이라는 표지판을 보고도 Go 로 분류하게 될 수 있습니다.

 

 4) 소스/목표 오분류(Source/Target misclassification)

 가장 Complexity 한 공격 목표로서 특정한 입력에 대한 특정한 출력이 나오도록 만드는 공격입니다. 의도된 오분류가 n:1 matching이라면 소스/목표 오분류는 1:1 matching정도로 생각하시면 좋을것 같습니다.

 

 

2. Adversarial Capabilities

Adversarial Capabilities 란 특정 시스템에 공격을 수행할 수 있는 정보의 양을 의미합니다. 공격을 수행할 시 사용 가능한 시스템에 대한 정보에 따라 공격을 분류할 수도 있습니다.  Training Phase 와 Testing Phase 로 나누어 살펴보겠습니다.

 

1) Training Phase Capabilities

 Training 단계에서의 공격은 훈련 단계에서 사용되는 Dataset을 직접적으로 조정하여 모델 학습에 Influence or corrupt  하는 것입니다. 가장 간단하게 Training Data에 부분적으로 또는 전체적으로 접근하는 방식이 있는데 다음과 같은 3가지 전략이 있습니다. 

 ① 데이터 주입(Data Injection) 

 데이터 주입 공격은 Learning Algorithm 이나 Training Data에 대해 접근할 수는 없지만 Training Dataset에 새로운 데이터를 증강(Augmentation) 시킬 수 있는 능력을 가진 공격자가 행하는 공격입니다. 공격자는 AEs를 Training Dataset에 주입하여 모델의 훈련과정을 Corrupt 시킵니다.

 

 ② 데이터 수정(Data Modification) 

 데이터 수정 공격은 Learning Algorithm에는 접근이 불가능하지만 전체 Training Dataset에 대해서는 접근이 가능한 공격입니다.  공격자는 Training Data가 모델에 훈련되기 전에 수정(modify)하여 특정 모델을 Poison 시킵니다. 

 

 ③ 논리 변형(Logic Corruption)

 논리 변형 공격은 Learning Algorithm 에 대해 간섭할 수 있는 공격입니다. 논리 변형 공격에 대해 대응 전략을 수립하는것은 매우 어려우며 이 공격이 행해질 경우 상대적으로 1,2번에 비해 더욱 치명적인 결과를 가져오게 됩니다. 

 

  Training Dataset Learning Algorithm
Data Injection 접근 불가 접근 불가
Data Modification 접근 가능 접근 불가
Logic Corruption 접근 불가 접근 가능

 

 2) Testing Phase Capabilities

 Testing 단계에서의 공격은 분류 모델에 대해 어떠한 간섭을 주지는 않지만 그 모델이 정확하지 않게 분류하도록 오동작을 유발하는 공격입니다.  공격을 수행할 시 사용 가능한 지식의 양에 따라 공격을 분류합니다. 그 중 White-Box Attacks 은 분류에 사용되는 model(f) 에 대한 모든 지식을 가지고 있는 공격입니다. 모든 지식이라하면, Training에 사용되는 Algorithm(e.g., gradient-descent optimzation) , training data distribution(µ), Hyper parameter(θ) of Fully trained model architecture 등이 있습니다. 즉, 공격자는 신경망을 Simulation 하기 위한 충분한 정보를 갖고 있고 Internal model weights 을 이용할 수 있는 White-Box Attack은 상당히 crucial 한 결과를 초래할 수 있습니다. 

 반대로, Black-Box Attacks 은 model에 대한 정보를 알고 있지 못한 공격자에 행해지는 공격입니다. 이 공격은 모델에 조작된 Input을 주어 결과로 나온 Output을 관찰함으로써 이용될 수 있습니다. 

 이러한 Black-Box 공격에 사용되는 정보의 종류에 따라 다음과 같은 전략으로 분류됩니다.

 

 ① 비적응형 (Non-Adaptive Black-Box Attack) 

 모델 (f) 에 대해 비적응형 공격은 모델의 Training Data Distribution(µ) 에만 접근이 가능한 공격입니다. µ 를 사용해서 표본을 추출한 대체 데이터셋을 수집할 수 있다고 가정하는 것입니다. 그러나 이 모델에서는 공격자가 신경망의 설계나 구조를 알지 못합니다. 대체 데이터셋을 이용해 훈련된 Local Model(f') 을 이용하여 AEs를 생성하고 이를 Target Model에 적용하여 분류 오류를 발생시킵니다. GAN을 이용한 Adversarial Examples 을 생각하시면 됩니다. 

 

 ② 적응형 (Adaptive Black-Box Attack)

 모델 (f) 에 대해 적응형 공격은 Training Process에 대한 어떠한 정보도 알지 못하지만 Model 에 대해 접근이 가능한 공격입니다. 공격자는 수동적으로 신경망 동작 과정에서 Model 에 Query 를 통해 Input-Output pair 를 얻는것 뿐 아니라 능동적으로 자신이 알고자하는 입력이 신경망에서 어떤 출력을 만들어내는지 알아내는 것이 가능한 공격입니다.

 

 ③ 엄격한 (Strict Black-Box Attack)

 마땅한 번역이 떠오르지 않는군요.. 엄격한(?) Black-Box Attack입니다. Data Distribution(µ) 에 접근이 불가능하지만 Target Classifier로부터 Input,output pair(x,y) 가 수집 가능한 공격입니다. 적응형 공격과 다른점은 output의 변화를 보기 위해 Input을 변화시킬 수 없다는 점입니다. 주로 input-output pair정보가 많을 때 공격 성능이 좋습니다. 

 

 

Description Black Box attack White Box attack
Adversary Knowlege Restricted Knowlege from being able to only observe the networks output on some probed inputs. Detailed Knowlege of the network architecture and the parameters resulting from training
Attack Strategy Based on a greedy local search generating an implicit approximation to the actual gradient w.r.t the current output by observing changes in input. Based on the gradient of the network loss function w.r.t  to the input.

 

 AEs 는 DNN이 잘못된 분류를 산출하도록 공격자가 의도적으로 조작시킨 입력으로 육안으로는 미세한 차이를 가지거나 구분할 수 없는 영상이지만 DNN은 전혀 다른 결과를 보여줄 수 있습니다. 이러한 공격이 발전된다면 기존의 MDS 또는 IDS를 간단히 우회할 수 있는 공격 패턴이나 악성코드 생성이 가능하며 위에서 언급하였듯, 자율주행차에서 표지판을 오독하여 사고를 유발시키거나 주행자, 보행자의 안전을 위협할 수 있는 사고가 발생할 수 있습니다. 이와 같이 기초적인 데이터 조작으로도 높은 성능을 보여주는 DNN을 무력화 시킬 수 있다는 것은 MDS나 자율주행차와 같은 응용 분야에서는 Model 의 Robustness를 위해 반드시 고려해보아야할 문제라고 생각합니다. 

적대적 공격에 대한 자세한 실험 내용은 아래의 github저장소에서 확인이 가능합니다.

 

Jeffkang-94/pytorch-adversarial-attack

Implementation of gradient-based adversarial attack(FGSM,MI-FGSM,PGD) - Jeffkang-94/pytorch-adversarial-attack

github.com

 

[1] https://arxiv.org/abs/1702.05983

[2] https://arxiv.org/pdf/1805.06605.pdf

[3] https://arxiv.org/abs/1412.6572

[4] https://arxiv.org/abs/1312.6199

[5] https://arxiv.org/pdf/1706.06083.pdf

 

반응형