$30 off During Our Annual Pro Sale. View Details »

セキュリティ・キャンプ全国大会2018

Daiki Yamakawa
October 10, 2018
270

 セキュリティ・キャンプ全国大会2018

集中開発コースのZトラック(アンチウイルス実装ゼミ)に参加したまとめです。

Daiki Yamakawa

October 10, 2018
Tweet

Transcript

  1. セキュリティ・キャンプ
    全国大会2018
    ~Zトラック参加記~
    山川 大貴
    @dai_shopper3

    View Slide

  2. 目次
     Zトラックの概要
     Zトラック(Z2コース)でやったこと
     まとめ
    2

    View Slide

  3. Zトラックの概要
    このセクションのみ忠鉢先生のスライドを許可を得て、引用・編集して使用しています
    https://speakerdeck.com/yuzuhara/wrapup-z-2018 3

    View Slide

  4. 4

    View Slide

  5. Zトラックのコース紹介
     Z1:高品質なELFマルウェアシグネチャ(yara)の作成
     Z2:高精度なELFマルウェア分類・検知
     Z3:yaraシグネチャマッチングの高速化
     Z4:圧倒的高速なIDS(パケットフィルタ)の実装
    5

    View Slide

  6. Zトラックの最強講師陣
     Z1:アンドリアン ヘンドリック (@unixfreaxjp) 株式会社ラック
     Z1:丑丸 逸人(@ucq) 株式会社サイバーディフェンス研究所
     Z2:大居 司(@a4lg) リサーチエンジニア
     Z2:忠鉢 洋輔(@ybachi) 株式会社アクティブディフェンス研究所/筑波大学
     Z3:新屋 良磨 (@sinya8282) 秋田大学 助教
     Z4:浅田 拓也(@syuu1228) ScyllaDB
     Z4 : 城倉 弘樹(@slankdev) NTTコミュニケーションズ株式会社
    6

    View Slide

  7. Zトラックの流行語
    7

    View Slide

  8. Zトラックの流行語
    8

    View Slide

  9. Z2コースで学んだこと
    9

    View Slide

  10. Z2コースの到達目標
     ELFマルウェアの検出・分類
     特徴量の抽出・分類器の作成
     決定木アルゴリズムの利用
     ELFファイルの完全理解
    10

    View Slide

  11. 事前課題
    (キャンプ初日までの課題)
     ELFファイル構造の勉強
     ELFのセクション名を読み取るプログラムの作成
    11

    View Slide

  12. 特徴量の抽出
     課題1:ELFファイルから動的リンクヘッダの文字列テーブルを読んでみる
     課題2:VirusTotalの結果を用いてベンダーごとに検知できた個数を表示する
     VirusTotalから取得したjsonファイルの加工
     マルウェア検体の総数(3704個)
     Fussy Hashingの勉強
     ssdeepコマンド:類似度を出力してくれる
     課題3:特徴量の取得をするプログラムを作成
    12

    View Slide

  13. Fuzzy Hashingについて
    元のファイルのFuzzy Hashing値
    12:RxRvIcAQhAYIeaPvS1QWf7eVSsliCwoUjQlWoUjlJLGoXdFloqUkMN1YTPt4B:RnAcAQhA
    YoS1QMeVSslWooQlWoolhGtV
    編集済みファイルのFuzzy Hashing値
    12:RxRvIcAQhAYIeaPvS1LaVSsliCwoUjQlWoUjlJLGoXdFloqUkMN1YTPt4B:RnAcAQhAYoS1
    2VSslWooQlWoolhGtqU3
    →マルウェアの亜種検知に使える
    少し編集を加える
    13

    View Slide

  14. 動的リンクヘッダとFuzzy Hashing
     動的リンクヘッダの文字列テーブルを抽出する意味
     共有ライブラリ名が書かれている
     抽出した文字列テーブルをFuzzy Hashingを取って比較
    似たような共有ライブラリを使っているマルウェアの亜種を検知できる
    14

    View Slide

  15. 判定器の作成
     特徴量からマルウェアの判定器を作る
     ELFファイル(マルウェア)の分析
     ソースコードを読む(今回はたまたまソースコードがあった)
     特徴的な文字列を発見する
     Fuzzy Hashingを比較
    15

    View Slide

  16. 発見した怪しげな文字列
     エラーメッセージが固まって検出されている
     ‘/bin/sh’
     ‘/etc/passwd’
     ‘/proc/self/exe’
    などなど…
     ちなみにこんな文字列もありました
     Got root!(← 挑発されてる)
    16

    View Slide

  17. 作成した判定器
    Fuzzy Hashing・特徴的な文字列で13種類作成した
    13種類の判定器 17

    View Slide

  18. 実験・評価
     良性データセットの作成
     Web上のdebファイルを落としてくるプログラムの作成
    →http://ftp.riken.jp/Linux/debian/debian/pool/
     3日目で作成した13種類の判定器を用いて「マルウェアかどうか」を判断する
     講師の用意した決定木を利用(アルゴリズムはC4.5)
     クロスバリデーションで評価
    18

    View Slide

  19. 決定木の出力結果
    一番マルウェア分類に寄与しているのは‘/bin/sh’の判定器
    出力結果の抜粋 解析木の全体図
    :判定器
    :判定結果
    19

    View Slide

  20. 分類結果
    評価データの総数:3719個
    評価データの中で正常なデータ:1870個
    評価データの中でマルウェアの総数:1849個
    正常にマルウェアを検出できた数:875個(約47.32%)
    誤検知:1個(約0.05%)
    C4.5 Good Bad
    Good 1869 1
    Bad 974 875
    分類結果









    20

    View Slide

  21. まとめ
    ~セキュリティキャンプ全国大会2018に参加してみて~
    21

    View Slide

  22. まとめ(感想と参加するメリット)
     とにかく一日中頭をフル回転した
     今後の学習に関するモチベーションが上がる
     セキュリティキャンプ全国大会に行かなければ会えない数多くの人
     様々な分野の最強講師陣
     意識の高い参加者やチューターの方々
    →会ってお話して仲良くなるチャンス!!!
     集中開発コース
     講師と1 on 1で様々なものを学習・開発できる
     期間中ずっと指導していただけるのでより仲良くなれる
     アンチウイルスに興味ある人はZトラックへ是非応募してみてください!
    22

    View Slide

  23. 23

    View Slide