소프트웨어 개발에 사용되는 스니펫들 점검하면 취약점도 나온다?

2021-05-04 16:51
  • 카카오톡
  • 네이버 블로그
  • url
코드의 조각들이 요즘 개발 프로젝트에서는 널리 활용된다. 그런데 이 스니펫들을 기능별로 모아 검사함으로써 일관되지 않은 부분을 찾아내면 버그와 취약점이 나올 확률이 높다고 한다.

[보안뉴스 문가용 기자] 소프트웨어 개발 방법론에 있어서 일관적으로 반복 생산할 수 있는 체계는 가장 이상적이고 효율적인 것으로 꼽힌다. 또한 개발 프로젝트의 단위가 자꾸만 커지면서 어느 새 ‘필수적’인 것이 되어버렸다. 이런 상황에서 노스이스턴대학(Northeastern University)의 연구원들이 일관적이지 않은 프로그래밍 요소들을 탐지함으로써 버그와 취약점을 잡아낼 수도 있다고 주장하고 나섰다.


[이미지 = Pixabay]

여기서 연구원들이 말하는 ‘일관적이지 않은 프로그래밍 요소’란 ‘코드 스니펫(code snippet)’을 말한다. 코드 스니펫은 ‘코드 조각’으로도 번역되는데, 프로그래밍 된 코드의 작은 일부를 가리키며, 다양한 프로그래밍 프로젝트에서 재사용 가능하다. 다만 특정 기능을 수행하고 문제를 해결하는 데 있어 전체 프로그래밍의 방법 및 접근법이 달라질 수(즉 일관적이지 않을 수) 있다.

노스이스턴대학의 연구원들의 주장은 이런 코드 스니펫들과 나머지 코드 요소들을 비교하여 일관적이지 않은 부분들을 파악함으로써 보안 문제 중 일부가 해결될 수 있다는 것이다. 이러한 접근법을 연구원들은 픽스(FICS)라고 부른다. ‘기능적으로 유사하지만 일관성이 부족한 코드 스니펫(Functionally-similar yet Inconsistent Code Snippet)’이라는 말의 준말이다. 그리고 실제 픽스를 사용해 다섯 개의 오픈소스 프로젝트를 분석해 22개의 새로운 취약점과 버그를 찾아냈다고 한다.

픽스가 기존 코드 분석 방법론들을 대체할 혁신적인 코드 점검법인 것은 아니다. 연구원들도 이 점을 강조하고 있다. 그저 코드를 분석해 취약점을 찾아내야 하는 분석가들에게 새로운 무기가 하나 더 생겼다는 차원에서 연구 성과를 바라볼 수 있다고 연구원 중 한 명인 만수르 아마디(Mansour Ahmadi)는 강조한다. 아마디는 현재 아마존의 보안 엔지니어이기도 하다.

“코드의 정적 분석과 같은 방법론에 있어서 제일 중요한 건 ‘찾아내려는 취약점이 기존에 발견된 취약점이어야 한다’ 혹은 ‘정적 분석 방법론에 입력된 패턴과 맞아떨어져야 한다’는 것입니다. 그런데 시스템에 이전에 알려지지 않은 취약점이 있다고 하면 어떨까요? 정적 분석으로는 찾아내지 못합니다. 하지만 ‘픽스’를 사용하면 잡아내는 게 가능합니다.”

픽스는 머신러닝을 기반으로 한 기술이다. 다만 다른 유사 프로젝트들과 달리 ‘패턴’ 혹은 ‘시그니처’를 찾아내는 게 인공지능의 목적은 아니다. 특정 기능을 수행하되 비슷한 기능을 가진 다른 요소들과 다른 방법 혹은 접근법을 가지고 있는 스니펫들을 찾아내는 것이 목적이다. “바운드 확인을 하지 않는 단순 버그부터 UaF와 같은 복잡한 버그까지, 코드베이스에 버그가 없는 코드 스니펫과, 그와 유사하지만 버그가 많은 코드 스니펫이 공존하고 있다면 픽스를 통해 이 버그들을 찾아내는 건 가능한 일입니다.”

이러한 ‘조건’ 때문에 픽스가 잘 통하는 프로젝트가 있고 그렇지 않은 프로젝트가 있다. 잘 통하는 건 당연히 여러 스니펫이 활용된 ‘어느 정도 규모를 갖춘’ 프로젝트들이다. “여러 개발자들이 만들어 놓은 요소들을 짜깁기 하는 것이 요즘 소프트웨어 개발 방식이죠. 그런 짜깁기 요소가 많이 가미된 프로젝트일수록 픽스의 방법론은 높은 정확도를 보입니다.”

픽스는 그 자체로 ‘보안 방법론’으로서 개발된 것은 아니다. 취약점보다는 버그를 찾는 것에 더 적합하기도 하다. 다만 그러한 과정 중에 취약점이 발견되는 게 꽤나 높은 확률로 반복되었다는 게 연구원들의 설명이다. “실험을 진행하면서 메모리 유출, 사용자 입력값 확인, 올바르지 않은 타이프캐스팅 등을 찾아냈습니다. 그리고 몇 개에는 CVE 번호를 부여해 달라고 신청까지 한 상태입니다.”

이번 연구 결과는 올해 8월 열릴 유즈닉스 시큐리티 컨퍼런스(USENIX Security Conference)를 통해 상세히 발표될 예정이다. 관련 내용은 여기(https://www.usenix.org/conference/usenixsecurity21/presentation/ahmadi)서 조금 더 열람할 수 있다.

현재 연구원들은 “픽스의 작동 원리 때문에 잘못된 탐지 결과가 나오는 경우”를 놓고 좀 더 심도 깊은 연구를 진행 중에 있다고 한다. 이는 개발자가 ‘버그가 많은’ 혹은 ‘올바르지 않은’ 스니펫을 정상 스니펫보다 더 많이 사용한 경우다. 그럴 때면 머신러닝 알고리즘이 비정상을 정상으로 인지할 수 있다. 즉 오염된 학습 데이터가 주입됨으로써 잘못된 결과가 나오는 것이다. “하지만 현재까지의 조사 결과, 이런 사례는 극히 드문 것으로 보입니다. 저희가 조사했을 때 딱 한 경우만 여기에 해당되는 것으로 분석됐습니다.”

3줄 요약
1. 코드 스니펫들에서 버그를 손쉽게 찾아내는 방법이 새롭게 개발됨.
2. 이 방법의 이름은 ‘픽스’라고 하는데, 의외로 취약점을 찾아내는 데에도 도움이 됨.
3. 정확한 내용은 8월에 발표될 예정이며, 현재는 특이한 경우의 수들이 연구되고 있음.

[국제부 문가용 기자(globoan@boannews.com)]

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

헤드라인 뉴스

TOP 뉴스

이전 스크랩하기


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

    • 가시

    • 인콘

    • 엔텍디바이스코리아

    • 이노뎁

    • 다봄씨엔에스

    • 아이디스

    • 씨프로

    • 웹게이트

    • 엔토스정보통신

    • 하이크비전

    • 한화비전

    • ZKTeco

    • 비엔에스테크

    • 비엔비상사

    • 원우이엔지
      줌카메라

    • 지인테크

    • 그린아이티코리아

    • 이화트론

    • 다누시스

    • 테크스피어

    • 렉스젠

    • 슈프리마

    • 혜성테크윈

    • 시큐인포

    • 미래정보기술(주)

    • 효성인포메이션시스템

    • 비전정보통신

    • 경인씨엔에스

    • 지오멕스소프트

    • 성현시스템

    • 디비시스

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

    • 동양유니텍

    • 이앤엠솔루션

    • 세연테크

    • 트루엔

    • 위트콘

    • 투윈스컴

    • 이에스티씨

    • (주)우경정보기술

    • 주식회사 에스카

    • 이오씨

    • 넥스트림

    • 넷앤드

    • 에스지앤

    • 베스핀글로벌

    • 체크막스

    • 프렌트리

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

    • 에프에스네트워크

    • 앤디코

    • 케이제이테크

    • 알에프코리아

    • 사라다

    • 아이엔아이

    • 포엠아이텍

    • 새눈

    • 창성에이스산업

    • 한국씨텍

    • 태정이엔지

    • 네티마시스템

    • 에이앤티코리아

    • 유투에스알

    • 구네보코리아주식회사

    • (주)일산정밀

    • 이스트컨트롤

    • 에스에스티랩

    • 에이앤티글로벌

    • 주식회사 알씨

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

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

    • 유에치디프로

    • 두레옵트로닉스

    • 엘림광통신

    • 티에스아이솔루션

    • 포커스에이치앤에스

    • 보문테크닉스

    • 휴젠

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

    • 글로넥스

    • 신화시스템

    • 세환엠에스(주)

    • 유진시스템코리아

    • 카티스

    • 유니온커뮤니티

Copyright thebn Co., Ltd. All Rights Reserved.

MENU

회원가입

PC버전

닫기