0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SolitonNKは結果の表示だけじゃない。スクリプトを使って解析結果を基にアクションさせよう。(3/3) 異常DNSクエリをウェブに書き出すサンプルスクリプト

Last updated at Posted at 2020-04-10

SolitonNKでankoスクリプトを用いて、解析結果を基にアクションさせるための解説記事、いよいよ最終回はスクリプトサンプルです。

ankoのnet/httpパッケージを用いて、引数DATAを受取って、ウェブAPIにポストするスクリプトのコア部分は次のようになります。

body = strings.NewReader(DATA)
req, _ = http.NewRequest("POST", url, body)
req.Header.Add("Content-Type", "application/octet-stream")
resp, _ = http.DefaultClient.Do(req)
setEnum("Status", resp.Status)
return true

これを用いて、Winevent インジェスターを用いたDNSクエリ―分析 の発展形として、DNSクエリ―が異常ステータスになった場合を抽出し、QueryStatusQueryNamehttp://www.example.com にポストするというサンプルスクリプトを作ると次のようになります。

var http = import("net/http")
var strings = import("strings")

var url = "http://www.example.com"

func Process() {
    body = strings.NewReader(QueryStatus+","+QueryName)
    req, _ = http.NewRequest("POST", url, body)
    req.Header.Add("Content-Type", "application/octet-stream")
    resp, _ = http.DefaultClient.Do(req)
    setEnum("Status", resp.Status)
    return true
}

この anko スクリプトを postapi というリソースネームでSolitonNKに登録しておき、検索として

tag=sysmon winlog EventID Image QueryName QueryResults QueryStatus!=0 | limit 5 | anko postapi | table
SolitonNK-異常ステータスのDNSクエリ一覧2.png

などとすると、異常ステータスを示した5件分だけをウェブAPIにポストすることができます。なおWindowsのSyslogにおいて、QueryStatusは正常の際は0になり、何らかのエラーがある場合は0以外の値となることから、検索例ではQueryStatusが0以外になった場合を抽出しています。QueryStatusの値とその意味の一覧を見ると分かるように、例えばQueryResultが無い場合にはQueryStatusは9701になります。

検索でヒットしたDNSクエリ―のQueryStatusQueryNameは、ウェブAPIにポストされますので、ウェブサーバーのアクセスログは次のようになります。

SolitonNK-異常ステータスのDNSクエリ一覧-webサーバログ2.png

Soliton NKを評価するための無償ダウンロードは以下のSoliton NK 公式サポートサイトでお申し込み下さい。

Soliton NKによってさらに高度なログ分析をする方法の詳細について、今後記事を追加していく予定です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?