シラバス参照

授業情報/Class Information

科目一覧へ戻る 2025/03/27 現在

基本情報/Basic Information

遠隔授業(授業回数全体の半分以上)の場合は、科目名の先頭に◆が付加されています(2023年度以降)
開講科目名
/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 Information

教員名
/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使用

科目一覧へ戻る