今回は、ggsideパッケージを使って補足データをプロットの脇に添える手法を解説します。ggsideパッケージへの私の認識は周辺分布を表示させるものだというもので、あまり有用性を感じていませんでした。しかし、使い方次第ではプロットの表現力を高められることに気づき、認識を改めました。
Quarto Pub「ggsideによる補足データの表現」
今回は、ggsideパッケージを使って補足データをプロットの脇に添える手法を解説します。ggsideパッケージへの私の認識は周辺分布を表示させるものだというもので、あまり有用性を感じていませんでした。しかし、使い方次第ではプロットの表現力を高められることに気づき、認識を改めました。
Quarto Pub「ggsideによる補足データの表現」
この記事では、Splunkによるログ分析調査の過程をQuartoを使って記録する様子を記載しています。Quartoの中からSplunkサーチを実行してデータフレームを取得し、それを加工したり、結果の解釈を生成AIに聞いたりできます。データセットには、Boss of the SOC v3を使いました。
Quarto Pub「Splunkを用いた調査の過程を記録する」
この記事では、httr2パッケージを使ってウェブAPIからデータを取得する方法を、Censys Search APIを例にとって解説します。ウェブAPIでは認証・レート制限・ページ分割が代表的な障壁で、このうちページ分割が最もサイトごとに個性が表れます。
Censysはカーソル型のページ分割を採用しています。反復的にリクエストを実行するreq_perform_iterative()をヘルパー関数と組み合わせて使うことで、ページ分割が処理できます。
Quarto Pub「Censysを題材にウェブAPIのページ分割を学ぶ」
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からデータを抽出する」
情報セキュリティ関連業務にはログ分析が付き物であるものの、当該ログが最初からログ基盤に入っているとはかぎりません。システム担当者からログを圧縮ファイルとして受け取ることも多々あります。
そのログをいきなりRで読むのも一興ですが、一度Splunkに取り込ませることも有力です。というのは、フィールド名の正規化や情報付与にはSplunkを使うほうが簡単だからです。
ただ、Splunk GUI画面でのログ入力は、最大500MBを1ファイルずつしかアップロードできないので、使い勝手がよくありません。かわりに利用可能なのが、HEC(HTTP Event Collector)REST APIです。
この記事では、httr2パッケージを使ってHECにアクセスする手法を解説します。ログファイルのアドホックな転送がHeavy Forwarderなどを要さずに実現できるので、なかなか便利なものです。
RPubs「アドホックなログをSplunkに転送する」