ファイアウォールアプライアンスからCSVファイルにログをダンプするsyslogサーバーがあります。私はそのcsvファイルを取得しており、ログでソースIPアドレスや宛先IPアドレスなどの特定のデータを引き出して、後でさらに分析を実行できるようにします。
これは、ソースファイルからの単一レコードの例です。データ内に含まれるIPアドレスに「src_ip」、「dst_ip」、「tran_src_ip」または「tran_dest_ip」のプレフィックスが付いていることに注意してください。 注:IPアドレスを編集してマスクします。
2018-07-01 14:48:47,Local7.Info,192.168.1.00,device="SFW" date=2018-07-01 time=14:48:39 timezone="PDT" device_name="XG" device_id=00000000000000 log_id=010101600001 log_type="Firewall" log_component="Firewall Rule" log_subtype="Allowed" status="Allow" priority=Information duration=11 fw_rule_id=3 policy_type=3 user_name="" user_gp="" iap=0 ips_policy_id=0 appfilter_policy_id=0 application="Secure Socket Layer Protocol" application_risk=1 application_technology="Network Protocol" application_category="Infrastructure" in_interface="Port2" out_interface="Port1" src_mac=00: 0:00: 0:00: 0 src_ip=75.148.000.000 src_country_code=USA dst_ip=23.24.000.000 dst_country_code=USA protocol="TCP" src_port=55000 dst_port=443 sent_pkts=7 recv_pkts=6 sent_bytes=1369 recv_bytes=918 tran_src_ip=192.168.000.000 tran_src_port=0 tran_dst_ip=192.168.000.000 tran_dst_port=0 srczonetype="WAN" srczone="WAN" dstzonetype="LOCAL" dstzone="LOCAL" dir_disp="" connevent="Stop" connid="1782869248" vconnid="" hb_health="No Heartbeat" message="" appresolvedby="Signature"
CSVファイル全体からIPアドレスを取得できるスクリプトを作成できましたが、src_ipかdst_ipかなどは指定していません。取得できるスクリプトを作成したいと思います。 CSVファイルからデータを取得し、src_ip、dest_ipなどを含む列を持つ新しいCSVファイルを作成します。
私のコードは以下の通りです:
$input_path = ‘c:\powershell_work\data.csv’
$output_file = ‘c:\powershell_work\output-file.csv’
$regex = ‘\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b’
$ipaddresses = select-string -Path $input_path -Pattern $regex -AllMatches |
% { $_.Matches } | % { $_.Value } | out-file $output_file -append
関連記事
- Powershellを使用してファイルが存在するかどうかを確認します
- PowershellGet-Azvmを使用してAzureのVMのリストのステータスを取得する方法
- boto3を使用してファイルをS3にアップロードしようとすると、ファイルが見つかりません
- 相対パスを使用してC ++ファイルを上に移動する方法
- bashスクリプトを使用してテラフォーム変数ファイルを編集する
- Pythonを使用してWebからテーブルデータを抽出する
- Pythonでfirebaseを使用してフォルダ(csvファイルを含む)をdBにアップロードする
- nodejsfsを使用してファイルを同時に読み取る
- csvデータpowershellの使用中に特定のフォルダーのみをコピーする
- PowerShellで破損しているファイルを確認する方法
- PowerShellで文字列を解析する
- CSVリストから[n]個のアイテムを選択して変数に割り当て、後でそれらのアイテムを削除して、PowerShellを使用してファイルを保存する方法
- PowerShellは、CSVからデータをインポートおよびソートして、New-CMBoundary(SCCM)を自動化します
- Pythonの最初の行の単語を置き換える方法は?
- csvファイルの重複する列名を修正
- 相違点をCSVにエクスポートし、別のCSV PowerShellの列と組み合わせる
- 二重引用符で囲まれた部分文字列内のタブ文字のみを置換するPowerShellスクリプト
- Python:csvから特定の行をリストとして抽出する
- XMLをCSVに変換できない
LotPingsによる編集
上記の更新された入力のサンプル出力(
Export-Csv
の前) コール):指定可能な一連のプロパティを抽出するには名前:
これは最初にオブジェクトを作成することに注意してくださいすべて 入力プロパティとそれから
Select-Object
経由で関心のあるもののみを選択します 、やや非効率的ですが、コマンドを概念的にシンプルに保ち、抽出を簡単に決定できます注文。