diff --git a/poetry.lock b/poetry.lock index 9d211523c..b6b85be88 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.7.0 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. [[package]] name = "acstore" @@ -1253,12 +1253,12 @@ tool = ["click (>=6.0.0)"] [[package]] name = "google-generativeai" -version = "0.4.0" +version = "0.4.1" description = "Google Generative AI High level API client library and tools." optional = false python-versions = ">=3.9" files = [ - {file = "google_generativeai-0.4.0-py3-none-any.whl", hash = "sha256:cf53a51f7c22f0193685e39708e015119b2500626bb2e74ad8c2bf8d8568ef1e"}, + {file = "google_generativeai-0.4.1-py3-none-any.whl", hash = "sha256:89be3c00c2e688108fccefc50f47f45fc9d37ecd53c1ade9d86b5d982919c24a"}, ] [package.dependencies] @@ -2181,6 +2181,11 @@ optional = true python-versions = ">=3.7" files = [ {file = "libmodi-python-20240305.tar.gz", hash = "sha256:719cb5fd17456d3e8ec084fff8c095a5dcd13bcb33d0fdc8e84b5c23d1dd7cd2"}, + {file = "libmodi_python-20240305-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:e4e573ada93ea889a712f14175d7cdd373cd2e95ba3e23ddd7cf0a2c9774031b"}, + {file = "libmodi_python-20240305-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:8f7e6f7aa052422b49a0a790babb402def3a21eec7ee584cad64b3fc7013ada0"}, + {file = "libmodi_python-20240305-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:bf5ed3ca9e66b2842f21c4195c10df216c8a8fbb1f9f6e9a5159ad6f7d304150"}, + {file = "libmodi_python-20240305-cp38-cp38-macosx_12_0_x86_64.whl", hash = "sha256:e0062e15339664525f2f478d59d4ff528426a4a2aadacfc3563a5c16840580a2"}, + {file = "libmodi_python-20240305-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:e15309fee5edf0afbcca807854799d2ed4e4e5f25218159ce0f052272c4cbd83"}, ] [[package]] @@ -3773,6 +3778,7 @@ files = [ {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, @@ -4745,18 +4751,18 @@ files = [ [[package]] name = "zipp" -version = "3.17.0" +version = "3.18.0" description = "Backport of pathlib-compatible object wrapper for zip files" optional = false python-versions = ">=3.8" files = [ - {file = "zipp-3.17.0-py3-none-any.whl", hash = "sha256:0e923e726174922dce09c53c59ad483ff7bbb8e572e00c7f7c46b88556409f31"}, - {file = "zipp-3.17.0.tar.gz", hash = "sha256:84e64a1c28cf7e91ed2078bb8cc8c259cb19b76942096c8d7b84947690cabaf0"}, + {file = "zipp-3.18.0-py3-none-any.whl", hash = "sha256:c1bb803ed69d2cce2373152797064f7e79bc43f0a3748eb494096a867e0ebf79"}, + {file = "zipp-3.18.0.tar.gz", hash = "sha256:df8d042b02765029a09b157efd8e820451045890acc30f8e37dd2f94a060221f"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy (>=0.9.1)", "pytest-ruff"] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy", "pytest-ruff (>=0.2.1)"] [[package]] name = "zstd" diff --git a/pyproject.toml b/pyproject.toml index 7e111e4c1..89f7c884c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "turbinia" -version = "20240311" +version = "20240313" description = "Automation and Scaling of Digital Forensics Tools" authors = ["Turbinia Developers "] maintainers = ["Turbinia Developers "] diff --git a/turbinia/config/turbinia_config_tmpl.py b/turbinia/config/turbinia_config_tmpl.py index d8aed9427..e618ac2ad 100644 --- a/turbinia/config/turbinia_config_tmpl.py +++ b/turbinia/config/turbinia_config_tmpl.py @@ -230,7 +230,7 @@ 'timeout': 1200 }, { 'job': 'PlasoJob', - 'programs': ['log2timeline'], + 'programs': ['log2timeline', 'pinfo'], 'docker_image': None, 'timeout': 86400 }, { diff --git a/turbinia/evidence.py b/turbinia/evidence.py index 3f40ce535..453d082df 100644 --- a/turbinia/evidence.py +++ b/turbinia/evidence.py @@ -1058,7 +1058,7 @@ def _validate(self): TurbiniaException: if validation fails. """ cmd = [ - 'pinfo.py', + 'pinfo', '--output-format', 'json', '--sections', @@ -1068,7 +1068,7 @@ def _validate(self): total_file_events = 0 try: - log.info(f'Running pinfo.py to validate PlasoFile {self.local_path}') + log.info(f'Running pinfo to validate PlasoFile {self.local_path}') command = subprocess.run(cmd, capture_output=True, check=True) storage_counters_json = command.stdout.decode('utf-8').strip() # pinfo.py might print warnings so we only need to last line of output @@ -1076,11 +1076,11 @@ def _validate(self): storage_counters = json.loads(storage_counters_json) total_file_events = storage_counters.get('storage_counters', {}).get( 'parsers', {}).get('total', 0) - log.info(f'pinfo.py found {total_file_events} events.') + log.info(f'pinfo found {total_file_events} events.') if not total_file_events: raise TurbiniaException( - 'PlasoFile validation failed, pinfo.py found no events.') - except subprocess.CalledProcessError as exception: + 'PlasoFile validation failed, pinfo found no events.') + except (subprocess.CalledProcessError, FileNotFoundError) as exception: raise TurbiniaException( f'Error validating plaso file: {exception!s}') from exception except json.decoder.JSONDecodeError as exception: