Things that go bump in SilentKnight: serious security failures

Running SilentKnight for the first time can bring surprises. A steady stream of users discover their Mac is missing some of its critical security protection. The three most common problems are:

  • SIP is turned off.
  • XProtect is disabled.
  • Security data are badly out of date.

I’ll look at them in that order, and add a fourth, whether the SSV is enabled.

SilentKnight and its companion command tool silnite originated from LockRattler, which in turn was developed in response to a major security failure in batches of new MacBook Pros shipped in the autumn of 2016 with SIP turned off. At that time, the only way to determine whether SIP was on or off was in Terminal. From an initial AppleScript, I developed the first version of LockRattler, released just before that Christmas.

SIP is turned off

Since El Capitan, macOS has protected all its system files, even down to standard Mac apps, using System Integrity Protection (SIP). This should make it impossible for malware or even out-of-control software to change those protected system files.

You can turn SIP off, something very occasionally needed to perform certain important tasks. Doing so requires you to restart in Recovery mode, enter a command in Terminal there, and restart. Run SilentKnight with SIP disabled, and it will tell you of the problem.

To enable SIP, restart in Recovery mode, open Terminal, and type the following command:
csrutil enable
Once that’s done, restart in normal mode, and run SilentKnight again, to check that item reports correctly
SIP enabled.

If you ever do need to disable SIP, do yourself a favour and put a sticky note on your Mac’s display to remind you to turn it back on. This still applies to Big Sur and Monterey, with their protected System volumes, as SIP is essential for protecting system and other important files on your Data volume too. Although it does get in the way at times, it’s there to protect.

XProtect is disabled

XProtect is the only free built-in tool to check for many common types of malware. These checks don’t just apply to fresh downloads: every time you open a JPEG file, for example, XProtect takes a quick look to see whether it might be malicious.

As you don’t have to enter Recovery mode to do so, it’s comparatively easy to turn XProtect’s checks off, although I can’t think why anyone would want to do so: if you have to turn it off in order to open a file, then you should ask yourself whether you should be opening that file at all!

Disabling XProtect leaves your Mac vulnerable to malware. Open SilentKnight and check that it states XProtect enabled. If it’s disabled, when using LockRattler you could instead see an error, such as
Failed, error = 1

You may be able to fix this using the command
spctl --enable
but chances are that you will instead need to invoke
sudo spctl --global-enable
which requires you to authenticate using your admin password. Be careful with those commands: the hyphens before enable and global-enable aren’t long dashes, but two separate hyphens.

When you have done so, restart and check that SilentKnight reports that XProtect is enabled.


Security data are badly out of date

Occasionally, the first time someone runs SilentKnight it reveals that Mac hasn’t installed any security data updates for a long time. There are some old bugs which can cause this, and can block even SilentKnight from detecting updates which your Mac needs as soon as possible.

One useful trick which can often enable these updates is to open the Software Update pane, click on its Advanced… button, and ensure that it’s set to check for updates. You don’t need to download them when available, and it’s up to you if you want your Mac to install system data files and security updates, but at least checking for updates is important. If that box isn’t ticked, those updates could get blocked.

If that doesn’t enable your Mac to bring its security data files up to date, and you’re running macOS Catalina or earlier, you may need to reinstall macOS to see if that fixes it.

The SSV is disabled

If you’re running Big Sur or Monterey, it’s important that your Mac has booted from a signed and sealed System volume, the SSV. SilentKnight checks this, and should report that the SSV is enabled together with its SIP status. If your Mac is working in the English language, then the indication given there should be reliable. However, that doesn’t hold true if it’s using a different language.

This is because the command tool used by SilentKnight to obtain that information returns the answer in any one of the dozens of languages supported by macOS. That’s too much for SilentKnight to cope with, I’m afraid, so you’ll need to look at the full detail in the scrolling text view in the lower part of the window, where each result is given in your chosen language. I apologise for that, but there’s little else that I can do until Apple recognises this as a bug and fixes it.

So if you’re puzzled that SilentKnight is reporting that your SSV isn’t enabled, please check below to see whether it’s just a case of the wrong language.

Finally, if you have any questions about anything in SilentKnight, please use its most underused feature, its Help Reference, accessed through the Help menu. There are links to further articles about SilentKnight and the problems it detects on its Product Page.