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

Subversion リポジトリの参照

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

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

revision 994 by kumaneko, Mon Feb 18 08:36:51 2008 UTC revision 1010 by kumaneko, Fri Feb 29 14:11:41 2008 UTC
# Line 933  Fix 2007/07/04 Line 933  Fix 2007/07/04
933    
934      @ Fix ReadAddressGroupPolicy() bug.      @ Fix ReadAddressGroupPolicy() bug.
935    
936        ReadAddressGroupPolicy() fails if both "path_group" and "address_group" are used        ReadAddressGroupPolicy() fails if both "path_group" and "address_group"
937        because I forgot to set "head->read_var1 = NULL".        are used because I forgot to set "head->read_var1 = NULL".
938    
939  Fix 2007/07/10  Fix 2007/07/10
940    
# Line 949  Fix 2007/08/06 Line 949  Fix 2007/08/06
949    
950      @ Remove mount-flags manipulation.      @ Remove mount-flags manipulation.
951    
952        Until now, administrator is permitted to turn on/off specific mount options        Until now, administrator is permitted to turn on/off specific mount
953        regardless of mount options passed to kernel.        options regardless of mount options passed to kernel.
954        I removed this feature because "exact option matching" sounds better than        I removed this feature because "exact option matching" sounds better than
955        "automatic option enabler/disabler".        "automatic option enabler/disabler".
956    
957      @ Remove /proc/ccs/info/mapping .      @ Remove /proc/ccs/info/mapping .
958    
959        I removed /proc/ccs/info/mapping because nobody seems to use this feature.        I removed /proc/ccs/info/mapping because nobody seems to use this
960          feature.
961    
962      @ Call external policy loader automatically.      @ Call external policy loader automatically.
963    
# Line 980  Fix 2007/08/13 Line 981  Fix 2007/08/13
981        can handle interactive operations by opening /dev/console .        can handle interactive operations by opening /dev/console .
982        Now, there is no difference between init=/sbin/ccs-init and        Now, there is no difference between init=/sbin/ccs-init and
983        call_usermodehelper("/sbin/ccs-init"), and users no longer need to        call_usermodehelper("/sbin/ccs-init"), and users no longer need to
984        add init=/sbin/ccs-init parameter to load policy before /sbin/init starts.        add init=/sbin/ccs-init parameter to load policy before /sbin/init
985          starts.
986    
987  Fix 2007/08/14  Fix 2007/08/14
988    
# Line 1142  Fix 2008/01/15 Line 1144  Fix 2008/01/15
1144        rather than in_interrupt() because in_atomic() returns nonzero        rather than in_interrupt() because in_atomic() returns nonzero
1145        whenever scheduling is not allowed.        whenever scheduling is not allowed.
1146    
 Fix 2008/01/24  
   
     @ Support /proc/ccs/ access by non-root user.  
   
       Until now, only root user can access /proc/ccs/ interface.  
       But to permit /proc/ccs/ access by non-root user so that  
       it won't require ssh login by root user when administrating  
       from remote host, I eased restrictions on this interface.  
   
            (current->uid == 0 && current->euid == 0) ||  
            (current->uid != 0 && current->uid == inode->i_uid) ||  
            (current->gid != 0 && current->gid == inode->i_gid)  
   
       The inode's uid and gid are set using chown/chgrp commands.  
   
1147  Fix 2008/02/05  Fix 2008/02/05
1148    
1149      @ Use find_task_by_vpid() instead of find_task_pid().      @ Use find_task_by_vpid() instead of find_task_pid().
# Line 1202  Fix 2008/02/18 Line 1189  Fix 2008/02/18
1189    
1190        in the policy.        in the policy.
1191        The state changes when the request was granted by the MAC's policy,        The state changes when the request was granted by the MAC's policy,
1192        so please be careful with situations where the state has changed successfully        so please be careful with situations where the state has changed
1193        but the request was not processed because of other reasons (e.g. out of memory).        successfully but the request was not processed because of other reasons
1194          (e.g. out of memory).
1195    
1196    Fix 2008/02/26
1197    
1198        @ Support /proc/ccs/ access by non-root user.
1199    
1200          Until now, only root user can access /proc/ccs/ interface.
1201          But to permit /proc/ccs/ access by non-root user so that it won't require
1202          ssh login by root user when administrating from remote host,
1203          I made "(current->uid == 0 && current->euid == 0)" requirement optional.
1204          If this requirement is disabled, only "conventional DAC permission
1205          checks" and "/proc/ccs/manager checks" are used.
1206    
1207    Fix 2008/02/29
1208    
1209        @ Add sleep_on_violation feature.
1210    
1211          Some exploit codes (e.g. trans2open for Samba) continue running
1212          until it achieves the purpose of the exploit code (e.g. invoke /bin/sh).
1213    
1214          If such code is injected due to buffer overflow but the kernel
1215          rejects the request, it triggers infinite "Permission denied" loop.
1216          As a result, the CPU usage becomes 100% and gives bad effects to
1217          the rest of processes.
1218          This is a side effect of rejecting the request from the exploit code
1219          which wouldn't happen if the request from the exploit code was granted.
1220    
1221          To avoid such CPU consumption, I added a penalty that forcibly
1222          sleeps for specified period when a request is rejected.
1223    
1224          This penalty doesn't work if the exploit code does nothing but
1225          continue running, but I think most exploit code's purpose is
1226          to start some program rather than to slow down the target system.
1227    
1228        @ Add alt_exec feature.
1229    
1230          Since TOMOYO Linux's approach is "know all essential requests in advance
1231          and create policy that permits only them", you can regard anomalous
1232          requests as attacks (if you want to do so).
1233    
1234          Common MAC implementations merely reject requests that violate policy.
1235          But I added a special handler for execve() to TOMOYO Linux.
1236    
1237          This handler is triggered when a process requested to execute a program
1238          but the request was rejected by the policy.
1239          This handler executes a program specified by the administrator
1240          instead of a program requested by the process.
1241    
1242          Most attackers attempt to execute /bin/sh to start something malicious.
1243          Attackers execute an exploit code using buffer overflow vulnerability
1244          to steal control of a process. But this handler can get back control
1245          if an exploit code requests execve() that is not permitted by policy.
1246    
1247          By default, this handler does nothing (i.e. merely reject execve()
1248          request). You can specify any program to start what you want to do.
1249    
1250          You can redirect attackers to somewhere else (e.g. honeypot).
1251          This makes it possible to act your Linux box as an on-demand honeypot
1252          while keeping regular services for your usage.
1253    
1254          You can collect information of the attacker (e.g. IP address) and
1255          update firewall configuration.
1256    
1257          You can silently terminate a process who requested execve()
1258          that is not permitted by policy.

Legend:
Removed from v.994  
changed lines
  Added in v.1010

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