セキュリティの低レベル開発エンジニアは何を学ぶ必要がありますか?

ネットワークプロトコル

ネットワーク セキュリティの低レベル開発エンジニアは、ネットワーク セキュリティ分野の課題をより深く理解し、対応するソリューションを開発するために、ネットワークの知識を深く理解する必要があります。 TCP、UDP、ICMP、ARP などのプロトコルについては、次のことを知っておく必要があります。

  1. TCP (伝送制御プロトコル):

    • 3 ウェイ ハンドシェイク、4 ウェイ ウェーブ、フロー制御、輻輳制御などの TCP の動作原理を理解します。

    • 送信元ポート、宛先ポート、シーケンス番号、確認番号、データ オフセット、予約ビット、フラグ ビット (SYN、ACK、FIN、RST、PSH、URG)、ウィンドウ サイズ、チェックサム、緊急ポインタ待機などの TCP ヘッダー フィールドに精通している。

  2. UDP (ユーザー データグラム プロトコル):

    • コネクションレス、信頼性の低さ、メッセージ指向、その他の特性を含む、UDP の動作原理を理解します。

    • 送信元ポート、宛先ポート、長さ、チェックサムなどの UDP ヘッダー フィールドについてよく理解してください。

  3. ICMP (インターネット制御メッセージ プロトコル):

    • エラー報告、ネットワーク診断などの ICMP の機能を理解します。

    • エコー要求 (ping)、エコー応答、宛先到達不能、時間超過などの ICMP メッセージ タイプに精通しています。

    • タイプ、コード、チェックサムなどの ICMP ヘッダー フィールドや、メッセージ タイプに関連するその他のフィールドについてよく理解してください。

  4. ARP (アドレス解決プロトコル):

    • IP アドレスを物理アドレス (MAC アドレス) にマッピングするなど、ARP の仕組みを理解します。

    • ハードウェア タイプ、プロトコル タイプ、ハードウェア アドレス長、プロトコル アドレス長、オペレーション コード (要求または応答)、送信側 MAC アドレス、送信側 IP アドレス、ターゲット MAC アドレス、ターゲット IP アドレスなどの ARP ヘッダー フィールドについてよく理解してください。

これらのプロトコルに加えて、ネットワーク セキュリティの最下層開発エンジニアは、IP (インターネット プロトコル)、イーサネット、VLAN、MPLS などの他のネットワーク層およびデータリンク層プロトコルにも精通している必要があります。さらに、ネットワーク デバイス (ルーター、スイッチ、ファイアウォールなど) の動作原理、およびネットワーク セキュリティ関連のテクノロジと概念 (暗号化、認証、アクセス制御、脆弱性、攻撃など) も理解する必要があります。方法など)。

これらのネットワーク知識の習得に基づいて、プログラミング能力 (C、C++、Python などの言語)、デバッグおよびリバース エンジニアリングのスキル、オペレーティング システムの知識 (特にネットワーク スタックとセキュリティ関連部分) なども必要です。 .、ネットワーク作業に従事するため、セキュリティの基盤となる開発作業に従事します。

  1. TCP (伝送制御プロトコル) ヘッダー フィールド:

    • 送信元ポート (16 ビット): 送信者のポート番号。

    • 宛先ポート (16 ビット): 受信者のポート番号。

    • シーケンス番号 (32 ビット): 送信者によって送信されたデータ バイト ストリームの最初のバイトのシーケンス番号。

    • 確認番号 (32 ビット): 受信側が受信を期待する次のバイトのシーケンス番号。

    • データ オフセット (4 ビット): TCP ヘッダーの長さを 32 ビット ワードで示します。

    • 予約ビット (6 ビット): 予約フィールド。通常は 0 に設定されます。

    • フラグ ビット (6 ビット): URG、ACK、PSH、RST、SYN、FIN などが含まれ、さまざまな TCP 制御メッセージを示すために使用されます。

    • ウィンドウ サイズ (16 ビット): 受信機によって指定された受信ウィンドウ サイズ。

    • チェックサム (16 ビット): TCP メッセージ全体をチェックして、データの整合性を確認します。

    • 緊急ポインタ (16 ビット): URG フラグが設定されている場合、データ ストリーム内の緊急データの位置を示します。

  2. UDP (ユーザー データグラム プロトコル) ヘッダー フィールド:

    • 送信元ポート (16 ビット): 送信者のポート番号。

    • 宛先ポート (16 ビット): 受信者のポート番号。

    • 長さ (16 ビット): UDP メッセージ全体 (ヘッダーとデータを含む) のバイト長。

    • チェックサム (16 ビット): UDP メッセージ全体をチェックして、データの整合性を確認します。

  3. ICMP (インターネット コントロール メッセージ プロトコル) ヘッダー フィールド:

    • タイプ (8 ビット): エコー要求、エコー応答、宛先到達不能などの ICMP メッセージのタイプを示します。

    • コード (8 ビット): タイプ フィールドと組み合わせて使用​​され、より詳細なメッセージ情報を提供します。

    • チェックサム (16 ビット): ICMP メッセージ全体をチェックして、データの整合性を確認します。

  4. ARP (アドレス解決プロトコル) ヘッダー フィールド:

    • ハードウェア タイプ (16 ビット): 使用されるハードウェア タイプを示します (イーサネットの場合は 1 など)。

    • プロトコル タイプ (16 ビット): IPv4 の 0x0800 など、使用されるプロトコル タイプを示します。

    • ハードウェア アドレス長 (8 ビット): ハードウェア アドレス (MAC アドレスなど) のバイト長を示します。イーサネットの場合は 6 です。

    • プロトコル アドレス長 (8 ビット): プロトコル アドレス (IP アドレスなど) のバイト長を示します。IPv4 の場合は 4 です。

    • オペレーション コード (16 ビット): ARP オペレーション タイプを示します (リクエストの場合は 1、応答の場合は 2 など)。

    • 送信側 MAC アドレス (48 ビット): イーサネットの MAC アドレスなど、送信側のハードウェア アドレス。

      • 送信者 IP アドレス (32 ビット、IPv4): IPv4 アドレスなどの送信者のプロトコル アドレス。

      • ターゲット MAC アドレス (48 ビット): イーサネットの MAC アドレスなどのターゲット ハードウェア アドレス。 ARP リクエストでは、通常、このフィールドには 0 が入力されます。

      • 宛先 IP アドレス (32 ビット、IPv4): IPv4 アドレスなどの宛先プロトコル アドレス。

      TCP、UDP、ICMP、ARP プロトコルに加えて、次のプロトコルと関連知識も理解する必要があります。

      1. IP (インターネット プロトコル) ヘッダー フィールド:

        • バージョン (4 桁): IP プロトコルのバージョンを示します (IPv4 の場合は 4、IPv6 の場合は 6 など)。

        • ヘッダー長 (4 ビット): IP ヘッダーの長さを 32 ビット ワードで示します。

        • サービスタイプ/差別化サービス (8 ビット): 優先度、遅延、スループットなどのサービス品質を定義するために使用されます。

        • 全長 (16 ビット): IP データグラム全体 (ヘッダーとデータを含む) のバイト単位の長さ。

        • 識別 (16 ビット): 断片化および再構成中に使用するデータグラムを一意に識別するために使用されます。

        • フラグ (3 ビット): データグラムの断片化と再構成を制御するために使用される、「断片化なし」(DF) および「断片化増加」(MF) などが含まれます。

        • フラグメント オフセット (13 ビット): 元のデータグラム内のデータグラム フラグメントのオフセットを 8 バイト単位で示します。

        • 生存時間 (TTL、8 ビット): 無限ループを防ぐために、ネットワーク内のデータグラムのライフ サイクルを制限するために使用されます。

        • プロトコル (8 ビット): 上位層プロトコルのタイプを示します。たとえば、TCP は 6、UDP は 17、ICMP は 1 です。

        • チェックサム (16 ビット): IP ヘッダーを検証してデータの整合性を保証します。

        • 送信元 IP アドレス (32 ビット、IPv4): 送信者の IP アドレス。

        • 宛先 IP アドレス (32 ビット、IPv4): 受信者の IP アドレス。

      2. イーサネットフレームフォーマット:

        • 宛先 MAC アドレス (48 ビット): イーサネット MAC アドレスなどの受信機のハードウェア アドレス。

        • 送信元 MAC アドレス (48 ビット): イーサネットの MAC アドレスなど、送信者のハードウェア アドレス。

        • タイプ/長さ (16 ビット): 上位層プロトコルのタイプ (IPv4 の場合は 0x0800、ARP の場合は 0x0806、またはイーサネット フレームの長さなど) を示します。

        • データ: 上位層プロトコルのデータが含まれます。

        • フレーム チェック シーケンス (FCS、32 ビット): イーサネット フレーム全体をチェックして、データの整合性を確認します。

      これらの基本的なネットワーク プロトコルと関連知識を理解することは、基礎となるネットワーク セキュリティ開発作業に従事するための基礎となります。さらに、以下を含むがこれらに限定されない、より深いサイバーセキュリティの知識とスキルを習得する必要があります。

      1. ネットワーク セキュリティ プロトコル: SSL/TLS、IPSec、SSH などのセキュリティ プロトコルと、その動作原理および実装の詳細を理解し、習得します。

      2. 暗号化: 暗号化と復号化の基本原理を理解し、AES、RSA、DSA などの一般的に使用される対称暗号化アルゴリズムと非対称暗号化アルゴリズム、およびハッシュ関数やデジタル署名などの暗号原理とテクノロジーに精通しています。

      3. 脆弱性の分析と悪用: バッファ オーバーフロー、SQL インジェクション、XSS などの一般的な種類のセキュリティ脆弱性と、脆弱性のマイニング、分析、悪用の方法を理解します。

      4. リバース エンジニアリングとバイナリ分析: 静的分析、動的分析、デバッグなどのリバース エンジニアリングとバイナリ分析の基本スキルに精通し、IDA Pro、Ghidra、OllyDbg、GDB などの関連ツールをマスターします。

      5. 侵入の検出と防御: ファイアウォール、IDS/IPS、サンドボックスなどのホストおよびネットワーク レベルでのセキュリティ保護テクノロジーを含む、侵入の検出と防御の基本原則を理解します。

      6. オペレーティング システムの原理とネットワーク スタックの実装についての深い理解: オペレーティング システムのカーネル コンポーネント、メモリ管理、プロセス スケジューリング、およびその他の基礎となるメカニズムに精通し、TCP/IP プロトコル スタックなどのネットワーク スタックの実装の詳細を習得します。ルーティングアルゴリズムなど。

      7. プログラミング能力: しっかりとしたプログラミングの基礎があり、基盤となるネットワーク セキュリティ開発のための C/C++ や Python などのプログラミング言語の使用に習熟していること。

      8. システムのセキュリティと強化: オペレーティング システム、アプリケーション、ネットワーク デバイスのセキュリティ構成と強化方法を理解し、システム セキュリティを評価し、適切なセキュリティ戦略を採用できるようになります。

      9. セキュリティ テストと侵入テスト: Nmap、Metasploit、Wireshark などのセキュリティ テストと侵入テストの方法とツールに精通し、ターゲット システム上でセキュリティ評価と攻撃シミュレーションを実行できるようになります。

      10. セキュリティ分野の最新動向を継続的に学び、注意を払う:ネットワークセキュリティの分野は急速に変化しており、最新の技術動向、脆弱性の公開、セキュリティポリシーなどを継続的に学び、注意を払う必要があります。進化するネットワーク セキュリティ環境に適応します。

      上記のスキルと知識を習得すると、優れた低レベルのネットワーク セキュリティ開発エンジニアになることができます。同時に、実践的な経験と実践的な問題を解決する能力を継続的に向上させることも非常に重要です。以下は、低レベルのネットワーク セキュリティ開発エンジニアとしてより成長するのに役立ついくつかの提案です。

      1. 実践的な実践: 理論的な知識と実践を組み合わせることが非常に重要です。実際のプロジェクトに参加したり、セキュリティツールや脆弱性攻略などを自ら実装したりすることで、ネットワークセキュリティの原理や技術への理解を深めることができます。

      2. セキュリティ コンテストやトレーニングに参加する: サイバーセキュリティ コンテスト (CTF など) や専門トレーニングに参加することで、スキル レベルを向上させ、他のサイバーセキュリティ専門家とコミュニケーションを取り、学ぶことができます。

      3. セキュリティ関連の書籍や論文を読む: ネットワーク セキュリティ分野の古典的な書籍や最新の論文を定期的に読んで、知識を広げ、理解を深めます。

      4. オープンソースのセキュリティ ツールとフレームワークを分析して学習する: 優れたオープンソース セキュリティ ツールとフレームワークのソース コードを学習することで、優れた設計スキルと実装スキルを学ぶことができます。

      5. セキュリティ コミュニティやフォーラムに参加する: サイバーセキュリティ関連のコミュニティやフォーラムに参加して、他のセキュリティ専門家とコミュニケーションをとり、セキュリティのトレンドをフォローし、経験やスキルを共有します。

      6. 技術的なブログや記事を書く: 技術的なブログや記事を書くことで、自分自身の学習や実践経験をまとめることができ、理解を深め、他の人の参考にすることができます。

      7. セキュリティ認定を取得する: CISSP、CEH、OSCP などの関連するセキュリティ認定を取得すると、専門レベルと市場競争力を向上させることができます。

      8. 好奇心と学習姿勢を維持する: ネットワーク セキュリティの分野は急速に発展しています。好奇心と継続的な学習姿勢を維持することが、優れたネットワーク セキュリティの低レベル開発エンジニアになるための鍵です。

      上記の取り組みを通じて、開発の基礎となるネットワーク セキュリティに必要なスキルと知識をよりよく習得し、キャリア開発の強固な基盤を築くことができます。

ネットワークセキュリティ認証

CISSP (Certified Information Systems Security Professional) は、International Information Systems Security Certification Consortium (ISC²) が発行する、世界的に認められた情報セキュリティ専門家認定資格です。 CISSP 認定資格は、情報セキュリティの分野における専門的な知識と能力を証明するだけでなく、優れた労働倫理とセキュリティ実践への取り組みを証明します。この認定資格は低レベルのサイバーセキュリティ開発者には直接関係ないかもしれませんが、あなたのキャリアに価値をもたらすことは間違いありません。

ただし、ネットワーク セキュリティの低レベル開発エンジニアになるには、低レベル開発、脆弱性のマイニングと悪用などに密接に関連するいくつかの認定資格にさらに注意を払う必要がある場合があります。たとえば、OSCP (Offensive Security Certified Professional) や OSCE (Offensive Security Certified Expert) などの認定資格の方が役立つ場合があります。これらの認定資格は、侵入テスト、脆弱性の悪用、バイナリ分析、リバース エンジニアリングなど、ネットワーク セキュリティにおける低レベルの開発エンジニアに必要なスキルと知識をカバーしています。

全体として、CISSP 証明書は、ネットワーク セキュリティの低レベル開発エンジニアにとって最も直接的に関連する認定ではないかもしれませんが、それでもプロフェッショナリズムと市場競争力を向上させることができる取得する価値のある資格です。同時に、優れた低レベルのネットワーク セキュリティ開発エンジニアになるための準備を整えるために、低レベルの開発とネットワーク セキュリティに直接関連する他の認定資格にも注意を払う必要があります。

Zero Sound Academy の無料チュートリアルをお勧めします。個人的に先生の講義が良いと思います。それを皆さんと共有したいと思います。[Linux、Nginx、ZeroMQ、MySQL、Redis、fastdfs、MongoDB、ZK、ストリーミング メディア、CDN、 P2P、K8S、Docker、TCP/IP、コルーチン、DPDK、その他の技術コンテンツについては、クリックして今すぐ学習してください:

おすすめ

転載: blog.csdn.net/weixin_36184908/article/details/130197026