II 제 2부 - AI를 활용한 공격은 무엇이 있을까_ver1.0

※ 이 칼럼은 필자의 주관적인 견해이며, KISEC의 교육 방향과 다를 수 있습니다.

지난 포스팅에서는 제 1부 - 왜 우리는 AI 보안에 관심을 가져야 할까?를 주제로 가트너의 Hype Cycle을 통해 AI 보안의 중요성을 알아보았습니다.

[제 1부 목차]

  1. Gartner에서 바라보는 AI 보안에 대한 시각
  2. AI를 악용하는 사례

이어지는 2부에서는 AI가 무엇인지 알아보고 이를 악용한 공격 사례들을 살펴보면서 적대적 공격(Adversary Attack)이라 불리는 AI 공격에 대해 알아보도록 하겠습니다.

1. AI 공격의 이해

1-1. 적대적 공격(Adversary Attack)

최근 보안시장에서는 새로운 멀웨어를 탐지하기 위해 AI가 활용되고 있습니다. 악성코드로 분류되는 확률을 최소화하도록 AI 모델을 공격하여 공격자는 악성코드 탐지 알고리즘을 우회할 수 있습니다. 이러한 AI 공격을 이해하기 위해서는 적대적 공격(Adversary Attack)이 무엇인지 알아야합니다.

적대적 공격은 딥러닝의 심층신경망을 이용한 모델에 적대적 교란(Adversarial Pertubation)을 적용하여 오분류를 발생시키는 것을 의미합니다.

미국 뉴올리언스에서 진행되는 전세계 딥러닝 분야 컨퍼런스인 ICLR 2015에서 발표된 논문에서는 적대적 공격을 통해 DNN이 높은 확률로 잘못된 이미지로 분류할 수 있음을 증명하였습니다.

그림1. 적대적 공격 예시 [출처: EXPLAINING AND HARNESSING ADVERSARIAL EXAMPLES, ICLR 2015]

논문에서 소개된 내용을 알기 쉽게 요약하자면 다음과 같습니다. DNN으로 만들어진 이미지 분류 모델은 57.7% 확률로 이미지를 판다(panda)로 분류하고 있습니다. 하지만 정상 이미지와 특정 패턴(noise)이 합쳐진 이미지를 AI는 긴팔원숭이(gibbon)으로 분류하였습니다.

여기서 흥미로운 사실은 정상적인 이미지와 패턴이 결합된 이미지가 육안으로는 구별할 수 없다는 것입니다. 이와 같이 긴팔원숭이로 분류되도록 만들어진 이미지를 적대적 예제(Adversarial Examples)라고 합니다.

현재, 대부분 분류 알고리즘은 DNN 기술에 기반을 두고 있으며, 이 기술은 의도적으로 변형된 적대적 예제에 대해서는 취약할 수 있습니다.

1-2. 적대적 공격의 종류

적대적 공격은 회피 공격 (Evasion Attacks), 중독 공격(Poisoning Attacks), 탐색적 공격(Exploratory Attacks)로 구분됩니다.

구분종류
Evasion Attacks- Adversarial Examples Generation
- Generative Adversarial Networks (GAN)
- GAN based attack in collaborative learning
- Intrusion Detection Syste
- Adversarial Classification
Poisoning Attacks- Support Vector Machine Poisoning
- Poisoning on collaborative filtering systems
- Anomaly Detection Systems
Exploratory Attacks- Model Inversion
- Membership Inference attack
- Model Extraction via APIs
- Information Inference

1) 회피 공격 (Evasion Attack)

회피 공격은 위에서 언급한 적대적 예제를 사용해서 AI가 잘못된 의사결정을 하도록 하는 공격으로 입력 공격으로도 불립니다. 회피공격은 2가지 측면으로 분류할 수 있습니다.

변조된 결과가 인간이 인지할 수 있는가?

변조되는 과정이 물리적인가 혹은 디지털화인가?

그림2. 관점에 따른 회피 공격의 종류 [출처: Attacking Artificial Intelligence, Marcus Comiter, 2019]

먼저, 변조된 결과가 인간이 인지할 수 있는가?에 대한 대표적인 사례는 다음과 같습니다.

  • 인지하기 쉬운 공격

    대표적인 사례는 정지 표시를 속도제한 표시로 잘못 인식한 자율 주행 자동차입니다. Regular Object는 정상적인 정지 신호를 나타내고 Attack Pattern은 특정 패턴의 스티커를 나타냅니다. 정상적인 신호에 특정 패턴이 결합되어 변조된 표지판(Attack Pattern)이 만들어졌습니다.

    인간은 변조된 표지판을 STOP이라는 의미로 충분히 인지할 수 있지만 자율 주행 자동차는 변형된 표지판을 정지(Stop)가 아닌 최고 속도 45(speed limit 45) 기호로 인식하여 위험한 결과를 초래하게 됩니다.

    그림3. 인지하기 쉬운 공격 예시 [출처: Attacking Artificial Intelligence, Marcus Comiter, 2019]

  • 인지하기 어려운 공격

    위의 사례는 원본이 손상된 정도를 사람의 눈으로 쉽게 구분할 수 있습니다. 그러나 판다 이미지에 노이즈를 섞어 연구한 결과를 확인해보면 흥미로운 사실을 알 수 있습니다. 변조된 이미지는 사람의 눈에는 변화가 없어 보입니다. 하지만 AI는 노이즈 섞인 이미지를 원숭이 이미지로 인식하였습니다.

    그림4. 인지하기 어려운 공격 예시 [출처: Attacking Artificial Intelligence, Marcus Comiter, 2019]

다음으로 회피 공격을 위해 입력 값을 조작할 때, 물리적인 조작인지 디지털 조작인지에 따라 다음과 같이 분류하기도 합니다.

  • 물리적 공격

    그림5. 물리적 공격 예시 [출처: Attacking Artificial Intelligence, Marcus Comiter, 2019]

  • 디지털 공격

    그림6. 디지털 공격 예시 [출처: Attacking Artificial Intelligence, Marcus Comiter, 2019]

2) 중독 공격 (Poisoning Attack)

회피 공격 과 달리 중독 공격은 공격자가 AI 모델의 학습 과정에 관여하여 AI 시스템 자체를 손상시키는 공격입니다. 대표적인 중독 공격의 방법으로는 다음과 같이 데이터 셋을 손상시키는 것입니다.

그림7. 중독 공격 예시 [출처: Attacking Artificial Intelligence, Marcus Comiter, 2019]

데이터 셋을 손상시킨 중독 공격의 대표적인 사례로 2016년 MS의 인공지능 채팅봇 테이(Tay)가 있습니다. 이 채팅봇은 악의적인 발언을 하도록 사람들에 의해 학습되어 욕설, 인종차별 발언을 남발하여 운영한지 16시간 만에 중단되었습니다.

그림8. MS의 인공지능 채팅봇 테이 [출처: 한겨례]

3) 탐색적 공격(Exploratory Attacks)

탐색적 공격의 대표적인 예로 모델 전도 공격(Model Inversion Attack)API를 통한 모델 추출 공격(Model Extraction via APIs)가 있습니다.

  • Model Inversion(MI) Attack

    Model Inversion Attack은 AI 모델의 학습에 사용된 데이터를 추출하는 공격 기법입니다. 주어진 입력에 대해 출력되는 분류 결과와 신뢰도(Confidence)를 분석하여 역으로 데이터를 추출하여 아래 그림과 같이 이미지를 추출해낼 수 있습니다.

    만약 기업이나 군의 기밀 정보를 기반으로 만들어진 AI 모델인 경우에 공격자는 Model Inversion Attack을 통해서 학습 데이터로 사용된 기밀 정보를 유출할 가능성이 존재합니다. 따라서 기밀정가 유출되더라도 피해를 최소화하기 위해 데이터 암호화가 필요할 것입니다.

    그림9. MI Attack의 예시 [출처: Model Inversion Attacks that Exploit Confidence Information and Basic Countermeasures]

  • Model Extraction via APIs

    Model Extraction via APIs는 공개된 API가 있는 학습 모델의 정보를 추출하는 공격 기법입니다. 이 기법은 기존 모델이 어떻게 이루어져 있는지 알 수 없지만 API를 통해 얻어진 정보로 기능적으로 비슷한 모델을 구현할 수 있는 블랙-박스 공격(Black-Box Attacks)에 해당합니다.

    그림10. Model Extraction via APIs의 예시 [출처:Stealing Machine Learning Models via Prediction APIs]

1-3. 적대적 공격의 기능

※ 다음 단락은 논문 "Adversarial Attacks and Defences: A Survey, 2018"을 참조하였습니다.

적대적 기능(Adversarial Capabilities)은 공격자가 위협을 가할 수 있는 공격 표면(Attack Surface)에서 사용할 수 있는 공격 벡터(Attack Vector)를 의미합니다. 다시말해서, 적대적 기능은 공격자가 AI 모델에 위협을 가할 수 있는 공격 방식입니다.

적대적 기능은 동일한 공격 표면에서 공격자가 개입 가능한 단계가 학습 단계(Training Phase) 혹은 테스트 단계(Testing Phase)인지에 따라 접근 방식이 구분됩니다. 이와 같이 구분하는 이유는 AI 모델 아키텍처에 접근할 수 있는 학습 단계가 테스트 단계보다 더 많은 공격 표면이 존재하다고 간주되기 때문입니다.

1) 학습 단계 기능(Training Phase Capabilities)

학습 단계에서 수행되는 공격은 모델 학습에 사용되는 데이터 셋(dataset)을 조정하여 AI 모델에 직접 영향을 주거나 손상시킵니다.
학습 데이터(Training Data)에 접근하여 공격할 수 있는 전략은 다음과 같습니다.

전략학습 데이터(Training Data)학습 알고리즘(Lerning Algorithm)요약
데이터 주입(Data Injection)접근 불가접근 불가새로운 학습 데이터를 추가하여 모델 손상
데이터 수정(Data Modification)접근 가능접근 불가학습 데이터를 수정하여 모델 손상
논리 변형(Logic Corruption)접근 불가접근 가능학습 알고리즘을 변형하여 모델 손상

  • 데이터 주입(Data Injection)

    데이터 주입을 수행하는 공격자는 학습 알고리즘(Learning Algorithm)학습 데이터(Training Data)에 접근할 수는 없습니다. 하지만 공격자는 학습 데이터 셋(Training Dataset)에 새로운 데이터를 추가하여 AI 모델을 손상시키는 공격을 수행합니다. 이때, 추가되는 새로운 데이터를 적대적 예제라고 부릅니다.

  • 데이터 수정(Data Modification)

    데이터 수정 공격을 수행하는 공격자는 학습 알고리즘(Learning Algorithm)에 접근이 불가능하고 학습 데이터셋(Training Dataset)에 대해 접근이 가능합니다. 공격자는 AI 모델이 학습되기 전에 학습 데이터(Training Data)를 수정하여 모델을 손상시킵니다.

  • 논리 변형(Logic Corruption)

    논리 변형 공격을 수행하는 공격자는 학습 알고리즘(Learning Algorithm)에 접근할 수 있습니다. AI 모델을 학습하는 논리를 변형하여 제어할 수 있는 공격자들의 공격에 대해 대응 전략을 수립하는것은 매우 어렵습니다.

2) 테스트 단계 기능(Testing Phase Capabilities)

테스트 단계에서 수행되는 공격은 AI 모델을 변경하지 않고 잘못된 출력을 하도록 합니다. 이 단계에서는 공격자가 모델에 대한 정보를 어느정도 보유하고 있는지에 따라 화이트 박스 공격(White-Box Attacks) 또는 블랙박스 공격(Black-Box Attacks)으로 구분됩니다.

공격 대상이 되는 모델(f)이 무작위성(r)을 갖는 데이터 분포의 입력-출력데이터(X,y)에 의해 학습되여 최종 모델(θ)을 구성한다고 가정하면 다음과 같이 표현할 수 있습니다.

  • 화이트-박스 공격(White-Box Attacks)

    화이트-박스 공격은 공격자가 모델(f)에 대한 모든 정보를 알고 공격하는 것을 의미합니다. 공격자는 학습 알고리즘, 학습 데이터 분포, 훈련된 최종 모델 등을 알고 있기 때문에 모델의 취약성을 파악하기 쉬워집니다.

    따라서 적대적 공격을 수행할 수 있는 공격 표면(Attack Surface)이 노출되게 됩니다. 결국 모델에 대한 정보를 가지고 있는 공격자는 적대적 예제를 만들어 충분한 시뮬레이션을 수행할 수 있기 때문에 화이트-박스 공격은 치명적인 결과를 초래할 수 있습니다.

  • 블랙-박스 공격(Black-Box Attacks)

    블랙-박스 공격은 공격자가 모델(f)에 대한 정보를 알지 못하고 공격하는 것을 의미합니다. 공격자는 사전에 제작된 값을 입력하여 출력되는 결과를 관찰하며 모델의 취약성을 분석합니다.

    블랙-박스 공격은 다음과 같은 전략으로 분류됩니다.

    • 비적응형 블랙-박스 공격(Non-Adaptive Black-Box Attack)

      비적응형 블랙-박스 공격을 수행하는 공격자는 대상 모델(f)의 학습 데이터 분포(Training Data Distribution)에만 접근이 가능합니다. 공격자는 학습 데이터 분포를 통해 표본을 수집하여 학습하여 만들어진 로컬 모델(f')을 통해 적대적 예제를 생성합니다.

      로컬 모델(f')에서 만들어진 적대적 예제를 대상 모델(f)에 적용하여 오분류를 발생시킵니다. 가장 대표적인 비적응형 모델링의 예시는 GAN을 이용한 Adversarial Examples이 있습니다.

    • 적응형 블랙-박스 공격 (Adaptive Black-Box Attack)

      적응형 블랙-박스 공격을 수행하는 공격자는 대상 모델(f)에 접근이 가능합니다. 공격자는 대상 모델(f)에 수동으로 입력값(X)을 질의하여 능동적으로 출력값(y)를 얻어냅니다.

      얻어진 입력-출력데이터(X,y)를 통해 만들어진 서브모델(f')에서 적대적 예제를 생성합니다. 서브모델(f')에서 만들어진 적대적 예제를 대상 모델(f)에 적용하여 오분류를 발생시킵니다.

    • 엄격한 블랙-박스 공격(Strict Black-Box Attack)

      엄격한 블랙-박스 공격을 수행하는 공격자는 입력-출력데이터(X,y)를 얻을 수 있지만 적응형 블랙-박스 공격과 같이 출력의 변화를 관찰하기 위해 입력을 변경할 수 없습니다.

1-4. 적대적 공격의 목적

※ 다음 단락은 논문 "Adversarial Attacks and Defences: A Survey, 2018"을 참조하였습니다. ※ 입력과 출력에 의해 의사결정이 진행되는 AI의 특성을 고려하여 Source와 Target을 입력과 출력으로 변역하였습니다.*

목적없는 공격은 없을 것 입니다. 과연 적대적 공격은 무슨 목적을 가지고 수행될까요? AI가 잘못된 의사결정을 하도록 하는 것이 적대적 공격의 목적이 될 것입니다. 더 나아가 AI를 활용하고 있는 다양한 분야를 위협하기 위함일 것 입니다.

공격자의 의도와 난이도에 따라서 적대적 공격의 목적을 다음과 같이 분류할 수 있습니다.

분류요약
신뢰도 감소(Confidence reduction)예측 신뢰도를 낮추는 공격
오분류(Misclassification)오답을 유발하는 공격
출력 오분류(Targeted Misclassification)의도한 오답을 유발하는 공격
입력 및 출력 오분류(Source/Target Misclassification)입력에 따라서 오답을 유발하는 공격

  • 신뢰도 감소(Confidence reduction)

    신뢰도 감소는 모델에 대한 예측 신뢰도를 감소시키는 것입니다. 예를 들어 자율자동차가 Stop 표지판을 높은 확률로 분류하는 것을 낮은 확률로 분류하도록 하는 것입니다.

    그림11. Confidence reduction의 예시

  • 오분류(Misclassification)

    오분류는 A라는 집단을 n₁ , n₂, n₃ , ... 등의 불특정 집단으로 오분류하도록 하는 것입니다. 예를 들어 자율자동차에서 Stop 표지판을 다른 것으로 분류하도록 하는 것입니다.

    그림12. Misclassification의 예시

  • 출력 오분류(Targeted Misclassification)

    출력 오분류는 N(n₁ , n₂, n₃ , ...)이라는 모든 집단을 A라는 하나의 집단으로만 오분류하도록 하는 것입니다. 예를 들어 자율자동차가 인식하는 모든 표지판을 Go로 분류하도록 하는 것입니다.

    그림13. Targeted Misclassification의 예시

  • 입력 및 출력 오분류(Source/Target Misclassification)

    입력 및 출력 오분류는 집단 A는 n₁ 으로, 집단 B는 n₂ 등으로 1:1 매칭하여 오분류하도록 하는 것입니다. 예를 들어 자율자동차가 Stop라는 표지판을 Go로 분류하도록 하는 것입니다.

    그림14. Source/Target Misclassification의 예시

지금까지 적대적 공격(Adversary Attack)에 대해서 알아보았습니다.
최근 몇 년 간 FSGM, DeepFool, Universal Adversarial Pertubations 등 적대적 공격 알고리즘에 대한 논문이 발표되었습니다. 이러한 적대적 공격에 대한 방어 기법으로는 악용가능한 사례를 학습 데이터에 포함하여 훈련시키는 방법이 존재합니다. 악용가능한 사례를 적대적 예제라고 부르며, 적대적 예제를 훈련시키는 것을 적대적 훈련이라고 합니다.

적대적 공격에 대한 심층적인 내용은 "Adversarial Attacks and Defences: A Survey, 2018"을 참조하여 소개해 드렸습니다. 자세한 내용을 학습하시고 싶으신 분은 첨부된 파일을 읽어보시면 도움이 많이 될 것 같습니다.

이어지는 3부에서는 "AI 공격을 방어할 수 있는 방법은 무엇일까?"라는 주제로 적대적 공격을 방어하기 위한 방법 대해서 알아보도록 하겠습니다.

참조

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

Attacking Artificial Intelligence: AI's Security Vulnerability and What Policymakers Can Do About It

Adversarial Attack: Part 1

Matt Fredrikson, Somesh Jha, Thomas Ristenpart, Model Inversion Attacks that Exploit Confidence Information,2015

Anirban Chakraborty, Adversarial Attacks and Defences_A Survey, 2018