「マルウェア作成者のプロファイリング」にフォーカスを発展
前回記事の「マルウェアの「筆跡鑑定」はできるのか?の研究」では、各処理の書き方の癖を多数集めていき、その合致数が多ければ同じ作成者である可能性が高いと判断できるのではないか、という研究をしていることを書きました。
その中で、筆跡による類似性だけでなく、「コイツ、アホだなー」とか、「このロジックはよく考えて作ってあるなー」といった感想を持つことがある、ということも書きました。
これは筆跡の判定とは関係ないものの、「作成者のプロパティの一つではないか」などと考えるようになりました。
つまり、「マルウェアの書き方の中で、どのように機能を実現したかを考察することで、そのスキルの優劣も大体分かる」と考えました。
これに関しては、スキル無い人は、スキルの高い人のようにコードを書くことはできないが、スキルの高い人はわざとレベルを落とすことは可能、という条件はあります。
また、「ある程度の複雑さのプログラムになると、インプット・アウトプットは全く同じ処理であっても、書く人によって中身に差がでます。」とも書きましたが、「じゃあ何故書き方が違うのか?」ということを考察してみると、そのコードを実装した「意味」が見えてくるのではないかと考えました。
また、最近では、マルウェアの作成者と利用者(実際の攻撃者)が異なることがあると言われています。
そうすると、「マルウェアを使った攻撃(犯罪)」は、「利用者(実際の攻撃者)」の意思であって、「マルウェアの作成者」の意思とは必ずしも一致しない、ということになります。
つまり、「マルウェア作成者」は頼まれた仕様で作っただけで、「その機能を盛り込みたい」と思ったのは作成者ではない、ということも生じるのではないかと考えました。
そんなわけで、「Sachielのボクが考えたマルウェア解析トンデモ理論」では、マルウェア解析で以下の事を知ることができるのではないか、と考えました。
- マルウェア作成の思想・目的(大きな意図)
- 設計・技術的ポリシー(小さな意図)
- マルウェア作成者の知識・技能
- マルウェア作成者のコーデイングの癖(マルウェア作成者の筆跡)
これらは、マルウェアを解析していく上で、マルウェアを分析する場合でもレイヤーがあり、全体を俯瞰した解析をすることで大きな意図が、前回記事のような視点で解析することで筆跡鑑定ができると考えています。
また、それらの実装について、「なぜこういう仕様にしたか」、「どのようにして実装されているか」を解析することで設計の考え方や知識・技能も推し量ることができるだろう、と考えています。
まあ、一人で勝手に大風呂敷を広げているわけですが、これを実際のマルウェア分析でやってみた結果、どの程度まではできて、どの点が課題か、といったところを論文にできれば、と今色々やっているところです。
研究の課題:類似の研究の調査と比較
論文化するにあたり、協力してくださっている先生に言われているのが、「類似の研究や参考文献はないか」という点です。
私は、自分でゴリゴリ解析していくのは得意なんですが、リサーチが苦手なのです。(^ ^;
致命的なのが、英語が苦手なので、英語の文献を自分でなかなか探せない・・・(あれば、Google先生にも協力してもらってなんとか時間かけて読むのですが・・・)
Twitterで泣きを入れたところ、何名か親切な方が情報を提供してくれました。
それもあって、研究の初期部分を前回記事で書き、現在の概要を本記事でざっくり紹介した次第です。
もし、こんな研究でも面白いので情報提供してやるか、という方がいた場合(甘い考え)に、何やっているのかざっくり知ってもらえれば、と言ったところです。
集まった情報は今のところ以下のとおりです(随時更新するかもしれない?)。
EncodedCommandによるPowerShell攻撃を暴く
どのようなアプローチでしょうか?
— me1ancho1y (@me1ancho1y_hoge) August 6, 2021
共通API コールグラフ?https://t.co/mq1u8tRCLf
Malware Classification on Microsoft Malware Classification Challenge
この辺りは如何でしょう。https://t.co/PB1Fu67KTl
— Koichi (@x64koichi) August 6, 2021
機械語命令列の類似性に基づく自動マルウェア分類システム
https://www.iwsec.org/mws/2009/presentation/A8-4.pdf
これとかどうでしょうか。「機械語命令列の類似性に基づく自動マルウェア分類システム 」https://t.co/fI6PwsORPI
— Yuu Arai (@yarai1978) August 6, 2021
Identifying Multiple Authors in a Binary Program
この論文自体はマルウェアを対象にしたものではないようですが、このページの Citations のところにある論文にはマルウェアに関するものもあるようです。参考になるものがあれば幸いです。 https://t.co/3TLR2hARme
— Nobutaka Mantani (@nmantani) August 7, 2021
機械学習を用いると匿名のソースコードから個人を識別可能であることが判明
効率的な解析を目的とした自動マルウェア分類に関する研究(Download Link)(N-gram,IAT,LCS)
参考になれば嬉しいです
— me1ancho1y (@me1ancho1y_hoge) August 7, 2021
Gigazinehttps://t.co/vXLNYa3NrV
効率的な解析を目的とした自動マルウェア分類に関する研究(Download Link)(N-gram,IAT,LCS)https://t.co/MjIb5qI4qf
jmpで比較やAPIで見るとか多いですね.共通部分みるほうが類似度が楽ですよねw
APT CLASS
Binary (code) authorship attributionまたはcode stylometryという研究分野が問題意識に合致してますね。MLのセキュリティ応用で実績のある研究グループも同じモチベーションで最近新たにデータセットを公開しています:https://t.co/wwhNV4wUDr https://t.co/Lmjnkb8X93
— ntddk (@ntddk) August 8, 2021
結構色々な情報が集まりました(もちろん、まだあれば募集してますw)。
みなさん色々勉強されてますね・・・。
勉強が全然追いつかない。
もっと賢く生まれればよかった。 orz