Commit Graph

867 Commits

Author SHA1 Message Date
Tanaka Zakku
9fad9332b3 RuleCreationの英訳 2021-11-11 07:23:11 +11:00
James
5bfa6832c0 fix value keyword (#183) 2021-11-11 00:12:58 +09:00
DustInDark
22b36314a3 removed filepath extension #162 (#181) 2021-11-10 22:55:37 +09:00
DustInDark
be04a0410e Hotfix/hidden file read159 (#180)
* added error output of no evtx extension in  filepath and directory args #159

* fixed error of  hidden file read #159

- file extension is limited to yml  when load of rule

* fix for no extension rule file.

Co-authored-by: ichiichi11 <takai.wa.hajime@gmail.com>
2021-11-10 22:55:20 +09:00
James
9b24bc661b disp rule filepath (#179) 2021-11-10 20:00:52 +09:00
DustInDark
b278f12cec Feature/output elapsedtime153 (#172)
* add output process count of detects events #151

* add output process count of detects event when output stdio #151

* add format enter

* add output elapsed time #153

* fixed output position #153
2021-11-10 19:38:04 +09:00
DustInDark
0c7ad547bf changed output format #152 (#176)
- Title->Alert
- Message->Details
- add Computername and EventID
2021-11-10 19:33:25 +09:00
James
15a28e5602 cache regex for allowlist and regexes keyword. (#174) 2021-11-10 03:10:03 +09:00
James
1bdf6943ff update (#171) 2021-11-09 00:50:15 +09:00
James
c5d5d25817 change from black to allow. (#164) 2021-11-09 00:41:21 +09:00
James
e77a193c5c Feature/#158 add rulefilepath column (#168)
* add level csv column

* update

* Feature/output detect count151 (#167)

* add output process count of detects events #151

* add output process count of detects event when output stdio #151

* add format enter

* update

Co-authored-by: DustInDark <nextsasasa@gmail.com>
2021-11-09 00:35:28 +09:00
James
c97cf7373a change from lagotto to hayabusa. (#170) 2021-11-09 00:32:24 +09:00
DustInDark
e7e86c23c0 Feature/output detect count151 (#167)
* add output process count of detects events #151

* add output process count of detects event when output stdio #151

* add format enter
2021-11-08 23:51:01 +09:00
James
696dd9192a add level csv column (#166) 2021-11-08 22:37:49 +09:00
itiB
9eca0b12d5 WIP: Sigmaルールの変換用Backend作成 (#138)
* add.yea.py
2021-11-08 18:24:40 +09:00
Tanaka Zakku
f29b7d2d1a Updated rules 2021-11-06 09:51:38 +09:00
Tanaka Zakku
cb5bf450bb Update hayabusa naming 2021-11-06 08:29:58 +09:00
Tanaka Zakku
77a5025322 Merge branch 'main' of https://github.com/Yamato-Security/hayabusa into main 2021-11-06 08:14:39 +09:00
Tanaka Zakku
9273861d55 Readmeの更新 2021-11-06 08:14:27 +09:00
DustInDark
dcf015970c fixed warning #149 (#161) 2021-11-06 06:46:01 +09:00
Tanaka Zakku
240c9474b8 Updated 1102 log cleared rule 2021-11-05 12:23:40 +09:00
Tanaka Zakku
12f0b6d422 not needed because of generic clear event 2021-11-05 12:22:35 +09:00
DustInDark
2c0257e538 add how to notify to slack channel #140 (#147) 2021-11-04 10:46:54 +09:00
James
097b04500e fix img (#146) 2021-10-22 00:56:49 +09:00
James
4a1e46e47e Feature/#140 document (#144)
* update

* fix regexes and whitelist

* underconstructing

* fix

* update

* add pic

* update

* update

* update

* fix
2021-10-22 00:43:40 +09:00
nishikawaakira
23c60fa8ff Feature/slack_notify#134 (#139)
* add slack notify

* cargo fmt --all

* slack-hook version up

* change bot name
2021-09-30 20:43:50 +09:00
garigariganzy
76103d31f3 Feature/event stats#105 (#137)
Event集計機能実装

Co-authored-by: HajimeTakai <takai.wa.hajime@gmail.com>
2021-09-20 23:53:45 +09:00
James
403844ae45 finish (#136) 2021-09-13 23:26:15 +09:00
James
a469e6e60b #102実装しました。 (#133) 2021-09-09 10:37:33 +09:00
DustInDark
37ebb046fa Feature/appendalias#124 (#132)
* Feature/call error message struct#66 (#69)

* change  way to use write trait #66

* change call error message struct #66

* erase finished TODO #66

* erase comment in error message format test #66

* resolve conflict #66

* Feature/call error message struct#66 (#71)

* change ERROR writeln struct #66

* under constructing

* add statistics template

* fix

* add comment

* add condition impl #93

* fix erased get_descendants and remove unnecessaly struct #93

* erased finished TODO comment

* erased finished TODO comment

* Revert "fix erased get_descendants and remove unnecessaly struct #93"

This reverts commit 82e905e045.

Revert "add condition impl #93"

This reverts commit 19ecc87377.

* add doc comment to rule function

* fix and add test doc commet

* add doc to AggregaationParseInfo

* add struct count in aggregation condition. #93

* add evaluate aggregation condition func provisional architecture. #93

* add countup function #93

* fix key to count hashmap #93

* add judge aggregation condition function #93

* fix  error #93

* fix test #93

* share compile error ver

* fix detection.rs compile error

* fix timeframe parse

* add countup process in select

* fix select argument

* add test countup

* add test count judge #93

* add SIGMA windows count field and by keyword #93

* fix reference record in countup/judgecount #93

* add timedata in countup schema #93

* Refact: split code for matcher from rule.rs

* Reafact: combine multiple declared functions

* Refact: split code for SelectionNode from rule.rs

* Refact: mv test code for SelectionNode from rule.rs

* Refact: mv condition's code from rule.rs

* add count to detection #93

* fix compile error

* fix source to test ng. #93

* erase unused variable #93

* fix count architecture #93

* fix comment and compile error

* erase dust (response  to review)

* erase dust (response to review)

* reduce calling Rulenode function (response to review)

* add aggregation output func

* erase dust(response to review) and add agg condition String func

* change error output

* reduce call RuleNode function(response to review)

* To reduce call RuleNode function

* fix test name

* fix coflicted resolve miss

* add code comment in timeframe count.

* add sort record timedata in timeframe(response to review)

* fix unnecesasry result in ArgResult

* add no field and by value count test

* create count test no field and by with timeframe

* erase duplicated timeframe data in RuleNode

* fix test error no field and no by count with timeframe

* fix test name

* add test case of exist field and by count.

* fix by count test and add test count othervalue in timeframe

* add test

* fix judge_timeframe logic when indexout

* fix test name and add count test field and by with timeframe

* adjust #120

* move associated count function from rulenode

* fix error when resolve conflict

* adjust T1197_bitsjob_started

* fix no output bug if exist output

* add alias to adapt SIGMA Rules #124

* add rule to bitsjob #130

* decilde sha1 is excepted #124

* prepare merge main

Co-authored-by: HajimeTakai <takai.wa.hajime@gmail.com>
Co-authored-by: itiB <is0312vx@ed.ritsumei.ac.jp>
2021-07-22 22:47:07 +09:00
DustInDark
166ba28775 Feature/bits job#130 (#131)
* Feature/call error message struct#66 (#69)

* change  way to use write trait #66

* change call error message struct #66

* erase finished TODO #66

* erase comment in error message format test #66

* resolve conflict #66

* Feature/call error message struct#66 (#71)

* change ERROR writeln struct #66

* under constructing

* add statistics template

* fix

* add comment

* add condition impl #93

* fix erased get_descendants and remove unnecessaly struct #93

* erased finished TODO comment

* erased finished TODO comment

* Revert "fix erased get_descendants and remove unnecessaly struct #93"

This reverts commit 82e905e045.

Revert "add condition impl #93"

This reverts commit 19ecc87377.

* add doc comment to rule function

* fix and add test doc commet

* add doc to AggregaationParseInfo

* add struct count in aggregation condition. #93

* add evaluate aggregation condition func provisional architecture. #93

* add countup function #93

* fix key to count hashmap #93

* add judge aggregation condition function #93

* fix  error #93

* fix test #93

* share compile error ver

* fix detection.rs compile error

* fix timeframe parse

* add countup process in select

* fix select argument

* add test countup

* add test count judge #93

* add SIGMA windows count field and by keyword #93

* fix reference record in countup/judgecount #93

* add timedata in countup schema #93

* Refact: split code for matcher from rule.rs

* Reafact: combine multiple declared functions

* Refact: split code for SelectionNode from rule.rs

* Refact: mv test code for SelectionNode from rule.rs

* Refact: mv condition's code from rule.rs

* add count to detection #93

* fix compile error

* fix source to test ng. #93

* erase unused variable #93

* fix count architecture #93

* fix comment and compile error

* erase dust (response  to review)

* erase dust (response to review)

* reduce calling Rulenode function (response to review)

* add aggregation output func

* erase dust(response to review) and add agg condition String func

* change error output

* reduce call RuleNode function(response to review)

* To reduce call RuleNode function

* fix test name

* fix coflicted resolve miss

* add code comment in timeframe count.

* add sort record timedata in timeframe(response to review)

* fix unnecesasry result in ArgResult

* add no field and by value count test

* create count test no field and by with timeframe

* erase duplicated timeframe data in RuleNode

* fix test error no field and no by count with timeframe

* fix test name

* add test case of exist field and by count.

* fix by count test and add test count othervalue in timeframe

* add test

* fix judge_timeframe logic when indexout

* fix test name and add count test field and by with timeframe

* adjust #120

* move associated count function from rulenode

* fix error when resolve conflict

* adjust T1197_bitsjob_started

* fix no output bug if exist output

* add rule to bitsjob #130

Co-authored-by: HajimeTakai <takai.wa.hajime@gmail.com>
Co-authored-by: itiB <is0312vx@ed.ritsumei.ac.jp>
2021-07-21 08:57:22 +09:00
DustInDark
330cbb58ca WIP: Feature/count sigma rule #93 (#113)
* Feature/call error message struct#66 (#69)

* change  way to use write trait #66

* change call error message struct #66

* erase finished TODO #66

* erase comment in error message format test #66

* resolve conflict #66

* Feature/call error message struct#66 (#71)

* change ERROR writeln struct #66

* under constructing

* add statistics template

* fix

* add comment

* add condition impl #93

* fix erased get_descendants and remove unnecessaly struct #93

* erased finished TODO comment

* erased finished TODO comment

* Revert "fix erased get_descendants and remove unnecessaly struct #93"

This reverts commit 82e905e045.

Revert "add condition impl #93"

This reverts commit 19ecc87377.

* add doc comment to rule function

* fix and add test doc commet

* add doc to AggregaationParseInfo

* add struct count in aggregation condition. #93

* add evaluate aggregation condition func provisional architecture. #93

* add countup function #93

* fix key to count hashmap #93

* add judge aggregation condition function #93

* fix  error #93

* fix test #93

* share compile error ver

* fix detection.rs compile error

* fix timeframe parse

* add countup process in select

* fix select argument

* add test countup

* add test count judge #93

* add SIGMA windows count field and by keyword #93

* fix reference record in countup/judgecount #93

* add timedata in countup schema #93

* Refact: split code for matcher from rule.rs

* Reafact: combine multiple declared functions

* Refact: split code for SelectionNode from rule.rs

* Refact: mv test code for SelectionNode from rule.rs

* Refact: mv condition's code from rule.rs

* add count to detection #93

* fix compile error

* fix source to test ng. #93

* erase unused variable #93

* fix count architecture #93

* fix comment and compile error

* erase dust (response  to review)

* erase dust (response to review)

* reduce calling Rulenode function (response to review)

* add aggregation output func

* erase dust(response to review) and add agg condition String func

* change error output

* reduce call RuleNode function(response to review)

* To reduce call RuleNode function

* fix test name

* fix coflicted resolve miss

* add code comment in timeframe count.

* add sort record timedata in timeframe(response to review)

* fix unnecesasry result in ArgResult

* add no field and by value count test

* create count test no field and by with timeframe

* erase duplicated timeframe data in RuleNode

* fix test error no field and no by count with timeframe

* fix test name

* add test case of exist field and by count.

* fix by count test and add test count othervalue in timeframe

* add test

* fix judge_timeframe logic when indexout

* fix test name and add count test field and by with timeframe

* adjust #120

* move associated count function from rulenode

* fix error when resolve conflict

* fix no output bug if exist output

Co-authored-by: HajimeTakai <takai.wa.hajime@gmail.com>
Co-authored-by: itiB <is0312vx@ed.ritsumei.ac.jp>
2021-07-16 07:20:44 +09:00
itiB
65b714b81b rule.rsを分割する (#121)
* Refact: split code for matcher from rule.rs

* Reafact: combine multiple declared functions

* Refact: split code for SelectionNode from rule.rs

* Refact: mv test code for SelectionNode from rule.rs

* Refact: mv condition's code from rule.rs

* Refact: mv aggregation's code from condition_parser.rs

* Refact: use relationships

* cargo fmt --all

* remove unnecessary matcher

Co-authored-by: HajimeTakai <takai.wa.hajime@gmail.com>
2021-07-08 01:41:59 +09:00
James
c13e6da932 Feature/sigmarule wildcard regex caseinsensitive#119 (#123)
* under constructing

* underconstructing

* fix rule file for SIGMA rule.

* wildcard case insensetive.

* refactor

* Update src/detections/rule.rs

add test triple backshash

Co-authored-by: itiB <is0312vx@ed.ritsumei.ac.jp>

* remove unnecessary if statement

Co-authored-by: itiB <is0312vx@ed.ritsumei.ac.jp>
2021-07-02 20:19:53 +09:00
James
ea9f6b96c7 Feature/and or not #107 (#117)
* wip

* wip

* wip

* wip

* wip

* wip

* wip

* dekita

* cargo fmt --all

* change message

* count parse implementedgit add .!

* Update: use docstring in rule.rs (#118)

* add testcase.

* add testcase.

* fix comment

Co-authored-by: itiB <is0312vx@ed.ritsumei.ac.jp>
2021-06-04 00:35:03 +09:00
itiB
b22051e207 Feature/str exact match#79 (#100)
* Add: LeafMatch struct 'StartsWithMatcher'

* Add: LeafMatch struct 'EndsWithMatcher'

* Add: LeafMatch struct 'ContainsMatcher'

* WIP: StrFeature

* Add: get strFeature's from rule file

* refact

* Revert "refact"
This reverts commit 5439b4d6d52dff4a90307206404e38ff20fe792e.

Revert "Add: get strFeature's from rule file"
This reverts commit 152ad10a03f67f23e6de3db93be9b4e7eaf6a7a8.

Revert "WIP: StrFeature"
This reverts commit bf7271348d30b24f6063cfe8ce5b27e956143d60.

* Add: matcher selector for string options

* Add: rm |xxx text from rule file

* fix: leafNodes's |xxx command overwritten

* test: startswith, endswith, contains LeafNodeTest

* test: use string MethodNode in OrSelectionNode

* cargo fmt --all

* Update: when undefined rule option occur, raise err
2021-05-28 23:19:43 +09:00
James
9b8bed70f8 Feature/timeline template #104 (#106)
* under constructing

* add statistics template

* fix

* add comment

* change for statistics
2021-05-16 01:34:48 +09:00
Alan Smithee
99b640adaa Add rule of Kerberoasting and AS-REP Roasting #91 (#101)
* Feature/call error message struct#66 (#69)

* change  way to use write trait #66

* change call error message struct #66

* erase finished TODO #66

* erase comment in error message format test #66

* resolve conflict #66

* Feature/call error message struct#66 (#71)

* change ERROR writeln struct #66

* add Kerberoasting & AS-REP Roasting Rule #91

* fix rule and add alias #91
2021-05-13 22:52:15 +09:00
James
e0b5434716 Merge pull request #99 from YamatoSecurity/feature/make_rule.rs_testcase_#97
Feature/make rule.rs testcase #97
2021-05-13 22:30:23 +09:00
ichiichi11
ee23fc9a66 cargo fmt --all 2021-05-13 22:07:41 +09:00
ichiichi11
e960586ede fix comment 2021-05-13 22:05:49 +09:00
HajimeTakai
7cd0691764 cargo fmt --all 2021-05-12 23:19:03 +09:00
HajimeTakai
e504a36d0a refactoring 2021-05-12 23:16:11 +09:00
HajimeTakai
4e68e75cb2 add testcase 2021-05-12 22:45:38 +09:00
HajimeTakai
b9752e567d underconstructing 2021-05-10 00:41:20 +09:00
HajimeTakai
61ae299e4b underconstructing 2021-05-10 00:14:50 +09:00
HajimeTakai
7913fbfb95 refactoring 2021-05-09 17:26:17 +09:00
James
2f24dc775f Feature/filter record by eventid#94 (#95)
* add function to get event id from rootnode.

* refactoring #76

* maybe fix bug.

* before test

* fix source files.

* cargo fmt --all

* add threadnum parameter
2021-05-06 20:58:43 +09:00
Alan Smithee
a68a59417d Feature/add eventfilepath to csv #76 (#89)
* Feature/call error message struct#66 (#69)

* change  way to use write trait #66

* change call error message struct #66

* erase finished TODO #66

* erase comment in error message format test #66

* resolve conflict #66

* Feature/call error message struct#66 (#71)

* change ERROR writeln struct #66

* add evtx file path export to csv #76

* fixed test case #76

* fix for #76

* forget cargo fmt -all

* fix testcase

Co-authored-by: ichiichi11 <takai.wa.hajime@gmail.com>
2021-05-01 09:49:48 +09:00
ichiichi11
541494047a Merge branch 'feature/multi-thread#68' 2021-04-01 23:20:55 +09:00