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

Subversion リポジトリの参照

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

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

trunk/1.7.x/ccs-patch/README.ccs revision 3643 by kumaneko, Mon May 10 13:52:22 2010 UTC branches/ccs-patch/README.ccs revision 3869 by kumaneko, Thu Jul 29 13:29:11 2010 UTC
# Line 2411  Fix 2010/05/10 Line 2411  Fix 2010/05/10
2411      @ Fix incorrect out of memory warning.      @ Fix incorrect out of memory warning.
2412    
2413        Out of memory warnings were not printed in some cases by error.        Out of memory warnings were not printed in some cases by error.
2414    
2415    Fix 2010/05/27
2416    
2417        @ Add missing rcu_dereference() for ccs_find_execute_handler().
2418    
2419          Since 1.7.0 , ccs_find_execute_handler() was by error using
2420          list_for_each_entry() rather than list_for_each_entry_rcu().
2421          This bug affects only Alpha architecture.
2422    
2423    Fix 2010/06/03
2424    
2425        @ Fix missing sanity check for "file_pattern".
2426    
2427          Since 1.7.0 , ccs_write_pattern_policy() was by error accepting
2428          invalid pathname.
2429    
2430    Fix 2010/06/09
2431    
2432        @ Add missing ccs_put_name() in ccs_parse_envp().
2433    
2434          Since 1.7.0 , ccs_parse_envp() was not calling ccs_put_name() if
2435          environment variable's value ('if exec.envp["name"]="value"' condition)
2436          was invalid.
2437    
2438        @ Add missing NULL check in ccs_condition().
2439    
2440          Since 1.7.0 , if 'if symlink.target=' part was given against non-file
2441          permissions (e.g. allow_env PATH if symlink.target="/"), it triggered
2442          NULL pointer dereference.
2443    
2444    Fix 2010/07/29
2445    
2446        @ Change keyword syntax.
2447    
2448          I removed "allow_" prefix from directives. New directives for files are
2449          prefixed with "file ". For example, "allow_read" changed to "file read",
2450          "allow_ioctl" changed to "file ioctl". New directive for "allow_network"
2451          is "network". New directive for "allow_env" is "misc env". New directive
2452          for "allow_signal" is "ipc signal". New directive for "allow_capability"
2453          is "capability". These directives correspond with keywords used by
2454          profile's CONFIG lines.
2455    
2456          I removed "deny_rewrite" and "allow_rewrite" directives and introduced
2457          "file append" directive. Thus, permission for open(O_WRONLY | O_APPEND)
2458          changed from "allow_write" + "allow_rewrite" to "file append".
2459    
2460          I removed "SYS_MOUNT", "SYS_UMOUNT", "SYS_CHROOT", "SYS_KILL",
2461          "SYS_LINK", "SYS_SYMLINK", "SYS_RENAME", "SYS_UNLINK", "SYS_CHMOD",
2462          "SYS_CHOWN", "SYS_IOCTL", "SYS_PIVOT_ROOT" keywords from capabilities
2463          because these permissions can be checked by other directives (e.g.
2464          "file mount", "ipc signal").
2465    
2466          I also removed "conceal_mount" keyword from capabilities because this
2467          check requires hooks in filesystem part while almost all hooks for
2468          filesystem part have moved to LSM by Linux 2.6.34.
2469    
2470        @ Distinguish send() and recv() operations for UDP and IP protocols.
2471    
2472          Until now, it was impossible for UDP and IP protocols to allow either
2473          only sending or only receiving because permissions were aggregated with
2474          "connect" keyword. I broke "connect" keyword into "send" and "recv"
2475          keywords so that you can keep access control for send() operation enabled
2476          when you have to turn access control for recv() operation off due to
2477          application breakage by filtering incoming datagram.
2478    
2479        @ Wait for next connection/datagram if current connection/datagram was
2480          discarded.
2481    
2482          Regarding "network TCP accept", "network UDP recv", "network RAW recv"
2483          keywords, I modified to wait for next connection/datagram if current
2484          connection/datagram was discarded. LSM hooks for these keywords are
2485          currently missing because this behavior may break applications.
2486          If you found applications broken by this behavior, you can set
2487          CONFIG::network::inet_tcp_accept and/or CONFIG::network::inet_udp_recv
2488          and/or CONFIG::network::inet_raw_recv to mode=disabled in order to
2489          disable filtering for incoming connection/datagram.
2490    
2491        @ Allow specifying multiple permissions in a line.
2492    
2493          Until now, only "allow_read/write" can be specified for combination of
2494          "allow_read" + "allow_write". Now, you can combine other permissions as
2495          long as type of parameters for these permissions is same. For example,
2496          "file read/write/append/execute/unlink/truncate /tmp/file" is correct
2497          but "file read/write/create /tmp/file" is wrong because "file create"
2498          requires create mode whereas "file read" and "file write" do not.
2499    
2500        @ Allow wildcard for execute permission and domainname.
2501    
2502          Until now, to execute programs with temporary names, "aggregator" is
2503          needed. To simplify code, I modified to accept wildcards for execute
2504          permission and domainname. Now, you can directly specify
2505          "file execute /tmp/logrotate.\?\?\?\?\?\?" and use
2506          "/tmp/logrotate.\?\?\?\?\?\?" within domainnames.
2507    
2508        @ Change pathname for non-rename()able filesystems.
2509    
2510          LSM version of TOMOYO wants to use /proc/self/ rather than /proc/$PID/ if
2511          $PID matches current thread's process ID in order to prevent current
2512          thread from accessing other process's information unless needed.
2513          But since procfs can be mounted on various locations (e.g. /proc/ /proc2/
2514          /p/ /tmp/foo/100/p/ ), LSM version of TOMOYO cannot tell that whether the
2515          numeric part in the string returned by __d_path() represents process ID
2516          or not.
2517    
2518          Therefore, to be able to convert from $PID to self no matter where procfs
2519          is mounted, I changed pathname representations for filesystems which do
2520          not support rename() operation (e.g. proc, sysfs, securityfs).
2521    
2522          Now, "/proc/self/mounts" changed to "proc:/self/mounts" and
2523          "/sys/kernel/security/" changed to "sys:/kernel/security/" and
2524          "/dev/pts/0" changed to "devpts:/0".
2525    
2526        @ Add a new keyword "any" for domain transition control.
2527    
2528          To be able to make it easier to apply execute_handler on each domain,
2529          I added "any" keyword to domain transition control keywords. Now,
2530          "initialize_domain /usr/sbin/sshd" changed to
2531          "initialize_domain /usr/sbin/sshd from any" and
2532          "keep_domain <kernel> /usr/sbin/sshd /bin/bash" changed to
2533          "keep_domain any from <kernel> /usr/sbin/sshd /bin/bash".
2534    
2535          "keep_domain /path/to/execute_handler from any" will allow you to apply
2536          execute_handler for any domains without creating domains for
2537          execute_handler.
2538    
2539        @ Change buffering mode for reading policy.
2540    
2541          To be able to read() very very long lines correctly, I changed the way
2542          TOMOYO buffers policy for reading.
2543    
2544        @ Introduce "acl_group" keyword.
2545    
2546          Until now, it was possible to specify only "allow_read" and "allow_env"
2547          keywords in the exception policy.
2548    
2549          Since some operations like "file read/write/append /dev/null" and
2550          "network UDP send/recv @DNS_SERVER 53" are very common and should be
2551          permitted to all domains, I introduced "acl_group" keyword for giving
2552          such permissions.
2553    
2554          For example, specify "acl_group 0 file read/write/append /dev/null" in
2555          the exception policy and specify "use_group 0" from the domains in the
2556          domain policy.
2557    
2558          "ignore_global_allow_read" and "ignore_global_allow_env" keywords were
2559          removed from domain policy and "use_group" keyword was added.
2560    
2561        @ Allow controlling generation of access granted logs for per an entry
2562          basis.
2563    
2564          I added per-entry flag which controls generation of grant logs because
2565          Xen and KVM issues ioctl requests so frequently. For example,
2566    
2567            file ioctl /dev/null 0x5401 ; set audit=no
2568    
2569          will suppress /proc/ccs/grant_log even if profile says grant_log=yes .
2570    
2571            file ioctl /dev/null 0x5401 ; set audit=yes
2572    
2573          will generate /proc/ccs/grant_log even if profile says grant_log=no .
2574    
2575            file ioctl /dev/null 0x5401
2576    
2577          will generate /proc/ccs/grant_log only if profile says grant_log=yes .
2578    
2579          This flag is intended for frequently accessed resources like
2580    
2581            file read /var/www/html/\{\*\}/\*.html ; set audit=no
2582    
2583          .
2584    
2585        @ Optimize for object's size.
2586    
2587          I merged similar code in order to reduce object's filesize.

Legend:
Removed from v.3643  
changed lines
  Added in v.3869

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