Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
難読化Bashの検知
Search
udon-yuya
November 28, 2020
Technology
0
190
難読化Bashの検知
udon-yuya
November 28, 2020
Tweet
Share
More Decks by udon-yuya
See All by udon-yuya
NTTコミュニケーションズ インターンシップレポート
udonyuya
1
970
Other Decks in Technology
See All in Technology
AIエージェント開発用SDKとローカルLLMをLINE Botと組み合わせてみた / LINEを使ったLT大会 #14
you
PRO
0
130
普通のチームがスクラムを会得するたった一つの冴えたやり方 / the best way to scrum
okamototakuyasr2
0
110
なぜテストマネージャの視点が 必要なのか? 〜 一歩先へ進むために 〜
moritamasami
0
240
Unlocking the Power of AI Agents with LINE Bot MCP Server
linedevth
0
110
未経験者・初心者に贈る!40分でわかるAndroidアプリ開発の今と大事なポイント
operando
5
730
Agile PBL at New Grads Trainings
kawaguti
PRO
1
450
ブロックテーマ時代における、テーマの CSS について考える Toro_Unit / 2025.09.13 @ Shinshu WordPress Meetup
torounit
0
130
LLM時代のパフォーマンスチューニング:MongoDB運用で試したコンテキスト活用の工夫
ishikawa_pro
0
170
新規プロダクトでプロトタイプから正式リリースまでNext.jsで開発したリアル
kawanoriku0
1
180
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
10
75k
開発者を支える Internal Developer Portal のイマとコレカラ / To-day and To-morrow of Internal Developer Portals: Supporting Developers
aoto
PRO
1
470
まずはマネコンでちゃちゃっと作ってから、それをCDKにしてみよか。
yamada_r
2
120
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
30
9.7k
Facilitating Awesome Meetings
lara
55
6.5k
The Art of Programming - Codeland 2020
erikaheidi
56
13k
Speed Design
sergeychernyshev
32
1.1k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.7k
Typedesign – Prime Four
hannesfritz
42
2.8k
The Straight Up "How To Draw Better" Workshop
denniskardys
236
140k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.2k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.6k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Transcript
Z5. 難読化Bashの検知 セキュリティ・キャンプ2020 Z5トラック 田島 裕也
動機 ・攻撃者は隠蔽のために攻撃用のシェルスクリプトに難 読化処理を施すことがある. ・難読化されたスクリプトを自動で検知することで,攻撃 のバリエーションを減らすことが出来そう. 2
難読化の手法 ・自動で難読化処理を施すツール. ・https://github.com/Bashfuscator/Bashfuscator 3
難読化の手法 $ cat /etc/passwd $ $'\u0063a\x74' /e${@^^}tc/p${*%Frf\[4]}as\s'wd' ・上二つは同じ意味 ・$'\u0063a\x74' ->
cat (unicode, ascii) ・${@^^}, ${*%Frf\[4]} -> empty ・\ は無視される 4
検知するために考えたこと ・難読化されたスクリプトはかなり乱雑に見えるため,エントロピー が高そう. → テキストのエントロピーを計算したところ,正規のスクリプトと 難読化スクリプトであまり変わらない → 人間が見ると,意味のある文字列は乱雑には見えないが,実 際のエントロピーは高い 5
検知するために考えたこと ・難読化されたスクリプトは ‘$’や’{}’,’\’など特殊記号が多く 現れる. → 特殊記号が多く現れるスクリプトを検知 → かなり単純な考えだが,意外とうまくいった. 6
検知基準 ・特殊記号がファイル全体の25%より多く現れる場合,難読 化と検知する. ・閾値適当なの絶対よくない 7
実験・評価 ・難読化マルウェア → 114 / 133 (0.483s) ・正規スクリプト(/bin, /sbin, /usr, /etc, /var/lib)
→ 0 / 1656 (2.120s) ・TP rate = 0.857 ・FP rate = 0 ・Accuracy = (114 + 1656) / (133 + 1656) = 0.989 8
おまけ ・ランダムで追加される意味のない(empty)な部分をなるべく排除 することで,難読化スクリプトを見やすくする. ・無駄な部分が減って何となく見やすくなった... 9
まとめ・感想 ・特殊記号の出現比率を用いて,高い精度で難読化スクリプ トを検知することが出来た. ・正直,こんな難読化が出来ないように規約をもっと厳しいも のにしてもいいんじゃないかと思った. 10