11 minute read

왼쪽부터 허기홍 교수님, 나, 우석님, 승완님



들어가며

머나먼 미국 땅, 캘리포니아에서 4대 보안 학회 중 하나인 CCS가 열렸다. 프로그래밍시스템 연구실이 세워진 이래 최초로 대면 참석하는 해외 학술대회였기에, 논문을 발표할 우석님과 허기홍 교수님 외에도 나와 승완님이 함께 참석하기로 하였다. 나는 비록 내 논문이나 포스터가 채택된 것은 아니었지만, 현재 퍼징을 연구하고 있어 비슷한 분야의 견문을 넓히기 위해 참석하게 되었다. 어떻게 보면 앞으로 참석할 모든 학회 중 가장 마음이 여유로울 것이라 예상되었기에 좋은 기회를 잘 활용하기로 다짐하였다. 진이 빠지는 10시간의 비행 끝에 LA에 도착했다. 학회에 참가한 인원수는 내가 상상한 것과 비슷했고, 학회 장소는 내가 생각한 것보다 협소했다. 덕분에 쉬는 시간마다 세션 룸 앞의 복도는 매번 인산인해를 이루었다. 굳은 다짐이 무색하지 않게 일주일 동안 많은 것을 보고 배우며 느낄 수 있었다.



학회 즐기기

퍼징 이야기

앞서 말했듯이 내가 여기 미국까지 날라올 수 있었던 가장 큰 명분은 퍼징 관련 연구 발표를 듣고 동향을 파악하는 것에 있었다. 따라서 나는 사명감을 가지고 학회 첫날, 첫 세션으로 열린 퍼징 세션에 들어가게 되었다. 솔직히 말하면 학술적인 사명감 외에도 나 한 명이 더 오기 위해 지출되었던 출장비에 대한 마음의 빚이 있었다. 덕분에 학회 기간을 통틀어서 가장 집중했고 알차게 얻어가는 것이 많았던 세션이었다. 퍼징 세션에는 총 4편의 논문이 발표 되었는데, 그중 기억에 남는 세 편에 대해 이야기해보려 한다.

JITPicking1
우선 처음으로 자바 스크립트 엔진의 JIT 컴파일러를 대상으로 Differential Fuzzing을 적용한 논문이 있었다. 요즘 자바스크립트 엔진이 보안 분야에서 많은 관심을 받고 있는데, 보통 자바스크립트 엔진에서 결함을 찾기 위해 퍼징을 많이 사용해왔다. 그러나 퍼징의 한계점은 무작위로 생성되는 테스트 입력에 대한 예상되는 출력, 즉 테스트 오라클이 없다는 것이다. 따라서 대부분의 경우, 프로그램이 비정상적으로 종료되는 것(크래시)을 테스트 오라클로 사용하여 메모리 관련 결함을 찾는 것에 그쳤다. 그 결과 크래시가 발생할 정도는 아니지만, 여전히 위험한 결함은 놓치는 상황이었다. 하지만 자바스크립트 엔진의 JIT 컴파일러를 테스트할 때는 모든 입력(자바스크립트 코드)에 대한 예상되는 출력(실행 결과)이 존재한다. 그것은 바로 해당 자바스크립트 엔진의 인터프리터에 같은 입력을 주었을 때 나온 실행 결과이다. 따라서 퍼징으로 생성한 자바스크립트 코드를 각각 JIT 컴파일러로 컴파일 후 실행한 것과, 인터프리터로 실행한 결과를 비교하는 것이 바로 이 논문의 핵심 아이디어이다. 마치 콜럼버스의 달걀처럼 듣고 보면 당연한 말인데, 그 당연한 말을 처음으로 했기에 여기에서 발표를 할 수 있는 것이리라. 승완님과 우석님이 연구하고 있는 주제와 유사한 분야라서 흥미롭게 들을 수 있었다.

LibAFL2
그 다음으로는 AFL을 라이브러리화한 연구인 LibAFL에 대한 발표가 있었다. 매년 수많은 퍼징 논문을 통해 새로운 아이디어들이 쏟아져 나오지만, 구현만큼은 기존의 퍼징 도구(AFL, Angora 등)에 자신의 접근을 얹어서 구현한 경우가 많다. 이 때 문제가 되는 것은 새로운 접근이 그 자체로 좋은 효과를 가지고 온 것인지, 아니면 기존의 특정 도구와 결합되었기에 좋은 것인지 판단하기 어렵다는 것이다. 예를 들어 다른 도구를 기반으로 구현된 두 접근을 공정하게 비교할 수 있는 방법을 찾기가 어렵다. 두번째로 큰 문제는, 각기 다른 도구 위에 구현된 접근들을 하나로 통합할 수 없어 개별의 성취가 모두의 성취로 이어지지 않는다는 것이다. 이러한 문제를 해결하기 위해 제안된 것이 바로 퍼저의 라이브러리화이다. 보편적인 퍼저의 각 요소(입력 생성, 스케쥴링 등등)를 모듈화 하여 각각 별개의 라이브러리로 만들되, 각자 필요에 맞게 새로운 모듈을 구현하여 사용할 수 있도록 하는 것이다. 이렇게 하면 각기 다른 아이디어를 공정하게 비교하는 것도, 다양한 아이디어를 하나로 통합하는 것도 손쉽게 가능하다. 무엇보다 인상적이었던 것은 해당 논문의 1저자가 AFL++ 논문의 1저자였다는 사실이다. AFL++은 당시 우후죽순처럼 등장한 AFL의 변종들을 하나로 통합한 논문이었다. 지난번과 같은 동기이지만 이번에는 더욱 근본적으로, 그러나 여전히 실용적으로 문제를 풀어냈다는 점이 연구자로서 참 멋있었다. 자신이 느낀 답답함을 좋은 연구 주제로써 풀어나가며 결국에는 같은 분야의 연구자들에게 큰 도움이 되는 연구를 해내는 모습은 나도 본받고 싶었다. 결국 나중에 찾아가서 별 볼일 없는 질문 하나를 던진 뒤에 너무 멋진 작업 해주어서 고맙다는 말을 하고 수줍게 도망쳤다.

MC^23
마지막으로 MC^2 라는 지향성 퍼징 논문이 있었다. 이 연구는 참 특이했던 것이, 기존의 지향성 퍼징과 아예 다른 방식으로 문제를 접근했다. 지향성 퍼징은 주어진 목표 지점에 도달하는 것을 목표로 하는 퍼징 기법이다. 기존의 지향성 퍼징은 대부분 변이 기반 접근을 취했다. 즉, 현재 가진 입력들 중, 목표 지점에 도달할 가능성이 더 높아 보이는 입력을 선택하여 그 변종을 더 많이 생성하는 방식이었다. 그러나 이 논문은 변이 기반 접근을 취하지 않았다. 대신 프로그램의 입력 공간을 하나의 연속적인 공간으로 두고, 그 안에서 이진탐색을 하며 목표 지점에 도달하는 입력을 생성하는 방식을 취했다. 즉, 둘로 나눈 입력 공간 중 목표 지점에 도달하는 입력이 있을 가능성이 더 높은 쪽을 계속해서 선택한다는 것이다. 너무나도 낯선 접근이라서 처음에는 이해가 좀 어려웠지만 프로그램 입력을 바이트스트림으로 본다면 입력 공간이 어느정도 상상은 되는 듯 했다. 다만 여전히 납득이 잘 되지 않는 것은, 문제를 이렇게 정의한다면 입력의 크기가 고정될 수밖에 없고, 입력 공간에서 가까운 입력은 그 실행 결과도 유사하다는 것을 보장해주어야 한다. 물론 저자는 계산 이론들로 그 당위성을 설명하고 심지어 이 접근이 최적임을 수학적으로 증명하였다고 했지만, 회의적인 사람들도 꽤 있어 보였다. 아무래도 쉬이 가슴에 와 닿지 않는 새로운 접근은 시간의 검증이 필요한 것 같다. 또 하나의 사기 논문이 될 지, 아니면 연구의 새로운 장을 열 논문이 될 지는 두고 봐야 알 것이다.

사람 만나기

나는 보통 단 하나의 목표를 세우고 그것만은 반드시 이루려고 하는 편이다. 이번에 여정을 떠나며 마음에 품었던 개인적인 목표는 사람들과 많이 이야기하고, 친구를 하나 만드는 것이었다. 결론적으로 나는 목표를 이루고 왔다. 하지만 모르는 사람들과 선뜻 이야기를 나누는 것은 쉬운 일이 아니었다. 대화를 나눈 기억이 그리 많지 않다 보니 적은 지면에 충분히 공유할 수 있을 것 같아 적어본다.

길거리 계단에서 승완님과 점심식사

첫 만남은 첫째 날 점심 시간이었다. 학회 참석인원이 장소의 수용인원을 넘기게 되어 절반 가까이 되는 사람들은 점심 식사를 받아들고 호텔 앞 광장으로 쏟아져 나왔다. 나와 승완님도 그 중 일부였다. 딱히 앉을 자리가 없어 그저 야외의 계단에 앉아 식사를 하는데 옆에 한 무리의 독일인이 앉았다. 가장 가까이 앉은 사람과 대화를 해보니 앞선 퍼징 세션의 JIT 컴파일러 논문의 저자와 같은 그룹이라고 하였다 (정작 그 사람의 이름은 못 물어봤다). 앞으로 남은 학회 기간 내내 서로 묻고 답할 비행기 몇시간 타고 왔냐는 질문을 주고 받은 뒤 각자 무슨 연구 하는지, 마침 공통적으로 들은 퍼징 세션은 어땠는지 등등을 이야기 했다. 재밌는 것은 이 사람도 MC^2 논문이 수상하다고 생각하는 것이었다. 콜럼버스의 달걀 같은 연구를 하는 것이 여러모로 마음이 편하겠다는 생각을 다시 한번 하게 되었다.

두번째 만남은 두번째 날 만찬에서 옆자리에 앉은 구글 직원이었다. 이름을 분명 물어봤는데 기억이 나진 않는다. 아마 피차일반일 것이다. 이번에도 역시 서로 무엇을 연구하는지 주고 받았는데, 구글에서도 동형 암호를 위한 컴파일러 연구를 하고 있는 듯 했다. 구글에서도 관심을 가질 만큼 중요한 문제이지만 생각보다는 아직 진보가 많이 없는 분야인 것 같았다. 하지만 분명 발전한다면 큰 변화를 가져올 것으로 보인다.

만남은 두 번에 그쳤지만, 대신 새로운 친구를 하나 사귀었다. 바로 MC^2 의 저자였다. 나이도 나와 비슷해 보이고, 같은 주제를 연구한다는 것이 참 반가웠다. 친해지고 싶은 마음 반, 논문에 대한 의문점 반을 품은 채 포스터 세션 이후 어수선한 분위기를 틈타 그 친구를 붙잡고 긴 대화를 할 수 있었다. 세션에서 공개적으로 했으면 얼핏 공격적으로 들렸을 질문들도 개인적으로 하니 순수한 질문으로 오갈 수 있었다. 그 덕에 온갖 질문들을 다 할 수 있었다. 왜 실험의 타임아웃은 6시간만 주었냐, 입력 공간에서 가까운 입력의 실행 결과가 비슷할 것이라는 보장이 어디 있나 (사실 없다고 한다) 등등. 그 친구는 성실하게 답을 해 주었고, 내 연구 얘기도 궁금해하며 물어보았다. 논문 아직 안 냈으면 자기가 피드백 주겠다고 제안도 해 주었는데, 나는 그 제안이 살짝 부담스러워서 리뷰 결과 나오면 그 때 보내주겠다고 하였다. 앞으로 둘 다 진지하게 연구를 한다면 계속 만날 수 있을 것으로 보인다.

토막 연구 소개

CCS가 보안학회이다 보니 낯설고 새로운 연구 분야들이 많았다. 많이 아는 바가 없어 길게 쓰지는 못하지만, 이런 연구들도 있었다는 것을 공유하고자 짤막하게 나마 써보려 한다.

Graph Unlearning4 : 요즘 새로이 떠오른 뜨거운 주제가 바로 Machine Unlearning이다. 기계 역학습, 좀 더 직관적으로는 기계 망각이라고 할 수 있겠다. 그 배경은 기계학습에 사용되는 데이터와 개인 정보 보호 정책이 충돌하며 발생한 이슈에 있는데, Machine Unlearing은 기계 학습에 자신의 데이터가 사용된 개인이 해당 데이터의 회수를 요청할 때 발생하는 문제에 대한 해결책이다. 즉, 효율적으로 재학습을 할 수 있는 방식인 것이다. Graph unlearning은 GNN에 대해 unlearning을 가능케 하는 논문이었다. 개인적으로 이 분야의 중요성은 앞으로 점점 더 커질 것으로 예상된다.

변조된 음악으로 음압병동 무력화5 : 음압 병동의 음압을 유지하기 위해서는 각각 방 내부와 외부에 센서가 필요하다고 한다. 이 때, 변조된 음악을 센서 가까이에서 재생하면 센서가 오작동을 하여 병동 내의 바이러스를 유출시킬 수 있다고 하는데… 사실 변조된 음악을 들어보면 누구나 변조되었다는 것을 알 수 있고, 센서와 15센티 이내에서 음악을 재생해야 하는 등 허술한 점이 꽤 많은 연구였다. 다만 이런 것도 연구하는 사람이 있다는 점이 신기하긴 했다.

노트북 마이크가 원격조종 당하는지 감지하는 센서6 : 노트북의 카메라와 마찬가지로 마이크도 원격으로 공격자가 접근할 수 있다고 한다. 특히 카메라는 평소에 가리면 되지만 마이크는 소리의 입력을 차단하는 것이 어렵기 때문에 마이크의 활성화 여부를 감지할 수 있어야 한다. 이 때, 마이크가 켜져 있으면 발생하는 미세한 전파를 탐지하는 센서를 개발한 연구진이 있었다. 보안 학회는 이렇게 하드웨어 레벨로 내려간 연구도 많았다.

머신 러닝 모델 설명하기7 : 머신 러닝 모델의 설명력(Explainability)은 갈수록 더 강력하게 요구되지만 쉽사리 만족되지 않는 덕목 중 하나이다. 해당 연구는 설명력을 확보하기 위해 불투명(BlackBox)한 머신 러닝 모델과 데이터셋을 받아 해당 머신 러닝 모델의 행동을 결정 트리로 표현하는 접근을 취했다. 배경 지식이 부족하여 정확히 이해하지는 못했지만, 결정 트리가 머신 러닝 모델을 정확하게 담아낼 수만 있다면 충분히 효과적인 방법으로 보였다. 다만 왜 인공지능 학회가 아닌 보안 학회에 나왔는지는 잘 모르겠다.



USC 탐방기

학회 일주일 전 즈음, 허기홍 교수님께서 마지막 날 USC 방문 일정을 잡아 주셨다. 허기홍 교수님의 박사 후 연구원 시절 동료, Mukund Raghothaman 교수님이 거기 계신데, 마침 학회 장소와 그리 멀지 않은 곳이었기 때문이다. 학회 일정이 마무리된 다음 날 아침에 체크아웃을 하자마자 택시를 타고 USC 캠퍼스로 향했다. 처음 느낀 인상은 학교가 하나의 예쁜 마을 같다는 것이었다. 건물들이 어느정도 일관된 디자인으로 세워졌으며, 캠퍼스가 넓은 데다가 대부분 낮은 건물들로 되어 있어 수평적으로 널리 퍼진 캠퍼스의 이미지를 주었다.

무려 학생들 기숙사 건물
학교 간판 앞에서

그날 하루 일정은 다음과 같았다. 허기홍 교수님의 Tracer 발표, 그리고 USC 교수님들과의 30분씩 면담. 마침 그 날이 여러 CS 연구실의 연합 세미나가 예정된 날이어서 Tracer 연구를 많은 사람들 앞에서 발표할 수 있었다. 우석님의 CCS 발표는 좀 더 기술적인 측면에 집중하였다면 허기홍 교수님의 이번 발표는 좀 더 교육적이었다. 우리가 어떤 문제를 풀고자 하였는지 더 자세히 설명하고, 푸는 과정에서 그리고 최종 결과물인 Tracer라는 시스템을 만들 때 어떤 성질(효과성, 강인성 등)을 추구하였는지 등. 같은 내용이더라도 목적에 따라 발표 구성이 크게 달라질 수 있다는 것을 새삼 느꼈다. USC 학생들에게도 상당히 흥미로운 내용이었는지 질문이 굉장히 많았다. 괜히 나도 뿌듯한 기분이 들었다.

교수님들과의 면담은 정말 기억에 남는 감사한 시간이었다. 대략 이런 식이었다. 먼저 USC 교수님의 방으로 우리가 찾아간다. 허기홍 교수님께서 인사로 대화를 시작하고 상대 교수님은 요즘 무슨 연구를 하시는지 들어본다. 그 후, 우리(나, 승완님, 우석님) 각각 무슨 연구를 하고 있는지 설명하고 서로 질문을 주고 받는 시간을 가진다. 교수님들 수준의 연구자들에게 내 연구를 소개할 수 있다는 것은 엄청난 기회였고 특권이었다. 나는 그 기회가 주어졌다는 것이 너무 감격스러웠다. 그 날 만난 교수님은 세분이었다. 정형 검증을 하시는 Chao Wang 교수님, 웹 어셈블리만 연구하신다는 Weihang Wang 교수님, 그리고 인간에 대한 이해를 바탕으로 소프트웨어 공학 문제를 연구하시는 Souti Chattopadhyay교수님. 세 분 모두 우리 연구를 흥미롭게 들어 주셨고, 많은 관심을 보여주셨다.

Chao Wang 교수님은 특히 나의 정적 분석을 활용한 지향성 퍼징 연구에 관심을 보이셨는데, 퍼징 과정에서 발견되는 정보들로 정적 분석을 통해 파악한 데이터 흐름의 그럴듯함(feasibility)을 판단할 수 있지 않겠냐고 제안하셨다. 나도 생각해본 바는 있지만 당장 할 일은 아니라고 여겨 묻어두었던 터라 먼 미국 땅에서 외국인 교수님의 말로 들으니 참 반가운 아이디어였다. 지금 나는 정적 분석을 통해 동적 테스팅을 보강하고 있지만, 언젠가는 동적 테스팅을 통해 정적 분석을 보강하는 작업도 꼭 해보고 싶다. 그렇게 정적과 동적 세계의 양방향 소통이 이루어지면 더 정확한 분석과 더 효율적인 테스팅이 가능할 것이다. 또 내가 관심이 갔던 연구는 Souti Chattopadhyay 교수님의 연구였다. 내 마음의 반쪽짜리 고향인 심리학이 적극적으로 소프트웨어 공학 연구에 사용되는 것을 보면서 어쩌면 내가 갔을지도 모르는 또 다른 길을 보는 것 같아 잠시 마음이 들뜨기도 하였다.



우물 밖 체험기

우리는 항상 마음 한 켠 불안함이 있다. 저기 미국과, 혹은 전 세계와 비교해서 우리가 우물 안 개구리일까 하는 불안함이다. 그러나 이번 학회에 다녀온 뒤 내가 깨달은 것은 그런 걱정을 할 필요가 없다는 것이었다. 다양한 발표 세션을 보고, 포스터 세션을 돌아다니고, 미국 명문 대학을 방문해보니, 우리 연구실은 세계 최고 수준의 환경에서 세계 최고 수준의 연구를 하고 있었다. 연구에 있어서 우리는 누구나 공감할 만한 문제를 진정성 있게 풀어나가고 있으며, 수준급 발표로 우리가 발견한 바를 전달할 수 있으며, 연구 지원도 부족함 없이 누리고 있다. 또한 CCS 포스터 세션의 경우 그 연구의 깊이나 전달력이 우리 연구실이 참여하고 있는 재난 연구센터 워크숍이나 SIGPL 계절학교에서 볼 수 있는 포스터들과 큰 차이가 없었다. 따라서 국내의 다른 연구실들도 같은 자부심을 느껴도 되리라 생각한다. 연구자에게 겸손함과 자신감이 모두 필요하겠지만, 한국의 정서상 겸손함은 이미 충분하니 자신감을 더 가질 필요를 느낀다. 특별히 이번에는 우석님의 훌륭한 발표를 들으며 자랑스러움과 자신감을 충전할 수 있었다.



LA 즐기기

학회 장소 근처에 디즈니 콘서트 홀과 현대 미술관이 있었다. 디즈니 콘서트 홀의 경우 내부는 따로 볼 수 없었지만, 그 외관만으로도 랜드마크로 삼기에 부족함이 없었다. 건축학을 전공했다면 더욱 인상 깊었겠지만 그렇지 않더라도 충분히 기억에 남을 만한 독특한 건물이었다. 현대 미술관의 경우, 미국 작가들의 현대 미술 작품들이 전시되어 있었다. 미술 교과서에서나 보던 작품들을 실제로 보니 감회가 새로웠다. 확실히 유화나 콜라주 등의 작품은 실제로 보는 것이 그 질감까지 느껴져서 더 인상깊은 듯 하다. 질감이 특이하지 않더라도 원본의 크기에서 오는 압도감이 책 속의 그림과는 차원이 달랐다.

현대 미술관보다 더 현대미술관스러운 디즈니 콘서트홀
책에서만 보던 리히텐슈타인의 그림



돌아오며

개인적으로도 처음이자, 연구실 차원으로도 첫 해외 학회 출장이다 보니 더욱 뜻 깊은 시간이 되었던 것 같다. 세계적인 연구자들 사이에서 우리의, 그리고 나의 수준을 견주어 볼 수 있었고, 연구자로서의 두근거림과 자부심을 충전할 수 있었다. 다음에는 반드시 나의 연구 성과를 가지고 학회에 참석할 것이다. 이번 출장을 지원해주시고 또 함께 해 주신 허기홍 교수님께, 그리고 휴일에도 흔쾌히 우리를 맞아 주신 Mukund 교수님을 비롯한 USC의 교수님들, 또 출장 준비를 잘 도와 주신 나은진 선생님께 감사드리며 글을 맺는다.








각주

[1] Bernhard, Lukas, et al. “Jit-Picking: Differential Fuzzing of JavaScript Engines.” CCS (2022)
[2] Fioraldi, Andrea, et al. “LibAFL: A Framework to Build Modular and Reusable Fuzzers.” CCS (2022)
[3] Shah, Abhishek, et al. “MC2: Rigorous and Efficient Directed Greybox Fuzzing.” CCS (2022)
[4] Chen, Min, et al. “Graph unlearning.” CCS (2022)
[5] Barua, Anomadarshi, et al. “A Wolf in Sheep’s Clothing: Spreading Deadly Pathogens Under the Disguise of Popular Music.” CCS (2022)
[6] Ramesh, Soundarya, et al. “TickTock: Detecting Microphone Status in Laptops Leveraging Electromagnetic Leakage of Clock Signals.” CCS (2022)
[7] Jacobs, Arthur S., et al. “AI/ML for Network Security: The Emperor has no Clothes.” CCS (2022)