DEF CON 33 CTF 후기
지난주 제 인생 첫 DEF CON이 막을 내렸습니다. 미국 태평양 시간 (UTC-8) 기준으로 8월 8일 금요일부터 10일 일요일까지 지상 최대 해킹대회인 DEF CON 33 CTF finals에 Cold Fusion 팀으로 참가했고, 전체 12팀 중 10위를 기록했습니다. 결론부터 말씀드리자면 저는 팀에 유의미한 기여는 하지 못했습니다. 담백하게 후기나 남겨보고자 합니다.

안녕하세요. 윤석찬입니다. 지난 일요일 제 인생 첫 DEF CON이 막을 내렸습니다.

저는 미국 태평양 시간 (UTC-8) 기준으로 8월 8일 금요일부터 10일 일요일까지 지상 최대 해킹대회인 DEF CON 33 CTF finals에 Cold Fusion 팀으로 참가했고, 전체 12팀 중 10위를 기록했습니다. 저희 Cold Fusion 팀은 전원이 한국인으로 구성된 팀이며, 올해 DEF CON을 위해 PLUS 및 CatFlag, null@root 팀 등 국내 유명 팀들이 연합하여 100여 명 정도의 플레이어가 함께 대회를 진행했습니다.

결론부터 말씀드리자면 저는 팀에 유의미한 기여는 하지 못했습니다. 중학교 3학년부터 꿈꿔온 무대 DEF CON인 만큼, 그리고 지상 최대 규모라고 불리는 이 대회의 무게를 아는 만큼, 팀이 본선에 진출했다고 해서 제 기여도를 절대 과장하고 싶진 않네요 ㅎㅎ;
먼저 좋은 기회를 마련해준 경제형에게 감사의 인사를 밝히면서 시작합니다.
무슨 문제를 보았나?
이번 DEF CON에서 제가 주요하게 분석했던 문제는 nilu와 hs로, 총 2개였습니다.
nilu
nilu는 SQLite와 상호작용하는 바이너리를 분석해야하는 문제였습니다. 이 파일을 분석하고자 정말 오랜 시간동안 열지 않았던 IDA도 열어서 분석해보고 별 쌩쇼를 다 해보았던 것 같습니다.
하지만 바이너리 분석을 오랫동안 하지 않았기에, 애초에 다른 분들과 바이너리 분석 속도와 취약점 root cause 분석에서 상당한 숙련도 차이가 있었고, 결과적으로는 이 문제를 풀 당시 팀에 제가 기여할 수 있는 부분은 없었습니다.
hs
hs는 LLM 기반 서비스에서 Prompt injection을 통해 flag를 얻는 문제였습니다.
군 복무 시절 국내 LLM 권위자이신 골빈해커 김진중 님이 작성하신 「최고의 프롬프트 엔지니어링 강의」라는 책을 정말 인상 깊게 보았기도 하고,

더불어 군대에서 OpenAPI의 API로 4o 모델을 사용해 KBO 허구연 총재님의 말투를 생성해주는 LLM 서비스를 만들어본 경험이 있었으며,

그리고 한창 LLM에 관심이 많았을 때, Gandalf 라는 prompt injection 워게임을 풀어본 경험이 있기 때문에 마지막 이틀 동안은 이 문제를 붙잡고 있었습니다. 그나마 제가 가장 자신이 있었던 분야였고, Cold Fusion 팀 디스코드 채널에서 주도적으로 이 문제를 풀기 위해 방향성을 논의했지만 결국은 풀지 못했습니다.
이 문제는 두 개의 LLM assistant로 이루어진 문제였습니다. 이 LLM 기반 서비스는 두개의 LLM 어시스턴트가 직렬적으로 작동하고 있었습니다.
- 첫번째 어시스턴트는 highlighter로, 지정된 글을 읽고 사용자의 질의에 따라 글의 내용을 찾아줍니다.
- 두번째 어시스턴트는 summarizer로, 이전 프로세스에서 highlighter로 추출된 글 내용 일부를 읽고 요약해줍니다.
따라서 이 문제를 도식화해보면 아래와 같습니다.

아래와 같은 형식으로 LLM 어시스턴트가 학습한 문서에 대해 질의할 수 있으며, 이 질의는 두 LLM 모델을 통해 답변됩니다.

질의를 통해 LLM 에이전트로부터 Flag를 추출하는 문제였고, 대회 도중 이런 저런 실행 결과를 관찰한 결과...
- 어시스턴트는 Wikipedia의 Air pollution 문서(이후에는 Light pollution)에 flag가 추가된 문서를 학습했다.
- OpenAPI의 LLM 모델을 사용하고 있다.
는 사실을 알게 되었습니다. 이후에는
- Highlighter가 문서에서 사용자가 질의한 정보를 찾지 못하거나,
- Summarizer가 이전 highlighter 모델에서 요약한 문서에 flag가 검출하면 'No answer found'라고 답한다
는 것을 가정하고 늦은 시간까지 팀원분들과 문제 풀이 방안을 고민했습니다.

이전 실행 결과들로 가정한 사실을 바탕으로 OpenAPI API를 이용해 문제와 비슷한 정도로 robust한 어시스턴트를 만들었고, 대회 기간 새벽 4시까지 미친 쉐도우복싱을 했습니다만, 이때 만들어둔 LLM injection payload들은 다음날 쓸모가 없어져서 절망스러웠던 기억이 납니다.
특히 저는 Summarizer 어시스턴트에서 "flag"라는 문자열을 검출하고 있다는 확신이 들었고, 이를 Data exfiltration에서 이를 우회해서 플래그를 얻고자 translation 가젯, write a poem / song 류의 창의적 가젯, LLM tag escape, 등 여러 방면으로 시도했지만 결국엔 풀지 못했습니다. 대회 종료 이후 SuperDiceCode 팀의 지인을 통해 해당 문제의 풀이를 알고 나서 정말 기운이 확 빠졌었네요.. ㅎㅎ;

첫 DEF CON 본선 참가 후기
(1) 정말 오랜만에 느낀 상승 욕구
누군가 말하길 내 스스로 발전하고자 한다면 나보다 잘하는 사람들만 있는 곳으로 가야한다고 합니다. 평소 이런 능력 상승을 위한 자극이 무뎌진 상태였는데, 이번 DEF CON을 계기로 제 스스로의 부족한 부분 (특히 바이너리 분석)을 너무나 뼈져리게 알게 되어 감사했습니다. 정말 자극을 많이 받았고, 한국에 돌아가면 다시 꾸준히 열심히 실력을 높이고자 합니다.
(2) LLM은 해커에게 선택이 아니라 필수
누군가 "인간 또한 상어와 같아 멈추면 질식해 죽는다"라고 했던가요, 해커들에게 가장 어울리는 문장이라고 생각합니다. 최신 기술을 다루는 해커들 중에도 모순적이게 레거시 기술로 먹고 사는 사람들이 많습니다. 저 또한 아니라고는 할 수도 없구요.
물론 아직까지 레거시 기술로도 충분히 먹고 살 수는 있습니다. 모의 침투, 보안 진단, PoC 작성 모두 사람이 할 수 있지만, 속도 면에서 LLM을 적극적으로 차용하는 사람과 아닌 사람의 분석 및 개발 속도는 크게 벌어질 것이라 생각합니다.
LiveCTF와 AIxCC 대회를 통해 Offensive Security 분야에서의 LLM의 활용성을 크게 깨닫는 계기가 되었습니다. 특히 LiveCTF에서는 LLM을 적극적으로 활용하는 팀과 아닌 팀의 타겟 분석 속도가 매우 차이가 났습니다. 특히 저희 팀의 패인 중 하나가 LLM을 적극적으로 차용하지 않은 점이라고 생각합니다. LiveCTF에서 맞붙은 상대팀들 모두 자신들만의 AI 모델로 문제를 빠르게 풀었습니다.
티오리에서 AIxCC 대회에 참가한 LLM 모델의 일부를 공개하기도 했고, 저 또한 이것저것 해보고 싶은 것들이 많아서 올해 안으로 저도 LLM 기반의 해킹 어시스턴트 도구를 두가지 정도 만들어보고자 합니다.
(3) 어떤 언어든 자신감이 붙으면 클라이언트가 늘어남
저는 대부분의 사람에게 '클라이언트'가 있다고 생각합니다. 표면적으로 고객이 없는 직무라도 결국 누군가의 기대를 충족해야 하니까요. 직장에서는 상사와 동료, 이해관계자가 사실상의 고객이 됩니다. 저는 이 잠재적 고객의 범위를, 제 스스로가 책임질 수 있는 '시장'의 크기로 이해합니다.
운용 가능한 시장이 커질수록 개인의 가치도 커집니다. 전문성을 쌓아 시장을 확장할 수도 있지만, 외국어 하나만으로도 내가 운용 가능한 시장은 빠르게 넓어집니다. 저는 일본어를 배우고 나서 일본인과의 대화가 두렵지 않아졌고, 상대할 수 있는 고객이 늘었다는 느낌을 받게 되었습니다. 그래서 일본어 공부는 그냥 지루한 공부가 아니라 '나의 시장을 확장하는 일'이 되었습니다.
물론 아직까지 많이 부족한 수준이라, 어줍잖게 일본어를 배운 것으로 우매함의 봉우리에 있는지도 모르겠습니다.
(4) 세계적인 해커들을 만나려면 역시 그들이 모이는 곳에
저는 현재 미국, 한국 합해서 네 개 정도의 단체에서 일하고 있는데, 현재 가장 신경써서 일하고 있는 Zellic도 그렇고 모두 풀 리모트로 일하는 환경이라 고수 분들을 보고 자극을 얻을 수 있는 기회가 적습니다. 그래서 사람들을 만나면서 자극도 얻고, 그런 고수 분들을 통해서 현재 기술 트렌드가 어떻게 변화해가고 있는지, 어떤 타겟을 보고 있는지 이야기할 기회를 찾고 있던 찰나, 이번 DEF CON이 좋은 기회가 된 것 같습니다.
Cold Fusion 팀에서 국내 유수의 분들과, 그리고 GMO Ierae 분들께서 마련해주신 네트워킹 파티에서 아시아 유수의 해커 분들과 만날 수 있어서 영광이었습니다.
동아시아 및 일본 분들과의 네트워킹
DEF CON 두번째 날에는 GMO Ierae라는 회사의 히코히로 린상, 코스케 이토상, 신이치 칸상이 주도해서 모인 동아시아 DEF CON 참가자 네트워킹 모임이 있었습니다.

지난 7월 저희 PWNLAB 랩실의 경제형, 우협이가 도쿄에서 한 달간 GMO Ierae와 기술 교류를 했고, 마침 그때 저도 일본에 일정이 있어서 함께 저녁 술자리를 갖은 계기로 히코히로 린상, 코스케 이토상과 처음 뵙게 되었습니다.
(아래 사진이 7월, 시부야에서 GMO 분들과 저녁 먹으며 찍은 사진입니다)

그때 인연을 계기로 교수님과 랩실 분들을 통해 DEF CON 아시안 파티에 초대받아 동아시아 분들과 네트워킹도 할 수 있었습니다.
DEF CON 아시안 파티에서는 나카지마 아스카 상을 뵙고 명함도 교환하여 정말 영광이었습니다. 나카지마 상은 일본에서 정말 유명하신 해커분으로, Elastic의 보안 연구원으로 근무 중이시고 BlackHat 리뷰어이시기도 합니다. 트위터에서만 뵙던 분을 실제로 뵈어 정말 신기했습니다.

이외에도 올해 DEF CON 최연소 발표자인 사스케 콘도 상과 마츠다 타케시 상이랑도 재밌게 대화했던 것 같습니다. 도쿄의 보안 친목 교류회인 AV TOKYO의 모토히로 나카니시상도 만나서 재밌게 대화했던 기억이 인상깊게 남습니다. 특히 나카니시상(Matt짱)은 박문범 멘토님과 지인이셔서 더 신기했습니다. (세계관이 충돌되는 느낌 ㅋㅋ) 보안 업계에서 일하시는 일본인분들과 소통하면서, 평소 일본어를 배워두길 잘했다 싶었습니다.
일본의 SKT인 NTT 도코모의 보안 연구원 분들도 와 계셨는데, 한국 통신사 분들도 나중에 DEF CON에서 뵈면 정말 좋겠네요 ㅎㅎ
After DEF CON – 미국 서부 관광
장대희 교수님, 랩실 분들과 fire valley

존경하는 장대희 교수님 덕분에 네바다에 있는 Valley of fire에 다녀왔습니다 ㅎㅎ 교수님과 개인적으로 더 친밀해진 기분이라 좋았습니다.
현대 오토에버 분들과 Canyon (네바다, 유타, 애리조나)

저, 유택님과 준혁형, 민호형 이렇게 그랜드 캐니언 1박 2일 투어를 다녀왔습니다 ㅎㅎ 이런 기회를 만들어주신 유택님께도 정말 압도적 감사..! 투어에서 만난 분들도 정말 좋았고, 재밌는 여행이었던 것 같습니다.