Changes between Version 197 and Version 198 of FAQ


Ignore:
Timestamp:
Oct 26, 2023, 8:51:29 AM (7 months ago)
Author:
samulip (Samuli P)
Comment:

Add section about information security

Legend:

Unmodified
Added
Removed
Modified
  • FAQ

    v197 v198  
    347347
    348348See [wiki:FAQ/GitHubMigration GitHubMigration].
     349
     350== Information security and the integrity of the MacPorts base sofware and individual packages ==
     351
     352=== What controls are in place to check that the MacPorts utility is not tainted with malicious contributions and that the port scripts are not installing other than what it says on a Portfile? ===
     353
     354For the integrity of the base software:
     355* the MacPorts.dmg installer is signed by one of the project members, so that ensures the integrity of the initial installation.
     356* the selfupdate process also uses signed tarballs that are checked against a public key that is part of the installation.
     357
     358MacPorts only gives commit access to people who have a considerable history of good contributions.
     359Everyone else has to open pull requests which are reviewed by committers before being merged.
     360
     361For the integrity of the ports tree:
     362* the distributed ports tree is also signed and the signature is verified when syncing the Portfiles.
     363* the Portfiles itself come from the GitHub git repository, so the whole ports tree can be identified by a commit hash.
     364
     365It's not impossible that a committer could "turn evil" (though that would probably be noticed), or that software could be packaged that was compromised upstream.
     366
     367For the integrity of the Portfiles:
     368* that relies on what is merged into the ports tree, which are developed on GitHub with Pull Requests and reviews by project members.
     369* the Portfiles also contain checksums to verify the upstream sources used for building the software.
     370* all downloaded have to be the same for all users (also a requirement in order to mirror these distfiles correctly).
     371
     372The base code, ports tree, and most upstream software has source readily available, so definitely do your own audit of all of that before using it for anything critical.
     373
     374=== How to verify the integrity of a MacPorts installation? ===
     375
     376You could in principle compare existing installation of the base software to a signed tar ball.
     377Currently, there is no ready existing tooling for that.
     378Also, some ports will be built locally, so there won't be a single "canonical" signed tarball for everything available.
     379
     380=== What does MacPorts in capabilities for auditing of installation? ===
     381
     382Being open source, MacPorts is inherently more auditable than proprietary binaries, but the drawback is you have to assume responsibility yourself.
     383The MacPorts project is not in a position to make any guarantees and has to disclaim all liability.
     384As far as integrity of the local files, we're mainly just relying on filesystem permissions.
     385A third party file integrity checker should work fine though.