自己隠蔽挙動に基づいたIoTボットの振る舞い検知

研究内容

コンピュータ上で悪さをするソフトウェアのことを一般的にコンピュータウイルスやマルウェアと呼びます.(本文ではマルウェアと呼びます) マルウェアにはコンピュータ上で悪さをする時に,自分の存在がコンピュータの管理者にバレないように処理を行うものがあります. 本研究ではこのマルウェアの自己の存在を隠蔽する挙動に基づいて検知を行う手法を提案しています.
従来のウイルス対策ソフトはソフトウェアのデータの並びをみて,マルウェアであるかを判断します.(ソフトウェアは実は0と1だけで書かれています.この0と1の並びを見て判断します.) この方法では発見済みのマルウェアのデータ列を元に検知するため,発見済みのものしか検知できないという欠点があります. 一方,本研究で提案しているようなマルウェアの振る舞いに基づいた検知手法は,マルウェアらしい振る舞いをしていれば検知できるため, 未発見のマルウェアも検知できるという利点があります.

問題

マルウェアが自己を隠蔽する挙動を行っていることが擬似的に体験できる問題です.

問題ページの擬似コンソールでは自己の存在を隠蔽するマルウェアが動作しています.

どのプロセス(実行されているプログラム)がマルウェアなのか以下のコマンドを使って探して,そのプロセスを終了させてください.

  • ls: ディレクトリにあるファイルを表示する.
  • ps: 全てのプロセスの情報を表示する.
  • cat [ファイル名]: ファイルの内容を表示する.
  • kill [プロセスID]: プロセスを終了する.

擬似コンソール

(注意:問題ページのコンソールは擬似的なものなので通常のコンソールのようには動作しません.その他使いづらさが多少あります.うまくいかない時はページをリロードしてください.)

ヒント

まずpsコマンドを使用することで,どんなプロセスが動いているのか確認します.

しかしこれだけではどれがマルウェアであるかわかりません.

次に,マルウェアの動作ログを確認します.これはcat [ログファイル名]で実行できます.
ログファイル名はlsコマンドでわかります.

ログファイルを確認すると,このマルウェアの名前がKakoであることがわかりますが,先ほどのpsコマンド実行時に
Kakoという文字列は見当たりませんでした.つまり,このマルウェアは自らの名前を変更していることが推測されます.
そしてその変更後の名前はログファイルから読み取れます.ログファイルに書いてある命令文は全て実際に存在する命令であるため,
ネットで検索すればどんなことを行っているかがわかると思います.(調べる過程を飛ばしたい方は下の特大ヒントを参照してください.)

Kakoの変更後の名前を確認したら,killコマンドを用いてそのプロセスを終了させてください.そうすることでフラグが得られます.

特大ヒント

プロセス名を変更している部分はprctl(PR_SET_NAME, "hbtG87N0ky") = 0です.