Root nínú tẹ́mínà, tí a kọ̀ lábẹ́ SELinux: kí ni ó fà á tí hook fi kùnà
Hook tí ó ń ṣiṣẹ́ dáadáa ní ọwọ́ ni a lè kọ̀ sínú iṣẹ́ náà. Fi àgbègbè ìlànà náà, àmì fáìlì náà àti ìyọ̀ǹda tí a kọ̀ wé kí o tó ṣàtúnṣe.
O ń ṣiṣẹ́ script up gẹ́gẹ́ bí root, ó parí, àti pé script kan náà yóò kùnà nígbà tí iṣẹ́ náà bá pè é. Kò sí ohun tí ó yí padà nínú àwọn ìyọ̀ǹda fáìlì, nítorí náà ìgbésẹ̀ tó ń bọ̀ ni láti tú wọ́n sílẹ̀ lẹ́ẹ̀kan sí i, èyí tí kò tún ohunkóhun ṣe. Ní orí ẹ̀rọ SELinux, ohun tí ó ń pinnu ní ọ̀pọ̀ ìgbà kì í ṣe ẹni tí ìlànà náà jẹ́, bí kò ṣe àgbègbè tí ó ń ṣiṣẹ́, àti pé root nínú àgbègbè tí a dín kù ṣì wà ní dídín kù.
Ìtọ́nà kan náà, àgbègbè ààbò méjì tí ó yàtọ̀
Fífi irú rọ̀ ń ṣe àyẹ̀wò àgbègbè orísun, àmì àfojúsùn àti iṣẹ́ tí a béèrè papọ̀. Ìpàdé tẹ́mínà rẹ ń ṣiṣẹ́ ní àgbègbè tí kò ní ààlà tàbí ti ìṣàkóso, daemon sì ń ṣiṣẹ́ ní àgbègbè tí a yàn fún ẹ̀ka rẹ̀. Nítorí náà àwọn ìtọ́nà tí ó jọra ń fúnni ní àwọn ìpinnu tí ó yàtọ̀, àti pé ìyàtọ̀ náà jẹ́ àìmọ̀ọ́mọ̀ kì í ṣe àṣìṣe nínú ìlànà.
Ìdí ni pé fífi àwọn ìgbà méjì náà wé ara wọn wúlò nígbà tí o bá fi àwọn ipò wọn wé ara wọn. Ṣiṣẹ́ ìtọ́nà kan náà láti shell àti láti hook; ẹ̀dá shell fi hàn pé binary wà àti pé àwọn àríyànjiyàn tọ́, ṣùgbọ́n kò fi ohunkóhun hàn nípa bóyá iṣẹ́ náà ní ìyọ̀ǹda láti ṣiṣẹ́ rẹ̀. Ṣiṣẹ́ rẹ̀ ní ọ̀nà méjèèjì kí o sì fi àwọn àgbègbè wé, kì í ṣe àwọn kóòdù ìjáde nìkan. Ìfiwéra yẹn ni ó ń yí ẹ̀sùn ìyọ̀ǹda tí kò ṣe kedere padà di ìbéèrè pàtó nípa àgbègbè kan àti àmì kan.
Ìrísí ìbílẹ̀ ti àbùkù yìí ni olùrànlọ́wọ́ tí ó ń pe irinṣẹ́ ìta. Hook fúnrarẹ̀ lè jẹ́ ìyọ̀ǹda, nígbà tí irinṣẹ́ tí ó ń pè ní àmì tí àgbègbè iṣẹ́ kò lè ṣiṣẹ́, tàbí ó ń kọ sínú àpò tí àmì rẹ̀ kọ̀.
Ka àkọsílẹ̀ AVC lẹ́gbẹ̀ẹ́ àṣìṣe hook
Ìkọ̀ AVC ń dárúkọ àwọn pápá tí ó pinnu ọ̀ràn náà: ipò orísun ìlànà náà, ipò àfojúsùn ohun náà, kíláàsì ohun náà àti ìyọ̀ǹda pàtó tí a kọ̀. Ka gbogbo mẹ́rin kí o tó dá ìmọ̀ràn, nítorí ìkọ̀ lórí ṣíṣe àti ìkọ̀ lórí kíkọ ní àwọn àtúnṣe tí ó yàtọ̀ pátápátá.
ausearch -m AVC,USER_AVC -ts recent
ls -Z /usr/local/sbin/vpn-up.sh
ps -eZ | grep openvpn
Ipò orísun gbọ́dọ̀ bá àgbègbè tí iṣẹ́ náà ń ṣiṣẹ́ gbáà mu, ipò àfojúsùn sì gbọ́dọ̀ bá àmì fáìlì tàbí àpò tí iṣẹ́ náà fọwọ́ kàn mu. Bí ọ̀kan nínú wọn kò bá bá àṣìṣe tí o ń lé mu, ìṣẹ̀lẹ̀ mìíràn ni o ń kà.
Kọ ẹ̀dá ìlànà náà àti ọ̀nà gbàngàn fáìlì tí a lè ṣiṣẹ́ lẹ́gbẹ̀ẹ́ àkọsílẹ̀ náà. Orúkọ àgbègbè tí ó farahàn nínú ìlànà ìpín kan jẹ́ ẹ̀rí nípa ìfiṣeẹ́rọ yẹn, kì í ṣe ìdánilójú pé ìkọ́ mìíràn yóò mú àwọn òfin kan náà wá. Ipò yẹn ni ó ń jẹ́ kí ẹlòmíràn lè tún àwọn àbájáde rẹ ṣe ní orí ẹ̀rọ rẹ̀. Láìsí rẹ̀, àkọsílẹ̀ náà di ìtàn èènìyàn dípò ẹ̀rí.
Àmì, ìṣètò tàbí ìlànà: àtúnṣe mẹ́ta
Àtúnṣe àkọ́kọ́ ni àmì tí kò bá ibi tí a fi fáìlì náà sínú mu. Script tí a fi cp dà sí ipò rẹ̀ tàbí tí a fi olùṣàtúnṣe kọ lè ní àmì àìdáhùn tí àgbègbè iṣẹ́ kò lè lò, àti pé mímú ipò tí a retí padà ń tún èyí ṣe láìfọwọ́ kàn ìlànà.
Èkejì ni ìṣètò. Ìpín lè pèsè ọ̀nà tí a ṣe àtìlẹ́yìn fún láti ṣiṣẹ́ iṣẹ́ náà, àpò tí a kọ sílẹ̀ fún olùrànlọ́wọ́, tàbí àpò ìlànà tí a ṣe àtúnṣe tí ó ti gbà á láyè. Yíyí ìṣètò rẹ padà sí èyí tí a ṣe àtìlẹ́yìn fún jẹ́ kí ó dínwọ́n ju kíkọ ìlànà lọ, ó sì ń faradà àwọn àtúnṣe.
Ẹ̀kẹta ni òfin tí ó ṣe àìsí gan-an, ó sì yẹ kí ó jẹ́ ọ̀nà ìkẹyìn. Ṣẹ̀dá olùdíje pẹ̀lú àwọn irinṣẹ́ àyẹ̀wò, ka ohun tí ó ń gbà láyè gan-an, dín in kù sí iṣẹ́ àti àgbègbè tí o ṣàkíyèsí, kí ẹlòmíràn sì ṣàyẹ̀wò rẹ̀ kí ó tó súnmọ́ ìmújáde.
Kí ni ó fà á tí module allow àtijọ́ kì í ṣe ìdáhùn
Àwọn àbájáde wíwá fún àbùkù yìí kún fún àwọn module tí a ti ṣe tán, ní ọ̀pọ̀ ìgbà fún irinṣẹ́ tí hook kò pè mọ́. Fífi ọ̀kan sínú ń fúnni ní àwọn ìyọ̀ǹda tí ó lè má ní í ṣe pẹ̀lú ìkọ̀ rẹ, ó sì ń fi àìbámu gidi náà sí ipò rẹ̀ nígbà tí ó ń fi ihò àìlópin kún un.
Ó tún fi ìkùnà tó ń bọ̀ pamọ́. Module tí ó ń gbà kíláàsì iṣẹ́ tí ó gbòòrò láyè yóò mú àṣìṣe yìí parẹ́ yóò sì sọ èyí tó ń bọ̀ di ohun tí ó ṣòro láti dá sí orí. Yíyọ module náà kúrò nígbà tó ń bọ̀ tún jẹ́ ìyípadà tí ẹnìkan kò fẹ́ ṣe ètò fún, nítorí náà ọ̀nà àbẹ̀wò ń di àìlópin.
Ìfiwéra oníṣèdánwò wà láàárín ìkọ̀ tí o lè kà àti ìyípadà tí o ń dábàá. Ìtọ́nisọ́nà ìṣèdíwọ́n àwọn ìṣòro SELinux ti Red Hat ń gbé àwọn àyẹ̀wò àmì àti ìṣètò síwájú ìlànà tí a ṣẹ̀dá, ní ìdí yìí gan-an. Bí kò bá sí ìkọ̀ tí ó bá mu nínú àkọsílẹ̀, SELinux lè má ṣe ìṣòro rẹ, àti pé àwọn ọ̀ràn ọ̀nà, sandbox tàbí ìyọ̀ǹda ṣì ṣí.