シラバス情報

授業コード
520955
オムニバス
科目名
情報セキュリティ応用
科目名(英語)
Applied Information Security
配当学年
2年
単位数
2.00単位
年度学期
2025年度秋学期
曜日時限
火曜1限
対象学科
先_情報,先_データ
コース
科目区分
専門科目
必選の別
選択科目
担当者
橋浦 弘明
教室
5-104
実務家教員担当授業
担当教員の橋浦は情報処理安全確保支援士(第000302号)の資格を持ち情報セキュリティ対策に関する実務経験がある。その経験を活かしソフトウェア技術に関する実践的なテーマや実例を授業で扱っている。 
授業の目的と進め方
情報システムに対するサイバー攻撃が大きな社会問題を引き起こしている。サイバー攻撃の標的となるソフトウェアシステムに含まれる脆弱性と脆弱性を悪用した様々な攻撃の原理を理解したうえで、サーバー攻撃に対応するセキュアな情報システムの構築や運用の方法について、技法、ツール、プログラミング技術、ガイドラインなどを学ぶ。
達成目標1
サイバーセキュリティ分野において業務を遂行する際に規範となる倫理(情報処理安全確保支援士倫理綱領)を理解し、実践することができる(10%)
達成目標2
ウェブアプリケーションに生じやすい脆弱性について、その原理を理解し、対策を行うことができる。また、脆弱性の有無を自分で判断することができる(25%)
達成目標3
セキュアプログラミングについて理解し、対策を行うことができる(25%) 
達成目標4
IDSやWAFの動作を説明し、実際に設定をすることができる(20%)
達成目標5
情報セキュリティの動向を調査し、自分で脅威のモデル化を行ったり、セキュリティポリシーが作成できる(20%)
達成目標6
達成目標7

アクティブラーニング
ディスカッション
ディベート
グループワーク
プレゼンテーション
実習
フィールドワーク
その他課題解決型学習

授業計画
授業時間外課題(予習および復習を含む)
第1回
情報セキュリティと倫理
情報処理安全確保支援士の倫理綱領を調査する(1時間)。
不正アクセス禁止法について調査する(1時間)。
第2回
セキュアプログラミングとソフトウェア設計原則
プログラミング環境を整える(1時間)。
セキュアプログラミングについて調査する(1時間)。
第3回
数値の罠
整数オーバーフローの事例について調査する(2時間)。
第4回
長さの罠
境界外書き込み の事例について調査する(2時間)。
第5回
プログラム実行の罠
インジェクションとログの保全の事例について調査する(2時間)。 
第6回
無害化とDigital Identity
無害化とDigital Identityの事例について調査する(2時間)。  
第7回
ライブラリの罠
信頼できないライブラリについて調査する(2時間)。
第8回
セッションの罠
ウェブアプリケーションとセッションに対する攻撃 の事例について調査する(2時間)。
第9回
ウェブページの罠
ウェブページ生成時における入力の不適切な無害化 の事例について調査する(2時間)。
第10回
リクエストの罠
意図しないリクエストの実行の事例について調査する(2時間)。
第11回
SQLの罠
SQLコマンドで使用される特殊要素の不適切な無害化 の事例について調査する(2時間)。
第12回
パス名の罠
制限付きディレクトリに対するパス名の不適切な制限の事例を調査する(2時間)。
第13回
ウェブアプリケーションへの攻撃の緩和
普段利用しているソフトウェアをいくつか選んで、情報セキュリティの動向を調査する(2時間)。
第14回
Stay Secure
これまでの授業の内容を振返り内容をまとめておく(2時間)。


課題等に対するフィードバック
授業中の課題等については授業内もしくはTeamsで解説する。 
評価方法と基準
課題を提出し、 期末試験で60点以上をC評価とする。  
テキスト
別途指示する。
参考図書
・Adam Shostack, "Threat Modeling: Designing for Security," Wiley, 2014.
・IPA, "組込みソフトウェア開発向けコーディング作法ガイド [C++言語版] Ver. 2.0", 2016/10.
・独立行政法人 情報処理推進機構, "安全なウェブサイトの作り方," .
・JPCERT/CC, "CERT C コーディングスタンダード," .
・IPA, "情報処理安全確保支援士試験(レベル4)シラバス," 2019.
・"情報処理安全確保支援士 倫理綱領," 2019.
科目の位置づけ(学習・教育目標との対応)
本科目は情報セキュリティの発展科目にあたり、実際の脆弱性やセキュアプログラミングの事例を通して情報セキュリティを兼ね備えたソフトウェアを構築する手法を学ぶものである。
履修登録前の準備
実習を行うのでノートPCを持参すること。
履修にあたっては「データサイエンスプログラミングⅠ」「データサイエンスプログラミングⅡ」「データサイエンスプログラミングⅢ」「データベース」「情報セキュリティ基礎」「ソフトウェア工学」を履修している(履修中も含む)こと。
プログラミングについてはC言語によるポインタを用いたプログラミングができること、ウェブアプリケーション構築のための基礎的な知識(Java, PHP, Python, SQL, HTML, CSS など)を用いてウェブアプリケーションを作った経験があることが望ましい。