Yamato-Security / hayabusa

Hayabusa (隼) is a sigma-based threat hunting and fast forensics timeline generator for Windows event logs.
GNU General Public License v3.0
2.07k stars 183 forks source link

Implement near aggregator #484

Open YamatoSecurity opened 2 years ago

YamatoSecurity commented 2 years ago

|near aggregatorを使っているルールはまだ少ないのですが、より正確なルールが書けそうなので、実装できたら実装したいです。

hitenkoku commented 2 years ago

SigmaのWikiを見てみましたが、near aggregatorはdeprecatedと公式に言っているみたいです。 sigmaルール側も現状の利用数が少ないので、一旦保留としたほうが良さそうです。

Near aggregation expression (deprecated, see correlations draft for future plans)

near search-id-1 [ [ and search-id-2 | and not search-id-3 ] ... ]

This expression generates (if supported by the target system and backend) a query that recognizes search_expression (primary event) if the given conditions are or are not in the temporal context of the primary event within the given time frame.

YamatoSecurity commented 1 year ago

複雑のせいか、まだsigma correlationsが正式に定義されていなくて、ルールも無いので、もっと単純なnearルールが作れるようにしたいので、@kazuminnさんにこの件をお願いしました。

kazuminn commented 1 year ago

@YamatoSecurity こちら念のための確認ですが、countとは併用しない感じでしょうか? ‘selection | near xxx | count() > 10’ などは無しな感じで。

YamatoSecurity commented 1 year ago

良い質問です!まだそういうルールはありませんが、それができたら、例えば、攻撃者が10回パスワードを失敗した後に、ログオンに成功した場合は、「パスワード推測攻撃が成功された!」というルールが書けるので、良さそうです。 が、実装が難しそうだったら、最初はnearとcountの組み合わせに対応しなくて良いと思います。

kazuminn commented 9 months ago

selectionとnearの述語が同じ場合、同じ処理をしてしまうので、時間が二倍かかりますが、 最適化は後回しにして、とりあえず、それで実装してみようと思います。

kazuminn commented 7 months ago

長らく放置気味でしたが、実装を再開

kazuminn commented 2 months ago

@YamatoSecurity お疲れ様です。 どんな感じのレポートを表示したいなどの例はありますか?とりあえず、near単体だけのがほしいです。

kazuminn commented 2 months ago

@YamatoSecurity あと、私の認識が合ってるかどうかを確認したいのですが、

search_expression | near(near_expression)

の場合、search_expressionとnear_expressionの両方を満たすrecordがtimeframeの間に、隣接していると、検出されるであっていますでしょうか?

YamatoSecurity commented 2 months ago

複数のイベントを検出しているので、複数のアラートを出力する必要がありますね。 今Sigmaにあるunsupportedのnearルールを再確認しましたが、良い例が無さそうなので、nearの代わりにSigma correlationsのtemporalルールに対応した方が良さそうです。 取り敢えず、https://github.com/SigmaHQ/sigma-specification/blob/version_2/Sigma_meta_rules.md#temporal-proximity-temporal を読んで頂けますか? 私はまだ把握できていないので、少々お待ちください。