セキュアプログラミングとセキュアOS(後期2単位)

客員教授 柴山 悦哉

1.授業のねらい

社会の隅々にまで浸透したソフトウェアシステムは、サイバー攻撃に対して脆弱なことが多く、社会全体に大きな負の影響を与えている。本科目では、攻撃に強くセキュアなソフトウェアを構築・運用するときに有用となる原則、概念、技法、ガイドライン、ツールなどについて紹介を行う。そして、完璧な防御方法はないことを前提に、ソフトウェアシステムの出入口での対策、一部に問題が発生した場合の影響範囲の局所化、最小権限の原則にしたがったアクセス制御、アクセス主体の管理などの手法とこれらの組み合わせに基づく考え方を解説する。

2.到達目標

  • ソフトウェアの脆弱性が生じる原因と脆弱性がもたらす影響を理解する。
  • ソフトウェアをセキュアに構築するための基本的な手法を理解する。
  • ソフトウェアをセキュアに運用するための基本的な手法を理解する。

3.授業計画と開講形態

開講形態は別途通知。

  1. ソフトウェアの脆弱性
  2. セキュアなソフトウェア構築の原則とガイドライン
  3. 設計レベルの問題
  4. 実装レベルの問題
  5. バッファオーバーフロー攻撃の仕組み
  6. バッファオーバーフロー攻撃の防御策
  7. Webアプリケーションの脆弱性と文字列の問題
  8. 入出力の検査とサニタイズ
  9. 隔離実行
  10. 信頼できないコードの安全な実行とサンドボックス
  11. アクセス制御
  12. セキュアOS
  13. 認証と認可
  14. さまざまな認証方式
  15. セキュアプログラミングの難しさ

4.教科書

特に指定しない。

5.参考書

授業中に紹介する。

6.関連科目

プログラミング,オペレーティングシステム,セキュアシステム構成論,情報セキュリティ技術演習Ⅰ,ソフトウェア構成

7.成績評価の方法

学期末のレポートによる。