2023 年の最新のネットワーク セキュリティ学習の方向性とルート (完全版)

最近、クラスメートから、ネットワーク セキュリティの学習ルートは何ですか?と質問されました。

それでは早速、ネットワーク セキュリティの方向性、それらの関係と相違点、それぞれについて何を学ぶ必要があるのか​​を図で見てみましょう。

この技術カテゴリのサークルでは、仕事は主に次の 3 つの方向に分類されます。

セキュリティ
研究開発 セキュリティ研究: バイナリ方向
セキュリティ研究: ネットワーク侵入方向

以下でそれぞれについて説明しましょう。

第一の方向性:安全性の研究開発

ネットワーク セキュリティを電子商取引業界、教育業界などと考えることができますが、各業界には独自のソフトウェアの研究開発があり、ネットワーク セキュリティ業界も例外ではありません。ネットワークセキュリティ事業および関連ソフトウェアの開発・販売を行っております。

この場合、セキュリティ業界には、フロントエンド、バックエンド、ビッグデータ分析など、他の業界で一般的なポジションが存在します。ただし、このような一般的な開発ポジションに加えて、関連性の高い研究開発ポジションもいくつかあります。警備事業へ。

この分類はさらに 2 つのサブタイプに分類できます。

セキュリティ製品の開発と防御、
セキュリティ ツールの開発と攻撃。

ファイアウォール、IDS、IPS
WAF(ウェブサイトアプリケーションファイアウォール)
データベースゲートウェイ
NTA(ネットワークトラフィック分析)
SIEM(セキュリティインシデント分析センター、状況認識)
ビッグデータセキュリティ分析
EDR(端末機器セキュリティソフト)
DLP(情報漏洩防止)
ウイルス対策ソフト
セキュリティ検出サンドボックス

まとめると、セキュリティ向けに開発された製品の多くは、端末側(PC、携帯電話、ネットワーク機器など)によるセキュリティ攻撃を検知し、防御するために使用されています。

これらの製品の開発に使用されるテクノロジーは、主に C/C++、Java、Python の 3 つの主要なテクノロジー スタックに基づいており、少量の GoLang と Rust も含まれています。

セキュリティの研究開発職は、他の 2 つの分野に比べて、ネットワーク セキュリティ テクノロジに対する要件が低くなります (あくまで相対的に言えば、一部の製品の研究開発では、低いセキュリティ スキルは必要ありません)。 . 知っています。この場合、基本的な開発スキルに加えてネットワーク セキュリティ テクノロジについてある程度の理解があれば、これらのポジションの面接時に当然有利になります。

2 番目の方向: バイナリ セキュリティ

バイナリ セキュリティの方向性は、セキュリティ分野における 2 つの主要な技術方向性の 1 つです。

この方向には主にソフトウェアの脆弱性マイニング、リバース エンジニアリング、ウイルスとトロイの木馬の分析などが含まれ、オペレーティング システムのカーネル分析、デバッグとデバッグ対策、ウイルス対策、その他のテクノロジが含まれます。私たちはバイナリ データを扱うことが多いため、時間が経つにつれて、バイナリ セキュリティはこの方向を総称するために使用されるようになります。

この方位の特徴は、孤独に耐えられる必要があるということです。

実際の製品を生み出すことができるセキュリティ研究開発ほど優れたものではなく、ネットワーク浸透方向ほどクールではなく、黙々と分析と研究に多くの時間を費やします。

脆弱性マイニングを例に挙げると、さまざまな攻撃手法を習得するだけでも多くの時間がかかります。この分野では、問題を研究するのに何か月、場合によっては数年かかることもありますが、これは一般の人が継続できるものではありません。それだけではなく、成功は努力ではなく、むしろ才能に左右されます。

Tencent の主要なセキュリティ研究所の責任者、業界の有名な TK リーダー、Wu Shi などの人物は、すでに脆弱性マイニングの秘密を理解し、このスキルを習得しており、夢の中で新しい遊び方を考えることさえできます。しかし、このような天才はごく少数であり、ほとんどの人には手の届かない存在です。

プログラマーが勤勉であるなら、バイナリ セキュリティの研究は大変な仕事です Plus

3 番目の方向: ネットワークの浸透

この方向性は、ほとんどの人が理解している「ハッカー」とより一致しており、携帯電話をハッキングし、コンピュータをハッキングし、Web サイトをハッキングし、サーバーをハッキングし、イントラネットをハッキングし、あらゆるものをハッキングできます。

バイナリ セキュリティの方向と比較して、この方向は初期段階で始めるのが容易で、いくつかの基本技術を習得し、既製のさまざまなツールを使用してハッキングを開始できます。

ただし、スクリプトボーイからハッカーマスターに変わりたい場合は、この方向に進むほど、より多くのことを学び、習得する必要があります。

ネットワークの普及の方向性はより「実戦」的なものであるため、ネットワーク ハードウェア機器、ネットワーク通信プロトコル、ネットワーク サービス (Web、メール、ファイル、データベースなど) からオペレーティング システムに至るまで、幅広いテクノロジに対してより高い要件が求められます。 、攻撃 テクニックなどを理解する必要があります。彼は、「実戦」のためにさまざまなテクノロジーを統合できる、万能のコンピューターの専門家になりたいと考えています。

学習ルートについて説明しますが、内容は少し長いので、最初に「いいね!」をすると、迷子にならずに前に戻ることができます。

このロードマップでは合計 6 つのステージに分かれていますが、すべてを習得しなければ就職できないというわけではなく、エントリーレベルの職種によっては、第 3 ステージと第 4 ステージを学習すれば十分です。

最良の効果を得るには、次のコンテンツを上の画像と組み合わせる必要があります。ブラウザで新しいタブ ページを作成し、画像を開いて一緒に見ることをお勧めします。

石器時代

最初のステージである石器時代は、ゲームを始めたばかりの純粋な初心者を対象としています。この段階では主に基礎を築くことになりますが、次の 5 つの部分を学習する必要があります。

ウィンドウズ

Windows 上のいくつかの基本的なコマンド、PowerShell と簡単なスクリプトの使用、および Windows が将来頻繁に扱うことになるいくつかの重要なコンポーネント (レジストリ、グループ ポリシー マネージャー、タスク マネージャー、イベント ビューアーなど) の使用。

さらに、Windows 上で仮想マシンを構築する方法、システムのインストール方法を学び、Linux を学ぶ次のステップの準備をします。

ネットワーク セキュリティでは、Linux に頻繁に触れる必要がありますが、多くの初心者がトレーニング コースで Kali を学習し始めてすぐに、霧の中で学習しているのを目にします。Linux の基本的な概念も確立せずに、急いで Kali を学習することは、歩けるようになる前に走り方を学ぶようなもので、本末転倒です。

基礎段階では主に使い方を中心に、テキスト編集、ファイル、ネットワーク、権限、ディスク、ユーザーなどに関するコマンドを学び、Linuxの基本を理解します。

コンピュータネットワーク

ネットワーク セキュリティとコンピュータ ネットワークは間違いなく非常に重要です。基本段階として、このセクションでは、特定のプロトコルの特定のフィールドの意味に厳密に焦点を当てるのではなく、主にマクロの観点からコンピュータ ネットワークを研究します。

まず、LAN から始めて、コンピューター通信の基本ネットワークであるイーサネットについて理解しましょう。LAN 内での通信はどのように行われるのでしょうか? ハブとスイッチの違いは何ですか? MAC アドレス、IP アドレス、サブネット、サブネット マスクは何に使用されますか?

その後、さらに大規模な広域ネットワークやインターネット、ネットワーク通信プロトコルとは何か、通信プロトコルの階層化につながり、7 層モデルと 4 層モデルを通じて、コンピュータ ネットワークの基本概念が急速に確立され、その役割が確立されます。プロトコルの各層について、どのようなプロトコルがあるのか​​、今日のインターネットではプロトコルはどのように正確に使用されているのでしょうか?

ウェブの基本

ネットワーク侵入の非常に重要なコンポーネントは Web セキュリティです。Web セキュリティを学ぶには、まず Web フロントエンドの基礎から始める必要があります。

このセクションは非常に単純で、HTML+CSS+JS の開発と使用という 3 つの最も原始的な Web フロントエンド ツールを学習し、将来 Web 関連のセキュリティ知識を学習するための基礎を築きます。

このセクションは比較的実践的なものです。Web プログラミングを自分で行う必要があります。特に JavaScript に精通し、Ajax とは何かを理解し、一般的に使用される jQuery ライブラリについて学習する必要があります。これらは Web フロントエンドにおいて非常に基本的で実践的です。よく使われるコンテンツ。

データベースの基本

基本段階の最後の部分では、データベースの基本的な知識を学ぶことができます。

この段階では、ライブラリ、テーブル、インデックスなどの概念を習得することに重点を置いて、主に理論的な知識を学び、次に SQL の書き方を学び、データの追加、削除、変更、クエリを学びます。当面はデータベースを操作するためのプログラミングは必要ありません。

青銅器時代

石器時代を通過した後、オペレーティング システムの使用、ネットワーク プロトコル、フロントエンドの基本、データベースの最初の理解など、コンピューターの基本的な知識はすでに蓄積されていますが、これだけではネットワーク セキュリティを実現するには十分ではありません。 2 番目のブロンズ ステージも必要です。基礎をさらに学習すると、最初のステージよりも徐々に難易度が上がり始めます。

この段階で学ぶ必要がある知識は次のとおりです。

ウェブ上級

以前の石器時代、私たちは最初に Web プログラミングに触れ、Web ページの基本原理を理解しました。しかし当時は、バックエンドとの接触がなく、純粋にフロントエンド、純粋に静的な Web ページでした。この高度な段階では、Web バックエンドのコンテンツに触れ始める必要があります。

まず、一般的に使用されている 2 つの主流 Web サーバーから始めて、Apache と Linux の基本知識を学び、次に動的 Web ページの基本原理を紹介し、CGI/Fast-CGI から ASP/PHP などの後の動的 Web ページ テクノロジへの移行を行います。 /ASPX/JSP を理解し、その開発の歴史、進化のプロセス、および基本的な動作原理を理解します。

最後に、Web 開発の基本知識 (フォーム操作、セッション/Cookie、JWT、LocalStorage など) を学び、これらの基本用語の意味、用途、解決策を理解します。

PHPプログラミング

Web バックエンド開発を学ぶには、バックエンド開発言語を学ぶ必要があります。このセクションでは、PHP から始めることを選択します。

ただし、ここで PHP を選択することは、将来 PHP バックエンド開発に従事することを意味するものではなく、PHP が現在どれほど人気が​​あるかを意味するものではなく、特定の歴史的背景の下では、PHP 関連の Web サイトのセキュリティ問題が非常に代表的なものであることを覚えておいてください。 , したがって、この言語を選択すると、セキュリティの問題を研究するのに便利です。

学習の目的が異なるため、通常のバックエンド開発とは学習方法が異なります。ここでは構文の基礎、基本的なバックエンドリクエスト処理、データベースアクセスを学び、その後よく使われるThinkPHPフレームワークについて触れていきますが、もちろん興味がある方はもっと深く学んでおいた方が良いでしょう。

コンピュータネットワークアドバンスト

第 2 段階では、コンピュータ ネットワークの学習をさらに充実させる必要があります。今回は、HTTP/HTTPS とパケット キャプチャの分析に焦点を当てます。

共通パラメータ設定を含め、Linux 上の tcpdump をマスターする必要があります。次に、Wireshark を学習してデータ パケットを分析し、Fiddler を使用して暗号化された HTTPS トラフィックをキャプチャして分析することに集中します。

パケット キャプチャ ソフトウェアで通信トラフィックを観察することで、コンピュータ ネットワークの理解が抽象的なものから具体的なものへと変わります。

暗号化および復号化技術

次に、ネットワークセキュリティの分野でよく扱われる暗号化・復号化技術や暗号化・復号化技術について学びましょう。Base64 エンコード、対称暗号化、非対称暗号化、ハッシュ技術などが含まれます。

それらの基本概念、それらが何に使用されるか、それらがどのような問題を解決するかを理解し、最終的にそれらがどのように機能するかを理解します。

おすすめの本:「暗号化と復号化」

銀時代

現在、第 3 段階であるシルバーエイジに入り、エキサイティングな瞬間が来ています。この段階では、実際のネットワーク セキュリティ技術を包括的に学習し始めます。前の 2 つの段階で築いた基礎もこの段階で私たちに送られます。 。

この段階で学ぶ必要がある知識は次のとおりです。

Web セキュリティの入門

Web フロントエンドと PHP プログラミングのこれまでの基礎があれば、Web セキュリティを正式に学ぶことができます。Webセキュリティ分野における代表的な攻撃手法には、SQLインジェクション、XSS、CSRF、各種インジェクション、SSRF、ファイルアップロード脆弱性などがあり、理論を学び実践しながらそれぞれを詳しく検討する必要があります。

インターネット上の Web サイトを使用して学習を攻撃しないように注意してください。これは違法です。仮想マシンに脆弱性を含む Web サイトをいくつか構築し (ダウンロードして再生できる Web サイトがインターネット上に多数あります)、構築した Web サイトで練習することができます。

ネットワークのスキャンとインジェクション

Webセキュリティの攻撃手法はこれまでいくつか学んできましたが、それだけでは不十分で、攻撃対象に直面した場合、攻撃ポイントをいかに見つけ出し、対象の情報を入手するかが重要です。

この情報には、ターゲットが実行しているオペレーティング システム、開いているポート、実行しているサービス、バックエンド サービスの種類、バージョン情報など、悪用される可能性がある脆弱性が含まれます。ターゲットを捕捉するための効果的な攻撃手段を開発します。

一般的なネットワーク情報スキャンには、ポート スキャン、Web サイトのバックグラウンド スキャン、脆弱性スキャンなどが含まれます。一般的なスキャン ツールとその仕組みを学ぶ必要があります。

情報収集とソーシャルエンジニアリング

上記のスキャンが必要な情報に加えて、ネットワーク セキュリティでは、Web サイトの登録情報、関係者、Web サイト内のコンテンツの検索など、多くの情報を調査する必要があることがよくあります。これには、情報収集とソーシャル エンジニアリングの関連技術を学習し、習得する必要があります。

Whois 情報はドメイン名情報のクエリに使用され、shodan、zoomeye、fofa などのサイバースペース検索エンジンは IP、ドメイン名、URL などの背後にある情報を取得し、Google ハッキングは検索エンジンを使用して Web サイトの内部情報を取得します。ネットワーク情報収集によく使われるスキル。

ブルートフォースクラッキング

ネットワーク攻撃では、ターゲットのオープン サービスがスキャンされるときに、最も直接的なことはログインです。共通サービスには、SSH、RDP、MySQL、Redis、Web フォームなどが含まれます。

現時点では、さまざまなサービスの一般的なユーザー名とパスワードで構成される辞書を使用し、プログラムを介してブルート フォース クラッキングを行うブルート フォース クラッキングが通常便利です。

一般的に使用されるブラスト ツールには、hydra、超脆弱なパスワード、Windows システムのパスワードを取得するためによく使用される mimikatz などがあります。

黄金時代

前段階ではセキュリティ攻撃技術について学習しましたが、今回はセキュリティ防御技術とセキュリティ検出技術について学びますが、セキュリティには攻撃面と防御面があり、その両方が不可欠です。

WAFテクノロジー

最初に学習するのは WAF (Web アプリケーション ファイアウォール) です。

Web セキュリティは Web テクノロジーを介してコンピュータ システムを攻撃することであり、WAF はこれらのセキュリティ攻撃を検出して防御することです。ことわざにあるように、自分と敵を知ることによってのみ、すべての戦いに勝つことができます。攻撃者としては、WAF の動作原理を習得し、検出を回避する弱点を見つける必要があります。防御者としては、セキュリティの検出と防御を継続的に強化する必要がありますWeb 攻撃を効果的に発見し、抵抗する機能。

openresty、modsecurity などの現在の主流の WAF ソフトウェアで使用されているアーキテクチャと、機能ベース、動作ベース、機械学習ベースなどのいくつかの主要な検出アルゴリズムを学習する必要があります。

ネットワークプロトコル攻撃と侵入検知

WAF は主に Web 関連のセキュリティ攻撃をターゲットにしていますが、このセクションでは、TCP ハイジャック、DNS ハイジャック、DDoS 攻撃、DNS トンネル、ARP スプーフィング、ARP フラッディングなどを含むネットワーク プロトコル スタック全体にさらに視野を広げていきます。これらをマスターする 従来の古典的な攻撃手法の原則と環境構築の実践は、その後のイントラネット侵入の基礎を築きます。

さらに、防御側として、ネットワーク トラフィック分析テクノロジを通じてセキュリティ検出を実行する方法を学び、一般的に使用されるネットワーク分析テクノロジ、検出フレームワーク、ルール構文を理解し、将来のセキュリティ関連の開発またはセキュリティ防御作業に備える必要もあります。

ロギングテクノロジー

ログを通じて攻撃動作を検出することは、最も一般的な動作です。攻撃者の Web リクエスト、システム ログイン、ブルート フォース クラッキングの試みなどが、システム内のさまざまなソフトウェアによって記録されます。攻撃者は、多くの場合、成功後に関連するログを消去します。記録するため、これらの丸太を使いこなすことを学ぶことは、攻撃チームと防御チームの両方が学ぶ必要があるスキルです。

一般的なログには、システム ログイン ログ (Windows、Linux)、Web サーバー ログ、データベース ログなどが含まれます。

Pythonプログラミング

この段階では、Python プログラミング開発を学習します。ネットワーク セキュリティには多くのエンジニアリング開発は必要ありませんが、基本的なプログラミング スキルを習得することは、クローラ、データ処理、ネットワーク スキャン ツール、脆弱性 POC などの作成に使用でき、非常に役立ちます。数あるプログラミング言語の中でも、Python は間違いなく優れています。が最適です。

ブラウザのセキュリティ

このステージの最後の部分では、ブラウザ側のセキュリティに関する知識を学び、Web セキュリティにおけるブラウザ関連の脆弱性攻撃を統合します。

最も主流の 2 つのブラウザー、IE と Chrome の機能、ブラウザーのサンドボックス メカニズム、同一オリジン ポリシー、クロスドメイン テクノロジーなどの機能を習得することに重点を置く必要があります。

ネットワーク セキュリティ学習教材 (必要な場合はコメント欄にメッセージを残してください):

ビデオチュートリアル

難解なテキストを好まない友人も多いため、全員のためにビデオ チュートリアルも用意しました。合計 21 章あり、各章には現在のセクションのエッセンスが凝縮されています。

SRC とハッカーの文献

誰もがお気に入りで最も関心のある SRC 技術書とハッキング テクニックも含まれています。

SRC 技術文書:

ネットワーク保護運用情報

HWネットワーク保護運用に関しても対応情報をご用意しており、まさにコンペのゴールデンフィンガーに相当する内容となっております!

おすすめ

転載: blog.csdn.net/hdwlwang/article/details/130287975