2015年4月6日に米国で掲載されたブログ記事の抄訳です。

攻撃者が信頼されているアプリケーションを使って脅威を組織にひそかに送り込むことはよく知られています。

最近の例では、2014年11月に発生したForbes.comへの攻撃があります。この攻撃では、Forbes.comのWebサイトにホストされているAdobe FlashとInternet Explorer (IE)の2つの連鎖ゼロデイ脆弱性を悪用して、金融サービス業界のユーザーを標的とする水飲み場型攻撃がしかけられました。攻撃者に悪用されたページにユーザーがFlashプラグインを有効にしたIE 9+ブラウザを使ってアクセスすると、ユーザーの知らない間に有害な.SWFファイルがダウンロードされ、攻撃者によって被害者のコンピュータが制御されました。この攻撃はInvinceaの脅威リサーチ チームによって検出されました。

もう1つの例として、Alien Vault Labsによって検出された、2014年8月に発生した攻撃があります。この攻撃では、ある工業会社のWebサイト上のクロスサイト スクリプティング(XSS)脆弱性と思われるものが悪用され、被害者のコンピュータに偵察ツールScanboxがロードされました。Scanboxは、コンピュータで実行されているソフトウェアに関する情報を収集し、攻撃者に送信しました。

これら2つの例ではいずれも、3種類のアプリケーション、Adobe Flash、Internet Explorer、Webアプリケーション(Webページ)が悪用されました。これらは、特別なケースではありません。Ciscoの情報セキュリティ ディレクター、Sujata Ramamoorthyは、攻撃の70%以上がアプリケーションの脆弱性を悪用していると見ています。

想像してみる: 完璧なアプリケーションの世界

すべてのアプリケーションで常に100%のセキュリティが確保されている世界について想像してみましょう。サイバー犯罪の世界ではこれは何を意味するのでしょうか。まず第一に、サイバー犯罪者にとって、ユーザーや組織の攻撃方法を見つけることが現状よりはるかに難しくなります。したがって、サイバー犯罪による利益獲得手段の数も、攻撃の成功によって獲得できる利益の金額も劇的に減少します。アプリケーションの悪用方法を見つけるのに余計な手間がかかるようになり、犯罪組織の利益が低下して、攻撃のためのリサーチや攻撃要員に割り当てられる資金が減少します。

成功する攻撃を仕掛けにくくする(したがって、攻撃に必要なコストを高くする)ことによって、攻撃者数も、攻撃自体の数も減ります。結局のところ、ハッカーも投資しなければならないのです。確かに、新たな攻撃方法の考案に精を出す、精鋭のハッカー軍団がなくなることはないでしょう。しかし、脅威をめぐる状況は劇的に好転するはずです。

では現実は

もちろん、アプリケーションのセキュリティが完全に確保されている世界など幻想にすぎません。だからといって、何もしないわけではありません。アプリケーションに依存する脅威の防御を強化することはできます。では、現在使用しているアプリケーションや開発中のアプリケーションのセキュリティや回復力を強化するには、どうしたらいいでしょうか。

1.  ソフトウェア開発ライフサイクル全体を通じて安全なコーディング手法と最大限に厳格なテスト手順を採用して、アプリケーションを悪用不可能なものにする

これは、アプリケーションの設計段階でセキュリティを機能性に次ぐ優先事項として、開発、QA、ステージング、および運用の各段階でソフトウェアのすべてのバージョン(修正版)のテストをすることを意味します。非常に面倒な作業のように思えるかもしれませんが、運用後に脆弱性に対するパッチが適用されていなかったためにセキュリティ問題やデータ侵害が発生し、その結果顧客を失うなどの被害に比べればたいしたことではありません。

…また、運用後もコードに対する、パッチの適用、Webアプリケーション ファイアウォールや侵入防止システムなどのツールの使用を通じて追加の予防措置を講じる必要があります。

徹底的なテスト手順を経た後も、Webアプリケーション ファイアウォールや侵入防止システムを導入することにより、攻撃者がアプリケーションを嗅ぎ回るのを防止できる場合があります。ホストのスイープやポート スキャンが実行されたときに警告したり、実行をブロックすることができます。これらのツールは、攻撃者がアプリケーションの脆弱性を簡単に悪用できないようにすると同時に、アクセス制限されたリソースへのアクセスを試みたり、潜在的な脆弱性を探そうとする内外のユーザーを特定し、阻止します。

2.  すべてのトラフィックとアプリケーション(SSL暗号化を使用するものも含む)が、すべてのポートとプロトコルで見える化され、かつ脅威を含まず、データのセキュリティが維持されるように、ネットワークを設計する。

これはゼロ トラスト方法論に関連します。時間とコストがかかりすぎて割に合わないとして、サイバー犯罪者に攻撃をあきらめさせるような防御態勢を築きます。現在使用している各アプリケーションを特定し、それぞれに伴うリスクの種類を理解します。それから、アプリケーション内のセキュリティが確保されていない機能の使用の制限、そのアプリケーション機能にアクセス可能なユーザーの制御、アプリケーションがアクセス可能なデータのセグメント化/保護によって、リスクの影響を軽減します。

ネットワークを横断するアプリケーションに対する完全な可視性の確保と、ユーザーによるアプリケーション操作方法の制御は、脅威がアプリケーションを悪用してネットワークにアクセスするのを防止するうえで最も重要です。現在市場に流通している多数の「次世代」セキュリティ製品は、ほぼこれが基盤となっています。つまりトラフィックを特定し、アプリケーションのコンテキスト内でトラフィックを分類するのです。トラフィックをアプリケーションに関連付け、特定のアプリケーションのみにネットワークへのアクセスを許可すれば、セキュリティ リスクが軽減されます。その上で、アプリケーション内の潜在的な攻撃経路のセキュリティ確保に集中すれば、真の防護が実現します。