ユーザ認証とアクセス管理

全員に見せてもいい資料と一部しか見てはいけない資料がある。
それを判断するためには誰かと認識させなくてはならない。
そのため利用しようとする人を確認する行為を```ユーザ認証```という。

ユーザー認証をパスして利用可能になった状態を```ログイン```
ログアウトの状態を打ち切ることを```ログアウト```という。

このユーザ認証もセキュリティの一部なのか。

# ユーザ認証の手法
色々なユーザ認証の種類を紹介する。
## ユーザIDとパスワードによる認証
ユーザIDとパスワードの組み合わせを使って個人を識別する。
ユーザIDは隠された情報ではないので、パスワードが漏洩しないように、扱いには注意する。

### パスワードの注意
* 電話番号や誕生日など```推測しやすい内容のパスワードにはしない```。
* ```人目につくところに置いたり、貼ったりしない```。
* ```定期的に変更```する。同じパスワードのままにしない。

### バイオメトリクス認証
```指紋や声紋、虹彩などの身体的特徴```を使って個人を識別する。

### ワンタイムパスワード
```一度限り```有効。```使い捨て```のパスワードを用いる認証方法

### コールバック
遠隔地からサーバへ接続した場合アクセスした後に回線を切り、```サーバ側からコールバック（着信側から再着信)```させる。

# アクセス権の設定
アクセス権には読み取り、修正、追加、削除などがある。
しかしこれらのアクセス権を持つユーザーがたくさんいては勝手に追加、削除されてたりして大変になる。
なのでユーザーごとにアクセス権の制限がある。

## 気づき
アクセス権には階層があって簡単に削除、追加されないようにしなくてはならないのか。

# ソーシャルエンジニアリングに気をつけて
ユーザ認証を行っても情報を扱っているのは結局人なので情報が漏れる可能性がある。
悪意ある人たちは人の心理的不注意をついて情報資産を盗み出す。
これを```ソーシャルエンジニアリング```という。
* 肩越しにパスワードを盗み見る(```ショルダーハッキング```)
* ゴミ箱を漁って有用な情報を盗み見る。(```スキャビンジング/スキャベンジング/トラッシング```)
* 電話で騙してパスワードを聞き出す
## 関連記事
https://qiita.com/masatom86650860/items/ddae74432f24917bbef2

## 気づき
こんな原始的なやり方でも盗むのか。

# さまざまな不正アクセスの手法
## パスワードリスト攻撃
```どこかで入手したID,パスワードのリストを用いて他のサイトへログイン```を試みる手法。

### 気づき
パスワードの使い回しで受けるのか。

## ブルーフォース攻撃
特定のIDに対し、パスワードとして使える文字の組み合わせを片っ端から当てはめていく手法。

## リバースブルーフォース攻撃
パスワードは固定しておいて、IDとして使える文字の組み合わせを片っ端から当てはめていく手法。
ブルーフォースの逆、パスワードがIDに変更される。

### 気づき
ブルーフォースとリバースフォースは時間がかかるがこれもシステム化すれば簡単そう。

## レインボー攻撃
ハッシュ値から元のパスワードを解析する手法。
入手したハッシュ値から元の文字列を推測する。

### 気づき
ハッシュさせる計算式を解析しようとするのか。
考えることがすごいな。

## SQLインジェクション
* SQLインジェクションとは、アプリケーションの脆弱性により本来の意図ではない不当な「SQL」文が作成されてしまい、「注入(injection)」されることによって、データベースのデータを不正に操作される攻撃。
「SQL」とは、Structured Query Languageの略称で、「データベースサーバを操作する命令文」で、```WebサイトやECサイト```のデータベースに利用者からの入力情報を送信する際に利用されます。

    データベースと連携して動作する多くのWebアプリケーションは、このSQL文（データベースへの命令文）を使い、ユーザからの各種情報入力を元にしてサーバ側で処理し、結果をユーザに返しています。

    この処理の中には、サーバやデータベースにアクセスし、情報を参照・更新することも多くあります。このような処理の過程では、Webアプリケーションはユーザから想定外の情報が入力された場合、```本来であればそのまま処理せず、正しくエラー処理(エスケープ）を実行する必要```があります。

    しかし、Webアプリケーションに脆弱性が存在すると、```アプリケーションが入力値を適切に処理せず、SQL文を誤った命令文として認識```してしまい、データベースの操作が可能になることで、情報漏えいやデータの悪用につながります。

    SQLインジェクションとは、このように外部からの入力を元にSQL文を作成する際に、サイトやアプリケーションの脆弱性により```本来の意図ではない不当な「SQL」文が作成```されてしまい、「注入」されることによって、不正にデータベースのデータが読み取られたり、データが改ざんまたは削除されたりする攻撃のことです。
    出典 https://www.shadan-kun.com/waf/sql_injection/
* Webサイトの入力内容に悪意ある問い合わせや操作を行うSQL文を踏み込み、データベースのデータを不正に取得したり、改ざんしたりする手法。

### 気づき
これからWebアプリを作ろうとしているからこんな攻撃があるなんて知らなかった。
だから例外処理が必要になってくるんだな。

## DNSキャッシュポイズニング
DNSのキャッシュ機能を悪用して一時的に偽のドメイン情報を覚えさせる。
そうすると偽装Webサイトへと誘導する手法。

## DoS攻撃(Denial of Service attack)
皆さんは、日々インターネットを使用している中で、「このサイトつながりづらいなあ」「このサイトつながりやすいなあ」と、```サイトによって読み込みの速い、遅い```を感じたことはないでしょうか？

普段は何も問題なくアクセスできていたサイトが、ある時点から急にアクセスしづらい状態が続く場合、そのサイトやオンラインサービスのサーバに```第三者からのアクセスが集中している```ことが原因であることが見受けられます。
ネットユーザーが同じ時間帯に、```サイトに大量アクセス```することにより、アクセスに関するデータ送受信をサーバは想定より多くの処理をしなければなりません。```アクセスできない理由はこのサーバが処理の負荷に耐えきれず、サイトがパンクしている状態```です。

一例として、テレビで取り上げられた商品・サービスの企業のサイトがアクセスしづらい状態になるのも、こうした```サーバの容量を超えた大量アクセスが主な原因```です。
こうした、アクセスが集中することでサーバがパンクすることを利用し、```悪意を持ってサーバに大量のデータを送りつけるサイバー攻撃```のことをDoS攻撃（Denial of Service attack）と呼びます。
出典 https://www.shadan-kun.com/waf/dos_ddos_attack/

## DDoS攻撃（Distributed Denial of Service attack）
(Dos攻撃の進化版）
対処しきれないほどの複数のIPから一斉にDoS攻撃をしかける```DDoS攻撃（Distributed Denial of Service attack）```
これまで攻撃拠点となるコンピューターが一つだったDoS攻撃が、```複数のコンピューターから同時に受ける```ことになったものがDDoS攻撃
### 厄介な点
* ```攻撃元が次々と変わる```ため、選択してその```特定のIPをブロックすることが非常に難しい```点
* ```第三者のIPを踏み台```にしているため、攻撃している```犯人を割り出すことが難しい```点

### 目的
* 単純な嫌がらせ
* 妨害行為
* 抗議活動
* 脅迫行為
* 他のサイバー攻撃との併用

### 気づき
不正アクセスの種類はまだたくさんある。
これらを頭に入れてアプリケーションを作成しなければならない。

# rootkit(ルートキット）
不正アクセスできたコンピュータに寄生してそのコンピュータを```リモート制御できるようにするソフトウェア```の集合体のこと。
## ルートキットの集合の中
### ログ改ざんツール 
* マルウェアの侵入を隠蔽し、マルウェアやルートキット自体の検知・駆除を遅らせる
    出典 https://eset-info.canon-its.jp/malware_info/special/detail/200630.html#:~:text=%E3%83%AB%E3%83%BC%E3%83%88%E3%82%AD%E3%83%83%E3%83%88%E3%81%AF%E3%80%81%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%BC%E3%81%AB,%E3%81%99%E3%82%8B%E3%83%AB%E3%83%BC%E3%83%88%E3%82%AD%E3%83%83%E3%83%88%E3%81%8C%E5%A4%9A%E3%81%84%E3%80%82
* 侵入の痕跡を隠蔽する
### バックドアツール
```リモートからの侵入```を容易にする。

### トラフィック監視ツール
ネットワークを介して```やり取りされるデータを盗聴```する

### キーロガーツール
```キーボード入力を盗み見て```ログを記録する。キーボード入力から```個人情報や機密情報を抽出```し、他のコンピューターへ送信する。

### ユーザーモード
感染すると、アプリケーションのプロセスを乗っ取られる、あるいはアプリケーションが使用するメモリーが上書きされてしまうといった被害につながる。

### カーネルモード
```OSの最下層で実行される```もので、感染するとコンピューターは```完全に制御され、自由に操作されてしまう```ようになる。
カーネルモードのルートキットは数が多くないものの、感染した場合は被害が大きくなり、```検出や駆除も困難になる```という特徴がある。

出典 https://eset-info.canon-its.jp/malware_info/special/detail/200630.html#:~:text=%E3%83%AB%E3%83%BC%E3%83%88%E3%82%AD%E3%83%83%E3%83%88%E3%81%AF%E3%80%81%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%BC%E3%81%AB,%E3%81%99%E3%82%8B%E3%83%AB%E3%83%BC%E3%83%88%E3%82%AD%E3%83%83%E3%83%88%E3%81%8C%E5%A4%9A%E3%81%84%E3%80%82

### 気づき
さらなるサイバー攻撃の下地になるのか。
調べていて嫌な気持ちになった。
こんな情報の取り方があるか。

# 問題を解いた時の気づき
## バイオメトリクス認証の行動的特徴とは？
行動的生体認証（Behavioral Biometrics）だ。```パソコンやスマートフォンなどの操作、歩き方などの動作における癖や傾向```といった利用者の行動に関わる特徴を利用して本人確認を行う手法を指す。
行動的生体認証では多数の行動的特徴を利用して、本人である可能性を算出する。

出典 https://www.nri-secure.co.jp/blog/behavioral-biometrics#:~:text=%E8%A1%8C%E5%8B%95%E7%9A%84%E7%94%9F%E4%BD%93%E8%AA%8D%E8%A8%BC%EF%BC%88Behavioral,%E5%8F%AF%E8%83%BD%E6%80%A7%E3%82%92%E7%AE%97%E5%87%BA%E3%81%99%E3%82%8B%E3%80%82

### 気づき
本人の癖を鍵とするのか。

# 出典 
キタミ式イラストIT塾　基本情報技術者　令和03年