[CSRC@KAIST 차세대보안R&D리포트] 퍼징과 인공지능

2020-08-06 12:44
  • 카카오톡
  • 네이버 블로그
  • url
퍼징, 초기에는 임의의 입력값 무작위 대입
2000년대 후반 ‘배움’ 과정이 도입되면서 AI 알고리즘으로 자리잡은 퍼징


[보안뉴스=차상길 카이스트 사이버보안연구센터장] 예나 지금이나 소프트웨어의 취약점을 찾는 것은 해커들의 지상목표입니다. 취약점을 찾는 데에서 대부분의 공격과 방어가 시작되기 때문이죠. 취약점을 자동으로 찾기 위해 가장 널리 쓰이는 방법이 바로 퍼징(fuzzing)입니다. 퍼징은 주어진 프로그램을 자동으로 분석하여 취약점을 찾아내는 기술을 통칭합니다.


[이미지=utoimage]

퍼징에 대한 수요가 나날이 증가하면서 강연 요청도 끊이질 않는데요. 강연 때마다 받는 질문 중의 하나가 바로 퍼징을 인공지능과 접목한 연구가 있느냐 입니다. 요즘은 인공지능이 워낙 화두이다 보니, 그러한 질문이 나오는 것이 어찌 보면 당연할 수 있지만, 이 질문은 사실 잘못된 질문입니다. 왜냐하면, 퍼징은 그 자체로 인공지능 알고리즘이기 때문입니다.

하지만, 놀랍게도 퍼징을 활용하는 사람들조차 퍼징이 인공지능과 어떤 관계에 있는지 잘 알지 못하는 경우가 많습니다. 물론 인공지능을 한마디로 정의하기는 어렵습니다만, 전통적인 알고리즘과 인공지능 알고리즘의 핵심 차이는 바로 ‘배움’의 과정이 존재하느냐에 있다고 볼 수 있습니다. 전통적인 알고리즘이 고정된 계산 절차를 기술하는 것이라면, 인공지능에서는 이러한 계산 절차가 학습을 통해 변형될 수 있습니다. 즉, 알고리즘이 스스로 상황에 따라 변화해 나가는 것이죠.

그렇다면 퍼징은 스스로 배우는 과정이 존재할까요? 요즘 가장 널리 사용되는 공개형 퍼저(fuzzer)인 AFL만 보더라도 그 답을 알 수 있습니다. AFL은 내부적으로 유전 알고리즘을 사용하고 있는데, 이는 대표적인 인공지능 알고리즘 중 하나입니다. 동작 방식은 다음과 같습니다. 먼저 대상 프로그램을 임의의 입력을 통해 실행하면서 실행의 양상을 관측합니다. 그리고 관측된 정보를 바탕으로 가장 취약점에 도달할 가능성이 큰 입력을 선별해냅니다. 선별된 입력을 변형(진화)하면서 프로그램을 재실행하고, 이 과정을 취약점을 찾을 때까지 반복합니다. 여기서도 알 수 있듯이, 퍼징은 학습을 통해 변화하는 인공지능형 알고리즘입니다.

그렇다면 왜 사람들은 퍼징과 인공지능이 다르다고 생각할까요? 아마도 이것은 퍼징이라는 단어가 갖는 역사적 의미 때문일 것입니다. 퍼징은 1980년대에 Barton Miller 교수에 의해 처음 등장한 단어이고, 그 당시의 퍼징은 임의의 입력값을 무작위로 대입하여 프로그램의 비정상 행위(예를 들면 크래쉬)를 찾아내는 방법을 의미했습니다. 이러한 퍼징의 방법론은 너무나 실용적이었기 때문에 약 30여 년간 변함없이 많은 보안전문가와 해커들에 의해 지속해서 사용되었습니다. 어찌 보면 C/C++ 언어가 갖는 근원적인 메모리 취약성 때문에 이러한 단순한 방법으로도 수많은 취약점을 찾아낼 수 있었던 것일지도 모릅니다.

이러한 퍼징의 의미가 변화하기 시작한 것은 2000년대 후반부에 이르러서입니다. 그동안 해왔던 단순한 퍼징만으로는 깊이 숨어있는 취약점을 찾아내기가 어려웠고, 이를 개선하기 위해서 ‘배움’을 도입하는 시도가 나타난 것입니다. 그 대표주자로는 2006년에 블랙햇에서 발표된 Sidewinder가 있습니다. 여기서부터 진화(evolution)라는 표현이 퍼징에 등장하기 시작했고, 그 뒤로는 기존의 ‘단순 무식한’ 형태의 퍼저와 진화된 퍼저를 구분하기 위해 스마트퍼저(smart fuzzer), 그레이박스 퍼저(grey-box fuzzer) 등의 다양한 이름이 등장하죠.

하지만 이러한 개념이 나온 지 10년이 넘었음에도 사람들의 마음 속에는 ‘퍼징 = 단순 무작위 테스트’라는 관념이 자리 잡고 있습니다. 물론 무작위 테스트가 여전히 유효한 경우도 존재하지만, 최근의 퍼징 연구는 대부분 인공지능형 알고리즘에 초점이 맞추어져 있습니다. 예를 들면 “어떻게 배울 것인가?”, 또는 “배운 정보를 어떻게 활용하여 입력값을 생성할 것인가?” 등의 질문에 대한 답을 찾는 연구가 활발합니다.


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

따라서 이러한 시대적 변화에 발맞추어 퍼징에 대한 시각도 바꿀 필요가 있습니다. 저는 항상 퍼징을 생각할 때 인공지능 분야의 전통적 주제인 미로 찾기 로봇을 떠올립니다. 복잡한 미로에서 취약점(탈출구 또는 보물)을 찾아내는 것이 퍼징의 목표이며, 다양한 시행착오를 통해 프로그램의 구성(미로의 생김새)을 배워나가면 어느새 취약점을 찾아낼 수 있습니다. 실제로도 전통 인공지능 알고리즘에서 영감을 얻어서 퍼징 분야의 문제를 해결하는 경우가 종종 있죠.

모든 학문은 진화하고 있고, 퍼징도 마찬가지입니다. 퍼징은 이제 인공지능 알고리즘입니다.
[글_차상길 카이스트 사이버보안연구센터장]

<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>

연관 뉴스

헤드라인 뉴스

TOP 뉴스

이전 스크랩하기


과월호 eBook List 정기구독 신청하기

    • 지인테크

    • 인콘

    • 엔텍디바이스코리아

    • 지오멕스소프트

    • 다봄씨엔에스

    • 아이디스

    • 씨프로

    • 웹게이트

    • 엔토스정보통신

    • 하이크비전

    • 한화비전

    • ZKTeco

    • 비엔에스테크

    • 비엔비상사

    • 원우이엔지
      줌카메라

    • 비전정보통신

    • 트루엔

    • 이화트론

    • 다누시스

    • 테크스피어

    • 렉스젠

    • 슈프리마

    • 혜성테크윈

    • 시큐인포

    • 미래정보기술(주)

    • 효성인포메이션시스템

    • 투윈스컴

    • 경인씨엔에스

    • (주)우경정보기술

    • 성현시스템

    • 디비시스

    • 다후아테크놀로지코리아

    • 유니뷰

    • 이오씨

    • 한국씨텍

    • 세연테크

    • 위트콘

    • 구네보코리아주식회사

    • 주식회사 에스카

    • 유에치디프로

    • 포엠아이텍

    • 넥스트림

    • 트렐릭스

    • 엔피코어

    • 투씨에스지

    • 블루문소프트

    • 엑소스피어랩스

    • 시엔스

    • 워터월시스템즈

    • 신우테크
      팬틸드 / 하우징

    • 에프에스네트워크

    • 네이즈

    • 케이제이테크

    • 셀링스시스템

    • 사라다

    • 아이엔아이

    • (주)일산정밀

    • 새눈

    • 앤디코

    • 유투에스알

    • 태정이엔지

    • 네티마시스템

    • 에이치지에스코리아

    • 에이앤티코리아

    • 미래시그널

    • 엘림광통신

    • 모스타

    • 주식회사 알씨

    • 에스에스티랩

    • 에이앤티글로벌

    • 지와이네트웍스

    • 현대틸스
      팬틸트 / 카메라

    • 지에스티엔지니어링
      게이트 / 스피드게이트

    • 티에스아이솔루션

    • 두레옵트로닉스

    • 엔에스티정보통신

    • 보문테크닉스

    • 포커스에이치앤에스

    • 엔시드

    • 동양유니텍

    • 메트로게이트
      시큐리티 게이트

    • 엠스톤

    • 글로넥스

    • 유진시스템코리아

    • 카티스

    • 세환엠에스(주)

Copyright thebn Co., Ltd. All Rights Reserved.

MENU

회원가입

PC버전

닫기