plexavo 0.2.7__tar.gz → 0.2.8__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. {plexavo-0.2.7 → plexavo-0.2.8}/PKG-INFO +1 -1
  2. {plexavo-0.2.7 → plexavo-0.2.8}/plexavo/__init__.py +1 -1
  3. {plexavo-0.2.7 → plexavo-0.2.8}/plexavo/checks/storage.py +11 -5
  4. {plexavo-0.2.7 → plexavo-0.2.8}/plexavo.egg-info/PKG-INFO +1 -1
  5. {plexavo-0.2.7 → plexavo-0.2.8}/pyproject.toml +1 -1
  6. {plexavo-0.2.7 → plexavo-0.2.8}/LICENSE +0 -0
  7. {plexavo-0.2.7 → plexavo-0.2.8}/README.md +0 -0
  8. {plexavo-0.2.7 → plexavo-0.2.8}/plexavo/__main__.py +0 -0
  9. {plexavo-0.2.7 → plexavo-0.2.8}/plexavo/auth.py +0 -0
  10. {plexavo-0.2.7 → plexavo-0.2.8}/plexavo/aws_profile_setup.py +0 -0
  11. {plexavo-0.2.7 → plexavo-0.2.8}/plexavo/checks/__init__.py +0 -0
  12. {plexavo-0.2.7 → plexavo-0.2.8}/plexavo/checks/encryption.py +0 -0
  13. {plexavo-0.2.7 → plexavo-0.2.8}/plexavo/checks/iam.py +0 -0
  14. {plexavo-0.2.7 → plexavo-0.2.8}/plexavo/checks/iam_hygiene.py +0 -0
  15. {plexavo-0.2.7 → plexavo-0.2.8}/plexavo/checks/logging.py +0 -0
  16. {plexavo-0.2.7 → plexavo-0.2.8}/plexavo/checks/network.py +0 -0
  17. {plexavo-0.2.7 → plexavo-0.2.8}/plexavo/checks/usage.py +0 -0
  18. {plexavo-0.2.7 → plexavo-0.2.8}/plexavo/cli.py +0 -0
  19. {plexavo-0.2.7 → plexavo-0.2.8}/plexavo/findings.py +0 -0
  20. {plexavo-0.2.7 → plexavo-0.2.8}/plexavo/interactive.py +0 -0
  21. {plexavo-0.2.7 → plexavo-0.2.8}/plexavo/principals.py +0 -0
  22. {plexavo-0.2.7 → plexavo-0.2.8}/plexavo/report/__init__.py +0 -0
  23. {plexavo-0.2.7 → plexavo-0.2.8}/plexavo/report/ai_narration.py +0 -0
  24. {plexavo-0.2.7 → plexavo-0.2.8}/plexavo/report/fonts/DejaVuSans-Bold.ttf +0 -0
  25. {plexavo-0.2.7 → plexavo-0.2.8}/plexavo/report/fonts/DejaVuSans-BoldOblique.ttf +0 -0
  26. {plexavo-0.2.7 → plexavo-0.2.8}/plexavo/report/fonts/DejaVuSans-Oblique.ttf +0 -0
  27. {plexavo-0.2.7 → plexavo-0.2.8}/plexavo/report/fonts/DejaVuSans.ttf +0 -0
  28. {plexavo-0.2.7 → plexavo-0.2.8}/plexavo/report/fonts/GEIST-FONT-LICENSE.txt +0 -0
  29. {plexavo-0.2.7 → plexavo-0.2.8}/plexavo/report/html_report.py +0 -0
  30. {plexavo-0.2.7 → plexavo-0.2.8}/plexavo/report/pdf.py +0 -0
  31. {plexavo-0.2.7 → plexavo-0.2.8}/plexavo/report/templates/report.html.j2 +0 -0
  32. {plexavo-0.2.7 → plexavo-0.2.8}/plexavo/scoring.py +0 -0
  33. {plexavo-0.2.7 → plexavo-0.2.8}/plexavo.egg-info/SOURCES.txt +0 -0
  34. {plexavo-0.2.7 → plexavo-0.2.8}/plexavo.egg-info/dependency_links.txt +0 -0
  35. {plexavo-0.2.7 → plexavo-0.2.8}/plexavo.egg-info/entry_points.txt +0 -0
  36. {plexavo-0.2.7 → plexavo-0.2.8}/plexavo.egg-info/requires.txt +0 -0
  37. {plexavo-0.2.7 → plexavo-0.2.8}/plexavo.egg-info/top_level.txt +0 -0
  38. {plexavo-0.2.7 → plexavo-0.2.8}/setup.cfg +0 -0
  39. {plexavo-0.2.7 → plexavo-0.2.8}/tests/test_ai_narration_offline.py +0 -0
  40. {plexavo-0.2.7 → plexavo-0.2.8}/tests/test_auth_offline.py +0 -0
  41. {plexavo-0.2.7 → plexavo-0.2.8}/tests/test_cli_entrypoint.py +0 -0
  42. {plexavo-0.2.7 → plexavo-0.2.8}/tests/test_encryption_offline.py +0 -0
  43. {plexavo-0.2.7 → plexavo-0.2.8}/tests/test_iam_hygiene_offline.py +0 -0
  44. {plexavo-0.2.7 → plexavo-0.2.8}/tests/test_iam_offline.py +0 -0
  45. {plexavo-0.2.7 → plexavo-0.2.8}/tests/test_logging_offline.py +0 -0
  46. {plexavo-0.2.7 → plexavo-0.2.8}/tests/test_network_offline.py +0 -0
  47. {plexavo-0.2.7 → plexavo-0.2.8}/tests/test_report_offline.py +0 -0
  48. {plexavo-0.2.7 → plexavo-0.2.8}/tests/test_scoring.py +0 -0
  49. {plexavo-0.2.7 → plexavo-0.2.8}/tests/test_storage_offline.py +0 -0
  50. {plexavo-0.2.7 → plexavo-0.2.8}/tests/test_usage_offline.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plexavo
3
- Version: 0.2.7
3
+ Version: 0.2.8
4
4
  Summary: Open-source AWS misconfiguration scanner — runs with your own local AWS credentials, nothing sent to anyone else.
5
5
  Author: Kavee
6
6
  License: AGPL-3.0-or-later
@@ -4,4 +4,4 @@ Runs entirely with your own local AWS credentials. Nothing is sent to
4
4
  anyone else. See README.md for usage, or `plexavo scan --help`.
5
5
  """
6
6
 
7
- __version__ = "0.2.7"
7
+ __version__ = "0.2.8"
@@ -139,7 +139,10 @@ def check_22_access_logging_disabled(s3, bucket_names: list) -> list[Finding]:
139
139
 
140
140
  Medium, not Critical: this is a forensics gap, not an exposure by
141
141
  itself — a bucket with logging off isn't more reachable than one with
142
- it on, it's just unreviewable after the fact if something happens."""
142
+ it on. Whether object-level access is actually unreviewable after the
143
+ fact depends on whether it's captured another way (e.g. CloudTrail S3
144
+ data events), which Plexavo does not check — so the finding language
145
+ stays careful not to claim investigation is impossible."""
143
146
  findings = []
144
147
  for name in bucket_names:
145
148
  config = s3.get_bucket_logging(Bucket=name)
@@ -150,10 +153,13 @@ def check_22_access_logging_disabled(s3, bucket_names: list) -> list[Finding]:
150
153
  title="S3 Bucket Access Logging Not Enabled",
151
154
  severity=Severity.MEDIUM,
152
155
  resource_arn=f"arn:aws:s3:::{name}",
153
- raw_detail=f"Bucket '{name}' has no server access logging configured. "
154
- f"If this bucket is ever accessed, modified, or exfiltrated "
155
- f"from, there is no record of who did what — investigation "
156
- f"after the fact isn't possible.",
156
+ raw_detail=f"Bucket '{name}' has no S3 server access logging configured. "
157
+ f"Server access logging records object-level requests to the "
158
+ f"bucket, which supports reconstructing who accessed or changed "
159
+ f"what after the fact. If this bucket's access is already "
160
+ f"tightly scoped and audited another way (for example CloudTrail "
161
+ f"S3 data events, which Plexavo does not check), this finding may "
162
+ f"be lower priority for that specific setup.",
157
163
  account_context=f"bucket={name}",
158
164
  ))
159
165
  return findings
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plexavo
3
- Version: 0.2.7
3
+ Version: 0.2.8
4
4
  Summary: Open-source AWS misconfiguration scanner — runs with your own local AWS credentials, nothing sent to anyone else.
5
5
  Author: Kavee
6
6
  License: AGPL-3.0-or-later
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "plexavo"
7
- version = "0.2.7"
7
+ version = "0.2.8"
8
8
  description = "Open-source AWS misconfiguration scanner — runs with your own local AWS credentials, nothing sent to anyone else."
9
9
  readme = "README.md"
10
10
  license = { text = "AGPL-3.0-or-later" }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes