Yamato-Security / hayabusa

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

--csv-timeline=がファイルを上書きしてしまう #303

Closed YamatoSecurity closed 2 years ago

YamatoSecurity commented 2 years ago

ファイルが存在していても何も聞かれないで/注意されないで上書きしてしまうので、解析結果を上書きしてしまったり、最悪な場合はエビデンス等の大事なファイルを上書きしてしまう可能性があります。 特にテストする時は毎回一時的な結果ファイルを削除するのが面倒なので、 The file "xxxx.csv" already exists. Do you want to overwrite it? (Y/n)ってユーザに聞くのが一番理想だと思いますが、実装が面倒であれば、ファイルの存在を確認し、ある場合は以下のエラーを出したら良いと思います: The file "xxxx.csv" already exists. Please specify a different filename.

hitenkoku commented 2 years ago

ユーザの入力を受けるのを待つ形だとは面倒ではあるので、csv-timeline(現在のoutputオプション)を実行直後に確認をして、ファイルが既に存在しているのでエラーを出して終了という形とさせていただければと思います。

hitenkoku commented 2 years ago

動作をしていないとのことだったので一旦revert

hitenkoku commented 2 years ago

outputで既存ファイルを指定するとなんのERROR文表示もなく終了するという話ですが、 単純に-Q(指定したらエラー表示もエラーファイル出力もしなくなるというオプション)の判定が逆になっていたことが原因でした……

hitenkoku commented 2 years ago

以下の通り修正したら指定されたエラー文が出て終了することを確認しました

PS > echo "a" > test301.log PS >.\hayabusa.exe -d .\sample-evtx\ --output test301.log

██╗ ██╗ █████╗ ██╗ ██╗ █████╗ ██████╗ ██╗ ██╗███████╗ █████╗ ██║ ██║██╔══██╗╚██╗ ██╔╝██╔══██╗██╔══██╗██║ ██║██╔════╝██╔══██╗ ███████║███████║ ╚████╔╝ ███████║██████╔╝██║ ██║███████╗███████║ ██╔══██║██╔══██║ ╚██╔╝ ██╔══██║██╔══██╗██║ ██║╚════██║██╔══██║ ██║ ██║██║ ██║ ██║ ██║ ██║██████╔╝╚██████╔╝███████║██║ ██║ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝╚═════╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝ by Yamato Security

[ERROR] The file test301.log already exists. Please specify a different filename. PS >