lu100101の日記

勉強の記録

基礎知識

1. 情報セキュリティの概念

三大要素

企業における情報セキュリティ確保の手順

  • 意識付けと体制の整備
    • 基本方針
    • 情報セキュリティ委員会設置
  • 全社的にルールを決める
    • 情報セキュリティポリシの作成
  • そのルールを全社に浸透させる
    • セキュリティ教育
    • 周知活動
  • 定期的に評価・監査、必要に応じて見直し

情報セキュリティ確保時の留意点

  • 抑止効果を狙う
  • 予防的対策
  • 事後対策
    • 検知
    • 復旧
  • 再発防止策

情報セキュリティの三要素

  • Confidentiality;機密性
  • Integrity;完全性
  • Availability;可用性

2. 国の動向

重要な動き

  • サイバーセキュリティ基本法
    • サイバーセキュリティ戦略本部を設置
    • NISC(内閣サイバーセキュリティセンター)に改組
    • サイバーセキュリティ戦略の作成及び実施(3年ごと)
  • サイバーセキュリティ経営ガイドライン(Ver2.0)
  • 中小企業の情報セキュリティ対策ガイドライン 第3版
    • IPAが公表している
  • 割賦販売法の改正
    • クレジットカード番号等の適切な管理
      • カード情報の非保持化
      • カード情報を保持する場合PCI DSS準拠
    • 不正利用の防止策を講じることを義務付け
  • ECサイトはリスクに応じた多面的・重層的な不正使用対策の導入(パスワードによる本人認証、属性・行動分析等)

3. 情報セキュリティマネジメント

情報セキュリティの推進体制

  • 情報セキュリティ推進組織
    • CISO
  • 各部門
    • 情報セキュリティ管理者

制度

  • 情報セキュリティマネジメント試験
  • ISMS適合性評価制度
    • ISMS
      • 情報のCIAを保護するための体系的な仕組み
    • ISMS構築手順
      • ISMSの適用範囲を定義
      • ISMSの情報セキュリティ方針を確立
      • リスクアセスメント
        • リスク基準を確立
        • 一貫性及び妥当性を確保
        • リスク特定
        • リスク分析
        • リスク評価
      • リスク対応
        • リスク対応の選択肢を選定
        • リスク対応の選択肢に対するすべての管理策を決定
        • 管理策を付属書Aに対して比較
        • 適用宣言書を作成
        • リスク対応計画を策定
        • 残留リスクの承認
        • ISMSの導入・運用を許可
  • システム監査制度
    • システム監査の手順
      • 監査計画
        • 中長期計画
        • 基本計画
        • 個別計画
      • 監査実施
        • 予備調査
        • 本調査
        • 評価・結論
      • 監査報告
      • フォローアップ
    • 関連用語
      • 監査手続
        • 予備調査で確定させ、監査手続書にまとめられる
      • 監査調書
        • 監査人の監査意見の正当性を証明するための調書
      • 監査証跡
        • 一連の処理過程を途中で確認できるような仕組みのこと
        • これがあって初めて監査証拠が取れる
      • 監査証拠
        • 本調査で収集する
        • 物理的証拠
        • 文書的証拠
        • 口頭的証拠
      • 監査報告書
      • システム監査基準
        • システム監査人の行為規範
      • システム管理基準
        • システム管理の実践規範
  • 情報セキュリティ監査制度
    • 保証型監査
    • 助言型監査
    • 2つの基準
      • 情報セキュリティ監査基準
      • 情報セキュリティ管理基準
    • 7つのガイドライン
  • プライバシーマーク制度
    • JIS Q 15001:2017
    • PMS
      • 個人情報保護マネジメントシステム
    • プライバシーマーク構築手順
      • 個人情報保護方針の作成
      • 個人情報保護体制の整備
        • 個人情報保護管理者
        • 監査責任者
      • PMSの内部規定作成
        • 取得
        • 利用
        • 提供
        • 委託
      • 苦情相談窓口の設置
      • 教育
      • 監査
        • 個人情報保護監査責任者
    • 個人情報保護法
      • 民間分野
        • 4~7章
      • 個人情報保護委員会
      • 保有個人データ
        • 事業者が開示等の権限を有し6か月以上にわたって保有する個人情報
      • 要配慮個人情報
        • 人種
        • 信条
        • 社会的身分
        • 病歴
        • 犯罪の経歴
        • 犯罪によって害を被った事実
      • 匿名加工情報
        • 本人の同意を取らなくても自由に利活用できる
      • 小規模取扱事業者
        • 三者への提供はオプトアウト手続きで可能
  • 内部統制制度
    • 金融商品取引法
    • 財務報告に係る内部統制の評価及び監査に関する実施基準
    • 目的
      • 業務の有効性及び効率性
      • 財務報告の信頼性
      • 事業活動にかかわる法令などの厳守
      • 資産の保全
    • 内部統制の基本的要素
      • 統制環境
      • リスクの評価と対応
      • 統制活動
      • 情報と伝達
      • モニタリング
      • ITへの対応
        • 全般統制
        • 業務処理統制
    • 内部統制構築

4. セキュリティ関連規格

セキュリティ関連規格

  • JIS Q 27001
    • ISMSの要求事項
  • JIS Q 27002
    • ISMSの実践のための規範
  • ISO/IEC15408
    • 製品のセキュリティ評価基準
    • JISEC
      • この基準に基づく日本の評価認証制度
  • PCI DSS
    • グローバルなクレジットカード情報を取り扱う企業におけるセキュリティ基準
    • 要件
      • 安全なネットワークとシステムの構築の維持
      • カード会員データの保護
        • データを安全に保護すること
        • 暗号化
      • 脆弱性管理プログラムの維持
      • 強力なアクセス制御手法の導入
        • 必要範囲内のアクセス制限
        • アクセス確認と許可
        • 物理的アクセス制限
      • ネットワークの定期的な監視およびテスト
        • アクセスを追跡監視
        • 定期的にテスト
      • 情報セキュリティポリシーの整備
        • ポリシを整備・維持する

5. 脅威

攻撃の種類

  • マルウェア
    • コンピュータウイルス
      • 以下のいずれかを有するもの
        • 自己伝染機能
        • 潜伏機能
        • 発病機能
      • ワーム
        • ネットワークを通じて他のコンピュータに拡散する
      • トロイの木馬
        • ひっそりと常駐し、特定の日時や外部からの指示で破壊活動を開始する
      • ボット
        • 遠隔操作を目的とする
    • 攻撃ツール
    • スパイウェア
      • コンピュータ内部の情報を自動的に通知する目的で常駐するプログラム
    • ランサムウェア
    • ドライブ・バイ・ダウンロード攻撃
      • ウェブサイトを閲覧しただけで、ウイルスなどをPCにダウンロードさせる
  • 不正アクセス
    • 事前調査
      • ポートスキャン
    • 身元の隠蔽
      • なりすまし
    • 攻撃
    • バックドア、ログの改ざん
  • ソーシャルエンジニアリング社会工学
    • スキャベンジン
      • 捨てられた重要な情報を探し出す
  • サービス不能攻撃
    • Dos
    • DDos
    • DNS amp、DNS reflection
    • EDoS
      • 経済的損失を与えることを狙ったDoS
    • Smurf
      • ICMPの応答パケットを大量に送り付ける
    • TSP SYN Flood
      • TCP接続要求であるSYNパケットを大量に発生させる
    • ICMP Flood
      • pingコマンドを大量に発生させる
    • UDP Storm
      • サイズの大きいUDPパケットを大量に送信する
  • フィッシング
  • テンペスト
  • なりすまし
    • IPスプーフィング
    • ARPスプーフィング
    • Man-in-the-middle攻撃
      • メール受信者が交換鍵を送信したときに、横取りする
      • メール送信者に新たに作成した鍵ペアの交換鍵を送付する
      • 受信者と送信者の間に入って情報を詐取する
    • フィッシング
    • SEOポイズニング
  • 標的型攻撃
    • 段階
      • 計画立案段階
        • 調査、情報収集
      • 攻撃準備段階
        • 騙されやすい文面の作成
        • C&Cサーバの設置
      • 初期潜入段階
        • 標的型攻撃メールの送信
        • 添付ファイルやURLのクリックによるマルウェア感染
      • 基盤構築段階
        • C&Cサーバからコネクトバック通信を開始
        • より強力なウイルスへのパワーアップ
        • 周囲への感染拡大
      • 目的遂行段階
        • 外部からのコントロールによる情報収集や破壊活動
    • 標的型攻撃の初期潜入方法
      • 標的型メール(ばらまき型)
      • 標的型メール(やり取り型)
      • 水飲み場型攻撃
    • 標的型攻撃のキーワード
      • APT
        • 標的型攻撃はAPTの一部、もしくは別名
      • 高度標的型攻撃
      • C&Cサーバ
        • コネクトバック通信
          • マルウェアに感染した内部の端末からの外部のC&Cサーバへのアクセス
    • 標的型攻撃対策
      • 入口対策
      • 内部対策(出口対策)
  • 調査
    • ウォードライビング
      • 街の中のセキュリティの甘いAPを探す
    • スニファ
      • ネットワーク上を流れる特定のパケットをキャッチする行為

6. 暗号化

共通鍵暗号方式

  • 鍵が同じ
  • 鍵の管理が複雑
  • 鍵の配送が難しい
  • 代表的なアルゴリズム
    • AES
      • DESの後継規格
      • 128/192/256ビット
      • 暗号化の段数は鍵長によって決まる
    • DES
      • レガシー
      • 56ビット
    • トリプルDES
    • RC4
      • レガシー
      • 鍵長不変のストリーム方式
    • Camellia
      • 共通鍵ブロック暗号
      • 128/192/256ビット
      • AESより高い攻撃耐性と高速処理
  • Diffie-Hellman鍵共有プロトコル

公開鍵暗号方式

ハイブリッド暗号方式

安全性

  • 米国国立標準技術研究所
    • NIST
  • CRYPTREC暗号リスト

暗号解読法

  • ブルートフォースアタック
    • 総当たり法
  • 既知平文攻撃
    • 与えられた平文と暗号文を使用
  • 選択平文攻撃
    • 自分で作成した平文と暗号文を使用
  • 差分解読法
    • 平文の差、暗号文の差を利用
  • 線形解読法
    • 線形近似式を利用

7. ハッシュ関数

ハッシュ関数の特徴と代表的なハッシュ関数

  • 一方向性
  • 衝突回避性
  • 固定長になる
  • 処理が速い
  • ハッシュ関数の性質~困難性
    • 原像計算困難性
    • 衝突発見困難性、強衝突耐性
    • 第二原像計算困難性、弱衝突耐性
  • 代表的なハッシュ関数
    • SHA-3
      • 224、256、384、512ビット
      • これから
    • SHA-2
      • 224、256、384、512ビット
      • 主流
    • SHA-1
      • 160ビット
    • MD5
      • 128ビット

8. ディジタル署名

ディジタル署名の手順

  • ハッシュ関数を使って、平文からMDを作成
  • MDに送信者の秘密鍵で暗号化する(署名する)
  • 送信
  • 受信者は、ハッシュ関数を使って平文からMDを作成
  • 受信者は、受信したディジタル署名を送信者の公開鍵を使ってMDに復号
  • 二つのMDを比較。改ざんの有無、本人確認

10. インシデント対応

CSIRT関連機関

  • CSIRT
    • Computer Security Incident Response Team
    • 企業や組織内に作られる専門チーム
    • 発生前:脆弱性情報の収集からパッチ適用等の予防策など
    • 発生時:インシデントハンドリング
    • 発生後:再発防止策
    • 代表者はPoC
  • JPCERT/CC
    • 日本の国際連携CSIRTコーディネーションセンター
    • 分析センター
  • CERT/CC
    • 米国の国際連携CSIRT
  • APCERT
    • Asia Pacific Computer Emergency Response Team
    • アジア太平洋地域における、コンピュータセキュリティインシデント対応組織の協力体制を構築する目的で設立されたフォーラム
  • CSIRT協議会
    • 日本のCSIRTの集まり
  • FIRST
    • Forum of Incident Response and Security Teams
    • 世界的なCSIRTの集まり
  • IPA/ISEC

インシデント発生前

  • 情報収集と事象分析
  • 脆弱性対応
    • パッチの適用
  • 情報提供
    • 普及啓発活動、注意喚起
  • 対応手順の決定
    • プロセスの明確化
    • マニュアルの整備
    • 訓練の実施

インシデントハンドリング

  • 検知/連絡受付
    • 定期点検、保守作業
    • 監視システムからのアラート
    • 社員からの連絡、連絡窓口の設置
  • トリアージ
    • 優先順位付け
      • 事前に判断基準は定めておく
    • 情報収集/情報提供を要請
    • 影響範囲の特定と必要に応じて応急対応
    • 対応の要否の決定
    • 利用者への注意喚起
  • インシデントレスポンス
    • 事象分析
    • 対応策の決定と対応計画の作成
    • 対応策の実施
    • 報告者への回答
  • 報告/情報公開
    • 取引先等関連したところに報告
    • 監督官庁、捜査機関等への連絡
    • メディアへのプレスリリース

インシデント発生後

  • 再発防止策の検討
    • 原因分析から再発防止策の検討
    • ポリシの見直し、マニュアル改訂

インシデント関連キーワード

  • EDR
    • Endopoint Detection and Response
  • ディジタルフォレンジック
  • インシデントラッキングシステム
    • インシデントの対応状況や進捗状況を管理するシステム

脆弱性対応の手順

  • 情報収集
    • メーカや開発企業のサイトのチェック
    • 統合管理システムの利用
    • JVNのMyJVN脆弱性対策情報ツール等の利用
    • 外部の情報提供サービスを利用
  • 深刻度評価
    • CVSS環境値
  • 措置の実施
    • 修正プログラム(パッチ)の適用
    • 一時的にIPSやFWで攻撃が抑止できる場合は実施する
    • 当該製品の利用をいったん停止する
  • 事象分析

脆弱性関連ワード

  • JVN
    • Japan Velnerablity Notes
    • 発見されたソフトウェアなどの脆弱性関連情報(JVN脆弱性レポート)
    • 脆弱性情報を収集するためのツール(MyJVN脆弱性対策情報ツール)
  • CVSS
    • 基本評価基準
      • 脆弱性そのものの特性を評価
      • 固定
    • 現状評価基準
      • 脆弱性の現在の深刻度を評価
      • 変動
    • 環境評価基準
      • 利用環境を含めて最終的な脆弱性の深刻度を評価

9. ログ

JIS Q 27002におけるログ管理のポイント

  • 監査ログ取得
  • システム使用状況の監視
  • ログ情報の保護
  • 実務管理者及び運用担当者の作業ログ
  • 障害のログ取得
  • クロックの同期

ログ取得の目的

ログに残すもの

  • いつ
    • 実行日時
    • タイムスタンプ
  • 誰が
  • 何に
    • 対象資源
    • 実行プログラム
    • テーブル
  • どうした
    • 以下の操作と実行結果(成功/失敗)
      • プログラムの起動/停止、ログイン/ログアウト
      • 特権操作
      • 許可されているアクセス/無許可アクセス
      • 成功したアクセス/失敗した試み

ログ管理の留意点

  • 対象と保存期間の決定
  • 改ざん防止策
  • ログファイルのバックアップ
    • バックアップ媒体の盗難
      • 媒体に通番を付与し台帳管理を行った上で、遠隔地保管や施錠管理された金庫等での保管
    • バックアップ媒体中のデータ改ざん
      • WORM機能の媒体

複数機器にまたがるログの分析

  • 時刻を合わせる(NTPサーバ:123)
  • タイムゾーンを統一する
  • フォーマットを正規化する
  • X-Forwarded-Forヘッダフィールド
  • ログ管理システムの管理

統合ログ管理システムの機能

  • 各サーバのログ収集機能(一元管理機能)
  • ログの安全な保存機能
    • 暗号化
    • アクセス制限
    • 改ざん検知
  • 圧縮等による長期保存機能
  • ログの検索、分析機能
  • アラート通知、レポート出力機能

8. 物理的セキュリティ対策

入退室管理

  • 手順
    • 来訪者の管理
    • 名札の貸出、着用しての行動
    • 用紙に訪問先担当者の印鑑をもらう
    • 名札、印鑑のある用紙を受付に返却
    • 退出
  • 日常的に社員が名札を着用することが必要
  • 担当者のアテンドが必要

入退室管理システムの機能

  • 在室管理
  • PCへのログイン制御システムとの連携
  • プレゼンス情報との連携
  • ICカード=社員証、クレジット機能で携行率を向上させる

物理的セキュリティ対策のガイドライン

  • 国際基準:ISO/IEC27002
    • 人への対応
  • 国内基準:情報システム安全対策基準

クラウドサービス利用時の留意点

  • 信頼性(耐障害性、耐災害性)
  • 入退室管理
  • 不正アクセス対策
    • 認証方式は要求レベルにあるか
      • 端末認証が可能か
      • 二要素認証が可能か
    • 通信路は暗号化されているか
    • 監視やログ機能は要求レベルにあるか
  • サーバの設置国の法令順守(GDPR等)
  • クラウドサービス上のデータ
    • 事業者側でのバックアップ方法等の確認
    • データ消失時の保証範囲の確認
    • 契約終了時のデータの確保
      • データの所有権の有無
      • インポート/エクスポート機能
      • フォーマットの互換性
      • データの完全な消去など
  • その他
    • 拡張性やマネージドサービスが自社の要求に合致するか
      • 中長期計画との整合性
    • 利用者支援
      • 問い合わせ窓口にすぐ連絡がつくか
      • 緊急時に契約者が入室可能か
    • 事業者の財務基盤
      • 経営母体
      • 契約者数
      • 継続年数
  • データセンターの評価基準やガイドライン
    • FISCの金融機関等コンピュータシステムの安全対策基準
    • JDCCのファシリティスタンダード
      • Tierレベル(1~4)
    • TIA942
      • 世界基準

ネットワーク分離

  • 社内LANとインターネットに接続できるLANを分離
    • 物理的に端末を2台
      • 中間LANとその中のファイル転送サーバを使ってデータの受渡を行う
    • 1台の端末(論理分離)

コンテナ技術

  • コンテナエンジンの上にコンテナを立てる
  • 仮想化ソフトで複数のハードウェアと同じ環境を作ろうとする仮想化技術に対し、コンテナ技術はOSから必要機能を切り出して隔離された環境を作り出して、その後は独立して稼働させる
  • 軽くて速い
  • 複製も容易で、構成管理、変更管理、リリース管理に利用できる

VLAN

  • 仮想的なLAN
  • VLAN対応のLANスイッチを利用して構築する
  • ポートVLAN
    • LANスイッチのポートごとにVALN番号を設定する
  • タグVLAN
    • MACフレームにVLAN番号を記したタグ情報を挿入する
    • タグの形式はIEEE 802.1Qで標準化され、以下の2つから構成される
      • TPID(2バイト):固定値で0x8100がセットされ、これを見てVLANだと判断する
      • TCI(2バイト):12ビットのVLAN番号が入る(4096個を区別可能)
    • 通常のMACフレームとIEEE 802.1Qの(タグVLANを設定したところから送出される)MACフレームとは異なるので、対応している機器同士でしか機能しない
      • 通常のMACフレームではTPIDとTCIの4ビットが丸々存在しない
  • 認証VLAN
    • 端末の利用者が接続時に入力するIDとパスワードによって対応するVALNに接続する
  • VLAN間をまたがる通信でよくある接続方式
    • VLAN IDとIPのサブネットを対応づける必要がある
    • ルータ+L2スイッチを用いる場合
      • ルーティングテーブルでIPのサブネットとインターフェースを対応させる
      • VLAN IDの数だけルータとL2スイッチ間の接続が必要(インターフェースとVLAN IDを対応させる)
    • L3スイッチ+L2スイッチを用いる場合
      • 両方のスイッチのポートをタグポートに設定すれば接続は一つでよい
    • L3スイッチを用いる場合
      • ルーティングテーブルでVLAN IDとIPのサブネットを対応させるのみ

無線LANの規格

IEEE 802.11n, IEEE802.11acの新技術

  • MIMO
    • 複数のアンテナを使って送受信する技術
    • 最大でn:4本、ac:8本
  • チャネル・ボンディング
    • 1チャネルの利用周波数幅を2倍にして利用する
    • 最大でn:40MHz、ac:160MHz

無線LANのセキュリティ用語

  • 脅威
    • 盗聴
    • 不正侵入、なりすまし
      • ウォードライビング
        • 無線をキャッチする端末を車に積んで、市内を走り回りセキュリティレベルの低いアクセスポイントへ無断侵入する
    • フリースポット
      • パケットの盗聴
      • 端末への侵入、ウイルスインストール
      • ハニーポットAP(偽のアクセスポイント)への自動接続
  • ESSIDの隠蔽(ステルス化)
    • Extended Service Set Identifier
      • 無線通信の論理的グループを形成するためのネットワークの識別ID
      • アクセスポイントと無線LAN端末の双方で同じESSIDを設定する
    • ビーコン信号を停止する設定にしておく
    • アクセスポイントでANYプローブ応答の禁止設定
      • ANY接続(端末側が特定のESSIDではなくANYを設定する接続)を拒否する
  • MACアドレスフィルタリング
  • 暗号方式
    • WEP
      • アクセスポイントと端末に同じWEPキーを設定
      • 64ビットと128ビット
        • 初期設定ベクトル(IV)が24ビット
        • 残り(5文字or13文字)を設定する
      • 暗号アルゴリズムRC4
      • 完全性検査:CRC
      • アクセスポイントに接続する全端末で同一のWEPキーを設定し使い続ける上、脆弱性も発見されている古い方式
    • WPA
      • 暗号化方式:TKIP
      • 暗号化アルゴリズムRC4
      • WEPよりも安全
        • WEPの弱点であった24ビットのIVを48に増加
        • 暗号鍵を一定時間ごとに更新する
      • 暗号鍵の受け渡し方式
        • パーソナル
          • 一般家庭用
          • 事前にアクセスポイントと端末で暗号鍵(PSK)を共有しておく
        • エンタープライズ
          • 企業用
          • 認証サーバを立てて、その認証を利用する
    • WPA2、IEEE 802.11i
    • WPA3
  • その他の問題
    • 隠れ端末問題
      • 端末同士の距離が離れていてお互いのキャリアを検出できない状況の時にアクセスポイントに送った送信フレームが衝突を起こしやすくなる
      • RTS/CTSで対応
        • 送信前にRTSというフレームを送り、アクセスポイントからCTSフレームを受信した端末が通信する
    • さらし端末問題
      • 他の端末の通信を検出してしまい、送信を待ってしまうことでスループットが低下する問題

7. セキュアプログラミング

Java

  • サンドボックス
  • AccessContoroller、SecurityManager
    • 任意のセキュリティポリシを適用できるポリシベースのセキュリティ管理が可能に
  • カプセル化
  • メモリ管理はJavaVMが行うのでBOFは発生しない
  • ガーベージコレクション
    • 動的に確保したメモリ領域が不要になると自動的に解放する

C++

XSSの種類

  • クロスサイトスクリプティング
  • インターネットを利用している一般ユーザが悪意あるWebサイトを閲覧したときに被害を受ける攻撃の一種
  • 反射型XSS Type1
    • 攻撃者は、脆弱性のあるサイトへのリンクに、そこで実行させたい"スクリプト"を含めておいて、そのリンクが踏まれるのを待つ
    • 利用者がそのリンクを踏むと、脆弱性のあるサイトではリンクに続いている記述をスクリプトとして解釈し、スクリプトを含むレスポンスを利用者の画面に返す
    • その結果、利用者のクライアントで、スクリプトが実行される
    • PC内のCookieを漏洩させたり、ファイルを破壊したりするなど
    • サーバ側の動的HTMLを組み立てる際の脆弱性
    • 対策
      • 意図しないスクリプトを実行しないようにサニタイジング処理を行う
        • & → &
        • < → &lt;
        • > → &gt;
        • " → &quot;
        • ' → &#39;
      • Content-Typeフィールドの適切な設定
        • 意図しているファイルタイプや文字コードを明示的に指定しておく
  • 格納型XSS Type2
    • 反射型XSS同様サーバ側の脆弱性を突く攻撃
    • スクリプトに相当する文字列をサーバ側に永続的に保存する
    • サーバに格納されるので、そこにアクセスするユーザが閲覧するたびに攻撃にあう
    • 対策は反射型と同様
  • DOMベースのXSS Type0
    • ブラウザ側で実行されるJavaScriptを利用したXSS
    • JavaScript脆弱性を突く
    • 対策
      • DOM操作用のメソッドやプロパティを使用する
      • JavaSctiptのライブラリを最新にする

SQLインジェクション

  • 入力された項目を使ってSQL文を組み立てて実行している場合
  • ORに続いて絶対に満たす条件を付け加えると意図しない実行ができてしまう
  • 対策

バッファオーバーフロー

  • 確保したメモリエリアの大きさを超えるデータがメモリエリアに渡されるとリターンアドレスまで書き換えられてしまう
  • オーバフロー部分に不正なプログラムのアドレスを入れておくと不正なプログラムが実行されてしまう
  • 対策
    • 脆弱性のある関数を使わない
      • strcpy → strncpy
      • strcat → strncat
      • gets → fgets
      • sprintf → snprintf
      • vsprintf → vsnprintf
    • プログラムの中で、データをメモリエリアに転記する際に大きさをチェックするようにコーディングする
    • データ実行防止機能
      • 指定されたメモリ領域でのコード実行を禁止できるが、領域外にlibcが存在するのでReturn-to-libc攻撃は実行できる
    • アドレス空間ランダム化配置技術
      • スタック、ヒープ等のメモリ領域の配置をランダム化でき、メモリアドレスを予測しづらくなり、Return-to-libc攻撃が困難になる

CSRF

  • 悪意のあるサイトにアクセスしたことで、スクリプト付きのWebページをダウンロードしてしまい、それが自動実行され他のサイト(認証機能を持つ)にアクションを起こされる攻撃
  • 対策
    • Cookieとは別のトークンを使用する
      • Cookieとは別にログイン完了時等に疑似乱数をサーバが発行し、hiddenフィールドを利用して、画面遷移時に連続性のある正当なリクエストかどうかをチェックし、トークンのないアクセスを破棄するようにアプリケーションの設計をする
    • 確定時に入力を要求
      • パスワードの再入力
      • CAPTCHAを利用
        • 人とbotとを区別するために利用されるアレ

その他の攻撃

  • OSコマンドインジェクション
    • コマンドを混入させる
  • セッションフィクセーション
    • 事前に取得したセッションIDを攻撃対象に使わせてなりすます
  • セッションハイジャック
    • 他人のセッションを盗んでなりすます
  • Use-After-Free

開発時に参考になる規格等

  • 設計プロセス
    • CIS Benchmarks
      • システムを安全に構成するための構成基準及びベストプラクティス
      • OS、ミドルウェア、アプリケーションごとに必要なセキュリティ対策をまとめている
    • OWASAP ASVS
      • Webアプリケーションの設計、開発、脆弱性診断などにおいて必要となるセキュリティ要件の標準を確立することを目指す
      • アプリケーションセキュリティ検証標準を作成・管理する
  • 実装プロセス
    • CERT コーディングスタンダード
      • セキュアなソフトウェアを作るためのコーディングガイドライン
      • 脆弱性の防止だけでなく、コードの移植性及び保守性の向上も期待できる

6. リモートアクセス

持ち出し管理規定(推奨)

  • 電子メールは保存しない(IMAP
  • 重要データは保存しない(サーバ保存)
  • 利用者認証機能
    • USBキーをPCに挿入し、USBキー内の秘密鍵を活性化するためのパスワードを入力
    • USBキーはPCと別に管理
    • BIOSによる起動パスワードで、本人以外が起動できないように
  • 確実に利用者認証ができていることを上司が確認
  • 暗号化
    • 利用者が意識することのないように
    • 復号鍵を認証デバイスに保管して、認証デバイスがないと復号できないように
  • 持ち出し申請管理の徹底
    • 申請書を用いる
    • 口頭での許可はしない
  • RASへのアクセス記録を定期的に本人宛に電子メール送付する
  • バックアップ
  • ウイルス対策PDA
    • パーソナルFW
    • パターンファイルをリアルタイムに更新する
  • のぞき見防止フィルタで盗み見対策
  • 社内ネットワークに接続するときは検疫ネットワーク等を利用する

盗難・紛失時の対応

  • 利用者は直ちに事実を報告
  • 管理者は詳細ヒアリング、漏洩リスクを判断
  • リモートアクセスのID、パスワード等を一時的に利用停止
  • 紛失中に当該IDからアクセスがあるかどうかサーバやFWのログをチェック
  • 戻ってきた後、操作履歴やログをチェック
  • 情報漏洩やインシデントの発生有無を最終判断し報告書にまとめる
    • インシデントが発生していたらインシデント対応プロセスに移行
  • 情報セキュリティ委員会で再発防止策を検討

BYOD

  • Bring Your Own Device
  • メリット
    • 会社は初期コスト(端末購入費等)、運用コスト(通信費、保守費等)がかからない
    • 従業員は2台持ちの解消、使い慣れた端末の解消、好きな機種の利用ができる
    • 特定機種に脆弱性が発見されても、すべての端末が使えなくなることはない
  • デメリット
    • 会社での一元管理が困難
    • 脆弱性の一括修正が困難
    • 私的データと会社で利用するデータが混在
  • セキュリティ
    • OS及びアプリケーションに最新の脆弱性対策パッチを適用する
    • 機種やOSのバージョンの申請を義務付ける
    • 可能な場合、ウイルス対策ソフトの導入
    • 私的改造を行わない(製造元のセキュリティ機能が無効になるから)
    • アプリケーションは、信頼できるところだけに限定する

ディスクやUSBメモリの暗号化

  • 電子政府推奨のAES(鍵長256ビット)、CCのEAL4レベルが安全とされている
  • フルディスク暗号化方式
    • ディスクまるごと暗号化し、利用者は意識することはない
    • プリブート認証
      • 認証が通らないとOSが起動しない
    • ハイバーネーション用領域の暗号化
      • PCが休止モードになったときに、そのときのメモリの内容を一時的に書き出す領域
    • 起動後は無防備、起動時にUSBメモリ等の外部デバイスにコピーしたものは非暗号
    • TPMに復号鍵を保管しておけば、ハードディスクが取り外されても他のPCで読めない
  • 仮想ディスク暗号化方式
    • 仮想的な暗号化領域(コンテナ)を作成し、仮想ディスクとして利用する
    • マウントするときに認証が必要だが、一度認証をパスすると一定時間は意識せずに使える
    • 仮想ディスクに書き込むと自動で暗号化され、コンテナ以外のところにコピーされると自動で復号される
  • フォルダ・ファイル暗号化方式
  • TPM
    • Trusted Platform Module
    • PCに内蔵されるセキュリティチップ
    • 耐タンパ性を持ち
    • 鍵ペアの生成と格納
    • ハッシュ値の計算
    • 乱数生成

VPN

  • 機能
    • 暗号化
      • 通信回線上を流れるパケットを暗号化
    • 完全性検査
      • 通信途中での改ざんを検知
    • トンネル化
      • 本来のパケットに新しいヘッダをつけて通信するなどしてカプセル化
  • プロトコル
    • PPTP
      • Point to Point Tunneling Protocol
      • 第2レイヤでVPNを構築する
      • 主としてインターネットVPNで使用される
    • IPsec
      • IPレベルでVPNを実現するプロトコル
      • IPのバージョン4ではオプション、IPv6では標準仕様
      • 通信モード(暗号モード)
        • トンネルモード
          • IPパケットをヘッダごと暗号化するため、透過的で安全
        • トランスポートモード
          • IPパケットのデータ部(TCPヘッダとデータ部)だけを暗号化
          • セキュアなホスト間でのエンドツーエンドなどに用途が限られる
      • プロトコル
        • ESP
          • Encapsulating Security Payload
          • 暗号化と認証が可能
        • AH
          • Authentication Header
          • 認証のみ
      • 認証モード
        • メインモード
          • 相互認証に固定IPを使う
          • LAN間接続に向く
        • アグレッシブモード
      • トンネルモード+ESP
        • データ形式(前から)
          • VPN装置間で新たなIPヘッダをつける
          • ESPヘッダ
          • 暗号化したIPパケット
            • 暗号化される
          • IPヘッダ+データ
          • ESPトレーラ
            • 暗号化される
          • 認証データ
        • 通信手順
          • 第1フェーズ:IKE SA(制御用トンネル)を作成
          • 第2フェーズ:IPsec SA(通信用トンネル)×2を作成
            • IKE SAを使ってIPsec SAを上り用と下り用を作成する
              • 第3フェーズで利用する暗号アルゴリズムと認証アルゴリズム(ハッシュアルゴリズム)を決定し、双方のSPI値、乱数を交換する
              • それらを基に上り通信用の暗号鍵と認証鍵、下り通信用の暗号鍵と認証鍵を作成する
          • 第3フェーズ:暗号通信を開始
    • SSL-VPN
      • 本社側にSSL-VPNゲートウェイを設置し、クライアントとSSL-VPNゲートウェイとの間でSSLhttps)通信を行う仕組み
      • リバースプロキシ方式
      • ポートフォワーディング方式
        • Webブラウザに専用モジュールを自動的にダウンロードして利用する
        • SSL-VPN装置と各種サーバ間に設定が必要
        • 設定したアプリケーションは利用できる
      • L2 フォワーディング方式
        • Webブラウザに専用モジュールを自動的にダウンロードして利用する
        • クライアント側に仮想NICを設定し、サーバ側のネットワークに属する
        • すべてのアプリケーションを透過的に利用できる
    • SSH
      • SSHサーバとSSHクライアントを設置し、SSHプロトコルを使う
      • SSL-VPNとの対応
      • ポートフォワーディング機能
        • TCPの上位で動作するアプリケーションを暗号化して安全に通信できる
      • コマンド
        • ssh:遠隔端末、telnetやrloginの安全な代替手段
        • scp:ファイル転送、rcp
        • sftp:ファイル転送、ftp
      • パスワード認証、公開鍵認証

シンクライアント

  • ネットワークブート型
    • 端末起動時にOSやアプリケーションを端末に送って、端末側で動作する
    • 起動時にネットワークに負荷がかかる
  • 画面転送型
    • サーバベース方式
      • 1台のサーバにある環境を共有する
      • アプリが対応している必要がある
      • ライセンスに課題
    • ブレードPC方式
      • ブレード(CPU等を配置した基盤)一つで1端末
      • コストがかかる
    • VDI方式
      • サーバに仮想化ソフトをインストールし、その上で仮想的に端末ごとの環境を維持管理する
      • H/Wは共通でもOSやアプリは端末の数だけ必要
  • メリット
    • 端末にデータが残らない
    • サーバ側で、個々の端末の環境の一元管理ができる
    • インターネット接続用のTCサーバを独立させると標的型攻撃への対応になる]
      • OA用TCサーバのデスクトップ環境がマルウェアに感染しても、FWで外部ネットワークへのHTTP/HTTPS通信を遮断しておけば外部からコントロールされるのを防ぐ
      • IA用TCサーバのデスクトップ環境がマルウェアに感染しても、そこから内部への感染拡大には至らない

RADIUS

  • インターネット以前はリモートアクセスは公衆回線やINS回線で、アクセスポイントのアクセスサーバ(Remote Access Server)に電話をかけて接続していた
    • ダイヤルアップ接続
    • プロトコルはPPP
    • 認証機能はPAPやCHAP
  • 通信事業者のようにアクセスポイントが全国に分散している場合、1か所に認証サーバを設置し、アクセスポイントとは別に管理することで一元管理する
  • この時に、個々のアクセスサーバと認証サーバ間の通信プロトコルとして使われるのがRADIUS(Remote Authentication Dial-In User Service)
  • 認証サーバにRADIUSサーバ、各アクセスサーバにRADIUSクライアントの機能を持たせれば、接続要求のあったクライアントを認証サーバで認証できる
  • IEEE 802.1X認証などで使われる

IoT機器

  • 特有の性質とリスク
    • 脅威の影響範囲・影響度合いが大きい
    • ライフサイクルが長い
      • 経年によるセキュリティ機能の危殆化、新たな脆弱性の発見
    • 監視が行き届きにくい
      • 盗難・紛失
      • 管理者のいない場所での物理的攻撃、不正接
      • 放置、ウイルス感染に気付かずに放置
    • IoT機器側とネットワーク側の環境や特性の相互理解が不十分
    • 機能・性能が限られている
      • 十分なセキュリティ対策が困難
    • 開発が想定していなかった接続が行われる可能性
  • IoTのセキュリティ対策
    • IoT機器の製品設計時に配慮すること
      • 耐タンパ性
      • 故障時や想定しない接続(不正アクセス)時に対し、フェールセーフを基本とする
      • 不正利用に対しては実行可能なプログラムを制限する
      • 通常使用I/F、保守用I/F、非正規I/F別にセキュリティ設計をする
      • EDSA認証
        • Embedded Device Security Assurance
        • 制御機器を対象としたセキュリティ評価制度
    • 機器等がどのような状態かを把握し、記録する
      • 遠隔地で稼働するIoT機器は、監視が行き届かなくなりがち
        • 運用管理システムの検討
        • 死活監視
      • つながることで不正アクセスだけでなく、盗難や物理的に直接接続された時も把握
      • ログの取得及びチェック
        • 不正アクセスの兆候を把握するだけでなく、後日調査のためにも一定期間保管しておくことが望ましい
    • 保守
      • 保守専用ポートや保守専用ツールの管理強化
        • 不正利用(盗難、横流し等)に対する対応策
      • 保守員の不正・過失対策、退職後の不正アクセスへの対策
        • 不正を起こしたくない環境の構築
        • 権限分掌や相互牽制
        • 保守員の行動記録とログの突合せチェック
        • 異動や退職後の権限剥奪
    • 不正アクセスに備える
    • 更新プログラムの確実な実施
      • 遠隔で行う場合には十分な不正アクセス対策が必要
      • 自動アップデートの場合は、性能の影響がないか、問題があったときに自動バージョンダウンができるかどうかを検討する
    • 廃棄時のデータの確実な消去

5. 電子メールのセキュリティ

電子メールエージェント

  • MUA
    • Mail User Agent
    • メールクライアントのソフトウェア
  • MTA
    • Mail Transfer Agent
    • メール転送のソフトウェア
    • MUAでSMTP25番ポートを指定したとき
  • MSA
    • Mail Submission Agent
    • メール転送のソフトウェア
    • MUAでSMTP587番ポートを指定したとき
  • MDA
    • Mail Delivery Agent
    • メール配送のソフトウェア
    • メールボックスにメールを格納するソフトウェア
  • MRA
    • Mail Retrieval Agent
    • メール取出ソフトウェア
    • MUAがメールボックスからメールを取り出すときに通信するソフトウェア

電子メールに関連するプロトコル

  • SMTP
    • 25番
    • OP25Bでブロックしている場合はサブミッションポート587番
    • 送信時に認証機能を使うのがSMTP-AUTH
  • POP3
    • 110番
    • メールサーバに蓄積されたメールを取りに行く
    • USER/PASSで認証
    • パスワードを暗号化したい場合はAPOP
  • IMAP4
    • 143番
    • POP3との相違点はメールサーバでメールを蓄積管理すること」
    • クライアントにダウンロードしなくてよいので、モバイル端末の盗難や紛失対策に有効
  • MIME
    • 各国言語、テキストデータ、画像データなどの複数種類のデータを一つにまとめて電子メールで送受信するための仕様
  • S/MIME
    • MIME仕様にセキュリティ機能を組み込んだもの
    • 暗号化されるのは本文だけでヘッダ(FROM、TO、SUBJECT等)はされない
    • CA発行の電子証明書が必要
  • BASE64
    • 最も広く利用されているエンコード方式
    • バイナリデータを64種類(A-Z、a-z、0-9、+、/)の文字列に変換して送信し、受信側で戻す
    • 暗号化、圧縮はしない
    • データ量は1.3倍に増える

メールヘッダの解析

  • Return-path
    • エラーが発生した場合に送り返すアドレス
    • 送信者が自由に任意のアドレスを設定可能
  • Received
    • メールを中継したサーバの情報
    • メールが配送された経路がわかる
    • 下の方が送信元に近く、上の方が受信先に近い
    • from:この前に中継したサーバのホスト情報
    • by:中継したサーバのホスト情報(ドメイン名、ホスト名)
    • for:最終宛先。通常はToと同一  
    • 上位に記載されているものほど信用性が高い
    • fromの()内とby以後は詐称困難
  • From
    • メール送信者のメールアドレス
    • 詐称可能
  • To
    • メールの宛先アドレス
  • Subject(詐称可能)
    • メールの件名

迷惑メールへの対応

  • SMTPのオープンリレー(第三者リレー)の禁止
    • 外部から来た外部宛のメールを中継しないように設定する
  • 送信者認証
    • SMTP-AUTH
      • メールサーバとクライアントソフトの双方が対応している必要がある
      • 送信者認証時のパスワードを暗号化できる
    • POPbeforeSMTP
      • POPで受信者がログインしたときにユーザの正当性が認証されることを利用して、その後一定の時間に同一のIPアドレスからだけSMTP接続を受け付ける
      • クライアントには変更がなく容易に導入できるので現在はSMTP-AUTHに移行してきている
  • OP25B
    • Outbound Port 25 Blocking
    • ISPが自分の管理課にある契約者から外部に迷惑メールを送信できないようにする対策
    • ISPのメールサーバ経由でしか送信できないようにする
    • メールサーバで大量のメールの発信を制限したり、大量の同時セッションを一時的に拒否したりする
    • 外部ネットワークとの接続点で、送信元のIPアドレスが動的IPアドレスで25番ポートのメールをブロックする
    • 正当な理由で外部のメールサーバを利用したいときはサブミッションポート587やSMTP over SSL(445)を使う。いずれもSMTP-AUTHを使うことが前提
  • IP25B
    • Inbound Port 25 Blocking
    • 受信メールをブロックする
    • ブロック対象の判別はOP25Bと同じ
  • 送信ドメイン認証
    • 送信者のドメインを検証し、迷惑メールを見極める仕組み
    • 送信側のDNSサーバに対応する設定をする
    • 受信側はメールサーバに対応する設定をする
    • 受信側メールサーバが、メールを受け取ったら送信側のDNSサーバに問い合わせて当該メールの正当性を検証する
      • Pass:認証処理検証
      • Fail:認証情報を公開しているが認証に失敗
      • None:認証情報を公開しない
    • SPF
      • Sender Policy Framework
      • IPアドレス方式
      • 送信側DNSサーバにSPFレコードを登録
      • 受信側メールサーバは、受信したメールのドメイン名を基に、送信元のDNSサーバに問い合わせ、送信元IPアドレスSPFレコードのIPアドレスを比較
      • SPFに対応している別のメールサーバが間に入り、MAIL FROMコマンドのドメイン名を変えずにメールをそのまま転送する場合、認証が失敗する
    • DKIM
      • DomainKeys Identified Mail
      • ディジタル署名方式
      • 送信側DNSサーバに公開鍵を登録
      • 送信側で、ディジタル署名を作成し、DKIM-Signatureヘッダに付与してメール送信
      • 受信側メールサーバは送信元のDNSサーバから公開鍵を入手して署名を検証
      • 双方のサーバとも負荷が大きい
    • DMARK
      • Domain-based Message Authentication, Reporting & Conformance
      • SPFDKIMによる認証を補強する技術
      • 認証結果を受けて、そのメールをどう取り扱うかをDNSでポリシとして公開しておくことで送信者側で決めることができる
      • 処理結果を集計レポートとして送信者側が受け取ることもできる
    • これらはなりすまし対策であり、迷惑メールの送信者がドメインを正当に取得した場合は防げない

情報漏洩防止システム

  • メール誤送信防止システムの設置場所の例
    • アプライアンス製品(専用サーバ):メールサーバとインターネットとの間
    • ソフトウェア製品:メールサーバと同一サーバにインストール
    • プロバイダのサービスを利用する
  • 転送禁止機能
    • 受信メールの転送を禁止する
  • 暗号化機能
    • メール本文や添付ファイルを暗号化
  • キーワードフィルタリング機能
    • メール本文や添付ファイルの文字列を検索し、あらかじめ設定されている送信禁止キーワードが含まれていると自動的に送信をストップする
    • 故意にキーワードを避けたり当て字にすることですり抜けられる
    • キーワードを増やしすぎるとFalse Negativeが増える
    • 画像データにも無力
  • 管理者へのコピー送信機能
    • あらかじめ設定した上司にもコピーを自動送信する
    • 牽制効果になる
    • 承認を求める場合には、上司が過負荷にならないか、上司が不在の場合にどう処理するかに配慮する
  • 送信保留機能
    • 一定時間送信を保留する
    • 送信者本人や第三者に確認メールを転送し、返信があって初めて送信する
  • BCCへの強制書き換え機能
    • 一定数以上のメールアドレスをCCに記述していたら、送信時にBCCに変える
  • メールアーカイブシステム
    • 日々大量に発生するメールを圧縮し暗号化して安全に保管する
    • 独自の検索エンジンで高速検索できる