Title: [283978] trunk/Source/WebKit
Revision
283978
Author
[email protected]
Date
2021-10-12 04:02:40 -0700 (Tue, 12 Oct 2021)

Log Message

[iOS] Add syscall telemetry in the WebContent process' sandbox
https://bugs.webkit.org/show_bug.cgi?id=231508
<rdar://83197060>

Reviewed by Brent Fulgham.

Add syscall telemetry in the WebContent process' sandbox to learn more about the context in which they are being used.
This patch also removes some telemetry with backtraces for other rules, since they are no longer needed.

* Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (283977 => 283978)


--- trunk/Source/WebKit/ChangeLog	2021-10-12 10:58:19 UTC (rev 283977)
+++ trunk/Source/WebKit/ChangeLog	2021-10-12 11:02:40 UTC (rev 283978)
@@ -1,5 +1,18 @@
 2021-10-12  Per Arne Vollan <[email protected]>
 
+        [iOS] Add syscall telemetry in the WebContent process' sandbox
+        https://bugs.webkit.org/show_bug.cgi?id=231508
+        <rdar://83197060>
+
+        Reviewed by Brent Fulgham.
+
+        Add syscall telemetry in the WebContent process' sandbox to learn more about the context in which they are being used.
+        This patch also removes some telemetry with backtraces for other rules, since they are no longer needed.
+
+        * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
+
+2021-10-12  Per Arne Vollan <[email protected]>
+
         [GPUP] Add missing entitlement
         https://bugs.webkit.org/show_bug.cgi?id=231499
         <rdar://83847918>

Modified: trunk/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in (283977 => 283978)


--- trunk/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in	2021-10-12 10:58:19 UTC (rev 283977)
+++ trunk/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in	2021-10-12 11:02:40 UTC (rev 283978)
@@ -475,7 +475,7 @@
         "com.apple.mt"
         "com.apple.preferences.sounds")
 
-    (deny mach-lookup (with telemetry-backtrace)
+    (deny mach-lookup (with telemetry)
         (global-name "com.apple.frontboard.systemappservices")                 ; -[UIViewServiceInterface _createProcessAssertion] -> SBSProcessIDForDisplayIdentifier()
     )
 
@@ -483,7 +483,7 @@
         (global-name "com.apple.CARenderServer"))
 
     ; UIKit-required IOKit nodes.
-    (deny iokit-open (with telemetry-backtrace)
+    (deny iokit-open (with telemetry)
         (iokit-user-client-class "IOSurfaceSendRight")
     )
 
@@ -643,7 +643,7 @@
     (global-name "com.apple.logd.events")
 )
 
-(deny mach-lookup (with telemetry-backtrace)
+(deny mach-lookup (with telemetry)
     (global-name "com.apple.distributed_notifications@1v3"))
 
 (allow ipc-posix-shm-read*
@@ -799,7 +799,7 @@
 ;; <rdar://problem/7344719&26323449> LaunchServices app icons
 (allow file-read*
     (well-known-system-group-container-subpath "/systemgroup.com.apple.lsd.iconscache"))
-(deny mach-lookup (with telemetry-backtrace)
+(deny mach-lookup (with telemetry)
     (xpc-service-name "com.apple.iconservices")
     (global-name "com.apple.iconservices"))
 
@@ -1002,7 +1002,7 @@
     (global-name "com.apple.fontservicesd")
 )
 
-(deny mach-lookup (with telemetry-backtrace)
+(deny mach-lookup (with telemetry)
     (global-name "com.apple.PowerManagement.control"))
 
 (deny file-write-create (vnode-type SYMLINK))
@@ -1023,11 +1023,11 @@
     (home-subpath "/Library/Preferences/")
     (with no-log))
 
-(deny mach-lookup (with telemetry-backtrace)
+(deny mach-lookup (with telemetry)
     (global-name "com.apple.containermanagerd")
 )
 
-(deny mach-lookup (with telemetry-backtrace)
+(deny mach-lookup (with telemetry)
     (global-name "com.apple.mobilegestalt.xpc")
 )
 
@@ -1035,7 +1035,7 @@
     (xpc-service-name "com.apple.audio.toolbox.reporting.service")
 )
 
-(allow iokit-open (with telemetry-backtrace)
+(allow iokit-open (with telemetry)
     (require-all
         (require-not (extension "com.apple.webkit.extension.iokit"))
         (iokit-user-client-class
@@ -1045,7 +1045,7 @@
     (IOSurfaceRootUserClientMethodFilter)
 )
 
-(deny iokit-open (with telemetry-backtrace)
+(deny iokit-open (with telemetry)
     (require-all
         (require-not (extension "com.apple.webkit.extension.iokit"))
         (iokit-user-client-class
@@ -1060,7 +1060,7 @@
     )
 )
 
-(allow iokit-open (with report) (with telemetry-backtrace)
+(allow iokit-open (with report) (with telemetry)
     (require-all
         (require-not (extension "com.apple.webkit.extension.iokit"))
         (iokit-connection "IOGPU")
@@ -1171,11 +1171,6 @@
     (allow syscall-unix
         (syscall-number SYS___disable_threadsignal)
         (syscall-number SYS___mac_syscall)
-        (syscall-number SYS___pthread_kill)
-        (syscall-number SYS___pthread_markcancel)
-        (syscall-number SYS___pthread_sigmask)
-        (syscall-number SYS___semwait_signal)
-        (syscall-number SYS___semwait_signal_nocancel)
         (syscall-number SYS_abort_with_payload) ;; <rdar://problem/50967271>
         (syscall-number SYS_access)
         (syscall-number SYS_bsdthread_create)
@@ -1184,26 +1179,11 @@
         (syscall-number SYS_bsdthread_terminate)
         (syscall-number SYS_change_fdguard_np)
         (syscall-number SYS_chdir)
-        (syscall-number SYS_chmod)
-        (syscall-number SYS_close)
-        (syscall-number SYS_close_nocancel)
-        (syscall-number SYS_connect)
-        (syscall-number SYS_connect_nocancel)
-        (syscall-number SYS_connectx)
-        (syscall-number SYS_csops) ;; used by Corefoundation initialization
-        (syscall-number SYS_csops_audittoken) ;; used by WK to get entitlments
-        (syscall-number SYS_csrctl)
-        (syscall-number SYS_dup)
-        (syscall-number SYS_dup2)
         (syscall-number SYS_exit)
         (syscall-number SYS_faccessat) ;; <rdar://problem/56998930>
-        (syscall-number SYS_fchmod)
         (syscall-number SYS_fcntl)
         (syscall-number SYS_fcntl_nocancel)
         (syscall-number SYS_fgetattrlist) ;; <rdar://problem/50266257>
-        (syscall-number SYS_fgetxattr)
-        (syscall-number SYS_fileport_makefd)
-        (syscall-number SYS_fileport_makeport)
         (syscall-number SYS_flock)
         (syscall-number SYS_fsetattrlist) ;; MTLCompilerFSCache::openSync
         (syscall-number SYS_fsetxattr) ;; <rdar://problem/49795964>
@@ -1210,35 +1190,25 @@
         (syscall-number SYS_fsgetpath)
         (syscall-number SYS_fstat64)
         (syscall-number SYS_fstat64_extended) ;; <rdar://problem/61310019>
-        (syscall-number SYS_fstatat64)
         (syscall-number SYS_fstatfs64)
-        (syscall-number SYS_fsync)
         (syscall-number SYS_ftruncate)
         (syscall-number SYS_getattrlist) ;; xpc_realpath and directory enumeration
-        (syscall-number SYS_getattrlistbulk) ;; xpc_realpath and directory enumeration
-        (syscall-number SYS_getaudit_addr)
         (syscall-number SYS_getdirentries64)
         (syscall-number SYS_getegid)
         (syscall-number SYS_getentropy)
         (syscall-number SYS_geteuid)
         (syscall-number SYS_getfsstat64)
-        (syscall-number SYS_getgid)
-        (syscall-number SYS_getpeername)
         (syscall-number SYS_getpid)
         (syscall-number SYS_getrlimit)
         (syscall-number SYS_getrusage)
-        (syscall-number SYS_getsockopt) ;; used by libwebrtc
         (syscall-number SYS_gettid)
         (syscall-number SYS_gettimeofday)
         (syscall-number SYS_getuid)
-        (syscall-number SYS_getxattr)
         (syscall-number SYS_guarded_close_np)
         (syscall-number SYS_guarded_open_dprotected_np) ; <rdar://problem/48166729>
         (syscall-number SYS_guarded_open_np)
         (syscall-number SYS_guarded_pwrite_np)
-        (syscall-number SYS_ioctl) ;; needed by tcgetattr (TIOCGETA) - debugging
         (syscall-number SYS_issetugid)
-        (syscall-number SYS_kdebug_trace)
         (syscall-number SYS_kdebug_trace64)
         (syscall-number SYS_kevent_id)
         (syscall-number SYS_kevent_qos)
@@ -1250,46 +1220,90 @@
         (syscall-number SYS_madvise)
         (syscall-number SYS_memorystatus_control)
         (syscall-number SYS_mkdir)
+        (syscall-number SYS_mmap)
+        (syscall-number SYS_mprotect)
+        (syscall-number SYS_msync)
+        (syscall-number SYS_munmap)
+        (syscall-number SYS_os_fault_with_payload)
+        (syscall-number SYS_pathconf)
+        (syscall-number SYS_pread)
+        (syscall-number SYS_psynch_cvbroad)
+        (syscall-number SYS_psynch_cvclrprepost)
+        (syscall-number SYS_psynch_cvsignal)
+        (syscall-number SYS_psynch_cvwait)
+        (syscall-number SYS_psynch_mutexdrop)
+        (syscall-number SYS_psynch_mutexwait)
+        (syscall-number SYS_psynch_rw_rdlock) ;; <rdar://problem/51134351>
+        (syscall-number SYS_psynch_rw_unlock)
+        (syscall-number SYS_read)
+        (syscall-number SYS_read_nocancel)
+        (syscall-number SYS_readlink)
+        (syscall-number SYS_rename)
+        (syscall-number SYS_shared_region_check_np)
+        (syscall-number SYS_shared_region_map_and_slide_2_np) ;; <rdar://problem/60294880>
+        (syscall-number SYS_sigaction)
+        (syscall-number SYS_stat64)
+        (syscall-number SYS_statfs64)
+        (syscall-number SYS_thread_selfid)
+        (syscall-number SYS_ulock_wait)
+        (syscall-number SYS_ulock_wait2) ;; <rdar://problem/58743778>
+        (syscall-number SYS_ulock_wake)
+        (syscall-number SYS_workq_kernreturn)
+        (syscall-number SYS_workq_open))
+    
+    (allow syscall-unix (with telemetry-backtrace)
+        (syscall-number SYS___pthread_kill)
+        (syscall-number SYS___pthread_markcancel)
+        (syscall-number SYS___pthread_sigmask)
+        (syscall-number SYS___semwait_signal)
+        (syscall-number SYS___semwait_signal_nocancel)
+        (syscall-number SYS_chmod)
+        (syscall-number SYS_close)
+        (syscall-number SYS_close_nocancel)
+        (syscall-number SYS_connect)
+        (syscall-number SYS_connect_nocancel)
+        (syscall-number SYS_connectx)
+        (syscall-number SYS_csops) ;; used by Corefoundation initialization
+        (syscall-number SYS_csops_audittoken) ;; used by WK to get entitlments
+        (syscall-number SYS_csrctl)
+        (syscall-number SYS_dup)
+        (syscall-number SYS_dup2)
+        (syscall-number SYS_fchmod)
+        (syscall-number SYS_fgetxattr)
+        (syscall-number SYS_fileport_makefd)
+        (syscall-number SYS_fileport_makeport)
+        (syscall-number SYS_fstatat64)
+        (syscall-number SYS_fsync)
+        (syscall-number SYS_getattrlistbulk) ;; xpc_realpath and directory enumeration
+        (syscall-number SYS_getaudit_addr)
+        (syscall-number SYS_getgid)
+        (syscall-number SYS_getpeername)
+        (syscall-number SYS_getsockopt) ;; used by libwebrtc
+        (syscall-number SYS_getxattr)
+        (syscall-number SYS_ioctl) ;; needed by tcgetattr (TIOCGETA) - debugging
+        (syscall-number SYS_kdebug_trace)
         (syscall-number SYS_mkdirat)
         (syscall-number SYS_mlock)
-        (syscall-number SYS_mmap)
-        (syscall-number SYS_mprotect)
         (syscall-number SYS_mremap_encrypted)
-        (syscall-number SYS_msync)
         (syscall-number SYS_munlock)
-        (syscall-number SYS_munmap)
         (syscall-number SYS_necp_client_action)
         (syscall-number SYS_necp_open)
+        (syscall-number SYS_objc_bp_assist_cfg_np)
         (syscall-number SYS_open)
         (syscall-number SYS_open_dprotected_np)
         (syscall-number SYS_open_nocancel)
         (syscall-number SYS_openat)
         (syscall-number SYS_openat_nocancel)
-        (syscall-number SYS_os_fault_with_payload)
-        (syscall-number SYS_pathconf)
         (syscall-number SYS_persona)
         (syscall-number SYS_pipe)
-        (syscall-number SYS_pread)
         (syscall-number SYS_pread_nocancel)
         (syscall-number SYS_proc_info)
         (syscall-number SYS_proc_rlimit_control)
         (syscall-number SYS_process_policy)
-        (syscall-number SYS_psynch_cvbroad)
-        (syscall-number SYS_psynch_cvclrprepost)
-        (syscall-number SYS_psynch_cvsignal)
-        (syscall-number SYS_psynch_cvwait)
-        (syscall-number SYS_psynch_mutexdrop)
-        (syscall-number SYS_psynch_mutexwait)
-        (syscall-number SYS_psynch_rw_rdlock) ;; <rdar://problem/51134351>
-        (syscall-number SYS_psynch_rw_unlock)
         (syscall-number SYS_psynch_rw_wrlock)
         (syscall-number SYS_pwrite)
-        (syscall-number SYS_read)
-        (syscall-number SYS_read_nocancel)
-        (syscall-number SYS_readlink)
         (syscall-number SYS_recvfrom)
         (syscall-number SYS_recvfrom_nocancel)
-        (syscall-number SYS_rename)
         (syscall-number SYS_rmdir)
         (syscall-number SYS_select)
         (syscall-number SYS_select_nocancel)
@@ -1303,36 +1317,22 @@
         (syscall-number SYS_setpriority)
         (syscall-number SYS_setrlimit)
         (syscall-number SYS_setsockopt)
-        (syscall-number SYS_shared_region_check_np)
-        (syscall-number SYS_shared_region_map_and_slide_2_np) ;; <rdar://problem/60294880>
         (syscall-number SYS_shm_open)
         (syscall-number SYS_shutdown)
-        (syscall-number SYS_sigaction)
         (syscall-number SYS_sigaltstack)
         (syscall-number SYS_sigprocmask)
         (syscall-number SYS_sigreturn)
         (syscall-number SYS_socket)
         (syscall-number SYS_socketpair)
-        (syscall-number SYS_stat64)
-        (syscall-number SYS_statfs64)
         (syscall-number SYS_sysctl)
         (syscall-number SYS_sysctlbyname)
-        (syscall-number SYS_thread_selfid)
         (syscall-number SYS_thread_selfusage)
-        (syscall-number SYS_ulock_wait)
-        (syscall-number SYS_ulock_wait2) ;; <rdar://problem/58743778>
-        (syscall-number SYS_ulock_wake)
         (syscall-number SYS_umask)
         (syscall-number SYS_unlink)
         (syscall-number SYS_work_interval_ctl)
-        (syscall-number SYS_workq_kernreturn)
-        (syscall-number SYS_workq_open)
         (syscall-number SYS_write)
         (syscall-number SYS_write_nocancel)
-        (syscall-number SYS_writev)
-    )
-    (if (defined? 'SYS_objc_bp_assist_cfg_np)
-        (allow syscall-unix (syscall-number SYS_objc_bp_assist_cfg_np)))
+        (syscall-number SYS_writev))
 )
 
 (with-filter (system-attribute apple-internal)
@@ -1477,13 +1477,11 @@
         (machtrap-number MSC_host_create_mach_voucher_trap)
         (machtrap-number MSC_host_self_trap)
         (machtrap-number MSC_mach_generate_activity_id)
-        (machtrap-number MSC_mach_msg_overwrite_trap)
         (machtrap-number MSC_mach_msg_trap)
         (machtrap-number MSC_mach_reply_port)
         (machtrap-number MSC_mach_timebase_info_trap)
         (machtrap-number MSC_mach_voucher_extract_attr_recipe_trap)
         (machtrap-number MSC_mk_timer_arm)
-        (machtrap-number MSC_mk_timer_arm_leeway)
         (machtrap-number MSC_mk_timer_cancel)
         (machtrap-number MSC_mk_timer_create)
         (machtrap-number MSC_mk_timer_destroy)
@@ -1491,13 +1489,16 @@
         (machtrap-number MSC_semaphore_signal_trap)
         (machtrap-number MSC_semaphore_timedwait_trap)
         (machtrap-number MSC_semaphore_wait_trap)
-        (machtrap-number MSC_swtch_pri)
         (machtrap-number MSC_syscall_thread_switch)
         (machtrap-number MSC_task_name_for_pid)
         (machtrap-number MSC_task_self_trap)
-        (machtrap-number MSC_thread_get_special_reply_port)
-        (machtrap-number MSC_thread_self_trap)
-    )
+        (machtrap-number MSC_thread_get_special_reply_port))
+
+    (allow syscall-mach (with telemetry-backtrace)
+        (machtrap-number MSC_mach_msg_overwrite_trap)
+        (machtrap-number MSC_mk_timer_arm_leeway)
+        (machtrap-number MSC_swtch_pri)
+        (machtrap-number MSC_thread_self_trap))
 )
 
 (when (defined? 'mach-kernel-endpoint)
@@ -1504,44 +1505,53 @@
     (allow mach-kernel-endpoint
         (apply-message-filter
             (deny mach-message-send (with telemetry))
+            (allow mach-message-send (with telemetry-backtrace) (kernel-mig-routine
+                clock_get_time
+                host_request_notification
+                io_connect_add_client
+                io_connect_map_memory_into_task
+                (when (defined? 'io_connect_set_notification_port) io_connect_set_notification_port)
+                io_registry_entry_get_parent_iterator
+                io_service_add_notification_bin
+                io_service_add_notification_bin_64
+                io_service_close
+                mach_exception_raise
+                (when (defined? 'mach_make_memory_entry) mach_make_memory_entry)
+                (when (defined? 'mach_make_memory_entry_64) mach_make_memory_entry_64)
+                mach_memory_entry_ownership
+                mach_port_request_notification
+                mach_vm_region
+                mach_vm_region_recurse
+                task_set_exc_guard_behavior
+                task_threads_from_user
+                thread_info
+                thread_policy
+                thread_policy_set
+                (when (defined? 'vm_copy) vm_copy)
+                (when (defined? 'vm_remap_external) vm_remap_external)))
+
             (allow mach-message-send (kernel-mig-routine
                 (when (defined? '_mach_make_memory_entry) _mach_make_memory_entry)
-                clock_get_time
                 host_get_clock_service
                 host_get_io_master
                 host_get_special_port
                 host_info
-                host_request_notification
-                io_connect_add_client
                 io_connect_async_method
-                io_connect_map_memory_into_task
                 io_connect_method
-                (when (defined? 'io_connect_set_notification_port) io_connect_set_notification_port)
                 io_connect_set_notification_port_64
                 io_iterator_next
                 io_registry_entry_from_path
-                io_registry_entry_get_parent_iterator
                 io_registry_entry_get_property_bin_buf
                 io_registry_entry_get_property_bytes
                 io_registry_entry_get_registry_entry_id
                 io_server_version
-                io_service_add_notification_bin
-                io_service_add_notification_bin_64
-                io_service_close
                 io_service_get_matching_service_bin
                 io_service_get_matching_services_bin
                 io_service_open_extended
-                mach_exception_raise
-                (when (defined? 'mach_make_memory_entry) mach_make_memory_entry)
-                (when (defined? 'mach_make_memory_entry_64) mach_make_memory_entry_64)
-                mach_memory_entry_ownership
                 mach_port_get_context_from_user
-                mach_port_request_notification
                 mach_port_set_attributes
                 mach_vm_copy
                 mach_vm_map_external
-                mach_vm_region
-                mach_vm_region_recurse
                 mach_vm_remap_external
                 semaphore_create
                 semaphore_destroy
@@ -1550,20 +1560,12 @@
                 task_info_from_user
                 task_restartable_ranges_register
                 task_restartable_ranges_synchronize
-                task_set_exc_guard_behavior
                 task_set_special_port
-                task_threads_from_user
                 thread_get_state_to_user
-                thread_info
-                thread_policy
-                thread_policy_set
                 thread_resume
                 thread_set_exception_ports
-                thread_suspend
-                (when (defined? 'vm_copy) vm_copy)
-                (when (defined? 'vm_remap_external) vm_remap_external)
-                )
-            )
+                thread_suspend))
+
             (when (defined? 'mach_port_is_connection_for_service)
                 (allow mach-message-send (kernel-mig-routine mach_port_is_connection_for_service))
             )
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to