• [NDSS][AI][SECURITY] CloudLeak: Large-Scale Deep Learning ModelsStealing Through Adversarial Examples 논문 리뷰

    2021. 2. 9.

    by. ugonfor

     

    블로그를 새단장을 하면서 잘 정제된 글만 작성하기로 마음 먹었습니다.

    앞으로 멋진 글들만 작성해보겠습니다.


    논문 리뷰를 하려고 하는 데, 이번에 소개드릴 논문은 

    "CloudLeak: Large-Scale Deep Learning Models Stealing Through Adversarial Examples"

    이란 제목의 논문입니다.

     

    Outline은 다음과 같습니다.

    랩세미나를 했던 Paper라서, 중간중간에 PPT자료가 몇개 있을 것입니다.

    Outline

     

    Objective

    이 논문의 목표는 논문의 제목처럼, Large-Scale의 deep learning Models를 Stealing(훔침)하는 것입니다.

    이때 딥러닝 모델을 훔치면 어떤게 좋을가? 하고 생각할 수 있는 데, 모델을 훔치게 되면, 기존에는 돈을 내고 API사용료를 냈어야 했는 데, 적당한 금액의 API사용료를 내고서 로컬에 클라우드의 모델을 구현하게 된다면, 모델을 API를 이용해서 사용할 필요가 없어지겠죠?

    그렇기에, 클라우드 기반 API의 성능을 로컬에서 구현을 하는 것이 이 논문에서 말하는 목표입니다.

    즉, 클라우드 기반 모델의 구조가 어떻게 되어있는 지를 알아내는 것이 아니라, Decision Boundary를 알아내는 것이 목표입니다.

    이해가 되셨나요..? ㅎㅎ.. 이해가 안 됬으면 그냥 그런갑다 하고 넘어가서 보면 이해가 될겁니다.

     

    Background

    MLaaS(Machine Learning as a Service)

    먼저, MLaaS가 무엇인지 알아야 합니다. 

    현재, DNN은 다방면에서 엄청난 성능을 보여주고 있습니다.

    이미지 분류에서도 그렇고, 음성처리 등 여러 분야에서 DNN을 이용해서 획기적으로 결과를 얻은 분야들이 많습니다.

    하지만, DNN을 구성하기 위해서는 월등한 성능의 GPU와 양질의 Dataset이 필요했는 데, 그렇기에 Local에서 이런 DNN을 훌룡하게 구현하는 것은 문제가 있었습니다.

     

    그래서 기업에서는 이런 DNN을 클라우드 기반으로 구현을 하고, Train 시킨 후, User가 사용할 수 있게 해서 수익 창출을 하려고 했습니다.

    위 그림 처럼, Suppliers(주로 기업)은 User에게 API를 제공해서 Model을 사용할 수 있게 하고, 그에 대한 대가를 얻었습니다.

     

    이때, 이런 클라우드 기반, Machine Learning 서비스를 보고 MLaaS라고 합니다.

    또한, 이 논문에서 훔치려고 하는 모델 역시, 위 사진에서 Black-box라고 되어있는 모델의 성능을 말합니다.

     

    이런 MLaaS의 예시로는 아래와 같이 여러기업들의 여러가지 서비스들이 있습니다.

     

    Model Stealing Attack

    그러면, Model Stealing Attack이란 무엇인가?

    Model Stealing Attack이란, 클라우드 기반 모델과 같은 성능을 내는 모델을 로컬에 구현하고자 하는 것입니다. Training Dataset없이, 또, 많은 비용 없이 비슷한 성능의 모델을 로컬에 구현하고자 하는 것이 Model Stealing Attack입니다.

    이런 Model Stealing Attack으로는 다음과 같은 것들이 있었습니다.

    하지만, 사실 위의 경우들을 살펴보면, Queries, Accuracy, Cost면에서 모두 만족을 하는 것이 없었습니다. 쿼리수가 엄청나게 많거나, 비용이 너무 비싸거나, 정확도가 너무 낮거나 하는 문제점이 있었습니다. 

    그래서 이 논문에서는 이 세가지 조건들을 모두 만족하는, 쿼리수도 적으면서, 정확도도 높고, 비용도 적게 나오는 그런 Model Stealing Attack 기법을 제시하는 것이 목표입니다.

     

    Adversarial Examples Based Model Stealing

    Paper에서 제시하고자하는 Model Stealing 기법은 Adverarial Examples Based Model Stealing기법인데, 먼저 이를 이해하기 위해 Adversarial Examples가 무엇인지 알아보겠습니다.

     

    Adversarial Examples

    Adeversarial Examples란 adversary가 생성한 deep learning models를 fool하는 model inputs를 말합니다.

    예시를 들어 설명하자면, 아래 사진과 같이 target label이 잘못된 값을 나타내도록 하는 inputs을 말합니다.

    아래 사진에서는 판다 사진을 가지고 adversarial examples를 생성하였는 데, perturbation(지지직 거리는 사진)을 판다 사진에 합성을 하여서 생성한 판다 사진은 사람 눈으로 보기에는 판다사진이지만, 인공지능이 분류를 할 경우 강아지 사진으로 잘못분류하게 됩니다.

    이런 식으로 인공지능이 잘못 분류하게 만드는 그런 inputs를 보고 adversarial examples라 합니다.

     

     

    이런, Adversarial Examples를 생성하는 방법으로는 다음과 같은 방법들이 존재합니다.

    • Non Feature Based
      • Projected Gradient Descent(PGD) Attack
      • C&W Attack (C&W)
    • Feature-based
      • Feature adversary attack (FA)
      • FeatureFool (FF)
    • Other
      • Random Sampling (RS)

    위 방법들을 모두 수식으로 이해하고자 하면, 각각 논문을 하나씩 더 읽어야 하기에... 이런 방법들이 있다는 것만 이해하고 넘어가는 걸 추천한다.

     

    Adversarial Active Learning

    Paper의 저자는 본인들이 주장하는 Method를 보고 Adversarial Active Learning이라고 하였다. 하지만, 우리 교수님께서 말씀하시길 정확히 말하자면, Active Learning이라고 하기엔 조금 문제가 있다고 하시더라..

     

    Active Learning이란, 간단하게 말하자면 모든 dataset에 대해서 처음에 라벨링을 사람이 하기에는 너무 오랜 시간(cost)가 들어가기에, train을 할때 더 효과적으로 작용하는 examples에 대해서만 라벨링을 하고 이런 것들에 대해서만 training을 하는 것이 active learning이다.

     

    하여튼 저자가 주장하는 Adversarial Active Learning은 다음과 같다.

    위에서 경계를 adversarial example인지, legitimate example인지 확인하는 경계라 하자. 

    모든 example을 평면상에 표현하면 위 그림처럼 표현을 할 수 있다.

    경계를 기준으로 왼족위는 adversarial, 오른쪽아래는 legitimate example이라 하자.

     

    그러면, 이제 active learning의 관점에서 보았을 때, 가장 효과적으로 train에 영향을 주는 examples는 아래와 같다.

    margin에 가까운 example들. 즉, minimum-confidence legitimate/adversarial examples가 train할 때 있어서 가장 효과적인 것이다. 이때 confidence란, model이 예측했을 때 그 예측자신감이라 할 수 있다. (얼마나 확신을 가지고 model이 예측을 하는가?)

     

    즉 confidence가 낮은 examples일 수록, train을 할 때 더 효과적으로 작용한다는 것이다.

     

    그래서 이를 수식으로 나타내면 다음과 같다.

    Q^LS_multiclass는 여러개의 class에 대해서 classification하는 model에 대해서 Low-confidence를 가지는 input값을 가리킨다.

     

    Make Adversarial Examples

    그러면, 위에서 언급하는 것과 같은 inputs를 위주로 train을 해야하는 데, 어떻게 그런 inputs를 생성하는 가?에 대한 의문이 남는다.

    이에 대한 해답으로 paper에서 주장하는 것이 FeatureFool이다.

    FeatureFool이란, margin-based adversarial examples를 생성하는 기법이다.

    (아래 식의 경우, 교수님의 코멘트로는 좀 애매한 부분들이 많은 데, 경험적으로 수식을 작성한 것이 꽤 있다고 하였다.)

     

    L-BFGS 알고리즘을 통해서 최적화를 하는 데, 아래와 같은 식을 통해 x inputs를 생성한다.

    (이 부분의 경우, 본인도 아직 부족하여 정확한 설명이 어렵다...)

     

    FeatureFool

    그래서 FeatureFool에 대해서 다시 정리를 하자면 다음과 같다.

    FeatureFool이란, input값에 perturbation을 주고 model에 push했을 때, n번째 hidden layer에서 생성한 feature를 이용해서 class salience를 계산하고, 이를 통해 다시 feature를 조정해야하는 부분을 결정해서 minimum perturbation을 찾는 것이다.

     

    직관적으로 이해해보자고 하면, 아래와 같다.

    아래 사진의 경우에는 3개의 타입은 emotion, flower, traffic에 대한 내용인데, 각각에서 왼쪽은 source, 가운데는 guide, 오른쪽은 adversarial이다. 즉, source image에서 featurefool 방법을 이용해서 perturbation을 주어 adversarial examples(오른쪽)을 생성하였고, 이 examples는 model에 집어 넣었을 때, guide(가운데)에 해당하는 결과를 가져오는 examples들인 것이다.

     

    아래에 confidence도 확인을 해보게 되면, Happy이지만, 그 값이 0.01로 아주 낮은 것을 확인할 수 있다.

    이는 앞서 말했던, margin에 가까운 examples인 것을 알 수 있다.

     

    그래서 FeatureFool을 이용하면 margin에 가까운 examples를 생성할 수 있다고 이 paper에서는 말하고 있다.

     

    MLaaS Model Stealing Attacks

    그러면, 이제 Model Stealing은 구체적으로 어떻게 일어나는 지 알아보자.

    paper에서 주장하는 Model Stealing 방법은 다음과 같다.

     

    먼저, Adversarial examples를 생성하는 데, feature fool을 이용해서 생성한다.

    이후, query를 통해서 labeling과 confidence값을 계산한다

    이후 Model Zoo로 부터 model을 골라 transfer learning을 통해 model을 학습시킨다.

    이를 간단하게 나타내면 위 그림과 같다.

    Model ZOO란 transfer learning에 이용할 model들 리스트이고, adversarial examples를 생성하여 이를 transfer learning의 dataset으로 훈련시켜 model의 성능을 MLaaS와 비슷하게 만드는 것이다.

     

    다시 살펴보자면 아래와 같다.

    위 그림에서 먼저, source images에서 adversarial examples(malicious)를 생성하고, 이에 대해서 MLaaS Query를 통해 labeling과 confidence를 계산한다. 

    이후 이 dataset을 이용해서 transfer learning을 진행하고 이를 통해 local에서 MLaaS와 비슷한 성능의 Model을 구축한다.

     

    구체적으로 알고리즘은 다음과 같다.

    내용은 위에서 설명한것과 동일하고, 한번 읽어보면 이해가 될 것이다.

     

    그래서 위와 같은 방법으로 Model Stealing Attack을 할 것이라 paper에서 설명한다.

     

    Experiment

    Experiment result

    위에서 소개한 방법을 이용해서 실제로 model stealing이 가능한지 실험을 한 결과는 다음과 같다.

    먼저, 위에서 소개한 방법에 대해서 adversarial examples를 생성하는 방법을 달리하여 결과를 나타낸 것이다.

    위에서 보면, FeatureFool(FF) 방법을 이용할 때, 대부분의 경우 Accuracy가 우수한 것을 확인할 수 있었다. 

    Query수를 2k정도로 하게 되면, MLaaS모델의 약, 98% 정도 성능으로 local에 model을 구현할 수 있음을 보였다.

     

    결과에서 보면 CW가 FF보다 나은 성능을 보이는 것도 조금 있는 데, 저자는 이 부분에 대해서 Query가 많아지게 되면, 성능이 비슷해 질 수 있다고 말을 하였다. query가 적은 부분을 확인해 보면 확실히 FF방법을 이용했을 때 다른 방법보다 accuracy가 높은 것을 확인할 수 있다.

     

    이 외에도 transfer learning을 하는 architecture에 따라서도 실험결과를 소개하였다.

     

    위 결과들을 확인하면, 대체적으로 VGG, Resnet처럼 복잡한 layer를 이용하는 architecture들이 더 좋은 성능을 보였고, adversarial examples를 생성하는 방법에서는 CW, FF가 대체적으로 좋은 성능을 보여주었다.

     

    Comparison with Existing Attacks

    주목해야하는 부분은 다음 부분이다.

    기존에 존재하던 공격기법들과 비교하였을 때, paper에서 소개하는 방법(보라색)은 훨씬 model을 빨리 높은 정확도로 구축을 하였다.

     

    Discussion

    Evasion of PRADA Detection

    참고로, 현재 MLaaS의 경우에는 PRADA라는 보호기법이 존재하긴 한다. 하지만, 위에서 빨간부분을 확인하면 알 수 있듯이, 적절히 coefficient를 조절하게 되면, missed가 되는 경우도 존재한다. 보호기법이 속수무책이 되고 model을 그대로 복사할 수 있게 되는 것이다.

     

    Limitations

    또한 저자는 이 논문의 한계로 다음 요소들을 소개하였다.

    1. Adversarial Examples를 생성하는 방법에서 FeatureFool을 소개하였는 데, 일반적으로 Perturbation을 크게 주게 된다면, model의 성능이 떨어지기 마련이다. 그래서 성능이 떨어지지 않으면서 Train 효율이 높아지는 균형이 있는 부분을 찾아야 한다.

    2. 위 논문의 경우 single label cases에 대해서만 다루었기에, multi label cases에 대해서는 전혀 논의된 바가 없다.

     

    Conclusion

    논문을 요약하자면,

    Adversarial Examples를 생성하는 방법인 FeatureFool기법을 소개하였고,

    MLaaS Model Stealing Attacks using Adversarial Active Learning에 대해서 소개를 하였다.

    또한, 논문의 저자는 model stealing 기법에 대해서 effective defense mechanisms가 필요하다고 하였다. 

     

    개인적으로 본인이 이 논문의 핵심을 얘기하자면, Adversarial Active learning에 대해서 소개하면서 이야기했던 margin에 가까운 값들에 대해서 train을 하면, 효율이 좋아진다는 부분이 paper에서 가장 주목할 만한 점인 것 같다.

    (교수님의 경우, 이 부분이 좋은 아이디어라고 언급을 하셨고, paper자체는 그렇게 좋은 것 같지는 않다고 하셨다. 하지만, 이런 아이디어를 확인해볼 수 있는 좋은 사례라고 말씀하셨다.)

     


    Reference

    www.ndss-symposium.org/ndss-paper/cloudleak-large-scale-deep-learning-models-stealing-through-adversarial-examples/

    Paper : www.ndss-symposium.org/wp-content/uploads/2020/02/24178-paper.pdf

    Slide : www.ndss-symposium.org/wp-content/uploads/24178-slides.pdf

    Video : www.youtube.com/watch?v=tSUQl85Hprs&list=PLfUWWM-POgQuRxr8iZwL_6Dw-isT5CHUt&index=3&t=0s

     

     

    댓글 2

    • 프로필사진

      "CRYPTO"라고 암호학 컨퍼런스에서도 "Cryptanalytic Extraction of Neural Network Models"라고 model extraction 관련한 논문이 2020년에 나왔어서 살짝 찍먹했었는데 암튼 잘 보고 갑니닷