[CSRC@KAIST 차세대보안R&D리포트] 프로그램 합성, 보안, 그리고 인공지능

2020-11-19 10:26
  • 카카오톡
  • 네이버 블로그
  • url
안전한 코딩을 위한 프로그램 합성...휴먼 에러는 물론 난독화 코드 해제에 활용

[보안뉴스= 차상길 KAIST 사이버보안연구센터 센터장] 컴퓨터의 활용에는 프로그래밍이 필수적입니다. 컴퓨터가 인류와 역사를 함께한 이후부터 프로그래밍의 중요성은 날로 커져만 가는데요, 이러한 프로그래밍을 사람이 아닌 컴퓨터가 할 수 있을까요?


[이미지=utoimage]

사실, 이에 관한 질문은 이미 60여 년 전부터 시작됐으며, 최근에는 프로그램 합성(Program Synthesis)이라는 분야를 통해 급성장했습니다. 해마다 열리는 세계 최대의 소프트웨어공학 학회인 ICSE에서는 최근 10년간 소프트웨어공학 분야에서 가장 영향력 있었던 논문을 뽑아 ‘Most Influential Paper Award’라는 상을 주는데, 올해에는 프로그램 합성에 관한 논문이 그 영예를 차지하기도 했죠.

프로그램 합성이란 말 그대로 사람이 원하는 프로그램을 자동으로 만들어내는 기술을 일컫습니다. 예를 들어 입력으로 주어진 숫자 배열을 정렬하는 프로그램을 만들고 싶다고 가정해봅시다. 일반적으로는 사람이 직접 타자를 입력해 소스 코드(여기서는 정렬 알고리즘)를 작성하게 되지만, 프로그램 합성을 활용하면 원하는 프로그램의 명세나 사용례를 기반으로 컴퓨터가 자동으로 해당 소스 코드를 ‘구현’하게 됩니다.

프로그램 합성 방법 중 최근 들어 많은 주목을 받는 것이 프로그램의 사용례를 바탕으로 한 기술입니다. 앞서 말한 예제를 기준으로 본다면, 프로그램의 입력인 숫자 배열과 그에 해당하는 출력 값인 숫자 배열의 입출력 쌍이 하나의 사용례가 되는 것이죠. 이러한 입출력의 예시를 여러 개 만들고, 그러한 예시를 모두 만족시키는 프로그램을 합성해내는 기술이 바로 최근 10년간 소프트웨어공학 커뮤니티에서 가장 영향력 있던 기술이었습니다.

그런데 재미있는 점은 사용례 기반의 프로그램 합성은 우리가 흔히 알고 있는 기계학습과 그 동작 방식이 매우 유사하다는 것입니다. 기계학습에서는 다양한 학습데이터로부터 하나의 모델을 생성해 내는데, 모델은 그야말로 하나의 프로그램에 불과합니다. 학습데이터와 유사한 입력을 받으면 그에 대한 출력값을 반환하죠. 즉, 기계학습은 모델이라는 프로그램을 만들어내는 기술입니다. 앞서 소개한 프로그램 합성 역시, 사용례라 불리는 학습데이터로부터 하나의 모델을 생성해내는 과정입니다. 다만, 그 모델의 구조적 형태가 프로그래밍 언어일 뿐이죠. 크게 보면, 프로그램 합성은 기계학습의 또 다른 적용 사례일 수 있습니다.

그렇다면 왜 자동으로 프로그램을 작성하려는 것일까요? 사람이 만들어낸 소스 코드는 오류(버그)에서 벗어나지 못합니다. 앞선 예제에서, 배열의 시작점을 0이 아닌 1로 간주해서 배열의 범위를 벗어난 계산을 하게 된다거나, 정렬의 방향을 오름차순이 아닌 내림차순으로 하는 등의 실수가 항상 발생할 수 있다는 겁니다. 하지만, 컴퓨터가 프로그램을 작성한다면, 이러한 실수가 나타나지 않을 것이라 기대할 수 있습니다. 즉, 프로그램 합성을 활용하면 더욱 안전한 프로그램을 만들 수 있습니다.

프로그램 합성은 안전한 코딩 외에도 다양한 보안 연구에 적용되고 있습니다. 그 대표적인 사례가 바로 난독화된 코드의 해제입니다. 악성코드에는 역공학을 어렵게 하려고 다양한 난독화 기술을 사용합니다. 여기서 주목할 점은 난독화가 적용되기 이전의 원본 코드와 난독화 이후의 코드는 모두 똑같이 동작해야 한다는 것입니다. 즉, 하나의 값을 원본 코드와 난독화된 코드에 각각 입력해도 항상 같은 출력값을 얻어야만 하는 것이죠. 이러한 관점에서 본다면, 난독화된 코드에서 구할 수 있는 입출력의 쌍을 통해 프로그램을 합성해낼 수 있을 것이고, 이렇게 합성된 프로그램은 난독화된 코드와 같은 동작을 하면서도 보다 간결한 코드로 나타날 것입니다. 즉, 프로그램 합성을 통하면 난독화를 일반적으로 해소할 수 있는 것입니다.


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

지난 칼럼에서 살펴본 퍼징이나 프로그램 합성 모두 그것을 보는 관점에 따라 인공지능과 같은 형태, 같은 동작 방식을 갖습니다. 하지만 안타깝게도 우리 사회는 인공지능에 얼마나 포괄적인 의미가 있는지 관심을 두지 않은 채, 오로지 인공지능이라는 그 키워드에만 집중하고 있습니다. 오죽하면 ‘인공지능’이라는 키워드가 없으면 과제를 만들기 어렵다는 우스갯소리마저 나오고 있습니다. 하지만, 시야를 조금만 넓히면 우리가 하는 수많은 컴퓨터 과학, 컴퓨터 보안의 기술들이 이미 인공지능의 범주에 포함되는 것이 아닐까 생각해 봅니다.
[글_ 차상길 KAIST 사이버보안연구센터 센터장]

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

연관 뉴스

헤드라인 뉴스

TOP 뉴스

이전 스크랩하기


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

    • 지인테크

    • 인콘

    • 엔텍디바이스코리아

    • 지오멕스소프트

    • 다봄씨엔에스

    • 아이디스

    • 씨프로

    • 웹게이트

    • 엔토스정보통신

    • 하이크비전

    • 한화비전

    • ZKTeco

    • 비엔에스테크

    • 비엔비상사

    • 원우이엔지
      줌카메라

    • 비전정보통신

    • 트루엔

    • 이화트론

    • 다누시스

    • 테크스피어

    • 렉스젠

    • 슈프리마

    • 혜성테크윈

    • 시큐인포

    • 미래정보기술(주)

    • 효성인포메이션시스템

    • 투윈스컴

    • 경인씨엔에스

    • (주)우경정보기술

    • 성현시스템

    • 디비시스

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

    • 유니뷰

    • 이오씨

    • 한국씨텍

    • 세연테크

    • 위트콘

    • 구네보코리아주식회사

    • 주식회사 에스카

    • 유에치디프로

    • 포엠아이텍

    • 넥스트림

    • 트렐릭스

    • 엔피코어

    • 투씨에스지

    • 블루문소프트

    • 엑소스피어랩스

    • 시엔스

    • 워터월시스템즈

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

    • 에프에스네트워크

    • 네이즈

    • 케이제이테크

    • 셀링스시스템

    • 사라다

    • 아이엔아이

    • (주)일산정밀

    • 새눈

    • 앤디코

    • 유투에스알

    • 태정이엔지

    • 네티마시스템

    • 에이치지에스코리아

    • 에이앤티코리아

    • 미래시그널

    • 엘림광통신

    • 모스타

    • 주식회사 알씨

    • 에스에스티랩

    • 에이앤티글로벌

    • 지와이네트웍스

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

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

    • 티에스아이솔루션

    • 두레옵트로닉스

    • 엔에스티정보통신

    • 보문테크닉스

    • 포커스에이치앤에스

    • 엔시드

    • 동양유니텍

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

    • 엠스톤

    • 글로넥스

    • 유진시스템코리아

    • 카티스

    • 세환엠에스(주)

Copyright thebn Co., Ltd. All Rights Reserved.

MENU

회원가입

PC버전

닫기