고속통신패킷저장및분석을위한 시계열데이터베이스의활용 Input Save Analysis Database 인피니플럭스
Table of Contents 1 2 3 4 전통적인 DBMS 특징패킷분석에서 DBMS의한계신개념시계열 DBMS 고속데이터처리를위한신기술 5 패킷분석아키텍처 6 성능비교 7 발전방향
1. 전통적인 DBMS 특징
데이터관리 1. 전통적인 DBMS 특징 Transaction 모든데이터연산에대해트랜잭션 Atomicity, Consistency, Isolation, Durability Savepoint, Commit, Rollback Data Management in a traditional DBMS Index B+ Tree 를기본으로활용 Global 인덱스이며, 해당인덱스에전체레코드정보가저장 트랜잭션지원을위한로깅및 Recovery 연산비용과다 이러한이유로처리성능이수천건 / 초에불과 Insert Data 초당 5000 건이상입력하기매우힘듦 트랜잭션제공을하기위한로깅비용이매우큼 인덱스갱신비용이매우큼 데이터보다인덱스량이더커짐에따라시스템성능저하 4
조회성능 1. 전통적인 DBMS 특징 Concurrency Control 기본적으로 Record Level Locking 을제공 Consistency Read Non Consistency Read (Record Lock confliction 발생 ) Query performance in a traditional DBMS Full Text Search 데이터베이스에서텍스트검색은지원하지않음 LIKE 구문을활용 LIKE 사용시모든레코드에대한 Full Scan 이발생하여매우느림 사실상풀텍스트검색용도로는사용이불가능 Query Performance 전통적인 DBMS 는 OLTP 에강점을가짐 데이터의분포도가높은경우질의성능이좋음 B+ Tree 를기반으로동작하며, 가장효율이좋은하나의인덱스를결정하고사용함 통계분석을위한질의는매우느림 5
적용분야 1. 전통적인 DBMS 특징 트랜잭션을통해보관되어야하는정보 은행거래를위한금전정보및주요개인식별정보 전통적데이터베이스에중요하게보관되어야하는정보 시간의흐름과무관하며, 변경되거나삭제될수있는정보 6
2. 패킷분석에서 DBMS 의한계
패킷수집아키텍처 2. 패킷분석에서의 DBMS 의한계 패킷분석을위해서는분석을위한 network node에서 sniffer program을이용하여 packet을파일로저장하여분석 Packet analysis을위해서는분석을위한 network node에서 sniffer program을이용하여 packet 을저장하여분석 Switch Packet DATA Sniffer - TCP dump - Sniffer - Wireshark - Smart sniffer Save Packet DATA (PCAP File) 010101 011010010101 011100011010 010101 011100011010 011100 Network node 장비 8
패킷분석아키텍처 2. 패킷분석에서의 DBMS 의한계 패킷데이터가파일로저장될경우단순 filter를이용하여분석을수행해야하며, 대용량데이터분석이불가능 Packet analysis을위해서는분석을위한 network node에서 sniffer program을이용하여 packet 을저장하여분석 Packet DATA (PCAP File) 010101 011010010101 011100011010 010101 011100011010 011100 Read data Sniffer - TCP dump - Sniffer - Wireshark - Smart sniffer Filter Full Scan 대시보드 분석서버 리포팅서버 9
패킷분석에 DBMS 사용한계 2. 패킷분석에서의 DBMS 의한계 전통적인 DBMS 를이용하여패킷데이터분석을위해서는 Packet analysis을위해서는분석을위한 network node에서 sniffer program을이용하여 packet 실시간데이터을저장하여입력이분석불가능하여 저장된데이터의일부만 DBMS 에입력하여분석 Switch DBMS SQL 쿼리 대시보드 Network node 장비 결과값 분석서버 010101 011010 010101 011010 010101 011010 Packet DATA (PCAP File) 리포팅서버 10
3. 신개념시계열 DBMS
InfiniFlux 개요 3. 신개념시계열 DBMS InfiniFlux 는대량으로발생하는시계열머신로그데이터를실시간으로저장및분석하는혁신적인기술의 DBMS 서버 분석서버 로그발생 보안 로그 / 이벤트저장 InfiniFlux SQL 쿼리 결과값 대시보드 기운영체제 통신장비 리포팅서버 센서 관리시스템 12
데이터처리요구사항 3. 신개념시계열 DBMS 데이터의실시간수집 데이터의분석 다수의원시소스로부터 초당수만 ~ 수십만건저장 수분 ~ 수시간의통계분석및저장 데이터의실시간모니터링 실시간인덱싱및압축 실시간질의처리 요구사항 데이터의백업및빠른복구 시계열기반의빠른백업 과거데이터실시간확인 데이터의예측 시계열예측알고리즘을통한위험 방지 13
데이터처리문제점 3. 신개념시계열 DBMS 데이터의실시간저장 단순파일적재 => 데이터검색불가능, 인덱스필요 저장및인덱스 => 성능하락 데이터의분석 수천만 ~ 수억건의데이터검색 다양한컬럼조건들 => 단순검색이아님 => 다수시계열조건의질의문발생 => 대규모읽기, 쓰기 I/O 동시발생 실시간인덱스생성 전통적 DBMS 인덱스 (B+Tree) => 매우느린성능 Fractal, Global Bitmap 인덱스 => 10,000 TPS 이상힘듦 문제점 데이터의백업및빠른복구 특정시간영역의데이터실시간보관 특정시간영역의실시간접근, 분석필요 저장공간 + I/O bandwidth 1K Payload, 100,000 TPS = 8,046 TB/Day(100MB/Sec) HDD : 100MB/Sec SSD : 500MB/Sec 14
제품포지셔닝 x 1,000,000 Real-time data entry Data freshness x Real-time data entry Batch oriented Big Data Analytics Real-Time Big Data Analytics 3. 신개념시계열 DBMS Text File ParStream InfiniFlux HADOOP Enhanced HADOOP Solutions Splunk x 100,000 Conventional Analytics Conventional OLTP/OLAP x 10,000 BI Solutions Clustered Columnar DBMS Engineered System (ExaData) Columnar DBMS In-Memory DBMS X 1000 Very old (hours) Old (minutes) Disk DBMS Current (seconds) Data Freshness 15
주요기능 3. 신개념시계열 DBMS 수집 로그수집기제공으로다양한데이터원천소스로부터데이터수집가능 데이터 import/export 유틸리티제공 쉽게데이터입력프로그램구성하도록라이브러리와예제제공 저장 초고속데이터입력, 초당 100,000 건이상데이터저장가능 실시간인덱스생성저장으로데이터입력과동시에검색가능 실시간데이터압축저장으로저장공간절약 분석 표준 SQL 지원및익숙한데이터베이스관리환경지원 인터넷주소타입, 무부호정수형타입, LOB( 최대 64MB) 타입등다양한데이터타입지원 시계열기반확장 SQL 구문지원 (_arrival_time, duration) 시각화 Dashboard, Graph, Chart 등사용자친화적웹 GUI 제공 표준인터페이스제공으로다른 BI 솔루션과연동가능 R, Tableau 등데이터분석툴과간단하게연동가능 관리 혁신적인데이터백업, 복구, 마운트기능제공 웹 UI 를통한시스템모니터링, 설정변경가능 다양한시스템운영및관리정보제공 16
4. 고속데이터처리를위한 신기술
표준 SQL 4. 고속데이터처리를위한신기술 표준 SQL 인터페이스 ODBC, CLI, JDBC, RESTful API 지원 Join, subquery, group by, having, order by 다양한데이터타입지원 인터넷주소타입지원 : IPv4, IPv6 무부호정수형타입 : unsigned type (16, 32, 64 bit) LOB 지원 ( 최대 64MB) : text, binary 18
시계열 SQL 4. 고속데이터처리를위한신기술 나노세컨드단위의 timestamp 자동저장 데이터입력순간숨은칼럼 (_arrival_time) 에 nano second 를자동으로저장 조회시가장최근에입력된데이터부터시간의역순으로출력 DURATION 키워드제공 데이터검색할때시간범위를쉽게지정하기위해서제공되는키워드 현재시각기준 10 분전까지데이터의합계를구하는경우 SELECT SUM(traffic) FROM T1 DURATION 10 minute; 현재시점에서한시간이전부터 10 분간데이터의합계를구하는경우 SELECT SUM(traffic) FROM T1 DURATION 10 minute BEFORE 1 hour; 19
다중디스크 (Multi Disk) 4. 고속데이터처리를위한신기술 다중디스크를활용한 Throughput 향상 대량의데이터입력, 검색시단일디스크에대한 IO 집중으로병목현상발생 데이터와인덱스를분산디스크에각각저장하여 IO 분산으로입력및검색성능향상 입력과검색이다른디스크에서수행되므로서로영향을주지않음 input 입력속도 (TPS) TPS tablespace 10 만 Disk Disk Disk 0 1 2 3 4 5 6 7 8 디스크수 20
LSM(Log Structured Merge) 인덱스 4. 고속데이터처리를위한신기술 대용량데이터처리에적합한인덱스 빠른데이터증가환경에서고속검색지원기술 로컬인덱스와글로벌인덱스의장점을취해만든혁신적인인덱스기술 일반서버환경에서 10 억건중 1 건검색시간 0.5 초 검색시간 LEVEL 0 1 100 만 10 100 만 1 100 만 10 100 만 1 100 만 LSM 인덱스적용전 1 초 LEVEL 1 1 1000 만 10 1000 만 1 1000 만 LSM 인덱스적용후 0.5 초 LEVEL 2 1 1 억 0 1억 10억 100억데이터건수 21
휘발성테이블 (Volatile Table) 4. 고속데이터처리를위한신기술 마스터정보관리용휘발성메모리테이블제공 Primary Key 기반초고속실시간입력, 수정, 삭제가능 로그테이블과의빠른조인 (join) 을통한데이터분석지원 서버재기동시테이블스키마는유지, 데이터는재로딩필요 Log table Volatile table syslog Network packet weblog JOIN 코드정보 상태정보 메타정보 USER ID ACTION CODE iflux 99 입력, 선택적삭제 After join 입력, 수정, 삭제 iflux login Disk Memory 22
Full Text Search 4. 고속데이터처리를위한신기술 빠른텍스트키워드검색기능제공 RDBMS의 LIKE 와유사한 SEARCH 구문제공 키워드인덱스를이용하여빠른검색가능 영문뿐만아니라 UTF-8 형식의한글, 중국어, 일본어문자검색도가능 SEARCH 검색시간 ( 초 ) 80 1 억건중 200 만건검색 SELECT message FROM textsearch WHERE message SEARCH ERROR 500 ; 70 60 50 40 30 20 72.7 58.4 102 배빠름 10 0 MySQL LIKE InfiniFlux LIKE 0.7 InfiniFlux SEARCH 23
IP Address Type 4. 고속데이터처리를위한신기술 편리한 IP Address Type 지원 제품엔진레벨에서 IPv4, IPv6 데이터타입지원 Network Mask 형식지원및편리한연산자와함수제공 간단하고빠르게 IP 주소에대한저장과검색가능 CREATE INSERT SELECT CREATE TABLE addrtable ( srcip ipv4, dstip ipv6 ); INSERT INTO addrtable VALUES ( 127.0.0.1, ::127.0.0.1 ); SELECT srcip FROM addrtable WHERE srcip = 192.168.0.* ; SELECT srcip FROM addrtable WHERE srcip CONTAINED 192.168.0.0/16 ; 24
백업 & 마운트 4. 고속데이터처리를위한신기술 혁신적인마운트기능으로빠른백업데이터조회 마운트 백업된데이터정보를데이터로딩없이즉시조회할수있는기능 데이터베이스단위및테이블단위백업, 마운트지원 로컬디스크, NFS, HDFS 저장공간에백업, 마운트가능 과거 현재 2016-02-29 2016-03-01 2016-03-02 2016-03-03 2016-03-04 2016-03-05 backup mount 2016-02-29 2016-03-01 2016-03-02 2016-03-03 2016-03-04 LOCAL NFS HDFS 25
데이터압축 4. 고속데이터처리를위한신기술 고성능데이터압축으로저장공간절약 논리적, 물리적 2 단계데이터압축저장 원본대비수배 ~ 수십배압축 시스템부하최소화및데이터입력, 검색성능향상 13GB 4.1GB 68.5% 압축 26
5. 패킷분석아키텍처
InfiniFlux 활용아키덱처 5. 패킷분석아키텍처 Packet 캡처를통하여원시데이터를수집한후 packet header 의내용을 InfiniFlux 에저장원본데이터는 PCAP 파일로별도저장후조회시활용 Switch 수집 meta (header) real time insert InfiniFlux SQL 쿼리 결과값 대시보드 분석서버 010101 011010 010101 011010 010101 011010 Packet DATA (PCAP File) 리포팅서버 28
테스트환경 5. 패킷분석아키텍처 전통적인 DBMS 의경우실시간입력이불가능하여저장된패킷헤더내용을 CSV 파일로만들어테스트진행 데이터의실시간저장 하드웨어사양 - CentOS 6.6 - Intel(R) Core(TM) i7-4790 CPU @3.60GHz(4 core) - 32GB memory - SATA DISK 데이터의실시간저장 테스트대상 - InfiniFlux 2.5 - MySQL 5.7 (MyISAM) 테스트순서 전체 1억 6천만건의데이터를 CSV 파일을통한 DATA Insert 속도측정 전체데이터에대한통계분석 전체데이터에서 Port Scan 을찾는분석을진행 특정세션복원을위한분석진행 29
성능비교 Table Schema 5. 패킷분석아키텍처 Table name: PACKET_DATA STIME PROTO COL SRC_ PORT DST_ PORT PACKE T_ELN SRC_IP DST_IP SRC_ MAC DST_ MAC FILE_ NAME FILE_ OFFSET TCP_ FLAG Data Type date Time short integer integer integer IPv4 IPv4 Varchar (20) Varchar (20) Varchar (512) ulong short Data Range 발생시간 Protoc ol num Source port Destin ation port 길이 Source IP Destin ation IP Source MAC destina tion MAC 파일이름 파일오프셋 TCP Flag Sample Data SRC_MAC DST_MAC SRC_IP DST_IP SRC_PORT DST_PORT 00:8c:fa:3a:28:85 ff:ff:ff:ff:ff:ff 192.168.0.131 192.168.0.255 137 137 a0:1d:48:b3:fa:b0 00:26:66:d5:bf:84 192.168.0.151 5.9.12.237 64462 80 00:26:66:d5:bf:84 a0:1d:48:b3:fa:b0 5.9.12.237 192.168.0.151 80 64462 00:26:66:d5:bf:84 a0:1d:48:b3:fa:b0 5.9.12.237 192.168.0.151 80 64462 a0:1d:48:b3:fa:b0 00:26:66:d5:bf:84 192.168.0.151 5.9.12.237 64462 80 30
6. 성능비교
성능비교 6. 성능비교 InfiniFlux 가데이터입력과압축성능이월등함 60 압축성능 (GB) 50 51 40 30 20 17 21 10 7.1 0 원본 INFINIFLUX MySQL(MyISAM) MySQL(InnoDB) 데이터입력시간과검색시간을종합하여계산함 InfiniFlux 는원본크기보다 58.2% 압축됨.(7.1GB/17GB) 32
통계분석 6. 성능비교 1. 저장된총 data 건수? Select count(*) from packet_data; InfiniFlux MySQL count(*) ----------------------- 163356883 [1] Row Selected. Elapsed Time : 0.001 0.001s 0.17s 2. 저장된 data 의시간범위? Select min(stime),max(stime) from packet_data; InfiniFlux MySQL min(stime) max(stime) --------------------------------------------------------------- 2008-07-22 10:51:07 2016-02-11 17:52:29 [1] Row Selected. Elapsed Time : 0.003 0.003s 40.42s 33
통계분석 6. 성능비교 3. 특정 network 에서다른 network 으로의접속현황? SELECT src_ip, count(src_ip) from packet_data where src_ip contained '192.168.0.0/24' and dst_ip not contained '192.168.0.0/24' group by src_ip order by 2 desc; src_ip count(src_ip) ---------------------------------------- 192.168.0.151 49802 192.168.0.4 312 192.168.0.1 288 ~ 192.168.0.209 2 192.168.0.236 2 192.168.0.28 1 [22] Row Selected. Elapsed Time : 0.001 InfiniFlux MySQL 0.001s 0.43s MySQL은 IP type 미지원으로다음쿼리사용 SELECT src_ip, count(src_ip) from packet_data where src_ip like '192.168.0.%' and dst_ip not like '192.168.0.%' group by src_ip order by 2 desc; 34
통계분석 6. 성능비교 4. web 접속현황 top 10 SELECT src_ip, count(dst_port) From packet_data InfiniFlux MySQL where dst_port = 80 or dst_port = 443 group by src_ip,dst_port order by 2 desc limit 10; 0.001s 0.52s src_ip count(dst_port) ---------------------------------------- 10.128.0.6 90420 192.168.0.151 47209 192.168.15.4 31150 192.168.1.64 5061 172.16.254.128 3665 10.128.0.1 3074 192.168.15.4 1856 192.168.0.151 1751 10.0.1.245 1500 10.0.1.51 1336 [10] Row Selected. Elapsed Time : 0.001 35
Port Scan 6. 성능비교 1. 목적지 port 번호가 1024 보다작고 port 가 1000 번이상변경된 IP? SELECT src_ip FROM packet_data InfiniFlux MySQL WHERE dst_port < 1024 GROUP BY src_ip HAVING COUNT(DISTINCT dst_port) > 1000; 0.000s 242.39s src_ip ------------------ 192.168.0.151 [1] Row Selected. Elapsed Time : 0.000 36
Port Scan 6. 성능비교 2. 1 의결과로나온 Source IP 의 Destination IP 접속현황 TOP 10 select src_ip, dst_ip, count(dst_ip) from packet_data where src_ip ='192.168.0.151' group by src_ip,dst_ip order by 3 desc limit 10; src_ip dst_ip count(dst_ip) --------------------------------------------------------- 192.168.0.151 5.9.12.237 40417 192.168.0.151 192.168.0.11 3076 192.168.0.151 203.133.172.61 1878 192.168.0.151 113.29.189.48 1011 192.168.0.151 203.133.166.61 533 192.168.0.151 203.248.252.2 443 192.168.0.151 217.160.127.1 321 192.168.0.151 192.168.0.41 290 192.168.0.151 211.244.82.174 246 192.168.0.151 203.133.172.21 243 [10] Row Selected. Elapsed Time : 0.178 InfiniFlux MySQL 0.178s 0.13s 37
Port Scan 6. 성능비교 3. Destination IP 의 port 접속현황분석 select src_ip, dst_ip, dst_port, count(dst_port) from packet_data InfiniFlux MySQL where src_ip ='192.168.0.151' and dst_ip = '192.168.0.11' group by src_ip, dst_ip, dst_port order by 4 desc; 0.021s 0.04s src_ip dst_ip dst_port count(dst_port) ---------------------------------------------------------------------- 192.168.0.151 192.168.0.11 137 6 192.168.0.151 192.168.0.11 21 4 192.168.0.151 192.168.0.11 1012 3 192.168.0.151 192.168.0.11 325 3 ~ 192.168.0.151 192.168.0.11 285 3 192.168.0.151 192.168.0.11 348 3 [1024] Row Selected. Elapsed Time : 0.021 38
Port Scan 6. 성능비교 4. Port Scan 발생시간 select min(a.stime) as start_time, max(a.stime) as stop_time InfiniFlux MySQL from (select stime from packet_data where src_ip ='192.168.0.151' and dst_ip = '192.168.0.11') as a; 0.016s 0.05s start_time stop_time ------------------------------------------------------------------- 2016-02-04 10:24:21 2016-02-04 10:41:47 [1] Row Selected. Elapsed Time : 0.016 39
세션복원 6. 성능비교 1. Meta data 를통한세션복원 select stime, src_ip, dst_port, file_name, file_offset, tcp_flag from packet_data where (src_ip = '192.168.0.151' or src_ip = '106.243.125.195') and (dst_ip = '192.168.0.151' or dst_ip = '106.243.125.195') and (src_port = 8888 or src_port = 64945) and (dst_port = 8888 or dst_port = 64945) order by 1; InfiniFlux MySQL 0.013s 0.06s 40
성능비교표 6. 성능비교 InfiniFlux MySQL during time(sec) 871(14M31s) 3054(50m 54s), Record count 163,356,883(1 억 6 천만건 ) Count(*) 0.001s 0.17s 분석 Min(), Max() 0.003s 40.42s 네트워크접속현황 0.001s 0.43s Web 접속 top 10 0.001s 0.52s Port 변경 0.000s 242s(4m 2.39s) Port scan Source IP 의접속 top 10 0.178s 0.13s Destination IP 접속 port 0.021s 0.04s 발생시간 0.016s 0.05s 세션복원세션복원 0.013s 0.06s 총분석시간 876.22s 3,338.21s 41
6. 구축사례
사이버블랙박스 6. 구축사례 사이버공격의증거보존 / 원인분석을통한대규모침해사고에대한 Intelligence 분석 Switch 010101 011010 011100 010101 011010 011100 공격 Packet DATA InfiniFlux 보안위협정보공유 RBL 악성코드 url C- TAS 사이버블랙박스 침해공격원인분석 침해정보 Intelligence 분석 43
7. 발전방향
패킷데이터스트림저장 7. 발전방향 패킷헤더와동시에데이터스트림까지모두저장하여분석및세션재현 데이터의실시간저장 현재저장구조 Header DATA InfiniFlux Packet DATA (PCAP File) 현재 packet header만 DB에저장 전체 Packet은 pcap 파일로저장 분석결과를재생하기위해서는 offset 칼럼을이용 데이터의실시간저장 개선저장구조 Header DATA InfiniFlux Packet DATA (PCAP File) packet 전체를 DB 에저장 DATA 부분은 binary type 으로저장 PCAP 파일은 InfiniFlux 를통하여생성 45
멀티노드를통한대용량데이터저장 7. 발전방향 대규모의네트워크를위한멀티노드구성 Switch 수집 Multi-Node InfiniFlux Switch 수집 대시보드 Switch 수집 real time insert InfiniFlux SQL 쿼리 결과값 분석서버 Switch 수집 InfiniFlux 리포팅서버 46
Thank You Website : www.infiniflux.com 인피니플럭스 Email Tel : : sales@infiniflux.com 02-2038-4606