![]() ![]() |
科目一覧へ戻る | 2025/03/27 現在 |
開講科目名 /Course |
計算機システム特論/Advanced Computer Systems |
---|---|
時間割コード /Course Code |
S2201477_S6 |
開講所属 /Course Offered by |
システム工学研究科/Graduate School of Systems Engineering |
ターム・学期 /Term・Semester |
2025年度/Academic Year 第3クォーター/3Q |
曜限 /Day, Period |
木/Thu 2 |
開講区分 /Semester offered |
後期/the latter term |
単位数 /Credits |
1.0 |
学年 /Year |
1,2 |
主担当教員 /Main Instructor |
菅間 幸司 |
科目区分 /Course Group |
_ |
授業形態 /Lecture Form |
|
教室 /Classroom |
北1号館A204/北1号館A204 |
開講形態 /Course Format |
|
ディプロマポリシー情報 /Diploma Policy |
教員名 /Instructor |
教員所属名 /Affiliation |
---|---|
菅間 幸司 | システム工学部(教員) |
授業の概要・ねらい /Course Aims |
セキュリティホールを持つ脆弱なシステムを仮想環境上に作成し,そのシステムに対する攻撃,および,その攻撃に対する防御を,実際に体験します.この演習を通じて,プログラムの動作原理,メモリの使われ方,関数呼び出しの仕組み等の,計算機システムについての理解を深めます. |
---|---|
到達目標 /Course Objectives |
学部時代に学習した計算機システムに関する知識を再確認し,さらに以下の項目について理解を深める - CPUの仕組み(レジスタの使われ方,等) - メモリの動作原理(仮想記憶,ユーザ空間とカーネル空間,等) - 機械語,アセンブリ言語(これらの言語を覚えるのではなく,CPUがどのように命令を解釈し実行するのか,を理解する) - 関数呼び出しの仕組み(レジスタの使われ方,スタックフレームの構造,等) - OSの動作・操作 など |
成績評価の方法・基準 /Grading Policies/Criteria |
期末レポート(100%) ただし,欠席が4回以上の場合は,成績評価の対象としない.(毎回の授業で出席確認課題を課す.講義に出席していても,課題の提出がない場合,または,まともに課題に取り組んでいないと判断される場合(白紙回答など)には,欠席扱いとなることがあり得る) |
教科書 /Textbook |
記載事項なし(配布資料による) |
参考書・参考文献 /Reference Book |
記載事項なし |
履修上の注意 ・メッセージ /Notice for Students |
情報セキュリティに関する授業ではありません.あくまで,計算機システムをより深く理解することが目的であり,そのための題材として,(学生に興味を持ってもらえることを期待して,)セキュリティ関連のトピックを扱うことにしています. |
履修する上で必要な事項 /Prerequisite |
- 充電済みのPCとイヤホンを持参してください. (毎回の講義の後半で行う演習は,動画を視聴しつつ取り組んでいただきます.) ※Windows のノートPCを推奨します. ※MシリーズのMacbookなど,ArmベースのCPUを搭載したPCでは演習を行えない場合があります. - C言語の基本的な文法を理解していること. ※適宜授業内で補足しますので,以前勉強したけど忘れてしまった,というレベルの方でも大丈夫です. - Linux の簡単なコマンド操作(ディレクトリの移動など)ができること. ※これも適宜補足しますので,さほど慣れていなくても大丈夫です. |
履修を推奨する関連科目 /Related Courses |
計算機システム・OS(学部授業) |
授業時間外学修についての指示 /Instructions for studying outside class hours |
毎回の授業後に3時間程度の復習を行なってください. |
その他連絡事項 /Other messages |
記載事項なし |
授業理解を深める方法 /How to deepen your understanding of classes |
毎回の講義で演習課題を課し,次回の講義でその解説を行う. 「アクティブ・ラーニング」実施要項⑪ |
オフィスアワー /Office Hours |
月曜3,4コマ A515 |
科目ナンバリング /Course Numbering |
|
実務経験 /Practical Experience |
無 |
No. | 回(日時) /Time (date and time) |
主題と位置付け /Subjects and instructor's position |
学習方法と内容 /Methods and contents |
備考(担当) /Notes |
---|---|---|---|---|
1 | 1(10/2) | 本講義全体の概要と環境構築 | 概要の説明,演習のための環境構築 | 菅間/PC使用 |
2 | 2(10/9) | C言語の復習 | 基本文法,ポインタ,等 | 菅間/PC使用 |
3 | 3(10/16) | デバッガ | gdbの使い方 | 菅間/PC使用 |
4 | 4(10/23) | プログラムの動作原理 | 主にメモリの使われ方の解説 | 菅間/PC使用 |
5 | 5(10/30) | アセンブリ | Hello, world! をアセンブリで | 菅間/PC使用 |
6 | 6(11/13) | シェルコード1 | シェルコードの概要と作成方法① | 菅間/PC使用 |
7 | 7(11/20) | シェルコード2 | シェルコードの概要と作成方法② (前回の演習の続き) |
菅間/PC使用 |
8 | 8(11/27) | 脆弱なプログラム1 | 脆弱なプログラムの作成 | 菅間/PC使用 |
9 | 9(12/11) | 脆弱なプログラム2 | 脆弱なプログラムの作成 (前回の演習の続き) |
菅間/PC使用 |
10 | 10(12/18) | 脆弱なプログラムに対する攻撃1 | バッファオーバーフロー | 菅間/PC使用 |
11 | 11(12/25) | 脆弱なプログラムに対する攻撃2 | シェルコード生成と実行 | 菅間/PC使用 |
12 | 12(1/8) | 脆弱なプログラムに対する攻撃3 | シェルコード生成と実行 (前回の演習の続き) |
菅間/PC使用 |
13 | 13(1/15) | 防御方法 | スタック保護等によるシェルコード対策 | 菅間/PC使用 |
14 | 14(1/22) | セキュアなプログラム | 脆弱なプログラムをセキュアなプログラムに書き換える方法 | 菅間/PC使用 |
15 | 15(1/29) | まとめ | 全体の振り返りとまとめ | 菅間/PC使用 |