理工学部Faculty of Science and Engineering
COT300XE(計算基盤 / Computing technologies 300)セキュア・プログラミングSecure programming
斉藤 典明Noriaki SAITO
授業コードなどClass code etc
学部・研究科Faculty/Graduate school | 理工学部Faculty of Science and Engineering |
添付ファイル名Attached documents | |
年度Year | 2022 |
授業コードClass code | H6188 |
旧授業コードPrevious Class code | |
旧科目名Previous Class title | |
開講時期Term | 春学期授業/Spring |
曜日・時限Day/Period | 金2/Fri.2 |
科目種別Class Type | |
キャンパスCampus | 小金井 |
教室名称Classroom name | 各学部・研究科等の時間割等で確認 |
配当年次Grade | |
単位数Credit(s) | |
備考(履修条件等)Notes | |
他学部公開科目Open Program | |
他学部公開(履修条件等)Open Program (Notes) | |
グローバル・オープン科目Global Open Program | |
成績優秀者の他学部科目履修制度対象Interdepartmental class taking system for Academic Achievers | |
成績優秀者の他学部科目履修(履修条件等)Interdepartmental class taking system for Academic Achievers (Notes) | |
実務経験のある教員による授業科目Class taught by instructors with practical experience | |
SDGsCPSDGs CP | |
アーバンデザインCPUrban Design CP | |
ダイバーシティCPDiversity CP | |
未来教室CPLearning for the Future CP | |
カーボンニュートラルCPCarbon Neutral CP | |
千代田コンソ単位互換提供(他大学向け)Chiyoda Campus Consortium | |
カテゴリー<理工学部>Category |
応用情報工学科 学科専門科目 |
すべて開くShow all
すべて閉じるHide All
Outline (in English)
- Course outline
Many functions at the current society has been built by using many and complexity software.
So,if they have some vulnerabilities of the software to cyber attacks or some incidents,our current society may be enormous damage.
To solve such problem, this course lecture how to make secure software.
- Learning Objectives
By the end of the course, students should be able to do the followings:
It will be able to know the vulnerabilities of a software.
It will be able to know secure programing method and get its skills.
- Learning activities outside of classroom
Students will be expected to have completed the required assignments after lesson. Your study time will be more than four hours for a class.
- Grading Criteria /Policies
Your overall grade in the class will be decided based on the following
Usual 14 reports: 90%, Final report (it is mandatory): 10%
授業で使用する言語Default language used in class
日本語 / Japanese
授業の概要と目的(何を学ぶか)Outline and objectives
現在の社会は、様々なソフトウェアによって成り立っています。このためソフトウェアの不具合やサイバー攻撃によってソフトウェアが正常に動作しなくなると社会への影響は甚大なものになります。社会基盤となりうるセキュアなソフトウェアを開発するための手法について学びます。
到達目標Goal
セキュアなソフトウェアの開発方法と意義について理解し、ソフトウェア開発で必要となる知識と技能を習得する。
この授業を履修することで学部等のディプロマポリシーに示されたどの能力を習得することができるか(該当授業科目と学位授与方針に明示された学習成果との関連)Which item of the diploma policy will be obtained by taking this class?
ディプロマポリシーのうち、「DP1」と「DP2」と「DP4」に関連
授業で使用する言語Default language used in class
日本語 / Japanese
授業の進め方と方法Method(s)(学期の途中で変更になる場合には、別途提示します。 /If the Method(s) is changed, we will announce the details of any changes. )
・セキュアなソフトウェアの考え方と実装方法について資料を資料を用いて説明する。実際の応用シーンを想定した演習(複数回)と試験の代わりの最終課題を提示する。期間中にこれらの演習を行い、基本技能を習得する。
・講義に対する連絡事項、課題の提出および課題に対するフォードバック、連絡事項は、学習支援システム経由で実施する。
・2022年度は教室での実施を予定しているが、万が一、オンラインで実施の場合は、講義はYoutubeによるオンデマンド動画で実施し、正規の講義時間帯にZoomによる質疑時間を設ける。
アクティブラーニング(グループディスカッション、ディベート等)の実施Active learning in class (Group discussion, Debate.etc.)
なし / No
フィールドワーク(学外での実習等)の実施Fieldwork in class
なし / No
授業計画Schedule
授業形態/methods of teaching:対面/face to face
※各回の授業形態は予定です。教員の指示に従ってください。
第1回[対面/face to face]:ガイダンス・セキュアプログラミングの必要性
授業の目的、授業計画、評価方法の説明、様々な立場におけるセキュア・プログラミングの意義
第2回[対面/face to face]:サイバー攻撃と脆弱性情報の所在
サイバー攻撃の現状と脆弱性情報についての解説
第3回[対面/face to face]:ソフトウェア開発における課題
ソフトウェア開発におけるセキュアなプログラミングの位置づけ
第4回[対面/face to face]:オペレーティングシステムに関する補足
セキュリティに関わるオペレーティングシステムの動作
第5回[対面/face to face]:設計における課題
設計フェーズにおけるセキュアプログラミングに向けての留意点
第6回[対面/face to face]:実装における課題
実装フェーズにおけるセキュアプログラミングに向けての留意点
第7回[対面/face to face]:運用における課題
運用フェーズにおけるセキュアプログラミングに向けての留意点
第8回[対面/face to face]:演習準備
演習実施環境の構築
第9回[対面/face to face]:演習1:Webプログラミングにおける課題
Webプログラミングにおける課題とコーディング手法
第10回[対面/face to face]:演習2:Webプログラミングからの考察
Webサーバのログデータからの考察
1第11回[対面/face to face]:演習3:SQLにおける課題
SQL利用における課題とコーディング手法
第12回[対面/face to face]:演習4:C言語における課題
C言語開発における課題とコーディング手法
第13回[対面/face to face]:セキュリティ検査とセキュリティ対策
ソフトウェアのセキュリティ観点での検査手法と事後的な対策手法
第14回[対面/face to face]:スキルアップに向けて・まとめ
セキュアプログラミングの今後とスキルアップのための情報
授業時間外の学習(準備学習・復習・宿題等)Work to be done outside of class (preparation, etc.)
【本授業の準備・復習等の授業時間外学習は、4時間を標準とする】
授業で出された課題について自宅等で実習を行う。
テキスト(教科書)Textbooks
配布資料による。
参考書References
・セキュアプログラミング Mark G. Graff、Kenneth R. van Wyk著 新井悠、一瀬小夜訳 オライリージャパン ISBN4-87311-175-7(絶版しているのでエッセンスについては講義で紹介する)
・サイバー攻撃 中島明日香著 ブルーバックス ISBN 978-4-06-502045-6
・IPA セキュア・プログラミング講座 https://www.ipa.go.jp/security/awareness/vendor/programming/
成績評価の方法と基準Grading criteria
・講義中に出される課題(14個で合計90点満点)と最終課題(10点満点)の合計が60点以上で合格。
・教室で実施の場合は、出席状況や授業への取り組み姿勢を平常点として考慮する。
・オンラインで実施の場合は、質疑や課題提出タイミングなどの授業への取り組み姿勢を平常点として考慮する。
学生の意見等からの気づきChanges following student comments
本講義で得た知識は悪用しないことが必須。
学生が準備すべき機器他Equipment student needs to prepare
・本講義で得た知識は悪用しないことが必須。
・いくつかの課題は演習としてPCを使用予定。
・課題については2年次科目のオペレーティングシステム演習を履修していることを意識したものです。履修していなかった場合は、PC上にLinuxをインストールしてください。実施方法は講義で説明します。
その他の重要事項Others
オンラインでの開講となった場合、オンライン授業の方法や授業計画の変更、成績評価方法の変更などについては、学習支援システムでその都度提示する。担当教員から学習支援システムを通じた連絡がないか、日ごろからよく確認するようにしてください。