hacker101_Introductionの視聴メモ

Hacker101のNEWCOMERS PLAYLISTの一つである"Introduction"の視聴メモを自分のために作成する。

何が学べるのか

本クラスを受けることで、以下を学ぶことができる。
・Web Securityの脆弱性の特定、エクスプロイト、修復をどのように実施するか(難解なバグも対象)
・適切な暗号の取扱い
・セキュリティの観点によるアプリケーションデザインやレビュー
・バグバウンティやセキュリティコンサルタントとしての仕事の仕方
・などなど

おすすめの環境

Javaが動く環境であればOSは問わない。一方、例えばPythonなら'requests' packageがWebリクエストを処理するのにおすすめ。

HTTP(S)を監視したり、通信を遮って受け取り、中身を修正して送信することでWebアプリケーションへの脆弱性診断を実施するためにBurp Proxyを利用。ブラウザはFirefoxを推奨。

Breaker Mindset

攻撃者よりも早く脆弱性を見つける必要があるため、攻撃者の視点を身につける必要がある。

攻撃者と防御側とではゲームが大きく異なる。防御側は全てのバグを見つける必要があるが、攻撃側は少しのバグを見つけるだけでも目的を達成できる。これは、攻撃者が常に有利であることを意味している。

攻撃者は全てのバグを見つける必要はない。これは脆弱性診断を行う上で非常に重要な考え方である。この考えは、調査を行う際には、よりクリティカルな影響がある箇所を集中的に診断することが重要であることを意味している。

アプリケーション診断をする際には、アプリケーションの機能を簡単に整理した後、攻撃者であればどうするか、何が攻撃者にとってのゴールかを考える。例えばそれは、クレジットカード情報を盗むことや、サーバーのデータ削除や偽造データの挿入である。

続いて、どのエリアを攻撃することがより重要な情報を得ることができるのかに応じて、攻撃の優先度をつける。

報告

以下の項目を含んだ報告書を作成すること。

【タイトル】例えば「Reflected XSS in profiles」
【Severity(重大度)】ビジネスインパクトによってクラス分け。例えば、潜在的なユーザデータ漏洩であればHigh、ビジネスに影響する可能性が高ければCritical
【説明】脆弱性が何かを簡単に説明
【再現方法】どのようにすればバグが再現できるか、できればPoC付きで示す。
【影響】脆弱性を利用した結果何が起こり得るのかを示す。
【Mitigation(緩和策)】修正方法を示す。
【影響アセット】一般的には影響するURLのリスト

最初のバグ

不自然だが、ありがちな例として、phpのコードを示す(動画の該当箇所へのリンク)。

(Reflected XSS(rXSS)を試している。日本語ではIPAの説明がある。)

次のセッション

ブラウザやWebの一般的な挙動に入っていく。さらにCross Site Request Forgery(CSRF)を学ぶ。

これから、プロキシを設定し、いくつかのサイトを見た際にどのような通信が流れているかを見てみてください。

自分の感想

Breaker Mindsetから、脆弱性診断は単なる単体・ユニットテストとは異なり、優先度をつけて取り組むということが重要だと思いました。

あとは、英語が予想よりきつかったです。今回の動画、イントロということで7分くらいだったのですが、視聴+英語の理解+メモ作成で1時間くらいかかってる気がします。次のThe Web In Depthは28分あるので240分=4時間かかりそうですね。

rXSSのIPA資料のように、日本語の参考資料も探してリンクを貼ることで、あとで見返しやすいノートを作成していきたいです。

ついでに、調べた英単語も一緒に載せます。

how to operate as ~:~としての振る舞い
falsify:偽造
contrived example:不自然な例

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