정보통신 ․ 방송 연구개발 사업
1차년도 연차 보고서 1차년도 연차 보고서
(화이트리스트와 상황인지 기술을 이용한 엔드포인트 보호기술 개발)
2016. 04. 29
[보고 서식 제2호]
연차보고서
사업명 정보통신·방송 연구개발 사업
SW컴퓨팅 산업원천 기술개발 과제번호 R-0190-15-2009
과제명
(국문) 화이트리스트와 상황인지 기술을 이용한 엔드포인트 보호기술 개발 (영문) Development of endpoint technology using whitelist and context-aware
주관기관 ㈜지란지교소프트 총괄책임자 박상호 연구소장
참여기관
(책임자) 충남대학교 (류재철 교수)
총수행기간 2015. 6. 1 ~ 2018. 5. 31 ( 3년 )
협약기간 2015. 6. 1 ~ 2016. 5. 31 ( 1년 ) 해당년도
수행기간 2015. 6. 1 ~ 2016. 4. 29 (11개월) 협약기간
총사업비(천원)
정 부
출연금 1,800,000 민 간 부담금
현금 -
계 2,400,000 현물 600,000
해당연도 사업비(천원)
정 부
출연금 500,000 민 간 부담금
현금 -
계 666,667 현물 166,667
키워드
(6 ~ 10개) 정보유출방지, 엔드포인트, 화이트리스트, 상황인지, 데이터보호, 시스템제어
정보통신․방송 연구개발 관리규정 제33조에 의거하여 연차보고서를 제출합니다.
2016년 4월 29일 총괄책임자 : 박 상 호 (인) 주관기관장 : 오 치 영 (인)
미래창조과학부 장관 귀하
일련 번호 개발 내용 추진실적 달성률
1
엔드포인트 제어 모듈 설계 (Windows, OS X)
* 유사 솔루션 분석 (결과물: 엔드포인트 보호 제품 비교 분석서 1건)
- 국내외 10개 엔드포인트 보호 솔루션 비교 분석10개중 4개 솔루션은 직접 구매하여, 기능 및 기술 수준(취약점) 분석 - OS X 보안 솔루션 역공학 분석
Avast, AVG, Avira, Fortinet 회사의 솔루션을 대상으로 커널레벨 분석
100%
* Windows 제어 모듈 설계서 작성
(결과물: Windows 엔드포인트 제어 모듈 설계서 1건)
Ⅰ. 해당 연도 추진 현황
Ⅰ-1 기술개발 추진 일정
(계획 : 실적 : )
일련번호 개발 내용
추진 일정(개월)
달성도(%) 1 2 3 4 5 6 7 8 9 10 11 12
1 엔드포인트 제어 모듈 설계(Windows, OS X) 100%
2 엔드포인트 프로세스 제어 시 작품 개발
(Windows, OS X) 100%
3 사용자 상황인지 시작품 개발 100%
4 이기종 보안기술 협업 시스템 설계 100%
※ 개발내용의 경우 사업계획서 내용에 근거하여 작성할 것
Ⅰ-2 해당 연도 추진 실적
가. 시스템 개발 목표 항목
- 프로세스 실행/종료 제어 기반기술 연구 및 설계 - 네트워크 제어 기반기술 연구 및 설계
- 파일시스템 제어 기반기술 연구 및 설계
* OS X 제어 모듈 설계서 작성
(결과물: OS X 엔드포인트 제어 모듈 설계서 1건)
- 프로세스 실행/종료 제어 기반기술 연구 및 설계 - 네트워크 제어 기반기술 연구 및 설계- 파일시스템 제어 기반기술 연구 및 설계
2
엔드포인트 프로세스 제어
시작품 개발 (Windows, OS X)
* Windows 프로세스 제어 시작품 개발 (결과물: Windows 시작품 1건)
- UWP Application 판별 및 프로세스 실행/종료 제어 연구- 프로세스 실행 동기식/비동기식 제어 기술 연구 - 화이트리스트 기반의 프로세스 제어 시작품 개발
100%
* OS X 프로세스 제어 시작품 개발 (결과물: OS X 시작품 1건)
- FILEOP를 이용한 프로세스 실행 이벤트 탐지 연구- VNODE를 이용한 프로세스 실행/종료 제어 연구 - 화이트리스트 기반의 프로세스 제어 시작품 개발
- 파일 제어 시작품 제작을 위한 기반 기술 연구 (연구 개발 목표 초과 달성)
3 사용자 상황인지 시작품 개발
* Windows에서의 User Action Event Tracing 시작품 개발 (결과물: Windows 시작품 1건)
- 사용자의 프로세스 실행 패턴 분류(목록화)
- 사용자의 프로세스 실행 패턴에 따른 탐지 방법 연구 및 시작품 개발 마우스 및 키보드 입력을 기반으로 사용자가 프로세스를 실행시키는 11가 지 패턴을 목록화하고 각 패턴에 대한 탐지 모듈을 개발
* OS X에서의 User Action Event Tracing 시작품 개발 100%
(결과물: OS X 시작품 1건)
- OS X 상황인지 기술 조사- 사용자의 마우스 및 키보드 입력 추적 로깅 시작품 개발
* User Location Event Tracing 시작품 개발 (결과물: Android/iOS 시작품 각 1건)
- AP 접속 여부를 기반으로 한 사용자 위치 추적 시작품 개발
- 모바일에서 추적한 위치정보를 Windows 및 OS X 플랫폼에 전달하기 위한 서버시스템 및 통신 API 설계
4 이기종 보안기술 협업시스템 설계
* 잠재 위협 프로세스 수집 및 공유 시스템 설계 (결과물: 요구사항 분석서 1건, 설계서 1건)
- 기존 백신의 악성코드 수집 및 분석 방법 분석- 잠재 위협 프로세스 수집 및 공유 시스템 요구사항 분석 및 설계
* 유무선 공유기와 Radius서버를 기반한 디바이스 인증 시스템 연구
100%(결과물: 설계서 1건, 시작품1건)
- ARP Spoofing 공격 기법을 역이용한 디바이스 인증 시스템 기술 연구 및 설계
- 비인가 디바이스 네트워크 차단 시작품 개발
5
프로세스 실행 패턴 분석을 통한 프로세스 제어
시작품 개발
* Windows OS 화이트리스트 수집 연구
(결과물: Windows OS 화이트리스트 프로세스 수집 목록)
- Windows OS 화이트리스트 수집 Tool 개발- Windows OS 화이트리스트 수집(목록화)
- Windows OS 화이트리스트 기반의 프로세스 차단 테스트
Windows 7, 8.1, 10에 대해서 OS별로 평균 800개 정도의 화이트리스트가 수집 되었고, 특별한 Application 설치 없이 사용하는 경우 문제없이 동작 하는 것을 확인.
초과달성
* 사용자 상황인지를 기반으로 한 프로세스 제어 시작품 개발 (결과물: Windows 시작품 1건)
- 사용자 상황인지 패턴 탐지 모듈 및 프로세스 제어 모듈 연동을 통해서 상용화 가능성을 확인
나. 정량적 목표 항목
구분
특허 논문 표준화
기술 이전
상용화 (백만원)
기술료 (백만원)
성 과 홍 보
국제 국내
SCI (E)
비SCI 국제 국내
출 원
등 록
출 원
등 록
국 제
국 내
기고서 제출
기고서 채택
표준안 채택
기고서 제출
기고서 채택
표준안 채택
계획(건) 1 2
실적(건) 2 2
① 특허
· 국내 특허 출원 2건 완료
- 특허출원 1. 파일의 첨부 방식을 검증함으로써 악의적인 파일 유출을 방지하는 방법 및 그 기록매체
* 출원번호 : 10-2016-0046747* 출원일 : 2016.04.18
* 발명명칭 : 악의적인 파일 유출 방지 방법
(Method for preventing malicious file outflow)
* 발명배경 : 최근 중요한 내부 데이터를 외부로 유출 시키는 악성코드로 개인정보의 유출 뿐 아니 라 기업의 소스코드, 설계도 등 보안상 중요 파일이 외부로 유출되어 그 피해가 점차 증가하고 있음. 외부로 데이터를 유출시키는 악성 코드의 경우, 사용자의 명령과는 별 개로 자체적으로 프로세스를 구동시켜 내부 파일을 첨부하여 특정 목적지로 유출 시 키고 있음. 본 발명은 파일이 첨부되는 방식을 검증함으로써 악성코드에 의한 악의적 인 파일 유출을 방지하는 방법 및 그 방법을 수행하는 프로그램이 기록된 기록매체를 제공하기 위한 것이며, 본 발명은 파일 첨부 행위 자체를 개인 인증을 위한 정보로 이용하여 악성코드 뿐만 아니라 외부인과 같이 인증되지 않은 사용자에 의한 악의적 인 파일 유출을 방지하는 방법을 제공하기 위한 것임.
* 발명내용 : [문제 해결 수단 과정]
① 내부에 저장된 파일에 대한 첨부 행위 인식
컴퓨팅 장치는 실행중인 프로세스들을 모니터링하여, 내부 저장수단(SSD, HDD 등)에 저장된 파일에 대해 접근하여 첨부하는 행위를 수행하는 프로세스를 인식
② 첨부 행위가 미리 설정된 방식으로 진행 되었는지에 대한 행위 검증
사용자의 의도에 의한 정상적인 파일 첨부에 대한 행위는 마우스 장치를 이용하거나 터치스크린을 이용한 드래그앤드랍(Drag & Drop)입력을 이용. 물론 응용프로그램에 서 제공되는 파일 첨부 인터페이스를 이용하기도 하나, 본 실시에서는 드래그앤드랍 입력만을 정상적인 파일 첨부 행위로 간주
③ 행위 검증의 수행 결과에 따라 상기 파일의 첨부 허용 여부를 결정하는 단계 행위 검증 결과 첨부 행위가 정상적인 것인지 여부를 판단하고, 정상적이라면 파일 첨부를 허용함. 이와 달리 드래그앤드랍 입력이 아닌 다른 행위라면 비정상 행위라 판단하여 파일 첨부를 차단
=> 만약, 드래그앤드랍 입력으로 컴퓨팅 장치가 인식하도록 하는 프로세스를 생성하 는 악성코드가 이용될 수도 있어, 이에 대한 비교를 위해 특정 패턴을 갖는 드래그앤 드랍 입력을 이용. 컴퓨팅 장치는 드래그앤드랍이 첨부 행위로 확인되는 경우 해당 드래그앤드랍 입력의 패턴을 분석함. 그리고 분석된 패턴이 미리 설정된 패턴인지 여 부를 판단함으로써 파일 첨부를 허용하거나 차단함.
미리 설정된 패턴은 컴퓨팅 장치를 통해 특정경로를 사용자가 인식할 수 있도록 화면 에 표시할 수 있음. 즉 컴퓨팅 장치는 파일을 첨부하고자 하는 첨부 시도가 인식되면 첨부 경로를 화면에 표시하고, 정상적으로 해당 첨부 경로에 따른 드래그앤드랍 입력 이 수행되는 경우에만 파일 첨부를 허용하는 것임.
해당 패턴을 모르는 사용자 또는 악성프로그램은 정상적으로 파일을 첨부하지 못하게 되므로 악성코드 뿐 아니라 외부인과 같이 인증되지 않은 사용자에 의한 파일 첨부가 수행되어 외부로 유출되는 것을 방지할 수도 있음. 또한 복수개의 패턴을 이용하는 경우 입력된 패턴에 따라 서로 다른 처리를 수행할 수도 있음. 예를 들어 사용자 권
한에 따라 서로 다른 패턴을 설정해두면, 입력된 드래그앤드랍 패턴에 따른 사용자 권한을 인식하고 그 사용자 권한에 따라 첨부 가능한 파일을 달리 할 수 있으며 파일 외부 유출 가용 여부가 결정됨.
[설계도]
- 특허출원 2. 사용자의 의도와 상관없는 악의적인 파일 유출을 방지하는 방법 및 그 기록매체
* 출원번호 : 10-2016-0046748* 출원일 : 2016.04.18
* 발명명칭 : 악의적인 파일 유출 방지 방법
(Method for preventing malicious file outflow)
* 발명배경 : 최근 중요한 내부 데이터를 외부로 유출 시키는 악성코드로 개인정보의 유출 뿐 아니 라 기업의 소스코드, 설계도 등 보안상 중요 파일이 외부로 유출되어 그 피해가 점차 증가하고 있음. 외부로 데이터를 유출시키는 악성 코드의 경우, 사용자의 명령과는 별 개로 자체적으로 프로세스를 구동시켜 내부 파일을 첨부하여 특정 목적지로 유출 시 키고 있음. 본 발명은 내부에 저장된 파일에 대한 첨부행위를 수행하는 프로세스를 인식하고 실행되고 있는 프로그램의 프로세스인지 검증한 후 매칭이 되면 파일첨부를 허용하고 그렇지 않으면 차단하는 방법을 제공하기 위한 것임.
* 특허내용 : [문제 해결 수단 과정]
① 내부에 저장된 파일에 대한 첨부 행위를 수행하는 프로세스를 인식
컴퓨팅 장치는 내부에 저장된 파일에 대한 첨부 행위를 수행한 프로세스를 감지하는
것임. 예를 들어 이메일 프로그램에 따른 파일 첨부 프로세스를 감지하거나 또는 악 성코드에 의해 실행된 프로세스에 의해 외부 유출을 목적으로 하는 파일의 첨부 행위 를 감지하는 것. 다시 말해 컴퓨팅 장치는 실행중인 프로세스들을 모니터링 하여 내 부 저장수단에 저장된 파일에 대해 접근하여 첨부하는 행위를 수행하는 프로세스를 인식함.
② 프로세스에 따른 프로그램 실행창이 실행중인지에 대한 행위 검증
프로세스를 실행시킨 프로그램의 실행창이 현재 화면에 표시되고 있는지 여부를 확인 하는 것. 예를 들어 사용자가 이메일 프로그램을 실행하고 그에 따른 프로그램 실행 창으로써 이메일 작성 실행창을 실행시켜 화면에 표시되고 있는 상태에서 해당 프로 그램 실행창을 이용하여 파일 첨부를 수행한 경우를 가정. 그러면 컴퓨팅 장치는 파 일 첨부를 수행안 프로세스에 따른 프로그램이 이메일 프로그램임을 식별하고, 그 프 로그램 실행창이 현재 실행중임을 인식하게 되는 것.
③ 행위 검증의 수행 결과에 따라 상기 파일의 첨부 허용 여부를 결정
프로그램 실행창이 실행중이라면 사용자가 의도를 가지고 파일 첨부 행위를 수행함으 로 인식하여 파일 첨부에 대해 허용하지만 이와 달리 프로그램 실행창이 실행 중이 아니라면 컴퓨팅 장치는 악성코드 등에 의한 악의적인 파일 유출을 위한 첨부 행위라 판단하여 파일 첨부를 차단.
=> 여기서 행위 검증은 프로그램 실행창이 화면에 표시 중인지 여부와 프로그램 실행 창이 최상위 실행창인지 여부로 확인도 가능함. 또한 상기 프로그램 실행창이 최상위 실행창이 아닌 경우 상기 파일의 첨부를 보류하고, 상기 프로그램 실행창이 최상위 실행창이 되는 경우 상기 파일의 첨부 내역을 화면에 표시된 이후, 사용자로부터 첨 부 명령이 입력되거나 일정 시간이 경과하면 상기 파일의 첨부를 허용할 수 있음.
[설계도]
② 논문
· 국내 학술지 2건 및 국내 논문지 1건 작성 완료
No 구분 논문명 저자명 저널명 일시
1 국내
(학술지)
iOS 시간 버그 해결을 위한 파워 기 능의 재설계 방안 연구
윤 정 무 , 조 제 경,류재철 (충남대)
한국정보처리
학회 2016.04.30
2 국내
(학술지)
LLDB를 이용한 iOS 애플리케이션 역공학 분석 방법론
윤정무,류재철 (충남대)
한국정보처리
학회 2016.04.30
3 국내
(논문지)
파일 IO Interval을 이용한 랜섬웨어 공격차단방법론
윤정무,류재철 (충남대)
한국정보보호
학회 심사 中
· 국내 논문 발표 세부 내용
가. (국내) iOS 시간 버그 해결을 위한 파워 기능의 재설계 방안 연구
OS X 운영체제는 XNU 기반의 운영체제로써 애플사의 모바일 장치인 아이폰, 아이팟, 아 이패드에 들어가는 운영체제인 iOS와 동일한 커널을 이용하고 있음. 따라서 OS X를 기반 으로 공부한 커널의 호출 방식이나 운영 방식에 대해서 연구한 내용을 가지고 iOS에 적용 이 가능하며, iOS 환경에서 발생한 보안 문제점을 해결하는데 활용할 수 있음. 특히 본 과 제의 기반 기술이 커널 드라이버인 만큼 장치의 파워 신호에 대한 처리를 통하여 장치의 시간 값에 대한 확인이 가능. 실험 결과 iOS 장치 버그의 경우 장치 초기화나 서비스 센터 를 통해서 해결이 되지 않아, 공장으로 보낸 후 메인보드 교체를 해야 할 만큼 심각한 버 그로 알려졌음. 따라서 이를 이용한 서비스 거부 공격은 충분히 발생할 수 있다고 생각하 여, 파워 기능에서 재부팅이나 종료시 시간 값을 확인하도록 제안
나. (국내) LLDB를 이용한 iOS 애플리케이션 역공학 분석 방법론
OS X 환경에서 작동하는 솔루션 개발을 위해서는 애플의 공식 개발 도구인 XCODE를 이 용해야함. XCODE를 이용하여 개발할 경우 동적 디버깅을 LLDB 를 통하여 하도록 되어 있는데, 이는 리눅스 상의 GDB 와 유사한 기능을 가지고 있음. 따라서 개발 중인 솔루션 의 문제점을 해결하는데 매우 편리하지만 iOS의 경우 OS X에 비해 메모리 보호 기술이 더욱 강력히 적용되어 있기에 OS X만큼 광범위한 디버깅을 지원하지 않음. 따라서 본 과 제를 통해 획득한 LLDB를 이용한 커널 디버깅에 대한 기술을 iOS에 적용해 보았으며 이 에 폐쇄적인 iOS 장치를 대상으로 유용한 디버깅 방법을 확인할 수 있게됨. 따라서 iOS내 에 솔루션을 작동시키는 도중에 문제점이 발생할 경우 커널 영역의 일부까지 추적이 가능 한 기술을 국내 학술대회에 발표
다. (국내) 파일 IO Interval을 이용한 랜섬웨어 공격 차단 방법론
심사 중에 있는 논문으로써, 본 과제에서 사용한 FILEOP와 VNODE를 이용하여 최근 이
슈화된 랜섬웨어에 대한 차단 방법론을 제안. 랜섬웨어에 감염되었을 경우 매우 빠른 속도
로 감염 컴퓨터의 문서 파일을 암호화함. 이 속도는 사용자가 클릭하는 속도와 비교가 되
지 않을 만큼 빠르게 진행. 따라서 랜섬웨어 악성코드에 대한 감염 속도를 통계화 시켜 사 람이 수행할 수 없을 만큼의 파일 변화 로그가 생길 경우 차단하는 방법을 제안
③ 시작품 개발
· 시작품 목표 6건 달성완료, 1건 초과 달성
No 시작품 목표 결과물 달성도
1 Windows 프로세스 제어 시작품 1건 1건 100%
2 OS X 프로세스 제어 시작품 1건 1건 100%
3 Windows User Action Event Tracing 시작품 1건 1건 100%
4 OS X User Action Event Tracing 시작품 1건 1건 100%
5 Android User Location Event Tracing 시작품 1건 1건 100%
6 iOS User Location Event Tracing 시작품 1건 1건 100%
7 화이트리스트 기반 프로세스 제어 시작품 0건 1건(초과달성) 100%
* 1~6번의 시작품은 각 기술을 단계별로 연구한 결과물으로, 계획했던 대로 모두 달성하였음.
* 7번 시작품은 독립적으로 연구한 결과를 연동하여 “화이트리스트 기반의 프로세스 제어”의 실현가능성
을 가늠하기 위해 계획보다 초과하여 수행. 시작품 개발 결과를 통해 상용화를 위해서 정교화 해야할 연구 분야를 조기에 발견할 수 있었음. 2차년도 연구 수행 시, 해당 분야를 보완하여 상용화가능성을 높여갈 예정.
④ 기술문서 작성
· 목표 대비 5건 작성 완료, 1건 초과 달성
No 기술문서명 목표 결과물 달성도
1 엔드포인트 제어 모듈 설계서 1건 1건 100%
2 엔드포인트 제어 모듈 설계서 1건 1건 100%
3 엔드포인트 보호 제품 비교 분석서 0건 1건(초과달성) 100%
4 디바이스 인증시스템 설계서 1건 1건 100%
5 위협 프로세스 협업시스템 요구사항 정의서 1건 1건 100%
6 위협 프로세스 협업시스템 설계서 1건 1건 100%
Ⅱ. 기술개발결과
지란지교소프트(주관기관)와 충남대학교(참여기관)는 1차년도 연구계획에 맞춰 아래와 같이 결과물을 창출함
Ⅱ-1 시작품 설계 및 개발
가. 엔드포인트 제어 모듈 설계 1. 엔드포인트 보호 제품 비교
- 국내 엔드포인트 보호 솔루션 비교 분석 (국내·외 DLP 10개사) · OSX, UWP 지원 제품 전무
국내 제품 중 Universal Windows Platform과 OSX를 지원하는 DLP 제품은 없는 것 으로 나타나며, 국외 제품 중 일부는 OSX를 지원하고 있어 글로벌 기업에게 시장 주 도권을 내주고 있음
· 블랙리스트 기반 제품의 통제 한계
국내·외 제품은 알려지지 않은 위협에 노출되는 블랙리스트 기반의 통제기술을 도입하 고 있어 화이트리스트 기반의 통제 방식 필요. 하지만, 시그니처 방식의 화이트리스트 방식은 불편한 상황을 초래하는 문제점이 있어 본 연구에서는 사용자 상황인지 방식 의 화이트리스트 통제를 연구하여 안전한 패턴을 검증하는 알고리즘을 구현할 예정.
예를 들면 최근 이슈가 되는 랜섬웨어의 경우 문서 파일에 프로세스가 Read하는 경우 사용자 행위를 분석하여 행위가 없었다면 즉시 통제하는 방식
· 제품의 차별화 필요
최근 DLP제품은 알려진 웜 바이러스에 대한 강제 차단을 제공하여 백신이 갖고 있는 기능까지 포괄함. 이외에도 MDM, PC화면 녹화 등 고객의 만족도를 높이며 타사화 차 별화 되는 기능을 담고 있음. 본 연구를 통해 NAC 인증서버를 구현하여 엔드포인트 보안에서 네트워크 보안까지 범위를 넓혀 타사와 차별화 되는 제품을 개발하고, 악성 코드에 대응할 수 있는 DLP 제품으로 변모할 예정
- OS X 보안 솔루션 역공학 분석
OS X 운영체제에 설치가 가능한 보안 솔루션은 인터넷 웹서비스를 통한 다운로드를 수 행하거나, OS X 제작회사인 애플사의 앱스토어를 통하여 설치가 가능. 자체 조사에 의 하면 OS X 환경에서 작동하는 보안 솔루션은 약 40여종이 있으며 이 중 17종의 보안 솔루션이 파일 보호 및 네트워크 보호와 관련된 기능을 보유하고 있는 것으로 확인됨.
알려진 보안 솔루션 중 백신으로 유명한 회사의 보안 솔루션 제품에 대한 기능 분석을
실시. Avast, AVG, Avira, Fortinet 회사의 제품을 대상으로 역공학 분석을 수행하였으
며 어플리케이션 레벨의 코드보다는 커널 레벨의 드라이버에서 사용하는 코드를 분석하
는데 집중함. 기존 보안 솔루션에는 네트워크 및 파일, 프로세스 제어 기능이 존재하였
으며, 이를 통하여 제어 시작품 설계에 참고함.
분석 대상인 보안 솔루션들의 경우 모두 유사한 방식으로 커널 드라이버가 구동됨. 이는 커널 드라이버가 시작하기 위한 전제 조건이 있어야 하는 것처럼 보이기에 해당 함수들 을 기반으로 분석을 수행함. 하지만 대부분 메모리 할당을 유동적으로 수행하고 문자열 저장을 위한 부분으로 반드시 시작 코드에서 수행할 필요는 없는 코드들이었음. 다음은 유명한 백신인 Avast와 AVG를 대상으로 분석 및 비교를 수행한 내용임
[그림 9] Avast와 AVG 제품의 커널 드라이버 내 함수 호출 순서
그림 하단에 명시 된 “CTL_REGISTER” 함수 외에는 반드시 호출할 필요가 없는 함수 이며, 개발자의 성격에 따라 호출 유무가 결정되는 것임. 본 과제에서는 커널 드라이버 의 과부하를 줄이기 위하여 메모리 사용을 최소화 하고 “CTL_REGISTER” 함수만을 호 출 하도록함. 해당 함수는 유저 어플리케이션과 커널 드라이버가 통신을 위해 반드시 호 출되어야하기에 필수 함수임.
위와 같이 분석 과정을 수행하여 4개의 보안 솔루션에 대한 특징을 분석하였으며 하기 [그림 6]와 같이 정리. 본 과제에서는 기존 솔루션의 장점을 적절히 활용하여 개발함.
[그림 10] 4개 보안 솔루션에 대한 분석 결과
2. 엔드포인트 제어 모듈 설계(Windows)
Windows 10부터 등장한 UWP(Universal Windows Platform)은 Metro Style
Application을 개발하는 용도로 사용 됨. Metro Style Application은 UWP를 기반으로
Sandbox 형태로 실행되는 특징을 가지고 있음. 따라서 기존의 일반 Application을 제어
했던 것처럼 직접적으로 시스템 자원에 접근하는 방식을 적용할 수 없음. 기본적으로 UWP도 Win32 API를 거쳐서 시스템으로 접근하기 때문에 kernel Layer의 필터 드라이 버를 기반하여 프로세스, 네트워크, 파일 접근 제어를 수행하도록 다음과 같은 형태로 설 계하였음.
[그림 11] 엔드포인트 제어 모듈에 대한 공통된 형태의 설계(Windows)
앞으로 서술 될 연구개발 결과에 1차년도 목표인 프로세스 제어 시작품 개발의 경우, UWP Application 역시 일반 Application과 마찬가지로 OS에서 관리되고 있기 때문에 같은 방식으로 차단/허용이 가능하다는 것을 확인할 수 있음. 설계한 내용을 바탕으로 네트워크 및 파일 접근 제어에 대한 연구 개발을 진행하면서, 각 필터 드라이버를 적용 하는 부분에 있어 어느 정도 변동이 있을 것이라고 예상되며 이에 대해서는 추후 설계내 용을 보완해 가면서 개발을 수행할 예정.
3. 엔드포인트 제어 모듈 설계(OS X)
OS X 커널에서 지원하는 기능과 사용 가능한 함수를 조사하게 됨으로써, 제어를 위한 커
널 드라이버의 설계가 가능했음. 특히 유저 어플리케이션과 통신을 지원하게 설계함으로써
차단/허용 규칙을 유동적으로 입력가능하게 하고자 함. 또한 OS X 자체에 존재하는 메모
리 보호기술에 대해서 알게 되었고, 이를 통하여 안정적인 메모리 활용 방법에 대해서도
고려할 수 있었으며, 안정적인 제품의 설계가 가능해짐.
[그림 12] 엔드포인트 제어 모듈에 대한 공통된 형태의 설계(OS X)
위 [그림 8]과 같이 설계가 이루어졌으나 실제 시작품 개발을 진행하면서 효율적인 방법을 발견할 때마다 추가적으로 설계에 보안/수정을 수행. 특히 프로세스/파일/네트워크 제어 별로 조금씩 달라질 수 있어 이에 대해서는 추후 보완하면서 개발 수행 예정.
나. 엔드포인트 프로세스 제어 시작품 개발
1. 엔드포인트 프로세스 제어 시작품 개발(Windows)
- UWP Application 판별 및 프로세스 실행/종료 제어 연구
프로세스를 제어하기 위해서는 제어하려는 프로세스의 식별자를 알고 있어야 하고, 런타 임 상태인 프로세스의 식별자를 추출하여 제어 대상이 맞는지 비교하는 과정이 필요함.
여기서 프로세스의 식별자를 만들기 위해서는 프로세스 명을 비롯해서 프로그램의 속성 값이 포함되어야함. 그런데, Windows 8부터 등장한 Metro Style Application(ex. Live Tiles)은 “WWAHost.exe”로 프로세스 이름이 모두 같음. 예를 들어서 Metro Style Application인 계산기를 실행했을 때나, 메일 프로그램을 실행했을 때, 모두 같은 프로세 스 이름으로 실행됨. 뿐만아니라 일반 Application에서는 확인이 가능한 프로그램 속성 값을 확인할 수 없음.
Metro Style Application 프로그램 파일을 분석하여 Application마다 고유의 정보를 저장하고있는 AppManifest.xml을 발견. EXE file 또는 DLL의 리소스로 포함되어 있음.
AppManifest.xml파일 내 Publicher, Name 등의 정보를 이용하면 프로세스를 식별할 수 있는 시그니처를 생성할 수 있음.
한편, Windows OS 10이 발표되면서 UWP(Universial Windows Platform)가 등장함.
8과 10에서 겉으로 보이는 것은 똑같은 Metro Style Application을 지원하지만 위에서
언급한 “WWAHost.exe“ 현상은 10버전부터는 나타나지 않는 것으로 확인함. 이 차이는
8과 10 모두 sandbox 형태로 실행하는 Metro Style Application이 존재하지만 내부적
인 아키텍처의 차이에서 비롯됨. 8버전에서 처음으로 소개된 WinRT(Windows Runtime)는 ARM기반의 운영체제(주로 Mobile 기기에 사용됨)도 지원하는데, Metro Style Application에 대한 호환이 미흡했던 것으로 보임. 2015년 8월 부터 Microsoft에 서 WinRT의 UWP Application과의 호환을 지원하지 않는다고 발표한 것을 보아도 추 후 WindowsRT가 Windows PC용 OS(10 이상)에서 지원을 중단할 것으로 유추됨.
UWP Application은 OS에서 구동되는 방식은 일반 Application들과 다르지만, 기본적 으로 PID를 생성하여 관리되고 있다는 사실에는 변함이 없었음. 따라서 프로세스의 실 행/종료는 일반 Application을 제어하는 방식을 동일하게 적용시킬 수 있음. 단지 Windows 8의 Metro Style Application에 대해서만 프로세스 시그니처 분석 부분에서 예외적으로 처리가 필요함.
- 프로세스 실행 동기식/비동기식 제어 기술 연구
다음과 같은 과정을 거쳐서 프로세스의 실행을 감지
① PsSetCreatProcessNotifyRoutineEx 또는 PsSetLoadImageNotifyRoutine를 이용 하여 프로세스 실행/종료 Callback을 등록
② 프로세스 생성(실행) 시 Software Driver의 Callback 호출
③ Software Driver로 생성(실행)된 프로세스의 PID 등 프로세스 정보 전달
④ Toolhelp32Snapshot을 통해 주기적으로 현재 실행중인 프로세스들을 열거 및 정보 획득 ⑤ 실행 프로세스의 무결성 확인을 위한 디지털 서명 검증을 수행
⑥ 실행 프로세스를 식별하기 위한 고유값 추출을 위해 파일의 속성 정보 활용
프로세스 실행 제어는 차단시점에 따라서 동기식/비동식 제어로 구분함. 기본적으로 두
가지 제어 방법 모두 드라이버로부터 프로세스 실행 이벤트를 감지하는 것으로 시작함.
동기식 제어 방식은 차단/허용여부를 판단할 때까지 프로세스를 실행하지 않고 대기하
고, 비동기식 제어 방식은 일단은 프로세스를 실행시킨 상태에서 차단/허용여부를 판단
하는 것에서 차이가 있음.
[그림 13] 프로세스 실행 동기식 제어 방식
[그림 14] 프로세스 비동기식 제어 방식
- 엔드포인트 프로세스 제어 시작품 개발
이 시작품에서는 프로세스 정보를 이용해서 만든 식별자(해시)를 기반으로 허용/차단할
프로세스를 “정책“으로 만들어 테스트에 이용함. 이 시작품은 단순히 프로세스 제어 모
듈이 정상 동작하는지를 확인하기 위해서 만든 것으로 블랙리스트(기본적으로 모든 프로
세스를 허용한 상태에서, 특정 프로세스를 차단하는 방식)방식으로 테스트를 수행 하였 음. 특히 주목해야할 점은 WWAHOST.exe로 표기되는 MetroStyle의 Application을 개 별제어할 수 있게 되었다는 것임.
2. 엔드포인트 프로세스 제어 시작품 개발(OS X)
OS X 환경에서의 프로세스 제어를 위해서 커널에서는 별도의 기능을 공식적으로 제공하 고 있음. FILEOP의 경우는 모니터링을 위한 용도로 제공하고 있으며 프로세스에 대한 정 보뿐만 아니라 파일에 대한 정보까지 제공함. 따라서 이를 잘 활용할 경우 2차년도에 계 획된 파일 제어에 대한 선행 연구까지 가능. 또한 VNODE라는 제어를 위한 기능도 공식 적으로 제공하고 있음. VNODE 또한 프로세스 제어 뿐만 아니라 파일 제어도 가능하며 이를 이용할 경우 프로세스와 파일 제어의 연동 또한 자연스럽게 연결이 가능할 것이라고 판단됨.
- FILEOP를 이용한 프로세스 실행 이벤트 탐지
FILEOP를 이용할 경우 커널로부터 프로세스 실행에 대한 신호를 직접적으로 받음.
FILEOP_EXEC라는 신호를 받게 되면 이때 주어지는 파라미터의 두 번째 값이 실행하고 자 하는 파일의 경로임. 하지만 FILEOP의 특성상 제어가 불가능하기에 이에 대한 정보 를 확인한 다음 VNODE로 차단 요청을 수행. 이는 비동기식 차단으로 동기식 차단에서 놓친 신호가 있을 경우 확인하는 용도로 사용가능. 특히 화이트 리스트 기반의 제어는 많은 신호를 일일이 확인하고, 커널의 작업 대기자가 넘치는 상황이 발생할 수 있기에 오랜 시간이 걸리는 작업은 비동기식 작업을 통해서 해결하는 방안을 고려해야함.. 본 과제에서는 비동기식 차단 또한 실험해 보았으며, 아래와 같은 메시지를 출력하며 차단 되는 것을 확인할 수 있었음
[그림 15] 비동기식 차단이 수행될 경우의 모습
비동기식 차단의 경우 처음 실행 신호는 통과하였지만 이후 필요한 라이브러리를 호출하는 과정에서 차단됨. 따라서 프로세스가 순수 기계어로 이루어져 작동하지 않는 이상 정상 작동이 불가능. 현재 악성 코드 및 유해 프로그램은 프로그램의 크기를 줄이기 위하여 많은 라이브러리를 호출하고 있으며, 현재 및 향후 발생 가능한 공격에 충분히 대응이 가능함.
- VNODE를 이용한 프로세스 실행/종료 제어
VNODE를 이용할 경우 프로세스 및 파일에 대한 제어가 가능하지만 실행 대상 경로를
확인하기 위해서 추가적인 처리 필요. 커널에서 사용하는 구조체에 경로가 저장되어 있 으며, 이에 대한 구조체 분석 및 경로 정보만을 추출할 수 있는 커널 함수를 호출해야 함. 이를 통해서 경로를 추출할 경우 경로 기반의 제어가 가능하며 실행, 차단을 선택할 수 있으며, 다른 커널 드라이버와의 호환을 위하여 판단 보류의 기능 역시 존재. 본 과 제에서 개발한 시작품의 경우 타 제품과의 호환성을 위하여 화이트 리스트가 아닌 경우 모두 차단하는 형태를 수행하고, 화이트 리스트 내에 존재하는 파일의 경우 실행이 아닌 판단 보류로 처리. 이후에 다른 드라이버가 없을 경우 판단 보류는 실행 허용으로 변화 하게됨. VNODE를 이용할 경우 동기식 차단이 가능하며 아래 그림과 같은 모습으로 사 용자에게 보여짐.
[그림 16] VNODE에 의한 프로세스 차단
동기식 차단의 경우에는 처음부터 사용자가 실행을 못하도록 하여 실행 권한 자체가 없다고 출력함. 따라서 어떠한 형태의 파일이든 프로세스로 작동하고자 하면 차단 및 허용이 가능. 하지만 FILEOP에 비해 추가적인 처리 과정이 있고, 시스템 과부화에 대한 테스트가 이루어지지 않은 상태에서 완벽하게 신뢰할 수 있느냐의 문제 발생. 따라서 VNODE와 FILEOP 모두 시작품을 개발해보고 필요한 기술을 확보.
- 화이트 리스트 기반의 프로세스 제어(유저 어플리케이션 계층)
앞서 설명한 FILEOP 및 VNODE를 이용하여 화이트 리스트 기반의 프로세스 제어를 개 발하는데 있어서 가장 중요한 부분임. 화이트 리스트를 추가/삭제하는 도구의 경우 기본 적으로 커널에서 허용을 해줘야 한다는 것. 하지만 제품의 특성상, 설치는 어디에든 이 루어 질수 있기에 고정적인 경로를 이용할 수가 없음. 따라서 본 개발에서는 처음 화이 트 리스트가 존재하지 않을 때에는 모든 프로세스를 허용하고, 화이트 리스트가 추가되 는 순간부터 차단하도록 진행. 또한 화이트 리스트가 추가되는 순간에는 커널 드라이버 를 제어하는 프로세스를 우선으로 두고, 이후 시스템에서 사용하는 프로세스들을 추가하 는 역할 수행.
- 파일 제어 시작품 제작을 위한 기반 기술 확보
2차년도 개발 목표인 파일 및 네트워크 제어 시작품 개발을 위한 기반기술을 확보.
FILEOP와 VNODE의 경우 실행을 위한 신호가 아닌 다른 신호도 많이 존재하고 있으며
파일의 생성, 읽기, 쓰기, 삭제 등이 있음. 이에 대한 정보는 FILEOP와 VNODE 모두에
게 제공되고 있으며 FILEOP는 READ, WRITE, DELETE, CREATE와 같은 직접적으로
확인이 가능한 신호가 선언되어 있으나, VNODE의 경우에는 ACCESS와 READ, WRITE
를 이용하여 조합을 해야함. 따라서 VNODE의 신호를 조합할 수 있는 경우의 수와 어
떠한 행위랑 연결되는지 확인하는 작업을 수행하고 있으며 이를 통하여 2차년도 예상
계획보다 빠르게 개발을 진행할 수 있을 것으로 판단.
다. 사용자 상황인지 시작품 개발
1. Windows에서의 User Action Event Tracing 시작품 개발 - 사용자의 프로세스 실행 패턴에 따른 탐지방법 연구
사용자가 프로그램을 실행시키기 위해서는 UI 포커스 이동과 사용자 입력이 반드시 발 생함. UI 포커스는 사용자가 보고 있는 최상위 실행창이라고도 볼 수 있는데, 프로그램 을 실행하기 위해서 마우스 클릭이나, 키보드 입력이 발생하면 대상으로 포커스가 이동 함. 이것을 기반으로 포커스 대상과 사용자 입력을 조합한 11가지 프로그램 실행 패턴 을 분류할 수 있었음.
번호 구분 포커스 대상 사용자 입력
1 윈도우 탐색기의 항목실행 항목의 아이콘과 이름 Enter 입력
Click or Double Click 2 윈도우 탐색기의 주소창에 경로 입력 주소 입력창 Enter 입력
3 바탕화면의 항목 실행 항목의 아이콘과 이름 Enter 입력
Click or Double Click 4 실행창(Windows+R)에서 경로 입력 실행 입력창 Enter 입력
5 시작메뉴의 항목 실행 항목의 아이콘과 이름 Click 6 시작메뉴에서 검색을 통한 실행 검색 입력창 Enter 입력 7 Windows 8.1 시작메뉴에서
LiveTiles 실행 LiveTiles Click
8 Windows 8.1 시작메뉴에 검색을
통한 실행 검색 입력창 Enter 입력
9 Windows 10 시작메뉴에서
LiveTiles 실행 LiveTiles Click
10 허용된 프로그램이 다른 프로그램 실행 없음 자동 11 윈도우 부팅시 OS가 서비스로
등록한 프로그램 실행 없음 자동
[표 8] Windows PC에서 프로그램을 실행시키는 패턴
마우스, 키보드입력을 hooking 하는 모듈과 UI 포커스 이동을 감지하는 모듈을 이용하 여 패턴별로 탐지가 가능한지 분석함. 추가적으로 사용자 입력분석을 통해서 실행하려고 하는 프로세스의 경로를 가져오는 방법도 함께 연구. 위 표에 명시된 패턴에 대해서 연 구한 결과 크게 세 가지 루틴을 통해서 탐지할 수 있음을 확인하였음.
⓵ 바탕화면 또는 시작 메뉴의 항목 실행
바탕화면과 시작 메뉴 프로그램은 Class = NULL, Framework = Win32라는 특징
이 같다. 이렇게 1차 분류를 하고, 2차 분류는 부모 클래스를 따라가면서 확인함. 시
작 메뉴는 최상위 UI인 바탕화면 바로 아래에 DV2ControlHost라는 클래스를 가지
는 것이 공통적임. 바탕화면은 SysListView32 – Progman - #32769(바탕화면)과 SysListView32 - #32769(바탕화면)의 두 가지 경우가 있음. 따라서 이를 바탕으로 바탕화면과 시작 메뉴를 구분하고, 프로세스의 경로는 “바탕화면의 경로” + “파일이 름”, “시작 메뉴의 경로”+“파일이름”으로 획득 가능함.
[그림 17] 바탕화면 또는 시작 메뉴 항목 실행 탐지 순서도
[그림 18] Windows 8 시작메뉴 항목 실행 탐지 순서도
[그림 19]Window 10 시작 메뉴 항목 실행 탐지 순서도
⓶ 탐색기 주소창 또는 실행(Windows + R)창에 경로 입력
탐색기 주소 표시줄과 실행 창은 Class와 FrameworkId가 같기 때문에 1차 분류에 서 같은 UI로 인식됨. 이 후, AutomaionId정보를 통해 탐색기 주소 표시줄과 실행 창을 구분함. 프로세스 경로는 사용자가 입력한 내용임.
[그림 20] 탐색기 및 실행 창의 경로 입력 탐지 순서도
③ 탐색기의 항목 실행
Class와 FrmeworkId를 이용하면 1차 분류만으로도 탐색기 항목을 구분할 수 있음.
더 정확한 확인을 위해서 부모 클래스가 CabometWClass인지를 통해서 2차 분류함.
UI ShellWindow 객체를 통해 현재 폴더의 핸들을 얻은 뒤, 파일의 AutomationId와 조합하여 경로와 파일이름을 획득.
[그림 21] 탐색기의 항목 실행 탐지 순서도
- 사용자의 프로세스 실행 패턴에 따른 탐지 시작품 개발
위에서 연구한 패턴들을 최적화하여 사용자가 프로세스를 실행시켰을 경우에 사용자 입 력으로부터 프로세스 경로를 획득하는 시작품을 개발함. 특정 패턴만을 활성화 시켜서 프로세스 실행 시에 허용되는지를 테스트하여, 각각의 패턴이 오탐을 발생시키지 않는 것을 확인하였음. 시작품의 동작 플로우는 아래와 같음.
[그림 22] 사용자의 프로세스 실행 패턴 탐지 시작품 순서도
시작품 개발 전에는 hooking을 이용해서 사용자의 입력을 계속적으로 모니터링하는 것이 PC에 부담을 줄지도 모르겠다는 우려가 있었으나, 테스트를 통해서 모니터링이 PC에 주는 부담은 사용자가 PC를 사용하는데 인지하지 못할 정도로 거의 없었음을 확인하였음. 추후 충분한 시간을 가지고 실제로 사용하는 PC환경에서 문제가 없는지 필드테스트를 진행하고, 사내 품질관리팀을 통해서 정밀 테스트 예정.
(테스트 환경)
· OS: Windows 10 Pro 64bit/8 pro k/7 Ultimate K
· CPU : Intel(R) Core(TM) i5-2320 CPU @ 3.00GHz 3.00GHz · RAM : 6.00GB
(테스트 방법)
· OS 버전별로 시작품을 설치하고, 각 사용 패턴별로 실행을 반복하면서 평균 탐지 시간을 측정
번호 프로세스 실행 패턴 평균 탐지 시간(초)
1 바탕화면 또는 시작 메뉴의 항목 실행 0.015
2 탐색기 및 실행 창의 주소 입력 0.016
3 탐색기 항목 실행 0.015
[표 9] 사용자의 프로세스 실행 패턴 탐지 시간 측정 결과
2. OS X에서의 User Action Event Tracing 시작품 개발 - OS X 상황인지 기술 조사
기존 사용자의 행위를 모니터링하기 위한 기술로서는 후킹을 통한 모니터링 기술로써 운영체제 자체에서 지원하기 보다는 입력장치를 처리하는 함수를 다른 함수로 대체하여 모니터링하는 형태를 가지고 있음. 특히 윈도우 기반의 운영체제는 대부분 이러한 방법 을 활용하고 있는 것으로 알려져 있음. 리눅스 기반의 운영체제에서는 입력 장치에 대한 접근이 장치 파일이라 불리는 파일로 접근이 가능하여 이를 이용하는 방법을 사용하고 있지만 OS X 환경의 특성상 이러한 방법은 안전성 및 구현의 복잡성 때문에 활용하기 매우 어려운 상황. 특히 OS X 환경의 경우 메모리 보호 기술과 장치 파일에 대한 접근 권한 문제로 이러한 후킹을 통한 사용자 행위 모니터링 기술은 사용이 불가함
OS X 환경에서는 후킹을 통한 방법이 어려운 만큼 다른 방법을 조사함. 커널 드라이버 와 같이 공개된 문서는 존재하지 않았으며, 블로그나 포럼과 같은 곳에서만 확인이 가능 했음. 그 중 사용자의 확인 과정을 통하여 정식적으로 사용자 행위 모니터링이 가능 한 기술이 존재하는 것으로 확인됨. OS X의 환경 설정에 프로그램을 정식 등록할 경우, 마 우스 및 키보드와 같은 입력 장치에 대한 신호를 공식적으로 수신할 수 있는 기술. 아래 그림을 보면 알 수 있듯이 “보안 및 개인 정보” 메뉴에서 사용자 상황인지가 가능한 정 보를 수신하고자하는 정보를 등록할 수 있음. 본 개발에서는 OS X 환경의 개발 도구인 XCODE를 통해 개발함으로써 XCODE가 등록된 것을 확인.
[그림 23] 상황인지 기술 활용을 위한 프로그램 등록
- Listener 등록을 통한 상황인지 시작품 개발
OS X 환경에서 입출력 장치의 정보를 수집하기 위한 Listener 등록 과정이 있으며 이
를 등록해 놓을 경우, 마우스, 키보드에 대한 모든 정보를 수신함. 또한 마우스의 경우
신호 정보에 따라 우클릭, 좌클릭, 더블클릭 등을 확인할 수 있고, 키보드의 경우 사용
자가 입력한 키 코드 값이 같이 들어오게 되어 이를 통하여 사용자가 실행하기 위하여
엔터를 치거나 명령어를 쳤는지 확인가능. 이에 대한 데이터베이스화 및 패턴에 대한 확
인 작업은 추후 실제 제품을 개발하는데 활용할 예정. 우선 활용 가능성을 확인하기 위 하여 사용자 행위를 로깅할 수 있도록 개발하였으며 구현 화면은 아래와 같음.
[그림 24] 사용자의 입력장치 추적 로깅
하지만 이러한 방법의 경우 화면 최상단에 있는 창이나 사용자가 클릭한 창이 어떠한 프로그램인지 알아내기 어려워, 윈도우 환경에서의 상황인지와 다른 알고리즘을 통한 상황인지 및 판단을 하도록 개발예정.
3. User Location Event Tracing 시작품 개발
본 시작품은 앞서 연구한 User Action Event Tracing 시작품과 연동하여 사용자가 PC 와 같은 공간에 있으면서, PC를 사용하는 상황을 감지하기 위한 기반 기술로 사용될 예정 임. 스마트폰으로 AP연결 감지를 통해서 사용자의 위치(사무실 내/외)를 파악하고, 사용자 PC에 설치된 에이전트로 해당 정보를 전달하는 시작품을 개발함.
[그림 25] User Location Event Tracing 시작품 구조도
[그림 26] 등록된 AP 접속 시 Mobile App화면
[그림 27] 미등록된 AP 접속 시 Mobile App화면
라. 프로세스 실행 패턴 분석을 통한 프로세스 제어 시작품 개발
앞서 연구한 프로세스 실행/종료 제어 시작품과 사용자 상황인지 시작품의 기반 기술을 연 동하여 프로세스 실행 패턴을 분석을 통한 프로세스 제어 시작품을 개발함. 프로세스가 백그 라운드에서 사용자 몰래 실행되는 것을 방지함으로써 분석되지 않은 잠재 위협 프로세스가 실행되는 것을 예방하는 것이 본 시작품의 목적이며, 미리 계획된 목표는 아니었으나 각각 연구한 기술을 연동하여 본 연구의 사업화 실현가능성을 확인하기 위해서 수행함.
본 연구는 화이트리스트 방식을 기본으로 하고 있기 때문에 모든 프로세스의 실행을 차단한 상태에서 다음과 같은 프로세스만 허용하는 시작품을 개발함.
- Windows OS 프로세스
- 사용자 상황인지를 통해서 사용자가 실행시켰다고 판단되는 프로세스
1. Windows OS 화이트리스트 수집
기본적으로 모든 프로세스를 차단시키지만, OS구동을 위해서는 OS에서 제공하는 프로세 스들은 예외적으로 실행을 허용해 주어야 함. OS 프로세스를 화이트리스트화하기 위해서 우선 가상환경에 어떤 프로그램도 다운로드 하거나 실행시키지 않은 상태의 OS를 버전 별(Windows 7, 8.1, 10)로 설치하여 수집환경을 구성함. 실행이 가능한 프로그램을 모두 검색하여 수집하는 Tool을 자체적으로 만들어서 각각의 환경에서 화이트리스트를 수집함.
수집 결과, OS 별로 800개 상당의 프로세스들이 수집되었으며, 이 프로세스들에 대해서만
실행을 허용하여 PC를 사용하였을 때, 문제없이 동작하는 것을 확인할 수 있었음.
[그림 28] Windows OS 별 화이트리스트 수집 결과
2. 프로세스 실행 패턴 분석을 통한 프로세스 제어 시작품 개발
본 시작품은 프로세스의 실행 이벤트를 감지하고, 실행 허용/차단을 위한 Kernel Layer 의 Driver와 UI의 포커스 이동 이벤트를 감지하고, 사용자의 프로세스 실행 여부를 분석 하는 Application Layer의 Agent로 구성되어 있음.
[그림 29] Driver의 동작 순서도 [그림 30] Agent의 동작 순서도
구분 내용
에이전트의 잠재 위협 프로세스 인지
- 에이전트는 기본적으로 모든 프로세스의 실행을 차단 한 상태에서 프로세스가 실행되었을 때, 특정 조건을 만족하는 프로세스만 허용
- 위 과정에서 실행 허용 되지 않은 프로세스를 잠재 위협 프로세스로 인식하고 수집함
잠재 위협 프로세스 수집 - 에이전트는 수집한 잠재 위협 프로세스를 실시간으로
(테스트 환경)
· OS: Windows 10 Pro 64bit/8 pro k/7 Ultimate K
· CPU : Intel(R) Core(TM) i5-2320 CPU @ 3.00GHz 3.00GHz · RAM : 6.00GB
· 예외처리 된 프로세스 화이트리스트 개수: 약 2000개 (테스트 방법)
· OS 버전별로 시작품을 설치하고, 각 사용 패턴별로 실행을 반복하면서 프로세스가 실행되기까지 걸리는 시간을 측정.
번호 프로세스 실행 패턴 평균 탐지 시간(초)
1 바탕화면 또는 시작 메뉴의 항목 실행 0.069
2 탐색기 및 실행 창의 주소 입력 0.056
3 탐색기 항목 실행 0.068
[표 10] 사용자의 프로세스 실행 패턴 탐지 시간 측정 결과
마. 이기종 보안기술 협업 시스템 설계
1. 잠재 위협 프로세스 수집 및 공유 시스템 설계
- 기존 백신의 악성코드 수집 및 분석 방법 연구 및 요구사항 분석
백신 및 악성코드 분석 사이트들은 악성코드로 판별된 프로세스는 악성코드의 이름, 파 일 이름, 해시(악성코드 binary 해시값), 파일 사이즈 등의 정보를 데이터베이스화 함.
이 때, 해시는 악성코드에 대한 식별 값으로, 해시비교를 통해서 악성코드를 판별함. 특 히 안정한 해시 알고리즘 SHA-1을 대중적으로 사용하며, 메시지 다이제스트 알고리즘 MD5해시 함수도 악성코드분석에 흔히 사용됨. 따라서 잠재 위협 프로세스 수집 및 공 유 시스템 역시 악성코드의 원본 파일과 해시를 함께 유지시켜야 이미 판별된 악성코드 와도 비교가 가능하고, 또한 분석을 위해서 수집한 악성코드를 공유해 줄 수 있음.
각지에 퍼져있는 엔드포인트로부터 수집되는 대용량의 잠재 위협 프로세스 정보를 수집
및 처리하고 외부 기관에게 그 정보를 제공해 줄 수 있는 시스템을 구축하기 위해서 요
구사항을 도출하였고, 다음은 요구사항을 요약한 내용임.
(에이전트에서 서버로 전송)
서버에 전송(상황에 따라 예외 적용)
- 서버는 에이전트가 서버로 정보를 전송할 수 있도록 API 제공(API는 클라이언트 인증, 프로세스 정보 중복 체크, 파일전송을 주요기능으로 제공)
잠재 위협 프로세스 처리
- 잠재 위협 프로세스는 Binary 파일을 기반으로 해시를 3 가지 알고리즘(MD5, SHA1, SHA256)으로 생성
- 해시 및 프로세스 정보는 DB화 시키고, 실제 Binary 파일은 파일시스템에 저장하여 관리
잠재 위협 프로세스의 외부 공개
- 잠재 위협 프로세스에 대해서 조회 및 다운로드할 수 있는 API 제공
- 인증된 외부 기관만 접근할 수 있도록 등록 시스템 필요.
[표 11] 잠재 위협 프로세스 수집 및 공유 시스템 요구사항 요약
- 잠재 위협 프로세스 수집 및 공유 시스템 설계
위에서 분석한 요구사항을 바탕으로 잠재 위협 프로세스를 수집하는 서버시스템과 에이 전트의 프로세스 업로드를 위한 API, 외부 요청에 의한 프로세스 정보 조회 및 다운로 드를 수행하는 API를 설계함.
[그림 31] 잠재 위협 프로세스 수집 시스템 구조도
구분 Method
에이전트 – 서버 auth/check_ping/check_process_info/check_process_info
외부 업체 - 서버 auth/check_ping/inquire_process/inquire_process_info/request_process [표 12] API 제공 Method 목록
2. 유무선 공유기와 Radius서버를 기반한 디바이스 인증 시스템 연구
- ARP Spoofing 공격 기법을 역이용한 디바이스 인증 시스템 기술 연구 및 설계
ARP Spoofing 공격 기법은 주소 결정 프로토콜(ARP) 메시지를 이용하여 상대방의 데 이터 패킷을 중간에서 가로채는 공격 기법임. 이 공격은 클라이언트로 ARP 패킷을 보내 게이트웨이의 MAC주소를 공격자의 MAC주소로 변조함. 이에 따라 클라이언트가 공격자 에게 패킷을 보내면, 공격자는 패킷을 그대로 서버에게 전달해 응답을 받은 후, 클라이 언트에게 다시 전달해 줌. 이 과정에서 공격자는 클라이언트가 정상적으로 통신을 하고 있는 것처럼 속이면서 클라이언트의 패킷을 중간에서 가로챌 수 있음.
[그림 32] 공격 전후 패킷 흐름 비교
인증 서버가 공유기에 연결된 모든 디바이스에 ARP 패킷을 전송하여 Gateway의 MAC 주소를 인증서버의 MAC주소로 변경한다면, 디바이스에서 외부로 나가는 모든 패킷을 모니터링 할 수 있게 될 것임. 뿐만아니라 패킷분석을 통해서 특정 디바이스의 네트워크 를 차단하거나, 특정 조건(예를 들면 인증절차를 거친)을 만족시키는 디바이스만 네트워 크를 허용해 줄 수도 있을 것으로 예상함.
위 내용을 기반하여 비인가 디바이스의 네트워크 접근을 차단하고, 인증된 특정 디바이 스에게만 네트워크 접근 권한을 부여하는 인증 시스템을 아래와 같이 설계함. 아래 시스 템은 크게 Spoofing 모듈, 네트워크 스캔 모듈, 트래픽 처리 모듈, 인증 모듈으로 구성 되어 있음.
[그림 33] 네트워크 접근 제어 및 디바이스 인증 시스템 구조도
- 비인가 디바이스 네트워크 차단 시작품 개발
공유기에 NAC(Network Access Control)을 수행할 수 있는 서버(이하 인증서버)를 연 결하는 형태로 시작품 개발. 인증서버는 ARP Scan으로 망내에 있는 모든 디바이스 정 보를 수집. 인증 서버는 패킷분석을 통해서 디바이스의 MAC주소 및 IP주소를 기반으로 디바이스를 식별함. 비인가 디바이스에 대해서 ARP Spoofing을 통해서 Gateway의 주 소를 변조하고, 인증서버로 패킷을 수신하여 네트워크를 차단함.
[그림 34] NMAP ARP Scan 예시
[그림 35] 정상적인 Gateway 주소
[그림 36] ARP Spoofing 후 Gateway 주소
[그림 37] ARP Spoofing을 이용하여 비인가 디바이스의 패킷을 획득
디바이스를 인증하기 위해서는 PC인 경우에는 인증 Agent를 설치해야하고, Mobile인
경우에는 미리 등록된 ID/PASSWORD를 입력해야 함. PC용 인증 Agent는 설치과정에
서 사용자정보를 등록하고 설치하며, Agent의 내부적으로 인증정보를 암호화하여 탑재
하고 있어, 사용자 입력없이 내부적으로 인증이 수행됨.
본 연구의 궁극적 목적은 엔드포인트에 저장 된 중요 데이터를 보호하기 위해서 화이트리 스트 기반의 사용자 상황인지 기술을 결합시켜 내부정보 유출 차단을 실현 하는 것으로 작 년 6월부터 시작된 1차년도 연구는 최초 계획 대비 100% 성과를 달성하였으며, 일부 항목 에 대해서는 초과 성과를 달성 하였습니다.
1차년도 연구에서 중요하게 고려했던 점은 연구의 최종 목표를 구체화 시켜, 참여 연구원 이 동일한 목적을 두고 연구를 추진할 수 있도록 지속적 소통을 마련한 점이며, 적절한 의 사소통체계는 연속성 과제에서 성공적인 결과물을 낼 수 있는 긍정적 요인이 될 것으로 보 입니다.
지란지교소프트와 충남대학교가 3년간 연구하는 원천기술은 필수 불가결한 독창적 기술로 서 지속적으로 부가가치를 창출할 수 있는 기술을 개발할 것이며, 당해연도는 원천기술이 성공적으로 개발될 수 있도록 핵심설계를 바탕으로 탄탄한 토대를 마련했다는 점에 자체적 으로 높은 점수를 주고 싶습니다.
연구를 크게 기초연구와 응용연구로 구분시켜 성과를 바라보자면 기초연구 성과로는 연구 목적에 부합한 논문 2건과 개념특허 2건을 달성했으며, 응용연구로는 엔드포인트 프로세스 제어 시작품과, 사용자 상황인지 기술 시작품을 만들어 시제품으로 가는 교두보를 형성 했 습니다.
우리 지란지교소프트와 충남대학교는 기술개발 뿐만 아니라 국내·외 사회동향과 정보보 호 이슈를 끊임없이 조사하고 있으며, 이를 바탕으로 외부환경-최종목표-추진전략-이행 과제의 연계성을 강화하여 사업화에 성공적으로 안착할 수 있도록 외부환경에 민감하게 반 응했습니다.
외부환경 변화는 사업의 유형(서비스)을 변화 시키는 결정적 요소이므로 내부 전문가 그룹 은 국외 컨퍼런스에 참관하는 빈도를 높여 트렌드를 파악하고 개발 기술의 활용 가능성을 지속적으로 타진하며 개발에 적용 시켰습니다.
당해연도에서 추진하고 달성한 성과는 2차년도에 기폭제가 되어 더욱 효용가치가 높은 연 구과제가 될 수 있는 시발점이 될 것입니다.
Ⅲ. 결론 및 차년도 계획
Ⅲ-1 종합적 결론
Ⅲ-2 2차년도 계획
1차년도 연구는 엔드포인트 프로세스 제어와 사용자 상황인지 시작품을 각각 개발하여 제 품 시제품 제작에 기틀을 마련했다면, 2차년도에는 사용자 상황인지 기술과 화이트리스트 기반 프로세스 통제 기술을 결합한 시제품을 개발하여 제품 상용화에 초점을 두어 연구를 진행할 것이며, 글로벌 경쟁력 기술 수준을 제고하기 위해 정기적인 시장 분석을 통해 기 술 수준 성능과 제품 품질에 더욱 심혈을 기울 일 예정입니다.
가. 글로벌 시장 진출 초석 마련 - 2017 RSA 컨퍼런스 참가 예정
· RSA 컨퍼런스는 미국, 유럽, 아시에서 매년 개최되는 정보 보안 분야 최고의 권위를 자 랑하는 컨퍼런스 및 전시회로서 2016년에는 미국 샌프란시스코 Moscone Center에서 열렸으며, 지란지교소프트 내부전문가들은 직접 참관하여 세계 정보보안의 흐름을 몸소 체험하고 왔음
· 2016 RSA 컨퍼런스에서 자주 사용된 키워드는 아래와 같으며 본 연구와 관련되어 있는 엔드포인트 보호, 데이터 보호에 관한 분야도 큰 이슈가 되고 있었음
· 최근의 보안 사고사례를 바라보면 네트워크 기반의 경계선 방어 기술이 그 자체로서 무 용론에 휩싸였다기 보다는, 실제로 공격 주체로부터 최초 타깃이 되는 엔드포인트를 방 어하는데 있어서 방어력이 충분하지 못했다는 목소리가 높았음
Cyber Security Cyber Threat Intelligence Analytics Next Generation Endpoint
Security
EDR(Endpoint Detection &
Response) Incident Response Visibility Cloud Security Not Competition, but
team-up
Industry Consolidation Alliacne
· 지란지교소프트는 최근 정보보안 산업 이슈를 참고하고, 본 연구과제에서 개발한 기술을
접목시켜 2017년 RSA에 직접 참가하여 제품의 경쟁력을 확인할 예정
· 참가 제품은 중소기업의 데이터 통합 보안 제품이며 핵심 기능으로는 비인가 디바이스 접근 차단, 데이터 유출방지, 중요 데이터 유실 방지 등이 잇고, 제품 컨셉은 ‘Data Protection Appliance for your Office’임
· OFFICEWARE DPA는 업무환경 내 보호필수지점을 파악하고 효율적인 보호를 위한 핵 심 기능으로 구성된 5종 솔루션 어플라이언스
‣ 특장점 : 각 보호필요지점에 최적화된 강력하고 심플한 핵심 기능을 담았고, 목적별 단일 도입이 가능하며 비전문가도 쉽게 활용할 수 있도록 심플한 UI와 간편한 설치 등 쉬운 운영관리에 초점을 두었음
[구성도]