aaaiiuie

学習(備忘録)のため運用

情報処理安全確保支援士 2.4 パスワードクラック

パスワードクラックとは、OSやアプリケーションプログラムに設定されているパスワードを破ることを目的として、何通りのパスワードや流出したパスワードリスト等を用いてパスワードを解読したり、ログインを施行したりする手法である。

2-3-1パスワードクラックの種類

パスワードクラックには、ターゲットとなるシステムにネットワークを介して実際にログインを試みながら行う方法(オンライン攻撃)と、パスワードが保存されたファイル(通常パスワードは暗号化されている)を何ら今手段で入手し、それを攻撃者のローカル環境で解読する方法(オフライン攻撃)とがある。パスワードクラックはその仕組み上、固定式のパスワード(変更するまで何回も使用可能なパスワード)による認証システムに対して有効な手法である。

推測によるパスワードクラック

ユーザーIDや利用者の情報から攻撃者がパスワードを推測し、実行する方法である。ユーザーIDに酷似したパスワードや生年月日などわかりやすいパスワードを用いている場合、この手法によって破られる可能性が高まる。 オンライン攻撃では通常、この方法が用いられる。

辞書ファイルを用いたパスワードクラック

パスワードに使われそうな文字列が大量に登録されたファイル(辞書ファイル)を用いて、順次試していく方式である。これを辞書攻撃という。一般的な辞書に乗っている英単語や、sys、temp、など、情報システム関係の業務の中で用いられることが多い文字列をパスワードにしている場合、この手法によって破られる可能性が高まる。オンライン攻撃ではこれほど多くのパターンを試すことができないため、通常はオフライン攻撃で用いられる。

総当たり攻撃によるパスワードクラック

特定の文字数、文字種で設定され得る全ての組み合わせを試す方式であり、ブルートフォース攻撃(総当たり攻撃)とも呼ばれる。パスワード長(レングス)が短く、文字種が少ない場合、この手法によって破られる可能性が高まる。辞書ファイルを用いたパスワードクラックと同様、オンライン攻撃ではそれほそ多くのパターンを試すことができないため、通常はオフライン攻撃で用いられる。

レインボーテーブルを用いたパスワードクラック

レンボーテーブルとはハッシュ値から平文を得るためのアリゴリズムの一つであるが、当該アリゴリズムによって生成したテーブルそのもの(ハッシュ値から平文を得るための逆引き表)も意味する。攻撃者は事前に生成したレンボーテーブルを用いてることで、効率的にパスワードクラックを行うことが可能となる。 こうした攻撃に対してはソルト(salt)を使用するのが有効な対策になる。ソルトとはパスワードからハッシュ値を求める際にパスワードに付加する文字列のことである。ソルトにはユーザーごとにランダムな文字列があることと、ある程度の長さ(少なくとも20文字程度)であることが求められる。これらの要件を満たしたソルトを使用することにより、同じパスワードであっても出力されるハッシュ値が変わるため、ハッシュ値から元のパスワードを特定することが困難になる。

2-4-2 パスワードクラックへの対策

予防・防止

  • 二段階認証、二要素認証、ワンタイムパスワード方式、バイオメトリック認証システムなど、パサうわードクラックが困難な認証システムにする
  • 固定式のパスワードを使用する場合には、アカウントのロックアウト設定を有効にする。オンライン攻撃に対して有効
  • 既知のセキュリティホールに対処し、アクセス権の設定を見直すなどして、パスワードファイル、データベースが盗まれないようにする
  • 推測困難なパスワードを設定し、定期的な変更する
  • パスワードからハッシュ値を求める際にソルトを使用する
  • ツールなどを用いて脆弱なパスワードをチェックし、修正する
  • ログインの失敗(必要に応じてログインの成功も)がログに記録されるように設定する。

検知・追跡

  • ネットワーク監視IDS、ホスト監視型IDS、IPSを用いて検知する
  • ターゲットホストのログから連続してログインに失敗している箇所を探り出し、この攻撃を検知する。

回復

  • 攻撃を受けたホスト及び、当該ホストからアクセス可能な全てのホストを対象に、データの改竄、不正プログラムの埋め込み、設定変更などの有無を徹底的に検証し、問題箇所を復旧する。状況によってはOSをクリーンインストールし、サーバ環境を再構築する。
  • 予防・防止にあげた対策を実施する。

2.4.3 リバースブルートフォース攻撃

ユーザーのIDを固定にし何通りものパスワードの組み合わせを試行するブルートフォース攻撃に対してパスワードを固定して何通りもユーザーIDの組み合わせを試行するのがリバースブルートフォース攻撃と呼ばれる。 リバースブルートフォース攻撃は、パスワードの文字種やレングスが少なく、かつユーザーIDの文字種やレングスが少ない場合に成功する可能性が高い。

2.4.4 パスワードリスト攻撃

近年、会員向けのインターネットサービスサイトでパスワード攻撃による被害が多発しており、大きな問題となっている。パスワードリスト攻撃とは、利用者の多くが複数のサイトで同一ユーザIDとパスワードを使い回している状況に目を付け、何かしらの手段で不正に入試したユーザーIDとパスワードのリストを流用し、それらを自動的に連続入力するプログラムなどを用いて会員向けサイトへのログインを試行する手口である。 パスワードリスト攻撃に使われるユーザーIDとパスワードは、利用者のPCからではなく、会員向けサービスを提供しているサイトのサーバから盗みとれる。そのため、利用者がいかにパスワードを原順に管理していたとしても、複数のサイトで同一のパスワードを使い回してる限り、この攻撃により被害を受ける可能性がある。

パスワードリスト攻撃への対策

サイト管理者、システム管理者側の対策としては、前述したパスワードクラックへの対策と同様に、二段階認証、に要素認証などの導入が有効である。また、認証時におログを定期的に分析することにより、パスワードリスト攻撃を検知できる可能性がある。 とはいえ、ここの認証ようその間隔が長く、かつ毎回異なるIPアドレスから行われているような場合は、それらを一連の攻撃として捉えることは困難である。攻撃によって認証が成功した場合には、端末情報の確認と注意喚起を行うことで、ユーザーが検知できる可能性がある。なお、パスワードリスト攻撃では、ユーザーIDとパスワードの組み合わせは一回ずつしかログイン思考しないため、アカウントのロックアウト設定を行なっていたとしても無効である。

ユーザー側の対策としては利用している全てのインターネットサービスにおいて異なるパスワードを設定することである。しかし、その場合、数多くのパスワードをいかにして管理するかが課題となる。 現実的な解決策としては表計算ソフトやテキストエディタでユーザーIDとパスワードのリストを作成し、それを暗号化したりしてパスワード付与したりしてアクセス制御を施した場所に保存しておく必要がある。この時、インターネットバンキングなど重要なサービスについては、ユーザーIDのリストとパスワードのリストを別々のファイルに分けて保存してくのが望ましい。