SlideShare a Scribd company logo
Who is the Mal-Gopher?
- Implementation and Evaluation of “gimpfuzzy” for Go Malware Classification
Yuta Sawabe / Nobuyuki Amakasu / Kazuya Nomura
NTT Security Holdings
© NTT Security Holdings All Rights Reserved
About Us
• 澤部 祐太 (Yuta Sawabe)
• 主にログ分析やマルウェア解析に従事
• 2019年情報処理学会JIP特選論文受賞、JSAC 2022、Botconf 2021/2022にて登壇
• 甘粕 伸幸 (Nobuyuki Amakasu)
• 主にEDRログ分析やマルウェア解析に従事
• 以前SEとしてシステム構築などを担当していたが、2018年より現職
• 野村 和也 (Kazuya Nomura)
• 主な業務はIPS/IDS/EDRでのアラート監視 / ログ分析
• MWS2020論文賞受賞、SecHack2020優秀修了生
2
2022
© NTT Security Holdings All Rights Reserved
Motivation & Goal
Goマルウェアの増加
• Goバイナリ特有の構造を持つために適切な分析手法を用いることが必要
• 高速に分類することへの需要が高まる
Goマルウェアを効率よく分類する「gimpfuzzy」の提案
• 手法の紹介
• データセットを利用した判別精度の評価
• gimpfuzzyを利用した分類の例
3
2022
© NTT Security Holdings All Rights Reserved
Go Malware
© NTT Security Holdings All Rights Reserved
2022
© NTT Security Holdings All Rights Reserved
Go Malware
• Go / Golang
• 2007年にGoogleが設計したオープンソースのプログラミング言語
• 並行性、高速に動作、コードの記述が容易
• クロスプラットフォーム: 単一のコードをベースに複数の動作環境へのビルドが可能
• Goで書かれたマルウェアが増加
• 充実したライブラリを利用した Ransomware / RAT / Botnet
• クロスプラットフォームを生かした MaaS (Malware as a Service) / RaaS (Ransomware as a Service)
• 既存のマルウェアのダウンローダー、ドロッパーに活用される事例も存在
2022
The Go gopher was designed by Renee French. (http://reneefrench.blogspot.com/)
The design is licensed under the Creative Commons 3.0 Attributions license.
Read this article for more details: https://blog.golang.org/gopher
5
© NTT Security Holdings All Rights Reserved
Go Malware
2022
2012
Encriyoko RobbinHood
Zebrocy
(APT28)
WellMess
(APT29)
2018 2020
Blackrota
SNAKE
/ EKANS
ElectroRAT
PlugX Loader
(Mustang Panda
/ TA416)
ChaChi
Epsilon Red
2021
YamaBot
/ Kaos
2022
Chaos
Nerbian
Arid Gopher
2019
RAT
Ransomware
Party Ticket
Babuk Agenda
Snatch
Others
6
IPStorm
2016 2017
AthenaGo
Linux.Lady
Linux.Rex
© NTT Security Holdings All Rights Reserved
攻撃者 から見た Go Malware
• 単一のコードから複数のプラットフォームを標的とする検体が生成可能
• 高速に動作し、堅牢なコードが容易に記述できる
• ファイルサイズが大きいため、AV・サンドボックスによる検知を回避
2022
https://github.com/tiagorlampert/CHAOS
https://github.com/redcode-labs/Coldfire
7
© NTT Security Holdings All Rights Reserved
解析者 から見た Go Malware
(相対的に) リバースエンジニアリングが難しい
• ライブラリが静的にリンクされており、解析対象が大幅に増加
• 言語に対応した解析ツールが少ない
• 解析者がGoバイナリ特有の挙動に慣れていない
2022
高速に分類する手法が求められる
C hello world Go hello world
71
Functions
1443
Functions
8
© NTT Security Holdings All Rights Reserved
gimpfuzzy
© NTT Security Holdings All Rights Reserved
2022
© NTT Security Holdings All Rights Reserved
バイナリを識別する指標
2022
• ssdeep
• TLSH
• imphash
• impfuzzy
• gimphash https://www.virustotal.com/
https://bazaar.abuse.ch/
10
© NTT Security Holdings All Rights Reserved
gimphash
• Golangバイナリ版のimphash
• Golangバイナリはプラットフォームに拠らずpclntabと呼ばれる構造を持つ
• 依存するパッケージ名や関数名などを復元可能
• gimphashは復元したパッケージ名/関数名のうち、汎用的なものを削除した一部をSHA256でハッシュ化したもの
• マルウェアが依存する機能を一意に表現可能だが、異なるハッシュの比較は不可能
2022
github.com/example/ExampleFunction
github.com/example/Malicious
os.Getenv
Crypto/sha256/New
・・・
gimphash
pclntab
関数名でフィルタ
+
sha256
e3b0c44298・・・
11
© NTT Security Holdings All Rights Reserved
gimpfuzzy
• gimphashをFuzzy Hashに
• SHA256は入力が1bitでも違えば出力は大きく変化するので、バージョン違いなど「似ているもの」の比較が不可能
• Fuzzy Hashを利用することで検体間の類似度が測定可能に
2022
github.com/example/ExampleFunction
github.com/example/Malicious
os.Getenv
Crypto/sha256/New
・・・
gimpfuzzy
pclntab
github.com/example/AnotherFunction
github.com/example/Malicious
os.Getenv
Crypto/sha256/New
・・・
3:j4dwGIVWYvgxN4dw
GIV3MNWzYKKKvTKrs
:j4mGggximGCMcTjKrs
3:j4dwGIV++RSXzM9xN4d
wGIV3MNWzYKKKvTKrs:j4
mGduSXg9ximGCMcTjKrs
類似度を比較可能
12
© NTT Security Holdings All Rights Reserved
検証方法
• Palo Alto Networksが公開しているGoマルウェア分類リストを利用
• 検体のSHA256
• ファミリの分類結果
• リストから約7900検体、 53ファミリを収集
• 判別精度を検証
2022
https://unit42.paloaltonetworks.jp/the-gopher-in-the-room-analysis-of-golang-malware-in-the-wild/
13
© NTT Security Holdings All Rights Reserved
検証方法:gimphash
2022
gimphashの判別率イメージ:ファミリ内の検体のスコアの組み合わせの例
A B C D E F
A 100 100 0 0 0 0
B 100 100 0 0 0 0
C 0 0 100 0 0 0
D 0 0 0 100 0 0
E 0 0 0 0 100 100
F 0 0 0 0 100 100
Τ
(2C2 + 2C2) 6C2
=
2
15
= 0.133
完全一致かそうでないか
(スコア=100 or 0)
のみ評価可能
自身のハッシュとは
必ず一致
2C2 =1
2C2 =1
14
© NTT Security Holdings All Rights Reserved
検証方法:gimphash
判別率:同一ファミリ内で2つの検体を取り出した場合に同じgimphashになる確率
例:
ファミリの検体数:45
Τ
(21C2 + 14C2) 45C2
2022
count gimphash
-------------------------------------------------------------------------------------------------------------------
21 a2d8e06ce26e22f787fd9a9b44651f9493a3eae26847aa5cdf82a40c8bbc0f28
14 a307414aea2e294e69b425c65409774ed1552351fa8af099c3a643c5320f4411
1 f7c31d1ed7aad92f725d48827f9764abac9edd3f7e0cf6dcdfb93aea5e832ebd
15
© NTT Security Holdings All Rights Reserved
検証方法:gimpfuzzy
判別率:同一ファミリ内で2つの検体を取り出した場合に類似度が閾値以上になる確率
gimpfuzzy類似度スコア算出方法
2022
$ cat sample1.bin.gimpfuzzy
ssdeep,1.1--blocksize:hash:hash,filename
1536:R1IUKvE0I5WsS4KmdZo9uihOQGMbH6gWx:R1KvIoj4KmdZo9ucGMbH6gWx,"sample1.bin"
$ cat sample2.bin.gimpfuzzy
ssdeep,1.1--blocksize:hash:hash,filename
1536:x/KKvOm0I5WsS4cm5Zo9uihOQGMbH6gW7:5KKQIoj4cm5Zo9ucGMbH6gW7,"sample2.bin"
$ ssdeep -a -k sample1.bin.gimpfuzzy sample2.bin.gimpfuzzy
sample2.bin.gimpfuzzy:sample2.bin matches sample1.bin.gimpfuzzy:sample1.bin (77)
スコア
16
© NTT Security Holdings All Rights Reserved
検証方法:gimpfuzzy
2022
gimpfuzzy (スコア閾値>60) の判別率イメージ:ファミリ内の検体のスコアの組み合わせ
A B C D E F
A 100 100 70 80 0 0
B 100 100 65 90 0 0
C 70 65 100 70 0 0
D 80 90 70 100 0 0
E 0 0 0 0 100 100
F 0 0 0 100 100
Τ
(4C2 + 2C2) 6C2
=
7
15
= 0.466
入力の類似度を基にした
評価が可能に
4C2 =6
2C2 =1
17
© NTT Security Holdings All Rights Reserved
検証結果:判別率
2022
gimphash gimpfuzzy(>=80) gimpfuzzy(>=70) gimpfuzzy(>=60)
平均判別率 7.32 47.85 67.37 79.98
(veil除外) 17.64 37.89 46.13 55.94
18
0
10
20
30
40
50
60
70
80
90
100
A B C D E F G H I J K L M N O P Q R S T U V W
判別率
© NTT Security Holdings All Rights Reserved
検証結果
• ファミリ内の検体とのスコア比較
• あるファミリの検体に対して、同一ファミリに属するすべての検体とのスコアを比較(重複は除去)
• ファミリ内の組み合わせのスコア分布を調査
2022
70
100
75
70
0
同一ファミリ内でも
ハッシュが全く異なる
スコア=0の検体の
組み合わせが存在
同一ファミリ内で
ハッシュが類似する
多くの検体の組み合わせが
スコア68以上に分布
※色はファミリを示す
19
© NTT Security Holdings All Rights Reserved
検証結果
• ファミリ外の検体とのスコア比較
• あるファミリの検体に対して、違うファミリに属するすべての検体とのスコアを比較(重複は除去)
• 75%の組み合わせは全く異なるハッシュ (スコア0) をもつが、25%の組み合わせはハッシュが類似
2022
20
50
60
スコア=0は省略
多くの検体で
スコア69未満
※色はファミリを示す
20
© NTT Security Holdings All Rights Reserved
検証結果
• クラスタリングを行う閾値の決め方
• 過不足なくファミリ分類を行える閾値
• 閾値以上のものをファミリ内とみなし調査
• TP →閾値以上で実際にファミリ内である組み合わせ
• TN →閾値以下で実際にファミリ外である組み合わせ
• FP →閾値以上で実際はファミリ外である組み合わせ
• FN →閾値以下で実際はファミリ内である組み合わせ
• 単純な正解率での評価は困難
• ファミリ内の検体の個数<<ファミリ外の検体の個数
• TP/FP/FNの割合を平等に評価する必要性
2022
〇TP
実際にファミリ内
〇TN
実際にファミリ外
×FN
実際はファミリ内
×FP
実際はファミリ外
ファミリ外とみなす ファミリ内とみなす
正解
不正解
ファミリ内とみなす閾値を動かして精度を検証
21
© NTT Security Holdings All Rights Reserved
検証結果
• F-measureで評価
• 適合率:本当にファミリ内だった割合
• 再現率:取りこぼさなかった割合
• F-measure : 適合率と再現率の調和平均
• 閾値=68が最も妥当
• 直感的なグラフの分布とも一致
2022
〇TP
×FP
〇TP +
〇TP
×FN
〇TP +
閾値=68
スコア=0は省略
22
© NTT Security Holdings All Rights Reserved
Case Study
© NTT Security Holdings All Rights Reserved
2022
© NTT Security Holdings All Rights Reserved
Case Study 1: Cross Platform
2022
IPStorm
• 2019年5月に観測されたP2Pボットネット
• gimpfuzzyを利用することで、プラットフォームが異なる検体の類似性を確認
類似度 90
B
gimpfuzzy
gimphash
3072:qZosQIop4rzLYr62Xb+iwzh7RXn
ZWCy7IxXkzAEmZMpg1DtNg+rhHWP
vXvAYiMsP:bA/KT7439mV/Wrz
3072:lZosCIop4szLYr62Xb+iSzh7RXn
ZWCy7IxXyzAKmZMpg1DtNg+rhHWP
vXvAYiMs0:1AQT7439mV/WrOt
不一致
4e92f61bb61e08947f457e
73cbe72348c1dce312323a
652397c85731144a8088
37da5b52a7c1577b7e0f3c
fc99d059ffefe4def03ee840
a8b9becd192ca79291
A
24
© NTT Security Holdings All Rights Reserved
Case Study 1: main関数の比較
2022
IPStormの特徴であるパッケージ「storm」の関数「starter」を呼び出す挙動が一致
A (Linux) B (Mac)
25
© NTT Security Holdings All Rights Reserved
Case Study 1: 抽出された関数
2022 26
プラットフォームの差異によらず分類が可能
B (Mac)
817
Common
5744
A (Linux)
194
© NTT Security Holdings All Rights Reserved
Case Study 2: gimpfuzzyが有効なファミリ
• マルウェア制作ツール「veil」で作成されたファミリ
• Metasploitのペイロードに対応
• バックドアなど様々な機能を指定してマルウェアに追加可能
• AV検出回避機能がある
• gimphashと比較し、gimpfuzzyの精度が非常に良い
2022 27
0.1
54.80936432
82.21532493
96.77106297
0
20
40
60
80
100
gimphash gimpfuzzy (閾値80) gimpfuzzy (閾値70) gimpfuzzy (閾値60)
© NTT Security Holdings All Rights Reserved
Case Study 2: gimpfuzzyが有効なファミリ
• 通常のHashと比較し、Fuzzy Hashの効果が大きい検体が多い
• 通常のHashの場合、一文字でも入力が違えば全く異なるハッシュが出力される
2022
Passed Function: 426
main.JeDKBXmMzyjP
main.TUsJXmXgumrHRF
bytes.Equal
bytes.IndexByte
strings.IndexByte
io/ioutil.ReadAll
io/ioutil.NopCloser
math/rand.NewSource
math/rand.New
math/rand.(*Rand).Seed
math/rand.(*Rand).Int63
…
Passed Function: 427
main.PdbjIQTndnFwQIr
main.UEeaLthPqHAvk
main.Redfkoe
bytes.Equal
bytes.IndexByte
strings.IndexByte
io/ioutil.ReadAll
io/ioutil.NopCloser
math/rand.NewSource
math/rand.New
math/rand.(*Rand).Seed
…
関数名の一部が
難読化
検体ごとに異なる
他の大部分の
関数名が一致
Fuzzy Hashingが
極めて有効
28
© NTT Security Holdings All Rights Reserved
Case Study 3: gimpfuzzyによるクラスタリング
WellMess
• 2018年にJPCERTやLACによって初観測
• 2020年にAPT29がCOVID-19ワクチン開発に関連したキャンペーンで利用
• 収集した15検体に対してgimphash / gimpfuzzy を計算
• gimphashによって 7 種類に分類された
2022 29
© NTT Security Holdings All Rights Reserved
Case Study 3: WellMess
2022
2018 2019 2020
B
A C E G
D F
30
© NTT Security Holdings All Rights Reserved
Case Study 3: 分類結果
gimpfuzzyを利用することでさらに判別率が向上する
2022
全15検体のクラスタリング
31
7
5
4
2
1
0
5
10
gimphash gimpfuzzy
(閾値90)
gimpfuzzy
(閾値85)
gimpfuzzy
(閾値80)
gimpfuzzy
(閾値70)
クラスタ数
© NTT Security Holdings All Rights Reserved
Case Study 3: 分類結果
2022
B
A C G
E
D F
90
88
93
82 82
75
32
時系列で近い検体から順に結合していく
Windows
Linux
© NTT Security Holdings All Rights Reserved
Case Study 3: mainパッケージの関数 (Windows)
攻撃者が機能を拡張していることを確認
2022
C
A
E
G
33
© NTT Security Holdings All Rights Reserved
Case Study 3: mainパッケージの関数 (Linux)
2022
Linuxを標的とする検体のみ「getIP」という関数が存在する
B D
F
34
© NTT Security Holdings All Rights Reserved
Common
574
Windows
3
Linux
24
X
32
Y + Z
58
Z
54
G
45
Others
22
Case Study 3: 抽出された関数
35
2022
X Y Z
• 7割の関数が共通
• プラットフォームによる差異よりも、
検体の機能の差異の方が影響が大きい
© NTT Security Holdings All Rights Reserved
課題
© NTT Security Holdings All Rights Reserved
2022
© NTT Security Holdings All Rights Reserved
1. Filterにより情報が減少する場合
多くの関数名が計算過程のフィルタによって削除される
2022
$ ~/enum_gimp_function 947b273069...
ALL Function: 1532
go.buildid
main.LfoJVuVXGK
main.main
main.init
type..hash.[100]string
type..eq.[100]string
runtime.memhash0
runtime.memhash8
runtime.memhash16
runtime.memhash32
runtime.memhash64
…
…
Passed Function: 6
main.LfoJVuVXGK
os.(*PathError).Error
os.(*File).Name
os.NewFile
os.Exit
errors.New
Filter
“internal/“ を含む
関数名の初めの文字が小文字
以下で始まる
“go.”,“type.”,“runtime”,etc... 検体固有の特徴が削除される可能性
37
© NTT Security Holdings All Rights Reserved
1. Filterにより情報が減少する場合
2022 38
https://github.com/NextronSystems/gimphash
© NTT Security Holdings All Rights Reserved
2. Fuzzy Hashingができない場合
Fuzzy Hash算出に必要な情報量が少ない
2022
$ ~/enum_gimp_function 947b273069105ff6a78e533cd6b8b0d9e8a35f4c9534fdf9d6…
All Function: 1532
…
Passed Function: 6
main.LfoJVuVXGK
os.(*PathError).Error
os.(*File).Name
os.NewFile
os.Exit
errors.New
Fuzzy Hashに入力するサイズが4096byte以下の場合エラーとなる
このサンプルの場合連結した関数文字列が短い
39
© NTT Security Holdings All Rights Reserved
3. 解析妨害がされている場合
関数名の復元が不可能
2022
$ file 0581c4953fda52c40f5d0911acdcfcb4dfdcbb9b64e3b0213a94477b991a7ec3
0581c4953fda52c40f5d0911acdcfcb4dfdcbb9b64e3b0213a94477b991a7ec3: PE32 executable (GUI) Intel
80386 (stripped to external PDB), for MS Windows, UPX compressed
$ upx -d 0581c4953fda52c40f5d0911acdcfcb4dfdcbb9b64e3b0213a94477b991a7ec3
Ultimate Packer for eXecutables
Copyright (C) 1996 - 2020
UPX 3.96 Markus Oberhumer, Laszlo Molnar & John Reiser Jan 23rd 2020
File size Ratio Format Name
-------------------- ------ ----------- -----------
upx: 0581c4953fda52c40f5d0911acdcfcb4dfdcbb9b64e3b0213a94477b991a7ec3: NotPackedException:
not packed by UPX
Unpacked 0 files.
セクションを確認するとUPXでpackされていると思われる
セクション名を含むが、unpack不可
40
© NTT Security Holdings All Rights Reserved
3. 解析妨害がされている場合
関数名がランダム文字列
2022
$ ~/enum_gimp_function 3ff830b8a9a1eb5cdf60d98c969e5d18a64c5a2fa6d430098…
…
Passed Function: 1026
main.NewCDITPPADBCZMNQ
main.(*CDITPPADBCZMNQ).MBMKXLZCVOHE
main.(*CDITPPADBCZMNQ).ERGJXOCYDQNL
main.(*CDITPPADBCZMNQ).DTSMCFPNHOPV
main.(*CDITPPADBCZMNQ).PDUPAPZYBDWJ
main.(*CDITPPADBCZMNQ).SKEKRXUKNVRZ
main.(*CDITPPADBCZMNQ).SXIFTMHNQIUP
…
検体ごとに異なるランダム文字列を含むことでFuzzy Hashの類似度
スコアが低下する要因となる
41
© NTT Security Holdings All Rights Reserved
3. 解析妨害がされている場合
難読化ツール適用
2022 42
https://github.com/unixpickle/gobfuscate
© NTT Security Holdings All Rights Reserved
まとめ
© NTT Security Holdings All Rights Reserved
2022
© NTT Security Holdings All Rights Reserved
まとめ
Goマルウェアを高速に分類する新たな指標「gimpfuzzy」を提案
• Fuzzy Hashを活用することで検体間の類似度を測定
• データセットを利用した検証で、2.6倍以上の精度向上を確認
gimpfuzzyを利用した分類の事例を紹介
• 機能が追加された検体を同一ファミリと判定
• クロスプラットフォームの検体の分類も可能
• gimpfuzzyの課題についても議論
2022 44
© NTT Security Holdings All Rights Reserved
References
• https://github.com/NextronSystems/gimphash
• https://github.com/JPCERTCC/impfuzzy
• https://unit42.paloaltonetworks.jp/the-gopher-in-the-room-analysis-of-golang-malware-in-the-wild/
• https://www.intezer.com/blog/malware-analysis/year-of-the-gopher-2020-go-malware-round-up/
• https://www.paloaltonetworks.jp/company/in-the-news/2019/the-gopher-in-the-room-analysis-of-golang-malware-in-the-
wild
• https://www.darkreading.com/threat-intelligence/attackers-use-of-uncommon-programming-languages-continues-to-grow
• https://www.crowdstrike.com/blog/financial-motivation-drives-golang-malware-adoption/
• https://www.intezer.com/blog/research/operation-ElectroRAT-attacker-creates-fake-companies-to-drain-your-crypto-
wallets/
• https://blogs.jpcert.or.jp/ja/2018/06/wellmess.html
• https://www.ncsc.gov.uk/news/advisory-apt29-targets-covid-19-vaccine-development
2022 45
© NTT Security Holdings All Rights Reserved
Thank you!
2022
For questions / comments:
ntts.nsj-so-info@global.ntt
© NTT Security Holdings All Rights Reserved
Appendix
© NTT Security Holdings All Rights Reserved
2022
© NTT Security Holdings All Rights Reserved
Fuzzy Hashing (ssdeep)
• ssdeepのメインアイデア:CTPH (Context Triggered Piecewise Hashing)
• Piecewise Hashing : 分割した部分データのハッシュ
• Rolling Hash : 固定長の部分データに対するハッシュ
• Rolling Hashが一定の値になった時に、そこで分割してPiecewise Hashingを行う
• トリガーとなる値は入力データ長に応じて計算
2022
a b c d e f g h i j k l
Piecewise Hashing
Rolling Hash
a b c d e f g h i j k l 入力の類似度を
よく反映できる
入力データ
入力データ
48
© NTT Security Holdings All Rights Reserved
組み合わせ
2022
• 組み合わせ
• 順番違いを考慮しない
• 𝑛C𝑟 =
𝑛!
𝑛−𝑟 !𝑟!
• 例:6個から2個取り出す
組み合わせ
• A-B
• A-C
• …
• 6C2 =15
A B C D E F
A A-A A-B A-C A-D A-E A-F
B B-A B-B B-C B-D B-E B-F
C C-A C-B C-C C-D C-E C-F
D D-A D-B D-C D-D D-E D-F
E E-A E-B E-C E-D E-E E-F
F F-A F-B F-C F-D F-E F-F
自身との組み合わせは
存在しない
順番違いは数えない
49
© NTT Security Holdings All Rights Reserved
Hashes
2022
Page Description SHA256
p.24 IPStorm (Linux) 4f0add8eadb24a134b5cab6052920f576eec1bb39232c9548286a66883dcab82
p.24 IPStorm (mac) 087f2ec8bbcee4091241e5ad30d449a1aecd0b9879338d072638c7d0ed6b30da
p.28 Veil 00cf1c62ffdd727bfe8514003c6c881a4c53820a010e6e5a4757123165481864
p.28 Veil 06b5cb2bc4fb1f08a223fb0bf5cc065adb6074b27a24e063bbc8a5ce7459ff5c
p.30 WellMess (A) bec1981e422c1e01c14511d384a33c9bcc66456c1274bbbac073da825a3f537d
p.30 WellMess (B) 0b8e6a11adaa3df120ec15846bb966d674724b6b92eae34d63b665e0698e0193
p.30 WellMess (C) d7e7182f498440945fc8351f0e82ad2d5844530ebdba39051d2205b730400381
p.30 WellMess (D) 7c39841ba409bce4c2c35437ecf043f22910984325c70b9530edf15d826147ee
p.30 WellMess (E) 8749c1495af4fd73ccfc84b32f56f5e78549d81feefb0c1d1c3475a74345f6a8
p.30 WellMess (F) 5ca4a9f6553fea64ad2c724bf71d0fac2b372f9e7ce2200814c98aac647172fb
p.30 WellMess (G) 4c8671411da91eb5967f408c2a6ff6baf25ff7c40c65ff45ee33b352a711bf9c
50

More Related Content

What's hot

初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法kazkiti
 
CyberChefの使い方(HamaCTF2019 WriteUp編)
CyberChefの使い方(HamaCTF2019 WriteUp編)CyberChefの使い方(HamaCTF2019 WriteUp編)
CyberChefの使い方(HamaCTF2019 WriteUp編)Shota Shinogi
 
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...CODE BLUE
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説murachue
 
[cb22] SMARTIAN: Enhancing Smart Contract Fuzzing with Static and Dynamic Da...
[cb22]  SMARTIAN: Enhancing Smart Contract Fuzzing with Static and Dynamic Da...[cb22]  SMARTIAN: Enhancing Smart Contract Fuzzing with Static and Dynamic Da...
[cb22] SMARTIAN: Enhancing Smart Contract Fuzzing with Static and Dynamic Da...CODE BLUE
 
【システムテスト自動化カンファレンス2015】 楽天の品質改善を加速する継続的システムテストパターン #stac2015
【システムテスト自動化カンファレンス2015】 楽天の品質改善を加速する継続的システムテストパターン #stac2015【システムテスト自動化カンファレンス2015】 楽天の品質改善を加速する継続的システムテストパターン #stac2015
【システムテスト自動化カンファレンス2015】 楽天の品質改善を加速する継続的システムテストパターン #stac2015Kotaro Ogino
 
できる!並列・並行プログラミング
できる!並列・並行プログラミングできる!並列・並行プログラミング
できる!並列・並行プログラミングPreferred Networks
 
[CB19] アンチウイルスをオラクルとしたWindows Defenderに対する新しい攻撃手法 by 市川遼
[CB19] アンチウイルスをオラクルとしたWindows Defenderに対する新しい攻撃手法 by 市川遼 [CB19] アンチウイルスをオラクルとしたWindows Defenderに対する新しい攻撃手法 by 市川遼
[CB19] アンチウイルスをオラクルとしたWindows Defenderに対する新しい攻撃手法 by 市川遼 CODE BLUE
 
Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?Takayuki Shimizukawa
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話Kumazaki Hiroki
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門大樹 小倉
 
cloudpackサーバ仕様書(サンプル)
cloudpackサーバ仕様書(サンプル)cloudpackサーバ仕様書(サンプル)
cloudpackサーバ仕様書(サンプル)iret, Inc.
 
継続使用と新規追加したRedmine Plugin
継続使用と新規追加したRedmine Plugin継続使用と新規追加したRedmine Plugin
継続使用と新規追加したRedmine PluginMei Nakamura
 
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしようPHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしようShohei Okada
 
TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話Kazuho Oku
 
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門masayoshi takahashi
 
「Terraform」と連携して自動構築を実現するシステムライフサイクル効率化支援OSS「Exastro IT Automation」のご紹介
「Terraform」と連携して自動構築を実現するシステムライフサイクル効率化支援OSS「Exastro IT Automation」のご紹介「Terraform」と連携して自動構築を実現するシステムライフサイクル効率化支援OSS「Exastro IT Automation」のご紹介
「Terraform」と連携して自動構築を実現するシステムライフサイクル効率化支援OSS「Exastro IT Automation」のご紹介ssuser05b05e
 
Pcapngを読んでみる
Pcapngを読んでみるPcapngを読んでみる
Pcapngを読んでみるYagi Shinnosuke
 
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築gree_tech
 

What's hot (20)

初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法
 
CyberChefの使い方(HamaCTF2019 WriteUp編)
CyberChefの使い方(HamaCTF2019 WriteUp編)CyberChefの使い方(HamaCTF2019 WriteUp編)
CyberChefの使い方(HamaCTF2019 WriteUp編)
 
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
 
[cb22] SMARTIAN: Enhancing Smart Contract Fuzzing with Static and Dynamic Da...
[cb22]  SMARTIAN: Enhancing Smart Contract Fuzzing with Static and Dynamic Da...[cb22]  SMARTIAN: Enhancing Smart Contract Fuzzing with Static and Dynamic Da...
[cb22] SMARTIAN: Enhancing Smart Contract Fuzzing with Static and Dynamic Da...
 
【システムテスト自動化カンファレンス2015】 楽天の品質改善を加速する継続的システムテストパターン #stac2015
【システムテスト自動化カンファレンス2015】 楽天の品質改善を加速する継続的システムテストパターン #stac2015【システムテスト自動化カンファレンス2015】 楽天の品質改善を加速する継続的システムテストパターン #stac2015
【システムテスト自動化カンファレンス2015】 楽天の品質改善を加速する継続的システムテストパターン #stac2015
 
できる!並列・並行プログラミング
できる!並列・並行プログラミングできる!並列・並行プログラミング
できる!並列・並行プログラミング
 
[CB19] アンチウイルスをオラクルとしたWindows Defenderに対する新しい攻撃手法 by 市川遼
[CB19] アンチウイルスをオラクルとしたWindows Defenderに対する新しい攻撃手法 by 市川遼 [CB19] アンチウイルスをオラクルとしたWindows Defenderに対する新しい攻撃手法 by 市川遼
[CB19] アンチウイルスをオラクルとしたWindows Defenderに対する新しい攻撃手法 by 市川遼
 
Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
 
cloudpackサーバ仕様書(サンプル)
cloudpackサーバ仕様書(サンプル)cloudpackサーバ仕様書(サンプル)
cloudpackサーバ仕様書(サンプル)
 
継続使用と新規追加したRedmine Plugin
継続使用と新規追加したRedmine Plugin継続使用と新規追加したRedmine Plugin
継続使用と新規追加したRedmine Plugin
 
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしようPHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
 
TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話
 
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
 
「Terraform」と連携して自動構築を実現するシステムライフサイクル効率化支援OSS「Exastro IT Automation」のご紹介
「Terraform」と連携して自動構築を実現するシステムライフサイクル効率化支援OSS「Exastro IT Automation」のご紹介「Terraform」と連携して自動構築を実現するシステムライフサイクル効率化支援OSS「Exastro IT Automation」のご紹介
「Terraform」と連携して自動構築を実現するシステムライフサイクル効率化支援OSS「Exastro IT Automation」のご紹介
 
Pcapngを読んでみる
Pcapngを読んでみるPcapngを読んでみる
Pcapngを読んでみる
 
ヤフー発のメッセージキュー「Pulsar」のご紹介
ヤフー発のメッセージキュー「Pulsar」のご紹介ヤフー発のメッセージキュー「Pulsar」のご紹介
ヤフー発のメッセージキュー「Pulsar」のご紹介
 
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
 

Similar to [cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也

Ques12_自動テスト ✕ 機械学習 〜自動テスト結果分析は楽になるか?〜
Ques12_自動テスト ✕ 機械学習 〜自動テスト結果分析は楽になるか?〜Ques12_自動テスト ✕ 機械学習 〜自動テスト結果分析は楽になるか?〜
Ques12_自動テスト ✕ 機械学習 〜自動テスト結果分析は楽になるか?〜Mao Yamaguchi
 
0730 bp study#35発表資料
0730 bp study#35発表資料0730 bp study#35発表資料
0730 bp study#35発表資料Yasuhiro Horiuchi
 
デブサミ2013【15-A-6】増加するセキュリティ脆弱性の解決策
デブサミ2013【15-A-6】増加するセキュリティ脆弱性の解決策デブサミ2013【15-A-6】増加するセキュリティ脆弱性の解決策
デブサミ2013【15-A-6】増加するセキュリティ脆弱性の解決策Developers Summit
 
Jubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォーム
Jubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォームJubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォーム
Jubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォームPreferred Networks
 
Icml2018読み会_overview&GANs
Icml2018読み会_overview&GANsIcml2018読み会_overview&GANs
Icml2018読み会_overview&GANsKentaro Tachibana
 
UE4×Switchで60FPSの(ネットワーク)対戦アクションをなんとかして作る! | UNREAL FEST EXTREME 2020 WINTER
UE4×Switchで60FPSの(ネットワーク)対戦アクションをなんとかして作る!  | UNREAL FEST EXTREME 2020 WINTERUE4×Switchで60FPSの(ネットワーク)対戦アクションをなんとかして作る!  | UNREAL FEST EXTREME 2020 WINTER
UE4×Switchで60FPSの(ネットワーク)対戦アクションをなんとかして作る! | UNREAL FEST EXTREME 2020 WINTERエピック・ゲームズ・ジャパン Epic Games Japan
 
RENAT - ネットワーク検証自動化
RENAT - ネットワーク検証自動化RENAT - ネットワーク検証自動化
RENAT - ネットワーク検証自動化HuuBachNguyen
 
BGI Webinar Aug 28, 2014 "Genome wide methylation analysis and analytics"
BGI Webinar Aug 28, 2014 "Genome wide methylation analysis and analytics"BGI Webinar Aug 28, 2014 "Genome wide methylation analysis and analytics"
BGI Webinar Aug 28, 2014 "Genome wide methylation analysis and analytics"kazuoishii20
 
NGS現場の会第2回_アメリエフ株式会社_RNAseq解析
NGS現場の会第2回_アメリエフ株式会社_RNAseq解析NGS現場の会第2回_アメリエフ株式会社_RNAseq解析
NGS現場の会第2回_アメリエフ株式会社_RNAseq解析Amelieff
 
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
 
まだプログラム手で書いて消耗してるの?~入出力例からプログラムを自動生成する技術~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
まだプログラム手で書いて消耗してるの?~入出力例からプログラムを自動生成する技術~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...まだプログラム手で書いて消耗してるの?~入出力例からプログラムを自動生成する技術~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
まだプログラム手で書いて消耗してるの?~入出力例からプログラムを自動生成する技術~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...NTT DATA Technology & Innovation
 
AVTOKYO2012 Android Malware Heuristics(jp)
AVTOKYO2012 Android Malware Heuristics(jp)AVTOKYO2012 Android Malware Heuristics(jp)
AVTOKYO2012 Android Malware Heuristics(jp)雅太 西田
 
Jubatusでマルウェア分類
Jubatusでマルウェア分類Jubatusでマルウェア分類
Jubatusでマルウェア分類Shuzo Kashihara
 
DSF2018講演スライド
DSF2018講演スライドDSF2018講演スライド
DSF2018講演スライドHiroki Nakahara
 
外部キー制約を考慮した特徴量削減手法
外部キー制約を考慮した特徴量削減手法外部キー制約を考慮した特徴量削減手法
外部キー制約を考慮した特徴量削減手法NTT Software Innovation Center
 

Similar to [cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也 (16)

Ques12_自動テスト ✕ 機械学習 〜自動テスト結果分析は楽になるか?〜
Ques12_自動テスト ✕ 機械学習 〜自動テスト結果分析は楽になるか?〜Ques12_自動テスト ✕ 機械学習 〜自動テスト結果分析は楽になるか?〜
Ques12_自動テスト ✕ 機械学習 〜自動テスト結果分析は楽になるか?〜
 
0730 bp study#35発表資料
0730 bp study#35発表資料0730 bp study#35発表資料
0730 bp study#35発表資料
 
デブサミ2013【15-A-6】増加するセキュリティ脆弱性の解決策
デブサミ2013【15-A-6】増加するセキュリティ脆弱性の解決策デブサミ2013【15-A-6】増加するセキュリティ脆弱性の解決策
デブサミ2013【15-A-6】増加するセキュリティ脆弱性の解決策
 
Jubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォーム
Jubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォームJubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォーム
Jubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォーム
 
Icml2018読み会_overview&GANs
Icml2018読み会_overview&GANsIcml2018読み会_overview&GANs
Icml2018読み会_overview&GANs
 
UE4×Switchで60FPSの(ネットワーク)対戦アクションをなんとかして作る! | UNREAL FEST EXTREME 2020 WINTER
UE4×Switchで60FPSの(ネットワーク)対戦アクションをなんとかして作る!  | UNREAL FEST EXTREME 2020 WINTERUE4×Switchで60FPSの(ネットワーク)対戦アクションをなんとかして作る!  | UNREAL FEST EXTREME 2020 WINTER
UE4×Switchで60FPSの(ネットワーク)対戦アクションをなんとかして作る! | UNREAL FEST EXTREME 2020 WINTER
 
RENAT - ネットワーク検証自動化
RENAT - ネットワーク検証自動化RENAT - ネットワーク検証自動化
RENAT - ネットワーク検証自動化
 
BGI Webinar Aug 28, 2014 "Genome wide methylation analysis and analytics"
BGI Webinar Aug 28, 2014 "Genome wide methylation analysis and analytics"BGI Webinar Aug 28, 2014 "Genome wide methylation analysis and analytics"
BGI Webinar Aug 28, 2014 "Genome wide methylation analysis and analytics"
 
NGS現場の会第2回_アメリエフ株式会社_RNAseq解析
NGS現場の会第2回_アメリエフ株式会社_RNAseq解析NGS現場の会第2回_アメリエフ株式会社_RNAseq解析
NGS現場の会第2回_アメリエフ株式会社_RNAseq解析
 
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
 
まだプログラム手で書いて消耗してるの?~入出力例からプログラムを自動生成する技術~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
まだプログラム手で書いて消耗してるの?~入出力例からプログラムを自動生成する技術~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...まだプログラム手で書いて消耗してるの?~入出力例からプログラムを自動生成する技術~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
まだプログラム手で書いて消耗してるの?~入出力例からプログラムを自動生成する技術~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
 
AVTOKYO2012 Android Malware Heuristics(jp)
AVTOKYO2012 Android Malware Heuristics(jp)AVTOKYO2012 Android Malware Heuristics(jp)
AVTOKYO2012 Android Malware Heuristics(jp)
 
Jubatusでマルウェア分類
Jubatusでマルウェア分類Jubatusでマルウェア分類
Jubatusでマルウェア分類
 
DSF2018講演スライド
DSF2018講演スライドDSF2018講演スライド
DSF2018講演スライド
 
How good is my GAN?
How good is my GAN?How good is my GAN?
How good is my GAN?
 
外部キー制約を考慮した特徴量削減手法
外部キー制約を考慮した特徴量削減手法外部キー制約を考慮した特徴量削減手法
外部キー制約を考慮した特徴量削減手法
 

More from CODE BLUE

[cb22] Hayabusa Threat Hunting and Fast Forensics in Windows environments fo...
[cb22] Hayabusa  Threat Hunting and Fast Forensics in Windows environments fo...[cb22] Hayabusa  Threat Hunting and Fast Forensics in Windows environments fo...
[cb22] Hayabusa Threat Hunting and Fast Forensics in Windows environments fo...CODE BLUE
 
[cb22] Tales of 5G hacking by Karsten Nohl
[cb22] Tales of 5G hacking by Karsten Nohl[cb22] Tales of 5G hacking by Karsten Nohl
[cb22] Tales of 5G hacking by Karsten NohlCODE BLUE
 
[cb22] Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
[cb22]  Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...[cb22]  Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
[cb22] Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...CODE BLUE
 
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...CODE BLUE
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之CODE BLUE
 
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...CODE BLUE
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo PupilloCODE BLUE
 
[cb22] ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...
[cb22]  ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...[cb22]  ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...
[cb22] ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...CODE BLUE
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman
[cb22]  「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman [cb22]  「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman CODE BLUE
 
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...CODE BLUE
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by 高橋 郁夫
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by  高橋 郁夫[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by  高橋 郁夫
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by 高橋 郁夫CODE BLUE
 
[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...
[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...
[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...CODE BLUE
 
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka [cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka CODE BLUE
 
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...CODE BLUE
 
[cb22] From Parroting to Echoing: The Evolution of China’s Bots-Driven Info...
[cb22]  From Parroting to Echoing:  The Evolution of China’s Bots-Driven Info...[cb22]  From Parroting to Echoing:  The Evolution of China’s Bots-Driven Info...
[cb22] From Parroting to Echoing: The Evolution of China’s Bots-Driven Info...CODE BLUE
 
[cb22] Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...
[cb22]  Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...[cb22]  Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...
[cb22] Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...CODE BLUE
 
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...CODE BLUE
 
[cb22] What I learned from the direct confrontation with the adversaries who ...
[cb22] What I learned from the direct confrontation with the adversaries who ...[cb22] What I learned from the direct confrontation with the adversaries who ...
[cb22] What I learned from the direct confrontation with the adversaries who ...CODE BLUE
 
[cb22] Scaling the Security Researcher to Eliminate OSS Vulnerabilities Once ...
[cb22] Scaling the Security Researcher to Eliminate OSS Vulnerabilities Once ...[cb22] Scaling the Security Researcher to Eliminate OSS Vulnerabilities Once ...
[cb22] Scaling the Security Researcher to Eliminate OSS Vulnerabilities Once ...CODE BLUE
 
[cb22] Lets Dance in the Cache Destabilizing Hash Table on Microsoft IIS by O...
[cb22] Lets Dance in the Cache Destabilizing Hash Table on Microsoft IIS by O...[cb22] Lets Dance in the Cache Destabilizing Hash Table on Microsoft IIS by O...
[cb22] Lets Dance in the Cache Destabilizing Hash Table on Microsoft IIS by O...CODE BLUE
 

More from CODE BLUE (20)

[cb22] Hayabusa Threat Hunting and Fast Forensics in Windows environments fo...
[cb22] Hayabusa  Threat Hunting and Fast Forensics in Windows environments fo...[cb22] Hayabusa  Threat Hunting and Fast Forensics in Windows environments fo...
[cb22] Hayabusa Threat Hunting and Fast Forensics in Windows environments fo...
 
[cb22] Tales of 5G hacking by Karsten Nohl
[cb22] Tales of 5G hacking by Karsten Nohl[cb22] Tales of 5G hacking by Karsten Nohl
[cb22] Tales of 5G hacking by Karsten Nohl
 
[cb22] Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
[cb22]  Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...[cb22]  Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
[cb22] Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
 
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之
 
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo
 
[cb22] ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...
[cb22]  ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...[cb22]  ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...
[cb22] ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman
[cb22]  「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman [cb22]  「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman
 
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by 高橋 郁夫
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by  高橋 郁夫[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by  高橋 郁夫
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by 高橋 郁夫
 
[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...
[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...
[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...
 
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka [cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka
 
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
 
[cb22] From Parroting to Echoing: The Evolution of China’s Bots-Driven Info...
[cb22]  From Parroting to Echoing:  The Evolution of China’s Bots-Driven Info...[cb22]  From Parroting to Echoing:  The Evolution of China’s Bots-Driven Info...
[cb22] From Parroting to Echoing: The Evolution of China’s Bots-Driven Info...
 
[cb22] Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...
[cb22]  Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...[cb22]  Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...
[cb22] Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...
 
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...
 
[cb22] What I learned from the direct confrontation with the adversaries who ...
[cb22] What I learned from the direct confrontation with the adversaries who ...[cb22] What I learned from the direct confrontation with the adversaries who ...
[cb22] What I learned from the direct confrontation with the adversaries who ...
 
[cb22] Scaling the Security Researcher to Eliminate OSS Vulnerabilities Once ...
[cb22] Scaling the Security Researcher to Eliminate OSS Vulnerabilities Once ...[cb22] Scaling the Security Researcher to Eliminate OSS Vulnerabilities Once ...
[cb22] Scaling the Security Researcher to Eliminate OSS Vulnerabilities Once ...
 
[cb22] Lets Dance in the Cache Destabilizing Hash Table on Microsoft IIS by O...
[cb22] Lets Dance in the Cache Destabilizing Hash Table on Microsoft IIS by O...[cb22] Lets Dance in the Cache Destabilizing Hash Table on Microsoft IIS by O...
[cb22] Lets Dance in the Cache Destabilizing Hash Table on Microsoft IIS by O...
 

[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也

  • 1. Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy” for Go Malware Classification Yuta Sawabe / Nobuyuki Amakasu / Kazuya Nomura NTT Security Holdings
  • 2. © NTT Security Holdings All Rights Reserved About Us • 澤部 祐太 (Yuta Sawabe) • 主にログ分析やマルウェア解析に従事 • 2019年情報処理学会JIP特選論文受賞、JSAC 2022、Botconf 2021/2022にて登壇 • 甘粕 伸幸 (Nobuyuki Amakasu) • 主にEDRログ分析やマルウェア解析に従事 • 以前SEとしてシステム構築などを担当していたが、2018年より現職 • 野村 和也 (Kazuya Nomura) • 主な業務はIPS/IDS/EDRでのアラート監視 / ログ分析 • MWS2020論文賞受賞、SecHack2020優秀修了生 2 2022
  • 3. © NTT Security Holdings All Rights Reserved Motivation & Goal Goマルウェアの増加 • Goバイナリ特有の構造を持つために適切な分析手法を用いることが必要 • 高速に分類することへの需要が高まる Goマルウェアを効率よく分類する「gimpfuzzy」の提案 • 手法の紹介 • データセットを利用した判別精度の評価 • gimpfuzzyを利用した分類の例 3 2022
  • 4. © NTT Security Holdings All Rights Reserved Go Malware © NTT Security Holdings All Rights Reserved 2022
  • 5. © NTT Security Holdings All Rights Reserved Go Malware • Go / Golang • 2007年にGoogleが設計したオープンソースのプログラミング言語 • 並行性、高速に動作、コードの記述が容易 • クロスプラットフォーム: 単一のコードをベースに複数の動作環境へのビルドが可能 • Goで書かれたマルウェアが増加 • 充実したライブラリを利用した Ransomware / RAT / Botnet • クロスプラットフォームを生かした MaaS (Malware as a Service) / RaaS (Ransomware as a Service) • 既存のマルウェアのダウンローダー、ドロッパーに活用される事例も存在 2022 The Go gopher was designed by Renee French. (http://reneefrench.blogspot.com/) The design is licensed under the Creative Commons 3.0 Attributions license. Read this article for more details: https://blog.golang.org/gopher 5
  • 6. © NTT Security Holdings All Rights Reserved Go Malware 2022 2012 Encriyoko RobbinHood Zebrocy (APT28) WellMess (APT29) 2018 2020 Blackrota SNAKE / EKANS ElectroRAT PlugX Loader (Mustang Panda / TA416) ChaChi Epsilon Red 2021 YamaBot / Kaos 2022 Chaos Nerbian Arid Gopher 2019 RAT Ransomware Party Ticket Babuk Agenda Snatch Others 6 IPStorm 2016 2017 AthenaGo Linux.Lady Linux.Rex
  • 7. © NTT Security Holdings All Rights Reserved 攻撃者 から見た Go Malware • 単一のコードから複数のプラットフォームを標的とする検体が生成可能 • 高速に動作し、堅牢なコードが容易に記述できる • ファイルサイズが大きいため、AV・サンドボックスによる検知を回避 2022 https://github.com/tiagorlampert/CHAOS https://github.com/redcode-labs/Coldfire 7
  • 8. © NTT Security Holdings All Rights Reserved 解析者 から見た Go Malware (相対的に) リバースエンジニアリングが難しい • ライブラリが静的にリンクされており、解析対象が大幅に増加 • 言語に対応した解析ツールが少ない • 解析者がGoバイナリ特有の挙動に慣れていない 2022 高速に分類する手法が求められる C hello world Go hello world 71 Functions 1443 Functions 8
  • 9. © NTT Security Holdings All Rights Reserved gimpfuzzy © NTT Security Holdings All Rights Reserved 2022
  • 10. © NTT Security Holdings All Rights Reserved バイナリを識別する指標 2022 • ssdeep • TLSH • imphash • impfuzzy • gimphash https://www.virustotal.com/ https://bazaar.abuse.ch/ 10
  • 11. © NTT Security Holdings All Rights Reserved gimphash • Golangバイナリ版のimphash • Golangバイナリはプラットフォームに拠らずpclntabと呼ばれる構造を持つ • 依存するパッケージ名や関数名などを復元可能 • gimphashは復元したパッケージ名/関数名のうち、汎用的なものを削除した一部をSHA256でハッシュ化したもの • マルウェアが依存する機能を一意に表現可能だが、異なるハッシュの比較は不可能 2022 github.com/example/ExampleFunction github.com/example/Malicious os.Getenv Crypto/sha256/New ・・・ gimphash pclntab 関数名でフィルタ + sha256 e3b0c44298・・・ 11
  • 12. © NTT Security Holdings All Rights Reserved gimpfuzzy • gimphashをFuzzy Hashに • SHA256は入力が1bitでも違えば出力は大きく変化するので、バージョン違いなど「似ているもの」の比較が不可能 • Fuzzy Hashを利用することで検体間の類似度が測定可能に 2022 github.com/example/ExampleFunction github.com/example/Malicious os.Getenv Crypto/sha256/New ・・・ gimpfuzzy pclntab github.com/example/AnotherFunction github.com/example/Malicious os.Getenv Crypto/sha256/New ・・・ 3:j4dwGIVWYvgxN4dw GIV3MNWzYKKKvTKrs :j4mGggximGCMcTjKrs 3:j4dwGIV++RSXzM9xN4d wGIV3MNWzYKKKvTKrs:j4 mGduSXg9ximGCMcTjKrs 類似度を比較可能 12
  • 13. © NTT Security Holdings All Rights Reserved 検証方法 • Palo Alto Networksが公開しているGoマルウェア分類リストを利用 • 検体のSHA256 • ファミリの分類結果 • リストから約7900検体、 53ファミリを収集 • 判別精度を検証 2022 https://unit42.paloaltonetworks.jp/the-gopher-in-the-room-analysis-of-golang-malware-in-the-wild/ 13
  • 14. © NTT Security Holdings All Rights Reserved 検証方法:gimphash 2022 gimphashの判別率イメージ:ファミリ内の検体のスコアの組み合わせの例 A B C D E F A 100 100 0 0 0 0 B 100 100 0 0 0 0 C 0 0 100 0 0 0 D 0 0 0 100 0 0 E 0 0 0 0 100 100 F 0 0 0 0 100 100 Τ (2C2 + 2C2) 6C2 = 2 15 = 0.133 完全一致かそうでないか (スコア=100 or 0) のみ評価可能 自身のハッシュとは 必ず一致 2C2 =1 2C2 =1 14
  • 15. © NTT Security Holdings All Rights Reserved 検証方法:gimphash 判別率:同一ファミリ内で2つの検体を取り出した場合に同じgimphashになる確率 例: ファミリの検体数:45 Τ (21C2 + 14C2) 45C2 2022 count gimphash ------------------------------------------------------------------------------------------------------------------- 21 a2d8e06ce26e22f787fd9a9b44651f9493a3eae26847aa5cdf82a40c8bbc0f28 14 a307414aea2e294e69b425c65409774ed1552351fa8af099c3a643c5320f4411 1 f7c31d1ed7aad92f725d48827f9764abac9edd3f7e0cf6dcdfb93aea5e832ebd 15
  • 16. © NTT Security Holdings All Rights Reserved 検証方法:gimpfuzzy 判別率:同一ファミリ内で2つの検体を取り出した場合に類似度が閾値以上になる確率 gimpfuzzy類似度スコア算出方法 2022 $ cat sample1.bin.gimpfuzzy ssdeep,1.1--blocksize:hash:hash,filename 1536:R1IUKvE0I5WsS4KmdZo9uihOQGMbH6gWx:R1KvIoj4KmdZo9ucGMbH6gWx,"sample1.bin" $ cat sample2.bin.gimpfuzzy ssdeep,1.1--blocksize:hash:hash,filename 1536:x/KKvOm0I5WsS4cm5Zo9uihOQGMbH6gW7:5KKQIoj4cm5Zo9ucGMbH6gW7,"sample2.bin" $ ssdeep -a -k sample1.bin.gimpfuzzy sample2.bin.gimpfuzzy sample2.bin.gimpfuzzy:sample2.bin matches sample1.bin.gimpfuzzy:sample1.bin (77) スコア 16
  • 17. © NTT Security Holdings All Rights Reserved 検証方法:gimpfuzzy 2022 gimpfuzzy (スコア閾値>60) の判別率イメージ:ファミリ内の検体のスコアの組み合わせ A B C D E F A 100 100 70 80 0 0 B 100 100 65 90 0 0 C 70 65 100 70 0 0 D 80 90 70 100 0 0 E 0 0 0 0 100 100 F 0 0 0 100 100 Τ (4C2 + 2C2) 6C2 = 7 15 = 0.466 入力の類似度を基にした 評価が可能に 4C2 =6 2C2 =1 17
  • 18. © NTT Security Holdings All Rights Reserved 検証結果:判別率 2022 gimphash gimpfuzzy(>=80) gimpfuzzy(>=70) gimpfuzzy(>=60) 平均判別率 7.32 47.85 67.37 79.98 (veil除外) 17.64 37.89 46.13 55.94 18 0 10 20 30 40 50 60 70 80 90 100 A B C D E F G H I J K L M N O P Q R S T U V W 判別率
  • 19. © NTT Security Holdings All Rights Reserved 検証結果 • ファミリ内の検体とのスコア比較 • あるファミリの検体に対して、同一ファミリに属するすべての検体とのスコアを比較(重複は除去) • ファミリ内の組み合わせのスコア分布を調査 2022 70 100 75 70 0 同一ファミリ内でも ハッシュが全く異なる スコア=0の検体の 組み合わせが存在 同一ファミリ内で ハッシュが類似する 多くの検体の組み合わせが スコア68以上に分布 ※色はファミリを示す 19
  • 20. © NTT Security Holdings All Rights Reserved 検証結果 • ファミリ外の検体とのスコア比較 • あるファミリの検体に対して、違うファミリに属するすべての検体とのスコアを比較(重複は除去) • 75%の組み合わせは全く異なるハッシュ (スコア0) をもつが、25%の組み合わせはハッシュが類似 2022 20 50 60 スコア=0は省略 多くの検体で スコア69未満 ※色はファミリを示す 20
  • 21. © NTT Security Holdings All Rights Reserved 検証結果 • クラスタリングを行う閾値の決め方 • 過不足なくファミリ分類を行える閾値 • 閾値以上のものをファミリ内とみなし調査 • TP →閾値以上で実際にファミリ内である組み合わせ • TN →閾値以下で実際にファミリ外である組み合わせ • FP →閾値以上で実際はファミリ外である組み合わせ • FN →閾値以下で実際はファミリ内である組み合わせ • 単純な正解率での評価は困難 • ファミリ内の検体の個数<<ファミリ外の検体の個数 • TP/FP/FNの割合を平等に評価する必要性 2022 〇TP 実際にファミリ内 〇TN 実際にファミリ外 ×FN 実際はファミリ内 ×FP 実際はファミリ外 ファミリ外とみなす ファミリ内とみなす 正解 不正解 ファミリ内とみなす閾値を動かして精度を検証 21
  • 22. © NTT Security Holdings All Rights Reserved 検証結果 • F-measureで評価 • 適合率:本当にファミリ内だった割合 • 再現率:取りこぼさなかった割合 • F-measure : 適合率と再現率の調和平均 • 閾値=68が最も妥当 • 直感的なグラフの分布とも一致 2022 〇TP ×FP 〇TP + 〇TP ×FN 〇TP + 閾値=68 スコア=0は省略 22
  • 23. © NTT Security Holdings All Rights Reserved Case Study © NTT Security Holdings All Rights Reserved 2022
  • 24. © NTT Security Holdings All Rights Reserved Case Study 1: Cross Platform 2022 IPStorm • 2019年5月に観測されたP2Pボットネット • gimpfuzzyを利用することで、プラットフォームが異なる検体の類似性を確認 類似度 90 B gimpfuzzy gimphash 3072:qZosQIop4rzLYr62Xb+iwzh7RXn ZWCy7IxXkzAEmZMpg1DtNg+rhHWP vXvAYiMsP:bA/KT7439mV/Wrz 3072:lZosCIop4szLYr62Xb+iSzh7RXn ZWCy7IxXyzAKmZMpg1DtNg+rhHWP vXvAYiMs0:1AQT7439mV/WrOt 不一致 4e92f61bb61e08947f457e 73cbe72348c1dce312323a 652397c85731144a8088 37da5b52a7c1577b7e0f3c fc99d059ffefe4def03ee840 a8b9becd192ca79291 A 24
  • 25. © NTT Security Holdings All Rights Reserved Case Study 1: main関数の比較 2022 IPStormの特徴であるパッケージ「storm」の関数「starter」を呼び出す挙動が一致 A (Linux) B (Mac) 25
  • 26. © NTT Security Holdings All Rights Reserved Case Study 1: 抽出された関数 2022 26 プラットフォームの差異によらず分類が可能 B (Mac) 817 Common 5744 A (Linux) 194
  • 27. © NTT Security Holdings All Rights Reserved Case Study 2: gimpfuzzyが有効なファミリ • マルウェア制作ツール「veil」で作成されたファミリ • Metasploitのペイロードに対応 • バックドアなど様々な機能を指定してマルウェアに追加可能 • AV検出回避機能がある • gimphashと比較し、gimpfuzzyの精度が非常に良い 2022 27 0.1 54.80936432 82.21532493 96.77106297 0 20 40 60 80 100 gimphash gimpfuzzy (閾値80) gimpfuzzy (閾値70) gimpfuzzy (閾値60)
  • 28. © NTT Security Holdings All Rights Reserved Case Study 2: gimpfuzzyが有効なファミリ • 通常のHashと比較し、Fuzzy Hashの効果が大きい検体が多い • 通常のHashの場合、一文字でも入力が違えば全く異なるハッシュが出力される 2022 Passed Function: 426 main.JeDKBXmMzyjP main.TUsJXmXgumrHRF bytes.Equal bytes.IndexByte strings.IndexByte io/ioutil.ReadAll io/ioutil.NopCloser math/rand.NewSource math/rand.New math/rand.(*Rand).Seed math/rand.(*Rand).Int63 … Passed Function: 427 main.PdbjIQTndnFwQIr main.UEeaLthPqHAvk main.Redfkoe bytes.Equal bytes.IndexByte strings.IndexByte io/ioutil.ReadAll io/ioutil.NopCloser math/rand.NewSource math/rand.New math/rand.(*Rand).Seed … 関数名の一部が 難読化 検体ごとに異なる 他の大部分の 関数名が一致 Fuzzy Hashingが 極めて有効 28
  • 29. © NTT Security Holdings All Rights Reserved Case Study 3: gimpfuzzyによるクラスタリング WellMess • 2018年にJPCERTやLACによって初観測 • 2020年にAPT29がCOVID-19ワクチン開発に関連したキャンペーンで利用 • 収集した15検体に対してgimphash / gimpfuzzy を計算 • gimphashによって 7 種類に分類された 2022 29
  • 30. © NTT Security Holdings All Rights Reserved Case Study 3: WellMess 2022 2018 2019 2020 B A C E G D F 30
  • 31. © NTT Security Holdings All Rights Reserved Case Study 3: 分類結果 gimpfuzzyを利用することでさらに判別率が向上する 2022 全15検体のクラスタリング 31 7 5 4 2 1 0 5 10 gimphash gimpfuzzy (閾値90) gimpfuzzy (閾値85) gimpfuzzy (閾値80) gimpfuzzy (閾値70) クラスタ数
  • 32. © NTT Security Holdings All Rights Reserved Case Study 3: 分類結果 2022 B A C G E D F 90 88 93 82 82 75 32 時系列で近い検体から順に結合していく Windows Linux
  • 33. © NTT Security Holdings All Rights Reserved Case Study 3: mainパッケージの関数 (Windows) 攻撃者が機能を拡張していることを確認 2022 C A E G 33
  • 34. © NTT Security Holdings All Rights Reserved Case Study 3: mainパッケージの関数 (Linux) 2022 Linuxを標的とする検体のみ「getIP」という関数が存在する B D F 34
  • 35. © NTT Security Holdings All Rights Reserved Common 574 Windows 3 Linux 24 X 32 Y + Z 58 Z 54 G 45 Others 22 Case Study 3: 抽出された関数 35 2022 X Y Z • 7割の関数が共通 • プラットフォームによる差異よりも、 検体の機能の差異の方が影響が大きい
  • 36. © NTT Security Holdings All Rights Reserved 課題 © NTT Security Holdings All Rights Reserved 2022
  • 37. © NTT Security Holdings All Rights Reserved 1. Filterにより情報が減少する場合 多くの関数名が計算過程のフィルタによって削除される 2022 $ ~/enum_gimp_function 947b273069... ALL Function: 1532 go.buildid main.LfoJVuVXGK main.main main.init type..hash.[100]string type..eq.[100]string runtime.memhash0 runtime.memhash8 runtime.memhash16 runtime.memhash32 runtime.memhash64 … … Passed Function: 6 main.LfoJVuVXGK os.(*PathError).Error os.(*File).Name os.NewFile os.Exit errors.New Filter “internal/“ を含む 関数名の初めの文字が小文字 以下で始まる “go.”,“type.”,“runtime”,etc... 検体固有の特徴が削除される可能性 37
  • 38. © NTT Security Holdings All Rights Reserved 1. Filterにより情報が減少する場合 2022 38 https://github.com/NextronSystems/gimphash
  • 39. © NTT Security Holdings All Rights Reserved 2. Fuzzy Hashingができない場合 Fuzzy Hash算出に必要な情報量が少ない 2022 $ ~/enum_gimp_function 947b273069105ff6a78e533cd6b8b0d9e8a35f4c9534fdf9d6… All Function: 1532 … Passed Function: 6 main.LfoJVuVXGK os.(*PathError).Error os.(*File).Name os.NewFile os.Exit errors.New Fuzzy Hashに入力するサイズが4096byte以下の場合エラーとなる このサンプルの場合連結した関数文字列が短い 39
  • 40. © NTT Security Holdings All Rights Reserved 3. 解析妨害がされている場合 関数名の復元が不可能 2022 $ file 0581c4953fda52c40f5d0911acdcfcb4dfdcbb9b64e3b0213a94477b991a7ec3 0581c4953fda52c40f5d0911acdcfcb4dfdcbb9b64e3b0213a94477b991a7ec3: PE32 executable (GUI) Intel 80386 (stripped to external PDB), for MS Windows, UPX compressed $ upx -d 0581c4953fda52c40f5d0911acdcfcb4dfdcbb9b64e3b0213a94477b991a7ec3 Ultimate Packer for eXecutables Copyright (C) 1996 - 2020 UPX 3.96 Markus Oberhumer, Laszlo Molnar & John Reiser Jan 23rd 2020 File size Ratio Format Name -------------------- ------ ----------- ----------- upx: 0581c4953fda52c40f5d0911acdcfcb4dfdcbb9b64e3b0213a94477b991a7ec3: NotPackedException: not packed by UPX Unpacked 0 files. セクションを確認するとUPXでpackされていると思われる セクション名を含むが、unpack不可 40
  • 41. © NTT Security Holdings All Rights Reserved 3. 解析妨害がされている場合 関数名がランダム文字列 2022 $ ~/enum_gimp_function 3ff830b8a9a1eb5cdf60d98c969e5d18a64c5a2fa6d430098… … Passed Function: 1026 main.NewCDITPPADBCZMNQ main.(*CDITPPADBCZMNQ).MBMKXLZCVOHE main.(*CDITPPADBCZMNQ).ERGJXOCYDQNL main.(*CDITPPADBCZMNQ).DTSMCFPNHOPV main.(*CDITPPADBCZMNQ).PDUPAPZYBDWJ main.(*CDITPPADBCZMNQ).SKEKRXUKNVRZ main.(*CDITPPADBCZMNQ).SXIFTMHNQIUP … 検体ごとに異なるランダム文字列を含むことでFuzzy Hashの類似度 スコアが低下する要因となる 41
  • 42. © NTT Security Holdings All Rights Reserved 3. 解析妨害がされている場合 難読化ツール適用 2022 42 https://github.com/unixpickle/gobfuscate
  • 43. © NTT Security Holdings All Rights Reserved まとめ © NTT Security Holdings All Rights Reserved 2022
  • 44. © NTT Security Holdings All Rights Reserved まとめ Goマルウェアを高速に分類する新たな指標「gimpfuzzy」を提案 • Fuzzy Hashを活用することで検体間の類似度を測定 • データセットを利用した検証で、2.6倍以上の精度向上を確認 gimpfuzzyを利用した分類の事例を紹介 • 機能が追加された検体を同一ファミリと判定 • クロスプラットフォームの検体の分類も可能 • gimpfuzzyの課題についても議論 2022 44
  • 45. © NTT Security Holdings All Rights Reserved References • https://github.com/NextronSystems/gimphash • https://github.com/JPCERTCC/impfuzzy • https://unit42.paloaltonetworks.jp/the-gopher-in-the-room-analysis-of-golang-malware-in-the-wild/ • https://www.intezer.com/blog/malware-analysis/year-of-the-gopher-2020-go-malware-round-up/ • https://www.paloaltonetworks.jp/company/in-the-news/2019/the-gopher-in-the-room-analysis-of-golang-malware-in-the- wild • https://www.darkreading.com/threat-intelligence/attackers-use-of-uncommon-programming-languages-continues-to-grow • https://www.crowdstrike.com/blog/financial-motivation-drives-golang-malware-adoption/ • https://www.intezer.com/blog/research/operation-ElectroRAT-attacker-creates-fake-companies-to-drain-your-crypto- wallets/ • https://blogs.jpcert.or.jp/ja/2018/06/wellmess.html • https://www.ncsc.gov.uk/news/advisory-apt29-targets-covid-19-vaccine-development 2022 45
  • 46. © NTT Security Holdings All Rights Reserved Thank you! 2022 For questions / comments: ntts.nsj-so-info@global.ntt
  • 47. © NTT Security Holdings All Rights Reserved Appendix © NTT Security Holdings All Rights Reserved 2022
  • 48. © NTT Security Holdings All Rights Reserved Fuzzy Hashing (ssdeep) • ssdeepのメインアイデア:CTPH (Context Triggered Piecewise Hashing) • Piecewise Hashing : 分割した部分データのハッシュ • Rolling Hash : 固定長の部分データに対するハッシュ • Rolling Hashが一定の値になった時に、そこで分割してPiecewise Hashingを行う • トリガーとなる値は入力データ長に応じて計算 2022 a b c d e f g h i j k l Piecewise Hashing Rolling Hash a b c d e f g h i j k l 入力の類似度を よく反映できる 入力データ 入力データ 48
  • 49. © NTT Security Holdings All Rights Reserved 組み合わせ 2022 • 組み合わせ • 順番違いを考慮しない • 𝑛C𝑟 = 𝑛! 𝑛−𝑟 !𝑟! • 例:6個から2個取り出す 組み合わせ • A-B • A-C • … • 6C2 =15 A B C D E F A A-A A-B A-C A-D A-E A-F B B-A B-B B-C B-D B-E B-F C C-A C-B C-C C-D C-E C-F D D-A D-B D-C D-D D-E D-F E E-A E-B E-C E-D E-E E-F F F-A F-B F-C F-D F-E F-F 自身との組み合わせは 存在しない 順番違いは数えない 49
  • 50. © NTT Security Holdings All Rights Reserved Hashes 2022 Page Description SHA256 p.24 IPStorm (Linux) 4f0add8eadb24a134b5cab6052920f576eec1bb39232c9548286a66883dcab82 p.24 IPStorm (mac) 087f2ec8bbcee4091241e5ad30d449a1aecd0b9879338d072638c7d0ed6b30da p.28 Veil 00cf1c62ffdd727bfe8514003c6c881a4c53820a010e6e5a4757123165481864 p.28 Veil 06b5cb2bc4fb1f08a223fb0bf5cc065adb6074b27a24e063bbc8a5ce7459ff5c p.30 WellMess (A) bec1981e422c1e01c14511d384a33c9bcc66456c1274bbbac073da825a3f537d p.30 WellMess (B) 0b8e6a11adaa3df120ec15846bb966d674724b6b92eae34d63b665e0698e0193 p.30 WellMess (C) d7e7182f498440945fc8351f0e82ad2d5844530ebdba39051d2205b730400381 p.30 WellMess (D) 7c39841ba409bce4c2c35437ecf043f22910984325c70b9530edf15d826147ee p.30 WellMess (E) 8749c1495af4fd73ccfc84b32f56f5e78549d81feefb0c1d1c3475a74345f6a8 p.30 WellMess (F) 5ca4a9f6553fea64ad2c724bf71d0fac2b372f9e7ce2200814c98aac647172fb p.30 WellMess (G) 4c8671411da91eb5967f408c2a6ff6baf25ff7c40c65ff45ee33b352a711bf9c 50