오픈소스네트워킹편집위원 : 김영한 ( 숭실대 ) 오픈소스를활용한네트워크보안함수를위한프레임워크 김진용, 현대영, 홍동진, 정재훈성균관대학교 요약 본고에서는국제인터넷표준화기구 (Internet Engineering Task Force, IETF) 해커톤 (Hackathon) 에서오픈소스를활용하여구현한네트워크보안함수인터페이스 ( to Network Security Functions, I2NSF) 프레임워크를소개한다. 네트워크공격이복잡해지고다양해짐에따라네트워크통신의무결성, 기밀성, 이용가능성을보장하기위하여많은보안솔루션제조사들은다양한네트워크보안함수 (Network Security Functions, NSFs) 들을개발하고있다. 이와같이다양한보안솔루션제조사에서개발된네트워크보안함수들은서로다른인터페이스로이루어져있어보안서비스관리자들은다양한네트워크보안함수들의서로다른인터페이스로인해호환성의문제를겪고있다. IETF의 I2NSF 워킹그룹 (Working Group, WG) 에서는이러한문제를해결하고자표준인터페이스를제정하고있으며, 이를활용하여보안서비스관리자가속한환경에서유연하게관리할수있도록네트워크보안함수를위한프레임워크를설계하고있다. 본논문은 IETF I2NSF WG에서제안하고있는프레임워크기반으로데이터드리븐보안정책관리 (Data-driven Security Policy Management) 시스템을 Mininet, Confd, Apache2, MySQL, OpenDaylight, XSLT, Suricata 등의오픈소스를활용하여구현하고, 방화벽과웹필터보안서비스유스케이스를보여준다. Ⅰ. 서론 네트워크보안함수 (Network Security Function, NSF) 는네트워크통신의기밀성, 무결성, 이용가능성을보장하기위하여원하지않거나혹은의심이가는네트워크활동을감지후트래픽을차단하거나피해정도를약화하기위하여사용되는기능을말한다. 이러한네트워크보안함수들은보안정책및규칙을기반으로동작하며보안솔루션관리자들은알맞은보 안정책및규칙을생성하여네트워크보안함수에적용한다. 이와같이네트워크보안함수들은적용된보안정책및규칙을기반으로악의적인네트워크트래픽들을감지, 차단, 완화하는보안서비스들을사용자에게제공한다 [1]. 최근에네트워크공격이복잡해지고다양해짐에따라이러한다양한공격에대비하기위하여네트워크보안함수들도다양한기능들이요구되고있으며많은보안솔루션제조사들에의하여개발되고있다. 이와같이복잡해지고다양해진공격을차단하기위하여보안솔루션소비자들은 ( 회사네트워크관리자혹은서비스제공자 ) 일반적으로하나의보안솔루션을이용하기보다는다양한제조사에서개발된하나이상의보안솔루션들을혼합하여네트워크보안서비스들을제공한다. 즉서비스제공자는다양한제조사에의해개발되거나, 오픈소스로개발된네트워크보안함수들의혼합으로자신의고객들에게네트워크보안서비스를제공한다. 이와같이서비스제공자는다양한제조사에의해개발된네트워크보안함수들을혼합하여사용하므로네트워크보안함수들을감시혹은제어에관한표준인터페이스없이는네트워크보안서비스들을통합하여한번에관리하는것은사실상불가능하다 [1]. 이러한문제를해결하고자국제인터넷표준화기구 (Internet Engineering Task Force, IETF) 네트워크보안함수인터페이스 ( to Network Security Functions, I2NSF) 워킹그룹 (Working Group, WG)[1] 에서는네트워크보안서비스들을효율적으로관리하기위하여네트워크보안함수들을감시혹은제어에관한소프트웨어인터페이스 [2][3][4] 및표준데이터모델 [5][6][7] 을제정하고있으며이와관련된네트워크보안함수에관한프레임워크 [8] 를설계하고있다. 네트워크보안함수를위한프레임워크는 I2NSF 유저 (), 보안제어기 (Security Controller), 벤더관리시스템 (Vendor s Management System, VMS), 네트워크보안함수들로이루어져있으며구성요소들간의인터페이스로는 Consumer-Facing [2], NSF-Facing [3], Registration [4] 로이루어져있다. I2NSF WG에서는이와같은표준인터페이스를위하여 YANG 데이터모델 [9] 을이용하고있 30 정보와통신
으며 RESTCONF[10], NETCONF[11] 와같은프로토콜들을사용하여통신하고있다. 본논문에서는 IETF I2NSF WG에서제안하고있는 I2NSF 프레임워크기반으로데이터드리븐보안정책관리 (Datadriven Security Policy Management) 시스템을살펴보고이를바탕으로 Mininet[12], ConfD[13], Apache2[14], MySQL[15], OpenDaylight[16], XSLT[17], Suricata[18] 등의오픈소스를활용하여구현한 I2NSF 프레임워크를소개한다. 소개된 I2NSF 프레임워크는 IETF 해커톤 [19] 에서개발되었으며 Best University Award[20] 를수상하였다. 본논문은이전학술대회논문의향상된버전이다 [21]. Ⅱ. 본론 1. 네트워크보안함수를위한프레임워크 본섹션에서는보안솔루션관리자혹은서비스제공자는네트워크보안서비스들을효율적으로관리하기위하여 IETF I2NSF WG 에서설계한네트워크보안함수를위한프레임워크를소개한다. < 그림 1> 은 IETF I2NSF WG에서설계하고있는네트워크보안함수를위한프레임워크를보여준다. 1.1. 구성요소 Consumer-Facing Security Controller NSF-Facing NSFA1 NSFAn Management System A NSFB1 Registration System System Management System NSFBn Management System B 그림 1. 네트워크보안함수를위한프레임워크 본섹션에서는 I2NSF 프레임워크의구성요소를소개한다. < 그림 1> 에서보이는것과같이 I2NSF 프레임워크는 I2NSF 유저, 보안제어기, 벤더관리시스템, 네트워크보안함수들로 4개의구성요소로이루어진다. 1.1.1. I2NSF 유저 () I2NSF 유저는회사네트워크의보안관리자혹은서비스제공자가보안정책들을생성하거나관리하기위하여사용된다. I2NSF 유저는저수준 (Low-Level) 의네트워크보안함수들의성질을고려하지않고고수준 (High-Level) 보안정책 (Policy) 을생성하여 Consumer-Facing 를통하여보안제어기에게전달한다. 1.1.2. 보안제어기 (Security Controller) 보안제어기는 I2NSF 프레임워크에서가장중요한구성요소이다. I2NSF 유저로부터받은고수준보안정책들을저수준보안정책들로번역하며또한벤더관리시스템에서등록된네트워크보안함수들의기능들을관리한다. 즉 I2NSF 유저로부터받은고수준보안정책을등록된네트워크보안함수들의기능들에따라알맞은저수준보안정책으로번역하는역할을한다. 이와같이번역된저수준보안정책들은등록된네트워크보안함수들이제공하는기능들에따라 NSF- Facing 를통하여알맞은네트워크보안함수들에게전달한다. 1.1.3. 벤더관리시스템 (Vendor s Management System) 벤더관리시스템은네트워크보안함수를개발및제공하는보안솔루션벤더들에의하여관리된다. 다양한벤더에서개발된네트워크보안함수들은벤더관리시스템을통하여네트워크보안함수를위한프레임워크에등록될수있다. 이와같은등록은 Registration 를통하여이루어진다. 1.1.4. 네트워크보안함수 (NSFs) 방화벽 (Firewall), 심층패킷분석 (Deep Packet Inspection, DPI) DDoS 공격약화 (DDoS Attack Mitigation) 와같은네트워크보안함수들은보안정책규칙에따라원치않은네트워크트래픽을차단하거나약화시킨다. I2NSF 프레임워크에서는우선패킷헤더를분석할수있는방화벽과같은기본적인네트워크보안함수들을활용하여패킷들을검사한다. 만약추가적인검사가필요하다고판단되면, 심층패킷분석, 웹필터, DDoS 공격약화와같은다른네트워크보안함수들에게패킷들을전달하여추가적인검사를수행하게한다. 1.2. 인터페이스본섹션에서는 I2NSF 프레임워크의인터페이스를소개한다. < 그림 1> 에서보이는것과같이 I2NSF 프레임워크는 Consumer-Facing, NSF-Facing, Registration 로 3개의인터페이스로이루어진다. 1.2.1. Consumer-Facing Consumer-Facing 는 I2NSF 유저와보안제어기사이의인터페이스를말한다. 본인터페이스를통해보안관리 DECEMBER 2017 31
자들은네트워크보안함수들의성질및기능들을고려할필요없이보안관리자들에게친숙한고수준보안정책들을생성할수있으며생성된고수준보안정책들을보안제어기에전달할수있다. 이때보안제어기에서전달받은고수준보안정책들을저수준보안정책들로의번역을자동화하기위하여 I2NSF WG에서는 Consumer-Facing 를제정하고있으며표준데이터모델을위하여 YANG 데이터모델을이용하고있다. 또한 I2NSF 유저에서 Consumer-Facing 에맞춰생성된고수준보안정책들은 RESTCONF 프로토콜을통해보안제어기에게전달된다. 1.2.2. NSF-Facing NSF-Facing 는보안제어기와네트워크보안함수들사이의인터페이스를말한다. 본인터페이스를통해보안제어기는번역된저수준보안정책들을등록된네트워크보안함수들이제공하는기능에따라알맞은네트워크보안함수들에게전달할수있다. 이때다양한벤더에서개발된각기다른네트워크보안함수들의인터페이스로인해발생하는관리적인측면의문제를해결하고네트워크보안함수들의효율적인관리를위해 I2NSF WG에서는 NSF-Facing 를제정하고있으며표준데이터모델을위하여 YANG 데이터모델을이용하고있다. 또한보안제어기에서 NSF-Facing 에맞춰번역된저수준보안정책들을 NETCONF 프로토콜을통해네트워크보안함수들에게전달된다. 1.2.3. Registration Registration 는보안제어기와벤더관리시스템사이의인터페이스를말한다. 본인터페이스를통해보안솔루션벤더들은자사에서개발한네트워크보안함수들을보안함수들이제공할수있는기능들과함께등록할수있다. 이때다양한벤더에서의각기다른인터페이스로인해 I2NSF WG에서는 Registration 를제정하고있으며표준데이터모델을위하여 YANG 데이터모델을이용하였다. 이와같이벤더관리시스템에서 Registration 에맞춰생성된네트워크보안함수와보안함수들이제공할수있는기능들이나열된정책들은 NETCONF 프로토콜을통해보안제어기에게전달된다. 1.3. I2NSF 프레임워크보안서비스절차본섹션에서는 I2NSF 프레임워크에서의보안서비스절차를설명한다. < 그림 2> 는 I2NSF 프레임워크에서의보안서비스절차를보여준다. 절차는아래순서와같다. 1) 다양한벤더들은자사에서개발한네트워크보안함수들을 I2NSF 프레임워크에등록하기위하여그보안함수들이 ❺ Consumer-Facing ❷ ❸ Security Controller NSF-Facing NSFA1 NSFAn Management System A NSFB1 Registration NSFBn Management System B 제공할수있는기능들에관한정책들을생성하여벤더관리시스템에등록한다. 이때생성된네트워크보안함수들의기능들에관한정책들은 Registration 를통해보안제어기에등록된다. 2) 보안관리자는네트워크보안함수들을설정하기위하여유저인터페이스인 I2NSF 유저를통해고수준보안정책들을생성하여 Consumer-Facing 를통해보안제어기에게전달한다. 3) 보안제어기는전달받은고수준보안정책들을보안제어기에등록된네트워크보안함수들의기능들에따라알맞은저수준보안정책들로번역한다. 4) 보안제어기는번역된저수준보안정책들을 NSF-Facing 를통해보안제어기에등록되어있는네트워크보안함수들중에서그정책들을수용할수있는네트워크보안함수들에게전달한다. 5) 네트워크보안함수들은전달받은저수준보안정책들을자신의시스템에설정하여요구된보안서비스 ( 예, 방화벽, 심층패킷분석, DDoS 공격약화 ) 를수행한다. 2. 네트워크보안함수를위한프레임워크 ❹ ❺ 본섹션에서는 IETF I2NSF WG에서제안하고있는프레임워크타당성을검증하기위해구현한내용을보여준다. 실제네트워크환경속에서어떻게적용이될수있는지를회사네트워크시나리오에적용하여 I2NSF 프레임워크의타당성을검증하였으며, 본구현은 Mininet[12], ConfD[13], Apache2[14], MySQL[15], OpenDaylight[16], XSLT[17], Suricata[18] 등의오픈소스들을활용하여구현하였다. ❶ System System Management System 그림 2. I2NSF 프레임워크에서의보안서비스절차 32 정보와통신
2.1. 시나리오구성 우리는실제네트워크환경속에서 I2NSF 프레임워크가어떻 게적용이될수있는지를보여주기위하여회사내부네트워크에서의원치않은네트워크활동들을차단하는시나리오를적용하였다. Internet SW1 Security Controller Mininet SDN Controller < 그림 3> 는회사네트워크에적용한 I2NSF 프레임워크를보여준다. 그림 3에서보이는것과같이이와같은 I2NSF 프레임워크를구축하기위하여오직오픈소스만을활용하여구현하였다. < 표 1> 은 I2NSF 프레임워크를구축하기위하여사용된오픈소스들을보여준다. 가상의회사네트워크를구축하기위하여오픈소스인 Mininet을활용하여구축하였다. I2NSF 유저는웹기반어플리케이션으로구현되었으며보안관리자들은이를활용하여회사에서의원치않은네트워크활동들에대한고수준보안정 SW2 Enterprise Network Firewall SW3 NSFs Web Filter User 그림 3. 오픈소스를활용하여구현한 I2NSF 프레임워크 표 1. I2NSF 시스템에활용된오픈소스 오픈소스 Mininet[12] Apache2[14] PHP[22] MySQL[15] Python[23] XSLT[17] Suricata[18] Jetconf[24] ConfD[13] YANG[9] OpenDaylight[16] 역할가상네트워크환경구축웹서버구축서버스크립팅언어데이터베이스고수준프로그래밍언어문서변환 IDS/IPS RESTCONF 프로토콜통신 NETCONF 프로토콜통신표준데이터모델 SDN 컨트롤러, 패킷플로우제어 책들을생성하여차단할수있다. 이와같이웹기반어플리케이션으로구현된 I2NSF 유저는오픈소스인 Apache2, PHP, MySQL들을활용하여구현하였다. 고수준보안정책들을저수준보안정책들로번역하고네트워크보안함수들및그기능들을관리하는보안제어기는파이썬을통해구현하였다. 또한보안제어기에서고수준보안정책들을저수준보안정책들로번역하기위하여 XSLT 프로그램을사용하여번역하였다. 네트워크보안함수로써는방화벽보안서비스와웹필터보안서비스를제공하는네트워크보안함수를구현하였으며, 이는 IDS/ IPS로사용되는오픈소스인 Suricata를활용하여구현하였다. 인터페이스로는 RESTCONF 프로토콜에기반한 Consumer- Facing 는파이썬의오픈 API인 Jetconf API를활용하여구현하였으며, NETCONF 프로토콜에기반한 NSF- Facing 와 Registration 는 Cisco에서개발한오픈소스인 ConfD를활용하여구현하였다. 또한표준인터페이스데이터모델을위하여 IETF에서개발한 YANG 데이터모델을활용하여구현하였다. 마지막으로 Mininet에서의패킷흐름을제어하기위하여오픈소스인 OpenDaylight를활용하여상이한위치에서발생하는패킷흐름을제어하였다. I2NSF 프레임워크소스코드와문서들은프로그래머를위한소셜코딩공간인깃허브 (GitHub) https://github.com/ kimjinyong/i2nsf-framework 에서접근가능하며이와관련된비디오데모는유튜브 (YouTube) https://www.youtube. com/watch?v=frcnqx2afa4 에서접근가능하다. 2.1.1. 방화벽보안서비스시나리오방화벽보안서비스시나리오는회사내부네트워크에서의원치않은네트워크서비스를차단하기위하여패킷헤더의포트번호를검사하여차단한다. ❶ Internet SW1 Security Controller ❷ SDN Controller SW2 ❹ Malicious!! Firewall Web Filter SW3 그림 4. 방화벽보안서비스절차 User < 그림 4> 는 I2NSF 프레임워크에서의방화벽보안서비스절 ❸ NSFs DECEMBER 2017 33
차를보여준다. 절차는아래순서와같다. 1) 보안관리자는원치않은포트를사용하는유저의패킷을차단하기위하여이와관련된고수준보안정책들을생성하여 I2NSF 유저를통해보안제어기에게전달한다. 2) 고수준보안정책들을받은보안제어기는저수준보안정책들로번역후보안제어기에등록된방화벽보안서비스에게저수준보안정책들을전달하며, 전달받은방화벽보안서비스는해당보안정책들을자신의시스템에설정한다. 3) 만약회사내부에있는유저가회사에서원치않은포트를사용하고자한다면해당패킷은 SDN 컨트롤러를통해방화벽보안서비스함수에게전달된다. 4) 전달받은허용되지않는포트번호를사용하는패킷들은방화벽보안서비스함수에설정되어있는보안정책에따라차단된다. 2.1.2. 웹필터보안서비스시나리오웹필터보안서비스시나리오는회사내부네트워크에서의원치않은웹사이트로의접속을차단하기위하여패킷의데이터를검사하여차단한다. ❶ Security Controller ❷ SDN Controller NSFs Suspicious!! Malicious!! ❹ Firewall Web Filter❺ 보안서비스는해당보안정책들을자신의시스템에설정한다. 3) 만약회사내부에있는유저가회사에서원치않은웹사이트로접속을시도하고자한다면해당패킷은 SDN 컨트롤러를통해방화벽보안서비스함수에게전달된다. 4) 방화벽보안서비스함수는해당패킷의헤더를검사후해당패킷이웹브라우저와관련된프로토콜이나포트를사용시웹필터보안서비스함수에게해당패킷들을전달한다. 5) 전달된원치않은웹사이트로의접속을시도하는패킷들은웹필터보안서비스함수에설정되어있는보안정책에따라차단된다. Ⅲ. 결론 본고에서는 IETF I2NSF WG에서제안한네트워크보안서비스를위한프레임워크를살펴보았고, 데이터드리븐보안정책관리 (Data-driven Security Policy Management) 의타당성을검증하기위하여실제네트워크환경속에서어떻게적용이될수있는지를회사네트워크시나리오에적용하여타당성을검증하였다. 본구현은 Mininet[12], ConfD[13], Apache2[14], MySQL[15], OpenDaylight[16], XSLT[17], Suricata[18] 등오픈소스를활용하여구현되었다. 향후연구로써 Mininet 환경이아닌오픈스택 (OpenStack)[25] 을활용하여 ETSI의 NFV 환경환경에서 I2NSF 기반보안서비스시스템을구현할예정이다. SW2 ❸ Acknowledgement Internet SW1 SW3 User 본연구는과학기술정보통신부및정보통신기술진흥센터 그림 5. 웹필터보안서비스절차 의대학 ICT 연구센터육성지원사업의연구결과로수행되었음 (IITP-2017-2017-0-01633). < 그림 5> 는 I2NSF 프레임워크에서의웹필터보안서비스절 차를보여준다. 절차는아래순서와같다. 1) 보안관리자는원치않은웹사이트로접속을시도하는유저의패킷을차단하기위하여이와관련된고수준보안정책들을생성하여 I2NSF 유저를통해보안제어기에게전달한다. 2) 고수준보안정책들을받은보안제어기는저수준보안정책으로번역후보안제어기에등록된웹필터보안서비스에게저수준보안정책들을전달하며전달받은웹필터 참고문헌 [1] IETF I2NSF Working Group, to Network Security Functions (I2NSF), http://datatracker.ietf. org/wg/i2nsf [2] R. Kumar, A. Lohiya, D. Qi, N. Bitar, S. Palislamovic, L. Xia, and J. Jeong, Information 34 정보와통신
model for Client-Facing to Security Controller, IETF Internet Draft, draft-kumari2nsf-client-facing-interface-im-04, [3] L. Xia, J. Strassner, C. Basile, and D. Lopez, Information Model of NSFs Capabilities, IETF Internet Draft, draft-ietf-i2nsf-capability-00, September 2017. [4] S. Hyun, T. Roh, S. Wi, J. Jeong, and J. Park, Registration Information Model, IETF Internet Draft, draft-hyun-i2nsf-registrationinterface-im-03, [5] J. Jeong, E. Kim, T. Ahn, R. Kumar, and S. Hares, I2NSF Consumer-Facing YANG Data Model, IETF Internet Draft, draft-jeong-i2nsfconsumer-facing-interface-dm-04, [6] J. Kim, J. Jeong, J. Park, S. Hares, and Q. Lin, I2NSF Network Security Functions-Facing YANG Data Model, IETF Internet Draft, draftkim-i2nsf-nsf-facing-interface-data-model-04, [7] S. Hares, J. Jeong, J. Kim, R. Moskowitz, and Q. Lin, I2NSF Capability YANG Data Model, IETF Internet Draft, draft-hares-i2nsf-capability-datamodel-05, [8] D. Lopez, E. Lopez, L. Dunbar, J. Strassner, and R. Kumar, Framework for to Network Security Functions, IETF Internet Draft, draft-ietfi2nsf-framework-08, [9] M. Bjorklund, YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF), RFC 6020, October 2010. [10] A. Bierman, M. Bjorklund, and K. Watsen, RESTCONF Protocol, RFC 8040, January 2017. [11] R. Enns, Ed, M. Bjorklund, J. Schoenwaelder, and A. Bierman, Network Configuration Protocol (NETCONF), RFC 6241, June 2011. [12] Mininet, An instant virtual network on your laptop, http://mininet.org [13] ConfD, ConfD is a lightweight configuration management tool, http://www.confd.io/ [14] Apache2, HTTP Server Project, https://httpd. apache.org/ [15] MySQL, An open-source relational database management system. https://www.mysql.com/ [16] OpenDaylight, Collaborative open source project hosted by the Linux Foundation, https://www. opendaylight.org/ [17] XSLT, A language for transforming XML documents into other XML documents, https:// www.w3schools.com/xml/xsl_intro.asp [18] Suricata, A free and open source, mature, fast and robust network threat detection engine, https:// suricata-ids.org/ [19] IETF Hackathon, IETF Hackathon Program Contest, https://www.ietf.org/hackathon/ [20] Hackathon Award, Best University Award, https://communities.cisco.com/community/ developer/opensource/blog/2017/07/23/runningcode-is-king-at-ietf-99-in-prague/ [21] J. Kim and J. Jeong, Framework Development for Network Security Functions, SWCC 2017-Summer, August 2017. [22] PHP, PHP is a server-side scripting language designed primarily for web development but also used as a general-purpose programming language, http://php.net/ [23] Python, Python is a widely used high-level programming language for general-purpose programming, https://www.python.org/ [24] Jetconf, JetConf is an implementation of the RESTCONF protocol written in Python 3, https:// pypi.python.org/pypi/jetconf/0.3.4 [25] OpenStack, Open source software for creating private and public cloud, https://www.openstack.org/ DECEMBER 2017 35