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

Subversion リポジトリの参照

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

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

trunk/1.5.x/ccs-patch/README.ccs revision 512 by kumaneko, Thu Sep 27 08:52:16 2007 UTC trunk/1.6.x/ccs-patch/README.ccs revision 1006 by kumaneko, Tue Feb 26 08:37:13 2008 UTC
# Line 769  Fix 2007/01/19 Line 769  Fix 2007/01/19
769    
770      @ Allow reuse of memory allocated for domain policy.      @ Allow reuse of memory allocated for domain policy.
771    
772        As with domain policy, unlike other policies, didn't have        Regarding domain policy, unlike other policies, didn't have
773        "is_deleted" flag and new memory were allocated        "is_deleted" flag and new memory were allocated
774        if the deleted entries are given again.        if the deleted entries are given again.
775        But to allow administrators switch domain policy periodically,        But to allow administrators switch domain policy periodically,
# 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 1040  Fix 2007/09/27 Line 1042  Fix 2007/09/27
1042    
1043        Now, quota checking is done before getting domain_acl_lock lock.        Now, quota checking is done before getting domain_acl_lock lock.
1044        This may exceed quota by one or two entries, but that won't matter.        This may exceed quota by one or two entries, but that won't matter.
1045    
1046    Fix 2007/10/16
1047    
1048        @ Add environment variable check.
1049    
1050          There are environment variables that may cause dangerous behavior
1051          like LD_\* .
1052          So I introduced 'allow_env' directive that allows specified
1053          environment variable inherited to next domain.
1054          Unlike other permissions, this check is done at execve() time
1055          using next domain's ACL information.
1056    
1057          To manage commonly inherited environments like PATH ,
1058          you can use 'allow_env' directive in exception policy
1059          to globally grant specified environment variable.
1060    
1061    Fix 2007/11/05
1062    
1063        @ Replace semaphore with mutex.
1064    
1065          I replaced semaphore with mutex.
1066    
1067        @ Add missing down() in AddReservedEntry().
1068    
1069          Mutex debugging capability told me that I had forgotten to call down()
1070          since TOMOYO version 1.3.2 .
1071          This function is not called by learning mode,
1072          so the semaphore's counter will not overflow for normal usage.
1073    
1074    Fix 2005/11/27
1075    
1076        @ Fix ReadTable() truncation bug.
1077    
1078          "snprintf(str, size, format, ...) >= size" means truncated.
1079          But I was checking for "snprintf(str, size, format, ...) > size".
1080          As a result, some entries might be dumped without '\n'.
1081    
1082        @ Purge direct "->prev"/"->next" manipulation.
1083    
1084          All list manipulations use "struct list_head" or "struct list1_head".
1085          "struct list1_head" doesn't have "->prev" member to save memory usage.
1086    
1087    Fix 2007/11/29
1088    
1089        @ Add missing semaphore in GetEXE().
1090    
1091          mm->mmap_sem was missing.
1092    
1093    Fix 2007/12/17
1094    
1095        @ Remove unused EXPORT_SYMBOL().
1096    
1097          Mark some functions static.
1098    
1099    Fix 2007/12/18
1100    
1101        @ Fix AddMountACL() rejection bug.
1102    
1103          To my surprise, "mount --bind source dest" accepts
1104          not only "both source and dest are directory"
1105          but also "both source and dest are non-directory".
1106          I was rejecting if dest is not a directory in AddMountACL().
1107    
1108        @ Change log format.
1109    
1110          Profile number and mode is added in audit logs.
1111    
1112    Fix 2008/01/03
1113    
1114        @ Change directive for file's read/write/execute permission.
1115    
1116          Directives for file's read/write/execute permissions were
1117          4/2/1 respectively. But for easier understanding, they are now
1118          replaced by read/write/execute (e.g. "allow_read" instead of "4").
1119          But for easier inputting, 4/2/1 are still accepted instead of
1120          allow_read/allow_write/allow_execute respectively.
1121    
1122        @ Change internal data structure.
1123    
1124          Since I don't have more than 16 types of file permissions,
1125          I combined them using bit-fields.
1126    
1127          Each entry had a field for conditional permission support.
1128          But since this field is unlikely used, I separated the field from
1129          common part.
1130    
1131          These changes will reduce memory used by policy.
1132    
1133    Fix 2008/01/15
1134    
1135        @ Add ptrace() hook.
1136    
1137          To prevent attackers from controlling important processes using
1138          ptrace(), I added a hook for ptrace().
1139          Most programs (except strace(1) and gdb(1)) won't use ptrace(2).
1140    
1141        @ Fix sleep condition check in CheckSocketRecvDatagramPermission().
1142    
1143          It seems that correct method to use is in_atomic()
1144          rather than in_interrupt() because in_atomic() returns nonzero
1145          whenever scheduling is not allowed.
1146    
1147    Fix 2008/02/05
1148    
1149        @ Use find_task_by_vpid() instead of find_task_pid().
1150    
1151          Kernel 2.6.24 introduced PID namespace.
1152          To search PID given from userland, the kernel needs to use
1153          find_task_by_vpid() instead of find_task_pid().
1154    
1155    Fix 2008/02/14
1156    
1157        @ Add execve() parameter checking.
1158    
1159          Until now, it was impossible to check argv[] and envp[] parameters
1160          passed to execve().
1161          I expanded conditional permission syntax so that
1162          { argc, envc, argv[] , envp[] } parameters can be checked if needed.
1163          This will allow administrator permit execution of /bin/sh only when
1164          /bin/sh is invoked in the form of "/bin/sh -c" and environment variable
1165          HOME is set by specifying
1166    
1167            allow_execute /bin/sh if exec.argv[1]="-c" exec.envp["HOME"]!=NULL
1168    
1169          in the policy.
1170          This extension will make exploit codes difficult to start /bin/sh because
1171          they unlikely set up environment variables and unlikely specify "-c"
1172          option when invoking /bin/sh , whereas proper functions likely set up
1173          environment variables and likely specify "-c" option.
1174    
1175    Fix 2008/02/18
1176    
1177        @ Add process state checking.
1178    
1179          Until now, it was impossible to change ACL without executing program.
1180          I added three variables for performing stateful checking within a domain.
1181          You can set current process's state like:
1182    
1183            allow_network TCP accept @TRUSTED_HOSTS 1024-65535 ; set task.state[0]=1
1184            allow_network TCP accept @UNTRUSTED_HOSTS 1024-65535 ; set task.state[0]=0
1185    
1186          and you can use the state like
1187    
1188            allow_read /path/to/important/file if task.state[0]=1
1189    
1190          in the policy.
1191          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
1193          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.

Legend:
Removed from v.512  
changed lines
  Added in v.1006

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