hayabusa icon indicating copy to clipboard operation
hayabusa copied to clipboard

Enhancement: Separate help menu by commands

Open YamatoSecurity opened this issue 2 years ago • 2 comments

メニューを整理したら、分かったのですが、ACTIONによって使えるオプションが変わってくるので、全部同じヘルプメニューにするのは初めて使う人には分かりにくいと思います。(オプションとアクションを混ぜているのも分かりにくいです) cargoのコマンドのようにコマンドごとのヘルプメニューを用意した方が理想ですが、修正が大変であれば、次のMajor Release (1.6)で良いと思います。

取り敢えず、コマンド(ACTION)のオプションをリストアップします。

GLOBAL OPTIONS:
        --no-color              Disable color output
    -q, --quiet                 Quiet mode: do not display the launch banner
    -t, --thread-number <NUMBER>                Thread number (default: optimal number for performance)
        --target-file-ext <EVTX_FILE_EXT>...    Specify additional target file extensions (ex: evtx_data) (ex: evtx1 evtx2)
  1. csv-timeline, c (今のデフォルトのタイムライン作成) hayabusa help csv-timelineの例:
INPUT:
    -d, --directory <DIRECTORY>    Directory of multiple .evtx files
    -f, --filepath <FILE>          File path to one .evtx file
    -l, --live-analysis            Analyze the local C:\Windows\System32\winevt\Logs folder

OUTPUT:
    -o, --output <FILE> 	   Save the timeline in CSV format (ex: results.csv)
    -P, --profile <PROFILE>        Specify output profile

FILTERING:
    -D, --deep-scan                     Disable event ID filter to scan all events
        --enable-deprecated-rules       Enable rules marked as deprecated
        --exclude-status <STATUS>...    Ignore rules according to status (ex: experimental) (ex: stable test)
    -m, --min-level <LEVEL>             Minimum level for rules (default: informational)
    -n, --enable-noisy-rules            Enable rules marked as noisy
        --timeline-end <DATE>           End time of the event logs to load (ex: "2022-02-22 23:59:59 +09:00")
        --timeline-start <DATE>         Start time of the event logs to load (ex: "2020-02-22 00:00:00 +09:00")

TIME-FORMAT:
        --European-time       Output timestamp in European time format (ex: 22-02-2022 22:00:00.123 +02:00)
        --RFC-2822            Output timestamp in RFC 2822 format (ex: Fri, 22 Feb 2022 22:00:00 -0600)
        --RFC-3339            Output timestamp in RFC 3339 format (ex: 2022-02-22 22:00:00.123456-06:00)
        --US-military-time    Output timestamp in US military time format (ex: 02-22-2022 22:00:00.123 -06:00)
        --US-time             Output timestamp in US time format (ex: 02-22-2022 10:00:00.123 PM -06:00)
    -U, --UTC                 Output time in UTC format (default: local time)

DISPLAY-SETTINGS:
    -v, --verbose               Output verbose information
    -V, --visualize-timeline    Output event frequency timeline

ADVANCED:
    -c, --rules-config <DIRECTORY>              Specify custom rule config directory (default: ./rules/config)
    -Q, --quiet-errors                          Quiet errors mode: do not save error logs
    -r, --rules <DIRECTORY/FILE>                Specify a custom rule directory or file (default: ./rules)
  1. json-timeline, j (現在、実装中) (オプションはcsv-timelineと同じ)

  2. list-contributors (現在の--contributors)はオプションなし

  3. logon-summary, l (現在の-L, --logon-summary)

INPUT:
    -d, --directory <DIRECTORY>    Directory of multiple .evtx files
    -f, --filepath <FILE>          File path to one .evtx file
    -l, --live-analysis            Analyze the local C:\Windows\System32\winevt\Logs folder

※OUTPUTは現在使えない その他のオプションもどこまで使えているか把握できていない。

  1. statistics, s (現在の-s, --statistics)
INPUT:
    -d, --directory <DIRECTORY>    Directory of multiple .evtx files
    -f, --filepath <FILE>          File path to one .evtx file
    -l, --live-analysis            Analyze the local C:\Windows\System32\winevt\Logs folder

※OUTPUTは現在使えない その他のオプションもどこまで使えているか把握できていない。

  1. pivot-keywords-list, p (現在の-p, --pivot-keywords-list)
INPUT:
    -d, --directory <DIRECTORY>    Directory of multiple .evtx files
    -f, --filepath <FILE>          File path to one .evtx file
    -l, --live-analysis            Analyze the local C:\Windows\System32\winevt\Logs folder

OUTPUT:
    -o, --output <FILE> 	   Save pivot words to seperate files (ex: pivot-keywords)

FILTERING:
    -D, --deep-scan                     Disable event ID filter to scan all events
        --enable-deprecated-rules       Enable rules marked as deprecated
        --exclude-status <STATUS>...    Ignore rules according to status (ex: experimental) (ex: stable test)
    -m, --min-level <LEVEL>             Minimum level for rules (default: informational)
    -n, --enable-noisy-rules            Enable rules marked as noisy
        --timeline-end <DATE>           End time of the event logs to load (ex: "2022-02-22 23:59:59 +09:00")
        --timeline-start <DATE>         Start time of the event logs to load (ex: "2020-02-22 00:00:00 +09:00")

DISPLAY-SETTINGS:
    -v, --verbose               Output verbose information

ADVANCED:
    -c, --rules-config <DIRECTORY>              Specify custom rule config directory (default: ./rules/config)
    -Q, --quiet-errors                          Quiet errors mode: do not save error logs
    -r, --rules <DIRECTORY/FILE>                Specify a custom rule directory or file (default: ./rules)
  1. update-rules, u (現在の-u, --update-rules)
ADVANCED:
    -r, --rules <DIRECTORY/FILE>                Specify a custom rule directory or file (default: ./rules)
  1. level-tuning, t [<FILE>] (現在の--level-tuning) (オプションなし)

  2. set-default-profile, p [<PROFILE>] (現在の--set-default-profile)

  3. search, S (まだ実装していない)

YamatoSecurity avatar Aug 10 '22 00:08 YamatoSecurity

これはsubcommandを実装してほしいという形に見えます。 各機能で追加で引数を追加するようにしてほしいというように見えますので時間がかかります。

hitenkoku avatar Aug 10 '22 01:08 hitenkoku

clapのcommandとsubcommandの違いがよく分かっていませんが、多分subcommandのことです。 見た目の問題なので、もっと優先度の高いJSON出力等の後で時間がある時で大丈夫だと思います。

YamatoSecurity avatar Aug 10 '22 02:08 YamatoSecurity

担当者再調整予定

hitenkoku avatar Sep 22 '22 11:09 hitenkoku

担当者再調整中の為 @YamatoSecurity に担当者を一旦割り振ります。 調整が済んだら別途アサインの変更をお願いいたします

hitenkoku avatar Sep 27 '22 09:09 hitenkoku