Web技術の基本ch.6「セキュリティ」メモ
todoリスト
・ メモ:セキュリティ、装置によって、監視している内容・防げるものが異なるので軽くまとめる
・疑問:クラウド型WAFと従来型のWAFって何❓
# 01 Webシステムのセキュリティ
情報セキュリティの3要素:機密性・完全性・可用性
リスク/脅威/脆弱性
リスク:何らかの損失が発生する可能性
脅威:リスクを現実化させる要因
脆弱性:脅威に対する弱み
すべての驚異や脆弱性への対策をするのは難しいので、一般的にはリスクによる損失の度合いを算出し、それに応じて優先順位を決めた上で対策する
💬思ったこと
セキュリティ、自分が被害を受けたことがないのもあって深く考えたことがなかったけど、ドコモ口座の不正アクセスなど、かなり身近な問題。
これから消費者側ではなくサービスを提供する側を目指すので、きちんと学んでセキュリティ面も考えて働けるエンジニアにならねばと思った。
# 05
Webシステムにおいて脆弱性(脅威に対する弱み)を完全に無くすことは難しい。どんなシステムにも残ってしまもの。
セキュリティホール
ゼロデイ攻撃
修正プログラム(パッチ)ができてからがワンデイ、それまではゼロデイ
# 06 ファイアーウォール
ファイアウォール設定方法
ファイアウォールは外部ネットワークとDMZ、DMZと内部ネットワークの間に設置されている。
コンピュータ・ネットワークにおいて、ファイアウォールは内外を隔てる“関所”や“国境”のような境界線として機能します。関所や国境では「人」を仕分けますが、ファイアウォールでは「必要な通信」と「不要な通信」を分けて、必要な通信だけを通過できるようにしています。
DMZでは、このファイアウォールが重要な役割を担います。外部ネットワークとDMZ、DMZと内部ネットワーク、それぞれの間にファイアウォールが入るような構造を作り、通信を仕分けします。仕分けのポリシーはファイアウォールごとに自由に設定できるので、外部ネットワークとDMZの間にあるファイアウォールは緩く設定したとしても、DMZと内部ネットワーク間のファイアウォールを厳しく設定していれば安全性は高まります。
大切なのは内部ネットワークなので、ここを絶対に守り切る方針というわけです。戦国時代の城で例えるなら、町人や農民が出入りする城下町の警備はそれほど厳しくせずに、大名の居城に直接つながる城門の警備は厳重にするようなものです。
# 07 IDS/IPS
不審な通信
サイバーセキュリティ・クラウドさんの製品が!
ファイアーウォールとIDS/IPSの違いは?
✧ ファイアーウォールはmacにもともと入ってるけど、IDS/IPSは入っているのか?
【自分の考え】
多分個人のPC
# 08.WAF
WAF = Web Application Firewall (英語を見るとイメージしやすい)
WAF:通信の「中身」を見る
Webアプリケーション側につける装置
SQLインジェクションやクロスサイトスクリプティングなど、「一見正常な通信に見えるが、送られてきたデータ内容に悪意のあるデータが含まれる攻撃」を防げる
IDS/IPSはこれを防げない
良い点:高機能でセキュリティ効果高い/デメリット:高価格・手間やコストがかかる
→なんでもかんでも付ければ良いわけでなく、必要かどうか要検討
何を基準に遮断するのか?→ブラックリスト/ホワイトリスト
ブラックリスト: 特定のパターンをもつ通信を「遮断」。WAFの開発元が作ったものを利用することが多い。
ホワイトリスト:正常なデータのパターンを登録しておき、それに「適合する通信だけ通す」
ブラックリストが多いらしい
ホワイトリスト方式の防御は設定に時間と費用がかかる為、現在のWAFはブラックリスト方式による防御が中心です。「攻撃遮断くん」も基本的にこの方式です。
# 09.暗号化
何を防御してくれるのか:通信の盗聴や不正侵入の対策
元のデータを暗号化して、第三者が読み取れないデータにすること。そのデータを利用するときに元のデータに戻す。=復号
暗号化していれば盗聴されても問題ない
サーバー内に保存する際も暗号化しておくと安全
ハッシュ化
パスワードのハッシュ化
かんたんな小文字5文字だと10分くらいで解析できるらしい😱
パスワードを長くするほど、英語だけでなく数字など記号を組み合わせるほど、解析に時間がかかる
5分→4週間→300年→6600万年
💭 パスワードを登録するときに、英数字を組み合わせたり何文字以上とサービス提供者から指定されるのは、解析されづらいからだったのか
ハッシュを抜き取られる前にWAFなどのセキュリティが守ってくれているが、万が一抜き取られた時のことも考えてパスワードは長く複雑にしたものが良さそう。
# 10. 公開鍵証明書
Webの世界の身分証明書。SSL証明書ともいう。
役割は2つ
①HTTPS通信に使うための公開鍵の持ち主が誰か証明する
②公開鍵の持ち主が実在することを証明すること
💭 macOSからさくらVPSのLinuxにリモート接続の設定をした時にssh接続を学んだ。難しかった...。
# 11.認証
会員制サイトにログインするときの本人確認処理 = 認証
もともと認証の仕組みはwebサービス提供者個人個人でやっていたが、サービス増加で、
利用者が多いwebサービス(GoogleやFacebook,Twitter)などの利用者
認証API
OpenIP
# 12.認可
認可:認証によって確認した結果により、ユーザーごとの権限に従って利用できるサービスの許可を行うこと。
ツイッターの例えがわかりやすい!
サイトをまたいだ認可:いろんな方法がある
方法①:OAuthという、サイトをまたいだ認可を行うプロトコル
方法②:OpenID Connect :認証と認可両方ができるプロトコル。OAuthより便利でみんな徐々にこれに移行してるらしい。
# 13. CAPTCHA (キャプチャ)
ログインするときにたまに見るコレ↓
= コンピューターと人間を区別するためのテスト。応答者がコンピューターでないことを確認するためのテスト。
プログラムを使った悪用への対策