26 lines
1.6 KiB
Markdown
26 lines
1.6 KiB
Markdown
# macOS pkgutil Receipt Analyzer
|
|
|
|
## Module
|
|
Scanner
|
|
|
|
## Status
|
|
IMPLEMENTED
|
|
|
|
## Description
|
|
Parses macOS pkgutil receipt database and BOM files to discover Apple installer packages, producing SBOM components with package identifier, version, and installed volume.
|
|
|
|
## Implementation Details
|
|
- **Package Analyzer**:
|
|
- `src/Scanner/__Libraries/StellaOps.Scanner.Analyzers.OS.Pkgutil/PkgutilPackageAnalyzer.cs` - `PkgutilPackageAnalyzer` discovers Apple installer packages from pkgutil receipt database
|
|
- `src/Scanner/__Libraries/StellaOps.Scanner.Analyzers.OS.Pkgutil/PkgutilAnalyzerPlugin.cs` - Plugin registration for the pkgutil analyzer
|
|
- **Parsers**:
|
|
- `src/Scanner/__Libraries/StellaOps.Scanner.Analyzers.OS.Pkgutil/PkgutilReceiptParser.cs` - `PkgutilReceiptParser` parses pkgutil receipt plist files extracting package identifier, version, and install metadata
|
|
- `src/Scanner/__Libraries/StellaOps.Scanner.Analyzers.OS.Pkgutil/BomParser.cs` - `BomParser` parses macOS BOM (Bill of Materials) files listing installed file manifests
|
|
|
|
## E2E Test Plan
|
|
- [ ] Scan a macOS container image and verify Apple installer packages are discovered from pkgutil receipts
|
|
- [ ] Verify each discovered package includes package identifier (e.g., `com.apple.pkg.CLTools_Executables`), version, and installed volume
|
|
- [ ] Verify BOM file parsing correctly identifies the files installed by each package
|
|
- [ ] Verify SBOM components are produced with correct PURL format for macOS system packages
|
|
- [ ] Verify packages from third-party PKG installers are also discovered alongside Apple system packages
|