Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Ia 2016-12-15

159 views

Published on

インターネットアーキテクチャ研究会 2016.12.15 第6回研究会

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

Ia 2016-12-15

  1. 1. Look-Ahead Left-Rightmost derivation法 のpcapファイル解析への適用 安藤類央 高倉弘喜 国立情報学研究所 サイバーセキュリティ研究開発センター インターネットアーキテクチャ研究会(IA)第6回研究会 2016年12月15日 14:55-15:20
  2. 2. 概要 近年、ネットワークの急速な高速化に伴い、大規模なpcapファ イルを解析するケースが増えてきている。 本論文では、LALR(Look-Ahead Left-Rightmost derivation)構文 解析法を用いて、pcapファイルから、解析に必要 な情報を抽出 する手法を提案する。本手法では、tcpdumpなどでパースする際 のパケットヘッダのうち、一部の項目 のみを変換するため、効 率的な処理が可能になる。 また、提案手法ではsemantic actionを適用することが可能にな り、ディスクI/Oの発生回数を抑えながら高速なリストのマッチ ングやDB操作を行うことが可能ある。
  3. 3. 研究の背景 • ネットワークの広帯域化と多様化 2016年時点で、ネットワークの広帯域化は急速に進展を続け ている。仮想 ネットワークと IoT 環境の普及は 2016 以降も急 激な加速化を続けると言 われており、IHS 社の推定によれば、 2013 年時点でインターネットにつな がるモノ(IoT デバイス) の数は約 158 億個であり、2020 年までに約 530 億個まで増大 するとされている。 • ネットワークフォレンジック ネットワークの広帯域化に加えて、ネットワークへの攻撃も 急速に多様化 しており、マルウェアによる感染や標的型攻撃に よる不正アクセスや情報 が搾取を、時点に完全に防止・抑止する ことは非常に難しくなっている。 このような現況で、インシデ ント発生後の証跡分析によって被害の実体を 明らかにするフォ レンジックの重要性が増している。
  4. 4. 提案手法(1) match - action によるパース処理の省力化 match action TCPDUMPを用いてヘッダ全体を解析する代わりに、 match-action処理で解析に必要な部分だけをパースする。 ヘッダ全体のパース結果から 解析対象の数値を抽出してINSERT の2段階処理 ヘッダの解析対象部分が マッチした時点でINSERTする1段階処理
  5. 5. 提案手法(2)字句解析と構文解析の連携 (bison/flex) Lexer "08 00" { return token::PROTOCOL_TYPE; } Parser header: | PROTOCOL_TYPE IP_LENGTH { /* semantic action */} %token <string> BYTE %token <string> PROTOCOL_TYPE %token <string> IP_LENGTH %union { int ival; double dval; char *string; }; 0800 Byte Stream Lexer "45 00" { return token::IP_LENGTH; } Lexer [a-z0-9][a-z0-9] { yylval->string = strdup(yytext); return token::BYTE; 45 00 * 任意のバイトはすべてマッチして メモリに格納 プロトコルヘッダにマッチする 部分はトークンのみを返す
  6. 6. 字句解析・構文解析の手法 • 再帰下降構文解析(さいきかこうこうぶんかいせき、Recursive Descent Parsing)は、相互再帰型の手続き(あるいは再帰的でない同等の手続 き)で構成されるLL法のトップダウン構文解析。実装例: Boost::spirit • LL法またはLL構文解析とは、文脈自由文法のサブセットのためのトップ ダウン構文解析法の一種。k 個の字句(トークン)を先読みする場合、 LL(k) と表記する。実装例:Java, ANTLR, Android • LRは、文脈自由文法の最右導出型の構文解析手法/構文解析器。 LALR は、 Lookahead-LR (先読み上昇型最右導出)の略。LALR(1) はLR 法に比較す ると、スタックと表 をコンパクトにまとめることが可能であり、より実 用的である。実装例:Bison/flex, PostgreSQL
  7. 7. 提案手法(3) MACアドレスの格納 45 0008 00 HEADER PROTO_TYPE IP_LENGTH COUNTER Byte stream ADDRESS RESET MATCH: STORE header: | PROTOCOL_TYPE IP_LENGTH i = strlen(dump); sprintf(srcmac,"%c%c%c%c%c%c% c%c%c%c%c%c", dump[i-24], dump[i-23], dump[i-22], dump[i- 21], dump[i-20], dump[i-19], dump[i-18], dump[i-17], dump[i- 16], dump[i-15], dump[i-14], dump[i-13]); parser bytes: | BYTE { printf("%s(%d) ", yyla.value.string, block_counter); strcpy(byte, yyla.value.string); lexer [a-z0-9][a-z0-9] { yylval->string = strdup(yytext); return token::BYTE; "08 00" { return token::PROTOCOL_TYPE; } "45 00" { return token::IP_LENGTH; } "08 00" "45" "00"にマッチした時点でメモリ(配列)に格納して いた文字列を変数srcmacに格納する。
  8. 8. 提案手法(4) Semantic action によるパース処理の高度化 match action 統計処理 機械学習処理 集計処理 Semantic actionを加えることにより、複数のPCAPファイルを処理中にデータベース操作や統計処理などが可 能になる。 db.access_logs.mapReduce( "function() { emit(this.packet_id, {count:1}); }", "function(key,values) { var result = {count:0}; values.forEach(function(v){result.count += v.count;}); return result; }", {query: packet_id:"10"},out:{inline:1}})
  9. 9. 評価実験に用いたPCAPファイル Security Related •activeosfingerprinting.pcap – An NMap OS fingerprinting scan •arppoison.pcap – Demonstration of ARP cache poisoning at the packet level •aurora.pcap – A lab system being exploited by the aurora exploit used against Google and others. Created using Metasploit. •ratinfected.pcap – A lab system infected with a remote access trojan sending data back to its upstream host •synscan.pcap – A basic TCP SYN scan Wireless Networking •80211beacon.pcap – An 802.11 wireless beacon packet collected from a WinPCap adapter •80211-WEPauth.pcap – A successful 802.11 wireless WEP authentication sequence •80211-WEPauthfail.pcap – A failed 802.11 wireless WEP authentication sequence •80211-WPAauth.pcap – A successful 802.11 wireless WPA authentication sequence •80211-WPAauthfail.pcap – A failed 802.11 wireless WPA authentication sequence Common Protocols •arp_gratuitous.pcap – A gratuitous ARP packet •arp_resolution.pcap – The ARP resolution process •dhcp_inlease_renewal.pcap – A DHCP client obtaining an IP address while inside its lease time •dhcp_nolease_renewal.pcap – A DHCP client obtaining an IP address while outside of its lease time •dns_axfr.pcap – A DNS full zone transfer •dns_query_response.pcap – A simple DNS query and response •dns_recursivequery_client.pcap – A recursive query as viewed from the clients perspective •dns_recursivequery_server.pcap – A recursive query as viewed from the intermediate servers perspective •http_espn.pcap – HTTP communication while browsing to ESPN.com •http_google.pcap – HTTP communication while browsing to ESPN.com •icmp_echo.pcap – A sample of ICMP echo requests and replies created by the ping tool •icmp_traceroute.pcap – Sample ICMP traffic generated by the traceroute tool •ip_frag_source.pcap – Fragmented IP packets •tcp_dupack.pcap – Duplicate ACK packets generated as a result of high latency •tcp_handshake.pcap – The TCP connection initiation process •tcp_refuseconnections.pcap – A TCP SYN followed by a RST from a failed communication attempt •tcp_retransmissions.pcap – Example of retransmissions that are a result of dropped packets •tcp_teardown.pcap – The TCP connection completion process •tcp_zerowindowdead.pcap – TCP flow control halting an established connection •tcp_zerowindowrecovery.pcap – TCP flow control stopping and then resuming an established connection
  10. 10. 評価実験1(DB操作なし) データタイプ パケット数 ファイル数 ファイルサイズ a 100940 18386k b 12858 18317k c 14086 18372k データタイプ 提案手法 tcpdump tcpdump a 3m29982 1m50.988 0m22.537 b 0m23.083 0m15.167 0m7.249 c 0m2.481 0m1.153 0m0.170
  11. 11. 評価実験2 (小さなpcapファイルと解析とDB操作) ip_frag_source.pcap – Fragmented IP packets -bash-4.1# ls ip_frag_source.pcap -alh -rw-r--r-- 1 root root 7.2K Apr 12 2011 ip_frag_source.pcap -bash-4.1# time ./parse < dump-ip_flag_source > tmp real 0m0.033s user 0m0.028s sys 0m0.005s -bash-4.1# time tcpdump -XA -vv -r ip_frag_source.pcap > tmp reading from file ip_frag_source.pcap, link-type EN10MB (Ethernet) real 0m0.012s user 0m0.004s sys 0m0.006s -bash-4.1# time grep length tcpdump-ip_flag_source | cut - d"," -f7 -bash-4.1# time ./test-insert.sh tmp real 0m1.115s user 0m0.928s sys 0m0.146s Twitter_dm.pcap - Twitter direct message -bash-4.1# ls -alh twitter_dm.pcap -rw-r--r-- 1 root root 4.4K Apr 12 2011 twitter_dm.pcap -bash-4.1# time ./parse < dump-twitter_dm > tmp real 0m0.026s user 0m0.022s sys 0m0.003s -bash-4.1# time tcpdump -XA -vv -r twitter_dm.pcap > tmp reading from file twitter_dm.pcap, link-type EN10MB (Ethernet) real 0m0.456s user 0m0.008s sys 0m0.001s -bash-4.1# time grep length tcpdump-twitter_dm | cut -d"," -f7 -bash-4.1# time ./test-insert.sh tmp2 real 0m3.898s user 0m3.186s sys 0m0.589s
  12. 12. 評価実験3 (大きいpcapファイルの解析とDB操作) ratinfected.pcap – A lab system infected with a remote access trojan sending data back to its upstream host -bash-4.1# ls ratinfected.pcap -alh -rw-r--r-- 1 root root 558K Apr 12 2011 ratinfected.pcap -bash-4.1# time ./parse < dump-ratinfected > tmp real 0m2.520s user 0m1.327s sys 0m0.025s -bash-4.1# time tcpdump -A -r ratinfected.pcap > tmp reading from file ratinfected.pcap, link-type EN10MB (Ethernet) real 0m0.074s user 0m0.025s sys 0m0.006s -bash-4.1# time grep length tcpdump-ratinfected | cut -d"," -f7 -bash-4.1# time ./test-insert.sh tmp real 3m23.138s user 2m51.618s sys 0m29.775s Download-fast.pcap Fast-download # ls -alh download-fast.pcap -rw-r--r-- 1 root root 85M Apr 8 2011 download-fast.pcap -bash-4.1# time ./parse < dump > tmp real 3m50.127s user 3m45.217s sys 0m2.540s -bash-4.1# time tcpdump -XA -vv -r download-fast.pcap > tmp reading from file download-fast.pcap, link-type EN10MB (Ethernet) real 0m24.763s user 0m12.626s sys 0m0.701s -bash-4.1# time grep length tcpdump-download-fast | cut -d"," -f7 -bash-4.1# time ./test-insert.sh list real 36m52.282s user 31m11.860s sys 5m26.755s
  13. 13. まとめと今後の課題 近年、ネットワークの急速な高速化に伴い、大規模なpcapファ イルを解析するケースが増えてきている。 本論文では、LALR(Look-Ahead Left-Rightmost derivation)構文 解析法を用いて、pcapファイルから、解析に必要 な情報を抽出 する手法を提案する。本手法では、tcpdumpなどでパースする際 のパケットヘッダのうち、一部の項目 のみを変換するため、効 率的な処理が可能になる。 今後の課題としては、データベース(RDB、KVS)へのクエリ発 行回数を削減(キャッシュ)し、より高速化を図ることなどがあ げられる。

×