Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
- 1 -
우수논문 신청 여부 (● 표시)아니
●
Fast Track 심사 신청 여부 (● 표시)아니
●
한국지능정보시스템학회
[2016년 춘계학술 회] 논문 투고
기존 OS 핑거 린 기법의 IoT 환경에
용 가능성에 한 연구
장 일 (한국인터넷진흥원 보안기술R&D 2 선임연구원, 주 자 [email protected])
이은별 (한국인터넷진흥원 보안기술R&D 2 연구원, 2 자 [email protected])지수 (한국인터넷진흥원 보안기술R&D 2 주임연구원, 3 자 [email protected])
김환국 (한국인터넷진흥원 보안기술R&D 2 장, 교신 자 [email protected])
A study on the Applicability of OS Fingerprinting
on IoT Environment
Dae-il Jang (Deputy General Researcher, Security R&D Team 2, KISA)
Eun-Byul Lee (Researcher, Security R&D Team 2, KISA)
Jee-soo Jurn (Researcher, Security R&D Team 2, KISA)
Hwan-kuk Kim (Manager, Security R&D Team 2, KISA)
-원고매수: 11 페이지
- 2 -
[ 자 연락처]
◎ 장 일
- 주소 : 서울시 송 구 로 135 IT벤처타워 한국인터넷진흥원 보안기술R&D 2
- 화번호: 02-405-6642, 휴 폰: 010-5298-5670
- E-mail주소: [email protected]
◎ 이은별
- 주소 : 서울시 송 구 로 135 IT벤처타워 한국인터넷진흥원 보안기술R&D 2
- 화번호: 02-405-5342, 휴 폰: 010-4626-6843
- E-mail주소: [email protected]
◎ 지수
- 주소 : 서울시 송 구 로 135 IT벤처타워 한국인터넷진흥원 보안기술R&D 2
- 화번호: 02-405-5447, 휴 폰: 010-7317-0771
- E-mail주소: [email protected]
[교신 자 연락처]
◎ 김환국
- 주소 : 서울시 송 구 로 135 IT벤처타워 한국인터넷진흥원 보안기술R&D 2
- 화번호: 02-405-5548, 휴 폰: 010-4270-1847
- E-mail주소: [email protected]
- 3 -
기존 OS 핑거 린 기법의 IoT 환경에
용 가능성에 한 연구
A study on the Applicability of OS Fingerprinting
on IoT Environment
1)
• 목차 •
Ⅰ. 서 론
Ⅱ. OS 핑거 린 소개
Ⅲ. IoT 디바이스 식별 방법
Ⅳ. 향후 연구 결론
참고문헌
… Abstract …
가트 에서는 IoT 디바이스가 2020년까지 250억 로 증가할 것으로 상하고 있고 이때 생
성되는 데이터 량은 4조 기가바이트에 달할 것으로 상하고 있다. 많은 IoT 디바이스를 각각
효율 으로 리하기 해서 디바이스를 식별할 수 있는 정보가 필요하다. 재 라우터나 게이
트웨이 같은 장비는 디바이스를 식별할 핑거 린트 정보가 있지만, IoT 환경에서 사용되는 IoT
허 , 홈 게이트웨이 같은 IoT 디바이스 경우에는 아직 핑거 린트를 생성하기 한 연구가 없
다. 따라서 이러한 IoT 디바이스의 효율 인 리를 해 디바이스를 식별하기 한 핑거 린
트 정보를 생성하기 한 연구가 필요하다. 본 논문에서는 Shodan을 통해서 어떤 IoT 디바이
스가 있는지 확인 한 후, 기존 핑거 린트 생성 방법 하나인 OS 핑거 린트의 IoT 환경에
서 용가능성에 한 실험을 수행한다.
Key Words : IoT디바이스, 핑거 린트, OS 핑거 린트, Shodan
- 4 -
Ⅰ. 서 론
IoT 디바이스의 연결 허 는 냉장고라고 할 정도로 우리 생활 속에 많은 디바이스
들이 하나둘씩 연결되며 IoT 생태계가 확장되고 있다. 재에는 스마트폰 등의 디바
이스가 있지만, 앞으로는 커넥티드카, IoT 연결 허 등의 새로운 디바이스들이 생겨
나면서 하나로 연결될 것이다. 이는 최근 국내 한 기업에서 사물인터넷을 한 망 구
축 완료를 통해 알 수 있으며, 2017년 까지 400만개의 IoT 디바이스를 연결할 수 있
을 거라고 망했다. 가트 에서는 <그림 1>에서 보는 것과 같이 2020년까지 IoT
디바이스의 수가 250억 이상으로 증가할 거라고 상하고 있다.
<그림 1. IoT 디바이스 증가 망>
(단 : 억 )
0
50
100
150
200
250
300
'14 '15 '20
37.548.8
250.6
<출처: 가트 >
IoT 디바이스에는 스마트폰, 스마트워치, 구 래스 등뿐만이 아니라 최근에 등장
하고 있는 IoT 게이트웨이, 홈 게이트웨이, VoIP 게이트웨이, IoT 허 등의 디바이
스가 포함된다. 다양한 IoT 환경에 맞는 디바이스가 생겨나고 있으며, 그 수가 빠르게
증가됨으로써 발생할 수 있는 다양한 상황들에 비하기 하여 디바이스를 효율 으
로 리하기 한 식별 정보가 필요하다.
본 논문에서는 OS 핑거 린트(JM Allen, 2007) 정보를 통해서 IoT 디바이스를 식
별하려고 한다. 재 라우터나 게이트웨이, 스마트폰 등의 디바이스는 이를 식별할 수
있는 핑거 린트 정보가 있지만, 이제 하나둘씩 생겨나고 있는 새로운 IoT 디바이스
- 5 -
같은 경우에는 아직 핑거 린트 정보가 없다. 따라서 이러한 디바이스를 식별하기
해서는 핑거 린트 정보가 필요하기 때문에 기존 OS 핑거 린 기법을 IoT 환경에
용해보고자 한다.
2장에서는 핑거 린 기술에 해 설명하면서 어떤 정보를 통해 IoT 디바이스를 식
별할 것인지 설명할 것이다. 3장에서는 2장에서 설명한 핑거 린 기술을 통해서 라즈
베리 이에서 사용하는 OS인 라즈비안에 용하여 IoT 디바이스의 핑거 린트를 생성
하는 방법을 소개할 것이다. 마지막으로 4장은 결론으로 제안 방법을 통해 IoT 디바이
스를 식별한 후 어떤 연구를 진행 할 것인지 향후 연구 방향에 해 논의할 것이다.
Ⅱ. OS 핑거 린 소개
본 논문에서는 재 사용되고 있는 OS 핑거 린트에서 사용하는 정보를 활용해
IoT 디바이스의 핑거 린트를 생성해보고자 한다. 따라서 기존의 OS 핑거 린트를
생성기법에 해 알아보고자 한다.
1. OS 핑거 린
OS 핑거 린 은 OS의 기본 설정에 따라 다른 여러 값들을 이용해서 식별 상인
디바이스의 OS를 알아내는 것으로, 호스트에 다양한 명령어를 송하고 이를 통해 받
은 응답으로 정보를 알아내 OS를 추측할 수 있다. 이때, Time To Live(TTL),
Window Size, Max Segment Size(MSS), Packet Length 등을 이용해 OS 디바이스를
식별 할 수 있고, 각각 디바이스에 따른 핑거 린트 정보를 생성할 수 있다(JM Allen,
2007). 이러한 OS 핑거 린 은 Active OS 핑거 린 과 Passive OS 핑거 린 으
로 나눠진다(GetCertifiedGetAhead, 2016).
1) Active OS 핑거 린
식별하기 한 디바이스로 네트워크 패킷을 송 한 후, 돌아오는 응답 패킷을 분
석해 OS 정보를 알아내는 것으로 속도가 빠르다는 장 이 있지만, 디바이스에서 핑거
린 시도를 알아 챌 수 있다는 단 이 있다. 사용 툴로는 xprobe2(xprobe2, 2016),
Nmap(Nmap, 2016)과 queso(Wikipedia, 2016)가 있고, 주로 Nmap을 사용해 디바이스
의 OS를 식별해낸다.
2) Passive OS 핑거 린
- 6 -
OS TTLWindow
SizeMSS
Times
tamps
sack
OK
don’t
fragm
ent
nopIP
ID
패킷
길이
Linux 2.4/2.6 64 5840 ○ ○ ○ ○ ○(1) 60
Linux Kernel
2.264 32120
OpenBSD 64 16384 ○ ○ ○ ○(5) 랜덤 64
Solaris 7 255 8760 ○ ○ ○ +1 44
AIX 4.3 64 16384 ○ ○ +1 44
Windows 2000 128 16384 ○ ○ ○ ○(2) +1 48
Windows XP 128 65535
Windows 7, 128 8192 ○ ○ ○ 52
네트워크 트래픽을 감시하고 분석하는 로그램인 Sniffer를 통해 얻은 정보를 분석
함으로써 식별하려는 디바이스의 OS를 결정할 수 있다. 디바이스에 트래픽을 송
하지 않기 때문에 시스템이 인지하지 못한다는 장 이 있지만, 속도가 느리다는 단
이 있다. 주로 사용되는 툴로는 p0f(p0f3, 2016), NetworkMiner(Netresec, 2016),
Ettercap(Ettercap, 2016)가 있다.
2. OS 핑거 린트 생성 값
기본 으로 사용되는 정보는 IP 패킷 속에 담긴 정보로 패킷이 몇 개의 라우터를
거칠 때까지 살아있을지를 의미하는 값으로 네트워크에서 루핑 상을 막기 해 사
용되는 Time To Live(TTL), TCP 패킷 속에 들어있는 정보로 도우의 크기를 의미
하는 Window Size, OS에서 한 번에 송할 수 있는 세그먼트 최 사이즈인 Max
Segment Size(MSS), Packet Size라고도 불리며, 기본 패킷의 길이를 의미하는
Packet Length가 있다.
추가로, TCP flag 값들이 포함되어 있으며, MSS 포함되고, SYN, SYN+ACK 패킷
에 포함되어 있는 TCP Options이 있고, IP 패킷에서 식별 값을 의미하면서 단편화된
하나의 패킷을 표 할 때 주로 사용되는 IP ID가 있다. 이외에도 'don't fragment'
flag, 'sackOK' flag, 'nop' flag 등이 있다.
아래의 <표1>은 의 식별 정보를 토 로 재 많이 사용되고 있는 디바이스의 핑
거 린트 정보를 나타낸 것으로 OS 핑거 린 으로 검색해 찾은 인터넷 사이트에서
얻은 정보를 하나로 모아놓은 표이다(Netresec, 2016; jinb-park blog, 2016).
<표 1. 재 사용되고 있는 OS의 핑거 린트 식별 정보>
- 7 -
OS TTLWindow
SizeMSS
Times
tamps
sack
OK
don’t
fragm
ent
nopIP
ID
패킷
길이
Vista
Windows 8 128 ○ ○ ○ 52
Windows
server 2008,
Server 8
128 8192 ○ ○ ○ +1 52
MAC OS 64 65535 1360 ○ ○ ○(1) 60
FreeBSD 64 65535 512 +1 60
Novell 1368
Android 64 5720
Chrome OS 64 5720
Cisco Router
IOS 12.4255 4128 ○ 44
Ⅲ. IoT 디바이스 식별 방법
2장에서 소개했던 식별 정보를 토 로 IoT 환경에서 사용되는 디바이스 하나를
선택한 후, 그 디바이스의 핑거 린트를 생성할 것이다. 먼 Shodan으로 검색하면
재 존재하는 VoIP 게이트워이, IoT 게이트워이, 홈 게이트웨이, Webcam 등 다양한
IoT 디바이스들을 확인해 볼 수 있다. 이러한 디바이스들의 핑거 린트를 생성하기
해서 내부 환경에 테스트베드를 셋 해 놓은 후, 단계별로 진행할 것이다.
1. Shodan으로 디바이스 검색
먼 Shodan(Shodan, 2016; 고윤성 외, 2015)은 라우터, 스 치, Webcam, Cam, 웹
서버, SCADA 등의 정보 수집이 가능한 검색 엔진으로 IoT 환경에서 사용되는 디바
이스의 정보를 수집할 수 있다. Shodan은 주로 모의해킹, 해킹 등에서 노출된 정보가
없는지, 보안상의 험성이 없는지를 단하는 도구로 활용되지만, 본 논문에서는
재 IoT 환경에서 사용되는 디바이스들이 어떠한 디바이스인지를 악하기 해서 디
바이스를 검색하는 용도로 사용했다. 라즈베리 이, IoT 게이트웨이, 홈 게이트웨이,
VoIP 게이트웨이 등을 검색했으며, Shodan을 통해 나온 검색 결과는 보안이 취약한
디바이스의 IP 주소, 디바이스 정보, 연결되어있는 포트정보 등이 나온다. 이러한 검색
결과를 토 로 이번 연구에서 핑거 린트를 생성할 IoT 디바이스를 선정했다.
- 8 -
2. 핑거 린트 생성 과정
우리나라에서는 Xprove2나 Nmap과 같은 스캔 툴을 외부에서 사용해 스캔하는 것
이 불법이다. 따라서 테스트를 진행하기 해서 내부 환경에 테스트베드를 구축한 후,
연구를 진행했다.
<그림 2. 디바이스의 핑거 린트 생성 방법>
먼 가상공간에 linux를 설치해 내부 환경에 테스트 베드를 구축한다. 그 후의 순
서는 <그림 2>와 같다. Nmap을 사용해 핑거 린트 생성을 원하는 IoT 디바이스를
스캔하고, 스캔 후 얻은 패킷 정보에서 디바이스 식별이 가능한 정보를 모으면 IoT
디바이스의 핑거 린트가 생성된다. 이 순서를 바탕으로 IoT 환경에서 사용되는 디바
이스의 핑거 린트를 생성하려고 한다.
1) Nmap을 사용한 디바이스 스캔
가상공간에서 Nmap 툴을 사용해서 MAC 디바이스 스캔을 통해 OS를 식별해보려
고 한다. 이 디바이스의 OS가 MAC이라는 것을 인지한 후, 연구를 진행하기 때문에
패킷분석을 통해 <표 1>에서처럼 MAC OS에 해당하는 값들이 나오는지 확인하면
된다.
Nmap에서 명령어를 입력하면 <그림 3>의 정보를 얻을 수 있다. <그림 3>은 툴을
사용해 디바이스의 OS를 식별한 결과를 나타낸 것이고, 좀 더 자세히 살펴보기 해
서 SYN과 SYN/ACK 패킷을 확인해 보았다.
- 9 -
<그림 3. Nmap으로 IP 스캔>
<그림 4. SYN/ACK 패킷 분석>
- 10 -
<그림 4>는 SYN/ACK 패킷 정보의 일부를 캡처한 것이다. <그림 4>를 분석하면
다음과 같은 정보를 얻을 수 있다. Window size는 65535이고, Options에는 MSS,
NOP, Timestamp 값이 포함되어 있다. 이때, MSS 값은 1360이다. 그리고 헤더길이는
40바이트이고, Options이 20바이트이기 때문에 총 패킷 길이는 60바이트이다. <표 1>
의 MAS OS 에 해당하는 값은 Window size는 65535, Options에는 MSS,
Timestamp, NOP 값이 포함되어있고, 패킷길이는 60바이트이기 때문에 에서 얻은
값과 비교한 결과 이 디바이스의 OS는 MAC이라는 것을 알 수 있다.
이와 비슷한 방법으로 이번에는 IoT 환경에서 사용되는 디바이스의 OS를 식별해보
려고 한다. 재 존재하는 핑거 린트 값과 비교해 IoT 디바이스의 OS는 어떤 OS를
사용하는지 식별해낼 수 있으며, 이를 식별해내기 한 핑거 린트를 생성할 것이다.
2) IoT 디바이스의 핑거 린트
이번에는 IoT 환경에서 사용하는 디바이스의 핑거 린트 정보를 알아보기 해서
IoT 디바이스 리 스 데비안을 기반으로 하는 라즈비안을 OS로 사용하는 라즈베
리 이의 핑거 린트를 생성해보려고 한다. 디바이스 핑거 린트를 생성할 때 사용하
는 값은 에서 확인한데로 Window size 값과 Options에 해당하는 값들을 통해서 생
성해보려고 한다.
<그림 5. Nmap으로 라즈베리 이 IP 스캔>
먼 라즈베리 이의 IP를 툴을 사용해 스캔하면 <그림 5>와 같은 정보를 확인
- 11 -
OS TTLWindow
SizeMSS
Times
tamps
sack
OK
don’t
fragm
ent
nopIP
ID
패킷
길이
라즈비안 28960 ○ ○ ○ 60
할 수 있다. 아래의 <그림 5>를 보면, 라즈베리 이의 OS를 확인할 수 있는데, 리
스 기반의 OS라고 추측해냈다. 에서 말했듯이 라즈베리 이의 OS는 리 스 데비안
을 기반이기 때문에 리 스라고 식별한 것이 맞다는 것을 확인할 수 있다. 한번만 확
인하면 정확하지 않기 때문에 같은 종류의 다른 디바이스들도 툴은 사용해서 같은 방
법으로 OS를 식별해 보았다. 모두 같은 OS로 식별되었고, 이번에는 패킷을 분석해보
려고 한다.
<그림 6. 라즈베리 이의 SYN/ACK 패킷 분석>
패킷 분석을 통해서 의 <그림 6>을 확인할 수 있었다. Window size 값은 28960
이고, Options에는 MSS, Timestamp, NOP 값이 포함되어 있으며, 패킷 길이는 60바
이트이다. 에서 확인한 것과 같이 다른 디바이스들의 패킷도 분석해 보았다. 그 결
과 패킷에서 얻은 정보는 이 에 얻은 정보와 같다는 것을 알 수 있었다. 따라서 라
즈베리 이의 핑거 린트 정보는 다음과 같다.
<표2. 라즈베리 이의 핑거 린트 정보>
이와 같은 방법으로 IoT 환경에서 사용되는 디바이스들의 핑거 린트를 생성한다
면, 디바이스의 OS를 쉽게 식별할 수 있을 것이다.
- 12 -
Ⅳ. 결론 향후 연구
최근 IoT 디바이스들이 증가하고 있고, 보안에 취약한 디바이스 는 효율 으로
디바이스를 리하기 해서는 디바이스를 식별하는 방법, 즉 식별이 가능한 핑거
린트가 생성되어야 한다. 기존에 ICT환경의 디바이스들은 핑거 린트가 이미 존재하
고 있고, 다양한 툴과 핑거 린 방법을 통해서 디바이스가 식별되고 있다. 하지만
앞으로 생기고 있고, 생겨날 다양한 IoT 환경에서 사용되는 디바이스의 식별정보는
아직 공개되지 않았거나, 생성되지 않았기 때문에 디바이스 리 측면에서 이를 해결
하기 한 IoT 환경의 디바이스에 한 핑거 린 생성 방법에 한 연구가 필요하다.
이에 본 논문에서는 ICT 디바이스 상의 OS핑거 린 기법을 IoT 환경에서
용할 수 있음을 보 다. 라즈베리 이에서 사용하는 라즈비안에 스캐닝을 수행하고
트래픽을 분석하여 OS 핑거 린 을 생성하 다. 이는 기존 OS 핑거 린 뿐만아니
라 서비스 디바이스 핑거 린 기술도 IoT 환경에 맞게 구성가능 할 것으로 볼
수 있다.
앞으로 IoT 디바이스는 더욱 더 많아질 것이고, 그에 따른 리 기술의 마련이 필
요하게 될 것이다. 향 후 더욱 다양한 IoT 환경에서 사용되는 디바이스의 핑거 린트
생성을 통해 디바이스를 식별하고 리할 수 있는 방법에 한 지속 인 연구가 필요
할 것이다.
Acknowledgment
논 2016년도 (미래창 과학 ) 재원 로 보통신기술진흥 터 지원 아
수행 연 (No.B0717-16-0099, IoT 보안 취약 검색·공 시험 기술 개 )
- 13 -
참 고 문 헌
Allen, Jon M., "OS and Application Fingerprinting Techniques," SANS Institute
InfoSec Reading Room, 2007.
Ettercap, “Ettercap”, http://ettercap.github.io/ettercap/, (2016.07.28)
GetCertifiedGetAhead, “Active fingerprinting”,
http://blogs.getcertifiedgetahead.com/active-fingerprinting-passive-finge
rprinting/, (2016.07.27.)
jinb-park blog, “OS 핑거프린팅”, http://blog.daum.net/tlos6733/36, (2016.07.28)
Ko, Yun-Seong, Il-Kyeun Ra, and Chang-Soo Kim., "A Study on IP Exposure
Notification System for IoT Devices Using IP Search Engine Shodan,"
International Journal of Multimedia and Ubiquitous Engineering 10.12,
2015, pp. 61-66.
Netresec, “NetworkMiner”, http://www.netresec.com/?page=Networkminer,
(2016.07.28)
Netresec, “OS fingerprinting”,
http://www.netresec.com/?page=Blog&month=2011-11&post=Passive-OS
-Fingerprinting, (2016.07.27)
Nmap, “nmap”, https://nmap.org/, (2016.07.28)
p0f3, “p0f”, http://lcamtuf.coredump.cx/p0f3/, (2016.07.28.)
Shodan, “Shodan”, https://www.shodan.io/, (2016.07.28.)
Wikipedia, “queso”, https://en.wikipedia.org/wiki/Queso, (2016.07.27)
xprobe2, “xprobe2”, http://xprobe.sourceforge.net/, (2016.07.27.)