SecAlign: Defending Against Prompt Injection with Preference Optimization

Introduction

이전에 소개한 StruQ는 LLM 통합 애플리케이션에서 prompt injection(프롬프트 인젝션) 방어를 위해 특수 구분자 토큰과 fine-tuning을 결합하는 방식을 제안했습니다. StruQ의 훈련 목표는 다음 한 문장으로 요약됩니다. “주입된 프롬프트가 있어도 LLM이 정상 instruction에 대한 정답을 출력하도록 likelihood를 최대화하라.” 이 접근법은 강력하지만 근본적인 한계가 있습니다. LLM은 정상 응답을 ‘좋아하도록’ 학습되었을 뿐, 공격자가 원하는 응답이 어떤 모습인지 명시적으로 ‘거부’하도록 훈련되지 않았습니다.

UC Berkeley와 Meta 연구팀은 이 간극에 주목합니다. 분류기(classifier)와 달리 LLM의 출력 공간은 어휘 크기 $V$와 시퀀스 길이 $L$에 따라 $V^L$ 가지나 되는 방대한 공간입니다. 따라서 정상 응답의 확률을 높이는 것이 공격 응답의 확률을 낮추는 것과 거의 등가인 분류기와 달리, LLM에서는 두 목표가 느슨하게만 연결되어 있습니다. 정상 응답으로 회귀시키는 것이 공격 응답을 억제하는 데 충분하지 않은 것입니다.

이 문제를 해결하기 위해 저자들이 선택한 해법은 놀라울 만큼 우아합니다. RLHF와 alignment 연구에서 LLM이 ‘선호하는 응답’과 ‘비선호하는 응답’을 함께 제시하여 올바른 방향으로 정렬하는 preference optimization(선호 최적화)을 prompt injection 방어에 직접 적용하는 것입니다. 공격받은 입력을 주었을 때 LLM이 “정상 instruction에 대한 응답을 선호하고, 주입된 instruction에 대한 응답을 거부하도록” 학습시키는 것이 SecAlign의 핵심 아이디어입니다.

Figure 1: SecAlign 개요 — 위: preference optimization 문제 정식화, 아래: 보안·유틸리티 비교
Figure 1. (위) prompt-injected 입력에서 LLM이 정상 응답(def is_prime)을 선호하고 주입된 응답(공룡 답변)을 거부하도록 fine-tuning한다. (아래) SecAlign은 Llama3-8B-Instruct에서 가장 강력한 공격에 대해 ASR 8%를 달성하며 유틸리티를 유지한다. (Chen et al., 2025)


Background: Threat Model and Attack Taxonomy

Problem Statement

LLM 통합 시스템의 입력은 세 부분으로 구성됩니다.

\[x = d_{\text{instruction}} \; s_{\text{instruction}} \; d_{\text{data}} \; s_{\text{data}} \; d_{\text{response}}\]

여기서 $d_{\text{instruction}}, d_{\text{data}}, d_{\text{response}}$는 시스템 설계자가 정의한 구분자(delimiter)이고, $s_{\text{instruction}}$는 정상 명령, $s_{\text{data}}$는 처리할 외부 데이터입니다. Prompt injection은 공격자가 $s_{\text{data}}$ 안에 악의적인 명령을 삽입하여 LLM을 조종하는 공격입니다.

위협 모델. 공격자는 데이터 부분에 임의의 내용을 삽입할 수 있으며 정상 명령과 프롬프트 포맷을 알지만 이를 수정할 수 없습니다. 가장 강력한 시나리오로 공격자는 LLM에 white-box 접근이 가능하다고 가정합니다. 반면 방어자(시스템 설계자)는 LLM에 완전히 접근 가능하지만 계산 자원이 제한됩니다.

방어 목표. 방어는 두 가지 목표를 동시에 달성해야 합니다.

Attack Types

논문은 크게 두 가지 공격 범주를 테스트합니다.

Optimization-Free Attacks:

Optimization-Based Attacks:


Methodology: SecAlign

Why Existing Fine-Tuning Defenses Fall Short

StruQ를 비롯한 기존 fine-tuning 기반 방어들은 아래 목적 함수를 사용합니다.

\[\mathcal{L}_{\text{StruQ}} = -\log p(y_w \mid x) \tag{1}\]

여기서 $x$는 prompt-injected 입력, $y_w$는 정상 응답입니다. 이 목적 함수는 LLM이 $y_w$를 출력할 확률을 높이는 것만 목표로 합니다.

분류기의 경우, 출력 클래스 수가 작기 때문에 $y^*$를 향하는 것은 $y^{\prime}$를 멀리하는 것과 거의 같습니다. 그러나 LLM의 출력 공간은 $V^L$ 규모입니다. $y_w$를 향해 회귀하는 것이 공격 응답 $y_l$ 수백만 가지를 동시에 억제하기에는 역부족입니다. 실제로 Fig. 2에서 볼 수 있듯이, StruQ 훈련 후에도 $y_l$의 log probability는 $y_w$의 그것과 거의 함께 낮아지지 않습니다. 이것이 StruQ가 최적화 기반 공격에 취약한 이유입니다.

Figure 2: SecAlign vs StruQ — 훈련 중 log probability 변화
Figure 2. SecAlign 훈련 과정에서 desirable output의 log probability는 유지되고 undesirable output의 log probability는 급격히 낮아진다. 반면 StruQ는 두 출력을 모두 낮추는 경향을 보인다. (Chen et al., 2025)

Security as Preference Optimization

저자들은 prompt injection 방어를 preference optimization 문제로 재정식화합니다. Prompt-injected 입력 $x$에 대해:

LLM이 $(x, y_w, y_l)$ 트리플에서 $y_w$를 $y_l$보다 선호하도록 학습시킵니다. 이는 RLHF에서 human feedback으로 정렬하는 방식과 구조적으로 동일하지만, prompt injection에서는 보안 정책이 명확하게 정의되므로 인간의 레이블링 노동 없이 자동으로 데이터를 생성할 수 있습니다.

DPO Objective

SecAlign은 Direct Preference Optimization(DPO)을 사용합니다. DPO의 목적 함수는 다음과 같습니다.

\[\mathcal{L}_{\text{DPO}}(\pi_\theta; \pi_{\text{ref}}) = -\mathbb{E}_{(x, y_w, y_l) \sim \mathcal{D}} \left[ \log \sigma \left( \beta \log \frac{\pi_\theta(y_w \mid x)}{\pi_{\text{ref}}(y_w \mid x)} - \beta \log \frac{\pi_\theta(y_l \mid x)}{\pi_{\text{ref}}(y_l \mid x)} \right) \right] \tag{2}\]

각 기호의 의미는 다음과 같습니다.

이 손실 함수를 최소화하면 $\pi_\theta$는 $y_w$에 대한 log probability를 $\pi_{\text{ref}}$ 대비 상대적으로 높이고, $y_l$에 대한 log probability를 낮춥니다. 핵심 직관은 “정상 응답과 공격 응답 사이의 log probability 격차를 최대화하라”는 것입니다. Fig. 2에서 SecAlign 훈련 과정에서 undesirable output의 log probability가 step 증가와 함께 -300 이하로 급격히 감소하는 반면, desirable output의 log probability는 안정적으로 유지됨을 확인할 수 있습니다.

Preference Dataset Construction

SecAlign의 preference dataset은 공개 instruction tuning 데이터셋(예: Alpaca)에서 자동으로 생성됩니다.

Algorithm 1: SecAlign preference dataset 구성 절차
Algorithm 1. SecAlign preference dataset 구성. 공개 SFT 데이터셋의 샘플 쌍(s, s')으로부터 (input, y_w, y_l) 트리플을 자동 생성한다. (Chen et al., 2025)

데이터셋의 각 샘플 $s$에 대해 다음과 같이 트리플을 구성합니다.

  1. 다른 샘플 $s^{\prime}$를 무작위로 선택하여 $s^{\prime}$의 instruction을 $s$의 data 부분 끝에 주입합니다 (prompt injection 시뮬레이션)
  2. Desirable output $y_w$: $s$의 정상 응답 (정상 instruction에 대한 답)
  3. Undesirable output $y_l$: $s^{\prime}$의 응답 (주입된 instruction에 대한 답)

주입 방식은 90% 확률로 Straightforward attack(단순 연결), 10% 확률로 Completion attack(구분자 위조)을 사용합니다. 이로써 optimization-free 공격에 대한 robustness를 훈련 단계에서 확보하면서, 이후 evaluation에서 optimization-based 공격에도 일반화되는지를 검증합니다.

Connection to Adversarial Training

SecAlign을 adversarial training(AT)의 관점에서 해석할 수 있습니다. 표준 분류기 AT의 min-max 문제는 다음과 같습니다.

\[\min_\theta \mathbb{E}_{(\hat{x}, y)} \left[ \max_{x \in \mathcal{C}(\hat{x})} \mathcal{L}(\theta, x, y) \right] \tag{3}\]

SecAlign은 inner maximization을 정확히 풀지 않고, 미리 생성한 optimization-free 공격 샘플로 대체합니다.

\[\min_\theta \mathbb{E}_{(\hat{x}, y)} \left[ \mathcal{L}_{\text{SecAlign}}(\theta, \mathcal{A}(\hat{x}), y) \right] \tag{4}\]

여기서 $\mathcal{A}$는 사전 정의된 최적화 불필요 공격 함수입니다. GCG와 같은 gradient 기반 최적화를 훈련 중 매 배치마다 실행하는 것은 수백 GPU 시간이 필요하므로 현실적이지 않습니다. SecAlign은 훈련 전 모든 공격 샘플을 미리 생성함으로써 이 계산 비용을 해결합니다.

이 단순화에도 불구하고, DPO loss가 $y_l$을 명시적으로 억제하기 때문에 훈련 시 본 적 없는 강력한 optimization-based 공격에도 일반화됩니다.


Experiments

Setup

SecAlign vs Fine-Tuning-Based Defenses (Instruct Models)

Figure 3: SecAlign vs StruQ — Instruct 모델
Figure 3. Mistral-7B-Instruct와 Llama3-8B-Instruct에서 SecAlign과 StruQ의 utility·security 비교. SecAlign은 utility를 거의 유지하면서 opt-free 및 opt-based 공격 모두에 대한 ASR을 0~1%로 낮춘다. (Chen et al., 2025)

Instruct 모델 실험에서 SecAlign은 두 가지 목표를 동시에 달성합니다.

Utility: 산업 수준의 SFT를 거친 두 모델은 WinRate 70% 이상을 보입니다. StruQ는 Llama3-8B-Instruct에서 약 4.5% WinRate 하락을 보이는 반면, SecAlign은 통계적으로 유의미한 유틸리티 손실 없이 원래 모델 수준을 유지합니다.

Security: 최적화 불필요 공격에 대한 max ASR이 방어 없이 51~75%이고 StruQ로 27~45%까지 낮아지는 반면, SecAlign은 0~2%로 극적으로 낮아집니다. 최적화 기반 공격에서도 SecAlign은 0~1%의 ASR을 달성하는 반면, StruQ는 27~45%의 ASR을 보입니다.

SecAlign vs Fine-Tuning-Based Defenses (Base Models)

Figure 4: SecAlign vs StruQ — Base 모델
Figure 4. Llama-7B, Mistral-7B, Llama3-8B base 모델에서 SecAlign과 StruQ 비교. 세 모델 모두에서 SecAlign이 우수한 security를 유지하면서 utility는 비슷하거나 높다. (Chen et al., 2025)

Base 모델에서도 결과는 일관됩니다. Base 모델은 instruct 모델보다 유틸리티 수치가 낮지만(Llama-7B WinRate ~55%), SecAlign은 opt-free 최대 ASR을 0%로 낮추고 opt-based 공격에서도 0~14% 범위를 달성합니다. StruQ 대비 security가 크게 개선되며 utility는 유사하거나 더 높습니다.

Resistance to Optimization-Based Attacks (GCG)

Figure 5: GCG attack loss 비교
Figure 5. Llama3-8B-Instruct에서 GCG 공격 최적화 과정의 attack loss. SecAlign 모델은 500 step 이후에도 loss가 10 이상으로 높게 유지되는 반면, StruQ 모델은 빠르게 0에 가까워진다. (Chen et al., 2025)

GCG 실험 결과는 SecAlign의 강력한 robustness를 시각적으로 보여 줍니다. 무방어 모델(None)과 StruQ 모델은 GCG가 수십 step 만에 loss를 0 근처로 최적화하는 데 성공하지만, SecAlign 모델은 500 step 이후에도 평균 GCG loss가 10 이상으로 유지됩니다. 이는 훈련 시 optimization-based 공격을 직접 본 적 없어도, preference optimization을 통한 undesirable output 억제가 gradient 기반 최적화를 근본적으로 어렵게 만든다는 것을 의미합니다.

SecAlign vs Prompting-Based Defenses

방어 방식 Llama3-8B-Instruct ASR Llama-7B ASR
None 51% 75%
Instructional 38% 78%
Reminder 35% 79%
Isolation 50% 73%
Sandwich 55% 38%
In-Context 0.5% 45%
SecAlign 0% 0%

프롬프트 수정만으로 방어하는 prompting-based defense는 최적화 불필요 공격에도 한계가 명확합니다. 가장 강력한 In-Context defense조차 Llama-7B에서 45% ASR을 보입니다. SecAlign은 두 모델 모두에서 일관되게 0% ASR을 달성합니다. 추가로 흥미로운 관찰은, In-Context defense가 대규모 SFT를 거친 instruct 모델에서 0.5%라는 놀라운 성능을 보인다는 점입니다. 이는 멀티턴 대화 학습이 in-context 시범 예제에 대한 반응성을 높일 수 있음을 시사합니다.

Out-of-Distribution Generalization

SecAlign의 일반화 능력을 두 가지 OOD(out-of-distribution) 벤치마크에서 검증합니다.

두 벤치마크 모두에서 SecAlign은 강력한 방어 일반화를 보입니다. InjecAgent에서는 ASR 0%를 달성합니다. SEP에서는 훈련 시 injection 위치(data 끝)에서의 방어가 더 강하지만, 다른 위치에서도 StruQ 대비 더 낮은 ASR을 보입니다.

Ablation Studies

Preference optimization 알고리즘 비교 (Llama-7B, 4×A100-80G):

알고리즘 WinRate (↑) GCG ASR (↓) GPU 시간 (↓)
DPO 56.1% 15% 2×4h
ORPO 54.8% 34% 1.5×4h
KTO 55.8% 9% 10×4h

KTO가 security에서 가장 좋은 성능을 보이지만 훈련 비용이 5배 더 큽니다. ORPO는 빠르지만 ASR이 두 배로 높습니다. DPO는 security, utility, 효율성 사이의 최적 균형을 제공합니다.

데이터셋 크기: 더 많은 SFT 데이터를 사용할수록 security와 utility 모두 향상되지만, 데이터가 제한적인 경우에도 SecAlign은 StruQ 대비 더 나은 security를 달성합니다.


Conclusion

SecAlign은 prompt injection 방어를 preference optimization 문제로 재정식화하는 핵심 통찰을 바탕으로, 기존 fine-tuning 기반 방어의 근본적 약점을 극복합니다. 기존 방어들이 “정상 응답의 확률을 높이는 것”만 목표로 했다면, SecAlign은 DPO를 통해 공격 응답의 확률을 명시적으로 억제합니다. 그 결과 훈련 시 본 적 없는 optimization-based 공격에도 일반화되어 < 10%의 ASR을 달성하면서 모델의 일반 유틸리티를 유지합니다.

흥미롭게도 SecAlign은 alignment 연구와 security 연구의 교차점에서 등장했습니다. Human preference alignment를 위해 개발된 DPO가 security policy alignment에도 직접 적용 가능하다는 사실은, “alignment”의 개념이 윤리·안전성을 넘어 보안 취약점 방어로도 확장될 수 있음을 보여 줍니다. 보안 정책은 인간의 선호보다 훨씬 명확하게 정의 가능하기 때문에, 인간 레이블링 없이 완전 자동화된 방어 데이터셋 구축이 가능하다는 점도 실용적 강점입니다.