효율적인 해킹 교육...끊임없이 고민해야 할 보안 분야의 핵심 연구과제
[보안뉴스= 차상길 KAIST 사이버보안연구센터 센터장] 보안을 공부하는 사람들은 누구나 공감하는 것이 하나 있을 것입니다. 바로 직접 해킹을 해보는 것이 보안의 개념을 습득하는 가장 효율적인 방법이라는 것이죠. 보안은 실용적인 학문이기에 더욱 그렇습니다.

[이미지=utoimage]
그런데 보안을 교육하는 교육자의 입장으로서는 한 가지 난감한 점이 있는데, 해킹을 실습하는 환경을 구축하는데 너무나 많은 시간과 노력이 필요하다는 것입니다. 따라서 일반적으로는 문제풀이 방식의 실습을 진행하는 경우가 많습니다. 예를 들어 서버에 취약한 서비스를 구동해놓고 일방적으로 공격만을 진행하는 형태의 실습이 대부분이죠. 하지만, 이러한 공격 위주의 실습만을 해서는 네트워크 기반의 침입탐지 기법 등의 방어에 관한 실습을 할 수가 없습니다.
제가 카이스트에 처음 부임했을 당시, 이러한 교육방식에 회의를 느끼고 수업시간에 실시간 공격-방어가 가능한 실습을 진행했던 적이 있습니다. 하지만, 뜨거운 열정만으로 시작한 실습수업은 참담한 실패로 끝났습니다. 밤새도록 조교들과 서버 환경을 구축했지만 결국 약속한 시각에 실습을 시작할 수 없었고, 우여곡절 끝에 시작한 실습 도중에는 예상치 못했던 다양한 문제들이 속출했죠.
학기가 끝나고 난 뒤 저는 생각했습니다. 어떻게 하면 효율적으로 공격-방어에 관한 실습을 할 수 있을까? 아니나 다를까, 그해 겨울 CCS에서는 저와 비슷한 고민을 하던 메릴랜드의 연구자들이 “Build it, Break it, Fix it”이라는 제목의 논문을 발표했습니다. 논문에서 제안한 수업방식은 수강생을 두 개의 팀으로 나누어 한 팀에서는 소프트웨어 개발을, 그리고 다른 한 팀에서는 개발된 소프트웨어의 버그를 찾고, 버그를 보고하면 개발팀에서는 해당 버그를 수정하는 식으로 진행하는 것이었습니다. 이렇게 되면 학생들 스스로 소프트웨어 개발의 모든 과정, 다시 말해 개발과 테스트, 디버깅에 이르는 전 과정을 경험해볼 수 있다는 것입니다.
저는 그 아이디어에 깊게 공감했지만, 한 가지 아쉬운 점이 있었습니다. 소프트웨어 공학의 관점에서는 분명히 좋은 아이디어였지만, 보안의 관점에서 볼 때는 해킹을 실습하는 부분과 실시간으로 공격과 방어를 경험하는 부분이 생략되어 있었기 때문입니다. 그래도 여기서 배운 하나의 교훈은 실습에 활용할 문제를 학생들이 스스로 만들 수 있도록 유도하는 것이 중요하다는 것입니다. 교육자로서는 콘텐츠 생성의 부담을 획기적으로 덜 수 있으니까요.
그렇다면 보안에 직접 연관된 해킹 실습수업을 하되, 수업 운영의 부담을 획기적으로 덜 방법은 없을까요? 이에 대해 학생들과 논의하던 중 소프트웨어 형상관리에 사용하는 Git과 암호알고리즘을 적절히 결합해 복잡한 네트워크 구축 없이 오로지 Git이라는 플랫폼 위에서 공격과 방어를 실습할 수 있는 해킹대회 운영 방법을 고안해내게 됩니다. 핵심은 공격자가 보낸 공격 페이로드(payload)를 운영자와 방어자의 공개키로 암호화해 실제 내용을 운영자 또는 방어자만이 확인할 수 있도록 하되, 페이로드를 제외한 공격의 기록은 공개된 Git 저장소에 저장하여 모두가 실시간으로 대회의 진행상황을 확인할 수 있도록 하는 것입니다. 또한, 방어의 관점에서는 학생이 본인에게 들어온 공격을 직접 확인하고, 그에 대한 패치를 Git에 적용함으로써 공격과 방어를 동시에 수행할 수 있습니다. 해당 논문은 보안교육에 대한 전문학회인 USENIX ASE(Advances in Security Education)에 발표되기도 했습니다.
하지만 저희가 제안한 아이디어에도 여전히 풀리지 않는 문제점이 있습니다. 비록 교육자의 수업운영 부담이 획기적으로 개선되기는 했지만, 학생들이 만들어내는 문제들을 비슷한 난이도로 맞추기 위해서는 문제 생성의 모든 과정에 교육자가 적극적으로 개입해야만 합니다. 여전히 강의형 수업과는 비교할 수 없을 만큼 높은 비용과 에너지가 필요한 것이죠.

▲차상길 카이스트 사이버보안연구센터장[사진=KAIST CSRC]
이렇듯 효율적인 해킹 교육에 대한 부분은 앞으로도 끊임없이 고민해야 할 보안 분야의 핵심 연구과제입니다. 보안이라는 학문이 생겨난 지 얼마 되지 않아서인지 우리나라 학계에서는 여전히 교육보다 기술에 더 많은 관심이 있는 것이 사실이지만, 올바른 후학양성 없이는 기술 연구가 오래갈 수 없다고 생각합니다. 해킹의 본질이 무언가를 파고들어 연구하는데에 있듯, 이제는 우리가 해킹 교육을 “해킹”할 때가 아닌가 합니다. 앞으로 우리나라의 더 많은 보안 연구자들이 효율적인 보안 교수법에 대해 공유하고 연구할 수 있는 환경이 만들어지기를 바라며 이 글을 마칩니다.
[글_ 차상길 KAIST 사이버보안연구센터 센터장]
<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>