ブルートフォース攻撃に該当するものはどれか。
ア WebブラウザとWebサーバの間の通信で,認証が成功してセッションが開始されているときに,Cookieなどのセッション情報を盗む。
イ コンピュータへのキー入力を全て記録して外部に送信する。
ウ 使用可能な文字のあらゆる組合せをそれぞれパスワードとして,繰り返しログインを試みる。
エ 正当な利用者のログインシーケンスを盗聴者が記録してサーバに送信する。
ブルートフォース攻撃に該当する選択肢を選ぶ問題。まずはブルートフォース攻撃の解説から。その後、問題を解きながら関連知識を深めていく。
ブルートフォース攻撃に関する話
ブルートフォース攻撃とは
ブルートフォース攻撃(Brute Force attack)とは、暗号やパスワードを解読する手法の一つである。候補となる暗号鍵やパスワードを一つずつ、すべて試していく方法である。コンピュータで自動化すれば、4桁の暗証番号くらいなら一瞬である。これの対策のため、何回かパスワードを間違って入力すると、ロックされてしまうことが多い。
「Brute Force」とは直訳すると「腕力、暴力」といった意味。転じて「力ずく」といった意味となり、Brute Force attackは「工夫無しのごり押し攻撃」みたいなニュアンスとなる。
ブルートフォース攻撃の対策
ブルートフォース攻撃は、「可能性のある候補をしらみつぶしに試してみる」という攻撃なので、「可能性のある候補」の数をとても多くしてやればよい。
例えばよく推奨される「英数字8桁のパスワード」の場合、候補の数は
628 ≒ 218兆通り(※)
となる。とてつもない数字に見えるが、RSA1024(1024bitの鍵を利用する暗号)が危険だからもうやめろと言われている中(こちら等を参考)、48bit(約280兆通り)よりも少ない候補数では心もとないかもしれない。クレジットカードの情報など、盗まれるとやばい情報にかかわるパスワードはもっと長くしておいたほうが無難だと思う。
また、何回か間違った入力がされた場合に、これ以上入力できないようにロックしてしまうという手もある。ブルートフォース攻撃は数回の試行で解読できることは想定されていないため、よほど運が悪くなければ解読されない。
パスワードの入力時間に制限を設けるワンタイムパスワードも有効だろう。
(※)英数字混合の場合、数字が0~9の10通り、英字が大文字小文字それぞれ26通りで、合計すると62通り。それが8文字あるのでこのような計算となる。
似たような攻撃
似たような攻撃方法に、辞書攻撃というものがある。これは、よく使われる文字列を辞書に登録しておき、登録された文字列を一通り試していくという攻撃である。
たとえば、こちらの記事にあるセキュリティソフトウェア企業のSplashDataによる統計では、2018年によく使われたパスワードTOP3が
- 123456
- password
- 123456789
だそうだ。このような「よくあるパスワード」から先に試行していくのが辞書攻撃である。
ブルートフォース攻撃はすべての可能性を試していくが、辞書攻撃は可能性の高いものからせめていく分だけ賢くなっている。可能な限り、意味が解読できないパスワードを設定する必要するべきである。
最近は辞書攻撃に弱そうなパスワードを設定すると「強度弱」、安全性が高ければ「強度高」といった表示が出ることも多いので、うっかり変なパスワードにしてしまう危険は減ってきていると思う。ちゃんと強度が高いことを確認してからパスワードを決定しましょう。
問題を解いて知識を深める
ブルートフォース攻撃について解説したところで、問題を解いてみよう。もう一度、問題を掲載する。
ブルートフォース攻撃に該当するものはどれか。
ア WebブラウザとWebサーバの間の通信で,認証が成功してセッションが開始されているときに,Cookieなどのセッション情報を盗む。
イ コンピュータへのキー入力を全て記録して外部に送信する。
ウ 使用可能な文字のあらゆる組合せをそれぞれパスワードとして,繰り返しログインを試みる。
エ 正当な利用者のログインシーケンスを盗聴者が記録してサーバに送信する。
一つずつ選択肢を見ていく。
ア WebブラウザとWebサーバの間の通信で,認証が成功してセッションが開始されているときに,Cookieなどのセッション情報を盗む。
これはセッションハイジャックという攻撃の説明である。
これはなりすまし攻撃の一種で、正規のWeb閲覧者になりすまして不正アクセスを行う方法。
セッションとは、クライアントとサーバが通信するための手続きのこと。Web閲覧者(クライアント)がWebサイトにアクセスして、出ていくまでが一つのセッションとなる。
たとえばWebショッピングの場合、ショッピングサイト(サーバ)側が閲覧者(クライアント)の識別番号(セッションIDという)を確認し、その閲覧者に対応する情報(カートの中身、個人情報など)にアクセスできるようになる。
セッションが継続している間に、cookieなどのセッション情報を攻撃者が盗聴すれば、パスワードがわからない状態でもログイン済みの閲覧者に成りすましてやりたい放題することができる。桃鉄でいえば陰陽師カードを使った状態。
最初にパスワードを入力してしまえば、それ以降はパスワード無しで通信を行うシステムが多いため、このような攻撃が可能となる。
セッションハイジャックをした攻撃者は、Webサイトから個人情報を得たり、内容を改ざんしたりする。銀行の個人ページに入れれば、攻撃者の口座に振り込んでお金を盗むこともできる。
ユーザ側での対策は難しい。Web製作者はセッションハイジャックに弱くないか、十分に気をつけるべきである。
イ コンピュータへのキー入力を全て記録して外部に送信する。
これはキーロガーというマルウェアの説明である。やることは選択肢の説明の通り。外部に送信せず、ただ記録するだけの有益なものもある。
ウィルス対策ソフトによる対策が主。
ウ 使用可能な文字のあらゆる組合せをそれぞれパスワードとして,繰り返しログインを試みる。
「あらゆる組み合わせ」「繰り返しログインを試みる」というキーワードがあるので、これがブルートフォース攻撃である。したがってウが正解。
エ 正当な利用者のログインシーケンスを盗聴者が記録してサーバに送信する。
これはリプレイ攻撃の説明。なりすまし攻撃の一種。
ログインシーケンスとは、「ログイン手続きの一連の流れ」のことで、パスワードなどを盗聴し、ログインシーケンスを丸々再現すれば、不正にアクセスすることができる。
おなじパスワードで何回もログインするような場合に危険がある。なのでワンタイムパスワードを活用するとリプレイ攻撃の対策となる。チャレンジレスポンス認証も有効だ。
またワンタイムパスワードやチャレンジレスポンス認証を活用しても、乱数生成などに問題がある場合、前に盗聴したのと同じ値を答えてみたら、何か認証を突破できた」みたいなことが起こり得る。
類題
こちらは基本情報の問題で今回紹介したものより簡単。一問一答的な理解があれば解ける。