수천만줄 SW 보안결함 클릭 몇번으로 찾아

국제공동연구로 쉬운 코드분석툴 'IoT큐브' 개발

컴퓨팅입력 :2018/02/12 16:57    수정: 2018/02/14 08:14

국내외 보안전문가들의 협력으로 소프트웨어(SW) 코드 수천만줄에서 마우스 조작 몇 번으로 보안취약점을 찾아낼 수 있는 코드분석툴이 만들어졌다. 해당 툴의 기반기술은 유력 보안전문 학회에서 뛰어난 성능과 효율을 인정받았을뿐아니라, 삼성전자와 레드햇에서 실제 개발관련 업무에 활용하고 있다. 고려대학교 사물인터넷(IoT) SW보안국제공동연구센터(CSSA)에서 지난주 선보인 'IoT큐브(IoTCube)' 얘기다.

이희조 CSSA 센터장은 지난 9일 서울 고려대학교 안암캠퍼스 '제2회 IoT큐브컨퍼런스'에서 4차산업혁명과 사이버보안을 주제로 진행한 기조강연을 통해 IoT큐브의 연구 및 개발배경, 국제 연구 협력 네트워크, 활용방안과 실제 산업계 활용사례 등을 소개했다. CSSA는 2015년 6월 설립됐고 기술교류와 세미나 등 활동을 거쳐 2016년 4월 처음 IoT큐브 서비스를 공개했다.

2016년부터 3년째 서비스되고 있는 CSSA의 IoT큐브는 오픈소스SW를 활용한 SW결과물에서 개발자가 일일이 파악하지 못한 결함과 보안취약점 정보를 클릭몇번으로 확인할 수 있는 기능을 제공한다. [사진=Pixabay]

CSSA가 국제공동연구를 추진하게 된 배경은 이렇다. 이 센터장은 "사이버공간에서 생성된 데이터가 많아지고 이를 잘 활용할 수 있는 여지가 무궁무진하다"며 "드론과 자율주행차같은 신기술의 혁신뿐아니라 수요예측이 어려웠던 농산물 경작환경에 센서를 활용한 IoT 접목으로 수요예측과 유통혁신도 가능하다"고 운을 뗐다.

이어 "동시에 해킹이나 사이버침해에 따른 위협도 그만큼 많아질 수 있는데, 문제를 해결한 SW업데이트를 하는 것도 제약이 많고 불가능한 상황도 있을 수 있다"며 "작년 7월 미국 FDA에서 부정맥(불규칙한 심장박동) 환자 50만명이 몸에 넣고 다니는 의료기기에서 무선통신에 따른 오동작 가능성을 발견해 리콜을 명령했는데, 환자가 직접 의료기관에 가서 위험을 감수하고 해결해야 하는 사례였다"고 언급했다.

이희조 고려대 정보대학 교수 겸 CSSA 센터장, 현 대통령직속 4차산업혁명위원회 민간위원(공인인증서 의제리더)

CSSA는 해킹으로부터 시스템을 보호하는 'SW보안'과, 시스템의 오작동에 따른 외부환경의 피해를 예방하는 'SW안전'이 모두 IoT시대 다양화되는 SW개발환경의 숙제라고 판단했다. SW보안 문제나 SW안전 문제 모두 SW에 내재된 결함으로 인해 발생하는데, 이를 SW가 출시되기 전에 발견하지 못하면 관련 문제를 해결하기 어려워지는 측면이 크다고 지적했다. 이를 계기로 IoT SW보안 국제공동 연구가 추진됐다.

■ "누구나 쉽게 온라인으로 쓸 수 있는 SW코드분석 도구 목표"

IoT큐브는 CSSA 국제공동연구 활동의 상징적인 결과물이자 국내외서 실용성, 전문성을 인정받은 자동화된 SW취약점분석 서비스다. 누구든지 인터넷 웹사이트에 접속해 IoT큐브에서 제공되는 유형별 SW취약점분석 기능을 사용해볼 수 있다.

이 센터장은 "IoT큐브닷넷은 웹사이트(iotcube.net)를 통해 누구나 접근해 쉽게 쓸 수 있도록 구성했고 자동화, 확장성을 갖췄다"며 "오프라인 환경에서 수천만줄짜리 코드를 분석할 상용SW가 없는데, 우리는 (이정도 규모의 소스코드를 다루는 개발환경에서) 소스코드의 취약점을 빠르게 찾아줘야 한다는 걸 여러 목표 중 하나로 삼았고 훌륭하게 달성했다"고 자평했다.

그에 따르면 IoT큐브 인터넷 서비스는 지난 2016년 4월 처음 공개된 이후 2018년 2월까지 4천명이 사용했다. 100여가지 디바이스에서 500여개의 고유 오류(crash) 패킷을 확보했고, 200억줄의 소스코드에서 취약한 복제 코드(VCC) 30만건을 검출하기도 했다.

IoT큐브 웹사이트 메인화면

IoT큐브에서 제공하는 분석기술은 크게 블랙박스테스팅, 화이트박스테스팅, 네트워크테스팅, 3가지로 나뉜다. 이 센터장이 강조한 부분은 화이트박스테스팅 기술 영역이다. 여기엔 수천가지 오픈소스SW 프로젝트의 코드를 가져가 그대로 또는 일부 사용하는 SW개발환경에서 대응이 소홀해지기 쉬운 오리지널 프로젝트의 보안취약점을 간편하게 추적관리할 수 있는 도구가 제공되고 있는 걸로 묘사됐다.

화이트박스테스팅 기술 영역에선 이를 위해 주요 오픈소스SW 프로젝트에서 이미 발견된 취약점이나 CVE패치 정보를 이용한 VCC를 탐지하는 기능 '버디(VUDDY)'를 지원한다. CSSA 측은 보안전문 학회(IEEE Symp. on S&P)에 발표한 버디 활용 논문(VUDDY: A Scalable Approach for Vulnerable Code Clone Discovery)이 전문가들의 리뷰를 거쳐 정확도, 속도면에서 월등하다는 평가를 받았다고 전했다.

■ "항상 최신 오픈소스SW로 개발되지는 않는다…IoT큐브로 보완 가능"

버디라는 기능은 왜 중요할까. 현대적인 SW개발 환경 대다수가 오픈소스SW를 기본 바탕으로 삼고 있기 때문이다. 오리지널 오픈소스SW에 문제가 있을 경우, 이를 활용해 개발된 전혀 다른 SW에도 문제가 생긴다. 이를 개발 단계에서 미리 확인하지 못해 문제가 되기도 한다.

이 센터장은 "유명 오픈소스SW 2천600개 중 85%가량이 다른 (오픈소스) 프로젝트에서 복사한 코드를 보유하고 있는데, 이처럼 코드를 재사용함으로써 보안취약성이 급격히 확산전파되는 원인이 된다"며 "(버디는) 취약한 과거 SW 소스코드를 찾아내고, 현재 취약점이 있는지 마우스 클릭 조작으로 찾아주고, 변수명과 함수명이 바뀐 경우에도 추상화 기법을 통해 찾아낼 수 있다"고 강조했다.

[사진=Pixabay]

이어 "SW개발에서 많은 사람들이 오픈소스SW에 의존해 대략 70% 이상이 오픈소스 최신버전을 가져다 쓰고 그 위에 새로운 기능을 개발하는 방식을 쓴다"며 "그런데 '몽고DB'같은 프로젝트를 보면 최근 릴리즈된 버전이라 해도 거기 들어간 'PCRE'는 9개월 전에 나온 것, 'NMAP'에 들어간 PCRE는 아예 10년전 것을 쓰기도 하고, 이처럼 필요한 부분만 가져가 업데이트를 거의 반영하지 않는다"고 지적했다.

낯선 시스템SW 영역에서만 벌어지는 일이 아니다. 일반사용자들에게도 익숙한 스마트폰용 운영체제(OS) 안드로이드에 들어가는 코드는 리눅스의 일부다. 리눅스의 취약점은 여러 IoT 기기인 안드로이드웨어, 삼성전자의 타이젠, LG전자의 웹OS 등 파생 플랫폼으로 전파될 수 있다. 구글 크롬의 오픈소스버전인 크로미엄에서 발견된 취약점이 그에 기반한 네이버 웨일, 삼성인터넷 등에서도 나타날 수도 있다.

이 센터장은 "오픈소스 전문회사인 레드햇이 제공하는 레드햇리눅스, 센트OS에서조차 안정성을 중시한 개발로 인해 짧게는 3개월에서 길게는 5년전 코드를 재활용하면서, 필요한 부분만 패치하는 양상을 보인다"고 지적하며 "이런 개발방식에서는 IoT큐브를 활용함으로써 취약점 발생에 따른 조치와 추적 관리 및 패치할 부분을 찾아 보완할 수 있다"고 설명했다.

■ "KISA, 미국 I3컨소시엄, 삼성전자, 레드햇도 활용"

또 IoT큐브의 블랙박스테스팅 기술 영역에선 상태기반 퍼징 방식으로, 무선통신프로토콜 메시지 포맷의 취약성 유발 패킷을 만들어 준다. 여타 툴에 비해 속도가 빠르고 테스트 코드 범위가 커 비용 효율적이라고 CSSA 측은 밝히고 있다. 이 취약성 탐색툴은 블루투스용(bfuzz)과 무선랜용(wfuzz)으로 제공되고 있다. 지그비(Zigbee)와 Z웨이브(Zwave)용 테스트도구(zfuzz)는 오는 3월 추가를 목표로 개발 중이다.

[사진=Pixabay]

이밖에도 IoT큐브의 네트워크테스팅 기술은 SSL/TLS 보안프로토콜의 취약점을 자동탐지하는 도구(nscan)를 제공하고 있다. 하트블리드(HeartBleed)나 푸들(POODLE) 등 11가지 취약점을 자동으로 점검해 준다.

CSSA 측은 보안취약점 자동분석플랫폼의 사용자인터페이스(UI)와 상호작용 모델 설계 등 사용자경험(UX) 개선 연구도 병행 중이며 피드백 기반 인터페이스를 고도화할 계획이다.

이 센터장은 국내외 IoT큐브 활용 사례를 4가지 제시했다. 한국인터넷진흥원(KISA), 미국 인텔리전트 IOT 인티그레이터(I3) 컨소시엄, 삼성전자, 레드햇에서 각각 IoT큐브를 SW보안취약점 문제 해결에 관련된 업무에 활용 중이라는 설명이다.

KISA는 운영중인 사이버위협정보 분석공유시스템(C-TAS)과 DB를 연계해 보안취약점 정보를 공유하고 있다. I3컨소시엄은 지난해 11월 창립된 미국 로스앤젤레스(LA)와 USC가 주도하는 IoT테스트베드사업인데 그 시스템의 오픈소스SW 보안성 점검절차로 IoT큐브를 활용하고 있다. 삼성전자는 IoT큐브와 연동해 오픈소스 코드 안에 CVE 자동검사 및 패치정보 제공하는 시스템을 만들었다. 레드햇은 IoT큐브의 코드유사도 기반 보안취약점 탐지기능(cosim) 개발과 관련정보 교류 사례를 만들었다.

■ "국내외 대학 공동연구, 다수 보안전문가들과 협력"

이 센터장은 "화이트박스테스팅 도구 중 C 언어 기반 프로젝트의 소스코드내 취약점 검증도구(ctest)의 엔진기술을 소개하는 논문을 오는 5월 스웨덴 구텐베르크에서 열리는 소프트웨어공학국제회의(ICSE2018)에서 발표하기로 했다"며 "또 연내 블랙박스테스팅 도구 중 zfuzz 개발 이후 IoT큐브의 관련 기술을 KISA로 이전하고, IoT 혁신센터에 IoT큐브 기술관련 상설 전시공간을 운영할 예정"이라고 덧붙였다.

CSSA에 참여하고 있는 연구팀들.

이날 이 센터장은 IoT큐브 연구개발에 참여하고 있는 국내외 공조체제도 대략적으로 소개했다.

CSSA는 한국을 중심으로 미국, 영국, 유럽 지역 학계 전문가들과 손을 잡았다. SW취약점 자동분석기술로 유명한 미국 카네기멜론대학교(CMU) 데이빗 브롬리 교수, 시스템SW오류 자동검증기술을 보유한 영국 옥스퍼드대학교 샘 스태튼 교수, 네트워크프로토콜 보안기술을 보유한 스위스 취리히 연방공과대 애드리안 페릭 교수 연구팀의 참여를 이끌어냈다.

관련기사

이밖에 CMU의 PPP, 국내 코드레드(CodeRed) 등 해킹그룹과 국내 12개 대학 정보보호동아리연합 '인코그니토(Inc0gnito)'가 취약점분석 실무 전문가그룹으로 참여했고 한국전자통신연구원(ETRI), 포항공대, 충남대, 한국침해사고대응팀협의회(CONCERT), 김앤장, 스틸리언, 아이넷캅 등을 포함한 연구개발 자문위원단을 운영하고 있다.

CSSA를 위해 고려대학교에선 보안취약점탐지 및 검증 기술, 정적 분석 및 기호실행 분야, 무선네트워크 보안 표준, 정보 시각화 및 UI/UX 처리기술 분야 등 영역별 전문가가 참여했다. KISA에선 국가취약점 데이터베이스(DB) 활용 및 검증 기술 분야로 함께 해왔다.