95031
ソフトウェアセキュリティ
SOFTWARE SECURITY


2 単位
実施形態 完全オンライン
開催日程 秋学期 月曜日4時限,月曜日5時限
担当教員 植原 啓介(ウエハラ ケイスケ)
関連科目
開講場所 SFC
授業形態 講義、実習・演習
履修者制限
履修条件

Knowledge of C Language、SQL、JS、Operating System

C言語、SQL、JS、OSに関する知識

使用言語 英語
連絡先 kei@sfc.keio.ac.jp
授業ホームページ
同一科目

学生が利用する予定機材/ソフト等

設置学部・研究科 政策・メディア研究科
大学院プロジェクト名

大学院プロジェクトサブメンバー

ゲストスピーカーの人数 0
履修選抜・課題タイプ=テキスト登録可 false
履修選抜・選抜課題タイプ=ファイル登録可 false
GIGAサティフィケート対象
最終更新日 2020/07/22 09:25:09

科目概要

This class will be held as a part of the Cyber Security course. Of course you can take this class even you don't join to the Cyber Security course. In this class, we investigate how to secure your software. It might be bug of library, your coding skill. Penetration testing is important too.

In this class, students are assumed to join to Journal club. Students must read papers and make a presentation at the class.

本講義は大学院サイバーセキュリティコースにおける選択科目の一つとして提供され、サイバーセキュリティにおける重要な課題である安全なソフトウェアの開発に関する知識と実践的能力を身につけることを目的としている。サイバーセキュリティの問題の発生原因の大きな要素として脆弱なソフトウェアやシステムの利用が挙げられる。今後のソフトウェア開発においてはそのような脆弱性を生まない開発手法がますます重要なものとなる。安全なソフトウェアの開発は様々な場面で必要な能力であるためサイバーセキュリティコースを選択していない者でも履修可能である。
本講義では安全なソフトウェアの開発に関する各トピックに関する講義と、関連する論文の輪講により実施する。
本講義は社会で広く求められている安全なソフトウェアの開発に関する知識・技術に関する能力を身につける機会を提供することを目的として設置する。

授業シラバス

主題と目標/授業の手法など

This class will be held as a part of the Cyber Security course. Of course you can take this class even you don't join to the Cyber Security course. In this class, we investigate how to secure your software. It might be bug of library, your coding skill. Penetration testing is important too.

In this class, students are assumed to join to Journal club. Students must read papers and make a presentation at the class.

本講義は大学院サイバーセキュリティコースにおける選択科目の一つとして提供され、サイバーセキュリティにおける重要な課題である安全なソフトウェアの開発に関する知識と実践的能力を身につけることを目的としている。サイバーセキュリティの問題の発生原因の大きな要素として脆弱なソフトウェアやシステムの利用が挙げられる。今後のソフトウェア開発においてはそのような脆弱性を生まない開発手法がますます重要なものとなる。安全なソフトウェアの開発は様々な場面で必要な能力であるためサイバーセキュリティコースを選択していない者でも履修可能である。
本講義では安全なソフトウェアの開発に関する講義と、関連する論文の輪講により実施する。

教材・参考文献

Microsoft SDL Homepage (https://www.microsoft.com/en-us/securityengineering/sdl/resources)
Jon Erickson, "Hacking: The Art of Exploitation, 2nd Edition (English Edition) ", No Starch Press, 2008 (ISBN 978-1593271442)
Michael Howard, David LeBlanc, John Viega, "24 Deadly Sins of Software Security: Programming Flaws and How to Fix Them", McGraw-Hill Education, 2009 (ISBN 978-0071626750)
Adam Shostack, "Threat Modeling: Designing for Security", Wiley, 2014 (978-1118809990)
Gray McGraw, "SOFTWARE SECURITY - Building Security In -", Addison Wesley, 2006 (ISBN 978-0321356703)

提出課題・試験・成績評価の方法など

Presentation and discussion(70%)、Final Report(30%)

授業内での発表や議論(70%)、最終レポート(30%)

履修上の注意

If you are not familiar with Computer Technology, it is very hard to take this class. You will be requested to write programs in C-Language, JS, to use SQL. In addition, you need to use CUI.
You will be given a reading list before more than one week of the class. Please read it. At the class, we'll discuss them.

情報技術に明るくないとこの授業をとるのは難しいと思います。授業の中では、CやJSを使ってプログラムを書いてもらったり、SQLを書いてもらったりします。また、CUIにも慣れている必要があります。
授業の1週間以上前に文献を指示します。授業までに読んでおいてください。授業ではそれについてディスカッションをします。

授業計画

第1回 Security Development Lifecycle (1)
[Security Development Lifecycle (1)]

In this class, illustrate the core concepts of the Microsoft Security Development Lifecycle (SDL) and to discuss the individual security activities that should be performed in order to claim compliance with the SDL process.

マイクロソフトのセキュリティ開発ライフサイクル (SDL) の基本概念を紹介すると共に、SDL プロセスに準拠するために実行する必要のあるセキュリティ アクティビティについて個別に説明します。


第2回 Security Development Lifecycle (2)
[Security Development Lifecycle (2)]

Same with above

同上


第3回 XSS (1)
[XSS (1)]

Cross-site scripting attacks, also known as XSS, have become the most prevalent and dangerous Web-application security issue launched against Internet users. XSS vulnerabilities occur whenever an application takes data that originated from a user and sends it to a Web browser without first properly validating or encoding that content. XSS allows attackers to execute scripts in the victim’s browser, which can hijack user sessions, deface Web sites, port scan internal networks, conduct phishing attacks, and take over the user’s browser using scripting malware.

クロスサイト スクリプティング攻撃 (XSS ともいう) は、インターネット ユーザーに対してしかけられる攻撃で、最も蔓延し、最も危険な Web アプリケーションのセキュリティ上の問題になっています。XSS の脆弱性は、アプリケーションがユーザーからのデータを取得し、その内容を適切に検証またはエンコードせずに Web ブラウザーに送信した場合に発生します。攻撃者は XSS を利用してユーザーのブラウザーでスクリプトを実行し、ユーザー セッションのハイジャックや Web サイトの改ざん、内部ネットワークのポート スキャン、フィッシング攻撃を行ったり、スクリプティング マルウェアを使ってユーザーのブラウザーを乗っ取ることができます。


第4回 XSS (2)
[XSS (2)]

Same with above. You will be requested to write program in JS.

同上。JSを使った実習を行います。実際にプログラムを書いてもらいます。


第5回 SQL Injection (1)
[SQL Injection (1)]

SQL injection attacks have become one of the most common and dangerous Web application security issues on the Internet. SQL injection vulnerabilities occur when an application takes user content data and uses it to construct SQL (Structured Query Language) statements without first properly validating or sanitizing that content. SQL injection attacks take advantage of SQL injection vulnerabilities to steal sensitive data from the database, modify or destroy the stolen data, execute administrative commands on the database, or in some cases take control of the whole machine. In recent years, SQL injection attacks have been used to store malware in databases and then distribute them through Web sites that are hosted on these compromised databases.

SQL インジェクション攻撃は、インターネット上で最も一般的で、最も危険な Web アプリケーションのセキュリティ上の問題の 1 つになっています。SQL インジェクションの脆弱性が発生するのは、アプリケーションが、先に適切にコンテンツを検証またはサニタイズすることなく、ユーザー コンテンツ データを取得し、それを使用して SQL (Structured Query Language) ステートメントを構築する場合です。SQL インジェクション攻撃では、SQL インジェクションの脆弱性を利用して、データベースからの機密データの盗用、盗用したデータの変更や破壊、データベース上での管理コマンドの実行、場合によってはマシン全体の制御を行います。近年、SQL インジェクション攻撃は、データベースにマルウェアを格納し、これらの侵害されたデータベース上でホストされる Web サイトを通じてマルウェアをばらまくために使用されています。


第6回 SQL Injection (2)
[SQL Injection (2)]

Same with above. You will be requested to write SQL query.

同上。SQLを使った実習を行います。


第7回 Exposure of Sensitive Information (1)
[Exposure of Sensitive Information (1)]

Sensitive, confidential, or personally identifiable information (PII) can be exposed through a variety of paths. This class covers how to identify and help prevent vulnerabilities caused by exposure of sensitive information in software for sensitive data at rest (for example, in a database) or when it is transmitted across a network.

機密情報や個人を特定できる情報 (PII) はさまざまな経路で漏えいされる可能性があります。本講義では、機密データが保管中 (データベース内など) であるかネットワーク経由で送信される際に、ソフトウェア内での機密情報の漏えいによって生じる脆弱性を特定し、防止する方法について説明します。


第8回 Exposure of Sensitive Information (1)
[Exposure of Sensitive Information (1)]

Same with above

同上


第9回 Buffer overflow (1)
[Buffer overflow (1)]

Buffer overflow is most basic threat in software. Cracker usually attack this threat. In this class we'll learn the mechanisms of Buffer overflow and take experience of it.

バッファオーバーフローは、ソフトウェアにおける最も基本的な脅威です。 攻撃者は脅威を使ってクラッキングすることが多くあります。 この授業では、バッファオーバーフローの仕組みを学び、実際に体験してみまます。


第10回 Buffer overflow (2)
[Buffer overflow (1)]

Same with above. You will be requested to write C language.

同上. C言語を使った実習を行います。


第11回 Software Penetration Testing
[Software Penetration Testing]

Tests to identify risks hidden in the whole system by applying load or attacking. It is the reason why software must be tested before launch. In this class the reason and method of penetration test will be introduced.

不可をかけたり攻撃を仕掛けたりすることによって、セキュリティリスクを明らかにする手法について学ぶ。


第12回 Conclusion
[Conclusion]

Software security will be discussed and summarized for the entire class.

ソフトウェアセキュリティについて議論し、全授業のまとめとする。


第13回 Threat Modeling (Finding Threats)
[Threat Modeling (Finding Threats)]

Please read following book.
Adam Shostack, "Threat Modeling: Designing for Security", Wiley, 2014 (978-1118809990)

Please read following book.
Adam Shostack, "Threat Modeling: Designing for Security", Wiley, 2014 (978-1118809990)


第14回 Threat Modeling (Managing and Addressing Threats)
[Threat Modeling (Managing and Addressing Threats)]

Please read following book.
Adam Shostack, "Threat Modeling: Designing for Security", Wiley, 2014 (978-1118809990)

Please read following book.
Adam Shostack, "Threat Modeling: Designing for Security", Wiley, 2014 (978-1118809990)


第15回 Threat Modeling (Threat Modeling in Technologies and Tricky Areas)
[Threat Modeling (Threat Modeling in Technologies and Tricky Areas)]

Please read following book.
Adam Shostack, "Threat Modeling: Designing for Security", Wiley, 2014 (978-1118809990)

Please read following book.
Adam Shostack, "Threat Modeling: Designing for Security", Wiley, 2014 (978-1118809990)


15回目に相当するその他の授業計画

Report

レポート