筆者はWebセキュリティを学ぶ過程で、関連する知識が膨大であり、その多くが比較的散在していることを痛感しました。明確な道筋がなければ、学習に不必要な負担がかかります。そこで、Webセキュリティについて浅い理解を得た後、いくつかの知識やアイデアを整理して記録し、このノートを作成しました。これから入門するサイバーセキュリティ愛好家の皆様に、少しでも役立てば幸いです。
始める前に明確にすべきことは、Webセキュリティとは何かということです。率直な定義としては、Webセキュリティとは、ウェブサイト、ネットワークアプリケーション、ネットワークサービスを含む一連のセキュリティ関連の内容であり、言い換えれば、Webセキュリティはアプリケーション層のセキュリティ、特にネットワークに関連する内容に焦点を当てています。Webセキュリティで学ぶべき主な内容は、ネットワークプロトコル自体、ネットワークアプリケーションの特性とそれに対応するセキュリティ問題、各種ツールの使用方法です。実際、これらの分野は非常に細かく複雑であり、以下のような論理で関連内容を分解し、再編成してみました。
歴史に鑑みれば盛衰を知ることができます。まず知るべきは分野の発展の歴史です。なぜ現在のWebセキュリティ分野がこのようになっているのか、各研究がどの方向に向かって発展しているのかを理解するには、Webアプリケーション技術とネットワーク攻防技術の発展と進化の歴史を理解する必要があります。これがノートの最初の部分であり、Web技術の発展と進化、セキュリティ分野の基本常識について説明しています。
Webセキュリティの歴史について大まかに理解したら、コンピュータネットワークの基礎知識を学び始めることができます。これが第2部であり、コンピュータネットワークの基礎知識の一部を紹介しています。ネットワークデータベースやWebサーバーなどの技術分野は多岐にわたり、進化も速いため、本稿ではネットワークプロトコルのみを紹介し、ネットワークアプリケーションについては省略しています。実際には、さまざまなプログラミング言語、Webアプリケーションフレームワーク、ネットワークサービス、オペレーティングシステムの特性について理解しておくべきです。
ある程度の基礎ができたら、より詳細な攻防内容、例えば特定の脆弱性タイプの研究、特定の言語やアプリケーションの特性とそれに対応するセキュリティ問題に注目することができます。これが第3部です。この部分では、一般的なペネトレーションテストの順序に従って、情報収集、一般的なWeb脆弱性、一般的な言語とフレームワーク、内部ネットワークペネトレーションのテクニックなどについて簡単に説明しています。ペネトレーションテストを学び始めると、通常この部分に触れることになります。 同時に、クラウドがWeb世界の重要な部分になりつつあります。パブリッククラウドを使用した軽量サービスの構築、プライベートクラウドなど、コンテナなどの技術はますます重要になっています。
第4部では防御の視点に戻り、セキュリティチームの構築、脅威インテリジェンスとリスク管理などの観点から説明し、ハニーポットやトレーサビリティなどのより詳細な技術内容についても一定の説明を加えています。
最後はより具体的な応用で、ツールの紹介と使用が中心です。この部分では、いくつかのツールとリソースのリストを推奨し、まだ分類されていない内容の一部もアーカイブしています。
以上が全体の構成です。実際の学習では、特定のポイントから始めて螺旋的に学習することもできます。全体としても、ハンドブックとしても利用できます。
筆者は浅学であり、時間も限られているため、ノートを整理する過程で誤りや不完全な部分があることは避けられません。徐々に修正・補完しています。もし抜けや誤りがあれば、読者の皆様はIssueやPRでご指摘いただければ幸いです。
ノートを作成する過程で多くの資料を参考・引用しました。各章の末尾にリンクを残しています。記事の著者の皆様に感謝します。ノートのオンラインバージョンはこちらからご覧いただけます。
git clone https://github.com/LyleMi/Learn-Web-Hacking.git
cd Learn-Web-Hacking
pip install sphinx sphinx-rtd-theme
make html
ご質問、ご意見、ご提案があれば、IssueやPRでお知らせください。感謝いたします。
すべての貢献者に感謝します。
本プロジェクトはCC0 1.0ライセンスの下で公開されています。全文はこちらをご覧ください。
ノートの内容はオープンソース情報から収集・整理されたものであり、言及されている技術は学習や許可されたテストなどの合法的な目的でのみ使用されます。公共の安全のため、一部の内容は掲載されていません。読者の皆様は、「中華人民共和国ネットワーク安全法」、「中華人民共和国コンピュータソフトウェア保護条例」などの法律を遵守し、許可されていない対象に対して一切のテストを行わないでください。