
From Vulnerability Research to Vulnerability Engineering: 그래프로 보는 익스플로잇, AI 슬롭, 그리고 작은 모델로 라우터 장악하기
This article is also available in English. Read in English →그날의 분위기가 궁금하신가요? 발표부터 네트워킹까지, From Vulnerability Research to Vulnerability Engineering 애프터무비에서 만나보세요 🎥
11월 11일, MARU180에서 "From Vulnerability Research to Vulnerability Engineering"을 진행했습니다. 이날 약 90명이 함께해 주셨습니다.
발표자는 IoT와 임베디드 기기를 전문으로 하는 도쿄의 공격 보안 회사 KAGE의 Offensive Security Engineer djnn (Bogdan G.) 님이었습니다. 카메라, 라우터, 자동차 ECU, 태양광 패널까지, 그의 표현으로는 "이상하게 들리는 건 뭐든" 살펴본다고 합니다. 일본에 사는 프랑스인인 그는 이번이 Dev Korea의 첫 보안 발표라며, 마지막이 아니길 바란다는 말로 시작했습니다.

누군가에게 버그는 돈입니다
현장의 모두가 버그를 봐 왔습니다. djnn 님의 요점은 누군가에게 버그는 비즈니스라는 것이었습니다.
해킹은 스포츠이기도 합니다. Pwn2Own에서는 연구자들이 무대에서 기기와 소프트웨어를 해킹하고, 해킹한 기기를 가져가며 상금도 받습니다. 2024년 대회에서는 한국 팀들이 아주 좋은 성적을 냈습니다. 해킹은 서비스이기도 합니다. 병원, 은행, 자동차 회사를 위한 모의 해킹부터 버그 바운티 프로그램까지. 그리고 익스플로잇을 사고파는 시장도 있습니다. 그는 2019년의 공개 가격표를 보여주며, 사용자가 아무것도 클릭하지 않아도 되는 Windows 원격 코드 실행 익스플로잇 하나가 100만 달러가 넘었고, 그의 경험상 가격은 그 후로 계속 올랐다고 했습니다. 감시 도구가 시민을 겨냥하는 데 쓰인 사례처럼, 이 시장이 잘못된 방향으로 흐를 수 있다는 점도 짚었습니다.
그의 말을 빌리면 한국에는 모든 게 조금씩 있습니다. Pwn2Own과 CTF에서 아주 강한 세계적 수준의 인재, 그 인재를 고용하는 신뢰받는 기업들, 그리고 몇 가지 기묘한 이야기까지.
익스플로잇이 중요한 이유는 실제로 통하기 때문입니다. Mandiant의 침해 대응 데이터에 따르면, 익스플로잇은 해마다 공격자가 침투하는 가장 큰 경로입니다. 라우터, VPN 장비, NAS 같은 네트워크 기기가 특히 주목받는 이유는 단순합니다. 아무도 패치하지 않기 때문입니다. 마지막으로 라우터를 업데이트한 게 언제인가요?
CVE는 넘쳐나지만, 수정은 따라가지 못합니다
이어서 그는 문제의 다른 면을 보여줬습니다. CVE 수는 계속 늘고 있지만, 상당수는 작은 프리미티브일 뿐이고, 어떤 것은 심각도가 높다고 표시되어 있으면서도 쓸모 있는 정보가 전혀 없어 방어자가 무엇을 패치해야 할지 알 수 없습니다.
AI는 이 문제를 더 나쁘게 만드는 동시에 더 낫게 만들기도 합니다. 버그 바운티 플랫폼은 보고서에 파묻혔고, curl은 들어오는 보고서 상당수가 AI가 만든 저품질 결과물이라 버그 바운티를 중단했습니다. 보안 전문가에게도 가짜 보고서와 진짜 보고서는 처음 보기엔 똑같아 보입니다. 둘 다 자신감 있고, 둘 다 코드와 원인 분석이 붙어 있으니까요.
그런데도 LLM은 진짜 버그도 찾아냅니다. 그는 Google의 Big Sleep, 그리고 HackerOne 리더보드 정상에 오른 XBOW를 예로 들었습니다. 그가 보기에 차이를 만드는 건 하네스입니다. 같은 익스플로잇을 최상위 모델만으로 만들면 2,000달러 가까이 들었지만, 같은 모델에 좋은 하네스를 붙이면 약 10분의 1로 줄었다는 연구도 소개했습니다.
익스플로잇은 그래프입니다
발표의 핵심이었습니다. 익스플로잇은 버그 하나가 아니라 경로입니다. 접근할 수 있는 지점에서 시작해 작은 능력 하나를 얻고, 메모리를 읽거나 쓰는 것 같은 다른 능력과 연결하고, 결국 코드 실행과 목표에 도달합니다.
청중 한 명이 "프리미티브"가 무엇인지 묻자 그는 이렇게 설명했습니다. 읽거나 쓰면 안 되는 파일을 읽거나 쓸 수 있게 해 주는 것처럼, 능력 하나를 주는 작은 버그입니다. 그 자체로는 별것 아니지만, 연결하면 강력해집니다.
공격자는 한 번만 운이 좋으면 되고, 방어자는 모든 곳에서 옳아야 한다는 오래된 말이 있습니다. djnn 님은 여기에 반전을 더했습니다. 공격자가 일단 안에 들어와 들키지 않고 머무르려 하면 역할이 뒤바뀝니다. 이제는 방어자가 한 번만 운이 좋으면 됩니다.
그는 익스플로잇의 변화도 짚었습니다. 버그 하나나 약한 비밀번호만으로 충분했던 초기 웜, 파일 파서 버그와 ROP(return-oriented programming)를 연결한 2011년의 iOS 익스플로잇, 그리고 2026년, 강하게 샌드박스된 JavaScript 런타임 QuickJS를 상대로 익스플로잇을 만들어 낸 AI 에이전트까지.

모든 버그의 가치가 같지는 않습니다. 가치는 이런 요소에 달려 있습니다.
- 환경: 웹 서버가 이미 관리자 권한으로 돌고 있다면, 공격자는 권한 상승을 찾을 필요가 없습니다.
- 완화 기법: ASLR이 켜져 있으면 같은 버그도 쓸모 있게 만들려면 프리미티브가 하나 더 필요합니다.
- 확신도: 그 버그가 진짜라고 얼마나 확신하는가.
- 실제 경로: 취약한 라이브러리가 서버에 링크되어 있어도, 서버가 그 취약한 코드를 실제로 호출하지 않으면 의미가 없습니다.
작은 모델로 라우터 루트 권한 얻기
그리고 시연이 이어졌습니다. 그의 팀은 시중에서 라우터 하나를 골랐습니다. 약 120달러, ARM 기반, 10년쯤 된 Linux 버전이 돌아가는 기기입니다. 펌웨어 샘플만 약 8만 개를 가지고 있어서, 이를 대규모로 풀고 분류해 서비스는 노드로, 루트 권한은 목표로 하는 바로 그런 그래프로 만드는 시스템을 구축했습니다.
그 위에서 오케스트레이터 에이전트와 하위 에이전트들이 돌아가고, 그는 실시간으로 방향을 잡았습니다. 어떤 서비스에 접근할 수 있는지 스캔하고, 이 결과부터 살펴보라고요. 에이전트는 라우터의 게스트 포털에서 명령어 주입 취약점을 확인해 루트 권한을 얻었고, 그 과정에서 제조사가 남겨 둔 디버그용 백도어도 찾았습니다. 비밀번호 해시도 복구했지만, 이를 크래킹하는 길은 확신도가 낮고 한 단계를 더 거쳐야 해서 에이전트는 게스트 포털 경로를 먼저 택했습니다.

이 모든 걸 돌린 건 작은 오픈 웨이트 Qwen 모델이었습니다. "이런 일에는 Mythos가 필요 없습니다." 적어도 대부분의 IoT 기기에는요.
같은 사고방식을 두 가지 대상에 더 적용해 보였습니다. 하나는 시스템 관리자들이 쓰는 인기 배포 도구로, 그는 대부분 바이브 코딩으로 만들어졌을 거라고 봤습니다. "관리자인지 확인"하는 미들웨어를 만들어 놓고 어디에서도 쓰지 않아서, 운영자 권한만으로 모든 서버가 어떤 ISO로 부팅할지 정해 전체 서버를 장악할 수 있었습니다. 그가 책임감 있게 이를 제보하자, 관리자는 마치 협박이라도 받은 것처럼 반응했다고 합니다. 오픈소스 관리자들에게 그가 남긴 조언은 이렇습니다. 누군가 취약점을 제보하면 그냥 고맙다고 하거나, 아무 말 없이 고치기만 하면 됩니다. 다른 하나는 Synacktiv가 Pwn2Own에서 공개한 전기차 충전기 익스플로잇으로, 블루투스 인증 우회에서 시작해 전력 제어 장치까지 도달했습니다.
방어자라면, 경로를 끊으세요
방어자를 위한 결론은 실용적이었습니다. 모든 버그를 고치거나 CVE를 0으로 만드는 건 불가능하니, 각 버그가 무엇을 가능하게 하는지 이해하고 경로를 끊는 버그부터 고치라는 것입니다. 라우터 예시에서 게스트 포털 버그를 고치면 루트까지 가는 경로가 사라지고, 확신도가 낮은 비밀번호 해시는 보안 수준에 따라 감수할 수 있는 위험일 수 있습니다.
그의 요약은 이랬습니다. 지난 6개월 동안 게임 자체는 바뀌지 않았고, 더 치열해졌을 뿐입니다. 그리고 취약점은 보안상 영향이 있는 버그일 뿐입니다. 그가 보여준 버그 대부분은 모든 개발자가 한 번쯤 써 본 단순한 버그였습니다.
Q&A
질문이 끊이지 않았습니다.
- 어디서 시작할까: 웹 보안부터, Hack The Box나 TryHackMe 같은 의도적으로 취약하게 만든 실습 환경에서 시작하라고 했습니다. 최대 1,000볼트까지 흐를 수 있는 전기차 충전기로는 절대 시작하지 말라고요.
- 정적 분석: 팀이 이미 만든 익스플로잇의 시그니처, 풀어낸 펌웨어에 돌리는 표준 스캐닝 도구, 그리고 하루 종일 해시를 크래킹하는 GPU. Linux 기반 펌웨어는 쉬운 편이고, PLC의 실시간 운영체제는 맞춤 도구가 필요하다고 합니다.
- 프리미티브만으로도 돈이 될까? 버그 바운티를 통해서, 또는 구매자가 그 능력을 특별히 원할 때는 가능하다고 했습니다.
- AI가 쓴 코드가 취약점을 늘리고 있을까? 보고는 확실히 늘고 있고, 코드를 읽는 비용이 너무 싸져서 10~15년 된 버그까지 발견되고 있다고 합니다. 진짜 문제는 수정이 따라가지 못한다는 것입니다.
- AI가 그의 일을 어떻게 바꿨나: 프롬프트를 던져 놓고 수동적으로 기다리는 게 싫어서, 실시간으로 방향을 잡을 수 있는 환경을 직접 만들었다고 합니다. 작은 모델의 환각에 대한 질문에는, 실제 작업을 하는 건 결정론적인 도구들이고 LLM은 그 도구들을 오케스트레이션하고 출력을 읽을 뿐이며, 통제권은 계속 사람에게 있다고 답했습니다.
- 내 서버 지키기: Strix 같은 모의 해킹 하네스를 자기 인프라에 주기적으로 돌리고, 업데이트를 유지하고, 로그와 알림을 설정하라고 했습니다. 좋은 보안은 탄탄한 기본기에서 나옵니다.
- 최상위 AI 연구소는 도움이 될까, 해가 될까? 한 참가자가 대형 연구소들은 문제를 대량으로 찾는 데만 집중하고 고치는 데는 관심이 없다는 curl 창시자의 말을 인용했습니다. djnn 님은 공격과 방어는 전혀 다른 일이라는 데 동의하며, 연구소들이 비용을 낮추는 데 집중하길 바란다고 했습니다. 한 번 돌리는 데 2,000달러가 드는 익스플로잇은 누구의 CI/CD에도 넣을 수 없으니까요.
- 음악 장비 해킹: 가능하고, 이미 그 자체로 하나의 분야가 되어 있을 가능성이 크다고 합니다.
저도 제 경험을 하나 물었습니다. 한 달 전 귀여운 상어가 나오는 작은 웹 게임을 리더보드와 함께 공개했는데, 사람들이 곧바로 Claude Code로 최고 점수를 얻으려 하더군요. 악의는 없었고, 그냥 너무 쉬웠던 거죠. djnn 님의 생각은 이렇습니다. 지금 많은 사람들이 무슨 일을 하는지도 모른 채 에이전트를 돌리고 있고, 언젠가는 실제 책임을 지게 될 것이라고요. 에이전트가 대신했더라도 사이트를 공격하는 건 여전히 불법이니까요.

현장 분위기
이번에는 늘 먹던 피자 대신 참치김밥과 야채김밥을 준비했는데, 많은 분들이 정말 맛있게 드셨다고 합니다. 발표가 끝난 뒤에도 많은 분들이 남아 족히 40분 동안 네트워킹을 이어갔습니다.


감사 인사
이번 행사는 아래 분들 덕분에 가능했습니다.
- 도쿄에서 와서 현장의 모든 개발자가 따라올 수 있는 보안 발표를 해 준 djnn (Bogdan G.)
- 공간을 내어 준 MARU
- 연간 스폰서 Habsida, Figma, Rezi, Notion. 이번에는 행사 스폰서가 없었기에, 음식을 준비할 수 있었던 건 이분들 덕분입니다
- 행사를 원활하게 이끌어 준 자원봉사자분들: Bertijn, Jason, Jonathan, K, Oscar (애프터무비 촬영)
- 그리고 함께 와서 좋은 질문을 아낌없이 던져 주신 모든 분들
발표 영상 보기
전체 발표는 온라인에서 볼 수 있습니다.
Dev Korea의 모든 발표는 발표 페이지에서 볼 수 있습니다.
다음 행사에서 만나요.
다음 커리어를 준비하고 계신가요?
Dev Korea에서 dev-korea.com/jobs의 최신 채용 공고를 확인하세요. 채용 중이라면 dev-korea.com/post-a-job에서 공고를 올리고 성장하는 글로벌 테크 커뮤니티와 연결되세요.
