Open YamatoSecurity opened 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.
複雑のせいか、まだsigma correlationsが正式に定義されていなくて、ルールも無いので、もっと単純なnear
ルールが作れるようにしたいので、@kazuminnさんにこの件をお願いしました。
@YamatoSecurity こちら念のための確認ですが、countとは併用しない感じでしょうか? ‘selection | near xxx | count() > 10’ などは無しな感じで。
良い質問です!まだそういうルールはありませんが、それができたら、例えば、攻撃者が10回パスワードを失敗した後に、ログオンに成功した場合は、「パスワード推測攻撃が成功された!」というルールが書けるので、良さそうです。 が、実装が難しそうだったら、最初はnearとcountの組み合わせに対応しなくて良いと思います。
selectionとnearの述語が同じ場合、同じ処理をしてしまうので、時間が二倍かかりますが、 最適化は後回しにして、とりあえず、それで実装してみようと思います。
長らく放置気味でしたが、実装を再開
@YamatoSecurity お疲れ様です。 どんな感じのレポートを表示したいなどの例はありますか?とりあえず、near単体だけのがほしいです。
@YamatoSecurity あと、私の認識が合ってるかどうかを確認したいのですが、
search_expression | near(near_expression)
の場合、search_expressionとnear_expressionの両方を満たすrecordがtimeframeの間に、隣接していると、検出されるであっていますでしょうか?
複数のイベントを検出しているので、複数のアラートを出力する必要がありますね。
今Sigmaにあるunsupportedのnear
ルールを再確認しましたが、良い例が無さそうなので、near
の代わりにSigma correlationsのtemporalルールに対応した方が良さそうです。
取り敢えず、https://github.com/SigmaHQ/sigma-specification/blob/version_2/Sigma_meta_rules.md#temporal-proximity-temporal を読んで頂けますか?
私はまだ把握できていないので、少々お待ちください。
|near
aggregatorを使っているルールはまだ少ないのですが、より正確なルールが書けそうなので、実装できたら実装したいです。