Upon download of an application, a particular extended file attribute ("quarantine flag") can be added to the downloaded file.[10] This attribute is added by the application that downloads the file, such as a web browser or email client, but is not added by torrent downloaders, such as Transmission (BitTorrent client), nor Bit Torrent. This behavior is disabled by default for third-party applications and developers need to opt into it. The system can also force this behavior upon individual applications using a signature-based system named Xprotect.[11]

Screenshot of a system alert that appears when Gatekeeper prevents an application from running, because it was not signed by an Apple certified developer.

When the user attempts to open an application with such an attribute, the system will delay the execution and verify whether it is:

blacklisted,

code-signed,

code-signed by Apple or a certified developer,

code-signed and the code-signed contents still match the signature.

Since Mac OS X Snow Leopard, the system keeps two blacklists to identify known malware or insecure software. The blacklists are updated periodically. If the application is blacklisted, then File Quarantine will refuse to open it and recommend to the user to move it to trash.[11][12]

Gatekeeper will refuse to open the application if the code-signing requirements are not met. Apple can revoke the developer's certificate with which the application was signed and prevent further distribution.[1][3]

Once an application has passed File Quarantine or Gatekeeper, it will be allowed to run normally and will not be verified again.[1][3]

To override Gatekeeper, the user (acting as an administrator) either has to switch to a more lenient policy from the security & privacy panel of System Preferences or authorize a manual override for a particular application, either by opening the application from the context menu or by adding it with spctl.[1]

Developers can sign disk images that can be verified as a unit by the system. In macOS Sierra, this allows developers to guarantee the integrity of all bundled files and prevent attackers from infecting and subsequently redistributing them. In addition, "path randomization" executes application bundles from a random, hidden path and prevents them from accessing external files relative to their location. This feature is turned off if the application bundle originated from a signed installer package or disk image or if the user manually moved the application without any other files to another directory.[8]

The effectiveness and rationale of Gatekeeper in combating malware have been acknowledged,[3] but been met with reservations. Security researcher Chris Miller noted that Gatekeeper will verify the developer certificate and consult the known-malware list only when the application is first opened. Malware that already passed Gatekeeper will not be stopped.[13] In addition, Gatekeeper will only verify applications that have the quarantine flag. As this flag is added by other applications and not by the system, any neglect or failure to do so does not trigger Gatekeeper. According to security blogger Thomas Reed, BitTorrent clients are frequent offenders of this. The flag is also not added if the application came from a different source, like network shares and USB flash drives.[10][13] Questions have also been raised about the registration process to acquire a developer certificate and the prospect of certificate theft.[14]

In September 2015, security researcher Patrick Wardle wrote about another shortcoming that concerns applications that are distributed with external files, such as libraries or even HTML files that can contain JavaScript.[8] An attacker can manipulate those files and through them exploit a vulnerability in the signed application. The application and its external files can then be redistributed, while leaving the original signature of the application bundle itself intact. As Gatekeeper does not verify such individual files, the security can be compromised.[15] With path randomization and signed disk images, Apple provided mechanisms to mitigate this issue in macOS Sierra.[8]