Armoris日記 Mattermost CLI編

このブログは、3月までN高等学校に潜んでいた株式会社Armorisの社員が書いています。

あるもりすぶろぐの内容は個人の意見です。

Mattermost CLIを使う

そもそも Mattermost とは何か

Mattermost とはオープンソースで開発されているチャットサービスです。使用感や UI は Slack によく似ています。そのため Slack を使用したことがある人ならばすぐに馴染めると思います。

今回は Mattermost を使用する際にコマンドラインでユーザーの作成等が行える Mattermost CLI を実際の使用例を交えて紹介していこうと思います。

今回紹介するコマンド以外にも便利なコマンドがたくさんあるため、興味がある方は以下URLから公式リファレンスを参照してください。

基本の使い方

Mattermost CLI のコマンドを使うためにはインストール時に Mattermost を展開した場所の中にある Mattermost ファイルを指定する必要があります。
この時公式リファレンスでは Mattermost のルートディレクトリから実行しろとあるので、デフォルトでインストールした場合は以下のように使います。

cd /opt/mattermost
bin/mattermost {command}

ユーザー作成

Mattermost CLI でユーザーを作成する場合は以下のようにメールアドレスとユーザー名、パスワードを指定します。

bin/mattermost user create --email user@example.test --username user --password Password

以下はuser createで指定できるオプションです。
--system_adminを指定すれば管理者アカウントを作成することができます。

--email string       Email
--firstname string   First Name
--lastname string    Last Name
--locale string      Locale (ex: en, fr)
--nickname string    Nickname
--password string    Password
--system_admin       Make the user a system administrator
--username string    Username

ユーザーをチームに追加

作成したユーザーをチームに参加させるには以下のようにユーザーのメールアドレスとユーザー名を指定します。

bin/mattermost team add ExampleTeam user@example.test user

チャンネル作成

チームに参加しているユーザーが誰でも参加できる公開チャンネルを作る際は以下のようにコマンドを実行します。
この時チャンネル名は全て小文字にする必要がありますが、display nameは大文字やスペースを使用することができます。

bin/mattermost channel create --team ExampleTeam --name channel --display_name "Channel"

以下はchannel createで指定できるオプションです。
--privateを指定することでシークレットチャンネルを作成することができます。

--display_name string   Channel Display Name
--header string         Channel header
--name string           Channel Name
--private               Create a private channel.
--purpose string        Channel purpose
--team string           Team name or ID

ユーザーをチャンネルに追加

作成したチャンネルにユーザーを追加する場合は以下のようにコマンドを実行します。
シークレットチャンネルの場合も同様にチャンネル名を指定してユーザーを追加することができます。

bin/mattermost channel add ExampleTeam:channel user

シェルスクリプトで楽をする

ここまで Mattermost を利用するにあたってよく使うと思われるコマンドを紹介しましたが、これを手動でぽちぽちするのは大変なので、次はシェルスクリプトを使って楽に大量のアカウントを操作する方法を紹介します。

実際にトレーニングを行う際などは大量にユーザーを作成してチャンネルに追加したりする作業が必要だと思いますが、シェルスクリプトを使えば全て自動で行うことができます。
また、次に環境を用意する時もパラメータを変更するだけで可能なため、非常に楽に運用することができると思います。

ここでは例として以下の要件に沿ってチャンネルとユーザーを作成し、各ユーザーをチームに参加させて作成したチャンネルに追加するスクリプトを書きます。

項目 名前
チーム名 ExampleTeam
ユーザー名 user1 ~ user10
メール user1@example.test ~ user10@example.test
パスワード password1 ~ password10
参加チャンネル channel
#!/bin/bash

TeamName="ExampleTeam"
Channel="channel"
User="user"
Mail="example.test"
Password="password"

bin/mattermost channel create --team $TeamName --name $Channel --display_name "$Channel"

for i in `seq 1 10`
do
        bin/mattermost user create --email $User$i@$Mail --username $User$i --password $Password$i
        bin/mattermost team add $TeamName $User$i@$Mail $User$i
        bin/mattermost channel add $TeamName:$Channel $User$i
done

最後に

冒頭でも説明したように今回紹介したのコマンドはごく一部です。Mattermost CLI には他にもたくさんのコマンドが用意されているため興味がある方は是非公式リファレンスを参照してください。

そして最後にシェルスクリプトを紹介しましたが、Mattermost CLI のコマンドだけでなくシェルスクリプトでいろいろなことができます。シェルスクリプトについても興味があれば是非調べてみてください。

Armoris日記 OpenLDAP&QNAP NAS編

このブログは、N高等学校に潜んでいる株式会社Armorisのアルバイトが書いています。

あるもりすぶろぐの内容は個人の意見です。

OpenLDAPとQNAPのNASを連携させる

今回のArmoris日記はQNAPのNASOpenLDAPとの連携について解説します。

NAS (Network Attached Storage) とは、ネットワークに直接接続して使用するファイルサーバです。そして、QNAPはよく用いられるNASのメーカーです。

OpenLDAPとは、簡単にいえば認証サーバーです。複数のサービスで中央集権的に認証情報を管理するときに使われるものです。

環境

使用した環境と各種バージョンは以下のとおりです。

Name Version
QNAP TS-453Be 4.4.3.1400
Ubuntu Server 18.04
OpenLDAP 2.4.49
LDAP Account Manager 6.7

セットアップ

QNAP NASOpenLDAPは構築済であることを前提としておきます。

Sambaのインストール

# Sambaのインストール
$ sudo apt-get install samba
# インストールの確認
$ samba -V
Version 4.7.6-Ubuntu
# Serviceのストップ
$ sudo systemctl stop smbd nmbd
# Sambaを使わない場合は自動起動を無効
$ sudo update-rc.d -f samba-ad-dc remove
$ sudo update-rc.d -f smbd remove
$ sudo update-rc.d -f nmbd remove

スキーマファイルを追加

# スキーマファイルをコピー
$ sudo cp /usr/share/doc/samba/examples/LDAP/samba.schema /etc/ldap/schema/
$ sudo cp /usr/share/doc/samba/examples/LDAP/samba.ldif /etc/ldap/schema/
# スキーマファイルを追加
$ sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/samba.ldif
# 確認
$ sudo ldapsearch -Y EXTERNAL -H ldapi:/// -LLL -b "cn=schema,cn=config" dn

QNAPと連携

1 管理者として NAS にログインします。

2 「コントロールパネル」 > 「権限」 > 「ドメインセキュリティ」に進みます。

  1. LDAP認証を設定します。
    f:id:Armoris:20201009224650p:plain
フィールド 説明
LDAP サーバーホスト LDAPサーバーのホスト名またはIPアドレスを指定
LDAPセキュリティ ldap:// 標準LDAP接続を使用
ldap://(ldap + SSL) SSLで暗号化された接続を使用
ldap://(ldap + TLS) TLSで暗号化された接続を使用
ベースDN LDAPドメインを指定
例: dc=mydomain,dc=local
ルートDN LDAPユーザーを指定
例: cn=admin,dc=mydomain,dc=local
パスワード ユーザーのパスワードを指定
ユーザーベースDN ユーザーが格納されている OU(組織単位)を指定
例: ou=people,dc=mydomain,dc=local
グループベースDN グループが格納されている OU(組織単位)を指定
例: ou=group,dc=mydomain,dc=local

4 適応をクリックします。

5 LDAP 認証オプションを設定します。

設定 説明
ローカルユーザーのみ ローカル NAS ユーザーのみが、Microsoft ネットワーキングを経由して NAS にアクセスできます
LDAPユーザーのみ LDAPユーザーのみが、Microsoft ネットワーキングを経由してNASにアクセスできます

6 終了をクリックします。

LDAPのUserを設定

1 権限があるユーザーでLAMにログインします。

2 左上のTree viewをクリックします。

f:id:Armoris:20201009233709p:plain

3 任意のouの下のCreate new entry hereをクリックします。

4 TemplatesのDefaultを選択します。 f:id:Armoris:20201009234523p:plain

5 Object classesから以下をCtrl+クリックで選択しProceedをクリックします。

inetOrgPerson
posixAccount
sambaSamAccount

f:id:Armoris:20201009235010p:plain

6 RDNをcnにして以下の項目を埋めCreate objectをクリックします。

cn: ユーザー名
gidNumber: Properなら10 Parttimeなら11
homeDirectory: /home/ユーザー名
sambaSID: 「コントロールパネル」 > 「権限」 > 「ドメインセキュリティ」の現在のSamba ID
sn: ユーザー名
uid: ユーザー名
uidNumber: Armorisの名簿の番号
mail: メールアドレス
userPassword: 適当なパスワード

f:id:Armoris:20201009235235p:plain

確認

「コントロールパネル」 > 「権限」 > 「ドメインユーザー」でLDAPのユーザーが表示されれば成功です。 f:id:Armoris:20201010000246p:plain

最後に

今回はOpenLDAPとQNAP NASの連携を紹介しました。 NAS内蔵のLDAPを使う方法は多く紹介されていますが、外部のLDAP Serverを利用する方法の紹介は多くないように思えたので紹介してみました。

Armoris日記 CVE-2020-24389編

このブログは、3月までN高等学校に潜んでいた株式会社Armorisの社員が書いています。

あるもりすぶろぐの内容は個人の意見です。

CVE-2020-24389 の検証をしてみる

今週の Armoris日記は久しぶりの検証編になります。
脆弱性の検証は自身で管理するサーバー以外にはしないでください。

今回検証するのは 2020/09/21 に公開された CVE-2020-24389 の脆弱性になります。
この脆弱性は一部のファイル拡張子が無効化されていなかったため、任意の PHP コードをアップロードすることができるようになるというものです。

つまり自作のプログラムファイルがサイト管理者に無断でアップロードされてしまいます。

2020/10/01 時点で既にいくつか PoC に関する情報が出ていますが、WPScan に公開されていないため PoC に関する説明は行いません。

脆弱性情報 : WPScan WordPress Vulnerability Database
該当プラグイン : Drag and Drop Multiple File Upload – Contact Form 7
関連プラグイン : Contact Form 7

影響を受けるバージョン : < 1.3.5.5

検証環境

検証に使用した環境と各種バージョンは以下のとおりです。
今回の脆弱性Drag and Drop Multiple File Upload – Contact Form 7 というプラグインに存在するものですが、これは Contact Form 7 というプラグインに機能を追加するもののため、検証には両方をインストールする必要があります。

Name Version
Ubuntu Server 20.04
WordPress 5.5.1
Drag and Drop Multiple File Upload – Contact Form 7 1.3.5.1
Contact Form 7 5.2.1

プラグインインストール・準備

まずは必要なプラグインの zip をダウンロードします。

$ wget https://downloads.wordpress.org/plugin/drag-and-drop-multiple-file-upload-contact-form-7.1.3.5.1.zip && wget https://downloads.wordpress.org/plugin/contact-form-7.5.2.1.zip
--2020-10-01 04:29:37--  https://downloads.wordpress.org/plugin/drag-and-drop-multiple-file-upload-contact-form-7.1.3.5.1.zip
Resolving downloads.wordpress.org (downloads.wordpress.org)... 198.143.164.250
Connecting to downloads.wordpress.org (downloads.wordpress.org)|198.143.164.250|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 35452 (35K) [application/octet-stream]
Saving to: ‘drag-and-drop-multiple-file-upload-contact-form-7.1.3.5.1.zip’

drag-and-drop-multiple-file-upload-cont 100%[=============================================================================>]  34.62K  --.-KB/s    in 0.07s

2020-10-01 04:48:00 (529 KB/s) - ‘drag-and-drop-multiple-file-upload-contact-form-7.1.3.5.1.zip’ saved [35452/35452]

--2020-10-01 04:29:43--  https://downloads.wordpress.org/plugin/contact-form-7.5.2.1.zip
Resolving downloads.wordpress.org (downloads.wordpress.org)... 198.143.164.250
Connecting to downloads.wordpress.org (downloads.wordpress.org)|198.143.164.250|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 185814 (181K) [application/octet-stream]
Saving to: ‘contact-form-7.5.2.1.zip’

contact-form-7.5.2.1.zip                100%[=============================================================================>] 181.46K   198KB/s    in 0.9s

2020-10-01 04:29:45 (198 KB/s) - ‘contact-form-7.5.2.1.zip’ saved [185814/185814]

$ ls
contact-form-7.5.2.1.zip  drag-and-drop-multiple-file-upload-contact-form-7.1.3.5.1.zip

zip のダウンロードが完了したら zip を解凍し、プラグインディレクトリに配置します。

$ sudo unzip contact-form-7.5.2.1.zip && sudo unzip drag-and-drop-multiple-file-upload-contact-form-7.1.3.5.1.zip
~~~~~~~~~~~~~~~~
  inflating: drag-and-drop-multiple-file-upload-contact-form-7/languages/dnd-upload-cf7-ru_RU.mo
  inflating: drag-and-drop-multiple-file-upload-contact-form-7/languages/dnd-upload-cf7-ru_RU.po
  inflating: drag-and-drop-multiple-file-upload-contact-form-7/readme.txt
  inflating: drag-and-drop-multiple-file-upload-contact-form-7/uninstall.php
$ sudo cp -r drag-and-drop-multiple-file-upload-contact-form-7 /var/www/wordpress/wp-content/plugins/ && sudo cp -r contact-form-7 /var/www/wordpress/wp-content/plugins/
$ ls /var/www/wordpress/wp-content/plugins/
akismet  contact-form-7  drag-and-drop-multiple-file-upload-contact-form-7  hello.php  index.php

プラグインファイルを配置したら /wp-content/uploads/wp_dndcf7_uploads/wpcf7-files というディレクトリを作成しておきます。

次に /var/www/wordpress/ ディレクトリ以下の所有者とグループがwww-dataになっている事を確認します。 rootなどになっている場合は所有者とグループを変更します。

$ ls -l
total 8
drwxr-xr-x 2 root     root     4096 Sep 28 08:59 html
drwxr-xr-x 5 www-data www-data 4096 Sep 30 09:04 wordpress

最後に WordPressのサイトを開いてプラグインを有効化すれば準備は完了です。

PoC を実際に実行してみる

準備が完了したら実際に PoC を実行します。
今回は以下の PHP コードをアップロードしてみます。

<?php
    phpinfo();
?>

以下の画像は PoC 実行時の結果です。
f:id:Armoris:20201001141618j:plain

以下は実際に phpinfo の実行が確認されています。 f:id:Armoris:20201001142026p:plain

最後に

今回検証した脆弱性は攻撃が非常に簡単なため、実際に攻撃事例が報告されています。
脆弱性の対象バージョンは比較的新しいもののため、導入されている方はすぐにアップグレードすることをお勧めします。

また、プラグインがファイルをアップロードするディレクトリ に不審なファイルがないかを確認してみるのもいいと思います。

自分が管理するサーバー以外では絶対に試さないでください。
また、検証は自己責任で行ってください。

Armoris日記 UNIXコマンド入門編

このブログは、3月までN高等学校に潜んでいた株式会社Armorisの社員が書いています。

あるもりすぶろぐの内容は個人の意見です。

Web で UNIX 系 OS のコマンドライン操作に慣れる

今回は Linux を触り始めたばかりの方や、ある程度コマンドライン操作に自信がついてきた方におすすめな、コマンドライン操作に慣れる練習をするのに便利な Webサイトをいくつか紹介したいと思います。
サイトは私が実際にやってみて感じたレベル感をもとに、それぞれ 初級 ・ 中級 ・ 上級 に分けて紹介しています。

初級・中級で紹介するサイトでは主に良く使うコマンドの操作が中心ですが、上級ではより発展的な内容になっています。

初級

初級で紹介するのは Linuxなどに今まで触れたことが無く、コマンドライン操作自体に馴染みがないと言う方におすすめなサイトになります。

サイト名 Progate Command Line 基礎編
これは Progate が提供するプログラミング学習サービスのレッスンの一つで、無料で受けることができます。
レッスンではコマンドの説明を読み、次に実践すると言う形で進めていきます。コマンド説明のスライドは日本語でわかりやすく、扱っているコマンド数が少ないので簡単に覚えられると思います。

f:id:Armoris:20200924172414p:plain

このレッスンでは主にlsmv cp などの基本的なファイル操作のコマンドなどを学習できます。

中級

中級で紹介するのは cdmv は使えるので他にももっと色々なコマンドを便利に使いたいと言う方におすすめです。

サイト名 Command Line Linux Journey
このサイトはオープンソースで提供されている Linux について学ぶことのできる学習サイト Linux Journey で提供されているものになります。
このコースでは初級で紹介した基本的なコマンドと応用的なコマンド、知っておくと役立つコマンドなどが紹介されています。サイト自体は英語のためコマンドの説明なども英語ですが、コマンドの使用例などを交えて解説されているのでわかりやすいと思います。

f:id:Armoris:20200924172458p:plain

このコースでは findalias など少し発展的なコマンドを学習できます。
また、サイトでは Linux 全般についてまとめられているため他にも興味を持ったカテゴリーを覗いてみるのもいいと思います。

上級

上級で紹介するのはより応用的なコマンドなど実際によく使うものを学べるサイトになります。
初級と中級が簡単にできてしまい物足りないと感じる方は是非挑戦してみてください。

サイト名 CMD Challenge
このサイトはオープンソースで公開されているシェルに関する知識を試すことができるものになります。
このサイトでは問題が表示され、その条件を満たすコマンドを入力することで先に進むことができます。問題は hello world を表示しろと言うものから 特定のファイルのラスト5行を表示しろと言うものなど幅広いコマンドと難易度の問題が用意されています。

f:id:Armoris:20200924172521p:plain

また、解答が必ずしも一つとは限らないので幅広いコマンドを試せるためおすすめです。
このサイトでは echo などの基本的なコマンドから awkgrep|| など shell に関することをより多く学習することができます。

最後に

以上3つのサイトを実際に自分でやってみて感じた難易度順にそれぞれ紹介してみました。
今回紹介したサイト以外にも同じようなコマンド学習サイトはいくつかあります。自分に合ったサイトを見つけて UNIX コマンドを使いこなせるようになって欲しいと思います。

私自身もまだまだ知らないことが多いので、今回紹介したようなサイトなどを参考にしながら日々勉強しています。

Armoris日記 OWASP ZAP 初級編

このブログは、3月までN高等学校に潜んでいた株式会社Armorisの社員が書いています。

あるもりすぶろぐの内容は個人の意見です。

OWASP ZAP で手軽に Webサイトスキャン

今回の Armoris日記は OWASP ZAP 初級編ということでインストールとログの取得やサイトスキャンなどの簡単な使い方の解説をします。
いずれ初級編以外のバージョンも作るかもしれません。

OWASP ZAP とは OWASP (Open Web Application Security Project) と言われる Webアプリケーションのセキュリティに関する研究などを行っている組織が、OSS として公開している Webアプリケーションや Webサービス脆弱性を診断するためのツールです。

今回の記事では現時点で最新のバージョン 2.9.0 を使用しています。(2020/09/17) f:id:Armoris:20200917181239p:plain

インストールと起動

まずはリンク先のダウンロードページから自身の環境にあったインストーラーをダウンロードしてください。

ダウンロードが完了したらインストーラーの指示に従ってインストールを進めてください。

インストールが完了したら OWASP ZAP を起動します。
起動中の状態。
f:id:Armoris:20200917181219p:plain

起動が完了した状態。 f:id:Armoris:20200917181720p:plain

通信ログを確認するための設定

通信ログを確認するためには OWASP ZAP と Webブラウザーでそれぞれ設定が必要です。
まずは OWASP ZAP の設定箇所を説明します。

OWASP ZAP の左上あたりにある歯車のマークを押して設定を開いてください。
設定を開いたら画像のように左の項目から ローカル・プロキシ の項目を探し、Address:ポートの部分を変更します。
ポートの部分は右にスクロールすることで入力部分が確認できます。
Address → localhost
ポート → 8090 (今回は8090を使用) f:id:Armoris:20200917182854p:plain
変更が完了したら OK を押して設定を反映します。

次に HTTPS通信用の証明書を保存します。
左の項目から ダイナミック SSL証明書 の項目を探し、生成 を押して証明証が生成されたら 保存 を押してわかりやすい場所に保存します。
f:id:Armoris:20200917184737p:plain

次にブラウザーでの設定です。
今回は Firefox での設定例です。

画像のように Firefox の設定を開き、一般の一番下にあるネットワーク設定から 接続設定... を開きます。
f:id:Armoris:20200917183640p:plain

接続設定を開いたら手動でプロキシーを設定するを選択し、 localhost と先ほど設定したポート番号を入力します。
f:id:Armoris:20200917183749p:plain

次にプライバシーとセキュリティの一番下にある 証明書を表示...を開きます。
f:id:Armoris:20200917185428p:plain

設定が開いたら認証局証明書を押して 読み込む... から先ほど保存した証明書を読み込みます。
f:id:Armoris:20200917185525p:plain

証明書を読み込む際に画像のように以下の部分にチェックをつけておきます。
f:id:Armoris:20200917185537p:plain

通信ログを確認してみる

ここまでの設定が完了したら OK を押して設定を保存し、実際に Webページを開いてみましょう。
画像のように OWASP ZAP に通信ログが表示されていれば成功です。
f:id:Armoris:20200917185941p:plain

最後に OWASP ZAP の機能を試してみる

最後に OWASP ZAP の機能である脆弱性スキャンを試してみます。
これは必ず自分の管理下にあるサイトに対して行ってください。また、実行はあくまでも自己責任でお願いします。

今回は Ansible を使用して WordPress の環境を準備したのでそちらを使用します。
まずはスキャン対象のサイトにアクセスし、OWASP ZAP のサイト一覧に追加されていることを確認します。
f:id:Armoris:20200918105006p:plain

次にスキャン対象のサイトURL を右クリックし、攻撃から今回は動的スキャンを実行してみます。
f:id:Armoris:20200918105313p:plain

スキャン開始を押すとスキャンが実行されます。
f:id:Armoris:20200918110229p:plain

スキャン実行中の様子です。
f:id:Armoris:20200918110336p:plain

スキャンが終了すると以下の画像のように進行状況が 100% になりアラートの数などが表示されます。
f:id:Armoris:20200918110557p:plain

最後に

今回は OWASP ZAP の簡単な使い方を紹介しました。
OWASP ZAP は特定のリクエストがきたらそこで一度通信を止め、リクエストを改変してから再び送るなどの操作が容易に行えます。そのため実際の脆弱性検証でも使われることが多いツールです。
また、他にも多くの機能があるためこれを機に使しずつ機能を試しながら使えるようになると、損はないのではないでしょうか。

脆弱性スキャンは自身で管理する VirtualBox などの環境に対して行うようにしましょう。

Armoris日記 VirtualBox Snapshot編

このブログは、3月までN高等学校に潜んでいた株式会社Armorisの社員が書いています。

あるもりすぶろぐの内容は個人の意見です。

VirtualBox でスナップショットを使って楽しよう

前回のブログは弊社の竹田CXO(Chief Xatsuyo Officer等と呼称する)執筆によるEmotet関連情報をお届けしましたが、今回はいつもの「私」が記事を書いております。

今回は「スナップショット」という機能についてご紹介します。これをうまく活用すれば、検証作業や各種のテストなどで汎用的に使う環境を一瞬で構築することができます。

まず初めに VirtualBox のスナップショットについて簡単に解説します。
VirtualBox のスナップショットとは簡単に仮想マシンの現在の状態を保存しておき、いつでもその状態に戻すことができる機能です。

説明に使用している環境は VirtualBox 6.1.12 を使用しています。
f:id:Armoris:20200909175317p:plain:w500

まずはスナップショットを作成してみる

まずは簡単にスナップショットを作成する方法を解説します。

今回は BlogUbuntu という仮想マシンを用意して説明していきます。

  1. 画像のように VirtualBox マネージャーからスナップショットを作成したい仮想マシンを選択します。
    f:id:Armoris:20200909183445p:plain:w500

  2. 仮想マシンを選択したら、画像内赤枠の部分をクリックします。クリックすると詳細  スナップ... ログ の3つが表示されます。
    f:id:Armoris:20200909184410p:plain:w500

  3. スナップ...を選択して以下のように名前を入力し、作成ボタンを押せばスナップショットの作成は完了です。
    スナップショットの作成が完了すると仮想マシンの名前の横や仮想マシンのウィンドウ部分などに今動いているスナップショットの名前が表示されます。
    スナップショットの作成は仮想マシンの起動中でも行うことができます。
    f:id:Armoris:20200909185527p:plain:w500
    スナップショットを作成中の様子 f:id:Armoris:20200909185607p:plain:w500
    スナップショットの作成が完了した状態 f:id:Armoris:20200909185616p:plain:w500

スナップショットを使って以前の状態に戻す

事前に/home/user/hoge.txtを作成した hoge というスナップショットを作成しておきます。 f:id:Armoris:20200910142209p:plain:w500f:id:Armoris:20200910142214p:plain

まずはhoge.txtがないBaseをの復元を試します。
スナップショットの作成は仮想マシンが起動した状態でも可能でしたが、スナップショットの復元は仮想マシンが停止している必要があります。

復元したいスナップショットを選択して復元を押すことで、画像のようなダイアログが表示され復元できます。
f:id:Armoris:20200910144925p:plain:w500

Baseスナップショットから復元した仮想環境では先ほど作成したhoge.txtが無いことから、hoge.txtが作成される前の状態だとわかります。
f:id:Armoris:20200910145640p:plain:w500

今試したように、仮想環境を新たに作らなくてもすぐに以前の状態に戻したりすることができます。
これは WordPress などの検証を行う場合や、アプリケーションの動作を確認したい場合にセットアップ手順を間違えてしまったり、特定の状態からやり直したい場合に非常に便利です。

最後に

今回は VirtualBox の機能であるスナップショットの紹介をしましたが、他の仮想化サービスでもほとんどの場合スナップショットの機能を使うことができます。
今回ご紹介したスナップショットの機能を使うと、何度も環境もゼロから構築することなく効率的にセッティングできます。
知っている方も多いと思いますが、もしご存じない方は是非お試しください。

Emotet は要するに何が問題なのか ?

今回は若手エンジニアではなく、ちょっとシニアなCXO (Chief Xatsuyo Officer/Chief Transformation Officer) 竹田が書いてます。 いつもの日記形式ではなく、時事ネタとなる Emotet について取り上げてみたいと思います。

なお、本記事のフォーカスはマルウェアの挙動や通信先ではなく、Emotet の感染の拡大の背景やその原因などについて記載します。

技術的な情報については、JPCERT/CCIPA などのセキュリティ組織や国内外のセキュリティ関係者やリサーチャーが Twitter などで情報を公開されていますので、そちらを参照してください。

Emotet とは?

Emotet の攻撃は 2018年末頃から国内で攻撃が確認されており、既に1年半以上攻撃(一時期不正メールが止まっていた時期もあります)が続いています。

Emotet の感染を狙った攻撃は電子メール (以降、メール) が使用されます。メールに添付ファイルを開封することで、最終的に Emotet に感染します。(筆者は見たことはないですが、添付ファイルの代わりに不正ファイルへのリンクが記載されている事もあると言われています。)

なお、Emotet という名前は情報窃取を目的としたマルウェアの事を指す名前ですが、メール攻撃も含めて Emotet に一括りに説明される事が多いです。

Emotet の感染の流れ

では、なぜ Emotet がここまで騒がれるのかというと、その背景には Emotet の感染拡大方法にあると考えられます。

以下に Emotet の感染拡大の流れをまとめてみました。

f:id:Armoris:20200907192908p:plain

この図を見てわかるように Emotet の感染拡大メカニズムの中核を担うのは感染 PC 内に保存されるメール情報(メールアドレス、メール本文、添付ファイルなど)です。

攻撃者はあらゆる手を使って受信者の関心が不正メールに向くように手を尽くしてきます。

  • 感染 PC の保有者がいつも使用するメールアドレスへの詐称 (From 詐称)やなりすまし
  • やり取りをしていたメールを装って送ってくる(返信型)
  • やり取りに使用していた添付ファイルの悪用
    など

また、最近ではパスワード ZIP を用いた攻撃も確認されているようです。

結果として、図のように直接組織間につながりがなくても (図の組織Aと組織Cように) 間接的に感染の影響範囲が広がっていくこの負の連鎖が続く流れ、いわゆる「サプライチェーンリスク」が Emotet の攻撃においても潜在しています。また、Emotet に感染することで、間接的に感染拡大の仕組みの一部に組み込まれて行ってしまっているという点を忘れてはいけない点だと思います。

Emotet への感染リスク

次に Emotet に感染した際のリスクの観点から考えてみましょう。Emotet を用いた攻撃では、感染時・感染後それぞれにおいて発生する事象、リスクが異なります。

以下に、感染時、感染後それぞれのタイミングで考えられる事象などについて以下に記載します。

対象情報 Emotet 感染時のリスク Emotet 感染後に発生する事象
感染端末 Emotet への感染 他のマルウェア (ランサムウェア等) への感染
アカウント情報 アカウント情報の窃取
(端末内に保存・設定する)
継続して窃取
2次利用 (不正アクセス、転売)
メール情報 メールアドレス、本文、添付ファイル
(端末内に保存する)
窃取されたメール情報の感染拡大への悪用
その他 組織内への感染拡大など (想定) 偽装元詐称(From詐称)・なりすましへの対応 (リリースなど)

現在どのフェーズなのかを捉え、影響・リスクを検討・整理することが重要です。

Emotet への完全な感染対策!?

Emotet の攻撃も含め、サイバー攻撃の対策に 100% ありません。また、感染拡大の部分でも説明した通り、Emotet の感染を狙った攻撃は誰もが受ける可能性があります。

攻撃を受ける・メールを開封したこと前提に対応を考えていく必要があります。

  • 組織内への攻撃情報や関連メールに関する情報の共有・周知
  • 問題が発生した際の連絡体制の周知・徹底
  • 開封した人間を悪者にしない (誰しにも起きることとして捉える)
    など

上記項目はあくまで一例ですが、普段から意識して行っていくことで組織内における情報の風通しが変わってくると思いますので、改めて見直してみてはいかがでしょうか。

なお、Emotet の技術的な感染対策等は、様々な情報がすでに世の中に出回っていますので詳細はここでは控えます。

さいごに

今回は現在も継続して攻撃が発生する Emotet について感染拡大に視点を絞って書いてみました。

インシデントへの対応の際には、「なぜ、問題になっているか」、「原因として何が考えられるのか」など状況を正しく把握することで自身・自組織における実際のリスクを適切に評価することができます。

また、事前に発生している事象・当事者として起きうるリスクなどを考慮・想定した対応を行っておくことで、実際にインシデントが発生した際に迅速にリスク評価・対策のフェーズに移ることができます。本記事がEmotet の事案における対応・対策の一助になっていただければ幸いです。

参考 URL