セキュリティの基礎（基本情報技術者範囲：ユーザー認証とアクセス管理【後半】）

# はじめに
　今回はユーザー認証とアクセス管理の続きについてアウトプットしていきたいと思います。前半ではユーザー認証とアクセス管理そのものの仕組みについて説明しましたが、今回はこれらを攻撃する不正アクセスについてお話ししていきたいと思います。不正アクセス手法を知ることでセキュリティ対策ができるようになるためしっかり学びましょう。

### 例題（解答はページ下部にあり）
問1：暗号解読の手法のうち、ブルートフォース攻撃はどれか
ア　与えられた1組の平文と暗号文に対し、総当たりで鍵を割り出す。
イ　暗号化関数の統計的な偏りを線形関数によって近似して解読する。
ウ　暗号化装置の動作を電磁波から解析することによって解読する。
エ　異なる二つの平文とそれぞれの暗号文の差分を観測して鍵を割り出す。

# ソーシャルエンジニアリングに気をつけて
　ユーザ認証を行ったり、アクセス権を設定したりしても、情報資産を扱っているのは結局のところ「人」。なので、そこから情報が漏れる可能性は否定できません。
　そのような、コンピュータシステムとは関係ないところで、人の心理的不注意をついて情報資産を盗み出す行為。これをソーシャルエンジニアリングと言います。

:::note warn
こんなのがソーシャルエンジニアリングの例
・肩越しにパスワードを盗み見する（ショルダーハッキング）
・身分を詐称してパスワードや機密情報を聞き出す
　詐欺師：「シス管の者ですが今パスワードって何を使われてますか？」
　被害者：「Password です〜」
・ゴミ箱を漁って有用な情報を盗み出す（スキャビンジング）
・付箋などに書いてたパスワードを覚えられる
:::

　これについての対策は、「セキュリティポリシで重要書類の処分方法を取り決め、それを徹底する」といったもの・・・だけではなくて、社員教育を行うなどして、一人一人の意識レベルを改善していくことが大切です。

# 様々な不正アクセスの手法
　不正アクセスにはその他にも様々な手法があります。代表的なものをいくつか見ておきましょう。

### パスワードリスト攻撃
　どこかから入手したID・パスワードのリストを用いて、他のサイトへのログインを試みる手法です。
　どこかのサイトからIDとパスワードが漏れたとします。「覚えられないのでIDとパスワードはどのサイトでも同じのを使ってます〜」とこんな感じの人が案外多いことを悪用して・・・そのIDとパスワードを使い、他サイトへのログインを試みます。
　対策：ワンタイムパスワードによる2段階認証など

### ブルートフォース攻撃
　特定のIDに対し、パスワードとして使える文字の組合せを片っ端から全て試す手法です。総当たり攻撃とも言います。
　例えば、パスワードが4桁の数字だとすると、下記の範囲の組合せを全て試せば世界がわかるわけです。一見強引な手法ですがコンピュータ任せで行えるため時間さえかければ解けてしまう怖さがあります。
　対策：パスワードを指定の回数間違えたらアカウントをロック

### リバースブルートフォース攻撃
　ブルートフォース攻撃の逆で、パスワードは固定にしておいて、IDとして使える文字の組合せを片っ端から全て試す手法です。
　何度もパスワードを間違えているとブルートフォース攻撃の対策としてそのIDはロックされてしまいます。そこで、パスワードの方を固定にしておいて、IDの方を総当たりで見つけ出します
　対策：よく使われるパスワードを使用しない、ワンタイムパスワードによる2段階認証など

### レインボー攻撃
　ハッシュ値から元のパスワード文字列を解析する手法です。パスワードになりうる文字列とハッシュ値との組みをテーブル化しておき、入手したハッシュ値から元の文字列を推測します。
　サーバに侵入してIDとパスワードを入手したとしても通常ではサーバでは平文ではなく、そこから求めたハッシュ値しか保持していません。そのハッシュ値から元の平文を推測しようとするのがこの手法です。
　対策：ソルト、ストレッチング

### SQLインジェクション
　ユーザの入力値をデータベースに問い合わせて処理を行うWebサイトに対して、その入力内容に悪意のある問い合わせや操作を行うSQL文を埋め込み、データベースのデータを不正に取得したり、改ざんしたりする手法です。
　例えば、代表的な例としてユーザIDとパスワードを入れてログインするサービスがあって・・・普通は当然そこにユーザIDとパスワードを入力するわけだけど代わりにこんな文字列「OR '1' = '1'」をパスワード欄に入れてみると・・・正規の条件式に「または1=1」という常に成立する条件式が付け足されてしまいます。これにより、ユーザ認証を回避して不正にログインできたりします。これはあくまでも一例で悪用できる操作はもっと多岐に渡ります
　対策：エスケープ処理

### DNSキャッシュポイズニング
　DNSのキャッシュ機能を悪用して、一時的に偽のドメイン情報を覚えさせることで、偽装Webサイトへと誘導する手法です。
　DNSサーバは問い合わせに対して、そのドメインを管理するサーバから情報を入手して返答します。
　クライアント：「www.gihyo.jpのIPアドレスは？」
　DNSサーバー：「219.101.198.19」です
　この時、毎回情報をとりに行くのは無駄なので入手した情報をキャッシュとして保持して再利用します。不正アクセスによりこのキャッシュ情報を改ざんして・・・偽の情報によって利用者を誤ったサイトへと誘導したりします。
　対策：ポートのランダム化

# rootkit（ルートキット）
　不正アクセスに成功したコンピュータに潜伏し、攻撃者がそのコンピュータをリモート制御できるようにするソフトウェアの集合体をrootkit（ルートキット）と言います。
　セキュリティーホールを発見したら・・・コンピュータに侵入して、これ以降のリモート制御を容易にするためのツール群をインストールします。
　rootkitには、侵入の痕跡を隠蔽するためのログ改ざんツールや、リモートからの侵入を容易にするバックドアツール、侵入に気づかれないよう改ざんを行ったシステムツール群などが含まれています。これらは代表的な例というだけで、これがrootkitの全てではありません。
　rootkitは、それ自体がコンピュータに直接的な被害を与えるものではありません。自身を隠蔽し、いつでも攻撃者によるリモートアクセスを可能とすることで、さらなるサイバー攻撃を可能とする下地を整えるためのツール群なのです。

### 例題の回答
問1：正解：ア
　ブルートフォース攻撃とは、総当たり攻撃のことであり、考えられるすべての組合せを「しらみつぶし」に試してみる方法です。すべての組合せを試してみるので、手間がかかります。そこで、人手でやるのではなく、通常は攻撃用のプログラムを作って、そのプログラムに総当たり攻撃を実行させます。「総当たりで」がヒントになり、選択肢アが正解です。

# おわりに
　今回挙げたように不正アクセスは様々な種類があります。しかし、今回挙げたのはあくまでも一例であり、世の中の不正アクセスは多くあり時代が進むにつれて常に進化しています。巧みにユーザーを攻撃してくるので相応の知識を持ち、意識を持ってセキュリティ対策しなければ気づいた時には手遅れになっていることも珍しくありません。ですから、セキュリティに対しては定期的に学ぶ姿勢が非常に重要なのです。

##### 投稿者
エンジニアファーストの会社 [株式会社CRE-CO](https://www.cre-co.jp/#top)　田渕浩之

##### 参考文献
[→キタミ式イラストIT塾 基本情報技術者 令和04年](https://www.amazon.co.jp/%E3%82%AD%E3%82%BF%E3%83%9F%E5%BC%8F%E3%82%A4%E3%83%A9%E3%82%B9%E3%83%88IT%E5%A1%BE-%E5%9F%BA%E6%9C%AC%E6%83%85%E5%A0%B1%E6%8A%80%E8%A1%93%E8%80%85-%E4%BB%A4%E5%92%8C04%E5%B9%B4-%E3%81%8D%E3%81%9F%E3%81%BF-%E3%82%8A%E3%82%85%E3%81%86%E3%81%98/dp/4297124513)