Zach Mathis (田中ザック)
Zach Mathis (田中ザック)
@kazuminn Sigmaの元々のregexがそのままrust crateだとパースエラーを起こしています: ``` [WARN] Failed to parse rule file. (FilePath : ../sigma/rules/windows/powershell/powershell_module/posh_pm_invoke_obfuscation_via_var.yml) [WARN] Cannot parse regex. [regex:(?i).*&&set.*(\{\d\}){2,}\\\"\s+?\-f.*&&.*cmd.*\/c, key:detection -> selection -> Payload|re] [WARN] Failed to parse rule file. (FilePath...
@kazuminn ありがとうございます! 最近のバージョンのPHP等はPCRE2を使っているので、その実装が良さそうですが、Sigmaの運営者に聞いてみました: [https://github.com/SigmaHQ/sigma-specification/issues/25](https://github.com/SigmaHQ/sigma-specification/issues/25) 返事が返ってきたら、ご連絡します。
なるほど、決まっていないっぽいので、返事は少し時間がかかるかもしれません。。(作者によって正規表現の書き方が違う気がします・・) そうですね。このまま両方を残しておいて、レスポンスを待ちましょう。 PCREとPCRE2は書き方が若干違うみたいです: https://stackoverflow.com/questions/70273084/regex-differences-between-pcre-and-pcre2 こちらで、Python等でルールの正規表現を抽出して、PCREとPCRE2で書き方が正しいかどうかチェックするしかないかもしれません。
@kazuminn こちらで確認しました。Sigmaルールの正規表現はPCREでもPCRE2でもパースエラーが出ませんでした。 ということで、PCRE2での実装をお願いできますか?
@kazuminn sigmaの人から返事が返ってきました。 ( [https://github.com/SigmaHQ/sigma-specification/issues/25#issuecomment-1312845459](https://github.com/SigmaHQ/sigma-specification/issues/25#issuecomment-1312845459) ) やはり、ちゃんと定義されていないようです。正規表現をそのままバックエンドに渡しているので、一番よく使われているPCREの正規表現だったら問題がないはずだけど、高度な正規表現だと、うまくいかない可能性があるので、以下の条件に絞った方が良いんじゃないかな〜?て言っています. > It's indeed not specified and currently existing conversion logic (pySigma, sigmac) passes it through to the query. I think PCRE is currently most...
@kazuminn PCREで実装するのは、代わりありません。 条件は気にしなくて良いと思います。Sigmaのドキュメンテーションに書くものなので。 実装が終わったら、「HayabusaはPCRE2を使っています」とHayabusa-rulesのreadmeに書こうと思っています。
@kazuminn 実装はどこまで進んでいますか?
@kazuminn ありがとうございます! 了解です。無理しないようにね!年内で大丈夫です。
@kazuminn まだテストとclippyに失敗しても良いので、コンパイルできる状態だったら、こちらでどのぐらい速くなっているか等検証したいのですが、ドラフトのPRを上げて頂けますか?
複雑のせいか、まだsigma correlationsが正式に定義されていなくて、ルールも無いので、もっと単純な`near`ルールが作れるようにしたいので、@kazuminnさんにこの件をお願いしました。