
ããã«ã¡ã¯HabrïŒ ãã®æçš¿ã§ã¯ãå°æ¬ãããŠããã³ãã¥ããã£ãNSAãããã¯ã®ãŽã·ããããå°ãæ°ãæ£ããã代ããã«ãSELinuxããªãã«ããããšãå°ããªéšåãçè§£ããããã«æé«ã®å¹Žãæ§ããããšã®ã¯ãã¹ãæžããŠã圌ãã®ãã¯ãããžãŒã®èª¬æã®ã®ã£ãããåããããšæããŸãã å®éããããã®èŠç¹ã¯ã©ã¡ããçå®ãšã¯ããé¢ããŠããŸãããã¯ãããžãŒã¯éåžžã«ã·ã³ãã«ã§éææ§ãé«ããå€ãã®ããšãã§ããŸãã ããããç§ã¯èšå€§ãªæ°ã®æçŽãšãããªãçã察象èªè
ã«ã€ããŠèŠåããããšæããŸãã 以äžã¯èª°ã«ãšã£ãŠãè峿·±ããã®ã§ã¯ãããŸããã SELinuxãäœã§ããããé·ãéçè§£ãããããã©ã¡ãã®åŽã«ã¢ãããŒãããã®ãããããªãã£ãå Žåã¯ããã®èšäºã圹ç«ã¡ãŸãã ãã®ãã¹ãŠãé·ãéç¥ã£ãŠããŠããããããŸãé©çšã§ããããã³ã¡ã³ãã§ãããè°è«ã§ããããã«ãç§ã¯ååãªäžæ£ç¢ºããå ããŸããã ãŸããäžççã«æåãªæ
å ±ã»ãã¥ãªãã£ã®å°éå®¶ã¯æåŸãŸã§å®å
šã«ã¹ãããããŠãã¬ã€ãéå§ã§ããŸããç§ã¯ç¶ç¶ããäºå®ã§ã:-)
NSAå
šè¬ã«é¢é£ãããããã¯ãRSAãè§£èªããæ©èœãçèŽããã®ä»ã®ã¡ãã£ã¢ã®åŽé¢ã«ã€ããŠã¯è§ŠããŸãããèªå€§åºåãFUDãããã¯ãããžãŒããããŸããã ããŸããŸãªã¬ãã«ã®ã¢ã¯ãã£ããã£ã§ããŸããŸãªãœãŒã¹ã«ã¢ã¯ã»ã¹ããMLSã®äžå¿ã«æ¡ä»¶ã远å ããè匱æ§ãå°å
¥ãïŒééããç¯ãïŒããã®åŸããã¹ã
ãéå§ããŠå®è¡
ããããšããŸãã èšãæããã°ãç§ã¯äœãšã©ã®ããã«èª¬æãããã®åŸãSELinuxãæªç¥ã®åç©ã§ãããæµã§ããå¯èœæ§ã®ããäœäººã®æªéãšèŠãªããªããªããŸãããããã®ãã¯ãããžãŒã倧èã«äœ¿ãå§ããŸããã ç¹ã«ããã¹ãŠã®AndroidïŒ> 4.3ïŒããã³å€ãã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ã«æ¢ã«å«ãŸããŠããããšãèæ
®ããŠãã ããã
ã§ãããããŸã èå³ããããå€ãã®ãã¿ãã¬ã®ãã¡ã®1ã€ã«1é±é座ãããšãæããªããªãã
äºå枬å®å€
ã€ãŸãããæ°ã«å
¥ãã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ãä»®æ³ç°å¢ã«å±éããã®ã«ååãªLinuxã®çµéšããã§ã«ãããšããããšã§ãã ç§ã¯Debianã®äŸã§ãã¹ãŠãè¡ããŸããããã®ãã¹ãç¹°ãè¿ãããšã«æ±ºããå Žåãããã¯ãã¹ãŠãæã䟿å©ã§äœ¿ãæ
£ããé
åžãããã§è¡ãããšãã§ããŸãïŒãããŠéåžžã«å¿
èŠã§ãïŒ-ãã®éçšã§ãããªãã¯ããã«ã€ããŠå€ããåŠã³ãŸãã 誰ã§ã段éçã«ç¹°ãè¿ãããšãã§ããããã«ããã®èšäºãææãšããŠæžããŸããã ãŸããè±èªã§æè¡ææžãèªãããšã¯é£ãããªãããšãæå³ããŸã-ãã·ã¢èªã®SELinuxã«é¢ããæ
å ±ã¯ãŸã ã»ãšãã©ãããŸããã
äžè¬çãªæè¡æ
å ±
SELinuxãããããããã¯éåžžã«å€ãããã玹ä»ããªã¥ãŒã ãã©ãã»ã©å°ãããã«ã¯é©ãã§ãããããªã³ã¯ã¯3ã€ã ãã§ãã
- RHã¬ã€ã ïŒæç¢ºã§ãªãããŒã ãããå Žåããã®äžã«èª¬æãèŠã€ããå¯èœæ§ãé«ãã§ãã 䟿å©ãªå¥ã®ã¿ãã§éããŸãã
- Eli Billauerã«ããè¬çŸ©ã®èŠçŽ ïŒãããäºå®ã®äž»èŠãªã³ã¬ã¯ã·ã§ã³ãšèããŠãã ããã ãããããäœãäœã§ãããããã°ããçè§£ããGoogleã«äœãå°ããããæ£ç¢ºã«ç¥ãããšãã§ããŸãã
- ããªã·ãŒã®äœæ ã 10幎åã®ããã¥ã¡ã³ãã«ãããããããå
éšããã€ã¹SELinuxãçè§£ããã®ã«ååãªããŒãã€ã³ããšããã®éžææ¹æ³ã«ã€ããŠèª¬æããŠããŸãã
ããã¯ãã»ããã¢ãããé²ãã
åã«èªãããšããå§ãããäž»ãªãã®ã§ããããããªããšããããã®ããã¥ã¡ã³ãã«åžžã«æ»ãããšã«ãªããŸãã ä»ã«ã
å€ã ã® ãªãœãŒã¹ããããŸãããããŒã«å€æ°ããªã³/ãªãã«ãã以å€ã®ããšããããå Žåã¯ãééããªããããã«å°éããŸãã
ãããã£ãŠãããããã¹ãŠãèªããšãç°¡åãªè³ªåã§èªåèªèº«ããã¹ãã§ããŸãã
- unconfined_t / unconfined_uãšã¯äœã§ããïŒãŸããªãSELinuxããã¹ãã§ããªãã®ã§ããïŒ
- ç¹æ®ãªã±ãŒã¹ãMLSãŸãã¯MCSãšã¯äœã§ããïŒ
- * .teãš* .ifã®* .fcã®éãã¯äœã§ããïŒ
çã- ç¡å¶éã®ãã¡ã€ã³/ãŠãŒã¶ãŒã åãæåãåããŠãå¥ã®ãã·ã³ã§SELinuxãæ§æã§ããŸãã
- MCSã MLS == MCS with MLS_SENS = 1
- åºæ¬çã«-äœããããŸããã txtã®æžã蟌ã¿ã§ã¯ãã¡ã€ã³ã®Makefileãä¿®æ£ããããšãå¿ããªãã§ãã ããã
åé¡ã¹ããŒãã¡ã³ããšäºåèšå®
æ¢ã«äœã欲ããã®ãã¯ããã£ãŠããããã©ã®ããã«å®è£
ããã®ãããããªãã®ã§ãå®éšã®ç®æšãå®åŒåã§ããŸãã
- SELinux MLSãèšå®ãããïŒãããåã蟌ãã ã®ã§ãæå€§éã«
掻çšããŠããªããžããªããæºåãã§ããŠããªãnext-> next->åæ ïŒ; - RefPolicyãåºç€ãšããŠäœ¿çšããããšèããŠããŸã ã
- ããŠããã®åŸãææªã®ã·ããªãªã確èªããŸã-å£ããã ãã§ãªããUID = 0ã«ãªã£ãã ãã§ãªããäžå®ã®ã·ã§ã«ã¢ã¯ã»ã¹ã§ãã«ãŒããuser_uã«åãããããã®ãå¿ããŸããã ç§ã¯æå³çã«ãã®ãããªä»®å®ãããã€ãè¡ããŸããææªã®ã·ããªãªãæ€èšããŸãã
- æäœéå¿
èŠãªã³ããŒãèšå®ããŸããããããªããšãèšäºã§ã¯ãªããçŽ500ããŒãžã®ãµã¬ã«ãªããŸãã
ãµãŒããŒ
ããªãã®èš±å¯ãåŸãŠããã¿ãã¬ã®äžã«çœ®ããŸãã YMMVãDebianããæã¡ã§ãªããããããŸãããKVMã§ã®ã€ã³ã¹ããŒã«ãåæ§ã§ãã ä»®æ³ç°å¢ã®æå°æ§æã§ã€ã³ã¹ããŒã«ããããã£ã¹ããªãã¥ãŒã·ã§ã³ã¯ãã¹ãŠæ©èœããŸãã ä»®æ³-ããã¯ãã䟿å©ã§ãæå°éã§ãããã-é«éã§ããããã§ãã
詳现å
žåçãªDebianãšãã¹ããŒãã€ã³ã¹ããŒã«ãå°ããªãã¥ã¢ã³ã¹ïŒ
- ãã£ã¹ã¯ã®æ
éïŒæå€§4GBïŒïŒïŒ
- / dev / vda1 64MBãšããŠ/ bootãext2ã
- LUKSïŒaes256ïŒcbc-essivïŒpassphraseãšããŠæ®ãããã¹ãŠã®èšå®ã¯ããã©ã«ãã§æå€§ã§ãã
- æ®ãã®å
éš-LVMã®äžã®ãã¹ãŠã
- ãããfstabã§ã
root@sandbox:~
- ãã®åŸã®ãã¹ãã®äŸ¿å®ã®ããã«ãåå¥ã®ã»ã¯ã·ã§ã³ãäœæãããŸãã
- SSHãµãŒããŒãåããæå°éã®ã·ã¹ãã ãå°å
¥ããŸããã
- ã€ã³ã¹ããŒã«ãå®äºããåã«ãããã«ã·ã§ã«ãåŒã³åºããŠã·ã¹ãã ããŒãèšæ¶ããŸãã
root@sandbox:~
ã€ã³ã¹ããŒã«åŸãsshãå®è¡ããã·ã¹ãã ãå®éšçšã®åºæ¬ããŒãžã§ã³ã«æã£ãŠãããŸããç§ã®å Žåã¯æ¬¡ã®ãããªãã®ã§ããã
sed -i 's/wheezy/jessie/g' /etc/apt/sources.list
sshã®ããŒãäœæããããããã«ãŒãã®ãµãŒããŒã«ç»é²ããŸãã
@local$ ssh-keygen -b 521 -t ecdsa -f selinux-test @remote
ããŠãã«ãŒãã³ã§ã¢ã»ã³ãã«ããã«ãŒãã«ãé
眮ããŸã-PaXããã³GRSecurityããããå®éšããããã«ãããªã·ãŒã®ææ°ããŒãžã§ã³ãæå°éã®ã¢ãžã¥ãŒã«ã»ããããµããŒããããïŒããã¯ãSELinuxãšãããŸããããŸããããããããŸã説æããŸãïŒã äžè¬ã«ãããã©ã«ãŒãã«ã¯çŸåšã®æ®µéã§æé©ã§ãã ã¯ããDebianã®æ¹æ³ã«ã€ããŠè©±ããŠããèŽè¡ããã®å£°ãèãããŸãããããã仿¥ã®ãµã ã©ã€ã®æ¹æ³ã¯ãã®ãããªãã¬ãŒã ã¯ãŒã¯ã«éå®ãããŸããã ãã®å®éšã§ã¯ãå¶éãªãã§UID = 0ã®ãŸãŸã§ãããå¿
èŠãªããšã¯äœã§ãè¡ããŸãã ãã®ãããã¢ãªãŸãïŒãŸãã¯ããŒã«ã«ã®virtualkaïŒãå°ãå ç±ããŸãã
mkdir src && cd src && wget -c http://kernel.org/pub/linux/kernel/v3.0/linux-3.10.18.tar.bz2 && tar jxf linux*tar.bz2 && cd linux* && make menuconfig && make -j$((2* $(grep processor /proc/cpuinfo | wc -l))) deb-pkg && make clean
èšå®æ®µéã§
ãSELinuxãæå¹ã«ããŸãïŒã¯ãããã®ãããã¯æå³ãããŠããŸãïŒïŒïŒ

å®éšã®åºç€ã¯æŽã£ãŠãããšä¿¡ããŠããŸãã
ããªã·ãŒã®çµã¿ç«ãŠãèªååãã
ããŒã«ã«ãã·ã³ã§ããªã·ãŒãåéããããããdebããã±ãŒãžãšããŠãµãŒããŒã«ã€ã³ã¹ããŒã«ããæ¹ã䟿å©ã§ããã ã ãããç§ã¯æãæµæã®å°ãªãéãéžãã ã
ã¢ãããšã³ã¿ãŒã¹ã¿ã€ã« wget http://oss.tresys.com/files/refpolicy/refpolicy-2.20130424.tar.bz2 tar jxf refpolicy-2.20130424.tar.bz2 cp -rp refpolicy custom
次ã«ãããã±ãŒãžãã«ãã¹ã¯ãªããïŒ
å®å
šãªåçµã¿ç«ãŠæéã¯çŽ30ç§ã§ããããšãããã£ããããã¹ã¯ãªããæäœã®äžè¬ååãéžæãããŸããããé¡ããšåŒã°ããrpmçµã¿ç«ãŠã«ç°¡åã«é©å¿ã§ããŸãã
- ãã¹ãŠããããã«ããŸãïŒãããã«ããŸãïŒ
- ããªã·ãŒãåéããŠã€ã³ã¹ããŒã«ããŸãïŒã€ã³ã¹ããŒã«ãè¡ããŸãïŒ
- ã€ã³ã¹ããŒã«ãããŠãããã®ããã¹ãŠèŠã€ããŠïŒã©ããæ¢ãã¹ãããç¥ã£ãŠããŸãïŒãããã±ãŒãžãåéããŸã
- / tmpã«ãµãŒããŒãå
¥åããŸã
- postinstã§ã圌èªèº«ãæŽæ°ããsemoduleããã«ããããªã·ãŒããªããŒãããããšã«æ°ä»ãã§ãããã
SELinuxãæåã®ç¥ãåãã
ãµãŒããŒã®æºåãæŽãããã«ãã·ã¹ãã ã®æºåãæŽããåç
§ããªã·ãŒãèªã¿èŸŒãŸããŸãããããã§ã楜ããéšåãéå§ã§ããŸãã ïŒãã®æ®µéã§ãèšäºã®æ¢åã®ããªã¥ãŒã ãè©äŸ¡ãããšãå·éãªèãã¯ããã
2 5ã«åå²ããããšã«å¿ã³èŸŒãã :-)ã
æåã®ã¢ã»ã³ããªã§ã¯ããã©ã¡ãŒã¿ãŒã決å®ããŸããããããéžæããŸããã
$ sed '/^#/d;/^$/d' build.conf TYPE = mls NAME = custom DISTRO = debian UNK_PERMS = reject DIRECT_INITRC = n MONOLITHIC = n UBAC = y CUSTOM_BUILDOPT = MLS_SENS = 4 MLS_CATS = 32 MCS_CATS = 32 QUIET = n
ã¢ããã¹ããªãŒã ãšã®éãã¯ãããããã§ããMLSãæå¹ã«ãªã£ãŠããŸãïŒã€ãŸããã¢ã»ã³ããªäžã«policy / mlsããã³config / appconfig-mlsããã®ãã¹ãŠã®ãã©ã¡ãŒã¿ãŒãå«ãŸããããšã«ãªããŸãïŒã debiançšã®ãã£ã¹ããªãã¥ãŒã·ã§ã³åºæã®ãã¯ããå«ãŸããŠããŸãããããã¯å®éã«ã¯å¿
èŠãããŸããã ããªã·ãŒã«åæ ãããŠããªãã¢ã¯ã»ã¹èš±å¯ãã«ãŒãã«ã§å®çŸ©ãããŠããå Žåãããªã·ãŒã¯èªã¿èŸŒãŸããŸãããçªç¶ã«ãŒãã«ãããæ°ãããªããŸããã ããŠãã¬ãã«ãšã«ããŽãªã®æ°ã倧å¹
ã«åæžããŸãã-4ã€ã®ã¬ãã«ã®ç§å¯ããããããããã«32ã®ã«ããŽãªããããŸãã ä»ã®ãšãããããã§ååã§ãã
ãšãã»ã³ã¹ãã¡ããŠãå®éšãšããŠãMONOLITHIC = yãèšå®ããèšå®ããã«ããªã·ãŒãã³ã³ãã€ã«ããŠã¿ãŠãã ãã-ããªã·ãŒãäœæããŸãã çµæã¯ãããªã·ãŒã®ããã¹ã衚çŸã§ããpolicy.confã§ãã ããã§ã¯ãåçŽãªåœ¢åŒã§ããã¯ãã®å±±å
šäœããm4ã芪åã«å±éããSELinuxã§èš±å¯ããããã¹ãŠã®ãã®ã«ã€ããŠèª¬æããŸãã èšãæããã°ïŒèŠåïŒæªãäŸãïŒïŒïŒsecadm_rãã»ãã¥ãªãã£è©è°äŒã®è²¬ä»»è
ã§ãããã¢ã¯ã»ã¹ã¬ãã«ãšèš±å®¹ç¯å²ãæ¿èªããŠããå ŽåãSELinuxã¯ãããã®ãªã¹ãããã§ãã¯ããéåžžã®ã»ãã¥ãªãã£æ
åœè
ã§ãããå®éã«ã¯policy.confã§æ¬¡ã®ãã£ãŒã«ããæã€ãªã¹ãã§ãïŒ
1. whoïŒscontextïŒ-whereïŒtcontextïŒ-whoïŒclassïŒ-whyïŒcallïŒïŒããã«ãMLSã®å ŽåïŒå
¥åŠã¬ãã«ã衚瀺ãããããããäœãå Žåã¯ãã«ãŒã«ãèŠãããšãããŸããã ïŒ
å¿
èŠãªèšå®ããã¹ãŠäœæããå¿
èŠã«å¿ããŠç·šéããŸãïŒ
make conf æåã«ãç»å Žãã
ããªã·ãŒ/modules.confãç·šéããŠä¿®æ£ããŸã-contribã°ã«ãŒãã®ã»ãšãã©ãã¹ãŠã®ã¢ãžã¥ãŒã«ãç¡å¹ã«ããŸããïŒmodulename = offïŒã ããã«ãããéãã¢ã»ã³ããªãããå°ãªãã¢ãžã¥ãŒã«ã ãã€ãã¹-ã³ã³ããã¹ãã®éå°è©äŸ¡ã®å¯èœæ§ã äŸã§èª¬æããŸãã
- ã³ã³ããã¹ã/ dev / xconsoleã¯ããã®ã³ã°ã«é¢é£ããŠããŸãããxserverã¢ãžã¥ãŒã«ã§å®çŸ©ãããŠããŸãã
- ç¡å¹ã«ãããšãã³ã³ããã¹ãã¯ãã£ã¬ã¯ããª/ dev /ããç¶æ¿ããå§ããŸããã
- ãããŠãé«ã確çã§ã/ dev / xconsoleã«æžã蟌ã¿ãããã¹ãŠã®ãã®ãRefPolicyã§èæ
®ãããããã«å£ããŸããã æ£è§£-éžæïŒxserââverã¢ãžã¥ãŒã«ãæå¹ã«ããããããŒã«ã«ã¢ãžã¥ãŒã«ã®ã³ã³ããã¹ããåå®çŸ©ããŸãã
contrib_off grep -A5 contrib policy/modules.conf | grep "= module$" | wc -l
modules.confã®ç·šéãéå§ãããšããã«ããªã¿ãŒã³ã®ãªããã€ã³ããééããŸããããã®åŸãäœãããŠããŠããªããªã®ãã
çè§£ããå¿
èŠããããŸãã ã³ã³ããã¹ãã®èª€è§£ã¯ãã·ã¹ãã ãã¢ã¯ã·ã§ã³ã«äžãã圱é¿ã®æåã®äŸã«ãããŸããã
ä»åŸããã°ããã
audit2allowãŠãŒãã£ãªãã£ã«ã€ããŠå°ã
ã話ãããŸã
ãaudit.logã䜿çšããããªããããããã圢åŒïŒç¹ã«-RevããŒã䜿çšïŒã§ããããã®ã¡ãã»ãŒãžããã°ã«è¡šç€ºãããªãããã«ããªã·ãŒã«è¿œå ããå¿
èŠããããã®ãæããŠãããŸããã€ã³ã¿ãŒãããäžã®ã©ãã«ããŠãïŒãããŠããã¯ã»ãšãã©ã©ãã«ã§ãïŒããå Žåã¯ãæšå¥šäºé
ãæºãããŸãã
grep something-something /var/log/audit/audit.log | audit2allow -M mymegamodule semodule -i mymegamodule
ãããŠãããªããä»äœãããŠããã®ããç¥ã£ãŠããå Žåã«ã®ã¿ããã«åŸã£ãŠãã ãã-ãã®äžé£ã®ã³ãã³ãã¯ãSELinuxãïŒæœåšçã«è²ªæ¬²ãªïŒäœããžã®ã¢ã¯ã»ã¹ãæ±ããŠãããã®
ãã¹ãŠãèš±å¯ãã
ããšãæå³ããŸãã ããã«ãMLSã®å Žåããã®ã¡ãœããã¯ãŸã£ããæ©èœããŸãããMLSã§ã¯èš±å¯ã«ãŒã«ãäœæããã ãã§ã¯äžååã§ãããããã¢ã¯ã»ã¹ã¯èš±å®¹å€ãšã«ããŽãªã«èª²ãããããã¹ãŠã®å¶éãæºãããªããã°ãªããŸããã ãã®ãããªè¡åã¯ããã¯ãã仿¥ã¯é ã§èããããããŸããããã¹ãŠã解決ããã®ã¯ç°¡åã§ãããšããèª å®ãªæ¿èªã«çžåœããŸãã ã·ã¹ãã ãã
åå Žãäœããªãã§ãã ããããŸãããã®æ¹æ³ã§SELinuxãæ§æããªãã§ãã ãããããã¯ããã¡ã€ã¢ãŠã©ãŒã«ã§ãã¹ãŠã®ãã±ããããã£ããããã¹ã¯ãªããã§èš±å®¹ã«ãŒã«ã«å€æãããããªãã®ã§ãã
ããã§
make installãå®è¡ããŸãããã¹ãŠãåé¡ãªããã°ãããã±ãŒãžãåéããŠãµãŒããŒã«é
眮ããŸãã
dpkg -i /tmp/selinux-policy-custom*deb sed -i 's/^SELINUX=.*$/SELINUX=enforcing/;s/^SELINUXTYPE=.*$/SELINUXTYPE=custom/' /etc/selinux/config selinux-activate
ã·ã¹ãã ã¯åèµ·åããã€ã³ã¹ããŒã«ãããããªã·ãŒïŒ
/ etc / selinux / custom / contexts / files / * ïŒã§å®çŸ©ãããŠããã³ã³ããã¹ããé©çšããå床åèµ·åããŠãã°ã€ã³ãæäŸããŸãã
æºããŠããã®ã¯ãæºããããã€æºããŠããã®ã
ã·ã§ããããã¯ãã¹ãŠãªããªã£ãŠããŸãã äœãåäœããŸããã ãã¹ãã«ãã£ãŠéããããæ¥ç¶-sshã«ã¢ã¯ã»ã¹ããããšããã§ããŸããã SELinuxãã芧ãã ããã Eli Billauerã«ãã£ãŠéåžžã«æ£ç¢ºã«å®åŒåãããããã«ïŒ
SELinuxãšã¯äœã§ããïŒ
ç°¡åã«èšããšãèš±å¯ãéç¥ãããã·ã³ã¯æåŠãããŸãã
ãã ãããã®ãã€ã³ãã«å°éããå Žåã¯è¯ãããšã§ãã ããã¯ãŸãã«ç§ãã¡ãå¿
èŠãšããæ¯ãèãã§ãããä»ã§ã¯
ãªããããç§ãã¡ãèš±ããªãã®
ããçè§£ãå§ããã§ãããã
æ°åã®ãã¥ãªã®æ¬è³ªãä»åºŠã¯æªã顿šãªãäºåã®ããã¥ã¡ã³ããæ³šææ·±ãèªãã å Žåãããããæææ±ºå®æé ãèŠããŠããã§ãããã
- æåã«DACã çŠæ¢ãããŠããå Žåã¯ãSELinuxã«ã¢ã¯ã»ã¹ããããšããã§ããŸãããèš±å¯ãæåŠãããã®ã¯æ®éã§ãUnixã§ãããæåã®* nixã·ã¹ãã ã«ç²Ÿéãããšãããç§ãã¡å
šå¡ã«éŠŽæã¿ããããŸãã
- ãã®åŸãMACã äžèŽããèš±å¯ãèŠã€ãããªãå ŽåãæåŠãããèš±å¯ã¯ãã§ã«SELinuxããã®ãã®ã§ãã äžéšã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ïŒRHïŒã§ã¯ãã SELinux is prevent ããå«ãè¡ããã°ã«è¡šç€ºãããŸãããäžéšã¯è¡šç€ºãããŸãããããã¹ãŠãaudit.logã«èšé²ãããŸãã
åèšãæãå¯èœæ§ãé«ãã®ã¯ãRefPolicyã«é
åžããªã·ãŒã«ãããã®ããªãããšã§ãã ãããèŠã€ããŠè¿œå ããŸãããã
ãããç§ã¯ãã®ç¬éããå§ããŠãsshã ãã§ãªããµãŒããŒã«ã¢ã¯ã»ã¹ããå¿
èŠããããšèšãã®ãå¿ããŠããŸããã 幞ããªããšã«ããã®å Žåã¯ä»®æ³ãµãŒããŒã§ãããåžžã«VNC /
SPICE /ãªã©ïŒFSKNã®ãªã³ã¯ã¹ãã·ã£ãªã¹ãïŒããããŸãã ç§ãã¡ã¯ããŒã«ã«ã«å
¥ãããšããŸã-ããã¯ãããèš±å¯ããŸããã ããããã©ã®ããã«ããã«èª¬æããã®ã«æé©ãªç¶æ³
åºããã- ãããã¯ã«ãªããªãã§ãã ããã
- åèµ·åããŸã-ããšãã°ãCtrl + Alt + Delãéä¿¡ãããšãacpidããã¹ãŠãè¡ããŸãã
- ããŒã段éã§grubããã£ããããselinux = 1ãselinux = 0ã«å€æŽããŸã
- ããŒãããrootã«ãªããŸãã
ãã®æ®µéã§ãaudit.logã«ã¯
倱æã®ãã¹ãŠã®çç±ãã€ãŸãå
¥åã§ããªãã£ãçç±ãå«ãŸããŠããŸãã ãªããªã SELinuxãç¡å¹ã«ããç¶æ
ã§èµ·åããŸããæåã®æå³ã¯ãåæã®ããã«ååã®èµ·åããaudit.logãã³ããŒããããšã§ããSELinuxãæå¹ã«ãªã£ãŠãããšããããã§ããªãããã§ãã
cp /var/log/audit/audit.log /root wc -l /root/audit.log 195
çœå®³ã®èŠæš¡ã¯å°ããã200è¡ã§ãã ãã£ãããšå±±ãäžãæã§ãã
ãã°ã®èªã¿æ¹ type=DAEMON_START msg=audit(1383338997.597:1957): auditd start, ver=2.3.2 format=raw kernel=3.10.17-vm-slnx auid=4294967295 pid =1319 subj=system_u:system_r:auditd_t:s3:c0.c31 res=success
æåã®è¡ã¯ãauditdãæ£åžžã«ïŒresïŒéå§ãããã¡ã€ã³auditd_tã®system_rã®åœ¹å²ã§ããsystem_uã«ä»£ãã£ãŠãæå€§ã¬ãã«ïŒs3ïŒã®ãã¹ãŠã®ã«ããŽãªïŒc0.c31ïŒã«å±ããŠããããšã瀺ããŠããŸãã
BLPã«ãããšãããã¯ãã©ã®ã¬ãã«ããã®æ
å ±ãauditdã®æã«æž¡ãããšãã§ãïŒæžã蟌ã¿ïŒãä»»æã®ã¬ãã«ããèªã¿åãããšãã§ããããšãæå³ããŸãïŒèªã¿åãïŒã å®å
šã«æç¢ºã§ãªãå Žåã¯ããã®ã¢ãŒããã¯ãã£ã®éçºè
ãšãæ
å ±ãèšé²ããããšã®æå³ãæãåºã
ãŠãã ããããœãŒã¹ïŒæžã蟌ã¿ïŒããåä¿¡è
ïŒæžã蟌ã¿å
/æžã蟌ã¿å
ïŒã«æ
å ±ã転éããŸãã ãããŠããã¹ãŠãæå®ã®äœçœ®ã«èœã¡ãŸã-ãããã·ãŒã¯ã¬ããã¬ãã«ã¯å®éã«ãã®ããŒã¿ãã·ãŒã¯ã¬ããã¬ãã«ã«æžã蟌ããŸããïŒã€ãŸããããŠã³ãããŠã³ïŒ-ãããã¯å±éºã«ããããããããã
ããŒã©ã€ãããŠã³ ãã«ãªããŸãã ã
èªã¿äžã ãã«ã€ããŠãã§ããã°ãã£ãšæçœã«ã ãŸããMLSã«ã¯è¿œå ã®å¶éããããŸããã
圌ãã¯ããã«ã€ããŠããã«
æ²é»ããããã«é Œã¿ãŸãã ã
type=SYSCALL msg=audit(1383338997.620:219): arch=40000003 syscall=102 success=no exit=-13 a0=3 a1=afbe1c10 a2=a779b000 a3=ffffffc8 items=0 ppid=1338 pid=1346 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 ses=4294967295 tty=(none) comm="acpid" exe="/usr/sbin/acpid" subj=system_u:system_r:initrc_t:s0-s3:c0.c31 key=(null)
2è¡ç®ã¯ãacpidããŒã¢ã³ãå¯èœãªæå€§ã®ãã¹ãŠã®ã¬ã¬ãªã¢ïŒuid = 0 gid = 0 euid = 0 suid = 0 egid = 0 egid = 0 sgid = 0 fsgid = 0ïŒã䜿çšããŠãrootããã³bofh sysopã䜿çšããŠã initrc_tã³ã³ããã¹ãïŒéå§ïŒããœã±ããã«ã¢ã¯ã»ã¹ïŒã¿ã€ã= SYSCALLïŒãïŒsyscall = 102ïŒãïŒ
çªç¶ ïŒèªèããããåŒã³åºããããçµæãšããŠéä¿¡ãããïŒæå=çµäºãªã= -13ïŒ LinuxãæãéèŠãªã«ãŒãã§ã¯ãªãããšã¯èª°ããç¥ã£ãŠãããããããã¯é©ãã¹ãããšã§ã¯ãããŸãããããã£ãšéèŠãªã«ãŒãããããŸã:-)
å¿ãåãããã®ãªããªã-圌ã¯ã©ã®ãœã±ããã«åããã®ãïŒ*
type=AVC msg=audit(1383338997.810:233): avc: denied { search } for pid=1470 comm="restorecond" name="/" dev="tmpfs" ino=376 scontext=system_u:system_r:restorecond_t:s0-s3:c0.c31 tcontext=system_u:object_r:var_run_t:s3:c0.c31 tclass=dir
ããŠãäžå€®ãã3è¡ç®ãåããŸãã Logs AVCïŒAccess Vector CacheïŒã¯ãç§ãã¡ã«ãšã£ãŠæãè峿·±ããã®ã§ãã ããšãã°ãäžèšã¯ã確ç«ãããããªã·ãŒã«èš±å¯ã«ãŒã«ããªããããrestorecond_tãã¡ã€ã³ã§åäœããäžèšã®èš±å®¹ç¯å²ãæã€ãœãŒã¹ïŒscontextïŒã¯ãçªå·inode = 376ã®ãã£ã¬ã¯ããªã§æ€çŽ¢ïŒ{search}ããã³tclass = dirïŒãå®è¡ããŸãã³ã³ããã¹ãvar_run_tã䜿çšã äœã®ã€ã©ã¹ãïŒ å³ãèªãŸãªãã äœãæ¢ããŠããŸãããïŒ
Find / var / run -inum 376ããã®è³ªåã«çããŸãã åæ§ã®è¡ããaudit2allowãèš±å¯ã«ãŒã«ãäœæããŸãã
ãªã©ãªã©ã ã芧ã®ãšããããããã®ãã°ã«ã¯è€éãªãã®ã¯ãããŸããã SELinuxã¯
宿§çã«é£ãããªãã
å®éåããããšãé£ãããæåã¯ç°åžžã§ããããã以äžã®ããšã¯ãããŸããã ç¹°ãè¿ããŸãããäœãæç¢ºã§ãªãå Žåã¯ããã€ã§ãéäººæ ŒçãªæååãGoogleã«å
¥åãããã
ããã§æ€çŽ¢ã§ã
ãŸã ããã®ããããã°ãèªã¿åã£ãŠçè§£ã§ããããã«ãªããŸããã
*æšæž¬ããã€ããã¯ãããŸãããã³ã¡ã³ããæžããŠãã ããã
ä¿®æ£æ¹æ³æ¬¡ã®2ã€ã®äž»ãªãªãã·ã§ã³ããããŸãã
- ç¡å¹ãªã³ã³ããã¹ã
- èš±å¯ã«ãŒã«ã®æ¬ åŠ
ãããã¯ããã¹ãŠã®èš±å¯ãæåŠãããã±ãŒã¹ã®90ïŒ
ãã«ããŒããaudit2allowã¯ãããã®ã±ãŒã¹ã§éåžžã«å¹æçã§ãã å€ãã®å Žåããã
ãä¿®æ£ãã
æ¹æ³ã®éžæãæåã®ãªãã·ã§ã³ãŸãã¯2çªç®ã¯ãããªã次第ã§ãã
3çªç®ã®ãªãã·ã§ã³ã¯ãã£ãã«èŠãããŸããããæãæçœã§ã¯ãããŸããããMLSå¶éã®éåïŒããªã·ãŒå¶çŽéåïŒã§ãããã®å Žåã«èš±å¯ã«ãŒã«ã远å ããŠã广ã¯ãããŸãããMLSã®äžå¿ã«ç§»åããŠå¶éãç·šéããå¿
èŠããããŸãã ããã§ã¯ã
ãªããã¹ãŠã®å€æŽãè¡ãããŠããã®
ã ã
ãªãè¡ãããŠ
ããã®ã ã
äœãæ£ç¢ºã«æ±ºå®ãã¹ããªã®
ããå®å
šã«çè§£ããŠããè¡ãå¿
èŠããããŸãã 軜çãªå€æŽã«ãããã»ãã¥ãªãã£ã¬ãã«ãäœäžããããšãä¿èšŒãããŠããŸãã ããªãã¯ïŒåã³ïŒèŠåãåããŸããã
ãã£ã³ãã¹ã¯ããã®è§£æ±ºæ¹æ³ã«ã€ããŠã®ãã®ã§ããããµã€ãºã®ããã«åãçµã¿ãŸãïŒ
ééã£ãã³ã³ããã¹ããœãªã¥ãŒã·ã§ã³ç¡å¹ãªã³ã³ããã¹ãã®äŸïŒ
root@sandbox:~
debian / libãRefPolicy / usr / libã ç·šéïŒ
root@sandbox:~
semanageã¯1ã€ã®æ¹æ³ã§ãã ãã®ãããªå€æŽã¯æšå¥šãããŸããããã®å Žåãããªã·ãŒã®æŽæ°ã«èããããªãå ŽåããããŸãïŒ
/etc/selinux/custom/contexts/files/file_contexts.localã®æäŸãéå§ããå ŽåïŒã å¥ã®ãªãã·ã§ã³ã¯ãããŒã«ã«ã§åå®çŸ©ããããªã·ãŒãåæ§ç¯ããããŒã«ããŸãïŒåæã«ããªã·ãŒãèšå®ããŸãïŒã
èš±å¯ã«ãŒã«ã®æ¬ åŠã®è§£æ±ºçããšãã°ã次ã®è¡ãã芧ãã ããã
type=AVC msg=audit(1383338997.860:251): avc: denied { module_request } for pid=1524 comm="sshd" kmod="net-pf-10" scontext=system_u:system_r:sshd_t:s0-s3:c0.c31 tcontext=system_u:system_r:kernel_t:s3:c0.c31 tclass=system
ãã°ã®åŸ©å·åã¯ç°¡åã§ããããããç¶ç¶çã«è¿œæ±ããããšã¯ç²ããŸãã ãã°ã«ããããããŠããã·ã³ãåäœããããã«ããŸãã
root@sandbox:~
ãããŠããã§ãç§ãã¡ã¯èãå§ããŸãã-ç§ãã¡ã¯èªåèªèº«ã«ç°¡åãªè³ªåãããŸã
- äœãèµ·ãã£ãŠããã®ïŒ sshdã¯ãã¢ãžã¥ãŒã«ãã«ãŒãã«ã«ããŒãããããèŠæ±ããŸããã ããããŸãããnet-pf-10ã¯ããŸãå¿
èŠãããŸããã ipv6ã¯ãããŸããã
- ç§ãã¡ã«äœãæäŸãããŸãããïŒ sshd_tãã¡ã€ã³ãã¢ãžã¥ãŒã«ãã«ãŒãã«ã«ããŒãã§ããããã«ããŸãã ãã¡ãããèš±å¯ããã°ããã®ãããªééãã¯ãããŸããã ãããŠãããåœŒãæµã®ã¢ãžã¥ãŒã«ãèŠæ±ãããïŒ
- 圌ãã¯ã€ã³ã¿ãŒãããäžã§äœãæžããŠããŸããïŒ ãžãž ã ãããããããšã«ããã®æ©èœã解決ããããã«ããŒã«å€æ°ã¯å¿
èŠãããŸããã
- äœããŠãã®ïŒ ã¯ããsshdããã®æ¹åã«ç©gãããããšãçŠæ¢ãã圌ããäžãããã®ã«äœçšãããŸãã ipv6ãå¿
èŠãªå Žåã¯ãsshãéå§ããåã§ãã£ãŠãããããèªåã§ããŠã³ããŒãããŸãã
ç¬èªã®ããã¢ãžã¥ãŒã«ãèšè¿°ããããšã§æ±ºå®ããŸããããã¯ç°¡åã§ãã æ§é ã®
説æãèªã¿ãŸãã åæã«ããã¹ãŠã®ã¢ãžã¥ãŒã«ã®ãã¬ãŒã ã¯ãŒã¯ãïŒããŒã«ã«ã«ïŒäœæããŸãã
mkdir policy/modules/local && cd policy/modules/local echo '<summary>Local layer -- differences from reference policy.</summary>' > metadata.xml echo '## <summary>sshd local policy</summary>' > sshd_local.if echo '## no file contexts redefined here' > sshd_local.fc cat > sshd_local.te <<EOF > policy_module(sshd_local, 0.0.1) >
ã芧ã®ãšãããã«ãŒã«ã
dontaudit sshd_t kernel_tã«å€æŽã
ãŸãããsystem module_request; -ããã¯ãçŠæ¢ããããšãæå³ãããã°ã«æžã蟌ã¿ãŸããã ãšããã§ãäžéšã®æ©èœãåäœããããã°ã空ã§ãããšããäºå®ã«çŽé¢ããŠããå Žåãã»ãšãã©ã®å Žåãããã¯åãªãdontauditã«ãŒã«ã§ãã ãããã䜿çšããã«ããªã·ãŒãåæ§ç¯ããã ãã§ãïŒ
semodule -DB ããã°ãžã®ã¡ãã»ãŒãžãããŒã®æºåãããŸãã
modules.confã§ã¢ãžã¥ãŒã«ãæå®ããããªã·ãŒãåéããŠãµãŒããŒã«ã¢ããããŒãããŸãã
root@sandbox:/tmp
ã«ãŒã«ã衚瀺ãããã¢ãžã¥ãŒã«ãããŒããããŸãã é£ããã§ããïŒ ãŸãã é·ããŠéå±ïŒ ããããã
MLSå¶éã®ãœãªã¥ãŒã·ã§ã³ããã«åé¡ããããŸãïŒãã¿ãã¬ã®ã¬ãã«ã¯9000以äž!! 1ã€ïŒïŒ
åé¡ type=AVC msg=audit(1383338997.630:221): avc: denied { sendto } for pid=1351 comm="acpid" path="/dev/log" scontext=system_u:system_r:initrc_t:s0-s3:c0.c31 tcontext=system_u:system_r:syslogd_t:s3:c0.c31 tclass=unix_dgram_socket type=SYSCALL msg=audit(1383338997.630:221): arch=40000003 syscall=102 success=no exit=-13 a0=3 a1=afbe15d0 a2=a779b000 a3=ffffffc8 items=0 ppid=1 pid=1351 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 ses=4294967295 tty=(none) comm="acpid" exe="/usr/sbin/acpid" subj=system_u:system_r:initrc_t:s0-s3:c0.c31 key=(null)
説æã¯æ¬¡ã®ãšããã§ãã
æ¢åã®ã«ãŒã«ã¯æ¬¡ã®ãšããã§ãã
ã芧ã®ãšããã解決èŠåã¯ãã§ã«ååšããŠããŸãã ããã«ãMLSããŒãžã§ã³ã§ã¯ãªãããã®ã¢ã¯ã»ã¹ã¯èš±å¯ãããŸãã
ãªããããã¯åæã«ãå¶éã®ãªããã¡ã€ã³ã®çŸãããçè§£ã§ããŸãã 圌ã¯ãç¡å¶éãã§ããããããã¹ãŠãå¯èœã§ãã ãã®ãããstrict以å€ã§SELinuxããã¹ãããããšã¯ããŸãæå³ããããŸããã ãããŠãããšãå³å¯ã§ã¯ããããã¹ãæžã¿ã®ãªããžã§ã¯ããããå Žåã§ããäžè¬çã«ãSELinuxã®å¿
èŠæ§ãšä¿¡é Œæ§ã«ã€ããŠçµè«ãåºãã®ã¯ææå°æ©ã§ãã
解決çã ç®çã®å¶éãèŠã€ãããŸããïŒ
mlsconstrain unix_dgram_socket sendto (( l1 eq l2 ) or (( t1 == mlsnetwriteranged ) and ( l1 dom l2 ) and ( l1 domby h2 )) or (( t1 == mlsnetwritetoclr ) and ( h1 dom l2 ) and ( l1 domby l2 )) or ( t1 == mlsnetwrite ) or ( t2 == mlstrustedobject ));
åèšããœã±ãããžã®sendtoïŒt1ããt2ãžã®æžã蟌ã¿ïŒã¯æ¬¡ã®å Žåã«èš±å¯ãããŸãã
- äœãã¢ã¯ã»ã¹ã¬ãã«t1ãt2ã®ã¢ã¯ã»ã¹ã¬ãã«ãšçããïŒs0ïŒ= s3ïŒããŸãã¯
- t1 mlsnetwriteranged (, seinfo -amlsnetwriteranged -x ), ,
- t1 mlsnetwritetoclr (, ),
- t1 mlsnetwrite (, setrans_t),
- t2 mlstrustedobject (, syslogd_t , devlog_t)
, . , audit2allow , . /dev/log:
root@sandbox:~
«WTF?!» â . tcontext~syslogd_t, devlog_t? ps:
root@sandbox:~
: rsyslog, syslogd_t,
, , /dev/log;
/dev/log devlog_t . , sendto , , .
SELinux, Stephen Smalley.
, .
syslogd_t mlstrustedobject, /proc/`pidof rsyslog`/ mlstrustedobject. , , Fedora . , â
, , , , . , :
$ grep '' syslogd_local.* syslogd_local.fc:
. modules.conf .
ä¿®æ£ãããã®, . , permissive (/etc/selinux/config), , audit.log c , , newrole, ssh. enforcing, . auditd ssh:
root@sandbox:~
, , , , , , , -, . .
ãããã£ãŠããã¹ãŠã®ã»ããã¢ãããå®äºããã·ã¹ãã ã¯åŒ·å¶ã¢ãŒãã§èµ·åããŸãããã®æç¹ã§ãååãšããŠãæ³šææ·±ãèªè
ã¯ãã§ã«ã¢ãžã¥ãŒã«åã®åºç¯ãªç¥èãæã¡ãæ¿æ²»ã®æ§é ã«å ªèœã§ãããm4æ§æãå¿ããæããŠããŸãïŒãŸãã¯çã«å«ãã§ã¯ãããŸããïŒã ãææžã«ããŸãèšèŒãããŠããªãããããå°ãé åãæ·±ãæãäžãããšãã§ããMls
, , , , (c
(PDF)
(PDF), ),
, .
MLSæ¢åã®SELinuxå¶éã«ãåçŽïŒã¬ãã«ïŒãšæ°Žå¹³ïŒã«ããŽãªïŒã®2ã€ã®ã¬ãã«ã®å¶åŸ¡ã远å ããŸãã1ã€ç®ã¯ã蚱容å€ãã«éããã蚱容å€ãé«ãã»ã©éšäžãžã®ã¢ã¯ã»ã¹ãæå³ããŸãïŒããããã·ãŒã¯ã¬ãããã¯ãã·ãŒã¯ã¬ããããšããŒã¯ãããããã¥ã¡ã³ããèªã¿åãããšãã§ããŸãïŒã2ã€ç®ã¯åãã¬ãã«ã®ç°ãªãã«ããŽãªã§ããæ®ããèªãèš±å¯ãæå³ãããã®ã§ã¯ãããŸããããããã®äž¡æ¹ã®ã¬ãã«ã®å¶åŸ¡ã¯ãSELinuxãåäœããä»»æã®ãªããžã§ã¯ãã«å²ãåœãŠãããšãã§ãããããããã«ãããæ
å ±ãšãã®ãããŒã®åé¡ã«é¢ããã»ãšãã©ãã¹ãŠã®èŠä»¶ãå®è£
ã§ããŸãã- éå±€ã¢ã¯ã»ã¹ãTopSecret-> Secret-> Unclassifiedããã¹ãŠã®ãªããžã§ã¯ããå®å
šãªãªã¹ãã¯ãflaskãã£ã¬ã¯ããªã«ãããŸãã
- ããŒã¿ããŒã¹å
ã®ãã¡ã€ã«ãšãããã¯ãŒã¯æ¥ç¶ãŸãã¯ããŒãã«ã®äž¡æ¹ã«ããŒã¯ãä»ããŸãã
- ã·ã¹ãã ã®ãŠãŒã¶ãŒæš©éã«é¢ä¿ãªããããäœãã¬ãã«ãžã®æ
å ±æŒããã®é²æ¢ã
- ãã¹ãŠã®ãŠãŒã¶ãŒïŒã«ãŒããå«ãïŒã«å¯Ÿããããã©ã«ãã®ã¢ã¯ã»ã¹å¶éãèªèšŒã«å¿ããŠããŒã«ãããã«åºå¥ãããŸãã
- ãŸããã·ã¹ãã ã®99ïŒ
ã®ãã®ä»ã®éå°ã
ãã¡ãããããã«ã¯ãŸãã·ã¹ãã ã®ã¢ãŒããã¯ãã£ãæ
éã«æ€èšããå¿
èŠããããŸãããããªããã°ãå¥çŽç€Ÿå¡ã«instagramã«çœ²åããããã·ãŒã¯ã¬ããããå«ãããã¥ã¡ã³ããã¬ã€ã¢ãŠããããŸãã root@sandbox:~
次ã«ãå
éšã¢ã¯ã»ã¹å°çšã«WebãµãŒããŒãæ§æããŸããå³å¯ã«s1ïŒæ©å¯ïŒã¬ãã«ã§æ©èœããŸããããã¯ãã¢ã³ã¹ãã¬ãŒã·ã§ã³ã«ã¯å¿
èŠãããŸããããäžè¬çãªéçºã«ã¯åœ¹ç«ã¡ãŸãããã¡ãããIPSecãšãã±ããã©ãã«ãèšå®ããŸãããããããªããšã誰ããããèŠãããšãã§ããŸãããããŒã«ã«ã³ã³ããã¹ãã«å¶éããŸãããã¹ããã·ã³ã§ã¯sshã®ã¿ãæ§æãããŠãããããRefPolicyã«èšèŒãããŠããªããµãŒããŒãéžæããŸããããnginxnginx, , MCS ( s0). NIH . , ,
dpkg -L lsof , :
/usr/sbin/nginx -- gen_context(system_u:object_r:nginx_exec_t,s1:c0.c2) /etc/init.d/nginx gen_context(system_u:object_r:nginx_initrc_exec_t,s1:c0.c2) /etc/nginx(/.*)? gen_context(system_u:object_r:nginx_etc_t,s1:c0.c2) /var/log/nginx(/.*)? gen_context(system_u:object_r:nginx_var_log_t,s1:c0.c2) /var/run/nginx(/.*)? gen_context(system_u:object_r:nginx_var_run_t,s1:c0.c2) /var/www(/.*)? gen_context(system_u:object_r:nginx_var_www_t,s1:c0.c2) /var/lib/nginx(/.*)? gen_context(system_u:object_r:nginx_var_lib_t,s1:c0.c3)
, , (, , ..), . s1 (Confidential), . , . , , (
newrole -r secadm_r ), premissive (
setenforce 0 ), (
restorecon -RFvv / ), nginx sysadm_r (
run_init /etc/init.d/nginx start ). audit.log , . modname.if, , , «» :
template(`web_server_template',` type $1_t, web_server; allow blah blah; # so we can call web_server_template(nginxN) in modname.te ')
modname.if , «» . . , , :
root@sandbox:~
corecommands.if, . â , MLS, , nginx .
, , (grep nginx /var/log/audit/audit.log | grep 'sysctl'), , , sysctl:
socket:
ãªã©ãªã©ã audit2allow, MLS. require , , , . , -
policy_module(nginx_local, 0.0.1)
, .
次ã®ãããªãŠãŒã¶ãŒãšããŒã«ãååŸããŸãã root/sysadm_r@sandbox:~
åèšïŒ- äž¡æ¹ã®ãŠãŒã¶ãŒã¯ãæäœã¬ãã«ä»¥äžã®ãã£ã¬ã¯ããªã«ããŒã¿ãæžã蟌ãããšã¯ã§ããŸããã
- äž¡æ¹ã®ãŠãŒã¶ãŒã¯ã蚱容ã¬ãã«ãè¶
ãããªããžã§ã¯ãããèªã¿åãããšã¯ã§ããŸããã
- äž¡æ¹ã®ãŠãŒã¶ãŒã¯ã«ããŽãªã«ãã£ãŠå¶éãããŠããŸããä»ã®ãã¡ã€ã³ãèªã¿åãããã®ã¢ã¯ã»ã¹èš±å¯ã«ãŒã«ã远å ãããšãã«ããŽãªc0ã®ãã¡ã€ã«ã®ã¿ãèªã¿åãããšãã§ããŸãã
- root , ;
- - SELinux ID, alice, ( DAC ) ;
- , , core â s0, â s1.
Funky time
ããŠãæåŸã«ãã¹ã©ã€ãããããŸããæ¬æ Œçãªãã¢ã³ã¹ãã¬ãŒã·ã§ã³ã®ããã«ãç§ã¯ãã®èšäºã®ããã«ãNSAã®é£ã«å°ããªVPSKã賌å
¥ãããã®äžã§è¡ã£ããã¹ãŠããã°ããå®äºããŸããããã®ã·ã¹ãã ã§çŽæ¥ãSELinuxãäœã§ãããã確èªããã«ãŒãã®äžã«ç§»åããŠrm -rf / *ãæåã«å
¥åããããããçš®é¡ã®ã¹ã¯ãªãã/ã¹ããªããããã³ã«ãŒãããããå®è¡ããŸãããããããã®é
åçãªããšãè¡ãåã«ãä»®å®ãšå¶éã®äž¡æ¹ã®èгç¹ãããããäžåºŠèª¿ã¹ãŠã¿ãŸãããããã®ãã¬ãŒãã³ã°ã³ãŒã¹ã®äžç°ãšããŠã次ã®ããšãè¡ããŸãã
- 誰ã§ããµãŒããŒãžã®ã«ãŒãã¢ã¯ã»ã¹æš©ãååŸãããšèããŠããŸãã
- 圌ã¯sshçµç±ã§ãã°ã€ã³ãã察話åã·ã§ã«ãå®è¡ã§ãããšèããŠããŸãã
- Russell Cokerããã¬ã€ãã·ã³ã§è¡ã£ãããã«ãã«ãŒãã¯user_uã§ã€ã³ã¹ã¿ã³ã¹åãããªããšèããŠããŸãããã¡ããããã®ä»®å®ã¯æ¬çªç°å¢ã§ã¯æšå¥šãããŸããïŒãã¡ããã以åã®ãã¹ãŠã®äŸãšåæ§ã«:-)
- ã«ãŒãã«ãã«ã¹ã¿ãã€ãºããªãã£ããšæããŸãïŒgrsecã¯ãããŸãããèšäºãšãã¹ãã«ãããå«ããªãããšã«ããŸããïŒ
- ãã¡ã€ã¢ãŠã©ãŒã«ã¯ã»ãšãã©ãªããšèããŠããŸãã
ISã«ã»ãã¥ãªãã£ç¶æ
ã衚ãçšèªãããããã®èª¬æã«ãæŒãåºããããšãããŒã«ããããšããèšèãããå Žåããããããã§ããå®å
šãªåŠ¥åãšã¯å¥ã«SELinuxã®ã¿ã§ãã劥åã¯é¿ããããŸãããããã®æéã¯éåžžã«è峿·±ããã®ã§ããããããSELinuxãæå³ããŠããªããã®ããããŸããã€ãŸãïŒ
- SELinux . :(){ :|:& };: . fork bombs, - â ; , , â â , .
- SELinux . . , SELinux iptables â , . , SELinux, :-)
- ãµãŒããŒãæå°æ§æã§æ€èšããŸããã³ã³ãã€ã©/ãããã¬ãŒã¯ãªããéåžžã¯prodã§ã¯çºçããŸãããMLS Play Machineã®ãã«ããŒãžã§ã³ã¯ãVPSã§ã¯ãªããããå¶åŸ¡ãããã€ã³ãã©ã¹ãã©ã¯ãã£ã«å±éãããšãã«åŸæ¥ãªãªãŒã¹ãããŸããããããscpããããŸã-äœãé¢çœããã®ãã³ããŒã§ããŸãã
- ãããŠãã¯ããSELinuxãéçºããçµç¹ã®æé«ã®äŒçµ±ã§ã¯ãã³ã³ãœãŒã«ã®èšé²ããµãŒããŒã§åæã«ãã¹ããããŠããŸã:-)ãããŠãããªãã¯NSAãã¢ãªãŸããArea51ãè¿ãã«ãããããã«ã«ãŒãã¢ã¯ã»ã¹ãããããšãçè§£ããŠããŸããæ¥ã«è»ãç§ã®CPUã«æŒã蟌ãŸããŸããã¬ã³ãŒããåé€ããŸã-ããªããçŽ æŽããã仲éã§ãããã³ã¡ã³ããæžããŠãã ããã
- 0day-ããªãã®è£éã§ãããããããã¢ããããå Žåãç§ã¯ç¢ºãã«ãäžèŸã«ãªããŸãããšã¯ãããç§ã¯èª°ã«èšã£ãŠããã®ã:-)
ãã¡ã€ã³ãèµ·åããŸããã§ãããããã¯ãç©å
·ããŒãžã§ã³0.0.2çšã§ããããŒãžã§ã³0.0.1ãã£ã¡: http://162.213.198.69
ãããŠãã¯ããå¥ã®ãªã¯ãšã¹ãã¯æ¯ãèã£ãŠãã ããããã¹ãŠã®ã«ãŒãããã»ã¹ã匷å¶çµäºããŠä»ã®ããã»ã¹ã劚害ããå¿
èŠã¯ãããŸãã;ãŠãŒã¶ãŒã¯ãŸã£ãã1人ã§ããæ³šé
*ãã£ã ãã³ãã³ãåå®by