株式会社Ninjastars
取締役:齊藤和輝
ランサムウェアについて
ランサムウェアとはマルウェアの一種であり、
感染すると攻撃対象のマシン(PC/スマートフォン)上でのユーザー操作が制限されてしまいます。
現在、ランサムウェアは暗号化タイプと非暗号化タイプの2種類に分類できます。
暗号化ランサムウェアでは攻撃対象の外部記憶装置のデータを暗号化し、ファイルへのアクセスを制限します。
それに対して、非暗号化ランサムウェアではポルノ画像やグロ画像を表示し続けることでシステムへのアクセスを制限してきます。
どちらのタイプであってもPCやファイルを人質にとり、制限を解除したければ金を払えという風に金銭を要求します。
今回の記事では「Reversing.Kr」のRansomwareを題材にランサムウェアについて解説していきます。
Reversing.Krとはリバースエンジニアリングの技術を学ぶための演習問題を公開しているサイトです。
問題によっては配布されるプログラムがマルウェアとして認識されてしまう場合もありますが、
あくまでソフトウェア解析技術の向上を目的としたプログラムなのでご安心ください。
Reversing.Krのリンクはこちら
reversing.kr
本記事は常設CTFの問題のネタバレを多く含みます。ご覧いただく際はご注意ください。
今回の演習問題では元々実行可能ファイルであったはずの「file」がランサムウェアに人質として捕らえられ、実行不能なファイルになっています。
問題回答までの流れとしては、ランサムウェア本体であるrun.exeを解析して、fileがどのように暗号化されているのかを明らかにしたあと、元に戻して実行可能な状態にまで持っていきます。
まずはrun.exeを解析していきましょう!
実際にrun.exeを実行してみると、文字化けしています。
元が韓国語なので私にとってはどちらも解読不可能な文字列ですが...Keyを使ってどのように復号処理をしているのかをGhidraで見ていきましょう。
ここで注目すべきはProgram Trees内のUPXという文字です。
これはUPXと呼ばれるパッカーでパッキングされていることを表しています。