메뉴 건너뛰기

System Security Research Center

AI Cyber Security

퍼징의 분류와 AI 관점에서의 의의

SSRC 2020.02.26 18:39 조회 수 : 75

원문 URL: https://www.boannews.com/media/view.asp?idx=90525&fbclid=IwAR3lMhx2nY_9Ad0BgKFg-8x7eSv6ehkmOlXB1QQJN_LiH0KRIroVHr4gYJU

 

오늘날의 퍼징은 크게 세 가지로 나눌 수 있습니다. 흔히 블랙박스, 화이트박스, 그리고 그레이박스 퍼징으로 나누는데, 그 기원은 소프트웨어 공학의 출발점과 맞닿아 있습니다.
 

[이미지=utoimage]


전통적으로 소프트웨어 테스팅(Testing) 방법론은 블랙박스와 화이트박스 두 가지 형태가 있으며, 그 핵심 차이는 테스팅 과정에서 프로그램 내부의 정보를 분석하느냐의 여부에 있습니다. 블랙박스 테스팅에서는 마치 프로그램을 속이 보이지 않는 검은 상자로 간주하고 거기에 들어가고 나오는 입출력을 관찰하는 것만으로 진행하지만, 화이트박스 테스팅에서는 프로그램을 유리 상자와 같이 투명하게 생각해 내부 정보를 훤히 들여다보면서 검사를 진행합니다.

상식적으로 보면 그레이박스는 블랙박스와 화이트박스의 중간 지점에 있을 텐데, 프로그램 속을 들여다보는 것과 그 속을 보지 않는 것의 중간이 무엇인지 떠올리기가 쉽지는 않습니다. 보긴 보되 살짝만 본다는 개념으로 이해하자니, 그 실체가 무엇인지 설명하기가 매우 어렵습니다. 엄밀히 말하면 그레이박스는 편의로 인해 만들어진 용어일 뿐이며, 전통적인 소프트웨어 공학의 관점에서 보면 그레이박스는 화이트박스의 한 갈래에 불과합니다.

그레이박스 퍼징은 전통적인 화이트박스 퍼징과는 달리 프로그램으로부터 최소한의 정보만을 효율적으로 얻어내고자 노력합니다. 예를 들어, 화이트박스에서는 변수에 들어올 수 있는 값의 범위를 알아내고자 한다면, 그레이박스에서는 해당 변수를 포함하는 함수가 실행되는지 여부를 판별하는 것이죠. 바꿔 말하면, 그레이박스는 화이트박스보다 더욱 추상화된 정보를 활용하는 것뿐입니다.

블랙박스 퍼징도 이러한 관점에서 보면, 프로그램에서 얻을 수 있는 정보의 추상화 정도가 더욱 심화된 것으로 이해할 수 있습니다. 블랙박스 퍼징에서 관찰할 수 있는 프로그램의 입출력 정보는, 프로그램이 정상 동작을 한다 또는 하지 않는다를 판별할 수 있는 추상화된 정보일 뿐이죠.

그러면 이러한 정보의 추상화 정도가 인공지능의 관점에서는 어떤 의미를 지닐까요? 많은 사람이 블랙박스 퍼징은 인공지능과 거리가 멀고 화이트박스 퍼징(또는 그레이박스 퍼징)만이 인공지능과 관련 있다고 생각하지만, 실상은 그렇지 않습니다. 앞에서도 보았듯이 블랙박스 퍼징과 화이트박스 퍼징(또는 그레이박스 퍼징)의 차이는 정보의 추상도 차이일 뿐이지, 이것이 인공지능 알고리즘을 적용할 수 있느냐의 여부를 결정하지는 않기 때문입니다.

예를 들어, 블랙박스 퍼징에 강화학습(Reinforcement Learning)을 적용해 봅시다. 강화학습 분야에서 매우 유명한 멀티암드 밴딧(Multi-armed Bandit) 문제는 ‘슬롯머신이 N개 주어져 있을 때, N개의 손잡이를 어떤 전략적 순서와 방식으로 당겨야만 최고의 이득을 얻을 수 있는지’를 알아내는 인공지능 문제입니다. 여기서 슬롯머신을 프로그램이라 생각하면, N개의 프로그램에서 주어진 시간 동안 최대한의 취약점을 찾아내는 것이 목표가 되겠죠. 이것은 N개의 프로그램이 아니라 N개의 시드, N개의 다른 환경 등 다양한 테스팅 시나리오에 적용 가능합니다. 실제 블랙박스 퍼징에 멀티암드 밴딧 알고리즘을 적용한 사례가 2013년도 CCS 학술대회에 최초 발표됐고, 그 이후로 수많은 기술이 연구되고 있습니다.
 

▲차상길 카이스트 사이버보안연구센터장[사진=KAIST CSRC]


이렇듯 퍼징의 방법론이 인공지능의 사용 여부를 판가름하지는 않기 때문에, 단순히 블랙박스 퍼징은 의미가 없다던가, 그레이박스 퍼징만이 답이라던가 하는 식의 논의는 바람직하지 않습니다. 오히려 각 퍼징 방법론의 장단점을 이해하고, 상황에 맞게 그것을 사용하는 것이 더 중요하다 할 수 있겠습니다.

퍼징은 그 역사에 비해 학술적 연구가 시작된 지 오래되지 않은 분야이므로, 쏟아지는 기술과 도구의 의미를 바르게 이해하기 위해서는 그 기원과 근본 원리에 대해 체계적으로 고찰하는 것이 매우 중요합니다. 이번 연재를 통해 소프트웨어 보안 분야에 만연한 고정관념과 잘못된 인식이 바로잡히기를 희망하며 글을 마칩니다.

위로