Skip to main content
QUICK REVIEW

[논문 리뷰] STRATA: Simple, Gradient-Free Attacks for Models of Code

Jacob M. Springer, Bryn Marie Reinstadler|arXiv (Cornell University)|2020. 09. 28.
Adversarial Robustness in Machine Learning참고 문헌 37인용 수 5
한 줄 요약

STRATA는 코드 모델의 신경망에 대해 간단하고 기울기 기반 공격이 아닌 공격 방법을 제안한다. 이는 훈련 데이터에서 토큰 빈도와 학습된 토큰 임베딩의 L2 노름 사이에 강한 상관관계를 이용하는 것이다. 기울기를 사용하지 않고도 고L2노름 토큰으로 지역 변수를 대체함으로써, STRATA는 최소한의 계산 비용으로 코드2서브 모델에서 최신 기술 수준의 악성 성공률을 달성하며 기울기 기반 방법을 능가하고, 강화된 모델에 대해서도 효과를 유지한다.

ABSTRACT

Neural networks are well-known to be vulnerable to imperceptible perturbations in the input, called adversarial examples, that result in misclassification. Generating adversarial examples for source code poses an additional challenge compared to the domains of images and natural language, because source code perturbations must retain the functional meaning of the code. We identify a striking relationship between token frequency statistics and learned token embeddings: the L2 norm of learned token embeddings increases with the frequency of the token except for the highest-frequnecy tokens. We leverage this relationship to construct a simple and efficient gradient-free method for generating state-of-the-art adversarial examples on models of code. Our method empirically outperforms competing gradient-based methods with less information and less computational effort.

연구 동기 및 목표

  • 코드 모델에서 토큰 빈도와 학습된 토큰 임베딩 간의 통계적 관계가 악성 예제 생성에 활용될 수 있는지 조사하는 것.
  • 모델 기울기가 필요 없고 광범위한 검색이 필요 없는 계산 효율성이 높은 기울기 기반 공격 방법을 개발하는 것.
  • 코드2서브와 같은 최신 코드 요약 모델에 대해 제안된 방법의 효과성을 평가하는 것.
  • 기울기 기반 공격에 대비해 강화된 모델에 대해 공격의 이식 가능성과 강건성을 테스트하는 것.
  • 빈도와 상관관계가 있는 고L2노름 토큰이 지역 변수 대체 공격에 더 효과적임을 보여주는 것.

제안 방법

  • 이 방법은 여러 코드 데이터셋에서 훈련 데이터의 토큰 빈도와 해당 토큰 임베딩의 L2 노름 사이에 강한 상관관계가 있음을 확인한다.
  • 공격의 목적을 달성하기 위해 토큰의 임베딩 L2 노름에 기반해 지역 변수의 대체 토큰을 선택하며, 높은 L2 노름을 가진 토큰을 우선순위로 삼아 악성 영향을 극대화한다.
  • 공격는 지역 변수 식별자를 동일한 어휘에서 고L2노름 토큰으로 대체하는 전략으로 구현된다.
  • 기울기 계산이나 반복 최적화가 필요 없기 때문에, CPU 전용 시스템에서도 빠른 실행이 가능하다.
  • 백색 상자 및_BLK 백색 상자 설정 모두에서 적용되며, 빈도-L2 노름 관계를 이용해 효과적인 블랙박스 공격를 생성한다.
  • 공격는 자바-소, 자바-미디엄, 자바-라지, 파이썬150k 데이터셋에서 훈련된 코드2서브 모델에 적용된다.

실험 결과

연구 질문

  • RQ1코드 훈련 데이터에서 토큰 빈도와 학습된 토큰 임베딩의 L2 노름 사이에 통계적으로 유의미한 상관관계가 존재하는가?
  • RQ2이 관계를 이용해 기울기 기반 공격이 아닌 효과적인 악성 예제를 생성할 수 있는가?
  • RQ3제안된 STRATA 공격의 성능은 기울기 기반 및 검색 기반 공격 방법과 비교해 어떻게 되는가?
  • RQ4기울기 기반 공격에 대비해 강화된 모델에 대해 STRATA 공격이 여전히 효과적인가?
  • RQ5빈도와 임베딩 정보만을 사용해 블랙박스 설정에서 효과적으로 공격를 적용할 수 있는가?

주요 결과

  • 토큰 빈도와 임베딩 L2 노름 사이에 강한 비선형 상관관계가 존재한다: 높은 빈도를 가진 토큰일수록 일반적으로 L2 노름이 높지만, 매우 높은 빈도를 가진 토큰들에서는 노름이 감소하는 경향을 보인다.
  • STRATA는 코드2서브에서 기울기 기반 방법보다 뛰어난 성능을 보이며, 훨씬 적은 계산 자원으로도 높은 악성 성공률을 달성한다.
  • 코드2서브/자바-라지 모델에서 STRATA는 테스트 세트에서 38.7%의 성공률을 기록했으며, 기준 방법을 능가하고 다양한 데이터셋 간의 높은 이식 가능성을 보였다.
  • CPU 전용 기계에서 STRATA는 몇 초 내로 악성 예제를 생성했고, 동일한 하드웨어에서 비교 가능한 기울기 기반 방법은 수 시간이 걸렸다.
  • 기울기 기반 공격에 대비해 강화된 모델도 STRATA에 취약했으며, STRATA가 생성한 악성 예제에서 F1 스코어는 0.367에서 0.240으로 감소했다.
  • 타겟 설정에서도 공격는 매우 효과적이었으며, 예를 들어 코드2서브/자바-라지에서 'tournament'라는 단어를 타겟으로 삼았을 때 86.3%의 성공률을 기록했다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.