クイック エンジニアリングブログ

株式会社クイック Web事業企画開発本部のエンジニアリングチームが運営する技術ブログです。

標的型攻撃メールっぽく社員を攻撃してみた

こんにちは。最近、業務の傍らで社員のセキュリティ啓蒙活動をするようになった、ゆめです。
営業部門の社員も含めて、「昨今の情報漏えいについて」とか講義をしたりしています。

で、いっつも思うのが、
講義スタイルでは全然身近に感じてもらえてない

話自体は真剣に聞いてくれるんです。
でも、聞いた結果、「こわいねぇ」程度で終わってしまう。他人事感がはんぱない。


と、いうことで。

システム管理者が
標的型攻撃メールの攻撃者として
社員に添付ファイルつきメールを送ってみた

やったこと

下記のようなメールを、ある部門の社員に突然送りつけました。

From   :システム管理者の名前<適当なフリーのアドレス>
Subject:セキュリティ情報共有
Body   :
昨今のセキュリティ問題をまとめました。
添付資料をご確認ください。

何卒よろしくお願い致します。

Attachment:セキュリティ情報まとめ201506.xls

超ありそう、こんな感じの攻撃メール。うける。


添付ファイルですが、開封するとVBのプログラムが走ります。
ざっくりとした処理内容は以下。

  1. ログインユーザー名と現在時刻を取得
  2. 特定の共有フォルダ内にその情報を記載したtxtファイルを作成
  3. (ついでに)ユーザーのデスクトップにあるファイルの一覧を表示

※サンプルコードは記事の最後に載せます
※ファイル一覧を表示するのは、社員に「なんかこれやばい」と思わせるためです

今回は、VBのプログラムが走った=感染とみなし、
一体何人が感染するのかを見守りました。

共有フォルダに感染者一覧ができていく様はなかなかに複雑な心境。

結果

詳細の数値は割愛しますが、「意外な結果だなぁ」という印象でした。
数とか、この人が!?とか。
(あと、そもそも管理者からのメールをスルーした人がいたりとか。激おこ。)

自分たちの状況を肌で感じてもらうにはいい実験でした。
私たち管理者も、今後の方針を検討するきっかけになりました。

反省

今回は感染人数を知りたかったので、
感染時には「ネタばらし & 周りの社員には黙っておいてね」って表示しました。

でもこれは後から気づいたのですが、本来であれば
感染報告をするまでが社員が行うべき行動

とすれば、そこまでやってもらう訓練をすべきだったと思います。
それで、組織としてどのくらい危機意識を持てているか?を調べてみるとか、視野を広げた方が価値があったなぁと。

反省:ちょっと攻撃者視点によりすぎた



そしてこの実験から半年後の2015年秋、"*.doc"や"*.xls"のダウンローダ形式のウィルスメールが日本で再流行するとは、このときはまだ知る由もなかった。。。


おまけ

当時のセキュリティ担当が書いてくれたVBのサンプルコードです。使用は自己責任で。

Dim strShareFolderPath As String       ' ファイル格納場所
Dim strFileName As String         ' ファイル名
Dim strFileNamefull As String       'フルパス


'メイン処理
Sub Auto_open()
    
    'データ格納場所指定
    strShareFolderPath = "[ここにパスを記載]"
    
    'ユーザ名取得
    Call get_info
    strFileNamefull = strShareFolderPath & strFileName
    
    'テキストファイルオープン
    Open strFileNamefull For Append As #1
    
    'データ書き込み
    Call data_input

    'テキストファイルクローズ
    Close #1

   'メッセージ表示
    Call outputMessage
    
End Sub

'情報取得
Sub get_info()

    Dim objNetWork As Object

     'ネットワークオブジェクトの作成
    Set objNetWork = CreateObject("WScript.Network")

     'ユーザ名取得
    strFileName = objNetWork.UserName & ".txt"
     
    Set objNetWork = Nothing

 End Sub


'データ書き込み
Sub data_input()
    ' 現在の時刻を取得
    Dim strNowdate As String
    strNowdate = Format(Now, "yyyy/mm/dd HH:MM:SS")

    Print #1, "Excel実行:" & strNowdate

End Sub

Sub outputMessage()
    Dim wScriptHost As Object
    Dim strInitDir As String
    Dim MyName As String
    Dim messagetxt As String
    Dim filenametxt As String
    Dim strNowdate As String
    Dim objNetWork As Object
    Dim filecounter As Integer
    

     'ネットワークオブジェクトの作成
    Set objNetWork = CreateObject("WScript.Network")
    
    strNowdate = Format(Now, "yyyy/mm/dd HH:MM:SS")

    Set wScriptHost = CreateObject("WScript.Shell")
    
    messagetxt = messagetxt & "[ここに表示メッセージを記載]"
    
    'デスクトップを指定
    MyName = Dir(wScriptHost.SpecialFolders("Desktop") & "\", vbNormal)
    
    filecounter = 0
    filenametxt = "ファイル一覧:" & vbCrLf
    
   'ファイルがなくなるまでループ
    Do While MyName <> ""
        '表示用メッセージ作成
        filenametxt = filenametxt & MyName & vbCrLf
        '次のファイル名を返す
        MyName = Dir
        filecounter = filecounter + 1
    Loop

    Set wScriptHost = Nothing

    MsgBox messagetxt & filenametxt

End Sub