dfirr

A Note on R How-to in Cybersecurity Investigation

ggsideによる補足データの表現

今回は、ggsideパッケージを使って補足データをプロットの脇に添える手法を解説します。ggsideパッケージへの私の認識は周辺分布を表示させるものだというもので、あまり有用性を感じていませんでした。しかし、使い方次第ではプロットの表現力を高められることに気づき、認識を改めました。

Quarto Pub「ggsideによる補足データの表現

https://dfirr.quarto.pub/20251207ggside/sideplot.png

Splunkを用いた調査の過程を記録する

この記事では、Splunkによるログ分析調査の過程をQuartoを使って記録する様子を記載しています。Quartoの中からSplunkサーチを実行してデータフレームを取得し、それを加工したり、結果の解釈を生成AIに聞いたりできます。データセットには、Boss of the SOC v3を使いました。

Quarto Pub「Splunkを用いた調査の過程を記録する

Seleniumを使わず動的ページをスクレイピングする

この記事では、rvestパッケージを使って動的なウェブページからスクレイピングする方法を、RSA Conferenceのサイトを例にとって解説します。2024年2月のrvest 1.0.4から利用可能になったread_html_live()関数を使うと、Seleniumを使わずChrome DevTools ProtocolによってChromeを制御できるようになります。

Quarto Pub「Seleniumを使わず動的ページをスクレイピングする

Censysを題材にウェブAPIのページ分割を学ぶ

この記事では、httr2パッケージを使ってウェブAPIからデータを取得する方法を、Censys Search APIを例にとって解説します。ウェブAPIでは認証・レート制限・ページ分割が代表的な障壁で、このうちページ分割が最もサイトごとに個性が表れます。

Censysはカーソル型のページ分割を採用しています。反復的にリクエストを実行するreq_perform_iterative()をヘルパー関数と組み合わせて使うことで、ページ分割が処理できます。

Quarto Pub「Censysを題材にウェブAPIのページ分割を学ぶ

DFIR実務者のためのSplunkによるデータ加工の手筋

Rの話題ではなくて申し訳ないのですが、2024年12月5日のSANS Community Night講演資料を本記事に置いておきます。ちなみに「手筋」というタイトルは、中村太地さんの『どんどん強くなる こども将棋 勝てる手筋がわかる本』から拝借しました。

drive.google.com

MD5ハッシュ値: dda9fd3e2412e504f9c730d339c536f0

SANS Webcast(12/5 18:30-19:30)

www.sans.org

SOF-ELKからデータを抽出する

SOF-ELKは Elasticスタックを用いたOSSのログ分析ツールであり、SANS FOR572(Advanced Network Forensics and Analysis)やFOR509(Enterprise Cloud Forensics and Incident Response)の授業で採用されています。NetflowログからGCPログに至るまで、事前に定義されたディレクトリにファイルを格納するだけでインデックス化してくれる点が分析者にとっては助かります。データ収集基盤として、非常に優秀です。

その反面、データ分析基盤としては、そこまで使い勝手がよくはありません。それは主にKibanaの技術的制約によるものです。たとえば私が思いつくのは、以下のような点です。①デフォルトのクエリ言語(KQL: MicrosoftのKustoとは別の言語です)は表現力に乏しい。(たとえば集計できないし、検索に正規表現も使えないし、事後のエンリッチメントが不可能。)②検索時間帯の指定やフィールドの表示など、根本的な操作の多くをGUIに依存しているので、手早い分析や手法の共有に不便。③Visualizeにページ切り替えが必要で、この点も不便。

そこで、SOF-ELKの強みを活用し、弱みを補強するために、データ分析部分をR/Pythonで行うことを考えます。EOF-ELKからデータフレームが抽出できれば十分でしょう。今回は、①Elasticsearch SQL、②Eland Python ClientというElasticに搭載されている機能を活用して、R/Pythonのデータフレームに変換する手法を紹介します。特に②はデータフレーム操作そのものをElasticsearch上で実現しており、大容量のデータ転送を不要にする点が有用です。

RPubs「SOF-ELKからデータを抽出する

アドホックなログをSplunkに転送する

情報セキュリティ関連業務にはログ分析が付き物であるものの、当該ログが最初からログ基盤に入っているとはかぎりません。システム担当者からログを圧縮ファイルとして受け取ることも多々あります。

そのログをいきなりRで読むのも一興ですが、一度Splunkに取り込ませることも有力です。というのは、フィールド名の正規化や情報付与にはSplunkを使うほうが簡単だからです。

ただ、Splunk GUI画面でのログ入力は、最大500MBを1ファイルずつしかアップロードできないので、使い勝手がよくありません。かわりに利用可能なのが、HEC(HTTP Event Collector)REST APIです。

この記事では、httr2パッケージを使ってHECにアクセスする手法を解説します。ログファイルのアドホックな転送がHeavy Forwarderなどを要さずに実現できるので、なかなか便利なものです。

RPubs「アドホックなログをSplunkに転送する