最近、クラスメートから、ネットワーク セキュリティの学習ルートは何ですか?と聞かれました。
ナンセンスではありませんが、まず街の建物の写真を撮って、ネットワーク セキュリティの方向性、それらの関係と違い、それぞれが何を学ぶ必要があるかを見てみましょう。
このサークル テクノロジー カテゴリでは、ジョブには主に次の 3 つの方向性があります。
セキュリティ研究開発
セキュリティ研究: バイナリ方向
セキュリティ研究: ネットワーク侵入方向
それらを1つずつ説明しましょう。
最初の方向: セキュリティの研究開発
ネットワーク セキュリティは、電子商取引業界、教育業界、その他の業界として理解できます.すべての業界には独自のソフトウェアの研究開発があり、ネットワーク セキュリティも業界として例外ではありません.違いは、この業界の研究開発は開発およびネットワーク セキュリティ ビジネス、関連ソフトウェア。
というわけで、セキュリティ業界にはフロントエンド、バックエンド、ビッグデータ解析など他業界共通のポジションもありますが、こうした一般的な開発職以外にも、R&Dに密着したポジションもあります。セキュリティ事業に関するものです。
このカテゴリは、さらに次の 2 つのサブタイプに分けることができます。
セキュリティ製品の開発を行い、防御を行い、
セキュリティ ツールの開発を行い、攻撃を行うファイアウォール、IDS、IPS
WAF(Webサイトアプリケーションファイアウォール)
データベースゲートウェイ
NTA(ネットワークトラフィック分析)
SIEM(セキュリティイベント分析センター、状況認識)
ビッグデータセキュリティ分析
EDR(端末機器セキュリティソフト)
DLP(データ漏えい防止)
ウイルス対策ソフト
セキュリティ検出サンドボックス
要約すると、セキュリティ研究開発製品のほとんどは、端末側 (PC コンピュータ、携帯電話、ネットワーク機器など) を含むセキュリティ攻撃を検出して防御するために使用されます。
これらの製品の開発に使用されたテクノロジーは、主に C/C++、Java、Python の 3 つのテクノロジー スタックであり、少数ながら GoLang と Rust もあります。
他の 2 つの方向と比較して、セキュリティの R&D 職はネットワーク セキュリティ テクノロジの要件が低く (相対的にのみ、一部の製品の R&D はセキュリティ スキルの要件が低くありません)、ネットワークとは関係のない多くの R&D 企業を見てきました。セキュリティ。この場合、基本的な開発スキルに加えて、ネットワークセキュリティ技術の理解があれば、当然、これらのポジションの面接時に有利になります。
第 2 の方向: バイナリ セキュリティ
バイナリ セキュリティの方向性。セキュリティ分野における 2 つの主要な技術的方向性の 1 つです。
この方向には、主にソフトウェアの脆弱性マイニング、リバース エンジニアリング、ウイルスとトロイの木馬の分析などが含まれ、オペレーティング システムのカーネル分析、デバッグとアンチデバッグ、アンチウイルスなどの技術が含まれます。バイナリ データを扱うことが多いため、バイナリ セキュリティは、時間の経過とともにこの方向性をまとめて参照するために使用されます。
この方向の特徴は、孤独に耐える必要があることです。
それは、実際の製品の出力を得ることができるセキュリティの研究開発ほど良くなく、ネットワーク浸透の方向ほどクールではありません. この方向は、静かな分析と研究により多くの時間を費やします.
脆弱性マイニングを例にとると、さまざまな攻撃手法を習得するだけでもかなりの時間がかかります。この分野では、問題を研究するのに数か月から数年かかることもあり、それは常人が持続できるものではありません。それだけでなく、成功は勤勉ではなく才能によって達成されます。
Tencent の主要なセキュリティ ラボの責任者、業界で有名な TK リーダー、Wu Shi などの人々は、脆弱性マイニングの深い意味とこのスタントをすでにマスターしており、夢の中で新しい遊び方を考えることができます。しかし、このような天才は非常にまれであり、ほとんどの人には手の届かないところにあります。
プログラマーが勤勉ならバイナリセキュリティ研究も勤勉 Plus
第 3 の方向: ネットワークの浸透
この方向性は、ほとんどの人の「ハッカー」に対する認識と一致しており、携帯電話、コンピューター、Web サイト、サーバー、イントラネットをハッキングでき、あらゆるものをハッキングできます。
バイナリセキュリティの方向性に比べて、初期段階で取り組みやすい方向性であり、いくつかの基本的な技術を習得した後は、さまざまな既製のツールを使用してハッキングできます。
ただし、スクリプト キッドからマスター ハッカーになりたい場合は、この方向に進めば進むほど、より多くのことを学び、習得する必要があります。
ネットワークの浸透の方向性は「実際の戦い」に傾いているため、ネットワーク ハードウェア デバイス、ネットワーク通信プロトコル、ネットワーク サービス (Web、電子メール、ファイル、データベースなど) から、オペレーティング システム、攻撃方法などを知る必要があります。私は、「実際の戦闘」のためにさまざまなテクノロジーを統合できる、オールラウンドなコンピューターの専門家になりたいと思っています。
学習ルートの話から始めましょう 内容は少し長いので、迷わなければすぐに見つかるように、最初に「いいね!」をしてください。
写真は少し大きいので、アップロード後に圧縮しています。高解像度の写真を入手したい友達はここに来てください:
7 日間の肝臓作業の後、超強力なネットワーク浸透学習ロードマップが完成しました!
このロードマップでは、全部で 6 つの段階がありますが、すべてを習得してから仕事を始めるわけではなく、後輩のポジションによっては、3 番目と 4 番目の段階を習得すれば十分です。
最良の効果を得るには、次のコンテンツを上の画像と組み合わせる必要があります.ブラウザで新しいタブページを作成し、画像を開いて一緒に見ることをお勧めします.
石器時代
最初のステージである石器時代は、アリーナに入ったばかりの純粋な初心者Xiaobaiを対象としています。この段階では、主に基礎を築くことであり、学ぶべき 5 つの部分があります。
ウィンドウズ
Windows でのいくつかの基本的なコマンド、PowerShell と単純なスクリプトの使用、および Windows が将来頻繁に扱ういくつかの重要なコンポーネント (レジストリ、グループ ポリシー マネージャー、タスク マネージャー、イベント ビューアーなど) の使用。
さらに、Windows で仮想マシンを構築する方法を学び、システムをインストールする方法を学び、次の Linux の学習に備えます。
ネットワークセキュリティのためには、Linux を頻繁に扱う必要があります.私は、多くの新人がいくつかのトレーニングコースを受講して、すぐに Kali を学習するのを見てきました. Linux の基本的な概念を確立することさえせずに Kali を学びたいと思っています. これは、歩く前に走ることを学ぶことであり、カートを馬よりも先に置くことです.
基本段階では、主に使用法に焦点を当て、テキスト編集、ファイル、ネットワーク、権限、ディスク、ユーザーなどに関連するコマンドを学習し、Linux の基本的な知識を持っています。
コンピュータネットワーク
ネットワークセキュリティ、コンピュータネットワークは間違いなく非常に重要な存在です。基本的な段階として、このセクションでは、特定のプロトコルの特定のフィールドの意味に固執するのではなく、主にマクロの観点からコンピューター ネットワークを研究します。
まず、ローカルエリアネットワークから始めて、コンピューター通信の基本的なネットワークであるイーサネット、ローカルエリアネットワークで通信する方法を理解しますか?ハブとスイッチの違いは何ですか? MAC アドレス、IP アドレス、サブネット、およびサブネット マスクは何に使用されますか?
その後、より大きな広域ネットワーク、インターネット、ネットワーク通信プロトコルとは何か、通信プロトコルのレイヤー化につながり、7 層モデルと 4 層モデルを通じて、コンピューター ネットワークの基本的な概念、機能、プロトコルの各層とそこにあるプロトコル 現在のインターネットでプロトコルがどのように適用されているか
ウェブベース
ネットワーク侵入の非常に重要な部分は Web セキュリティです. Web セキュリティを学ぶには、まず Web フロントエンドの基礎から始める必要があります.
このセクションは非常にシンプルで、Web フロントエンドの最も原始的な 3 つのトリックである HTML+CSS+JS の開発と使用を学び、将来の Web 関連のセキュリティ知識の学習の基礎を築くことです。
このセクションは比較的実用的でハンズオンです. Web プログラミングを自分で行う必要があります. 特に JavaScript に精通している. Ajax とは何かを理解している. 一般的に使用されている jQuery ライブラリを学習している. これは非常に基本的であり, Web フロントでは重要です.一般的に使用されるコンテンツ。
データベース基盤
基本段階の最後の部分では、データベースの基本的な知識を得ることができます。
この段階では、主に理論的な知識を学び、ライブラリ、テーブル、インデックスなどの概念を習得し、次に SQL の書き方を学び、データの追加、削除、変更、およびクエリを学びます。一時的にプログラミングを使用してデータベースを操作しないでください。
青銅器時代
石器時代を過ぎた後、オペレーティング システムの使用、ネットワーク プロトコル、フロントエンドの基本、およびデータベースの最初の知識など、コンピューターに関する基本的な知識をすでに蓄積していますが、これだけではネットワーク セキュリティを行うには十分ではありません。段階、あなたはまだ必要です 基本をさらに学習した後、最初の段階の後、難易度はゆっくりと上昇し始めます。
この段階で学ぶべき知識は次のとおりです。
高度なウェブ
前の石器時代に、私たちは Web プログラミングに予備的に触れ、Web ページの基本原理を理解していました。しかし当時は、バックエンドに触れずに、純粋にフロントエンドで純粋に静的な Web ページでした。この高度な段階では、Web バックエンドのコンテンツに触れ始める必要があります。
最初に、一般的に使用される 2 つの主流の Web サーバーから始めて、Apache と Linux の基礎知識を学び、次に動的 Web ページの基本原則を紹介し、CGI/Fast-CGI から ASP/PHP などの後の動的 Web ページ技術に移行します。 /ASPX/JSP にアクセスし、その歴史、進化、および基本的な動作原理を理解してください。
[外部リンクの画像転送に失敗しました。ソース サイトにはアンチリーチング メカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-7lqtGBF7-1683106403012)("画像の説明をここに挿入")]
最後に、Web 開発の基本的な知識 (フォーム操作、Session/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 セキュリティを正式に学習できます。SQLインジェクション、XSS、CSRF、各種インジェクション、SSRF、ファイルアップロードの脆弱性など、Webセキュリティ分野における代表的な攻撃手法を理論と実践を交えて詳しく学びます。
学習を攻撃するためにインターネット上の 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 Application Firewall) です。
Web セキュリティが学習するのは、Web テクノロジを介してコンピュータ システムを攻撃することであり、WAF はこれらのセキュリティ攻撃を検出して防御することです。ことわざにあるように、自分自身と敵を知ることはすべての戦いに勝つことができます. 攻撃者として、WAF の動作原理を習得し、検出を回避するための弱点を見つける必要があります. 防御者として、セキュリティ検出と防御機能を継続的に強化する必要がありますWeb 攻撃を発見して防御します。
openresty、modsecurity、およびいくつかの主要な検出アルゴリズム (機能ベース、動作ベース、機械学習ベースなど) など、現在主流の WAF ソフトウェアで採用されているアーキテクチャを学習する必要があります。
ネットワーク プロトコル攻撃と侵入検知
WAF は主に Web 関連のセキュリティ攻撃を対象としています.このセクションでは、TCP ハイジャック、DNS ハイジャック、DDoS 攻撃、DNS トンネリング、ARP スプーフィング、ARP フラッディングなど、ネットワーク プロトコル スタック全体にさらに視野を広げます.従来の古典的な攻撃方法の原則と環境設定の実践は、その後のイントラネットへの浸透の基礎を築きます。
[外部リンクの画像転送に失敗しました。ソース サイトにはアンチリーチング メカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-nRQbsHXE-1683106403014)("ここに画像の説明を挿入")]
また、防御側として、ネットワークトラフィック解析技術によるセキュリティ検知を学び、一般的に使用されるネットワーク解析技術、検知フレームワーク、ルール構文を理解し、将来のセキュリティ関連の開発やセキュリティ防御業務に備える必要があります。
ログテクノロジー
攻撃者の Web リクエスト、システムへのログイン、ブルート フォース クラッキングの試みなどは、システム内のさまざまなソフトウェアによって記録され、攻撃者は成功後に関連するログを消去することがよくあります。 . レコードなので、これらのログをマスターすることを学ぶことは、攻撃チームと防御チームの両方が習得する必要があるスキルです.
一般的なログには、システム ログイン ログ (Windows、Linux)、Web サーバー ログ、データベース ログなどがあります。
Python プログラミング
この段階で、Python プログラミング開発について学習します。多くの場合、ネットワーク セキュリティは多くのエンジニアリング開発を行う必要はありませんが、クローラー、データ処理、ネットワーク スキャン ツール、脆弱性 POC などを作成するために使用できる基本的なプログラミング スキルを習得することは非常に役立ちます。言語、Python は間違いなく最も適しています。
ブラウザのセキュリティ
この段階の最後の部分は、ブラウザ側のセキュリティに関する知識を習得し、ブラウザ関連の脆弱性攻撃を Web セキュリティに統合することです。
IE と Chrome の 2 つの最も主流なブラウザー機能、ブラウザーのサンドボックス機構とは何か、同一オリジン ポリシーとクロスドメイン技術などを習得することに集中する必要があります。
プラチナ時代
サードパーティ コンポーネントの脆弱性
以前の Web セキュリティ関連の攻撃は、長年にわたって使用されてきた古典的な手法です. 数年にわたる開発の後、それらはかなり成熟し、関連する脆弱性の数は以前ほど多くはありません. 多くの攻撃は現在、さまざまなサードパーティに依存しています-パーティコンポーネントの脆弱性. 完成したので, これらの一般的なサードパーティコンポーネントの脆弱性を研究して研究. 一方で, 実戦で使用するためにこれらの攻撃方法をマスターします. 他方で, 脆弱性マイニングの作業に非常に役立ちます. .
研究対象は主に、現在のインターネット サービスで実際に使用されているいくつかのエンジニアリング コンポーネントを対象としています。たとえば、Java テクノロジー スタック シリーズの Spring Family Bucket、SSM、Redis、MySQL、Nginx、Tomcat、Docker などです。
イントラネット浸透
ネットワークへの侵入は、ポイントを奪取した後は始まりにすぎず、侵入後にさらに多くのノードを転送および制御する方法は、イントラネットへの侵入に関する研究および研究の範囲です。典型的な例はEternal Blue virus of the yearで、SMBプロトコルの抜け穴を介して急速に拡散し、広範囲に感染しました。
イントラネットへの侵入には多くの複雑なことがあり、難易度は大幅に上がりますが、これはネットワークへの侵入の非常に重要な部分であり、もっと噛む必要があります。この部分は理論が少なく実用性が高く、学習をシミュレートするための環境をさらに構築する必要があります。
OSセキュリティ技術&権限昇格技術&仮想化技術
Web などを介してコンピュータに侵入した後、さまざまな制限により、権限をエスカレートする必要がある場合が多く、また、オペレーティング システムのセキュリティ メカニズムに密接に関連する多くのコンテンツが含まれるため、非常に危険です。のオペレーティング システムのセキュリティに関する知識を習得する必要があります。
Windows と Linux のそれぞれの権限管理メカニズム、権限のエスカレーションの方法、一般的に使用される脆弱性、ツールなど。
最後に、仮想マシンからの脱出が必要になる可能性があるシナリオに対処するために、仮想化テクノロジに関する知識を習得してください。
キングスの時代
CobalStrike & MetaSploit
これら 2 つのアーティファクトの使い方を学ぶことで、攻撃の効率が大幅に向上します。自宅や旅行中のネットワーク侵入者にとっては必須の選択肢です。
その他のセキュリティ技術開発
ネットワークへの侵入の後期段階で、セキュリティ マスターになりたい場合は、自分の専門分野に固執するだけでなく、ネットワーク セキュリティの他の分野についてさらに学び、知識を広げる必要があります。
バイナリ脆弱性攻撃、リバース エンジニアリング、トロイの木馬技術、カーネル セキュリティ、モバイル セキュリティ、サイド チャネル攻撃など。手を出して理解し、知識を豊かにし、包括的なネットワーク セキュリティの知識とスキル スタックを構築します。
上記は、私が共有したネットワーク セキュリティの学習ルートです. 自己学習をしている皆さんに刺激を与え、助けてくれることを願っています.
最後に
ネットワーク セキュリティについてよりよく理解していただくために、編集者はネットワーク セキュリティの入門/上級学習教材を用意しました.その内容はすべて、ゼロベースの初心者向けのノートと教材です.理解しています,すべての情報は合計 282G. ネットワーク セキュリティ入門 + 高度な学習リソース パッケージのフル セットが必要な場合は、クリックして無料で入手できます (コードのスキャンで問題が発生した場合は、コメント領域にメッセージを残して入手することができます)。それ)〜
CSDN まくる: 「ネットワーク セキュリティの概要と高度な学習リソース パック」を無料で共有
な
ネットワーク セキュリティ ソース コード コレクション + ツールキット
ネットワーク
セキュリティ インタビューの質問
最後に、誰もが最も関心を持っているネットワーク セキュリティ インタビューの質問セクションがあります.
合計データは 282G. ネットワーク セキュリティ入門 + 高度な学習リソース パッケージの完全なセットが必要な場合は、クリックして(コードのスキャンで問題が発生した場合は、コメント領域にメッセージを残して入手できます)~
ビデオ関連資料および国内外のネットワーク セキュリティに関する書籍およびドキュメント
な