1. バックドアアカウント
持続性の維持段階は、攻撃プロセスで攻撃者が最初の攻撃以降にも持続的に感染システムを操作できるようにする手法である。一般的にマルウェアは、レジストリ Run キーやタスクスケジューラ、サービスなどに自身を登録し、再起動後にも実行されるように持続性を維持させる。持続性維持の手法としては、このようなマルウェアに関する方式以外にもバックドアアカウントを追加する方式も存在する。
例えば、Kimsuky 脅威グループは、Windows システムを攻撃する際、感染システムを操作するために RAT を使用したりもするが、RDP を利用して GUI 環境で感染システムを遠隔操作することもある。そのため、Kimsuky グループは、感染システムに RDP Wrapper をインストールしたり、RDP サービスを有効化した後に RDP サービスをパッチして RDP マルチ接続を可能にさせたりする。そして、新しいアカウントを登録して隠蔽することで、その後に作成したアカウントで感染システムを操作する。[1]

このように追加のアカウントを登録する攻撃方式は、Windows システムだけでなく、Linux も同様だ。Linux 環境を対象とする攻撃には、Windows と同じように新しいアカウントを生成する方式がある。もちろん、以外にも root アカウントのように高い権限を持つアカウントですでに存在するアカウントのパスワードを変更することもできる。
Linux 管理者は、セキュリティのため、SSH サーバーにパスワードでログインする代わり、サーバーに SSH キーを登録した後、生成したキーをベースにクライアントでサーバーにログインすることができる。これを使用すると、パスワードを使用することなく、該当のキーを所持しているクライアントでのみサーバーに接続できるようになる。攻撃者は、このような方式を活用し、ログインしたアカウントに直接生成した SSH キーを登録することで、以降、パスワードを入力することなく該当のキーを利用して感染システムにログインできるようになる。
2. Linux SSH サーバーを対象とする攻撃
攻撃者は、攻撃対象に関する情報、すなわち IP アドレスと SSH 資格証明情報を獲得する必要があり、そのため IP をスキャニングしながら SSH サービス、すなわち22番ポートが有効化されたサーバーを探す。その後、ID / PW 情報を獲得するため、総当たり攻撃(または辞書攻撃)を実行してログインを試みる。ログインに成功すると、後述する様々なコマンドを実行し、感染システムにバックドアアカウントを追加する。
| User | Password | Attacker |
|---|---|---|
| admin1 | admin | 180.151.19[.]85 |
| root | 1234!@#$ | 180.151.19[.]85 |
| svn | svn | 180.151.19[.]85 |
| root | tttttt | 124.221.81[.]81 |
| root | 1QZ2WX3EC | 124.221.81[.]81 |
| 345gs5662d34 | 345gs5662d34 | 124.221.81[.]81 |
3. 攻撃事例の解析
3.1. ユーザーアカウントの追加
ログインに成功した攻撃者は、以下のようなコマンドを利用して新しいアカウントを登録した。生成したアカウントを通して攻撃者は後にも感染システムにログインし、マルウェアをインストールしたり、様々な不正な振る舞いを実行することができる。
| Attacker | 追加したアカウント | Command |
|---|---|---|
| 218.75.72[.]82 | tomer | # echo -e “tomer\nsIeI5BHxSX3y\nsIeI5BHxSX3y”|passwd|bash |
| 106.55.28[.]159 | 123456 | # echo -e “123456\nBaPSCgtzh27G\nBaPSCgtzh27G”|passwd|bash |
| 115.219.2[.]97 | username123456 | # echo -e “username123456\nm9qMsqItsEr4\nm9qMsqItsEr4″|passwd|bash |
このような攻撃ログは、多数の Attack Source で確認され、アカウントおよびパスワードも毎回変わるが、このような点からしてログインに成功した後、アカウントを登録するコマンドまですべてが自動化されたスクリプトがあると考えられる。例えば、過去に侵入した Linux システムにスキャナーマルウェアをインストールする事例を紹介したが、[2] ログインに成功したシステムにバックドアアカウントを追加するスクリプトを追加でインストールする場合、このような攻撃を自動化することもできるだろう。
3.2. root アカウントパスワードの変更
新しいユーザーアカウントを追加する代わり、既存に存在する root アカウントのパスワードを変更する方式も多数確認されている。Root アカウントは、一般的な Linux システムに存在し、システムを操作できる権限も十分であるため、主な攻撃対象となるアカウントである。攻撃者は、以下のようなコマンドを利用して root アカウントのパスワードを変更しており、このようなログが多数確認されるという点から、攻撃者のシステムにスキャナーマルウェアと共に該当のコマンドを実行するスクリプトを一緒にインストールしたと思われる。
| Attacker | Command |
|---|---|
| 106.13.198[.]93 | # echo “root:Kx1ZUAdwqxj4″|chpasswd|bash |
| 175.178.80[.]251 | # echo “root:U356mjT31Wga”|chpasswd|bash |
| 117.50.187[.]121 | # echo “root:gK18riPfcCjG”|chpasswd|bash |
| 47.103.63[.]1 | # echo “root:Mo0ai05lV75A”|chpasswd|bash |
このようにログイン後、単純に root アカウントのパスワードを変更するコマンドのみ実行するタイプとは違い、以下のように追加で感染システムの OS、ハードウェア、ユーザー情報など、様々な情報を出力するコマンドを共にに使用する攻撃事例も存在する。攻撃者は、root アカウントを本人だけがログインできるバックドアアカウントに転換した後、該当の情報をベースにマルウェアをインストールしたり、ダークウェブに資格証明情報を販売することもあるだろう。
| # cat /proc/cpuinfo | grep name | wc -l # echo “root:jeEQGchP0tzc”|chpasswd|bash # rm -rf /tmp/secure.sh; rm -rf /tmp/auth.sh; pkill -9 secure.sh; pkill -9 auth.sh; echo > /etc/hosts.deny; pkill -9 sleep; # ls -lh $(which ls) # which ls # crontab -l # w # uname -m # cat /proc/cpuinfo | grep model | grep name | wc -l # top # uname # uname -a # whoami # lscpu | grep Model # df -h | head -n 2 | awk ‘FNR == 2 {print $2;}’ |
3.3. SSH キーの登録
ここまでは、ユーザーアカウントを追加したり、既に存在する root アカウントのパスワードを攻撃者が分かる形態に変更する攻撃事例を紹介した。しかし、このような方式の以外にも感染システム、すなわち Linux サーバーに SSH キーを生成する形態も多数存在する。
Linux サーバーに SSH を利用してログインする場合、パスワードを入力することもできるが、SSH キーを利用すると、パスワードを入力せずにログインすることができる。このためには、SSH キーのペア、すなわち公開鍵 / 個人鍵を生成し、ログインする Linux サーバーに SSH 公開鍵をインストールするプロセスが必要である。Linux サーバーに公開鍵がインストールされると、生成した個人鍵を利用し、クライアントでサーバーにパスワードを入力することなくログインすることが可能になる。
攻撃者は、このような点を悪用してログイン後、すでに存在する SSH 公開鍵、すなわち「authorized_keys」ファイルを削除した後、すでに製作した公開鍵の内容を「authorized_keys」ファイルに書き込む。その後、攻撃者は公開鍵製作時に一緒にに生成した個人鍵を利用して感染システムにログインすることができるだろう。
以下の攻撃は、上記で紹介したバックドアアカウント追加攻撃と類似しているが、SSH 公開鍵を挿入するプロセスが共に含まれている。すなわち、攻撃者は攻撃プロセスでログインしたアカウントに対して SSH キーを利用してログインすることができ、そのアカウントでなくとも新しく生成した「student2123」アカウントでログインすることもできるのである。
| # cd ~; chattr -ia .ssh; lockr -ia .ssh # cd ~ && rm -rf .ssh && mkdir .ssh && echo “ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEArDp4cun2lhr4KUhBGE7VvAcwdli2a8dbnrTOrbMz1+5O73fcBOx8NVbUT0bUanUV9tJ2/9p7+vD0EpZ3Tz/+0kX34uAx1RV/75GVOmNx+9EuWOnvNoaJe0QXxziIg9eLBHpgLMuakb5+BgTFB+rKJAw9u9FSTDengvS8hX1kNFS4Mjux0hJOK8rvcEmPecjdySYMb66nylAKGwCEE6WEQHmd1mUPgHwGQ0hWCwsQk13yCGPK5w6hYp5zYkFnvlC8hGmd4Ww+u97k6pfTGTUbJk14ujvcD9iUKQTTWYYjIIu5PmUux5bsZ0R4WFwdIe6+i6rBLAsPKgAySVKPRK+oRw== mdrfckr”>>.ssh/authorized_keys && chmod -R go= ~/.ssh && cd ~ # cat /proc/cpuinfo | grep name | wc -l # echo -e “student2123\nEI8sqWc0mQk3\nEI8sqWc0mQk3″|passwd|bash # ls -lh $(which ls) # which ls # crontab -l # w # uname -m # cat /proc/cpuinfo | grep model | grep name | wc -l # top # uname # uname -a # whoami # lscpu | grep Model # df -h | head -n 2 | awk ‘FNR == 2 {print $2;}’ |

3.4. マルウェアの攻撃事例
A. KONO DIO DA コインマイナー攻撃事例
バックドアアカウントおよび SSH キーを生成する振る舞いは、単独攻撃で使用されたりもするが、他の攻撃で一緒に使用されたりもする。過去に紹介した不適切に管理されている Linux SSH サーバーを対象とした KONO DIO DA 攻撃事例では、XMRig コインマイナーをインストールすると同時に SSH キーファイルを一緒に追加することもあった。[3] 以下のような圧縮ファイル内部には SSH 公開鍵が含まれた「key」ファイルが存在しており、「init0」不正な Bash スクリプトがこれをインストールする。まず、すでに存在する「~/.ssh/authorized_keys」ファイルを除去した後、「key」ファイルを該当のパスにコピーする。

この他にも usermod コマンドを利用して「cheeki」というアカウントを追加し、感染システムに「root」、「dolphinscheduler」、「admin」、「es」、「hadoop」アカウントが存在する場合、攻撃者が指定したパスワードに変更するタスクも追加で実行した。

B.DDoS Bot 攻撃事例(Tsunami、ShellBot)
過去、XMRig だけでなく Tsunami、ShellBot をインストールした攻撃事例でも SSH キーファイルを生成する振る舞いが確認された。[4] 攻撃者はログインに成功した後、Bash スクリプトをダウンロードして実行したが、これにはコインマイナー、DDoS Bot、ログクリーナーマルウェアをインストールするルーチンだけでなく SSH キーファイルを生成するルーチンも存在する。

4. 結論
不適切に管理されている Linux SSH サーバーを対象にバックドアアカウントを追加する攻撃事例は、以前からこれまで持続的に確認されている。攻撃者は、インストールしたバックドアアカウントを利用し、感染システムにランサムウェア、コインマイナー、DDoS Bot のようなマルウェアをインストールしたり、感染システムから収集した資格証明情報をダークウェブに販売することもある。
そのため、管理者は SSH サーバーのセキュリティポリシーを強化する必要がある。まず、アカウントのパスワードを推測が困難な形式で設定し、定期的にパスワードを変更することで、総当たり攻撃や辞書攻撃から Linux サーバーを保護しなければならない。そして、SSH セキュリティのため、パスワードの代わりに SSH キーベースの認証を使用したり、root アカウントの SSH ログインを無効化することができ、許可された IP のみ SSH 接続ができるように制限することもできる。
他にも、外部に開放されていてアクセスが可能なサーバーに関してはファイアウォールのようなセキュリティ製品を利用し、外部の攻撃者からのアクセスを統制しなければならない。最後に、V3 を最新バージョンにアップデートしてマルウェア感染を事前に遮断できるように注意を払う必要がある。
ASEC では、Linux SSH ハニーポットを活用してこのような Attack Source のアドレスをリアルタイムで取集しており、確認されたアドレスは AhnLab TIP を通して提供している。

IOC
Attack Source
– 180.151.19[.]85
– 124.221.81[.]81
– 218.75.72[.]82
– 106.55.28[.]159
– 115.219.2[.]97
– 106.13.198[.]93
– 175.178.80[.]251
– 117.50.187[.]121
– 47.103.63[.]1
関連 IOC および詳細な解析情報は、AhnLab の次世代脅威インテリジェンスプラットフォーム「AhnLab TIP」サブスクリプションサービスを通して確認できる。
Categories: マルウェアの情報