技術解説

「攻撃者視点」で学ぶ脆弱性対策 自動ペネトレーションテストツールのデモも紹介

サイバー犯罪の攻撃者たちは、ネットワーク機器やソフトウェアの脆弱性、あるいは設定ミスなどに付け入ることで、重要なデータを搾取しようと暗躍しています。日々増え続ける脆弱性と新たな攻撃手法、その全てに人手で対応するのには限界があります。そこで重要なのが、どの脆弱性から優先的に対応するべきかという順位付けです。この順位付けを効率的に行うために、ペネトレーションテストを自動実行して脆弱性を迅速かつ低コストで発見できるツールをご紹介します。

1日20件近く増え続ける脆弱性

IPA(独立行政法人情報処理推進機構)などが運営する脆弱性対策情報ポータルサイト「JVN」に登録された脆弱性の件数は、3カ月で1,700件に上ります(2021年第1四半期)。脆弱性を突かれたサイバー攻撃の被害は後を絶ちません。実際に、脆弱性が原因で情報漏えいした例として以下のものが挙げられます。

ある食品会社A は2021年3月、ネットワーク機器の脆弱性が攻撃されたことが原因と推定される不正アクセスがあったことを公表しました。顧客、取引先担当者、派遣スタッフ、同社社員など累計約6万5,000件の個人情報が流出した可能性があるといい、同社商品を取り扱っている企業も消費者に謝罪文を出す事態になりました。

専門商社B は2021年2月、同社サーバーへ不正アクセスがあったことを公表しました。後日発表した調査結果によると、この不正アクセスはVPN製品の脆弱性を悪用した可能性が高いということです。

これらは数多いセキュリティ事故の、ほんの一例です。次々と発見される脆弱性に対応し続けることは容易でありませんが、放置していれば取引先や消費者に影響を及ぼすこととなり、企業の存続を脅しかねません。脆弱性に継続的な対応を行っていくには、どうするのがベストなのでしょうか。

以下、東京エレクトロンデバイスが行ったオンラインセミナー「“意味のある”脆弱性対応とセキュリティ製品の導入」の内容から、脆弱性対応の課題を解消するアプローチを、デモ画面などを交えて解説していきます。

脆弱性対応は「優先順位付け」を行うべき

「脆弱性対応は、優先度を付けて緊急性の高いものから対応していくのが最善でしょう。当たり前のように思われるかもしれませんが、これが鉄則だということを改めて認識していただきたいと思います」(東京エレクトロンデバイス Pentera担当営業:山田)

では、優先度はどのような観点で付ければよいのでしょうか。

「攻撃者に使われやすい順、攻撃者が使いやすい順に優先順位付けを行いましょう。

脆弱性の深刻度を測る基準として『共通脆弱性評価システム(CVSS)』が知られています。しかし、攻撃者にとっての使いやすさは実際の環境によって異なり、製品の脆弱性だけでなく、推測しやすいパスワードなどCVSSにそもそも載っていない脆弱性もあります。一概にCVSSの深刻度が高ければ攻撃に使われやすいとは言えないのです。

『攻撃者の視点』で考えることが、本質的な対策の手助けになるでしょう」(山田)

脆弱性対応に役立つ自動ペネトレーションテスト

攻撃者の視点を得るのに有効なのが、ホワイトハッカーが実際にシステムを攻撃することで対処すべき弱点を見つける「ペネトレーションテスト」です。山田は、ペネトレーションテストについて、以下のように解説します。

「ペネトレーションテストは高い効果を期待できる一方、人の手で行うテストですので、コストと時間を要します。そこで昨今では、自動でペネトレーションテストを実行できるツールの活用が始まっています。ツールを用いることで、コストを抑えて繰り返しテストを実施できるため、日々のシステムの変化や新たな脅威に柔軟に対応できるようになります」

自動ペネトレーションテストのツールとして、東京エレクトロンデバイスは人と同様の手口で攻撃を行う「PenTera」を勧めています。同ツールを提供するイスラエルのPentera社のミッションは「継続的なペネトレーションテストによるサイバーレジリエンスの構築」です。その思想をツールとして具現化しているのがPenTeraであり、世界数十カ国の銀行、保険、官公庁などに豊富な導入実績があります。

PenTeraは、特徴やメリットを多数持つツールです。山田は、その中でも特に3つの特徴を強調します。

「Pentera社は、イスラエル国防軍のエリートサイバー部隊出身者による強力なリサーチチームを擁しており、『最新ハッキング技術』を迅速に反映してきました。最近の事例では、Windows Serverの管理者権限を奪われる可能性がある『Zerologon』 という深刻な脆弱性が発見されましたが、話題になり始めてから2週間ほどでPenTeraに反映された実績があります。PenTeraでは、いくつかの項目を指定して実行ボタンをクリックするだけで、『全て自動』でテスト攻撃を実行できます。実行後は、その結果を基に対応すべき脆弱性を攻撃者の視点で『優先順位付け』したレポートが即時発行されます」(山田)

PenTeraによるペネトレーションテストの攻撃デモを紹介

ここからは、具体的にPenTeraの操作性や動作についてご紹介しましょう。

PenTeraの実行に必要となるテストの設定は、容易なものとなっています。
「まずは、テスト範囲のIPアドレスを指定します。続いて、テスト時間を指定します。PenTeraは、一連のテストが終わった後でもネットワークをモニタリングし続け、新たな攻撃の手がかりを見つけたら再度テストを実行します。そのため、いつまでテストを続けるのか指定するのです。

次に、テストの積極性についても指定します。これを『ステルス』に設定すると、よりリアルハッカーに近く検知されにくい動きをしますので、対応するセキュリティ製品は高い精度が求められます」(東京エレクトロンデバイス Pentera担当技術:渡辺)

「テスト項目を指定しますが、PenTeraに任せれば適切な攻撃を仕掛けてくれるようになっているため、指定する項目はわずか10種類ほどです」

次に、PenTeraで実際にテストする様子をご紹介します。古いネットワーク認証プロトコル「NTLMv1」の脆弱性を突き、MSBuildを悪用して平文パスワードを搾取するシナリオです。平文パスワードというのは暗号化されていない、ユーザーがログインに入力する際に使っているパスワードのことです。

次のように、実行したいシナリオの「Run」をクリックすることでテストを実行できます。

PenTeraは攻撃に成功し、Windows 2019サーバーから平文パスワードを搾取しました。「Attack Map」を見ながら、どのようなフローで攻撃したのかを追って見ていきましょう。

まずは、さまざまな情報を集めて攻撃に使えそうな脆弱性を列挙します。PenTeraは今回、OSがWindows 2019であることを検知し、重大な脆弱性を抱えたNTLMv1が未対応のまま放置されていることを発見しました。そこでPenTeraは、その脆弱性を突いてWindows 2019サーバーへの侵入に成功したという流れです。

続いてファイルの転送ツールであるFTPクライアントを用いて、マルウェアの元となる悪意のあるコードをサーバーにアップロード。そして、そのコードをWindows標準ツールであるMSBuildを用いて実行形式(exeファイル)に変換することでマルウェアを作成・実行し、メモリ上の平文パスワードを搾取しました。

「最初から実行形式のマルウェアを送り込むと、アンチウイルスソフトウェアに検知されてしまう可能性が高いため、回避するためにこのような手法が使われます。

悪意のあるコードは、FTPというコマンドを実行してアップロードしています。FTPはユーザーが普段から使っているコマンドであり、それ自体が悪意のあるものではありません。また、MSBuildもOSの標準ツールです。つまり、一般のユーザーを装って悪意のあるコードを送り込んでいるのです」(渡辺)

しかし、攻撃者が実行形式のプログラムを実行すると、アンチウイルスソフトウェアやEDR(Endpoint Detection and Response)に検知される可能性が高くなります。攻撃者の視点に立つと、より目立たず攻撃したいところでしょう。そこでPenTeraを活用し、OSの標準機能だけを用いる攻撃手法も試みます。先ほどは悪意のあるコードの取り込みにFTPを使いましたが、今回はOS標準のPowerShellを使い、コードが書かれたライブラリ(DLLファイル)をアップロード。さらにOS標準のrundll32というコマンドを用いて、ライブラリ化されたマルウェアを実行しました。

「最終的な結果をご覧ください。画面の左側にあるリストが、情報の取得に成功した対象の一覧です。『9.4』と大きく表示されている数字が、古いネットワーク認証プロトコル『NTLMv1』の脆弱性を攻撃者の立場で見たときの優先順位です。先ほど山田が説明したように、これはCVSSのスコアではなく、攻撃者による使いやすさなどを加味した、PenTera独自のスコアリングです」(渡辺)

EDRとペネトレーションテストの両輪でエンドポイントを強化

このように、ペネトレーションテスト自動化ツールのPenTeraを使うことで、人手によるものよりも多数の対象を短期間でテストすることができます。今回の例では、わずか20~30分ほどでテストが終了しました。シミュレーションではなくリアルな攻撃によってシステムの脆弱性を洗い出し、脆弱性が実際に悪用されると具体的にどのような結果が引き起こされるかを示すことができます。

「人手ではコストや時間がかかるため頻繁に実行できないペネトレーションテストも、PenTeraを使えば繰り返し実行できることがご理解いただけたと思います。PenTeraで見つかった脆弱性に対し、対策を行い、再度テストするというサイクルを繰り返していくことで、エンドポイントセキュリティを高められるのです」(渡辺)

「最新の攻撃手法に対して、既存のアンチウイルスソフトウェアでは防げなくなっているのが現実です。そこで効果的な対策となるのが、検知力の高いEDRの導入ですが、すべてをカバーできるわけではありません。常に穴を防げているのか確認し続けることが重要で、攻撃者視点を持つPenTeraのようなペネトレーションテスト自動化ツールも合わせて導入することをお勧めします」(山田)

関連する情報

「ペネトレーションテスト(侵入テスト)」に関連する製品・サービス