[핵심 흐름] 이론 (PL) → 한계 → 실용 (Security) → 융합 (PL+Security)
[목차]
- 서론: PL과 보안의 접점 (강연자가 이 자리에 서게 된 이유)
- PL의 매력과 한계: 이론 (정적 분석)의 아름다움, 그리고 현실의 취약점을 찾고 싶은 열망
- 새로운 융합: 정적 분석과 퍼징의 결합
- 핵심 아이디어: ‘안내자’로서의 정적 분석 (B2R2, 허기홍 교수님 언급)
- 결론: 분야를 넘나드는 연구의 가치와 기회
1. 서론: PL과 보안의 접점
제가 연구하는 분야는 소프트웨어 보안, 특히 테스팅과 프로그램 분석입니다. 이 분야는 프로그래밍 언어 이론과 매우 밀접하게 관련되어 있어 오늘 이 자리에 연사로 서게 되었습니다.
이전 연사분과 비교해서 제목이 딱딱하지 않은가 고민이네요. (참고: 강연 제목은 “프로그래밍 언어와 보안의 만남"이고, 이전 강연 제목은 “흐르는 강물처럼"이었음)
2. PL의 매력과 한계: 이론에서 현실로
저는 소프트웨어 취약점을 찾고 해킹하는 것에 흥미를 느꼈습니다. 이 과정에서 ‘체계적으로 접근할 수 있는 아름다운 이론과 기술이 없을까?’ 하는 생각에 PL 분야의 ‘프로그램 정적 분석’ 에 관심을 갖게 되었습니다.
석사 과정에서는 바이너리 코드를 대상으로 한 바이너리 정적 분석을 연구했습니다.
개인적으로는 한계를 느끼기 시작했습니다. 체계적이고 엄밀한 이론을 공부하고 싶어서 이 분야로 온 것은 맞지만, “좀 더 직접적으로 현실의 취약점을 찾을 수 있는 기술을 하고 싶다” 는 쪽으로 눈을 돌리게 되었고, 보안 분야로 가고 싶어졌습니다.
3. 새로운 융합: 정적 분석과 퍼징의 결합
보안 분야를 집중적으로 하는 연구실에 가서 직접 뛰어들어보고 싶었습니다. 박사 과정에서는 이전의 연구를 바탕으로 정적 분석과 퍼징을 엮었습니다.
핵심은 정적 분석이 퍼징이 좀 더 효과적으로 돌아갈 수 있도록 ‘보조’해주는 역할을 하도록 두 기술을 엮은 것입니다. 석사 과정에서는 잘 안 되어서 어려움을 겪었는데, 이 연구가 갑자기 잘 된 이유는 B2R2라는 바이너리 분석기 프로젝트가 당시에 매우 활발하게 구현 중이었기 때문입니다.
4. 핵심 아이디어: ‘안내자’로서의 정적 분석
이 융합 연구에서 정적 분석의 역할은 (스스로 모든 것을 찾는 것이 아니라) “퍼징이 효과적으로 취약점을 찾도록 ‘안내’하는 역할” 로 변화했습니다.
덕분에 정적 분석의 정확도 기준도 달라졌습니다. “퍼징의 효과를 유의미하게 개선할 수 있을 정도로만 정확하면 충분히 좋다"라고 말할 수 있게 된 것입니다.
허기홍 교수님은 이를 “우리는 퍼징을 뒷단 (backend)으로 삼는 정적분석 연구를 하고 있는 것이다” 라고 표현하셨습니다.
5. 결론: 분야를 넘나드는 연구의 가치와 기회
정적 분석과 퍼징이라는 두 기술을 결합함으로써, 여러 가지 재미있는 연구 주제들을 찾아낼 수 있었습니다.
물론 여러 분야를 넘나드는 연구는 성과를 내기까지 긴 호흡이 필요하기도 합니다. 하지만 이처럼 여러 분야를 넘나드는 시도가 굉장히 흥미롭고 재미있는 연구 주제와 기회들을 가져다줄 수 있다고 생각합니다.
정보 보안, 특히 제가 집중했던 소프트웨어 보안 분야는 어떻게 보면 PL과 먼 듯하면서도, 막상 경험해 보면 굉장히 가깝고 밀접하게 관련되어 있는 ‘이웃 분야’입니다. 취약점 자동 탐지 외에도 소프트웨어 보안 분야의 다양한 주제들에 PL의 이론과 기술이 적용되었을 때 재미있는 연구가 될 수 있는 것들이 많습니다.
(연구 주제 탐색에 대해) 학계에서 연구할 때는 항상 실용성에만 초점을 맞추기는 어렵습니다. 새로운 아이디어를 검증하고 싶다면, 꼭 처음부터 어렵고 복잡한 벤치마크를 대상으로 삼을 필요는 없다고 생각합니다. 저도 지금은 그 가운데 지점에서 연구 주제를 많이 탐색하는 편입니다.