The advancement of Software Defined Networking (SDN) redefines traditional computer networking architecture. The role of control plane of SDN is so important that it is called network operating system. However, research on robustness or security issues of network operating system has been overlooked. In this thesis, we report three main issues on network operating system. First, we find vulnerabilities that can be exploited by malicious or buggy applications running on a network operating system. We have identified four major attack vectors that could undermine its operations: Denial of service, Global data manipulation, Control plane poisoning, and System shell execution. We also demonstrate real attacks on the widely used network operating systems without significant effort. Second, we present a method to address the attacks. We analyze network applications running on top of network operating systems, identify their behavioral features, and extract permission set for each network application. With the method, we introduce a permission based malicious network application detector, which examines the permission of each application and prevents its executions without permission. Our system shows almost no performance overhead. Third, we propose a way of security enhanced future network OS with our application analysis results. The results suggest i) separation of internal data among applications, ii) separation of privileges between network OS and user applications, iii) authentication mechanism to access internal database and management channel.
소프트웨어 정의 네트워크는 전통적인 컴퓨터 네트워크 구조를 새롭게 정의한다. 소프트웨어 정의 네트워크의 제어 평면은 네트워크 운영 체제라고도 불린다. 그러나 네트워크 운영 체제의 견고성과 보안성에 대한 연구는 간과되고 있다. 본 논문에서, 우리는 네트워크 운영 체제의 세 가지 주요 쟁점을 발표한다. 첫째, 우리는 네트워크 운영체제를 네 가지 방식으로 공격하는 데 이용될 수 있는 취약점을 발견하고, 악성 또는 버그가 있는 응용 프로그램이 이 취약점을 이용할 수 있음을 보인다. 또한, 이 취약점을 실제로 널리 사용되는 네트워크 운영 체제를 공격하는 데 성공하였다. 둘째, 우리는 이 공격을 막을 수 있는 방법을 제시한다. 이를 위해, 우리는 네트워크 운영 체제에서 동작하는 여러 네트워크 응용 프로그램을 분석하여 행위적인 특성을 확인하고 각각의 퍼미션을 추출한다. 이를 통해 네트워크 운영 체제에서 동작하는 악성 응용 프로그램의 작동을 퍼미션 기반으로 성능에 영향을 미치지 않으면서 탐지 및 실행을 차단한다. 셋째, 우리는 각 응용 프로그램 분석을 토대로, 보안이 강화된 새로운 네트워크 운영 체제를 만드는 방법을 제시한다. 새로운 네트워크 운영체제에서 고려되어야 할 사항은 1) 네트워크 응용 프로그램이 내부 자료 구조를 공유하지 않도록 만들기, 2) 네트워크 운영 체제와 응용프로그램 사이에 권한 분리를 할 것, 3) 내부 데이터베이스와 운영 채널에 접근하기 위해 인증 과정을 거칠 것 등이다.