オープンソース・ソフトウェアの開発とダウンロード

Subversion リポジトリの参照

Diff of /trunk/1.8.x/ccs-patch/README.ccs

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3149 by kumaneko, Fri Nov 6 08:49:37 2009 UTC revision 3514 by kumaneko, Sat Mar 20 04:28:38 2010 UTC
# Line 2088  Fix 2009/09/01 Line 2088  Fix 2009/09/01
2088      @ Transit to new domain before do_execve() succeeds.      @ Transit to new domain before do_execve() succeeds.
2089    
2090        Permission checks for interpreters and environment variables are        Permission checks for interpreters and environment variables are
2091        done using new domain. In order to be allow ccs-queryd to reach the new        done using new domain. In order to allow ccs-queryd to reach the new
2092        domain via global PID, I reverted "Don't transit to new domain until        domain via global PID, I reverted "Don't transit to new domain until
2093        do_execve() succeeds." made on 2008/10/07.        do_execve() succeeds." made on 2008/10/07.
2094    
# Line 2234  Fix 2009/11/06 Line 2234  Fix 2009/11/06
2234    
2235        Audit log for allow_mount was using decimal format.        Audit log for allow_mount was using decimal format.
2236        It needs to use hexadecimal format.        It needs to use hexadecimal format.
2237    
2238    Fix 2009/11/09
2239    
2240        @ Add profile version check.
2241    
2242          To avoid upgrading from TOMOYO 1.6.x to TOMOYO 1.7.x without upgrading
2243          /proc/ccs/profile (which results in not protecting the system at all),
2244          I added a check for PROFILE_VERSION= .
2245    
2246    Version 1.7.1   2009/11/11   Fourth anniversary release.
2247    
2248    Fix 2009/11/13
2249    
2250        @ Don't use core_initcall() for initializing lock for GC.
2251    
2252         Some kernels call TOMOYO's hooks before processing core_initcall().
2253         Thus, I can't use core_initcall() for initializing lock for GC.
2254    
2255    Fix 2009/11/18
2256    
2257        @ Don't check "allow_write" permission for open(O_RDONLY | O_TRUNC).
2258    
2259          Since TOMOYO checks "allow_truncate" permission rather than "allow_write"
2260          permission for O_TRUNC, I need to distinguish open(O_RDONLY | O_TRUNC)
2261          and open(O_RDWR | O_TRUNC). But I made a mistake between TOMOYO 1.7.0 and
2262          1.7.1 which made it impossible for TOMOYO for kernels 2.6.14 and earlier
2263          to distinguish them.
2264    
2265    Fix 2009/11/27
2266    
2267        @ Use newly created domain's name for domain creation audit log.
2268    
2269          Since 1.7.0 , /proc/ccs/reject_log was by error using existing domain's
2270          name when auditing newly created domain's "use_profile" line.
2271    
2272    Fix 2009/12/12
2273    
2274        @ Use rcu_read_lock() for find_task_by_pid().
2275    
2276          Since kernel 2.6.18 , caller of find_task_by_pid() needs to call
2277          rcu_read_lock() rather than read_lock(&tasklist_lock) because find_pid()
2278          uses RCU primitives but spinlock does not prevent RCU callback if
2279          preemptive RCU ( CONFIG_PREEMPT_RCU or CONFIG_TREE_PREEMPT_RCU ) is
2280          enabled.
2281    
2282    Fix 2009/12/15
2283    
2284        @ Allow deleting "quota_exceeded" and "transition_failed" entries.
2285    
2286          To notify users of "this domain has too many entries to hold" and "some
2287          process in this domain was not able to perform domain transition",
2288          "quota_exceeded" and "transition_failed" messages are used respectively.
2289          These messages were not deletable. But it is more convenient for users
2290          to be notified again if such events occurred again after tuning policy.
2291          Thus, I made these messages deletable.
2292    
2293    Fix 2009/12/17
2294    
2295        @ Don't check read permission in ccs_try_alt_exec().
2296    
2297          While I was trying to remove ccs_execve_list list for GC optimization
2298          between TOMOYO 1.7.0 and 1.7.1 , I made a mistake which made TOMOYO to
2299          check allow_read permission of the programs specified by execute_handler
2300          and denied_execute_handler keywords.
2301    
2302        @ Don't check DAC permission if disabled mode.
2303    
2304          I was checking DAC permissions regarding directory entry modification
2305          operations (e.g. mkdir()) even if mode=disabled . It is a waste of CPU
2306          resource to check DAC permissions when MAC permissions are not checked.
2307          Thus, I modified to skip DAC permission checks if mode=disabled .
2308    
2309    Fix 2009/12/19
2310    
2311        @ Fix memory leak in ccs_environ().
2312    
2313          When I fixed a bug that a permission like
2314    
2315            allow_env PATH if exec.envp["PATH"]="/"
2316    
2317          was not working (2009/11/02), I allocated two buffers but only one buffer
2318          was released.
2319    
2320          This bug will trigger OOM killer if environment variable checking is
2321          enabled.
2322    
2323    Fix 2010/01/17
2324    
2325        @ Use current domain's name for execute_handler audit log.
2326    
2327          Since 1.6.7 , /proc/ccs/grant_log was by error using next domain's name
2328          when auditing current domain's "execute_handler" line.
2329    
2330    Fix 2010/03/02
2331    
2332        @ Allow domain transition without execve().
2333    
2334          To be able to split permissions for Apache's CGI programs which are
2335          executed without execve(), I added special domain transition which is
2336          performed by atomically writing '\0'-terminated binary string to
2337          /proc/ccs/.transition interface. For example, a process which belongs to
2338          "<kernel> /usr/sbin/httpd" domain will transit to
2339          "<kernel> /usr/sbin/httpd //app=cgi1\040id=10000" domain by atomically
2340          writing "app=cgi1 id=10000" + '\0' to /proc/ccs/.transition using
2341          Apache's ap_hook_handler() functionality.
2342    
2343          Note that '\0'-terminated binary string is converted to TOMOYO's string
2344          inside kernel and prefix "//" is automatically added to the string so
2345          that domainname does not conflict with domainnames created by execve().
2346          Without this prefix, if "<kernel> /usr/sbin/sshd /bin/bash" domain is
2347          allowed to open /proc/ccs/.transition for writing and
2348          "<kernel> /usr/sbin/sshd /bin/bash /usr/bin/passwd" domain is allowed to
2349          access /etc/shadow , /bin/bash will be able to access /etc/shadow by
2350          atomically writing "/usr/bin/passwd" + '\0' to /proc/ccs/.transition .
2351          Allowing /bin/bash to access /etc/shadow is not what people want.
2352    
2353          Permission for this operation is checked by "allow_transit" keyword.
2354          Unlike "allow_execute" keyword, the string parameter for "allow_transit"
2355          keyword does not refer a real file on filesystem's namespace. Therefore,
2356          you can store any combination of parameters like LDAP's DN entry in the
2357          string parameter for "allow_transit" keyword.
2358    
2359    Fix 2010/03/08
2360    
2361        @ Allow building as loadable kernel module.
2362    
2363          To be able to minimize filesize increment of vmlinux, I made it
2364          possible to compile TOMOYO Linux as loadable kernel module.
2365          Although patching the kernel source and recompiling the kernel are
2366          inevitable, this change will make it easier to enable TOMOYO Linux
2367          when there is a filesize limitation on vmlinux (e.g. embedded systems).

Legend:
Removed from v.3149  
changed lines
  Added in v.3514

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26