| (version 1) |
| (deny default (with partial-symbolication)) |
| (allow ipc-posix-shm system-audit system-socket file-read-metadata) |
| |
| (import "system.sb") |
| (import "com.apple.corefoundation.sb") |
| |
| ;; Distributed notifications, local pasteboard client |
| (corefoundation) |
| |
| ;; Read-only preferences and data |
| (allow file-read* |
| ;; Basic system paths |
| (subpath "/Library/Dictionaries") |
| (subpath "/Library/Fonts") |
| (subpath "/Library/Frameworks") |
| (subpath "/Library/Keychains") |
| (subpath "/private/var/db/mds") |
| (subpath "/private/var/db/DetachedSignatures") |
| (regex #"^/private/etc/(hosts|group|passwd)$") |
| |
| ;; Plugins |
| (subpath "/Library/Internet Plug-Ins") |
| (subpath (string-append (param "HOME_DIR") "/Library/Internet Plug-Ins")) |
| |
| ;; System and user preferences |
| (literal "/Library/Preferences/.GlobalPreferences.plist") |
| (literal "/Library/Preferences/com.apple.crypto.plist") |
| (literal "/Library/Preferences/com.apple.security.plist") |
| (literal "/Library/Preferences/com.apple.security.common.plist") |
| (literal "/Library/Preferences/com.apple.security.revocation.plist") |
| (literal (string-append (param "HOME_DIR") "/Library/Preferences/.GlobalPreferences.plist")) |
| (regex (string-append "^" (param "HOME_DIR") "/Library/Preferences/ByHost/\.GlobalPreferences\.")) |
| (literal (string-append (param "HOME_DIR") "/Library/Preferences/com.apple.ATS.plist")) |
| (literal (string-append (param "HOME_DIR") "/Library/Preferences/com.apple.HIToolbox.plist")) |
| (literal (string-append (param "HOME_DIR") "/Library/Preferences/com.apple.LaunchServices.plist")) |
| (literal (string-append (param "HOME_DIR") "/Library/Preferences/com.apple.WebFoundation.plist")) |
| (literal (string-append (param "HOME_DIR") "/Library/Preferences/com.apple.security.plist")) |
| (literal (string-append (param "HOME_DIR") "/Library/Preferences/com.apple.security.revocation.plist")) |
| (literal (string-append (param "HOME_DIR") "/Library/Application Support/SyncServices/Local/ClientsWithChanges/com.apple.Keychain")) |
| (regex (string-append "^" (param "HOME_DIR") "/Library/Preferences/com\.apple\.driver\.(AppleBluetoothMultitouch\.mouse|AppleBluetoothMultitouch\.trackpad|AppleHIDMouse)\.plist$")) |
| |
| ;; On-disk WebKit2 framework location, to account for debug installations |
| ;; outside of /System/Library/Frameworks |
| (subpath (param "WEBKIT2_FRAMEWORK_DIR")) |
| |
| ;; FIXME: This should be removed when <rdar://problem/8957845> is fixed. |
| (subpath (string-append (param "HOME_DIR") "/Library/Fonts")) |
| |
| ;; FIXME: These should be removed when <rdar://problem/9217757> is fixed. |
| (subpath (string-append (param "HOME_DIR") "/Library/Audio/Plug-Ins/Components")) |
| (subpath (string-append (param "HOME_DIR") "/Library/Preferences/QuickTime Preferences")) |
| (subpath "/Library/Audio/Plug-Ins/Components") |
| (subpath "/Library/Audio/Plug-Ins/HAL") |
| (subpath "/Library/Video/Plug-Ins") |
| (subpath "/Library/QuickTime") |
| |
| ;; FIXME: This should be removed when <rdar://problem/9237619> is fixed. |
| (literal (string-append (param "HOME_DIR") "/Library/Preferences/com.apple.universalaccess.plist")) |
| |
| ;; FIXME: This should be removed when <rdar://problem/9276253> is fixed. |
| (subpath (string-append (param "HOME_DIR") "/Library/Keyboard Layouts")) |
| |
| ;; FIXME: This should be removed when <rdar://problem/9276268> is fixed. |
| (subpath (string-append (param "HOME_DIR") "/Library/Input Methods")) |
| |
| ;; FIXME: This should be removed when <rdar://problem/9276430> is fixed. |
| (literal (string-append (param "HOME_DIR") "/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2")) |
| |
| (subpath (string-append (param "HOME_DIR") "/Library/Dictionaries")) |
| |
| ;; Extensions from UIProcess |
| (extension) |
| ) |
| |
| (allow file-write* |
| ;; Extensions from UIProcess |
| (extension) |
| ) |
| |
| ;; Writable preferences and temporary files |
| (allow file* |
| (subpath (string-append (param "HOME_DIR") "/Library/Caches/com.apple.WebProcess")) |
| (regex (string-append "^" (param "HOME_DIR") "/Library/Preferences/ByHost/com\.apple\.HIToolbox\.")) |
| (regex (string-append "^" (param "HOME_DIR") "/Library/Preferences/com\.apple\.WebProcess\.")) |
| (subpath (string-append (param "HOME_DIR") "/Library/Keychains")) |
| |
| ;; FIXME: This should be removed when <rdar://problem/9217757> is fixed. |
| (literal (string-append (param "HOME_DIR") "/Library/Caches/com.apple.coreaudio.components.plist")) |
| ) |
| |
| ;; Darwin temporary files and caches, if present |
| (if (positive? (string-length (param "DARWIN_USER_CACHE_DIR"))) |
| (allow file* (subpath (param "DARWIN_USER_CACHE_DIR")))) |
| (if (positive? (string-length (param "DARWIN_USER_TEMP_DIR"))) |
| (allow file* (subpath (param "DARWIN_USER_TEMP_DIR")))) |
| |
| ;; Database dir |
| (if (positive? (string-length (param "WEBKIT_DATABASE_DIR"))) |
| (allow file* (subpath (param "WEBKIT_DATABASE_DIR")))) |
| |
| ;; LocalStorage dir |
| (if (positive? (string-length (param "WEBKIT_LOCALSTORAGE_DIR"))) |
| (allow file* (subpath (param "WEBKIT_LOCALSTORAGE_DIR")))) |
| |
| ;; The NSURLCache directory. |
| (if (positive? (string-length (param "NSURL_CACHE_DIR"))) |
| (allow file* (subpath (param "NSURL_CACHE_DIR")))) |
| |
| ;; The bundle resource path of the UI process. |
| (if (positive? (string-length (param "UI_PROCESS_BUNDLE_RESOURCE_DIR"))) |
| (allow file-read* (subpath (param "UI_PROCESS_BUNDLE_RESOURCE_DIR")))) |
| |
| ;; FIXME: overly permissive since we can't pre-enumerate the client |
| ;; classes for graphics cards |
| (allow iokit-open |
| ;;(iokit-user-client-class "IOHIDParamUserClient") |
| ;;(iokit-user-client-class "RootDomainUserClient") |
| ) |
| |
| ;; Various services required by AppKit and other frameworks |
| (allow mach-lookup |
| (global-name "com.apple.CoreServices.coreservicesd") |
| (global-name "com.apple.DiskArbitration.diskarbitrationd") |
| (global-name "com.apple.FileCoordination") |
| (global-name "com.apple.FontObjectsServer") |
| (global-name "com.apple.FontServer") |
| (global-name "com.apple.SecurityServer") |
| (global-name "com.apple.SystemConfiguration.configd") |
| (global-name "com.apple.audio.VDCAssistant") |
| (global-name "com.apple.audio.audiohald") |
| (global-name "com.apple.audio.coreaudiod") |
| (global-name "com.apple.cookied") |
| (global-name "com.apple.cvmsServ") |
| (global-name "com.apple.networkd") |
| (global-name "com.apple.dock.server") |
| (global-name "com.apple.ocspd") |
| (global-name "com.apple.pasteboard.1") |
| (global-name "com.apple.system.opendirectoryd.api") |
| (global-name "com.apple.window_proxies") |
| (global-name "com.apple.windowserver.active") |
| (global-name-regex #"^com\.apple\.WebKit\.WebProcess-") |
| (global-name-regex #"^com\.apple\.qtkitserver\.") |
| |
| ;; FIXME: This should be removed when <rdar://problem/9276393> is fixed. |
| (global-name "com.apple.metadata.mds") |
| ) |
| |
| ;; FIXME: <rdar://problem/9263428> These rules are required to avoid |
| ;; sandbox violation spam, but some narrower rule should be |
| ;; sufficient. |
| (allow network-outbound) |
| (deny network-outbound (regex "")) |
| (deny network-outbound (local ip)) |
| |
| (allow network-outbound |
| ;; Local mDNSResponder for DNS, arbitrary outbound TCP |
| (literal "/private/var/run/mDNSResponder") |
| (remote tcp) |
| ) |
| |
| ;; FIXME: Once <rdar://problem/8900275> has been fixed, these rules can be removed. |
| (allow mach-lookup (global-name "com.apple.pubsub.ipc")) |
| (allow network-outbound (regex #"^/private/tmp/launch-[^/]+/Render")) |
| (allow file-read* |
| (literal (string-append (param "HOME_DIR") "/Library/Preferences/com.apple.Safari.RSS.plist")) |
| (literal (string-append (param "HOME_DIR") "/Library/Preferences/com.apple.Syndication.plist")) |
| ) |
| |
| ;; FIXME: Investigate these. |
| (allow appleevent-send (appleevent-destination "com.apple.WebProcess")) |
| (allow mach-lookup (global-name-regex #"^EPPC-")) |