우수논문신청여부 ( 표시 ) Fast Track 심사신청여부 ( 표시 ) 예 예 아니오 아니오 한국지능정보시스템학회 [2016 년춘계학술대회 ] 논문투고 기존 OS 핑거프린팅기법의 IoT 환경에 적용가능성에관한연구 장대일 ( 한국인터넷진흥원보안기술R&D 2팀선임연구원, 주저자 dale@kisa.or.kr) 이은별 ( 한국인터넷진흥원보안기술R&D 2팀연구원, 2저자 eunbyul91@kisa.or.kr) 전지수 ( 한국인터넷진흥원보안기술R&D 2팀주임연구원, 3저자 jjs0771@kisa.or.kr) 김환국 ( 한국인터넷진흥원보안기술R&D 2팀팀장, 교신저자 rinyfeel@kisa.or.kr) 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 페이지 - 1 -
[ 저자연락처 ] 장대일 - 주소 : 서울시송파구중대로 135 IT벤처타워한국인터넷진흥원보안기술R&D 2팀 - 전화번호 : 02-405-6642, 휴대폰 : 010-5298-5670 - E-mail주소 : dale@kisa.or.kr 이은별 - 주소 : 서울시송파구중대로 135 IT벤처타워한국인터넷진흥원보안기술R&D 2팀 - 전화번호 : 02-405-5342, 휴대폰 : 010-4626-6843 - E-mail주소 : eunbyul91@kisa.or.kr 전지수 - 주소 : 서울시송파구중대로 135 IT벤처타워한국인터넷진흥원보안기술R&D 2팀 - 전화번호 : 02-405-5447, 휴대폰 : 010-7317-0771 - E-mail주소 : jjs0771@kisa.or.kr [ 교신저자연락처 ] 김환국 - 주소 : 서울시송파구중대로 135 IT벤처타워한국인터넷진흥원보안기술R&D 2팀 - 전화번호 : 02-405-5548, 휴대폰 : 010-4270-1847 - E-mail주소 : rinyfeel@kisa.or.kr - 2 -
기존 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 - 3 -
Ⅰ. 서론 IoT 디바이스의연결허브는냉장고라고할정도로우리생활속에많은디바이스들이하나둘씩연결되며 IoT 생태계가확장되고있다. 현재에는스마트폰등의디바이스가있지만, 앞으로는커넥티드카, IoT 연결허브등의새로운디바이스들이생겨나면서하나로연결될것이다. 이는최근국내한기업에서사물인터넷을위한망구축완료를통해알수있으며, 2017년까지 400만개의 IoT 디바이스를연결할수있을거라고전망했다. 또가트너에서는 < 그림 1> 에서보는것과같이 2020년까지 IoT 디바이스의수가 250억대이상으로증가할거라고예상하고있다. < 그림 1. IoT 디바이스증가전망 > ( 단위 : 억대 ) 300 250 250.6 200 150 100 50 37.5 48.8 0 '14 '15 '20 < 출처 : 가트너 > IoT 디바이스에는스마트폰, 스마트워치, 구글글래스등뿐만이아니라최근에등장하고있는 IoT 게이트웨이, 홈게이트웨이, VoIP 게이트웨이, IoT 허브등의디바이스가포함된다. 다양한 IoT 환경에맞는디바이스가생겨나고있으며, 그수가빠르게증가됨으로써발생할수있는다양한상황들에대비하기위하여디바이스를효율적으로관리하기위한식별정보가필요하다. 본논문에서는 OS 핑거프린트 (JM Allen, 2007) 정보를통해서 IoT 디바이스를식별하려고한다. 현재라우터나게이트웨이, 스마트폰등의디바이스는이를식별할수있는핑거프린트정보가있지만, 이제하나둘씩생겨나고있는새로운 IoT 디바이스 - 4 -
같은경우에는아직핑거프린트정보가없다. 따라서이러한디바이스를식별하기위해서는핑거프린트정보가필요하기때문에기존 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 핑거프린팅 - 5 -
네트워크트래픽을감시하고분석하는프로그램인 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 의핑거프린트식별정보 > OS TTL Window Size MSS Times tamps sack OK don t fragm ent Linux 2.4/2.6 64 5840 (1) 60 Linux Kernel 2.2 64 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 nop IP ID 패킷길이 - 6 -
OS TTL Window Size MSS Times tamps sack OK don t fragm ent nop IP 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.4 255 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 디바이스를선정했다. - 7 -
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 패킷을확인해보았다. - 8 -
< 그림 3. Nmap 으로 IP 스캔 > < 그림 4. SYN/ACK 패킷분석 > - 9 -
< 그림 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> 와같은정보를확인 - 10 -
할수있다. 아래의 < 그림 5> 를보면, 라즈베리파이의 OS를확인할수있는데, 리눅스기반의 OS라고추측해냈다. 위에서말했듯이라즈베리파이의 OS는리눅스데비안을기반이기때문에리눅스라고식별한것이맞다는것을확인할수있다. 한번만확인하면정확하지않기때문에같은종류의다른디바이스들도툴은사용해서같은방법으로 OS를식별해보았다. 모두같은 OS로식별되었고, 이번에는패킷을분석해보려고한다. < 그림 6. 라즈베리파이의 SYN/ACK 패킷분석 > 패킷분석을통해서위의 < 그림 6> 을확인할수있었다. Window size 값은 28960 이고, Options에는 MSS, Timestamp, NOP 값이포함되어있으며, 패킷길이는 60바이트이다. 위에서확인한것과같이다른디바이스들의패킷도분석해보았다. 그결과패킷에서얻은정보는이전에얻은정보와같다는것을알수있었다. 따라서라즈베리파이의핑거프린트정보는다음과같다. OS TTL < 표 2. 라즈베리파이의핑거프린트정보 > Window Size MSS Times tamps sack OK don t fragm ent 라즈비안 28960 60 nop IP ID 패킷길이 이와같은방법으로 IoT 환경에서사용되는디바이스들의핑거프린트를생성한다 면, 디바이스의 OS 를쉽게식별할수있을것이다. - 11 -
Ⅳ. 결론및향후연구 최근 IoT 디바이스들이증가하고있고, 보안에취약한디바이스또는효율적으로디바이스를관리하기위해서는디바이스를식별하는방법, 즉식별이가능한핑거프린트가생성되어야한다. 기존에 ICT환경의디바이스들은핑거프린트가이미존재하고있고, 다양한툴과핑거프린팅방법을통해서디바이스가식별되고있다. 하지만앞으로생기고있고, 생겨날다양한 IoT 환경에서사용되는디바이스의식별정보는아직공개되지않았거나, 생성되지않았기때문에디바이스관리측면에서이를해결하기위한 IoT 환경의디바이스에대한핑거프린팅생성방법에대한연구가필요하다. 이에본논문에서는 ICT 디바이스대상의 OS핑거프린팅기법을 IoT 환경에서적용할수있음을보였다. 라즈베리파이에서사용하는라즈비안에스캐닝을수행하고트래픽을분석하여 OS 핑거프린팅을생성하였다. 이는기존 OS 핑거프린팅뿐만아니라서비스및디바이스핑거프린팅기술도 IoT 환경에맞게구성가능할것으로볼수있다. 앞으로 IoT 디바이스는더욱더많아질것이고, 그에따른관리기술의마련이필요하게될것이다. 향후더욱다양한 IoT 환경에서사용되는디바이스의핑거프린트생성을통해디바이스를식별하고관리할수있는방법에대한지속적인연구가필요할것이다. Acknowledgment 이논문은 2016 년도정부 ( 미래창조과학부 ) 의재원으로정보통신기술진흥센터의지원을받아 수행된연구임 (No.B0717-16-0099, IoT 보안취약점검색 공유및시험기술개발 ) - 12 -
참고문헌 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.) - 13 -