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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
980
Other Decks in Technology
See All in Technology
フロントエンド開発者のための「厄払い」
optim
0
180
MySQLのJSON機能の活用術
ikomachi226
0
120
システムのアラート調査をサポートするAI Agentの紹介/Introduction to an AI Agent for System Alert Investigation
taddy_919
0
540
制約が導く迷わない設計 〜 信頼性と運用性を両立するマイナンバー管理システムの実践 〜
bwkw
1
150
入社1ヶ月でデータパイプライン講座を作った話
waiwai2111
1
190
Lambda Durable FunctionsでStep Functionsの代わりはできるのかを試してみた
smt7174
2
160
【Oracle Cloud ウェビナー】[Oracle AI Database + Azure] AI-Ready データ戦略の最短ルート:Azure AIでビジネス データの価値を最大化
oracle4engineer
PRO
2
140
Amazon Bedrock AgentCore EvaluationsでAIエージェントを評価してみよう!
yuu551
0
190
Databricks Free Edition講座 データサイエンス編
taka_aki
0
240
新規事業における「一部だけどコア」な AI精度改善の優先順位づけ
zerebom
0
420
日本語テキストと音楽の対照学習の技術とその応用
lycorptech_jp
PRO
1
370
あたらしい上流工程の形。 0日導入からはじめるAI駆動PM
kumaiu
3
510
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
The Cost Of JavaScript in 2023
addyosmani
55
9.4k
Speed Design
sergeychernyshev
33
1.5k
Making Projects Easy
brettharned
120
6.6k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.7k
Docker and Python
trallard
47
3.7k
Google's AI Overviews - The New Search
badams
0
900
Raft: Consensus for Rubyists
vanstee
141
7.3k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Reality Check: Gamification 10 Years Later
codingconduct
0
2k
The Invisible Side of Design
smashingmag
302
51k
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