From owner-cvs-all Tue Aug 29 21:49:15 2000 Delivered-To: cvs-all@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id 1F96337B43C; Tue, 29 Aug 2000 21:49:10 -0700 (PDT) Received: (from rwatson@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id VAA30060; Tue, 29 Aug 2000 21:49:10 -0700 (PDT) (envelope-from rwatson@FreeBSD.org) Message-Id: <200008300449.VAA30060@freefall.freebsd.org> From: Robert Watson Date: Tue, 29 Aug 2000 21:49:10 -0700 (PDT) To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/kern kern_event.c kern_ktrace.c kern_proc.c kern_prot.c kern_resource.c kern_sig.c sys_process.c src/sys/miscfs/procfs procfs_dbregs.c procfs_fpregs.c procfs_mem.c procfs_regs.c procfs_status.c procfs_vnops.c src/sys/sys proc.h X-FreeBSD-CVS-Branch: HEAD Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG rwatson 2000/08/29 21:49:10 PDT Modified files: sys/kern kern_event.c kern_ktrace.c kern_proc.c kern_prot.c kern_resource.c kern_sig.c sys_process.c sys/miscfs/procfs procfs_dbregs.c procfs_fpregs.c procfs_mem.c procfs_regs.c procfs_status.c procfs_vnops.c sys/sys proc.h Log: o Centralize inter-process access control, introducing: int p_can(p1, p2, operation, privused) which allows specification of subject process, object process, inter-process operation, and an optional call-by-reference privused flag, allowing the caller to determine if privilege was required for the call to succeed. This allows jail, kern.ps_showallprocs and regular credential-based interaction checks to occur in one block of code. Possible operations are P_CAN_SEE, P_CAN_SCHED, P_CAN_KILL, and P_CAN_DEBUG. p_can currently breaks out as a wrapper to a series of static function checks in kern_prot, which should not be invoked directly. o Commented out capabilities entries are included for some checks. o Update most inter-process authorization to make use of p_can() instead of manual checks, PRISON_CHECK(), P_TRESPASS(), and kern.ps_showallprocs. o Modify suser{,_xxx} to use const arguments, as it no longer modifies process flags due to the disabling of ASU. o Modify some checks/errors in procfs so that ENOENT is returned instead of ESRCH, further improving concealment of processes that should not be visible to other processes. Also introduce new access checks to improve hiding of processes for procfs_lookup(), procfs_getattr(), procfs_readdir(). Correct a bug reported by bp concerning not handling the CREATE case in procfs_lookup(). Remove volatile flag in procfs that caused apparently spurious qualifier warnigns (approved by bde). o Add comment noting that ktrace() has not been updated, as its access control checks are different from ptrace(), whereas they should probably be the same. Further discussion should happen on this topic. Reviewed by: bde, green, phk, freebsd-security, others Approved by: bde Obtained from: TrustedBSD Project Revision Changes Path 1.16 +2 -2 src/sys/kern/kern_event.c 1.41 +3 -1 src/sys/kern/kern_ktrace.c 1.72 +7 -7 src/sys/kern/kern_proc.c 1.61 +144 -10 src/sys/kern/kern_prot.c 1.60 +12 -11 src/sys/kern/kern_resource.c 1.84 +2 -2 src/sys/kern/kern_sig.c 1.52 +4 -12 src/sys/kern/sys_process.c 1.5 +2 -2 src/sys/miscfs/procfs/procfs_dbregs.c 1.12 +2 -2 src/sys/miscfs/procfs/procfs_fpregs.c 1.47 +2 -2 src/sys/miscfs/procfs/procfs_mem.c 1.11 +2 -2 src/sys/miscfs/procfs/procfs_regs.c 1.21 +2 -2 src/sys/miscfs/procfs/procfs_status.c 1.81 +34 -17 src/sys/miscfs/procfs/procfs_vnops.c 1.109 +13 -4 src/sys/sys/proc.h To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message