
Offensive AI를 다루는 유용한 리소스의 선별된 목록
공격적 AI를 다루는 유용한 리소스 모음입니다.
AI 모델의 취약점을 악용합니다.
적대적 머신러닝은 AI 모델의 약점을 평가하고 대응책을 제공하는 역할을 담당합니다.
추출, 역전, 중독, 회피의 네 가지 공격 유형으로 구성됩니다.

정보 추출을 극대화하는 요청을 보내 모델의 파라미터와 하이퍼파라미터를 탈취하려고 시도합니다.

공격자가 모델에 대해 알고 있는 정도에 따라 화이트박스(white-box) 공격과 블랙박스(black-box) 공격을 수행할 수 있습니다.
가장 단순한 화이트박스 사례(공격자가 모델, 예: 시그모이드 함수에 대해 완전한 지식을 가진 경우)에서는 쉽게 풀 수 있는 선형 방정식 시스템을 만들 수 있습니다.
모델에 대한 지식이 충분하지 않은 일반적인 경우에는 대체 모델(substitute model)을 사용합니다. 이 모델은 원본 모델과 동일한 기능을 모방하기 위해 원본 모델에 보낸 요청으로 학습됩니다.

대체 모델을 학습하는 것은 (많은 경우) 처음부터 모델을 학습하는 것과 동일합니다.
계산 비용이 매우 많이 듭니다.
공격자는 탐지되기 전까지 사용할 수 있는 요청 수에 제한이 있습니다.
머신러닝 모델의 정보 흐름을 역으로 추적하기 위해 고안되었습니다.

공격자가 명시적으로 공유하려 하지 않았던 모델 정보를 알 수 있게 해줍니다.
학습 데이터나 모델의 통계적 속성과 같은 정보를 알 수 있게 해줍니다.
가능한 유형은 세 가지입니다:
멤버십 추론 공격(MIA): 공격자가 특정 샘플이 학습에 사용되었는지 여부를 판별하려고 시도합니다.
속성 추론 공격(PIA): 공격자가 학습 단계에서 특징으로 명시적으로 인코딩되지 않은 통계적 속성을 추출하는 것을 목표로 합니다.
재구성: 공격자가 학습 세트의 하나 이상의 샘플 및/또는 해당 레이블을 재구성하려고 시도합니다. 역전(inversion)이라고도 합니다.
고급 암호화 사용. 차등 프라이버시, 동형 암호화, 안전한 다자간 계산 등의 대응책이 있습니다.
과잉 학습과 프라이버시 사이의 관계 때문에 드롭아웃(Dropout)과 같은 정규화 기법을 사용합니다.
모델 압축은 재구성 공격에 대한 방어 수단으로 제안되었습니다.
머신러닝 모델의 정확도를 낮추도록 학습 세트를 오염시키는 것을 목표로 합니다.

이 공격은 학습 데이터에 수행될 경우 탐지하기 어렵습니다. 동일한 학습 데이터를 사용하는 여러 모델 간에 공격이 전파될 수 있기 때문입니다.
공격자는 결정 경계를 수정하여 모델의 가용성을 파괴하려고 하며, 그 결과 잘못된 예측을 생성하거나 모델에 백도어를 심습니다. 후자의 경우 모델은 대부분의 경우 올바르게 동작하지만(원하는 예측을 반환), 공격자가 특별히 생성한 특정 입력에 대해서는 원치 않는 결과를 생성합니다. 공격자는 예측 결과를 조작하고 향후 공격을 실행할 수 있습니다.
BadNets는 머신러닝 모델에서 가장 단순한 유형의 백도어입니다. 또한 BadNets는 원래 모델과 다른 작업을 위해 다시 학습되더라도(전이 학습) 모델 내에 유지될 수 있습니다.
공개 사전 학습 모델에는 백도어가 포함될 수 있다는 점에 유의하는 것이 중요합니다.
중독된 데이터 탐지 및 데이터 정화(data sanitization) 사용.
강건한 학습 방법.
특정 방어 기법.
공격자는 머신러닝 모델의 입력에 작은 교란(노이즈 형태)을 추가하여 오분류를 유발합니다(적대적 예제).

중독 공격과 유사하지만, 주요 차이점은 회피 공격이 추론 단계에서 모델의 약점을 악용하려 한다는 것입니다.
공격자의 목표는 적대적 예제를 인간이 인식할 수 없도록 만드는 것입니다.
상대방이 원하는 출력에 따라 두 가지 유형의 공격을 수행할 수 있습니다:
표적 공격: 공격자가 자신이 원하는 예측을 얻는 것을 목표로 합니다.

비표적 공격: 공격자가 오분류를 유발하는 것을 의도합니다.

가장 일반적인 공격은 화이트박스 공격입니다:
적대적 훈련: 학습 중에 적대적 예제를 생성하여 모델이 적대적 예제의 특징을 학습하도록 함으로써 이러한 유형의 공격에 더 강건하게 만듭니다.
입력 변환.
그레이디언트 마스킹/정규화. 별로 효과적이지 않습니다.
약한 방어.
Prompt Injection Defenses: 프롬프트 인젝션에 대한 모든 실용적 및 제안된 방어 기법입니다.
Lakera PINT Benchmark: 프롬프트 인젝션 테스트(PINT) 벤치마크는 Lakera Guard와 같은 프롬프트 인젝션 탐지 시스템의 성능을 알려진 공개 데이터셋에 의존하지 않고 중립적으로 평가할 수 있는 방법을 제공합니다.
Devil's Inference: 특정 입력에 노출되었을 때 헤드 전반의 주의 분포를 관찰하여 Phi-3 Instruct 모델을 적대적으로 평가하는 방법입니다. 이 접근 방식은 모델이 '악마의 사고방식'을 채택하도록 유도하여 폭력적인 성격의 출력을 생성할 수 있게 합니다.
Over-the-Air Adversarial Attack Detection: from Datasets to Defenses
Harnessing Hyperbolic Geometry for Harmful Prompt Detection and Sanitization
적대적 견고성 툴박스, 줄여서 ART라고 하는 이 라이브러리는 머신러닝 모델의 견고성을 테스트하기 위한 오픈소스 적대적 머신러닝 라이브러리입니다.

Python으로 개발되었으며 추출, 역전, 중독 및 회피 공격과 방어를 구현합니다.
ART는 Tensorflow, Keras, PyTorch, MxNet, ScikitLearn 등 가장 널리 사용되는 프레임워크를 지원합니다.
이미지를 입력으로 사용하는 모델에 국한되지 않고 오디오, 비디오, 테이블 데이터 등 다른 유형의 데이터도 지원합니다.
Cleverhans는 이미지 모델에서 회피 공격을 수행하고 딥러닝 모델의 견고성을 테스트하기 위한 라이브러리입니다.

Python으로 개발되었으며 Tensorflow, Torch, JAX 프레임워크와 통합됩니다.
L-BFGS, FGSM, JSMA, C&W 등 다양한 공격을 구현합니다.
AI는 악의적인 작업을 수행하고 기존 공격을 강화하는 데 사용됩니다.
| 이름 | 유형 | 지원 알고리즘 | 지원 공격 유형 | 공격/방어 | 지원 프레임워크 | 인기도 |
|---|
| Cleverhans | 이미지 | 딥러닝 | 회피 | 공격 | Tensorflow, Keras, JAX | |
| Foolbox | 이미지 | 딥러닝 | 회피 | 공격 | Tensorflow, PyTorch, JAX | |
| ART | 모든 유형 (이미지, 테이블 데이터, 오디오,...) | 딥러닝, SVM, LR 등 | 모든 유형 (추출, 역전, 중독, 회피) | 둘 다 | Tensorflow, Keras, Pytorch, Scikit Learn | |
| TextAttack | 텍스트 | 딥러닝 | 회피 | 공격 | Keras, HuggingFace | |
| Advertorch | 이미지 | 딥러닝 | 회피 | 둘 다 | --- | |
| AdvBox | 이미지 | 딥러닝 | 회피 | 둘 다 | PyTorch, Tensorflow, MxNet | |
| DeepRobust | 이미지, 그래프 | 딥러닝 | 회피 | 둘 다 | PyTorch | |
| Counterfit | 모든 유형 | 모든 유형 | 회피 | 공격 | --- | |
| Adversarial Audio Examples | 오디오 | DeepSpeech | 회피 | 공격 | --- |