자동 바이너리 리뷰
Stray에는 풀어야 할 퍼즐이 많지만 The Slums의 안전한 코드에 대한 신비한 암호를 해독하려면 진짜 괴짜의 도움이 필요합니다
스트레이 세이프 코드: 스트레이에서 주연을 맡은 주황색 얼룩무늬 고양이가 카메라를 바라보며 누워 있다.
Stray 안전 코드가 당신을 피하고 있습니까? Annapurna의 사이버펑크 고양이 게임은 수집품으로 가득 차 자동 바이너리 리뷰 있지만 일부는 다른 것보다 얻기 쉽습니다. The Slums에서 음악가의 오른쪽 골목길을 탐험했다면 쓰레기 더미 아래 반쯤 묻혀 있는 안전한 곳을 우연히 발견했을 것입니다. 잠시 잠겨있지만 마지막으로 사용한 사람이 단서를 남겨서 열 수 있어 다행입니다. 금고의 신비한 비밀번호는 금고 전면에 고정되어 있으며 접근할 때 비밀번호를 수집하라는 메시지가 표시됩니다.
이것은 Stray 안전 코드 를 얻는 첫 번째 단서 이지만 인벤토리에서 신비한 암호를 보는 것은 별로 소용이 없을 것입니다. 결국 자동 바이너리 리뷰 고양이는 읽을 수 없습니다. 고맙게도 할 수 있는 로봇 동반자가 있습니다. B-12에게 신비한 암호를 보여주면 그들이 해독할 수 있는 유일한 암호 조각을 알려줄 것입니다. 숫자를 따라갑니다.
신비한 비밀번호를 풀다
슬럼을 돌아다니는 로봇에게 신비한 암호를 제시하면 모두 같은 말을 할 것입니다. '여기에 있는 것은 아주 오래된 바이너리 코드입니다. 진짜 괴짜만 읽을 수 있습니다.' 고맙게도 The Slums: Elliot에 진짜 괴짜가 /있습니다.
엘리엇은 두 가지 방법 중 하나로 찾을 수 있습니다. 아직 플레이 과정에서 그를 만나지 못했다면 지상에서 그를 만날 수 있는 유일한 방법이 있습니다. The Slums for Elliot's Programming 주변에 점재해 있는 많은 표지판을 따라가면 근처에 두 대의 로봇이 싸여 있는 문에 도달할 수 있습니다. 출입을 허가받기 위해 문을 긁고 계단을 올라가면 엘리엇이 컴퓨터 워크스테이션 앞에 웅크리고 있는 것을 볼 수 있습니다.
스트레이 세이프 코드(Stray safe code): 7개의 모니터와 많은 전자 쓰레기가 있는 워크스테이션의 담요에 앉아 신비한 암호를 해독할 수 있는 빈민가에서 Elliot의 프로그래밍의 Elliot으로 알려진 로봇.
또는 이전에 엘리엇을 방문했을 때 창문을 덮고 있던 커튼을 내렸다면 하늘을 응시하는 로봇인 스와니토 근처에 있는 매달린 양동이를 통해 지붕에서 엘리엇에게 다가갈 수 있습니다. 환경에 있는 물체를 긁는 것이 어떻게 새로운 영역에 접근할 수 있는지 아직 이해하지 못했다면 Stray 초보자 가이드 를 살펴보세요 .
어느 쪽이든 일단 Eliot에 도달하면 그들이 당신을 위해 신비한 암호인 DUFER 자동 바이너리 리뷰 BAR를 풀어줄 것입니다.
Stray 안전 코드 받기
Dufer Bar는 가디언을 처음 만난 곳 바로 뒤에 있는 계단을 따라 슬럼의 중앙 부분과 매우 가깝습니다. 그래도 확신이 서지 않는다면 자동판매기에 기대어 있는 로봇 테디(Teddy) 바로 자동 바이너리 리뷰 오른쪽에 있는 출입구 위의 빨간 네온사인을 찾으세요.
믿거나 말거나, 신비한 암호는 건물뿐만 아니라 바 내부에서 검색해야 하는 정확한 위치를 나타냅니다. DUFER BAR라고 적힌 빨간 네온사인이 바 상단의 가장 왼쪽에 있는 벽에 기대어 있습니다.
표지판 위에 걸려 있는 사진을 긁으면 Stray safe code: 1283이 나옵니다.
Stray safe 코드를 사용하여 금고를 잠금 해제하면 악보 8/8을 얻을 수 있습니다. 모퉁이에 있는 음악가인 Morusque에게 가져가 읽을 수 없는 악보를 연주하는 것을 들어보세요.
Stray의 모든 코드는 모든 플레이에서 동일하므로 'I Am Speed' 업적을 목표로 하고 있거나 단순히 너무 많은 농구를 뛰어 넘는 것을 좋아하지 않는다면 위의 모든 것을 건너뛸 수 있습니다. 금고에 액세스하려면 즉시 금고 코드를 입력하십시오.
물론 음악 시트는 슬럼에서 발견할 수 있는 많은 항목 중 하나일 뿐이며 일부는 다른 것보다 찾기가 더 까다롭습니다. 여전히 물물교환을 위한 세제를 찾고 있다면 Stray Super Spirit 세탁소 에 들어가는 방법에 대한 가이드를 확인하십시오 . 마지막으로 Stray 리뷰 를 살펴보고 벽으로 둘러싸인 도시의 비열한 거리에서 어떻게 삶을 찾았는지 알아보세요.
DBpia
비밀번호를 변경하신 지 90일 이상 지났습니다.
개인정보 보호를 위해 비밀번호를 변경해 주세요.
비밀번호를 변경하신 지 자동 바이너리 리뷰 90일 이상 지났습니다.
개인정보 보호를 위해 비밀번호를 변경해 주세요.
간편 교외 인증 이벤트 응모
- 한국정보과학회
- 정보과학회지
- 정보과학회지 제36권 제3호(통권 제346호)
- 2018.03
- 11 - 16 (6 pages)
내서재 담기 미리보기 이용하기
초록·키워드 목차 오류제보하기
1. 서론
2. 바이너리 분석의 의의
3. 바이너리 분석의 시작: 역어셈블
4. 바이너리의 의미 파악: 바이너리 격상
5. 바이너리 분석의 마지막: 디컴파일
6. 현존하는 바이너리 분석 기술, 그리고 삐뚤이
7. 맺음말
참고문헌
참고문헌 (0) 참고문헌 신청
추천 논문
함께 이용한 논문
저자의 논문
- 차상길 (한국과학기술원)
- 논문 수 4
- 전체 이용수 485
- 저자페이지 바로가기>
광고 및 욕설, 인신공격, 비하 표현이 들어있는 리뷰 작성으로 다른 회원님들로부터 연이은 신고를 받으셨습니다. 이로 인해 회원님께서는 리뷰작성 권한이 제한되었습니다.
댓글에 광고 및 욕설 인신공격, 비하 표현이 들어있는 경우 삭제될 수 있습니다.
로그인 하고, 주간 인기 논문
무료로 열람하세요.
소프트웨어 보안과 바이너리 분석
소프트웨어 보안과 바이너리 분석
- ㈜누리미디어 대표이사: 최순일 사업자등록번호: 816-81-00840
- 통신판매업신고번호: 제2017-서울영등포-0801호 대표전화: 02-707-0496 팩스: 02-717-4305
- 이메일: [email protected] 주소: (03994) 서울특별시 마포구 양화로19길 22-16
Copyright (c) 1997-2021 NURIMEDIA. ALL RIGHTS RESERVED.
DBpia와 구독·저작권 계약, 기타 제휴를 원하시면 해당 부서로 연락 바랍니다.
담당부서 : 영업기획팀 (4년제 대학교, 해외 도서관, 공공기관, 국책연구원, 기업, 전문대학 등) [email protected]
- 이 논문과 관련된 알림을 신청해 보세요. 이메일로 최신 정보를 알려드립니다.
신청하신 알림은 내서재>알림 설정 에서 확인하실 수 있습니다.
-
이 논문과 함께 이용한 논문이 없습니다.
-
이 논문과 함께 이용한 논문이 없습니다.
-
이 논문과 함께 이용한 논문이 없습니다.
- 신고항목을 선택해 주세요.
- 소프트웨어 보안과 바이너리 분석
- Software Security and Binary Analysis
- 1. 서론
2. 바이너리 분석의 의의
3. 바이너리 분석의 시작: 역어셈블
4. 바이너리의 의미 파악: 바이너리 격상
5. 바이너리 분석의 마지막: 디컴파일
6. 현존하는 바이너리 분석 기술, 그리고 삐뚤이
7. 맺음말
참고문헌
- 첫 페이지 : 11 page
- 끝 페이지 : 16 page
- 이 리뷰를 신고하시는 이유를 알려주세요.
이 논문의 참고문헌을 찾아주세요.
- DBpia 논문 중 이 논문의 참고문헌을 찾아 신청해 주세요.
- 관리자 승인 후 이 논문의 참고문헌으로 등록됩니다.
이 논문의 참고문헌을 찾아주세요.
- 참고문헌으로 신청하실 논문이 맞으면 '신청' 버튼을 클릭하세요.
연도 | 월 | 이용수 |
---|---|---|
등록된 정보가 없습니다. |
연도 | 피인용수 | |
---|---|---|
등록된 정보가 없습니다. |
- 소속기관이 없으시거나 구독하지 않는 기관 소속이실 경우 논문을 구매하셔야 합니다.
구독기관 소속이시더라도 계약범위에 따라 유료 논문일 수 있습니다. - 장바구니에는 최대 30편까지 보관하실 수 있습니다.
인용양식 _ 인용양식 변경 닫기
공식 스폰서와 앰부시 마케팅의 광고 크리에이티브 효과 : 2009 광저우 아시안게임을 중심으로
- 페이지로 구성된 논문입니다.
- 구매 후 전체 페이지를 이용하세요.
혹시 재학/재직 중이신가요? 소속기관의 DBpia 구독 여부를 확인해 보세요.
- DBpia와 구독 계약을 맺고 있는 학교, 공공기관, 기업 소속이시면 기관인증을 통해 논문을 이용하실 수 있습니다. 기관인증 후 DBpia 로그인하시면 90일간 인증 상태가 유지됩니다.
ex) 한국대학교, 한국고등학교, 시립도서관, (주)누리자동차 등
소속기관이 없으시면 DBpia를 구독 중인 주변 공공도서관을 찾아보세요
- DBpia 구독 중 입니다
소속 회원 / 학생 / 교직원 인증
기관(도서관) 홈페이지를 이용하는 경우 인증 가능합니다
대표 계정 인증
초·중·고, 기업 등의 기관 담당자에게 부여됩니다.
해당 계정은 행정실, 수서실 등에 문의하세요
내부 방문시 자동 기관인증 가능합니다
기관 내부 PC, 와이파이로 접속해보세요!
단, 장소에 따라 이용이 제한될 수 있습니다
자주묻는 질문 - 내부 방문시 자동 기관인증
도서관 내부에서 이용하는데도, 기관인증이 안되고 있어요 
도서관 인터넷 망이 아닌 핫스팟 및 에그 등을 사용하고 계신건 아니신가요?
도서관 내부에서 이용하실 경우, 도서관 PC 혹은 와이파이를 이용해야 합니다.
또한 이용가능 구역이 제한될 수 있습니다. (ex. 전자자료실에서만 이용 가능 등)
도서관 담당자에게 해당 구역에서 이용 가능한 지 문의하여 확인 후 이용바랍니다.
기관외부에서 이용하고 싶어요 
기관인증된 상태에서 화면 상단의 [로그인]을 클릭하여 DBpia에 로그인 하실 경우
해당 계정에 기관인증 상태가 90일간 유지되게 됩니다.
"차세대 바이너리분석엔진 'B2-R2' 오픈소스로 푼다"
한국과학기술원(KAIST) 전산학부 차상길 교수가 이달초 소개한 바이너리분석엔진 'B2-R2'의 오픈소스화를 예고했다. 앞서 10여년 전부터 보급된 '아이다 프로(IDA Pro)' 등 선행 기술의 한계를 극복해 기술적 우위를 갖췄다는 B2-R2가 실제 업계에 확산될 수 있을지 주목된다.
KAIST 공과대학교 전산학부 차상길 조교수.
차상길 교수는 지난 21일 "연구실과 KAIST 사이버보안연구센터간 긴밀한 공동연구를 통해 과제를 수행할 수 있었다"며 "내년 2월초 B2-R2를 오픈소스로 공개할 예정이고, 이후 가능하면 논문을 통해 이 플랫폼에 녹인 개념과 이론을 정리해 발표하길 희망하고 있다"고 언급했다.
KAIST는 2016 4월부터 올해말까지 과학기술정보통신부 '바이너리 코드 분석을 통한 자동화된 역공학 및 취약점 탐지 기반기술 개발' 과제를 수행했다. 차상길 교수 연구실, 사이버보안연구센터가 과제를 주관하고 가천대학교 산학협력단, 한국시스템보증이 과제에 참여했다.
과제는 '바이너리 분석 및 취약점 탐지 플랫폼 개발'을 목표로 진행됐다. 주요 성과로 x86, ARM, MIPS 명령어셋아키텍처(자동 바이너리 리뷰 ISA)에 대응하는 자동화된 역공학 도구 개발, 역공학 및 프로그램 분석이 용이한 중간언어 개발, 기호실행으로 탐지된 취약점 검증 기능, 3가지가 제시됐다.
KAIST 공과대학교 전산학부 차상길 조교수. 2018년 12월 4일 기술설명회에서 바이너리분석엔진 B2-R2의 특징과 개발배경을 소개하고 있다.
차상길 교수는 이달초 마련된 기술설명회 자리에서 과제 수행 결과물로 B2-R2를 소개했다. 그는 보안 분야에서 바이너리 분석 기술의 중요성, B2-R2 개발을 시작하게 된 배경, B2-R2의 기술적인 경쟁력을 설명했다. 그의 발표 가운데 주요 내용 및 발언, 향후 계획을 정리했다.
■ "바이너리분석 기술, 2000년초부터 관심…2016년 미국 CGC로 재조명"
바이너리 분석은 소프트웨어(SW)의 소스코드가 아니라 이를 컴파일해 기계어로 변환된 '바이너리코드(binary code)'를 다루는 기법이다. 차 교수에 따르면 SW 및 보안 전문가들은 1980년대 후반부터 바이너리코드 분석에 주목하기 시작했다. 이후 2000년대 중반까지 수많은 바이너리코드 분석 도구와 플랫폼이 등장했다. 1996년 인터넷 붐과 2000년초 비교적 해킹이 쉬운 윈도 운영체제 확산이 주요 배경이었다.
차상길 교수는 먼저 역대 주요 바이너리분석엔진을 소개했다.
러시아의 일파크 귈파노프(Ilfak Guilfanov)가 2005년 '헥스레이즈(Hex-Rays)'란 회사를 차리고 내놓은 아이다(IDA)는 '상업적으로 성공한' 최초 사례다. 2002년 줄리안 시워드(Julian Seward)가 기획한 동적알고리즘분석툴 프로젝트 '밸그린드(Valgrind)'가 나왔다. 같은해 런타임인트로스펙션툴 '다이나모리오(DynamoRIO)'도 바이너리분석에 쓰이기 시작했다. 2003년 인텔은 핀(Pin)을 내놨다.
2011년 공개된 뱁(BAP, Binary Analysis Platform)의 흥미로운 탄생이력이 언급됐다. BAP은 차 교수의 지도교수 데이빗 브럼리(David Brumley)가 주도했다.
차 교수에 따르면 브럼리 교수는 그가 카네기멜론대(CMU) 학생일 당시 버클리대 돈 송(Dawn Song) 교수와 만나면서 빗블레이즈(BitBlaze)라는 프로젝트를 진행했고, 이걸로 2008년 졸업하자마자 CMU 교수가 됐다. 그는 BAP을 자신만의 고유 프로젝트로 시작했다. BAP는 브럼리 교수가 현 구글 직원인 이반 재거(Ivan Jager)를 고용해 개발한 결과물로 현재까지 많은 관심을 받고 있다.
2011년 유럽에선 빈코아(BINCOA)라는 프로젝트가 등장했다. 이는 차 교수가 발표 후반에 비중있게 소개한 빈섹(BINSEC) 프로젝트의 기반을 닦은 프로젝트로 묘사됐다.
프랑스 CEA 연구원중 세바스티앙이라는 정형기법 연구자가 2000년대 중후반경 바이너리에 관심을 갖고 추진한 것이다. 이후 유럽권에서 또 많은 연구자를 불러모아 5년간 기획한 프로젝트의 결과로 2016년 빈섹(BINSEC)이 공개됐다. 차 교수는 BINSEC을 두고 "정말 잘 만든 바이너리분석 엔진이지만 그 뛰어난 성능에 비해 대중의 인지도는 거의 제로에 가깝다"고 지적하기도 했다.
차 교수는 "이런 프로젝트는 2010년 이후 많이 등장했고 2016년께 미국 사이버그랜드챌린지(CGC)로 그 가치를 세상에 널리 알렸다"고 평했다.
CGC는 미국 국방부 산하 방위연구고등계획국(DARPA)가 주최한 최초의 '기계간 해킹' 대회다. 차 교수는 "이 대회 상위 3팀의 자동 바이너리 리뷰 각 시스템이 활용한 분석엔진 중 우승팀의 '메이헴'이 쓴 BAP, 3위 '셸피시(shellphish)'가 쓴 앵거(Angr), 그리고 앞서 소개한 BINSEC, 이 3가지가 주요 오픈소스"라고 설명했다. 차 교수는 이 CGC 대회의 우승 시스템인 메이헴의 핵심 엔진을 설계한 주요 구성원이기도 했다.
■ "최고의 함수형 언어 F#으로 편리하고 실용성도 갖춘 엔진 만들고 싶었다"
KAIST 공과대학교 전산학부 차상길 조교수가 2018년 12월 4일 기술설명회 발표에 삽입한 표 중 하나. 여타 오픈소스 프로젝트 바이너리분석엔진과 B2-R2의 특징을 대조했다.
BAP과 BINSEC은 오캐멀(OCaml)이라는 함수형 프로그래밍 언어로 구현됐다. 바이너리분석에 쓰기 편리하나 처리 속도가 느리다. 반면 Angr는 파이썬과 C 언어로 만들어졌다. 속도는 빠르지만 분석기 개발이 까다롭고 분석이 덜 용이하다.
차 교수에 따르면 페이스북은 OCaml 기반의 분석기 '인퍼(Infer)'를 만들어 사용하고 있다. 마이크로소프트(MS)는 '마이크로소프트 시큐리티 리스크 디텍션(MSRD)'이라는 바이너리분석 및 취약점 안내 서비스를 웹기반으로 제공하는데, 역시 함수형 언어 '에프샵(F#)'을 썼다. MSRD는 비교적 대규모 서비스였는데 개발자 3명이 단 3개월만에 만들어냈다.
차 교수는 "(함수형 언어 특성상) 타입을 마음대로 조립하거나 조립된 타입을 패턴매칭 방식으로 추가할 수 있다는 게 분석할 때 중요한 요소"라며 "많은 분석가가 이런 이유로 함수형 언어를 사용한다"고 말했다. 이어 "F#도 타입을 마음대로 조립할 수 있고, 코드가 간결하며 가독성이 높고 강력한 타입시스템을 갖고 있어 실수를 줄일 수 있다는 장점을 지녔다"고 강조했다.
하지만 함수형 언어를 쓰지 않고 Angr나 IDA 등을 쓰는 분석가들도 많다. 차 교수는 "현실에선 함수형 언어가 수많은 오해로 외면받고 있어서, 아직 (C언어를 사용하는) 아이다 프로가 가장 많은 이들이 쓰는 바이너리분석툴"이라고 지적했다. 아이다 프로(IDA Pro)는 앞서 소개된 IDA의 상용화 제품으로 전세계 수많은 보안연구자, 대기업 보안담당자가 실무적인 분석업무에 쓰고 있는 SW다.
차 교수는 "최고의 함수형 언어로 실제 분석에도 용이한 바이너리분석 엔진을 만들고자 했다"며 "B2-R2는 자동 바이너리 리뷰 그 시작"이라고 말했다. 그는 SF영화 '스타워즈' 시리즈에 등장하는 로봇 캐릭터의 이름 '알투디투(R2-D2)'에서 얻은 영감으로 B2-R2란 이름을 붙였다. 이름의 B는 '바이너리(Binary)'를, R은 '역공학(Reverse engineering)'을, 숫자 2는 역시 '이진수(binary)'를 뜻한다. 내부에선 줄여서 '비투알'이라고도 읽는다.
차 교수는 "아이다프로(IDA Pro), 빗블레이즈(Bitblaze) 프로젝트에서 파생된 BAP, 밸그린드에서 파생된 앵거(angr), 그리고 빈섹(BINSEC)까지, 모두 10년 이상의 오랜 역사를 자랑하는 바이너리분석 엔진"이라며 "여기에 더해, 역사가 짧아서 사용자가 해야 할 게 많다는 단점이 있지만 다른 장점이 많은 비투알투(B2-R2)를 우리가 선보이는 것"이라고 밝혔다.
KAIST 공과대학교 전산학부 차상길 조교수가 2018년 12월 4일 기술설명회 발표에 삽입한 이미지. 상용 분석엔진 아이다 프로(IDA Pro) 대비 뛰어난 B2-R2의 분석결과 시각화 기능을 소개하고 있다.
■ "BAP·angr·BINSEC 등 기성 오픈소스 바이너리분석 엔진대비 성능·정확도 낫다"
차 교수가 강조한 B2-R2의 특징을 정리하면 아래와 같다. 요약하면 앞서 칭찬한 함수형 언어 F#의 이점을 바탕으로 프로그래밍 언어 32종 이상을 지원해 언어 다양성을 보장하고, 코드를 변경하기가 쉽고, 외부 의존성이 없이 구현돼 다양한 환경에서 복잡한 과정 없이 실행되므로 누구나 개발에 쉽게 참여할 수 있고, 바이너리분석이라는 용도에 전적으로 특화돼 다른 기존 엔진 대비 더 빠르고 정확하다.
먼저 B2-R2는 함수형 언어 F#으로 구현돼 있다. F# 언어는 활용도가 낮다는 이유로 많은 보안전문가에게 환영받지 못하고 있지만, 원한다면 이 엔진을 사용하는 분석에 다른 언어를 쓸 수 있다. C 또는 C++ 및 파이썬 등을 사용할 수 있는 API를 제공한다. 자바스크립트도 쓸 수 있다. 엔진의 기반이 닷넷(.NET) 플랫폼이고, 닷넷 플랫폼이 현재 지원하는 32가지 프로그래밍 언어를 모두 사용할 수 있다는 설명이다.
또 B2-R2는 외부 의존성 없이 구현된 4만5천라인(주석 제외)의 F# 코드로 구현돼 있고, 이 언어의 강력한 타입시스템 덕분에 이미 작성한 코드를 쉽게 변경할 수 있는 구조다.
차 교수는 "얼마전 국내서 진행된 한국판 CGC 대회(KISA '정보보호R&D데이터챌린지2018' 인공지능(AI)기반 취약점 자동탐지 분야)를 준비하면서 한두시간만에 중간표현(IR)언어를 뜯어고쳐서 B2-R2에 바로 구현한 적이 있었다"며 "그만큼 고치는 데 부담이 없다"고 강조했다.
그리고 닷넷이 돌아가는 모든 플랫폼을 다 지원한다. 리눅스와 윈도, iOS와 안드로이드에 대응한다. 리눅스에서는 make 명령어 입력만으로 컴파일이 끝난다. 이는 특히 BAP의 경우 개발환경 주류인 리눅스 중 인기 배포판인 '우분투' 18버전에 설치시 자동 컴파일에 실패하고 수많은 패키지 직접 설치를 수반한 수동 컴파일도 별도의 우회방법을 쓰지 않으면 진행되지 않는 문제를 보이는 점과 대조된다.
차 교수는 바이너리분석에 특화된 엔진이라는 점을 비중있게 설명했다. 특히 엔진에 제어흐름그래프(CFG) 시각화를 위한 모듈을 자체 보유했다는 점을 부각시켰다. 그는 "그래프를 그리기 위한 알고리즘은 대개 NP완전 또는 NP하드 문제로 분류돼 잘 만들기가 어려운데, 우리는 바이너리분석에 특화된 휴리스틱 알고리즘을 쓰기 때문에 빠르고, 아이다 프로 대비 시각화한 결과물도 효율적"이라고 주장했다.
KAIST 공과대학교 전산학부 차상길 조교수가 2018년 12월 4일 기술설명회 발표에 삽입한 그래프. B2-R2가 동일한 바이너리 분석시 다른 오픈소스 분석엔진 대비 우월한 성능을 보인다는 내용.
그는 이어 "여타 오픈소스 3개 엔진은 모두 그래프비즈(graphviz)라는 외부 라이브러리에 의존하는데 이 경우 매번 CFG 덤프, 명령어 실행, png나 pdf 파일 변환, 뷰어 확인 과정을 거쳐야 하는 UX 문제가 있고, 어떤 함수는 CFG 그리기 연산에 짧게는 10초, 어떤 건 5분 이상, 길게는 1시간까지 결과가 뜨지 않고 대기하는 상황도 벌어진다"고 지적했다.
차 교수는 시각화와 별개로 B2-R2의 분석성능도 타 엔진보다 월등하다고 강조했다. 그는 우분투 배포판의 ELF 바이너리 4천여개를 '리프팅(lifting, 바이너리를 IR로 바꾸는 작업)'한 시간과 그중 파일크기 상위 100개를 리프팅한 시간을 엔진별로 각각 측정해 제시했다. 전/후 테스트 결과 B2-R2는 1.3초/10초, BAP는 12초/200초, Angr는 3.5초/53.6초, BINSEC은 1.3초/24.8초를 기록했다.
그는 "BAP은 파일을 한 번에 읽어들여 버퍼에 담지 않고 인스트럭션 하나하나를 몇 바이트씩 읽는 식으로 구현돼 성능이 크게 저하되는 문제가 있고, 그외에도 아주 강조하고 싶지 않은 부분이 있어 비교대상에선 제외하고자 한다"며 "B2-R2는 Angr와 BINSEC만 보더라도 큰 바이너리를 더 빨리 처리할 수 있고, 특히 C로 짠 것보다도 5배 이상 빠르다"고 강조했다.
차 교수는 B2-R2 분석 결과 정확도가 타 엔진대비 높다고 자부하기도 했다. 그는 "1년반전 BAP 공식 홈페이지에서 그들의 엔진이 제공하는 자동 바이너리 리뷰 IR언어 정확도가 100% 가깝다는 자랑이 있었는데, 그 표현이 우리가 2017년 자동화소프트웨어엔지니어링(ASE) 학회에서 (B2-R2의) IR언어 정확도 테스팅 논문을 발표한 뒤 빠졌다"며 "이후 BAP, Angr, BINSEC 팀에서 '좋은 연구해줘 고맙다'는 피드백도 받았다"고 말했다.
■ "기호실행 비롯한 익스플로잇 자동생성, 익스플로잇 특화된 전용언어 구현도 가능"
분석가들은 B2-R2를 어떻게 활용할 수 있을까. 기호실행을 포함한 익스플로잇 자동생성 시스템 등 실용적인 애플리케이션을 구현할 수 있다는 설명이다.
기호실행은 SW에서 오작동이나 오류를 일으키는 실행경로를 찾아내는 기법을 의미한다. 기호실행 결과로 문제를 일으키는 실행경로를 표현하는 일종의 방정식을 얻을 수 있다. 이 방정식을 풀면 SW에 문제를 일으킬 수 있는 입력값이 구해진다. SW개발자는 재현 가능한 입력값과 실행경로를 찾아 패치함으로써 보안상 자동 바이너리 리뷰 취약점을 해결할 수 있다. 반대로 악의적 공격자가 이를 통해 SW 구동환경을 공격할 수도 있다.
일례로 KAIST는 '바이롬(BiRoam)'이란 이름으로 B2-R2 기반 기호실행기를 개발 중이다. 리눅스의 '/bin/ls' 경로 파일을 대상으로 10분간 실행경로 탐색을 자동 바이너리 리뷰 해 보면 4만개를 찾아낸다. 해커들이 기호실행기로 즐겨 쓰는 Angr로 같은 작업을 해서 탐색되는 경로는 1만개 정도다. 차 교수는 "단순한 프로그램이 아니라 (더 복잡한) 다른 프로그램을 대상으로 하면 이 격차는 더 벌어질 것"이라고 강조했다.
차 교수는 기호실행기와 퍼징도구 기능을 갖춘 B2-R2 기반 익스플로잇 자동생성 시스템 구현 경험도 밝혔다. 앞서 한국판 CGC 대회라고 지칭한 KISA '정보보호R&D데이터챌린지2018' 대회에 참가하면서다. 3개월간 차 교수 본인, 박사 3명과 석사 3명, 이렇게 7명이 함께 했던 작업이다. 이들은 시스템의 익스플로잇 생성 결과를 나타내기 위해 'PoE'라는, 익스플로잇 자동생성용 '도메인 특화 언어'를 함께 만들었다.
KAIST 공과대학교 전산학부 차상길 조교수가 2018년 12월 4일 기술설명회 발표에 삽입한 그래프. 10년이상 자동 바이너리 리뷰 지난 기존 바이너리분석툴 시장에 차세대 분석엔진으로 등장한 B2-R2의 출발점을 시사한다.
차 교수는 "요즘 복잡한 CTF에서는 단순한 문자열 입력만으로 익스플로잇을 구현할 수 없고 서비스 응답에 따라 동적으로 대응하는 프로그램이 돼야 하기 때문에, 미국 CGC 대회는 이렇게 읽고 쓰는 걸 XML로 표현하는 'PoV'라는 데이터포맷을 만들었다"며 "하지만 PoV는 불필요하게 복잡하고 길어 사람이 이해하기 어렵고, 셸 획득 관련 문법도 전혀 존재하지 않는다"고 설명했다.
이어 "익스플로잇 생성 시스템은 바이너리를 퍼징하고, 기호실행하고, 취약점을 쓰고, 생성된 익스플로잇에 해당하는 PoE를 만든다"며 "기호실행 이후 과정을 모두 B2-R2가 처리할 수 있다"고 말했다. 그에 따르면 PoE는 '4바이트 크기의 변수 2개에서 값을 읽은 다음, 첫째 값을 x번 곱한 결과가 둘째 값과 같다면 x값이 버그의 트리거가 된다'는 내용이 담긴 익스플로잇을 단 다섯 줄짜리 코드로 표현할 수 있다.
■ 2월 2일 오픈소스 프로젝트로 공개 예고…"기업과 협업 환영"
차 교수는 내년 2월 2일 온라인 소스코드 공유 및 협업 사이트 깃허브를 통해 B2-R2 소스코드를 오픈소스로 공개하겠다고 예고했다. 지난 2015년 8월 귀국해 국내서 만 3년 이상 준비해 온 엔진 개발의 결과물을 개방한다는 계획이다. 본격적으로 B2-R2 개발을 시작한 시점은 2016년 3월부터지만, 앞서 그의 동료 개발자 몇 명이 2015년 10월부터 2016년 2월까지 4~5개월간 컴파일러 이론, F# 언어도 익혀야 했다.
차 교수는 "돌이켜보면 3년이 정말 빨리 지나갔다 생각하고, 저를 포함한 연구실의 여러 학생들 모두 B2-R2에 크고작은 컨트리뷰션을 해줬던 점 굉장히 고맙게 생각한다"며 "이제까지는 B2-R2가 단독으로 커왔다고 할 수 있지만 앞으로는 (영화 스타워즈 시리즈에 R2-D2 캐릭터의 콤비로 등장하는 로봇) '씨쓰리피오(C3PO)'가 필요하다"고 말했다.
그는 "더 잘 만들고 싶다는 욕구가 강해 어쩌면 영원히 할 수 없을 것이라 생각하고 이런 자리에서 여러분께 약속한다"며 "우리는 내년 2월 2일 여러분에게 B2-R2를 공개할 것"이라고 말했다. 이어 "B2-R2를 여러분과 함께 깃허브에서 오픈소스 프로젝트로 유지하고, 여러분의 컨트리뷰션을 통해 함께 이 바이너리분석플랫폼을 발전시켜나갔으면 하는 바람"이라고 덧붙였다.
-
2018.12.24 2018.12.24 2018.12.24 2018.12.24
그는 발표 후 참석자들과의 질의응답 중 '기업과 협력해 발전시켜나갈 계획이 있느냐'는 질문에 답하면서 "이미 기업과 협력하고 있다"고 답했다. 그에 따르면 삼성전자 삼성리서치와 B2-R2 기술을 활용한 협업이 진행 중이다. 그는 "MIT라이선스로 오픈소스화할 계획이고 기업들은 이걸 제품화하거나 자유롭게 써도 무방하다"며 "함께 프로젝트를 계속 발전시킨다는 측면에선 누구든 환영"이라고 강조했다.
차 교수는 2008년 고려대학교 전기·컴퓨터공학부 학사, 2009년 미국 CMU 전기·컴퓨터공학부 석사, 2015년 미국 CMU 전기·컴퓨터공학부 박사 학위를 받았다. 2014년 미국 컴퓨터학회(ACM) 우수논문상(Distinguished Paper Award)을 수상했다. 이후 2015년부터 현재까지 KAIST 전산학부 조교수를 맡고 있다.
[더테크 뉴스] 쿤텍은 ETRI(한국전자통신연구원)와 함께 하드웨어 공급망 보안 강화를 위해 기존의 펌웨어 분석 기술을 기반으로 BoM(자재명세서) 추출 및 분석, 취약점 자동 탐지 기술을 추가 개발한다고 21일 밝혔다.
다양한 유형의 취약점에 대한 정보를 빠르게 분석하고 소프트웨어의 각 구성요소와 복잡한 계층 관계를 갖는 오픈소스에 대한 취약점을 제대로 관리하기 위해서는 하드웨어 및 소프트웨어의 구성 요소 목록인 BoM 분석을 기반으로 취약점을 자동 점검할 수 있어야 한다.
이에 쿤텍은 하드웨어에 내재된 취약점을 분석해 5G 장비 보안을 강화할 수 있는 기존의 펌웨어 분석 기술을 고도화해 하드웨어에 대한 BoM 식별 및 분석 기능을 강화하고, CVE 취약점을 자동 탐지할 수 있는 분석 기술을 추가로 결합해 CBoM(Cybersecurity Bill of Materials) 분석에 대한 하드웨어 공급망 보안을 강화할 계획이다. 이를 통해 제로데이(0-Day) 취약점과 원데이(1-Day) 취약점을 탐지해 공급망을 위협하는 다양한 취약점을 신속하고 정확하게 점검할 수 있어 광범위한 사이버 공격으로 인한 피해 확산을 사전 차단할 수 있다.
쿤텍이 공급망 보안 강화를 위해 새롭게 개발한 취약점 탐지 자동화 도구는 하드웨어 펌웨어를 기반으로 BoM을 검출할 수 자동 바이너리 리뷰 있도록 설계되어 소스코드 없이도 다양한 바이너리 소프트웨어, OS, 플랫폼에 맞춰 보안 취약점을 분석할 수 있다. 또한 오픈소스의 구성 요소와 관련된 정보를 자동 수집하고 NIST(미국 국립표준기술연구소)와의 API 연동 기능을 제공해 실시간으로 게시되는 자동 바이너리 리뷰 취약점 정보를 확인 및 분석할 수 있다. 공급업체에서 제공하는 소프트웨어에 대한 일회성 보안 점검이 아닌 지속적인 모니터링을 통한 취약점 통합 관리 역시 가능하다.
공동연구기관인 ETRI 최병철 실장은 “기존의 펌웨어 분석 기술로는 전체 하드웨어에 대한 공급망 분석 및 취약점 점검 지원이 부족했다. 이에 올해 쿤텍과 ETRI는 하드웨어 펌웨어에서 BoM을 추출하고 식별해 심층 분석할 수 있는 기술과 취약점 자동화 탐지 기술을 추가적으로 개발해 기존의 펌웨어 분석 기술을 보완했다”라고 말했다.
이어 “이번 추가 기술개발을 통해 하드웨어 BoM에 대한 지속적인 모니터링을 수행할 수 있어 끊임없이 변화하는 보안 위협에 대한 대응력을 높여 하드웨어뿐만 아니라 소프트웨어 공급망의 보안 경쟁력을 확보할 수 있을 것”이라며 기대감을 드러냈다.
0 개 댓글