見出し画像

CS-6035: Introduction to Information Security振り返り

OMSCSの2023年の秋学期が終了した。タイトルの通り、今期受講したCS-6035: Introduction to Information Securityについて振り返りたい。


授業概要

Introduction to Information Security is a graduate-level introductory course in information security. It teaches the basic concepts and principles of information security and the fundamental approaches to secure computers and networks. Its main topics include: security basics; security management and risk assessment; software security; operating systems security; database security; cryptography algorithms and protocols; network authentication and secure network applications; malicious malware; network threats and defenses; web security; mobile security; legal and ethical issues; and privacy.

https://omscs.gatech.edu/cs-6035-introduction-to-information-security

上記シラバスに記載の通り、大学院入門レベルの情報セキュリティについて学ぶ授業だ。授業の評価や難易度を確認できるサイトOMS Centralでは、Difficultyが2.53/5.00となっており、比較的易しめな授業と言えそうだ。

授業やグループワークは一切なく、完全に個人課題の点数のみによって成績が決まる。今期は8つの課題(うち1つは加点のための任意課題)を約2週間に1つのペースで進めていき、最終的にそれぞれの課題の点数の合計(Max102.5%、うち2.5%は任意課題)で成績が決まる。

課題の内容

1. Man in the Middle (weight: 13%)

Man in the Middleとは、通信を行う二者間に第三者が割り込み、通信を盗聴したり、通信に介入したりする攻撃手法。Wiresharkとpysharkを用いて、PCAPファイルを解析して、攻撃内容を特定する授業であった。PCAPファイルの読み方や、Reflection attack攻撃を解析する実装方法などを課題を通して学ぶことができた。

2. Database Security (weight: 13%)

データベースに関する脆弱性について学ぶ課題であった。Inference Attackという、データベースに直接アクセスすることなく、些細な情報から、より秘匿性の高い情報を推論によって導き出す手法であったり、SQL injectionといった既に馴染みのある攻撃手法などについて学んだ。SQL injectionの概念自体は理解していたつもりだが、何重にもSanitizationが施された仮想のウェブサイトに攻撃を仕掛ける過程を通して、SQL injectionを防ぐためにどのような処理を施すべきかについても深く理解できた。

3. Malware Analysis (weight: 13%)

この課題では、Joe Sandboxというツールを用いて疑わしいアクティビティを検知し、レポートする方法があり、このレポートからマルウェア攻撃を特定したり、Malheurという機械学習ツールを使って、マルウェア行動を分析する手法などを学んだ。

4. API Security (weight: 13%)

APIの脆弱性に関する課題であり、事前に用意されたSwagger UI上にドキュメントが用意されたAPIに対して攻撃を仕掛ける。既知の内容も多かったが、JWT(JSON web token)の仕組みと、またその仕組みに対する脅威については新たな学びがあった。

5. RSA Cryptography (weight: 16%)

この課題では、単純なRSA暗号化や復号化の実装から始まり、脆弱性に対する攻撃(Weak Key Attack、Parity Oracle Attack、Broadcast Attackなど)を実装した。数学の理解が求められる課題(例えば、Chinese Remainder Theoremを用いた処理の高速化など)も多く、そちらに対する理解を深めることができたのも良かった。

6. Binary Exploitation (weight: 16%)

この課題では、C言語で書かれたプログラムにBuffer Overflow (過剰なデータをバッファに書き込むことで隣接するメモリを上書きし、プログラムの挙動を変更する)という攻撃手法について学んだ。GDBを使ってデバッグする方法やpwntoolsというフレームワークの使い方について学んだ。また、これまで親しみのなかったCやアセンブリなどの低レイヤの言語についても理解が深めることができた。

7. Log4Shell (weight: 16%)

2021年12月に発見され、大騒ぎになっていたLog4jに関する脆弱性(log4shellと呼ばれる)を扱った。こちらも仮想のサーバーに対して攻撃を仕掛けることで、なぜ問題になっていたのか、またどのようにして攻撃できるのかについて学んだ。実際に騒ぎを目の当たりにしていたこともあり、非常に興味深く取り組んだ。

8. Machine Learning (weight: 2.5%)

こちらは任意課題かつ既にAが取得できており、途中までしか実施しなかったため割愛。

コミュニケーション方法

課題を通して出てきた疑問は、Ed Discussionという掲示板サイトか、ほぼ毎週実施されるオフィスアワーを通して質問し回答してもらうことができる。特にEd Discussionは非常に良い情報源で、何度も助けられた。TAからの回答は素早く、生徒同士の助け合い(答えを教えるなどは禁止)もあり、非常に活発なやり取りがあった。

成績

全部でA-Fまで5段階あり、最終的な得点が90点以上がA評価、80-89.99%がB評価、70-79.99%がC評価(以下割愛)となる。
ちなみに、C以上で卒業単位にカウントでき、Electiveの単位にカウントするためには、B以上を取得する必要があった。最終的に、93.32%でAを取得することができた。

振り返り

学びに繋がるように良くデザインされた課題と、先述のEd Discussionのサポート環境のおかげもあり、非常に快適な学習体験だった。

ただ、難易度としてはやはり易しめな印象で、より深く学びたい場合には物足りなく感じるかもしれない。個人的には、プログラムに慣れるという意味では、丁度良い難易度だったと感じている。

来期以降は2つ授業を履修したり、授業やグループワークや試験なども入ってくるため、今期より時間の使い方や、効率的な進め方を意識していく必要がある。特に、今期あまり活用できなかったオフィスアワーについては、来期は積極的に活用していきたい。

この記事が気に入ったらサポートをしてみませんか?