# 2020/09/23 upper layer progress ## 徳丸本 ### 進捗 第6章,第7章3まで ## 概要 - 文字コード - 脆弱性診断入門 ### 文字コード(文字集合・文字エンコーディング) 文字コードとは、文字集合・文字エンコーディングの2つを合わせたもの。 - 文字集合とは、アルファベットや数字1つ1つに番号(符号)を付けて識別できるようにした。その対応関係をまとめたもの。(例:Unicode,JIS X 0208) - 文字エンコーディングとは、文字集合をコンピュータで扱えるように変換すること。(例:Shift_JIS,UTF-8) ### 文字コードによる脆弱性 - 文字エンコーディングとして不正なバイト列による脆弱性  半端な先行バイトによるXSS実行 - 文字エンコーディングの扱いの不備による脆弱性  マルチバイト文字の不完全な処理により起こる(5C問題) - 文字集合の変更に起因する脆弱性  Unicodeにおける"¥"が処理系によって"\"に変換されることによっておこる。 ### 文字コードの脆弱性の対策 - アプリケーション全体を通して文字集合を統一する。 - 入力時に不正な文字エンコーディングをエラーにする。 - 処理の中で文字エンコーディングを正しく扱う - 出力時に文字エンコーディング正しく指定する。 ### 脆弱性診断 脆弱性診断は2つに大別される。 - プラットフォーム診断  Webサイトを構成するサーバーやネットワーク機器に脆弱性がないか調べること。OSやミドルウェアが診断対称。本書では、NmapとOpenVASにより行う。 - アプリケーション診断 Webアプリケーションに対して脆弱性がないか調べること。 - 動的診断(ブラックボックス診断) OwaspZapを使用。 - ソースコード診断(ホワイトボックス診断)RIPSを使用 # 次回の活動 7章4~ インストールした診断ツールを使ってみる