ブログ

エンジニアが挑むセキュリティ:共有&学習シリーズ - 認証

April 11, 2019
Jaap Karan Singh

本ブログでは、Webサイトを運営している組織や、従業員にリモートアクセス環境を提供している組織が直面する、最も一般的な問題の一つについて解説します。これは、ほぼすべての組織に当てはまることでしょう。お察しの通り、今回は「認証」について取り上げます。

ハッカーが有効なユーザー名とパスワードを使って管理者としてシステムにログインできてしまえば、ネットワーク防御を突破するために高度な技術を駆使する必要はありません。システムが自ら扉を開け、攻撃者を招き入れてしまうからです。さらに悪いことに、攻撃者が極端な行動をとらなければ、その存在を検知することはほぼ不可能です。ほとんどの防御システムは、彼らを正当なユーザーや管理者が業務を行っているものとして認識してしまうからです。

認証の脆弱性には多くの種類がありますが、ここではユーザーのログインプロセスに意図せず組み込まれてしまいがちな、最も一般的な問題を取り上げます。これらの穴を塞ぐことで、組織における認証関連の問題の大半を排除することが可能です。

本エピソードでは、以下の内容を学びます。

  • 一般的な認証の脆弱性がどのように悪用されるか
  • なぜそれほど危険なのか
  • 認証の脆弱性を排除するためのポリシーと技術

攻撃者はどのように認証の脆弱性を悪用するのか?

認証システムには多くの脆弱性が潜んでいる可能性があり、ハッカーはそれぞれ異なる手法で悪用を試みます。まずは最も一般的な脆弱性を確認し、そのうちのいくつかがどのように悪用されるかの例を見ていきましょう。

主な認証の脆弱性は以下の通りです:

  • 脆弱または不十分なパスワードポリシー
  • ログイン試行回数の無制限
  • ログイン失敗時に攻撃者へ情報を与えてしまう
  • 安全でない経路での認証情報の送信
  • パスワードのハッシュ化が不十分
  • パスワード復旧プロセスが安全でない

パスワードポリシーの不備は、おそらく最も一般的な脆弱性です。ユーザーが制限なしにパスワードを作成できるようにしていると、推測されやすいパスワードを使うユーザーが後を絶ちません。毎年、さまざまなコンピュータ関連のニュースサイトが「最も使われているパスワード」のリストを公開していますが、「123456」や「password」は常にトップ5に入っています。他にも、管理者が「God」を好んで使うケースもよく見られます。これらは覚えやすく面白いかもしれませんが、非常に推測されやすいものです。ハッカーはこうした一般的なパスワードを熟知しており、システム侵入を試みる際にまずそれらを試します。組織でこのようなパスワードの使用を許容していれば、いずれ必ず侵入を許すことになるでしょう。

あまり目立ちませんが、依然として危険な脆弱性に、ログイン失敗時のエラーメッセージによる情報漏洩があります。ユーザー名が存在しない場合と、ユーザー名は正しいがパスワードが間違っている場合で異なるメッセージを返すと、攻撃者はシステム上の有効なユーザーを特定し、そのユーザー名に対してパスワード推測を集中させることが可能になります。これにログイン試行回数無制限の脆弱性が組み合わさると、攻撃者は見つけた有効なユーザーに対して辞書攻撃を仕掛けることができ、パスワードが単純であれば短時間でシステムへの侵入を許してしまう恐れがあります。

なぜ認証の脆弱性はこれほど危険なのか?

アメリカの西部開拓時代に、ある被害妄想の農夫が玄関に三重の鍵をかけ、窓に板を打ち付け、手の届くところに銃を置いて寝ていたという有名な話があります。しかし、翌朝彼は死体で発見されました。攻撃者は、彼が裏口の鍵をかけ忘れていたために侵入できたのです。認証の脆弱性もこれとよく似ています。攻撃者が有効なユーザー名とパスワードを使ってネットワークに侵入できるのであれば、どんなに優れた監視ツールや予防的制御を導入していても、どれほど専門的なアナリストを雇っていても、ほとんど意味がありません。

一度侵入を許せば、攻撃者ができることに対する制限はほとんどありません。管理者アカウントが乗っ取られていれば権限は非常に広範囲に及び、深刻な被害を防ぐために十分な速さで検知される可能性は極めて低くなります。このため、認証に関する脆弱性は、あらゆるシステムにおいて最も危険なものの一つとされています。

認証の脆弱性を排除する

ネットワークから認証の脆弱性を排除する最善の方法の一つは、適切で包括的なパスワードポリシーを強制することです。ユーザーや管理者が「password」のような単純なパスワードを使用することを制限するだけでなく、辞書攻撃や一般的なフレーズを用いた攻撃が通用しないレベルの複雑さを強制する必要があります。保護対象のシステムの重要度に応じて独自のパスワード作成ルールを策定しましょう。そうすることで、攻撃者がパスワードを推測したり、総当たり攻撃を仕掛けたりすることが非常に困難になります。

また、ログイン失敗回数を制限し、例えば3回間違えたらアカウントをロックアウトするように設定すべきです。ロックアウトは一時的なものでも構いません。数分間の遅延があるだけでも、自動化された辞書攻撃を阻止できるからです。あるいは、管理者が解除するまで永続的にロックアウトする設定も有効です。いずれの場合も、ロックアウトが発生した際にはセキュリティ担当者に通知が届くようにし、状況を監視できるようにしておく必要があります。

攻撃者への情報漏洩を防ぐもう一つの有効な方法は、ユーザー名やパスワードが間違っていた場合に、常に汎用的なメッセージを表示することです。どちらの場合も同じメッセージを表示することで、ハッカーはユーザーが存在しないために拒否されたのか、パスワードが間違っていたために拒否されたのかを判断できなくなります。

認証の脆弱性は、多くのシステムにおいて最も一般的かつ危険な脅威の一つです。しかし、これらは比較的容易に発見し、排除することが可能です。

認証の脆弱性に関する詳細情報

詳細については、OWASPの認証チートシートをご覧ください。また、習得した防御知識を試すには、サイバーセキュリティチームを最強のサイバー戦士へと育成するSecure Code Warriorプラットフォームの無料デモをご活用ください。この脆弱性やその他の脅威への対策について詳しくは、Secure Code Warriorブログをご覧ください。

Secure Code Warriorプラットフォームで、認証の脆弱性に正面から立ち向かいましょう: [こちらから開始]

タグライン

AI主導の開発をリリース前にガバナンスする

AIを活用したリスク測定、コミット時のセキュアコーディングポリシーの強制、そしてSDLC全体を通じたセキュアなデリバリーの加速を実現します。

デモを予約する
リソースライブラリ

他のブログ記事を見る

セキュアコーディング、AIガバナンス、ソフトウェアリスク管理に関する専門的なコンテンツをご覧ください。

すべて表示
導入事例
フィルターラベル
これはdivブロック内のテキストです。

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

詳細はこちら
導入事例
フィルターラベル
これはdivブロック内のテキストです。

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

詳細はこちら
導入事例
フィルターラベル
これはdivブロック内のテキストです。

セキュリティ文化の統一:Sageはいかにしてチャンピオンプログラムを構築したか

Sageがどのようにして柔軟かつ関係性を重視したアプローチでセキュリティを強化し、200名以上のセキュリティチャンピオンを育成して、目に見えるリスク低減を実現したのかをご紹介します。

詳細はこちら
ブログ
フィルターラベル
これはdivブロック内のテキストです。

2026年サイバーセキュリティ意識向上月間:企業防衛に不可欠なAIセキュリティの理解

主要なAI企業の多くが、安全対策が追いつくまでの間、AI開発を世界的に減速させるよう公に呼びかける事態となっています。しかし現実には、深刻なセキュリティ問題はすでに顕在化しています。AI導入に伴う金銭的コストやリスクが増大し続ける中、多くのセキュリティリーダーや経営陣は差し迫った状況に追い込まれています。

詳細はこちら
ブログ
フィルターラベル
これはdivブロック内のテキストです。

イネーブラー8:プログラムのブランディング

セキュアコーディングプログラムを成功させるには、優れたコンテンツ以上のものが必要です。イネーブラー8では、ブランディングによって参加を「憧れのステータスを得る体験」へと変える方法を解説します。

詳細はこちら
ブログ
フィルターラベル
これはdivブロック内のテキストです。

すべての従業員が今、AIサイバーセキュリティの最前線に立っている

エンタープライズテクノロジーの状況は、手遅れになるまで誰も予測できなかったほどの速さで変化しています。私たちは今、人間が書いたコードと基本的なコパイロット支援の時代から、エージェント型開発ライフサイクル(ADLC)の時代へと正式に足を踏み入れました。自律型AIエージェントは、複数の機能にわたってかつてない効率性をもたらす一方で、全く新しい種類のセキュリティリスクや規制リスクも引き起こしています。

詳細はこちら

AIを活用した開発をリリース前にセキュアに

開発者のリスクを可視化し、ポリシーを適用することで、ソフトウェア開発ライフサイクル全体における脆弱性を未然に防ぎます。

デモを予約する
該当する項目が見つかりません。