웹 서버는 건물을, 웹쉘 (WebShell) 은 그 건물에 숨어 있는 치밀한 위장술을 쓰는 도둑이라고 생각해보세요.
전통적인 탐정 (기존 AI): 이 도둑들은 보통 '특정 문구'나 '패턴'을 보고 잡으려 했습니다. 하지만 도둑들은 코드를 암호화하거나 뒤죽박죽으로 섞어 (위장술) 놓으면, 기존 탐정들은 "아, 이건 평범한 문서야"라고 착각하고 놓쳐버립니다.
새로운 탐정 (거대 AI/LLM): 요즘 나오는 거대 AI 는 책도 읽고 코드도 이해하는 **'초능력을 가진 명탐정'**입니다. 그런데 이 탐정들에게 방대한 분량의 문서 (수백만 페이지) 를 통째로 던져주면, 중요한 단서가 있는 페이지를 놓치거나 (문맥이 너무 길어서), 무작위로 보여준 예시 때문에 혼란을 겪는 문제가 생깁니다.
2. 연구 결과: AI 는 '정확성'과 '발견율' 사이에서 고민합니다
저자들은 7 가지 다른 크기의 AI 탐정들을 시험해 보았습니다. 결과는 재미있었습니다.
거대 AI (GPT-4 등): "이건 도둑이 아니야!"라고 확신할 때는 정말 정확합니다. 하지만 도둑이 너무 잘 숨어 있으면 "모르겠다"고 넘겨버리는 경향이 있어, 진짜 도둑을 놓치는 경우가 많았습니다. (정확도는 높지만, 잡는 비율은 낮음)
작은 AI: "도둑일 것 같아!"라고 너무 자주 외칩니다. 도둑이 아닌 평범한 사람도 잡아가는 경우가 많았습니다. (잡는 비율은 높지만, 오보가 많음)
결론적으로, 그냥 AI 에게 "이거 도둑인지 봐줘"라고만 하면, 기존에 개발된 전문 보안 프로그램보다 성능이 떨어졌습니다.
3. 해결책: BFAD (행동 중심 탐정 훈련법)
저자들은 이 문제를 해결하기 위해 BFAD라는 새로운 훈련 방법을 고안했습니다. 이 방법은 AI 탐정에게 다음과 같은 **'3 가지 특수 장비'**를 지급합니다.
① '위험 신호 감지기' (Critical Function Filter)
비유: 도둑이 건물을 침입할 때 반드시 사용하는 특수 도구 (예: 벽을 뚫는 드릴, 금고 열쇠) 가 있습니다.
원리: AI 는 긴 문서 전체를 읽는 대신, '시스템 명령 실행', '데이터 탈취', '암호화' 같은 위험한 도구를 사용하는 부분만 먼저 찾아냅니다. 이렇게 하면 AI 는 불필요한 잡음에 집중하지 않고, 진짜 의심스러운 부분만 봅니다.
② '초점 렌즈' (Context-Aware Code Extraction)
비유: 도둑이 숨어 있는 방의 전체 사진을 보는 대신, 도둑이 손에 들고 있는 도구와 그 주변 1 미터만 확대해서 보여주는 것입니다.
원리: AI 가 처리할 수 있는 정보의 양은 한정되어 있습니다. 그래서 긴 코드 전체를 주지 않고, 위험한 도구가 쓰인 부분과 그 앞뒤 맥락만 잘라내어 AI 에게 보여줍니다. 이렇게 하면 AI 는 중요한 단서를 놓치지 않게 됩니다.
③ '유사한 사례 카드' (Weighted Behavioral Function Profiling)
비유: 탐정이 사건을 해결할 때, 가장 비슷한 과거 사건 기록을 참고해야 합니다. 단순히 "글자가 비슷한 기록"을 찾는 게 아니라, **"사용한 도구가 비슷한 기록"**을 찾아야 합니다.
원리: AI 가 판단할 때 참고할 예시 (Demonstration) 를 고를 때, 단순히 코드가 비슷한 것을 고르는 게 아니라, **"이 도둑이 어떤 행동을 했는지 (기능별 패턴)"**가 가장 비슷한 과거 사례를 골라줍니다. 이렇게 하면 AI 는 "아, 이 패턴은 도둑이 쓰는 방식이야!"라고 더 정확하게 깨닫게 됩니다.
4. 최종 성과: 탐정들의 실력이 비약적으로 상승
이 '3 가지 특수 장비'를 장착한 결과, 모든 AI 탐정들의 실력이 크게 향상되었습니다.
거대 AI: 놓치던 도둑들을 잡아내면서, 정확도도 유지했습니다.
작은 AI: 오보 (평범한 사람을 도둑으로 오인) 를 줄이면서, 진짜 도둑을 더 잘 잡게 되었습니다.
결과: 이제 이 AI 들은 기존에 가장 강력했던 전문 보안 프로그램과 맞먹거나, 심지어 그보다 더 좋은 성능을 내기도 했습니다.
5. 요약 및 결론
이 논문은 **"AI 가 보안 분야에서 무조건 강하지는 않다"**는 사실을 밝혔습니다. 하지만 "도둑의 행동 패턴 (위험한 도구 사용) 에 초점을 맞추고, AI 가 볼 수 있는 정보를 깔끔하게 정리해 주면" AI 는 놀라운 보안 전문가가 될 수 있음을 증명했습니다.
마치 초능력을 가진 탐정에게 '올바른 증거 수집법'과 '비슷한 사건 기록'만 제대로 가르쳐 주면, 그 누구도 범인을 놓치지 않게 되는 것과 같습니다. 이 연구는 앞으로 AI 를 이용한 사이버 보안이 어떻게 발전해야 하는지 중요한 길잡이가 될 것입니다.
1. 문제 정의 (Problem Statement)
배경: 웹쉘 (WebShell) 은 웹 서버에 악성 스크립트를 주입하여 원격 명령 실행, 데이터 유출, 시스템 장악을 가능하게 하는 지속적인 위협입니다. 최근 보고서에 따르면 웹쉘 관련 사고가 급증하고 있으며, 난독화 (obfuscation) 및 암호화 기법을 통해 기존 탐지 시스템을 우회하는 경우가 많습니다.
기존 방법의 한계:
시그니처/휴리스틱 기반: 변형이 빠른 웹쉘에 대해 취약하며, 새로운 변종에 대한 적응력이 부족합니다.
지도 학습 (ML/DL) 기반: CodeBERT, GAT(그래프 신경망) 등 학습 기반 모델은 높은 성능을 보이지만, 대량의 레이블된 데이터가 필요하고 지속적인 재학습 비용이 발생합니다. 또한, 데이터 부족이나 분포 외 (OOD) 상황에서는 일반화 성능이 떨어질 수 있습니다.
LLM 의 도전 과제:
문맥 길이 제한: 웹쉘 파일은 매우 길어 (최대 138 만 토큰) LLM 의 컨텍스트 윈도우를 초과하며, 단순 잘라내기 (truncation) 는 악성 코드의 핵심을 누락시킬 수 있습니다.
In-Context Learning (ICL) 의 불안정성: 악성 패턴이 다양하고 난독화되어 있어, 적절한 예시 (demonstration) 를 선택하기 어렵습니다. 무작위 또는 단순 의미 유사도 기반의 예시 선택은 성능을 저하시킬 수 있습니다.
성능 불균형: 오프더셸 (off-the-shelf) LLM 은 웹쉘 탐지 태스크에 대해 정밀도 (Precision) 와 재현율 (Recall) 간의 심각한 불균형을 보입니다.
저자들은 LLM 기반 탐지의 신뢰성을 높이기 위해 행동 중심의 프레임워크인 BFAD를 제안합니다. BFAD 는 크게 세 가지 핵심 구성 요소로 이루어져 있습니다.
A. 핵심 기능 필터 (Critical Function Filter)
원리: 웹쉘은 악성 행위를 수행하기 위해 특정 고위험 PHP 함수 (예: exec, eval, fsockopen, base64_encode 등) 를 빈번히 사용합니다.
작동: PHP 함수를 6 가지 행동 카테고리 (프로그램 실행, 코드 실행, 콜백 함수, 네트워크 통신, 정보 수집, 난독화/암호화) 로 분류합니다.
목적: 긴 코드 내에서 악성 행위의 '닻 (Anchor)'이 되는 핵심 함수를 식별하여 LLM 의 주의를 집중시킵니다.
B. 문맥 인식 코드 추출 (Context-Aware Code Extraction)
문제 해결: 전체 파일을 입력하면 컨텍스트 한계를 초과하거나 노이즈가 많아집니다.
작동:
핵심 함수가 호출된 위치를 중심으로 주변 문맥 (Context Window) 을 추출합니다.
추출된 구간이 겹칠 경우 병합하여 중복 토큰을 제거합니다.
남은 컨텍스트 예산 (Budget) 이 허용되면, 나머지 코드에서 잘라낸 일부 구간을 추가하여 전역적 맥락 (Global Context) 을 보완합니다.
효과: LLM 이 악성 의도를 판단하는 데 필요한 최소한의 핵심 코드와 보조적인 전역 정보를 효율적으로 제공합니다.
C. 가중 행동 기능 프로파일링 (Weighted Behavioral Function Profiling, WBFP)
목적: In-Context Learning (ICL) 시 LLM 에 제공할 예시 (Demonstration) 를 선택하는 전략을 개선합니다.
작동:
악성 (WebShell) 과 정상 (Benign) 데이터셋 간의 함수 사용 패턴을 분석합니다.
차별 점수 (Discrimination Score) 계산: 각 함수 유형에 대해 '커버리지 차이 (Coverage Difference)', '빈도 비율 (Frequency Ratio)', '사용 비율 (Usage Ratio)'을 기반으로 가중치를 부여합니다.
유사도 계산: 추출된 코드 영역을 임베딩하고, 가중치를 적용한 함수 기반 유사도 (Weighted Similarity) 를 계산하여 가장 유사한 악성 패턴의 예시를 선택합니다.
효과: 단순 의미 유사도가 아닌, '행동적 유사성'에 기반한 예시를 제공하여 LLM 의 추론 능력을 극대화합니다.
3. 주요 실험 결과 (Key Results)
데이터셋: 26,594 개의 PHP 스크립트 (4,929 개의 웹쉘, 21,665 개의 정상 파일) 를 사용했습니다.
비교 대상: GPT-4, LLaMA-3.1-70B, Qwen-2.5 시리즈 (0.5B~14B) 등 7 가지 LLM 과 기존 SOTA 모델 (GloVe+SVM, CodeBERT+RF, GAT 등) 을 비교했습니다.
주요 발견 사항:
규모에 따른 오류 모드 차이:
대규모 LLM (예: GPT-4): 정밀도 (Precision) 는 매우 높으나 재현율 (Recall) 이 낮아 공격을 놓치는 경향이 있습니다.
소규모 LLM (예: Qwen-2.5-0.5B): 재현율은 높으나 정밀도가 낮아 정상 코드를 악성으로 오인하는 경향이 있습니다.
기존 LLM 프롬프팅: 강력한 학습 기반 모델 (예: GAT, F1 98.87%) 에 비해 성능이 미치지 못했습니다.
BFAD 의 성능 향상:
BFAD 를 적용한 결과, 모든 평가된 LLM 의 F1 점수가 평균 13.82% 향상되었습니다.
GPT-4: F1 점수가 92.46% → **99.35%**로 상승하여 기존 SOTA(GAT) 를 능가했습니다.
Qwen-2.5-0.5B: F1 점수가 31.44% → **82.67%**로 급격히 향상되어 (약 51.23% 포인트 증가), 전통적인 방법론과 경쟁 가능한 수준이 되었습니다.
LLaMA-3.1-70B, Qwen-2.5-Coder-14B 역시 기존 SOTA 를 상회하거나 경쟁하는 성능을 보였습니다.
성분별 효과 분석:
코드 추출: 핵심 영역만 추출하는 것이 전체 코드 입력보다 성능이 좋았으며, 하이브리드 방식 (핵심 + 일부 전역) 이 정밀도와 재현율의 균형을 가장 잘 맞추었습니다.
WBFP: 무작위 선택이나 단순 의미 유사도 기반 선택보다 WBFP 기반 예시 선택이 성능을 획기적으로 개선했습니다. 특히 소규모 모델에서 행동 기반 예시가 추론 능력을 크게 보완했습니다.
4. 기여도 및 의의 (Contributions & Significance)
체계적 평가: LLM 의 규모에 따른 웹쉘 탐지 성능의 편차 (정밀도 - 재현율 트레이드오프) 를 체계적으로 규명하고, 오프더셸 LLM 이 단독으로는 기존 학습 기반 모델에 미치지 못함을 증명했습니다.
실용적 프레임워크 (BFAD): 추가적인 미세 조정 (Fine-tuning) 없이도, 행동 중심의 프롬프팅 전략과 예시 선택 기법을 통해 LLM 의 탐지 성능을 SOTA 수준으로 끌어올리는 방법을 제시했습니다.
소규모 모델의 활용 가능성: BFAD 를 통해 소규모 LLM(3B 이하) 이도 전통적인 방법론과 경쟁할 수 있게 되어, 비용 효율적인 보안 솔루션 구축의 가능성을 열었습니다.
향후 방향 제시:
대규모 합성 벤치마크 구축을 통한 일반화 능력 검증.
그래프 기반 행동 표현과 LLM 의 멀티모달 융합 (Graph-LLM).
자율 업데이트 루프를 갖춘 'Fast-Slow' 에이전트 탐지 파이프라인 설계.
결론
이 논문은 LLM 이 웹쉘 탐지 분야에서 잠재력이 크지만, 단순 프롬프팅만으로는 한계가 있음을 지적합니다. 대신 행동 중심의 필터링, 문맥 인식 추출, 그리고 행동 가중치 기반의 예시 선택을 결합한 BFAD 프레임워크를 통해 LLM 의 신뢰성을 획기적으로 높일 수 있음을 입증했습니다. 이는 보안 분야에서 LLM 기반 탐지 시스템의 실용화와 발전에 중요한 이정표가 될 것입니다.