HTTP User-Agent 기반단말호스트운영체제자동판별 허민 *, 이현신, 김명섭고려대학교컴퓨터정보학과 {grrrhm, hyunshin-lee, tmskim}@korea.ac.kr 요 약 인터넷을접속하는단말의종류가다양해지면서인터넷접속단말의운영체제정보는트래픽분석에유용하게활용될수있다. 해당단말의운영체제정보를판별하기위한방법으로수동형방법과능동형방법이있으며, 이중수동형방법이탐지속도가빨라실시간네트워크트래픽분석에적합하다. 그러나수동형방법은시그니처기반으로동작하기때문에능동형방법에비해분석률과정확성이낮은문제를가지고있다. 이를해결하기위해서는시그니처를추가해야하지만, 이또한수작업으로시그니처를추출해야하는문제점을가지고있다. 이러한문제를해결하기위해본논문에서는 HTTP 트래픽의 User-Agent 항목에표기되어있는운영체제정보를기반으로운영체제판별을위한헤더시그니처를자동으로추출하는방법을제안하고실험을통하여그타당성을검증한다. Keywords: HTTP, User-Agent, 운영체제, 시그니처 1. 서론 1 단말의운영체제정보는보안적측면과네트워크트래픽분석측면에서유용한정보이다. 해당단말의운영체제정보를파악함으로써단말이가질수있는보안적취약점을대비할수있다. 뿐만아니라단말의운영체제정보를이용하여실시간네트워크트래픽분석을위한시그니처탐색공간도축소시킬수있다. 이러한이유에서운영체제판별방법은다양한측면에서연구가진행되어왔다. 운영체제판별방법은크게수동형방법과능동형방법으로나뉘어진다. 능동형방법은조사대상이되는단말에직접적으로조사패킷을전송하여그에대한응답패킷을분석함으로써해당단말의운영체제를판별하는방법이다. 대표적인도구로 nmap[1] 과 Xprobe2[2] 가존재한다. 수동형방법은네트워크의특정지점에서해당단말의트래픽을수집한후수집된트래픽을분석하여해당단말의운영체제를판별하는방법이다. 대표적인도구로 p0f[3] 와 SinFP[4] 가있다. 앞선두가지방법중네트워크트래픽분석측면에서는실시간분석을만족시키기위해서수동형방법이주로사용된다. 그러나수동형방법은능동형방법에비해분석률과정확도측면에서낮은문제점을가지고있다. 이를해결하기위해서다양한운영체제별헤더정보를추출하여시그니처로사용하였으나, 모든운영체제에대해서시그니처를추출하는작업에는어려움이있다. 또한사용자혹은응용프로그램에의해시그니처로사용되는헤더정보가변경되어변경된운영체제의시그니처를수작업으로추출하는것에도어려움을가진다. 이러한문제를해결하고자본논문에서는 HTTP 트래픽의 User-Agent 항목에표기된해당단말의운영체제정보를이용하여운영체제별헤더시그니처를자동으로생성하는방법론을제안한다. 제안하는방법은정확한시그니처를생성하기위해패킷을수집후 3-way handshake 를가지는플로우를대상으로시그니처를추출한다. HTTP 트래픽의 User-Agent 항목의운영체제정보를각각의운영체제별패턴으로정의하고, 이를이용하여운영체제별플로우만을수집한다. 이후수집된플로우에서해당운영체제에대한헤더정보를추출하여이전시그니처와의충돌여부를확인후시그니처로사용한다. 이와같이자동으로생성된시그니처를이용하여운영체제를판별한결과, 수동형방법에대한분석률이향상되었다. 본논문의구성은 2 장에서관련연구에대해서기술하고, 3 장에서본논문에서제안하는방법에대해서기술한다. 4 장에서는실험환경과결과에대해서기술한다. 마지막으로 5 장에서결론과향후연구방향에대해서기술한다. 36
2. 관련연구 운영체제판별방법은크게조사패킷에대한응답패킷의분석을통해서이루어지는능동형방법과단말이원격지에서수집하여해당단말의운영체제를추측하는수동형방법으로이루어진다. 능동형방법은 ICMP, SYN, FIN 등과같은다양한패킷을해당단말에전송시켜그에대한응답을확인하고그에대한분석을통해서운영체제를추측한다. Nmap 은능동형방법을이용하는대표적인방법이다. Nmap 은응답패킷의분석이정확하게매칭되지못할경우추측된운영체제를확률로제시한다. 그러나능동형방법은조사패킷에대한응답패킷을기다려야하는지연이발생하여분석시간이오래걸리는문제점을가지고있다. 수동형방법은선행연구 [5] 에서수집된 SYN 패킷의 TCP/IP 헤더정보를이용하여해당단말의운영체제를추측하는방법론을제시하였다. 헤더정보는운영체제별로다양한조합의형태를취하고있으며, 운영체제버전정보에따라서도조합은변경된다. p0f 와 SinFP 는수동형방법을이용한대표적인도구이다. 수동형방법은능동형방법에비해수집된트래픽의헤더만을분석하므로실시간처리에적합하지만, 정확성과분석률측면에서능동형방법에비해성능이낮은문제점을가지고있다. 이러한문제는시그니처추가를통해해결이가능하지만이또한수작업으로시그니처를생성하고있어다음과같은여러문제점을가지고있다. 첫째, 사용자가설치한응용프로그램에의해서헤더정보가변경된경우이다. 수동형방법의시그니처는헤더정보를이용하며, 헤더정보가변경이되었을경우시그니처또한변경이된다. 이는일부네트워크를사용하는응용프로그램이운영체제의기본환경설정을변경하여해당응용프로그램이사용되는환경을최적으로변경하기위해서이다. 둘째, 사용자에의해임의로헤더정보가변경된경우이다. 이또한헤더정보의변경에의해시그니처가변경되며, 이에대한시그니처를추가로생성해야하는문제를가지고있다. [6] 에서는윈도우즈운영체제에대해서레지스트리값을조작하여헤더정보를변경하는방법을기술하고있다. 이는네트워크사용을효율적으로하기위해서이다. 셋째, 새로운운영체제가출시 / 업그레이드되었을경우이다. 현재스마트폰과같은다양한휴대기기들이등장하면서새로운운영체제들의수는증가하고있다. 이와같이새로운운영체제가나타났을경우관리자는해당운영체제의트래픽만을수집한후수집된트래픽을수작업으로분석하여시그니처를추출해야하는문제점을가지고있다. 3. 운영체제판별을위한시그니처 선행연구에서는운영체제를판별하기위해서수작업으로시그니처를추출해야하는문제점을가지고있었다. 본논문에서는이를해결하고자 HTTP 트래픽의 User-Agent 항목을이용하여시그니처를자동으로추출하는방법을제안한다. 본장에서는운영체제의헤더시그니처를자동으로추출하기위해본논문에서제안하는방법과운영체제헤더시그니처를자동으로추출하는과정에서의문제점을기술하고문제점을해결하기위한방법을기술한다. 3.1 User-Agent User-Agent 는 HTTP, SIP 에서서버 / 클라이언트간의통신에서클라이언트의소프트웨어를식별하기위해이용된다. 이를통해서버에서는클라이언트에적합한서비스를제공할수있다. 렌더링엔진, 브라우저가실행중인운영체제, 브라우저의플랫폼등이 User-Agent 에나타나며, 이는 RFC1945[7] 에명시되어있다. 앞서기술한바와같이 User-Agent 는 HTTP, SIP 에서사용된다. 다음표 1 은학내망의 HTTP 트래픽발생량을하루를기준으로나타낸다. 전체트래픽의약 22% 가플로우기준으로 HTTP 트래픽임을나타낸다. 이는 HTTP 의 User-Agent 항목에표기된운영체제정보를기반으로시그니처를생성할경우시그니처생성이용이하다는장점을가지게된다. 표 1. HTTP 트래픽분포 Flow Packet Byte Total 44,974,341 1,599,207,173 1,363,729,589,343 HTTP (%) 9,808,904 (21.81%) 497,993,114 (31.14%) 411,300,844,146 (30.16%) 37
다음표 2 는 User-Agent 에표기된운영체제정보의예를나타낸다. 표 2. User-Agent 의운영체제패턴 OS Pattern1 Pattern2 Pattern3 Windows XP Windows NT 5.1 - - Windows Vista Windows NT 6.0 - - Windows 7 Windows NT 6.1 - - Solaris Sun OS - - Mac OS Mac OS X Macintosh - Linux X11 Linux - Android Linux Android - ios Mac OS X iphone OS iphone Symbian Nokia SymbianOS - 운영체제패턴은중복된경우를포함한다. ios 와 Mac OS 는같은제조사의운영체제로 Mac OS X 라는패턴을포함하고있다. 그러나이를구분하기위해서 Mac OS 는 Macintosh 라는패턴과 ios 는 iphone 이라는패턴을추가적으로매칭함으로써운영체제패턴이중복된경우에있어서도구분이가능하다. 이를이용하여운영체제에대한패턴을추출함으로써자동으로운영체제의헤더시그니처를생성한다. 이와같이 User-Agent 를이용하여해당운영체제의정보를추출함으로써사용자혹은응용프로그램에의해운영체제의헤더정보가변경되더라도정확한운영체제정보를기반으로시그니처를추출한다. 3.2 운영체제헤더시그니처 운영체제의시그니처는 SYN 패킷과 SYN/ACK 패킷의헤더정보를이용한다. 그러나 User-Agent 는클라이언트의운영체제정보를나타내므로 SYN 패킷의헤더정보만이시그니처로사용된다. 따라서 SYN/ACK 패킷의헤더정보를추출하지못하는문제를가지고있다. 이러한문제를해결하기위해서해당단말의플로우를수집하고수집된플로우에서 SYN 패킷과 SYN/ACK 패킷의헤더정보를추출한다. 그러나해당단말에대한플로우만을수집하기위해서는무선사용단말의변경에대한문제를해결해야한다. 만약무선을사용하는단말의플로우를지속적으로수집한다면다른운영체제를사용하는단말로변경되었을경우잘못된시그니처를추출할수있는문제를가지기때문이다. 따라서본논문에서는 Active-Host[8] 를기반으로하여플로우를수집하고수집된패킷에대해서헤더정보를추출한다. 또한 NAT 사용단말에대한문제점도가지고있다. NAT 를사용하는여러개의단말에대해서는 IP 주소를기준으로플로우를수집하였을경우 NAT 공유기에연결된다른운영체제를사용하는단말의플로우도포함이되게되며, 이를시그니처로추출하는문제를가지게된다. 이러한문제를해결하고자 User-Agent 항목의운영체제정보가 2 개이상존재하는 IP 에대해서는해당 HTTP 트래픽의헤더정보만을추출한다. 이와같은방법을이용하여사용자혹은응용프로그램에의해변경된운영체제의헤더정보또한추출이가능하다. 3.3 ASG (Automatic Signature Generation) 본논문에서제안하는 ASG(Automatic Signature Generation) 는그림 1 과같이구성된다. ASG 는 4 개의입력데이터를사용하고온라인과오프라인형태로동작한다. 온라인에서는패킷과 OS Pattern List 를통해서 Host Info List 와 Signature List 를갱신하는작업을수행하며, 오프라인에서는관리자를통해 OS Pattern List 에새로운운영체제패턴을추가하는작업을수행한다. 다음은 ASG 에서사용되는 4 개의입력데이터에대해기술한다. 1. Packet: 네트워크에서발생한패킷을입력데이터로사용하여 TCP 에대해서만플로우를생성한다. 2. OS Pattern List: HTTP 트래픽의 User-Agent 내에포함된운영체제정보를관리자가 OS Pattern 으로저장하고이를입력데이터로사용한다. OS Pattern 과 HTTP 트래픽을이용하여운영체제별플로우를수집할수있도록하며, 이를위해 Host Info List 를생성한다. 3. Host Info List: Host Info List 는 OS Pattern List 에의해분류된플로우를단말의 IP 를기준으로수집하기위해사용된다. 이와같이수집된플로우를기반으로운영체제별 SYN 패킷과 SYN/ACK 패킷의헤더정보를추출한다. 4. Signature List: Host Info List 를이용하여추출한운영체제별 SYN 패킷과 SYN/ACK 패킷의헤더정보를 Signature List 의다른운영체제에대한시그니처와의충돌여부를확인후충돌이발생하지않았을경우이를시그니처로추가한다. 이과정에서충돌이발생한시그니처에대해서는 Signature List 에서삭제하고해당헤더정보를관리자에게제공한다. 38
그림 1. 시그니처자동추출시스템의구성도 그림 2 는 ASG 의온라인과오프라인에대한흐름을나타낸다. 온라인과정은 3 단계로동작한다. 그림 2. 시그니처자동추출시스템의흐름도 39
1 단계 : Flow Generation 은네트워크로부터수집된패킷을입력받아 TCP 플로우만을생성한다. 이는 SYN 패킷과 SYN/ACK 패킷의헤더정보만을추출하기위해서 TCP 플로우만을생성한다. 또한스푸핑된단말의플로우를제거하기위해서 3-way handshake 가존재하는플로우만을생성한다. 2 단계 : Candidate Selection 은 Flow Generation 에서생성된플로우와관리자에의해제공된 User-Agent 항목의운영체제패턴정보를입력데이터로사용하여 HTTP 플로우만을선별한후 User-Agent 의운영체제패턴정보와매칭을통해해당플로우의클라이언트 IP 주소와운영체제정보를 Signature Generation 에제공한다. 이를통하여 SYN 패킷과 SYN/ACK 패킷에대한헤더정보를추출할수있으며, 사용자혹은응용프로그램에의해변경된운영체제의헤더정보또한추출이가능하다. 또한이과정에서매칭되지못한 User-Agent 를관리자에게전달함으로써관리자에의한새로운운영체제의패턴추가를통해시그니처를자동으로추출할수있도록한다. 3 단계 : Signature Generation 은앞선 Candidate Selection 에서제공받은 IP 주소및운영체제정보를기반으로하여 Flow Generation 에서생성된플로우중해당단말의플로우만을선별한다. 이는앞서기술한바와같이 HTTP 트래픽의 User-Agent 는클라이언트의요청패킷에해당되며, SYN 패킷의헤더정보만을시그니처로사용할수있다. 따라서 SYN/ACK 패킷의헤더정보를시그니처로사용하기위해서해당단말의플로우를수집후모든플로우에대해서헤더정보를추출하는것이다. 해당단말의모든플로우에대해서각각클라이언트의경우 SYN 패킷의헤더정보를추출하며, 서버인경우 SYN/ACK 패킷의헤더정보를추출한다. 추출된헤더정보는다른운영체제와의충돌여부를확인후충돌이발생되지않았을경우시그니처로추가된다. 이과정에서다른운영체제의시그니처와충돌이일어난헤더정보에대해서는해당시그니처를시그니처목록에서삭제하고해당헤더정보를관리자에제공함으로써해당운영체제의시그니처를정확하게관리할수있도록한다. 오프라인과정에서는온라인과정의 Candidate Selection 단계에서제공된 User-Agent 항목을관리자가수작업을통해서새로운운영체제패턴정보유무를확인한다. 새로운운영체제정보가 User-Agent 항목에포함되어있을경우관리자는새로운운영체제의패턴을추가하고이를기반으로새로운운영체제에대한시그니처를자동으로추출한다. 4. 실험및성능평가 본장에서는앞서제안한방법을기반으로생성된시그니처의성능을평가하기위한실험환경과정답지생성방법을기술하고본논문에서제시한 ASG 의성능을평가한다. 4.1 실험환경 ASG 의성능을평가하기위해학내망의트래픽을대상으로수집하였다. 트래픽수집은 KU-MON[9,10,11] 을이용하였다. 1 일동안의데이터를입력데이터로사용하였으며, 대상이된전체단말의수는 2,714 개이다. 또한 1 분평균 250MB 의트래픽이발생하였다. 운영체제판별결과의정확성측정을위해생성된정답지는 HTTP 의 User-Agent 항목을기준으로생성되었으며, 전체 2,714 개의단말중 2,346 개의단말에대한정답지를생성하였다. 또한 NAT 공유기사용자에의한 2 개이상의운영체제를가지는단말에대해서는정답지대상에서제외하였다. 4.2 성능평가 ASG 의성능평가를위해서분석률과정확성을성능평가지표로사용하였다. 선행연구와의비교를위해서 p0f 를비교군으로사용하였다. 분석률은다음식 (1) 과같이전체트래픽을발생한단말을대상으로해당운영체제를분류한단말의비율을나타낸다. NC Completeness 100 식 (1) NT 식 (1) 의 N T 는전체 3-way handshake 를발생시킨단말의수이며, N C 는해당운영체제를분류한단말의수이다. 정확성은정답을알고있는단말의수중에서정확하게운영체제를판별한단말의비율을나타낸다. NCT Accuracy 100 식 (2) NGT 40
위식 (2) 는정확성을구하는것으로 N GT 는정답을알고있는전체단말의수이며, N CT 는정확하게운영체제를판별한단말의수이다. 다음표 3 은 ASG 와 p0f 에서제공하는시그니처의수를나타낸다. p0f 는 SYN, SYN/ACK, ACK, RST 패킷과같이 4 가지의경우에대해시그니처를제공하고있다. 표 3. ASG 와 p0f 의시그니처분포 방법론 ASG p0f Total 150 375 SYN 122 262 SYN/ACK 28 61 ACK - 6 RST - 46 p0f 와비교시적은수의시그니처를생성하였으나, 이는하루동안의데이터를대상으로하였기때문이다. 지속적으로시그니처를수집한다면더많은시그니처를생성할수있다. 그림 3 는 ASG 를이용하여생성된시그니처의운영체제별분포를나타낸다. Windows XP 는학내망에서가장많이사용되는운영체제로생성된시그니처의수도 57.33% 로가장높게나타났다. 이와같이 Windows XP 의시그니처가많이생성된것은운영체제의사용률뿐만아니라, 해당운영체제에설치된응용프로그램에의해변경된헤더정보가다양하기때문이다. 그림 3. 운영체제별시그니처의분포 표 4 는 ASG 에의해생성된시그니처를기반으로학내망을이용하는단말의운영체제를판별한결과를나타낸다. 표 4 의 N CF 는운영체제를잘못판별한단말의수를나타내며, N UC 는운영체제를판별하지못한단말의수를나타낸다. Completeness 는분석률을나타내고, Accuracy 는정확성을나타낸다. 표 4. ASG 를이용한수동형방법의성능 Host N C N CT N CF N UC Completeness Accuracy Total 2,714 2,606 - - 108 96.02% - GT 2,346 2,346 2,346 0 0 100% 100% 표 4 의전체단말중분석하지못한 108 개의단말이존재하는이유는해당단말에서 HTTP 트래픽을발생시키지않아분석을하지못하였다. 그러나이단말에서발생한 TCP/IP 헤더정보와동일한 HTTP 트래픽이발생하였을경우시그니처가자동으로추출되어모든단말에대한분석이가능하다. 다음표 5 는 p0f 의분석률과정확성을나타낸다. 동일데이터를사용하여실험을하였으며, p0f 의정확한분석률을측정하기위해서근사매칭방법은시행하지않았다. 실험에사용된 p0f 의버전은 2.0.8 을사용하였다. 41
표 5. p0f 의성능 Completeness Accuracy p0f 73.32% 15.87% 표 4 와표 5 의결과를통해서본논문에서제시한 ASG 에의해생성된시그니처를이용한운영체제판별방법의결과가 p0f 보다분석률과정확성측면에서높다는것을확인할수있다. 이는 p0f 의시그니처가지속적으로관리되지않았으며, 현재사용되고있는운영체제의시그니처를포함하지못해발생한문제이다. 본논문에서제시한 ASG 는이러한문제를 User-Agent 의운영체제패턴을이용하여시그니처를자동으로생성함으로써해결하였다. 5. 결론및향후연구방향 본논문에서는 HTTP 트래픽의 User-Agent 항목에표기된운영체제정보를기반으로운영체제별트래픽을수집하여헤더정보를추출한후이를시그니처로자동생성하였다. 이는기존수작업을통하여시그니처를생성하는방법의문제점을해결하였으며, 수동형방법의분석률이낮은문제점을해결하였다. 또한해당네트워크에서시그니처를추출함으로써사용자혹은응용프로그램에의해변경된헤더정보를시그니처로추출하여운영체제를판별할수있도록하였다. 향후다른운영체제간의헤더정보가동일한경우이를시그니처로사용하는방법과 User-Agent 의운영체제패턴을자동으로추출하는방법에관한연구를진행할것이다. 또한 NAT 공유기를사용하는단말들의 SYN/ACK 패킷의헤더정보를시그니처로사용하는방법에대해서연구를진행할것이다. 6. 참고문헌 [1] nmap, http://nmap.org [2] Xprobe2, http://sourceforge.net/apps/mediawiki/xprobe/index.php?title=main_page [3] p0f, http://lcamtuf.coredump.cx/p0f.shtml [4] SinFP, http://www.gomor.org/bin/view/sinfp/webhome [5] Greg Taleck, Ambiguity Resolution via Passive OS Fingerprinting, RAID 2003, pp. 192-206, 2003. [6] Customize TCP/IP Header, http://support.microsoft.com/kb/314053 [7] RFC 1945, http://www.ietf.org/rfc/rfc1945.txt [8] 박진완, 윤성호, 김명섭, Enterprise 네트워크에서 NetFlow 정보를이용한 Network Active Host 탐지방법, 통신학회추계종합학술발표대회, 연세대학교, 서울, pp. 143, 2008 년 11 월. [9] 오영석, 박준상, 윤성호, 박진완, 이상우, 김명섭, " 멀티레벨기반의응용트래픽분석방법 ", 통신학회논문지 Vol.35 No.8, pp.1170-1178, 2010 년 8 월. [10] 박상훈, 박진완, 김명섭, "Flow 기반실시간트래픽수집및분석시스템 ", 정보처리학회추계학술대회, 목포대학교, pp. 1061, 2007 년 11 월. [11] 윤성호, 노현구, 김명섭, "TMA(Traffic Measurement Agent) 를이용한인터넷응용트래픽분류 ", 통신학회하계종합학술발표회, 라마다플라자호텔, pp. 618, 2008 년 6 월. 허민 2011 년고려대학교컴퓨터정보학과학사 2011 년 ~ 현재고려대학교컴퓨터정보학과석사과정 < 관심분야 > 네트워크관리및보안, 트래픽모니터링및분석 42
이현신 2009 년고려대학교정보수학과학사 2011 년고려대학교컴퓨터정보학과석사 김명섭 1998 년포항공과대학교전자계산학과학사 1998 년 ~2000 년포항공과대학교컴퓨터공학과석사 2000 년 ~2004 년포항공과대학교컴퓨터공학과박사 2004 년 ~2006 년 Post-Doc., Dept. of ECE, Univ. of Toronto, Canada. 2006 년 ~ 현재고려대학교컴퓨터정보학과조교수 < 관심분야 > 네트워크관리및보안, 트래픽모니터링및분석, 멀티미디어네트워크 43