1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359
|
class infoflow
class infoflow2
class infoflow3
class infoflow4
class infoflow5
class infoflow6
class infoflow7
sid kernel
sid security
common infoflow
{
low_w
med_w
hi_w
low_r
med_r
hi_r
}
class infoflow
inherits infoflow
class infoflow2
inherits infoflow
{
super_w
super_r
}
class infoflow3
{
null
}
class infoflow4
inherits infoflow
class infoflow5
inherits infoflow
class infoflow6
inherits infoflow
class infoflow7
inherits infoflow
{
super_w
super_r
super_none
super_both
super_unmapped
}
sensitivity s0;
sensitivity s1;
sensitivity s2;
sensitivity s3;
sensitivity s4;
sensitivity s5;
sensitivity s6;
dominance { s0 s1 s2 s3 s4 s5 s6 }
category c0;
category c1;
category c2;
category c3;
category c4;
#level decl
level s0:c0.c4;
level s1:c0.c4;
level s2:c0.c4;
level s3:c0.c4;
level s4:c0.c4;
level s5:c0.c4;
level s6:c0.c4;
#some constraints
mlsconstrain infoflow hi_r ((l1 dom l2) or (t1 == mls_exempt));
attribute mls_exempt;
type system;
role system;
role system types system;
role role20_r;
role role21a_r;
role role21b_r;
role role21c_r;
role role20_r types system;
role role21a_r types system;
role role21b_r types system;
role role21c_r types system;
type type30;
type type31a;
type type31b;
type type31c;
role system types { type30 type31a type31b type31c };
allow system self:infoflow hi_w;
#users
user system roles { system role20_r role21a_r role21b_r role21c_r } level s0 range s0 - s6:c0.c4;
user user10 roles system level s0 range s0 - s2:c0.c4;
user user11a roles system level s0 range s0 - s2:c0.c4;
user user11b roles system level s0 range s0 - s2:c0.c4;
user user11c roles system level s0 range s0 - s2:c0.c4;
#normal constraints
constrain infoflow hi_w (u1 == u2);
#isids
sid kernel system:system:system:s0
sid security system:system:system:s0
# test 1:
# mem addr: unset
# user: unset
# role: unset
# type: unset
# range: unset
iomemcon 1 system:system:system:s0:c0.c1
# test 10:
# mem addr: unset
# user: user10, exact
# role: unset
# type: unset
# range: unset
iomemcon 10 user10:system:system:s0:c0.c1
# test 11:
# mem addr: unset
# user: user11(a|b), regex
# role: unset
# type: unset
# range: unset
iomemcon 11 user11a:system:system:s0:c0.c1
iomemcon 11000 user11b:system:system:s0:c0.c1
iomemcon 11001 user11c:system:system:s0:c0.c1
# test 20:
# mem addr: unset
# user: unset
# role: role20_r, exact
# type: unset
# range: unset
iomemcon 20 system:role20_r:system:s0:c0.c1
# test 21:
# mem addr: unset
# user: unset
# role: role20(a|c)_r, regex
# type: unset
# range: unset
iomemcon 21 system:role21a_r:system:s0:c0.c1
iomemcon 21000 system:role21b_r:system:s0:c0.c1
iomemcon 21001 system:role21c_r:system:s0:c0.c1
# test 30:
# mem addr: unset
# user: unset
# role: unset
# type: type30
# range: unset
iomemcon 30 system:system:type30:s0:c0.c1
# test 31:
# mem addr: unset
# user: unset
# role: unset
# type: type31(b|c)
# range: unset
iomemcon 31 system:system:type31a:s0:c0.c1
iomemcon 31000 system:system:type31b:s0:c0.c1
iomemcon 31001 system:system:type31c:s0:c0.c1
# test 40:
# mem addr: unset
# user: unset
# role: unset
# type: unset
# range: equal
iomemcon 40 system:system:system:s0:c1 - s0:c0.c4
# test 41:
# mem addr: unset
# user: unset
# role: unset
# type: unset
# range: overlap
iomemcon 41 system:system:system:s1:c1 - s1:c1.c3
# test 42:
# mem addr: unset
# user: unset
# role: unset
# type: unset
# range: subset
iomemcon 42 system:system:system:s2:c1 - s2:c1.c3
# test 43:
# mem addr: unset
# user: unset
# role: unset
# type: unset
# range: superset
iomemcon 43 system:system:system:s3:c1 - s3:c1.c3
# test 44:
# mem addr: unset
# user: unset
# role: unset
# type: unset
# range: proper subset
iomemcon 44 system:system:system:s4:c1 - s4:c1.c3
# test 45:
# mem addr: unset
# user: unset
# role: unset
# type: unset
# range: proper superset
iomemcon 45 system:system:system:s5:c1 - s5:c1.c3
# test 50:
# mem addr: (50, 50)
# user: unset
# role: unset
# type: unset
# range: unset
iomemcon 50 system:system:system:s0:c0.c1
# test 51:
# mem addr: (50100, 50110)
# user: unset
# role: unset
# type: unset
# range: unset
iomemcon 50100-50110 system:system:system:s0:c0.c1
# test 52:
# mem addr: (50200, 50200), subset
# user: unset
# role: unset
# type: unset
# range: unset
iomemcon 50200 system:system:system:s0:c0.c1
# test 53:
# mem addr: (50301, 50309), subset
# user: unset
# role: unset
# type: unset
# range: unset
iomemcon 50300-50310 system:system:system:s0:c0.c1
# test 54:
# mem addr: (50400, 50400), proper subset
# user: unset
# role: unset
# type: unset
# range: unset
iomemcon 50400 system:system:system:s0:c0.c1
# test 55:
# mem addr: (50501, 50509), proper subset
# user: unset
# role: unset
# type: unset
# range: unset
iomemcon 50500-50510 system:system:system:s0:c0.c1
# test 56:
# mem addr: (50600, 50602), superset
# user: unset
# role: unset
# type: unset
# range: unset
iomemcon 50601 system:system:system:s0:c0.c1
# test 57:
# mem addr: (50700, 50711), superset
# user: unset
# role: unset
# type: unset
# range: unset
iomemcon 50700-50710 system:system:system:s0:c0.c1
# test 58:
# mem addr: (50600, 50602), proper superset
# user: unset
# role: unset
# type: unset
# range: unset
iomemcon 50801 system:system:system:s0:c0.c1
# test 59:
# mem addr: (50900, 50911), proper superset
# user: unset
# role: unset
# type: unset
# range: unset
iomemcon 50901-50910 system:system:system:s0:c0.c1
# test 60:
# mem addr: (60001, 60001), overlap
# user: unset
# role: unset
# type: unset
# range: unset
iomemcon 60001 system:system:system:s0:c0.c1
# test 61:
# mem addr: (60100, 60105), overlap
# user: unset
# role: unset
# type: unset
# range: unset
iomemcon 60101-60110 system:system:system:s0:c0.c1
# test 62:
# mem addr: (60205, 60211), overlap
# user: unset
# role: unset
# type: unset
# range: unset
iomemcon 60200-60210 system:system:system:s0:c0.c1
# test 63:
# mem addr: (60305, 60308), overlap
# user: unset
# role: unset
# type: unset
# range: unset
iomemcon 60300-60310 system:system:system:s0:c0.c1
# test 64:
# mem addr: (60400, 60410), overlap
# user: unset
# role: unset
# type: unset
# range: unset
iomemcon 60400-60410 system:system:system:s0:c0.c1
# test 65:
# mem addr: (60500, 60510), overlap
# user: unset
# role: unset
# type: unset
# range: unset
iomemcon 60501-60509 system:system:system:s0:c0.c1
|