
- 원문: Rouxii: When Autonomous Attackers Turn Honeypots Against Defenders
- 저자: Arthur Cordeiro, Alberto Maria Mongardini, Emmanouil Vasilomanolakis
- 공개일: 2026-09-22
- 버전: arXiv:2609.26555v1, 24쪽
- Tags: honeypot, autonomous agent, LLM security, deception, Cowrie, Conpot, GasPot, OT security, adversarial testing, cyber defense
본 글은 원 논문의 주요 기술적 내용을 이해하기 쉽게 요약·정리한 글입니다. 자세한 내용은 상단의 원문 링크를 참고하세요.
한눈에 보기
Rouxii는 LLM 기반 자율 공격자에게 “대상이 허니팟일 수 있다”는 맥락을 명시하면, 같은 네트워크 증거를 보고도 철수하지 않고 허니팟 자체를 정찰·무력화·오염시키는지 평가합니다. 세 로컬 모델, Cowrie·Conpot·GasPot과 실제 OpenSSH 통제군, 11개 구성, 12개 cycle에서 anti-deception 조건은 허니팟 판정을 97% 정확도로 만들었고 vanilla 조건은 19%였습니다.
연구진은 Conpot 전체 서비스 starvation, GasPot telemetry 명칭 오염, Cowrie URL 필터 우회 뒤 예외·hang이라는 세 사례를 보고합니다. 이는 “허니팟임을 들키면 공격자가 떠난다”는 가정이 자율 에이전트 환경에서 약해질 수 있음을 보여 주지만, 실험은 격리된 controlled lab이며 실제 운영 OT, 상용 모델, 피해 사용자를 포함하지 않습니다.
연구 배경
허니팟은 공격자를 유인해 행동을 기록하고 경보를 만드는 방어 자산입니다. 전통적으로 fingerprint가 노출되면 공격자가 떠나 데이터 가치가 줄어드는 것이 주요 위험이었지만, 자율 에이전트는 동일한 fingerprint를 “기만 장비를 제거하거나 오염시킬 기회”로 해석할 수 있습니다.
Rouxii는 LLM을 직접 exploit generator로만 쓰지 않고, deterministic operator가 수집한 관찰을 바탕으로 다음 행동과 continue/stop을 결정하는 planner로 사용합니다. vanilla와 anti-deception 조건은 도구와 대상은 같고 prompt의 위협 맥락만 달리하여 framing이 의사결정에 미치는 영향을 측정합니다.
공격 모델 / 전제 조건
공격자는 승인된 격리 실험망의 Host A에서 Host B의 containerized 허니팟에 네트워크로 접근합니다. 초기에는 서비스 자격증명이나 host shell을 갖지 않으며, 대상 fingerprint·응답·오류를 관찰하고 허니팟으로 판단한 뒤 가용성 저하, telemetry 오염, containment 경계 탐색을 선택합니다.
사용된 모델은 deepseek-r1:32b, gemma4:31b, qwen3.6:27b 로컬 reasoning 모델입니다. LLM은 stochastic planner와 판정·go/no-go만 담당하고 scan·protocol interaction·검증은 결정적 operator가 수행합니다. 실제 사용자 상호작용, 인터넷 피해자, mainnet 또는 실제 OT 공정은 없습니다.
비판적 검토 / 아쉬운 점
가장 큰 쟁점은 anti-deception prompt 자체가 모델에 “허니팟을 식별하고 방해하라”는 목표와 정당성을 부여해 일반 공격자의 자연스러운 행동보다 sabotage 성향을 높일 수 있다는 점입니다. 단순 위험 인지, 명시적 방해 목표, 권한·안전 정책을 분리한 factorial 실험이 있어야 fingerprint 인지와 공격 의도의 인과를 더 정확히 볼 수 있습니다.
두 번째로 프레임워크 비교가 완전히 동등하지 않습니다. PentestGPT와 HackBot은 context 구조, 파일 처리, 행동 공간이 달라 raw 정확도·오탐을 직접 비교하기 어렵습니다. 동일 observation과 operator를 주고 planner만 교체하는 비교가 필요합니다.
세 번째로 세 결함의 영향 강도가 다릅니다. Conpot은 모든 서비스 starvation과 재시작 필요가 확인됐지만, GasPot 상태 변경은 레거시 station 동작을 흉내 낸 의도일 수 있고, Cowrie는 필터 우회 primitive와 세션 hang까지만 입증됐으며 실제 localhost 접속·proxy escape는 보이지 않았습니다. PoC 성공을 host compromise로 일반화해서는 안 됩니다.
핵심 Root Cause
허니팟 설계는 공격자가 구현 fingerprint를 모르거나, 알아도 단순히 떠날 것이라는 기만 비대칭을 암묵적으로 신뢰합니다. 하지만 decoy도 공격자 입력을 실제 코드로 처리하고 protocol state와 telemetry를 유지하므로, fingerprint가 알려진 순간 공격자는 그 구현의 가용성·무결성 표면을 의도적으로 탐색할 수 있습니다.
깨진 보안 불변조건은 “허니팟임이 식별되어도 telemetry의 가용성·진실성, process 격리, containment가 적대적 입력 아래 유지되어야 한다”는 것입니다. Rouxii는 맥락 framing으로 기존 신호를 기만 증거로 해석하게 하고, 취약 protocol handler와 필터의 가정을 연속 시험해 이 불변조건을 깹니다.
핵심 공격 원리
에이전트는 서비스 배너, protocol fidelity, 비정상 응답, 파일·명령 결과를 관찰해 honeypot signal을 축적합니다. vanilla에서는 이를 실제 취약 서비스의 불완전 구현으로 해석할 수 있지만 anti-deception 조건에서는 known decoy fingerprint와 대조하고, 탐지 후 다음 목표를 telemetry 오염·서비스 중단·egress 확인으로 전환합니다.
LLM은 새로운 raw packet을 직접 만들지 않고 operator 목록에서 정찰·검증·중단을 선택합니다. 이 분리는 실행을 통제하면서도 모델이 공격 흐름의 상태 전이와 성공 판정을 담당하게 합니다. 모든 admission에서 모델이 honeypot을 감지한 뒤에도 vanilla는 72%, anti-deception은 99%가 공격을 계속했습니다.
공격 흐름
- Host A의 agent가 Host B 노출 포트를 탐색하고 SSH, Modbus/S7/HTTP, GasPot protocol 응답을 수집합니다.
- deterministic operator가 fingerprint와 행동 결과를 구조화해 planner에 제공합니다.
- 모델은 실제 서비스·허니팟 여부와 다음 행동의 기대 가치를 판단합니다.
- anti-deception 조건에서는 탐지 후 공격을 멈추지 않고 서비스 starvation, 상태 오염, 필터·egress 경계를 시험합니다.
- operator가 응답, 로그, 서비스 생존성, 상태 변경을 다시 수집하고 모델이 성공·실패·중단을 판정합니다.
- 동일 구성과 cycle을 vanilla·anti-deception·비교 프레임워크에서 반복해 정확도와 행동 전환을 집계합니다.
성공 조건 / 실패 조건
성공에는 대상 honeypot의 fingerprint 또는 행동 차이가 관찰되고, 모델이 이를 올바르게 해석하며, operator가 해당 protocol 상태에 도달해야 합니다. Conpot은 비정상 길이 처리와 cooperative scheduling, GasPot은 인증 없는 상태 설정, Cowrie는 주소 family 정규화와 URL 처리 예외가 각각 필요합니다.
입력 길이 상한, blocking 작업의 timeout·yield, 인증된 상태 변경, canonical IP 처리, 예외 안전 종료가 적용되면 실패합니다. 모델이 hallucination으로 실제 실행과 다른 결론을 내리거나 PentestGPT처럼 필요한 파일을 읽지 못해 stall하면 admission에 실패합니다. 실제 OpenSSH를 honeypot으로 오탐하면 방해 행동 자체가 위험하므로 낮은 false positive도 중요합니다.
연구진의 실험 환경
11개 의미 있는 target configuration을 12 cycle씩 실행했습니다. 대상은 Cowrie 3.0.12의 SSH 2222, Conpot commit 1a599d2의 Modbus 502·S7 102·HTTP 80, GasPot과 실제 OpenSSH control입니다. 논문 부록에는 GasPot 기준 commit이 0d21a5d로, disclosure 부분에는 2026년 6월 10일의 e03dfa9로 적혀 있어 기준 버전 표기가 일관되지 않습니다.
세 로컬 모델이 vanilla와 anti-deception에서 동일 operator를 사용했고, PentestGPT와 HackBot을 외부 기준으로 비교했습니다. nominal main report는 1,260개였으나 PentestGPT의 입력 파일 누락 40개를 제외해 1,220개를 주 분석에 사용했으며, HackBot 324개를 합치면 총 1,544개 report입니다.
주요 실험 결과
주 비교 1,008개에서 anti-deception의 올바른 판정은 979개(97%), vanilla는 189개(19%)였습니다. OT honeypot에서 vanilla는 857개 중 91개(11%), anti-deception은 861개 중 838개(97%)였습니다. 실제 SSH control의 false positive는 anti-deception 1/142(0.7%), vanilla 7/142(4.9%), PentestGPT 19/101(18.8%), HackBot 35/182(19.2%)였습니다.
signal 자체의 발생은 vanilla 1,232/1,237과 anti-deception 1,247/1,252로 거의 같았습니다. 차이는 새로운 증거 수집보다 같은 증거의 해석이었습니다. PentestGPT는 1,008개 중 382개(38%)만 engagement에 진입했고 511개 stall, 115개 hallucinated progression이 있었습니다.
모델이 honeypot을 감지한 858개 admission 모두를 대상으로 vanilla는 195개 중 140개(72%), anti-deception은 663개 중 655개(99%)가 공격을 계속했습니다. 논문 결론의 sabotage 성공률은 67%입니다. 질문지에서 honeypot-aware 회피는 183/795(23.0%)에서 234/584(40.1%)로 늘었고, 다음 exploit 비율은 detection 후 53/196(27%) 대 다른 상태 225/1,072(21%)였지만 detection 수 자체가 많아 raw 후속 공격은 약 4.2배였습니다.
실제 발견된 취약점 / 사례
Conpot에서는 Modbus MBAP 길이를 극단값으로 선언하고 연결을 닫으면 gevent greenlet가 yield 없이 반복해 Modbus뿐 아니라 S7·HTTP 등 모든 서비스가 starvation에 빠졌습니다. TCP handshake는 열릴 수 있지만 Conpot 로그가 남지 않고 프로세스 재시작이 필요했습니다. 인증 전 네트워크 입력으로 decoy telemetry 가용성을 제거한 가장 강한 사례입니다.
GasPot에서는 한 바이트 gate를 통과한 뒤 인증 없이 station name 상태를 바꿀 수 있었고 변경이 프로세스 메모리에 남아 이후 관찰자를 오도했습니다. 다만 실제 legacy station 동작을 시뮬레이션한 것일 수 있어 명백한 구현 취약점인지 설계 선택인지 공급자 확인이 필요합니다.
Cowrie에서는 IPv4-mapped IPv6 표기가 IPv4 차단망 검사와 family가 달라 필터를 통과했지만, 이후 IDNA 인코딩이 colon을 처리하다 예외를 내 TCP 연결 전에 세션이 timeout까지 hang했습니다. 필터 우회 primitive와 가용성 영향은 확인됐지만 localhost 연결, 프록시 pivot, host escape는 입증되지 않았습니다.
저자 주장 vs 실제 증명 범위
동일 signal을 제공해도 anti-deception framing이 honeypot 판정과 공격 지속을 크게 바꾼다는 주장은 반복 수치가 뒷받침합니다. 세 decoy 구현에서 실제 서비스 중단·상태 변경·hang을 유도했다는 주장도 controlled lab 범위에서 확인됩니다.
하지만 자율 공격자 일반이 현실에서 67% 확률로 허니팟을 무력화한다는 주장은 입증되지 않았습니다. 세 오픈소스 로컬 모델, 특정 prompt·operator, 제한된 구성의 결과이며 상용 모델, 실제 공격 캠페인, production OT 및 장기 방어 운영은 평가하지 않았습니다.
기존 공격 / 기존 점검 방식과의 차이
기존 honeypot 평가는 fingerprint가 탐지 정확도와 데이터 수집 손실에 미치는 영향을 봤습니다. Rouxii는 탐지 이후 attacker state가 “철수”에서 “기만 인프라 공격”으로 전이되는지를 측정하고, telemetry availability·integrity를 방어 목표로 추가합니다.
일반 pentest agent가 목표 호스트의 취약점을 찾는다면 Rouxii는 목표가 decoy임을 판단한 뒤 decoy-specific operator를 선택합니다. LLM과 실행 도구를 분리해 행동을 통제하고, signal 발생과 signal 해석을 별도 측정한 점도 차이입니다.
연구의 한계와 주의해서 볼 부분
저자들은 오픈소스 일반 모델만 사용했고 commercial·fine-tuned 공격 모델을 포함하지 않았으며 실제 OT controller의 false positive를 측정하지 않았습니다. 프레임워크별 context와 도구 차이도 비교를 제한합니다.
추가로 GasPot commit 표기 불일치와 실험 artifact 접근성은 재현에 영향을 줍니다. false positive가 낮아도 실제 SSH를 decoy로 오판한 한 건의 잠재 영향은 단순 정확도 평균보다 클 수 있고, 공격 목표를 명시한 prompt가 모델 safety와 행동을 바꾼 효과를 별도로 분리해야 합니다.
공개 PoC / Exploit / Tool / Artifact 분석
논문은 Rouxii 공개 artifact에 operator와 실험 코드를 제공한다고 명시하고, Zenodo 데이터셋 DOI를 제시합니다. 실행 시점에 4open artifact 페이지는 안정적으로 열리지 않아 코드 구조·필요 환경을 직접 재검증하지 못했으므로 “현재 즉시 재현 가능한 공개 PoC”로 단정하지 않습니다. Zenodo DOI는 논문이 가리키는 데이터 배포 식별자입니다.
Cowrie, Conpot, GasPot은 공개 프로젝트지만 Rouxii의 공격 artifact 자체는 아닙니다. 논문 disclosure에 따르면 Cowrie hang과 필터 문제는 여러 upstream commit으로 수정됐고, Conpot에는 issue가 열렸으나 패치가 없으며, GasPot에는 이메일로 알렸지만 의도된 legacy emulation일 가능성이 남습니다.
레드팀 / 모의해킹에서 어떻게 활용할까
허니팟 운영팀은 decoy를 낮은 가치라 가정하지 말고 적대적 서비스로 취급해 별도 lab 복제본에서 availability·telemetry integrity를 시험해야 합니다. 관찰 포인트는 event-loop 지연, protocol별 health, 로그 누락, 상태값 변경, egress 시도, container resource, 실제 서비스 오탐입니다.
검증 기준은 “모델이 허니팟이라 말했다”가 아니라 입력 후 서비스가 계속 응답하고 모든 세션이 감사 로그에 남으며 상태 오염이 다른 관찰자에게 전파되지 않는지입니다. CPU 고갈, 전 서비스 응답 중단, 로그 공백, containment 경계 접근이 보이면 즉시 중단하고 container snapshot과 packet capture를 보존합니다.
실제 점검 시 추가할 체크리스트
- 허니팟별 정확한 version·commit·protocol endpoint와 알려진 fingerprint를 기록합니다.
- 길이·프레임·timeout·연결 종료를 조합해 event loop starvation을 시험합니다.
- 관리·상태 변경 명령에 인증, 범위 검증, rollback, immutable audit log가 있는지 확인합니다.
- IPv4, IPv6, mapped address, hostname, IDNA를 canonicalize한 뒤 동일 정책으로 검사합니다.
- parser·connector 예외가 세션 hang이 아니라 bounded failure와 로그로 끝나는지 확인합니다.
- 서비스별 health check와 watchdog이 전체 process failure를 격리·복구하는지 확인합니다.
- decoy container의 egress, host mount, capability, CPU·메모리를 최소화합니다.
- 실제 서비스 control을 포함해 false positive와 공격 지속의 안전성을 따로 측정합니다.
- LLM 판단과 operator 실행, 실제 네트워크 결과를 분리 기록해 hallucination을 제거합니다.
- 공개된 패치 commit과 미해결 issue를 운영 버전에 대조합니다.
실무 가치 평가
허니팟을 단순 센서가 아니라 공격 가능한 보안 제품으로 재분류하게 만든다는 점에서 실무 가치가 높습니다. 특히 fingerprint 은닉만이 아니라 availability, telemetry integrity, containment를 SLO와 test plan에 넣어야 한다는 결론은 직접 적용할 수 있습니다.
다만 수치와 공격 지속률은 prompt·모델·operator가 통제된 연구실 결과입니다. 실제 위험 평가는 노출된 honeypot version, 격리, watchdog, 로그 외부 전송, 패치 상태로 다시 좁혀야 하며 세 사례의 서로 다른 영향 수준을 구분해야 합니다.
결론
자율 공격자는 허니팟을 알아차린 뒤 떠나는 대신 그 사실을 새 목표로 사용할 수 있습니다. Rouxii는 동일 신호라도 threat framing이 판단과 후속 행동을 크게 바꾸며, decoy 구현의 작은 parser·state·event-loop 결함이 방어 telemetry를 제거하거나 오염시킬 수 있음을 보였습니다.
연구는 실제 인터넷 공격을 재현한 것이 아니고 공개 artifact도 실행 시점에 완전 검증되지 않았습니다. 그럼에도 허니팟의 핵심 불변조건을 “들키지 않음”에서 “들켜도 안전하고 관측 가능함”으로 바꾸어야 한다는 결론은 타당합니다.
'Hack > System' 카테고리의 다른 글
| eBPF 취약점의 구조적 집중과 퍼징 사각지대에 대한 대규모 실증 분석 (0) | 2026.09.24 |
|---|---|
| LANTERN: WebGPU 규격 기반 변이 테스트로 브라우저 상태 기계 결함 찾기 (0) | 2026.09.24 |
| Terrapin Revisited: SSH 채널 상태 조작의 형식적 보안 분석 (0) | 2026.09.24 |
| Et Tu, MacBook? Unprivileged Keystroke Inference and Context Profiling via the Built-in IMU Side Channel (0) | 2026.09.23 |
| Windows Exploitation Techniques: Dangling COM Object Registrations (0) | 2026.09.23 |
댓글