20199320 2019-2020-2「ネットワーク攻撃と守備練習「週6つの仕事
この作品は、コースに属し | https://edu.cnblogs.com/campus/besti/19attackdefense |
---|---|
どこの仕事でこの要件 | https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10589 |
このコースでの私の目標です | 知識とネットワーク攻撃と防御の操作をマスター |
私は目標を達成する助けたジョブの特定の局面において | 存在してTCP / IPネットワークプロトコルスタックのセキュリティ問題の最も基本的なネットワーク層とトランスポート層プロトコルや標的型攻撃のテクニックをマスター |
まず、知識の概要
1.セキュリティモデル
- PDRのセキュリティモデル:までの時間に基づいて動的なセキュリティモデル(P_T> D_t + R_T \ \ )は、時間を侵入に対する防御機構; $ D_t:これは、$ P_T $、基礎の本質である\(:検出メカニズムが侵入時間を検出します。 \) R_T $:時間の侵攻に対処するための応答メカニズム。
- \(P ^ 2DR \)セキュリティモデル:リスク分析に基づく=ネットワークセキュリティセキュリティポリシー(方針)を開発+セキュリティポリシーを実行するために(保護)+リアルタイム検出(検出)+リアルタイム応答(レスポンス)。その中でも、セキュリティポリシーは、モデルの中核です。
2.ネットワークセキュリティ技術とシステム
ファイアウォール2.1技術概要
ファイアウォールは、ネットワーク・プロトコル・スタックのすべてのレベルでの検査および制御のためのネットワークトラフィックとアクセスをネットワークアクセス制御機構を実装することができます。その作業のネットワーク・プロトコル・スタックの階層は、ファイアウォール技術(ネットワーク層)、回線レベルゲートウェイ(トランスポート層)とアプリケーションレイヤプロキシ(アプリケーション層)技術をフィルタリングするパケットに分割することができます。
- 機能:モニターおよび監査ファイアウォールへのネットワークアクセスとアクセスネットワークのセキュリティポリシーを強化し、他のセキュリティアクセスと統合することができ、内部ネットワーク情報の漏洩を防止するために、脆弱なまたは安全でないプロトコルとサービスを防ぐために、ネットワークのうち、制御、ネットワークトラフィックをチェックメカニズム。
- 不十分:ネットワーク内のセキュリティの脅威から、ネットワークコンピュータの攻撃やウイルスは違法アウトリーチ、オープンセキュリティの脆弱性のためのサービスの侵入攻撃、ベースのネットワークとクライアントプログラムに対する侵入攻撃を広める通信トロイの木馬やボットネットの隠れチャネル。
2.2ファイアウォール技術と製品
-
パケットフィルタリング
- ネットワーク層とトランスポート層ヘッダ情報をチェックすることによって、ルーティング機能に基づくパケットフィルタリングを拡張
パケットが転送されるべきかどうかを決定するために、ルールのユーザ定義のセットのセキュリティポリシー。 - 長所:シンプル、ネットワーク通信のパフォーマンスには影響しません。
- 不十分:(唯一のパケット検査のために)限られた機能は、管理者が厳しいです。
- ネットワーク層とトランスポート層ヘッダ情報をチェックすることによって、ルーティング機能に基づくパケットフィルタリングを拡張
-
検出された状態パケットフィルタリング技術に基づく(動的パケットフィルタリング)
- ダイナミックパケットフィルタリング技術はまだセキュリティポリシーの一致するルールの静的なセットを使用していますが、個々のデータ・パケットをチェックすることに加えて、ネットワークの接続コンテキストのパケットをトレースしようとする意志や追加などのネットワーク接続状態にトラフィックを許可し、拒否するかどうかを決定する条件に一致する、すなわち、ネットワーク接続レベル上の実施例とファイアウォールルールに一致します。
- 利点:より強力なセキュリティ機能は、単純なルールは、データの正当性を保護するために設定します。
- 不十分:高い複雑さの実現、ネットワーク伝送性能に大きな影響は、サービス拒否攻撃を受ける可能性があります。
-
エージェント技術
- アプリケーションプロキシ技術:アプリケーション層での仕事は、優れたセキュリティを提供します。
- 回路レベルのプロキシ技術:にユーザーレベルの認証メカニズムを使用することができ、内部ネットワークを隠し、しかしような作業は、処理および様々な異常なIPパケット、およびアプリケーションプロキシと情報の間のトランスポート層での中継で確認することができます追加のセキュリティを提供します。
- NATプロキシ技術:小規模オフィスやホームネットワーク用のネットワーク層での作業、セキュリティ保護と、限られたIPリソースをフルに活用するために入力方法を提供します。
-
ファイアウォール製品
- 統合されたパケットは、セキュアなオペレーティングシステムのファイアウォールとハードウェアファイアウォールデバイスに基づいて、一般的なオペレーティングシステムのファイアウォールソフトウェア製品に基づいて、ルータをフィルタリング
-
ファイアウォールの展開方法
- パケットフィルタリングルータ:パケットが内部ネットワークと外部ネットワークとの間の接続の唯一の点として、ファイアウォール機能をフィルタリングするとルータ。設定したアクセス制御リスト、パケットフィルタリングに基づいて、ルータの管理者。
- デュアルホーム要塞ホスト:代わりにルータをフィルタリングするパケットのデュアルホーム要塞ホストとしてアプリケーションプロキシゲートウェイを使用。
- スクリーニングホスト:シールド要塞ホストのルーティングと二重の安全対策。
- スクリーンサブネット:外部ネットワーク攻撃に耐え、そしてDMZにすべての内部ネットワークへのアクセスを管理するために、2つのパケットフィルタリング、ファイアウォール、外部ファイアウォールが含まれています。内部ネットワークへの内部ファイアウォールDMZへのアクセス。
2.3 Linuxのオープンソースのファイアウォール:netfilterの/ iptablesの
-
netfilterの/オープンソースのファイアウォール作品をiptablesの:
nefilter / iptablesのファイアウォールシステムでは、加えてLinuxでは、フィルタリング静的パケットとステータスパケット検査(すなわち、動的パケットフィルタリング)基本的なファイアウォール機能の実現のカーネル空間でのnetfilter成分は、また、柔軟で拡張可能なフレームワークをサポートするサポートNATネットワークアドレス変換やその他の追加機能、およびサードパーティの拡張機能をサポートするために、多層APIインタフェースを提供し、netfilterの透過プロキシを構築するためにNATを使用、共有インターネットアクセスにNATファイアウォールを構築する必要がある、とQoSポリシールータまたは他のセキュリティ機能を構築します。iptablesのファイアウォールの設定ツールは、Linuxのユーザ空間で動作している、コマンドラインモードでは、ユーザーがファイアウォールルールをフィルタリングし、経営の様々なnetfiterを設定することができます。
-
nefilter /アーキテクチャをiptablesの -フォー表V +チェーンルール
-
最も優先順位の高いためだけPREROUTINGとOUTPUTチェーンにおけるRAWテーブルので、受信されたパケットは、接続追跡前に処理することができます。RAWテーブル処理をスキップし、NATテーブルip_conntrackプロセスは、すなわち、何らアドレス変換、パケットがトラッキングプロセスをリンクしないであろう後ただし、ユーザは、一方の鎖上に、RAWテーブルを使用します。
-
TOS(サービスの種類、サービスタイプ)マングルテーブルは主に、データパケットを変更するために使用され、TTL(時間にライブ、寿命)の手段としてだけでなく、設定パケットマークフラグQoS(サービス、サービスの品質の品質)を達成し、調整しますPBRアプリケーション。
-
NATテーブルは主にIPアドレス変換効果を作るために使用されます。
-
フィルタテーブルは、主に、データパケットのフィルタリング効果のために使用されます。
-
優先レベル:生>マングル> NAT>フィルタ
-
-
iptablesの構文
iptables [-t table] command [match] [target]
:-tフィルタ、NAT、マングル、生:構成規則テーブルを指定 ...... そうでない場合は-t、デフォルトのフィルタテーブル。
コマンド:コマンドがするのiptablesを伝え何
-
-A( - アペンド):ルールがチェーンの最後に追加され
$iptables -A INPUT -s202.152.1.1 -j ACCEPT //向INPUT链中添加一个规则,确认来自202.152.1.1的数据包可接收
-
-D( - 削除):指定連鎖ルールからそれを除去するためにチェーンに指定された規則または位置番号と一致するルール
-
-P( - ポリシー):デフォルト目標操作チェーンセット、すなわち、チェーン内のすべてのパケットがどのルールに一致しないが、このチェーンのデフォルトの動作を使用することを余儀なくされます
$iptables -P INPUT DROP //将缺省值设置为DROP,即将丢弃所有与INPUT链中任何规则都不匹配的数据包
-
-N( - 新しいチェーン):指定した名前で、コマンドの新しいチェーンを作成
-
-Fは、( - フラッシュ):チェーン名が指定されている場合は、チェーンの名前を指定すると、コマンドのチェーンがすべてのルールを削除するには、コマンドはすべてのチェーンのすべてのルールを削除します。
$iptables -F FORWARD //删除FORWARD中所有的规则
-
-L( - リスト):リストチェーンに指定されているすべてのルール
$iptables -L FORWARD //列出FORWARD中的所有规则
試合:ルールの一致条件は、 -複数の一致条件との関係であります
-
一般的な試合:
-i / -o:ネットワーク・インターフェース/ネットワークインタフェース放出されたアクセス
元及び宛先アドレス:-s / -d
-p:プロトコルタイプ
-m:ネットワーク接続状態 -
特定のプロトコルに一致します:
--sport / - DPORT:マッチTCP / UDPポート条件に
:ターゲットは、ターゲット動作マッチングの後に指定された条件を満足します
- ACCEPT:(彼は先に行くことを許可する)を受け入れACCEPT -j、と彼はチェーンルールを横断停止します
- DROP:-j DROPブロック情報、破棄
- REJECT:-jは拒否し、DROP似ていますが、加えて、それは、パケットの送信者にエラーメッセージバックを送信し、サーバーおよびクライアント上で死んでソケットを放置しないでください。
- RETURN:ルールを含むエルゴードルールパケット停止チェーンと一致する-jump返りましょう。
-
-
nefilter / iptablesのパケットフィルタリングメカニズム
ネットワークプロトコルスタックを介してパケットを許可する:ACCEPT
DROP:静かに、送信者に通知せずにパケットを破棄
QUEUE:上位層アプリケーション処理のためのアプリケーションレイヤへのパケット転送によりnf_queue機構
盗難:スライスIPを処理するための特定の条件が処理されるまで、データ・パケットを保持し、等
REPEAT:データパケットがチェックポイントフックを再入力すること
注:ACCEPTとDROP最も一般的な
以下のような:
# iptables -t filter -A FORWARD -s 192.168.0.0/24 -d 192.168.1.0/24 -j ACCEPT /*该条静态包过滤规则对路由转发数据包进行检查,当数据包源IP地址属于192.168.0.0/24 C类网段,且目的地址属于192.168.1.0/24 C类网段,则执行目的操作 ACCEPT.*/
-
nefilter / iptablesのパケット状態検査機構
NEW:新しい接続、すなわち接続は、パケットが受信される場合、または専用データパケットの方向を見ます
設立:それは双方向の通信を確認するために3ウェイハンドシェイクTCP接続、またはネットワーク接続を完了しました
関連:そのようなFTPポートのネゴシエーションなどのネットワーク・プロトコルを処理するための関連Webリンク
INVALD:現在のプロセスが不正なリンクで、その結果、対話型ネットワークのネットワークプロトコル仕様に準拠していないことが不正な状態
以下のような:
//允许链接目标地址为web服务器IP,当前状态为NEW的网络链接可通过防火墙转发 # iptables -t filter -A FORWARD -d [WEB_SERVER] -m state --state NEW -j ACCEPT //已经建立网络链接和相关网络链接可以通过防火墙 # iptables -t filter -A FORWARD -m state --state RELATED, ESTABLISHED -j ACCEPT
-
nefilter / NATのメカニズムをiptablesの
NAT(DNAT用)主PREROUTINGスルー構成、(SNAT用)POSTROUTING、OUTPUT(ローカルで生成されたパケットをDNATであるため)3番目の既定のチェーン。
SNAT(パケットネットワーク接続のソースアドレスを変更します)
-
IPマスカレード
// 使得内部网络主机发出的数据包进行源IP地址伪装,使用防火墙外网IP地址。 # iptables -t nat -A POSTROUTING -i eth1 -o eth0 -j MASQUERADE
-
SNATメカニズム
POSTROUTING SNAT機構は、ルーティング、パケットフィルタリングが行われ、変更前の送信元アドレスであるため、チェーンに行われる必要があります。
//通过路由发出的网络连接的源IP地址都修改为2.2.2.2 # iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 2.2.2.2 //通过路由发出的TCP网络链接的源IP地址修改为2.2.2.2,且源端口设置为1-1023范围内的一个 # iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to 2.2.2.2:1-1023
DNAT(パケットネットワーク接続の送信先アドレスを変更します)
-
ポートフォワーディング、ロードバランシング、DNAT属し透過プロキシ
-
DNATメカニズム
DNATメカニズムは、PREROUTINGチェーンで行われる必要があります
//将目的地址转换为3.3.3.3 # iptables -t nat -A PREROUTING -i eth1 -j DNAT --to 3.3.3.3 //jiang web网络流量的目的地址和端口转换为4.4.4.4:8080 # iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth1 -j DNAT --to 4.4.4.4:8080 //将本地发出的到2.2.2.2的数据包重定向至本地loopback # iptables -t nat -A OUTPUT -d 2.2.2.2 -j DNAT --to 127.0.0.1 //将到外网IP1.2.3.4的8080端口网络流量转发至内网ip192.168.1.1的80端口 # iptables -A PREROUTING -t nat -p tcp -d 1.2.3.4 --dport 8080 -j DNAT --to 192.168.1.1:80
-
3。
第二に、練習
1.手:ファイアウォールの設定
configureは、プラットフォーム上でLinuxオペレーティングシステムプラットフォーム、オペレーティングシステム、またはWindowsパーソナルファイアウォール上でiptablesの以下の機能とテストを実行します。
(1)ホストがpingパケットを受信しないように、ICMPパケットをフィルタリングします。
-
使用
iptables -L
するすべてのルールを表示シードはデフォルトことを確認します:
この時点で、カーリー(192.168.200.4)のping種(192.168.200.6)で、問題はありません。
-
コマンドを使用して
iptables -A INPUT -p icmp -j DROP
、ホストがICMPパケットを受信しないように。-A入力:チェーンの入力端にルールを追加します。
-p ICMP:ICMPプロトコルは、指定されました。
-j DROP:指名対応するドロップパケット。
もう一度ルールを表示します。
-
カーリーpingをシードとのこの時間は、再び、成功を見ていません。
問題は、多くのwireshark ICMPパケットを証明しました:
-
成功した後使用した
iptables -F
すべてのルールをクリアします。
他のIPアドレスがアクセスすることはできませんが(2)は、(例えばFTP、HTTP、SMBなど)のネットワーク・アクセス・サービスのホスト、特定のIPアドレスのみを許可します。
-
設定する前に、カーリーとwinXPattacker FTPサービスを持つホストへのアクセスが成功することができます。
-
コマンドを使用すると
iptables -P INPUT DROP
、すべてのデータの流入を拒否しました。 -
コマンドを使用して
iptables -A INPUT -p tcp -s 192.168.200.4 -j ACCEPT
ホストにアクセスするだけカーリー(192.168.200.4)を可能にします。次のことを確認します。
-
、カリ及びwinXPattackerと種子へのアクセスを設定した後、目に見えるだけカリができる正常アクセス。
-
入力
iptables -F
とは、iptables -P INPUT ACCEPT
以前の状態を復元します。
2.ハンズ:Snortの
PCAPファイル(listen.pcapファイル)侵入検知、および攻撃の検出特定の使用のSnortを説明します。PCAPファイル侵入検知、アラームログへのアクセス与え、BT4 LinuxまたはWindowsの攻撃攻撃機の攻撃機Snortのに使用されます。
-
実行
snort -c /etc/snort/snort.conf -r /home/kali/Desktop/listen.pcap -K ascii
PCAPオフラインソースネットワークログファイルからのデータの読み出し:
目に見える、TCPは過半数をパケット。
-
デフォルトのディレクトリは/ var / log / snortの中のsnortは、ログファイルを生成し、
cd/var/log/snort
ログファイルを表示vim alert
、この攻撃は、nmapので開始されます。攻撃機のIPアドレスを使用すると、ポート番号などを見ることができ、ドローンIPアドレスが172.31.4.188で、172.31.4.178です。
3.練習の仕事
1.攻撃と守備の仮想ネットワーク環境の分析HoneywallのファイアウォールとIDS / IPS構成ルール、およびのHoneywallはその攻撃データの取り込みや制御の要件を完了するためのファイアウォールや侵入検知技術の使用がどのように分析レポート。
コンフィギュレーションの詳細な分析は、ファイルを含むスタートアップ項目をルール:
•ファイアウォール(netfilterの+ iptablesの):/etc/init.d/rc.firewall:
•侵入検知システム(Snortの):/etc/init.d/hflow-snortと/etc/snort/snort.conf:
•侵入防止システム(Snort_inlinc):/etc/init.d/hflow-snort_inlineと/ etc / snort_inline /鼻息inline.conf。
データキャプチャおよびデータ制御メカニズムのためのHoneywall方法(1)のスクリプト上記のでしょうか?
データキャプチャ:
ファイアウォールログ、ネットワーク通信、システムアクティビティ:3つの方法でキャプチャデータにハニーポットゲートウェイ
ファイアウォールログ:ファイアウォールは、このネットワークのすべてのインバウンドとアウトバウンドの接続をログに記録します。ファイアウォールのログレコードのうち全ての情報では/ var / log / messagesファイル。しかし、ファイアウォールのデータを記録することができるようなキーストローク侵入者、パケットペイロードデータ、等のアタックタイムのできない、送信元および宛先IPアドレスと送信元および宛先ポート、などの制限され、主にヘッダ情報です。
IDSは、すべてのネットワークアクティビティを捕捉することが可能であり、各パケットのペイロードを記録します。IDSは、データをキャプチャする能力を十分に発揮するすべてのパケットハニーネット環境を得ることができます。Snortのは、すべてのIP通信をキャプチャして、後で分析するまでのtcpdumpで、ログファイルにそれをダンプします。結合外部ネットワークインターフェースeth0にスニファは、レコードは、外部ネットワークとの通信が存在するであろう、ハニーネットのデータに関連付けされることはありません。図:
データコントロール:
データ制御用のHoneywall主な方法は、次のとおりIPTablesをベース発信接続の制限とSnortのインライン侵入検知システム。
iptablesのベースのファイアウォールre.firewallスクリプトデータはパケットの発信TCP接続とUDP、ICMPプロトコルの数を制限することができます。制限時間は、秒、分、時間、または日であり、そして精神便利、簡単かつ合理的なコントロール。また、侵入者が通常のパケット送信済みだと思うことができ、目的地に到達するパケットが接続をアウトバウンド変更することができます。
図に示すホストがすべてのパケットを破棄し、ブラックリストに属し、ホワイトリストに属するホストは、パケットが受け入れられ、保護リストに属しているが、外部からアクセス可能なハニーポットのホストであることを許されていません。
SnortのインラインでのSnortベースの侵入検知のSnortによって悪意のあるデータストリームを検出することができるシステム、スクリプトを変更しています。その
ウェル攻撃シグニチャ既知の攻撃を含む警報を生成することが見出された場合、各発信データパケットに一致するか、ドロップパケットは、攻撃者が失敗したコンフィギュレーションに応じて選択されたパケットを変更することを可能にします。ハニーネットのうち、すべてのネットワークパケットは、パケット交通ルールのライブラリが含まれていないだけで、Snort_inlineテストを通過する必要があります。それはまた、キューiptablesのモジュールによって達成され、検出されるべきSnort_inlineデータパケットに他の手段を使用しなければなりません。
(2)実際のルールてiptablesのリスト、のSnortとSnort_inlineパラメータの実際の実装を得ました。
-
iptables -t filter -L
ルールのリストを表示するために、-tは、指定されたルールテーブルである-Lリストを表します。
-
実行は
vim /etc/init.d/snortd
、snortdはSnortの起動スクリプトファイルで、あなたには、いくつかの実際の実行パラメータ、ルールsnort.confデフォルトを見ることができ、デフォルトのモニターネットワークカードはeth0とそうです。
-
vim /etc/init.d/hw-snort_inline
関連する実行にスクリプトを参照してください。
(3)のHoneywallの起動後、ファイアウォール、NIDSは、NIPSはどのように開始するのですか?
入力しchkconfig --list |grep 服务
たサービスの現在の状態を照会するために、。以下に示すように、我々はそれが手動でオープンする必要がある、NIDSポート7が全てオフになっていることがわかりました。ファイアウォールとNIPSは、すべてのそれは、システムが起動に従うことで、閉じられていません。
(4)ボーナス:SnortがのHoneywallが自動的にアップグレードする方法であるルール?
vim /etc/honeywall.conf
自動的にコンフィギュレーション・ファイルのオープンHoneywallのを更新するかどうかをSnortルールの観点、デフォルトでは表示の更新ではありません。
また、ソフトウェアを自動的に更新されOinkmasterは、使用見ることができますvim /etc/oinkmaster.conf
snort.confファイルは鼻息の自動アップグレードOinkmasterツールがあったと結論付けることができます、ファイルを開くために。
第三に、研究と溶液中で直面する問題
-
質問1:ファイアウォールは2機の後に、ホストマシンにのみ、指定されたサービスのアクセスを許可するように構成設定されている場合は、まだ成功訪問することができます。
ソリューション:データは、すべての事前設定に流入し、可能性があるため
iptables -A INPUT -p tcp -s 192.168.200.4 -j ACCEPT
最初の入力がするように設定してますが、特定のホストへのアクセスを許可し、他のマシンを禁止していないiptables -P INPUT DROP
缶に流れるすべてのデータを拒否します。 -
質問2:実行し
snort -c /etc/snort/snort.conf -r /home/kali/Desktop/listen.pcap
、テスト後、ディレクトリ/ var /ログ/鼻息にはデフォルトのアラート・ファイルはありません。回避策:バックパラメータを追加するためのSnortのコマンド
-K ascii
ASCII文字セットのストレージに解決することができます。
第四に、練習の概要
練習は主にSnortの侵入検知ツールは、スクリプトファイルを分析し、一般のHoneywallはその攻撃データの取り込みや制御の要件を完了するために、ファイアウォールや侵入検知技術を使用する方法であることを理解、iptablesのファイアウォールの設定を使用して行われます。練習は比較的簡単ですが、実際には使用に心に留めておくことを忘れないでください、コマンドのパラメータの使用中に発見されたか紛らわしいです。