takovoj.
Politika bezopasnosti dolzhna ispolnyatsya vo vsej organizacii. Ne imeet nikakogo smysla v zashchite konfidencial'nogo fajla na odnoj sisteme, kogda kopiya etogo zhe fajla mozhet otkryto chitat'sya na drugoj sisteme.
Slishkom mnogo bezopasnosti mozhet byt' tak zhe ploho, kak i slishkom malo. Sootvetstvie samomu strogomu urovnyu bezopasnosti vmeste s primeneniem mnozhestva sredstv obespecheniya bezopasnosti, pri uslovii, chto sistema neakkuratno sproektirovana i ploho upravlyaetsya, mozhet privesti k neeffektivnosti zashchity i slozhnosti ispol'zovaniya sistemy po e£ pryamomu naznacheniyu.
Neobhodimo pomnit', chto prakticheski vsegda povyshenie urovnya bezopasnosti sistemy trebuet uvelicheniya vremeni i usilij administratora na upravlenie im.
Komp'yuternye urovni zashchity, opredelennye U.S. Department of Defence stali dlya bol'shinstva osnovnymi kriteriyami pri zakupke sistem. |timi urovnyami po vozrastaniyu, yavlyayutsya D, C1, C2, B1, B2, B3, i A.
Uroven' "D" ne imeet nikakih funkcij zashchity.
Urovni "C" imeyut kontroliruemye sredstva upravleniya zashchity. To est', pol'zovatel' reshaet, kakie ego resursy zashchishchat' i upravlyaet (do nekotoroj stepeni) tem, kak eta zashchita primenyaetsya.
Urovni "B" imeyut obyazatel'nye sredstva upravleniya zashchitoj (naryadu s drugimi dopolnitel'nymi funkciyami). Sredstva upravleniya avtomaticheski primenyayutsya sistemoj.
Uroven' "A" yavlyaetsya stol' neobychnym, chto imeetsya tol'ko neskol'ko primerov ego prakticheskoj realizacii.
Obratite vnimanie, chto vysheupomyanutye urovni otnosyatsya k izolirovannym sistemam i voobshche ignoriruyut problemy bezopasnoj raboty v setyah.
Ustanovka sistemy urovnya "B" avtomaticheski ne povysit uroven' bezopasnosti vashej sistemy. Vam ponadobitsya znachitel'no bol'she vremeni i umenij dlya planirovaniya i upravleniya sistemoj urovnya "B", chem sistemoj bolee nizshego urovnya.
Ne priobretajte ili ne ustanavlivajte bol'she sredstv zashchity chem te, kotorymi vy smozhete upravlyat'.
V etoj knige obsuzhdaetsya mnogo defektov zashchity AIX. Odnako imeyutsya tri specificheskih defekta, kotorye yavlyayutsya bolee vazhnymi, chem ves' drugie vmeste vzyatye. |to:
1) nedostatochno nadezhnye paroli;
2) "programmy ustanavlivayushchie userid";
3) nedostatochnye ogranicheniya na dostup k direktoriyam.
Problema nedostatochnyh parolej ne unikal'na dlya AIX. Pochti kazhdyj komp'yuternyj pol'zovatel' uveren, chto on mozhet vybirat' horoshie paroli. No obychno eto ne tak. Bol'shinstvo napadenij na UNIX sistemy osushchestvlyaetsya podborom parolya. I chasto eti napadeniya udachny, potomu chto obychno trebuetsya nalichie tol'ko odnogo userid s nedostatochno nadezhnym parolem, chtoby obespechit' vozmozhnost' dlya polucheniya nesankcionirovannogo dostupa k sisteme.
Odnazhdy zaregistrirovavshis' v sisteme "zloumyshlennik" chasto ispol'zuet "programmy ustanavlivayushchie userid" (obychno nazyvaemye suid), chtoby poluchit' bolee shirokij dostup k sisteme. Funkciya suid - ne defekt (sm.Bity dostupa (Prodvinutye)); ona yavlyaetsya neobhodimoj chast'yu UNIX. Narushenie bezopasnosti vyzyvaet nepravil'noe upotreblenie suid.
AIX ne podderzhivaet suid dlya komandnyh fajlov obolochki (shell scripts). I eto odno iz osnovnyh otlichij AIX ot mnogih drugih UNIX sistem, chto yavlyaetsya opredelennym rasshireniem zashchity.
Zashchita fajlov (vklyuchaya fajly, kotorye yavlyayutsya vypolnimymi programmami) voobshche upravlyaetsya bitami razresheniya, hotya dostupny i drugie sredstva upravleniya. Na praktike, dlya nadezhnoj zashchity fajla trebuetsya, chtoby krome ustanovki pol'zovatelem bitov razresheniya neposredstvenno na fajl, byli ustanovleny sootvetstvuyushchie bity razresheniya na direktorii v cepochke direktorij vedushchih k fajlu.
Te pol'zovateli, kotorye ostorozhny s bitami razresheniya dlya ih fajlov, yavlyayutsya chasto nebrezhnymi (ili ne soznayushchimi vazhnost') v otnoshenii ustanovki bitov razresheniya na direktorii.
|ti tri defekta (nedostatochnye paroli, programmy suid, i ustanovka razreshenij na direktorii) ob®yasnyayut mnogie obshchie problemy zashchity UNIX.
Mnogie takzhe chitali ob ekzoticheskih i slozhnyh napadeniyah na razlichnye sistemy. Takie napadeniya sushchestvuyut, no oni redki i trebuyut netrivial'noj kvalifikacii napadayushchego. Poetomu v etoj knige my skoncentriruemsya na obshchih i standartnyh elementah zashchity dlya "obychnoj" sistemy AIX v "obychnoj" kommercheskoj srede.
Fizicheskaya zashchita imeet neskol'ko aspektov, vklyuchaya:
˛ Dostup k komp'yuteru;
˛ Dostup k kabelyu LAN;
˛ Dostup k privilegirovannym terminalam, tipa "pul't operatora".
Problemy fizicheskoj zashchity ochevidny i my ne budem obsuzhdat' ih zdes'.
Bezopasnost' operacionnoj sistemy AIX baziruetsya na tom, chto kazhdomu pol'zovatelyu v sisteme stavitsya v sootvetstvie unikal'noe imya, identifikator pol'zovatelya (UID) i parol'. Kogda pol'zovatel' podklyuchaetsya k sisteme, ego UID ispol'zuetsya dlya vseh zaprosov na dostup. Identifikacionnyj nomer imeet takzhe kazhdyj process v sisteme. Kogda sozdaetsya lyuboj fajl, UID associirovannyj s processom, kotoryj sozdal etot fajl, associiruetsya s etim fajlom. Tol'ko sozdatel' ili pol'zovatel' root mogut izmenit' pravila dostupa k fajlu.
Predopredeleny sleduyushchie pol'zovateli: root - super pol'zovatel' s maksimal'no shirokimi polnomochiyami adm, sys, bin, ... - identifikacionnye nomera ispol'zuemye sistemoj i kotorye nel'zya ispol'zovat' dlya vhoda v sistemu pol'zovatelyam.
Pol'zovateli, kotorym trebuetsya dostup k odnim i tem zhe dannym ili resursam, ob®edinyayutsya v gruppy. Kazhdaya gruppa imeet unikal'noe imya i gruppovoj identifikacionnyj nomer (GID). GID takzhe associiruetsya s fajlom pri ego sozdanii.
Pervonachal'no sushchestvuyut dve gruppy: system - dlya administratorov user - dlya obychnyh pol'zovatelej
Sozdanie grupp organizuet pol'zovatelej, kotorym neobhodim dostup k odnim i tem zhe fajlam ili resursam sistemy. Rukovodstvo gruppami dolzhno byt' chast'yu lyuboj politiki bezopasnosti v organizacii. Opredelenie grupp dlya bol'shih sistem mozhet byt' ochen' slozhnym i nahoditsya vne konteksta etoj knigi.
Kazhdyj pol'zovatel' mozhet prinadlezhat' tol'ko k odnoj gruppe, a takzhe byt' chlenom neskol'kih grupp. Pol'zovateli budut chasto prinadlezhat' bol'she chem k odnoj gruppe, no chlenstvo v gruppah ne dolzhno byt' chrezmernym.
Logichno razdelenie pol'zovatelej na gruppy pol'zovatelej s administrativnymi funkciyami i prochih pol'zovatelej. Poetomu sushchestvuyut tri razlichnye tipy grupp v sisteme:
Gruppy pol'zovatelej Lyudi, kotorym neobhodim dostup k odnim i tem zhe dannym, takie kak pol'zovateli, kotorye rabotayut v odnom otdele ili nad odnim i tem zhe proektom.
Gruppy sistemnyh administratorov Sistemnye administratory avtomaticheski yavlyayutsya chlenami gruppy system. CHlenstvo v odnoj iz etih grupp pozvolyaet sistemnym administratoram vypolnyat' razlichnye zadachi sistemnogo administrirovaniya bez neobhodimosti registrirovat'sya kak pol'zovatel' root.
Predopredelennye sistemnye gruppy V sisteme sushchestvuyut predopredelennye gruppy. Naprimer, gruppa staff yavlyaetsya predopredelennoj gruppoj dlya vseh novyh neadministrativnyh pol'zovatelej v sisteme. Drugaya predopredelennaya gruppa security obladaet privilegiyami dlya vypolneniya ogranichennyh funkcij administratora bezopasnosti.
Sistemnye predopredelennye gruppy ispol'zuyutsya dlya kontrolya nad rabotoj nekotoryh podsistem.
Obshchie gruppy sistemy sleduyushchie:
system dlya osnovnoj konfiguracii i podderzhki standartnogo apparatnogo i programmnogo obespecheniya.
printq dlya upravleniya ocheredyami.
security upravlenie parol'noj zashchitoj i ogranicheniyami
adm osnovnye funkcii monitoringa sistemy
staff predopredelennaya gruppa dlya vseh novyh pol'zovatelej sistemy
audit dlya auditorov v sisteme
Pol'zovatel' mozhet byt' chlenom mnogih grupp i AIX budet dlya razresheniya dostupa k fajlu avtomaticheski iskat' vse razresheniya dlya etogo pol'zovatelya v ego gruppah. Vashe naibolee obshchee imya gruppy dolzhno byt' sdelano zadannym po umolchaniyu imenem gruppy dlya novyh pol'zovatelej. V AIX zadannoe po umolchaniyu imya takoj gruppy - staff.
Dlya izmeneniya naimenovaniya gruppy, zadannoj po umolchaniyu dlya novyh pol'zovatelej, otredaktirujte stanzu pgrp v fajle /usr/lib/security/mkuser.default. V etom fajle soderzhatsya znacheniya po umolchaniyu dlya komand mkuser i smit. Naprimer, chtoby zadannaya po umolchaniyu gruppa imela imya office, otredaktirujte fajl /usr/lib/security/mkuser.default sleduyushchim obrazom:
user : pgrp = staff na user : pgrp = office
Imeyutsya takzhe dva tipa grupp v sisteme: administrativnye gruppy i normal'nye gruppy.
Gruppa administracii opredelena v fajle /etc/security/group stanzoj admin. V kazhdoj gruppe mozhet imet'sya svoj administrator gruppy. |to opredeleno v strofe fajla /etc/security/group.
Ne zaputajtes' s ukazaniem administrativnyh prav. Esli znacheniya admin=true nahoditsya v /etc/security/group (sm.Fajly /etc/group i /etc/security/group), to eto ukazyvaet administrativnuyu gruppu. No admin=true v fajle /etc/security/user (sm.Fajl /etc/security/user) oznachaet, chto pol'zovatel' imeet administrativnye prava dlya toj specificheskoj gruppy, kotoraya ukazana v stanze adms fajla /etc/security/group. S admin=true, pol'zovatel' mozhet upravlyat' toj gruppoj.
Vklyuchenie pol'zovatelya v administrativnuyu gruppu ne imeet bol'shogo effekta v AIX. Dlya nebol'shih sistem rekomenduetsya ignorirovat' administrativnye gruppy i pol'zovatelej. V etih sistemah dlya vypolneniya upravleniya pol'zovatelyami nuzhno ispol'zovat' prava root. Bol'shie zhe sistemy (bolee chem s 30 ili 40 pol'zovatelyami) mogli by nuzhdat'sya v administratorah grupp.
Esli vasha politika bezopasnosti razreshaet eto, to samym prostym sposobom vypolnyat' upravlenie gruppoj moglo by stat' razreshenie administratoram gruppy vypolnyat' komandu su root. Esli vasha politika bezopasnosti ne razreshaet administratoram gruppy znat' parol' root, to v etom sluchae mozhno ispol'zovat' administrativnuyu gruppu i e£ atributy.
V AIX vklyuchena gruppa, imenovannaya security. Lyuboj chlen etoj gruppy mozhet chitat' vse fajly administrirovaniya pol'zovatelyami v kataloge /etc/security (sm. Tenevye fajly), i mozhet vypolnyat' mnogie iz komand upravleniya sistemoj. S nebol'shim usiliem, chlen gruppy security mozhet poluchit' polnomochiya root. Sledovatel'no, tol'ko samye doverennye sotrudniki dolzhny byt' v etoj gruppe.
AIX imeet userid i gruppy, kotorye neobhodimy sisteme. Ne izmenyajte parametry etih pol'zovatelej i grupp, esli, konechno, Vy ne ochen' uverenny v tom, chto Vy delaete :-). Nikogda ne vhodite v sistemu s lyubym iz etih userid (za isklyucheniem root).
Identifikatory pol'zovatelya, kotorye vklyucheny v sistemu (v forme, v kotoroj oni opisany v /etc/passwd) perechisleny nizhe. |ti identifikatory ispol'zuyutsya dlya razlichnyh celej, tipa monopol'nogo ispol'zovaniya fajla i funkcij NFS. Vse oni, za isklyucheniem root, yavlyayutsya zablokirovannymi dlya vhoda v sistemu v raspredelennoj sisteme. (Oni zablokirovany parolem = * v /etc/security/passwd):
root:!:0:0:/:/bin/ksh daemon:!:1:1::/etc: bin:!:2:2::/bin: sys:!:3:3::/usr/sys: adm:!:4:4::/usr/adm: uucp:!:5:5::/usr/spool/uucp public:/usr/lib/uucp/uucico guest:!:100:100::/usr/guest: nobody:!:4294967294::4294967294::/: lpd:!:104:9::/:
Novye pol'zovateli, kotoryh vy dobavlyaete, budut znachenie po umolchaniyu v gruppu staff, esli vy ne izmenili znachenie po umolchaniyu.
groupids, kotorye vklyucheny v sistemu - (v forme, v kotoroj oni poyavlyayutsya v /etc/group):
system:!:0:root staff:!:1: bin:!:2:root,bin sys:!:3:root,bin,sys adm:!:4:bin,adm uucp:!:5:uucp mail:!:6: security:!:7:root cron:!:8:root printq:!:9:lpd audit:!:10:root ecs:!:28: nobody:!:4294967294:nobody usr:!:100:guest
Nastoyatel'no ne sovetuetsya naznachat' pol'zovatelej v lyubuyu iz perechislennyh vyshe grupp (za isklyucheniem staff), esli, konechno, vy ne uverenny otnositel'no posledstvij takih dejstvij. Nekotorye iz etih grupp (tipa system, bin, security, cron) - vladel'cy sovokupnosti mnogih vazhnyh fajlov i direktorij. Vklyuchenie pol'zovatelya v lyubuyu iz etih grupp, s nebol'shim usiliem, mozhet skomprometirovat' lyubye sredstva informacionnoj bezopasnosti v sisteme.
Vse pol'zovateli v sisteme, v sootvetstvii s ih pravami, razdeleny na tri kategorii:
1. pol'zovatel' root;
2. pol'zovateli s administrativnymi pravami (gruppy security, system, printq, cron, adm, audit). Osobogo vnimaniya zasluzhivayut pol'zovateli vklyuchennye v gruppu security, tak kak oni mogut dobavlyat'/udalyat'/izmenyat' drugih pol'zovatelej ili gruppy;
3. obychnye pol'zovateli.
Dlya zashchity pol'zovatelej iz administrativnoj kategorii ot nekorrektnyh dejstvij pol'zovatelej gruppy security, tol'ko pol'zovatel' root mozhet dobavlyat'/udalyat'/izmenyat' pol'zovatelej i gruppy administrativnoj kategorii.
Dlya togo chtoby dobavit' lyubogo pol'zovatelya v administrativnuyu kategoriyu sleduet sdelat' sleduyushchee:
Nabrat' komandu: # cat /etc/security/user i v stanze opisaniya pol'zovatelya vnesti sleduyushchee:
user1: admin=true
PATH - otnosyashchayasya k okruzheniyu peremennaya, ispol'zuemaya tekushchej obolochkoj pri poiske ispolnyaemyh fajlov (komand). Pri ispol'zovanii normal'noj obolochki, pol'zovatel' mozhet izmenyat' PATH v lyuboe vremya. Ne imeetsya nikakogo priemlemogo sposoba predotvratit' takie izmeneniya. (Ogranichennaya obolochka, obsuzhdennaya v Trusted Computing Base (TCB) ne razreshaet izmeneniya dlya PATH.)
Odna iz celej zashchity sostoit v tom, chtoby zashchitit' root (ili lyubogo drugogo pol'zovatelya) ot vypolneniya poddel'noj programmy. Naprimer, esli /tmp (nezashchishchennyj katalog) - pervyj element v PATH i esli zloumyshlennik pomestit programmu pod imenem su v /tmp, eta programma su budet vypolnena vmesto pravil'noj programmy su sistemy.
Defekt PATH - prostoe ponyatie i vy, kak administrator sistemy, dolzhny ponyat' eto. PATH pol'zovatelya obychno ustanavlivaetsya (ispol'zuya profil' sistemy i profil' pol'zovatelya (esli oni sushchestvuet)), kogda on registriruetsya v sisteme. Domashnej direktoriej pol'zovatelya root obychno yavlyaetsya direktoriya root i fajl /.profile (esli on sushchestvuet) budet vypolnen, kogda root registriruet v sistemu. Esli zhe my poluchaem polnomochiya root ispol'zuya komandu su profil' root (eto verno i dlya polucheniya polnomochij lyubogo drugogo pol'zovatelya komandoj su) avtomaticheski ne vypolnyaetsya. (Ispol'zovanie flazhka "-" s komandoj su zastavit profil' celevogo pol'zovatelya byt' vypolnennym, no eto mozhet imet' posledstviya na tekushchem pol'zovatele. Obychno, flazhok "-" ne ispol'zuetsya s su.)
Naprimer, esli vy registriruetes' v sisteme kak obychnyj pol'zovatel' i zatem da£te komandu su root, vy prodolzhaete ispol'zovat' profil' (i PATH), ustanovlennyj pervonachal'nym profilem pol'zovatelya. |to mozhet byt' istochnikom ser'eznyh narushenij zashchity, podobnyh etoj:
1. Pol'zovatel' (zhelayushchij poluchit' parol' root) pishet malen'kuyu programmu na C, vyvodyashchuyu soobshcheniya, analogichnye soobshcheniyam komandy su. To est', eta programma poprosit vas vvesti parol' root.
2. Pol'zovatel' kompiliruet i linkuet etu programmu i pomeshchaet e£ v svoyu biblioteku.
3. Pol'zovatel' izmenyaet svoj PATH takim obrazom, chtoby pervoj direktoriej v poiske byla ego lichnaya (home) direktoriya.
4. Pol'zovatel' prosit administratora reshit' kakuyu-nibud' problemu, reshenie kotoroj, veroyatno, trebuet prav dostupa root.
5. Administrator prihodit k terminalu pol'zovatelya i ispol'zuet komandu su, chtoby poluchit' polnomochiya root. Kogda administrator vvodit komandu su, sistema ishchet programmu s imenem su snachala v lichnoj direktorii pol'zovatelya (kak ustanovleno v PATH pol'zovatelya) i nahodit poddelannuyu programmu su i vypolnyaet e£.
6. Programma su pol'zovatelya zaprashivaet vvod administratorom parolya root, sohranyaet parol' v nevidimom fajle, posylaet soobshchenie ob oshibke o vvode nepravil'nogo parolya i stiraet samu sebya.
7. Administrator dumaet, chto on vvel nepravil'nyj parol' i pytaetsya snova vypolnit' komandu su root. Sejchas vs£ funkcioniruet normal'no, tak kak poddelannaya programma uzhe udalena i seans prodolzhaetsya kak obychno.
8. Pol'zovatel' pozzhe chitaet parol' root iz nevidimogo fajla i mozhet vojti v sistemu kak root.
|to - klassicheskoe napadenie "Troyanskogo konya", i ono srabotalo, potomu chto administrator vypolnil komandu su ispol'zuya nepravil'nyj PATH.
Dlya zashchity ot takih napadenij na sistemu bezopasnosti, rekomenduetsya sleduyushchee:
1. Administrator, pri poluchenii polnomochij root, esli on rabotaet v srede drugogo pol'zovatelya, dolzhen vsegda vvodit' polnoe imya puti komand. |to pozvolit izbezhat' ispol'zovaniya PATH pol'zovatelya.
2. V PATH dlya obychnogo pol'zovatelya pervymi v puti poiska dolzhny byt' standartnye direktorii sistemy, pered tekushchej direktoriej ili specificheskoj direktorii $HOME. Zadannyj po umolchaniyu put' (ustanovlen znacheniem po umolchaniyu) dlya AIX: PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:$HOME/bin:/usr/bin/X11:/sbin:. Poddirektorii vnutri /usr soderzhat bol'shinstvo komand AIX, ispol'zuemyh obychnymi pol'zovatelyami. Direktoriya /etc soderzhit simvol'nye ssylki na komandy v bolee udalennyh direktoriyah. Obratite vnimanie, chto snachala ishchutsya biblioteki sistemy. I tol'ko posle etogo poiska prosmatrivayutsya programmy v $HOME/bin. "Tochka" v poslednej pozicii PATH ukazyvaet na poisk v tekushchej direktorii.
Ignoriruya malye elementy (X11 i /sbin), poryadok poiska PATH sleduyushchij: direktorii sistemy, direktoriya programm pol'zovatelya(/$HOME/bin) i tekushchaya direktoriya. |to - bezopasnyj poryadok poiska, hotya mozhno sporit' o tom, dolzhna li tekushchaya direktoriya ("tochka") byt' v puti poiska.
Blokirovki po vremeni ispol'zuyutsya, chtoby avtomaticheski blokirovat' obolochku, kotoraya neaktivna slishkom dolgo. Funkciya blokirovki po vremeni obespechivaetsya ne dlya bazisnogo yadra AIX, a dlya obolochek AIX.
Po umolchaniyu blokirovka po vremeni ne vklyuchena. Dlya ustanovki blokirovki po vremeni Korn shell ispol'zuet peremennuyu TMOUT, a Borne shell ispol'zuet peremennuyu TIMEOUT. Vy, kak administrator, dolzhny ustanovit' odnu ili obe iz etih peremennyh, esli Vy hotite avtomaticheski blokirovat' obolochku posle chrezmernogo neaktivnogo sostoyaniya.
Nastoyatel'no rekomenduetsya ispol'zovat' etu funkciyu, potomu chto terminaly bez prismotra - ser'eznoe narushenie zashchity. Naprimer, dobav'te stroki v fajly /etc/profile ili k /etc/security/.profile:
TMOUT=45 TIMEOUT=45 export TMOUT TIMEOUT
Blokirovka po vremeni vyrazhena v minutah. Esli pol'zovatel' zapuskaet neskol'ko obolochek (naprimer, zapuskaya komandu ksh neodnokratno), obolochki budut blokirovany po vremeni v obratnom poryadke.
Period blokirovki po vremeni - peremennaya otnosyashchayasya k obolochke ili k okruzheniyu i ona mozhet byt' izmenena kazhdym pol'zovatelem. Vy ne mozhete predpisyvat' standartnoe dlya vseh znachenie (esli tol'ko vashi pol'zovateli ne znayut, chto oni mogut izmenyat' znachenie perioda blokirovki po vremeni).
Vy mozhete ustanavlivat' podskazku obolochki, chtoby pokazat' na ekrane informaciyu o tekushchej direktorii. Dlya pol'zovatelej obolochki Korn, eto vypolnyaetsya put£m dobavleniya sleduyushchih dvuh strok v profil' $HOME/.profile:
PS1='$PWD $ ' (ispol'zujte odinochnye kavychki) export PS1
|to izmenenie obespechivaet vyvedenie puti i imeni tekushchej direktorii, soprovozhdaemyh tradicionnym simvolom "$". K sozhaleniyu, eta prostaya metodika vvodit v zabluzhdenie, esli pol'zovatel' vypolnyaet komandu su root. "$" budet vs£ eshche poyavlyat'sya vmesto simvola "#" kotoryj yavlyaetsya tradicionnym dlya su root.
|togo mozhno izbezhat', ne ispol'zuya takuyu podskazku dlya pol'zovatelej, kotorym chasto prihoditsya vypolnyat' komandu su root, ili ispol'zuya komandu su s flazhkom "-".
Podskazka, pokazyvayushchaya put' tekushchej direktorii, polezna dlya mnogih pol'zovatelej, osobenno, esli oni obychno rabotayut so mnogimi direktoriyami.
Ne imeetsya bolee nikakih defektov zashchity pri ispol'zovanii podskazok (krome kak vysheukazannogo vvedeniya v zabluzhdenie administratora), no informativnaya podskazka mozhet umen'shat' kolichestvo oshibok pol'zovatelya.
Redko imeetsya neobhodimost' dlya registracii v sisteme pol'zovatelem root. Bol'shinstvo "neschastnyh sluchaev" v sistemah UNIX chasto vyzvany ispol'zovaniem root, kak standartnogo userid. Poetomu, posle togo, kak vasha sistema skonfigurirovana, vy mozhete otklyuchit' vozmozhnost' vhoda v sistemu kak root. Upolnomochennye pol'zovateli (te, kto znayut parol' dlya root) mogut pol'zovat'sya komandoj su root posle togo, kak oni voshli v sistemu pod ih obychnymi userids.
Otklyuchenie root legko vypolnyaetsya s pomoshch'yu SMIT:
smit -Security and Users --Users ---Change / Show Characteristics of a Userid * User NAME [root] ... Another user can SU TO USER? [true] ... User can LOGIN? [false] <-- User can LOGIN REMOTELY? [false] <--
Ne otklyuchajte pol'zovatelya root, napryamuyu redaktiruya fajl /etc/passwd i izmenyaya pole parolya. Takoe dejstvie zapretit vam ispol'zovanie polnomochij root s pomoshch'yu komand su ili telnet.
Fajl /var/adm/sulog soderzhit informaciyu v ASCII formate o date, vremeni, imeni sistemy i imeni pol'zovatelya, kotorye vhodili v sistemu. |tot fajl mozhno prosmotret' komandami pg, more ili cat. |tot fajl takzhe fiksiruet tot fakt, byla li popytka vhoda v sistemu udachnoj ili net.
Fajl /etc/utmp soderzhit informaciyu o tekushchih pol'zovatelyah sistemy.
A fajl /var/adm/wtmp soderzhit informaciyu o vremeni nahozhdeniya pol'zovatelej v sisteme (fiksiruet vremya vhoda i vyhoda iz sistemy). Dlya prosmotra etoj informacii ispol'zujte komandu who file_name. Komanda who bez parametrov pokazyvaet soderzhimoe fajla /etc/utmp.
Dlya prosmotra hronologicheskogo spiska vhodov i vyhodov iz sistemy ispol'zuetsya takzhe komanda last. Naprimer, komanda last root vydast informaciyu obo vseh vhodah i vyhodah iz sistemy pol'zovatelya root, a komanda last reboot pokazhet vremya proshedshee mezhdu perezagruzkami sistemy.
Sushchestvuet takzhe eshche odin vazhnyj fajl, prosmatrivaemyj komandoj who. |to fajl /etc/security/failedlogin, iz nazvaniya kotorogo sleduet, chto v nego zanosit'sya informaciya kazhdyj raz pri nepravil'nom vvode imeni i/ili parolya pri vhode v sistemu. Neraspoznannye imena pol'zovatelej zapisyvayutsya kak UNKNOWN.
Dlya podderzhki sistemy bezopasnosti vy mozhete vospol'zovat'sya nekotorymi "proveryayushchimi" komandami (grpck, usrck, pwdch, sysck, tcbck) i "spisochnymi" komandami (lsuser i lsgroup) dostupnymi dlya ispol'zovaniya pol'zovatelyu root (ili lyubomu pol'zovatelyu iz gruppy security).
Komanda grpck proveryaet dlya vseh pol'zovateli, poskol'ku chleny gruppy opredeleny kak pol'zovateli, chto ih gid unikal'ny, i chto imya gruppy pravil'no sformirovano. Takzhe vypolnyayutsya drugie nebol'shie proverki. Flazhok -t zastavlyaet komandu soobshchat' ob oshibkah i sprashivat' otnositel'no razresheniya ob ih ustranenii: grpck -t ALL
|ta komanda proveryaet sredu gruppy, i, esli Vy otvechaete Yes na zapros, budut st£rty userids, kotorye ne sushchestvuyut ili dlya kotoryh stanzy v fajle /etc/security/user imeyut protivorechivye dannye.
Komanda usrck proveryaet mnogo parametrov oblasti opredeleniya userid. Flazhok -t zastavlyaet komandu soobshchat' ob oshibkah i sprashivat' otnositel'no razresheniya ob ih ustranenii. V nekotoryh sluchayah komanda otklyuchit userid, dobavlyaya datu okonchaniya v oblast' opredeleniya pol'zovatelya. Na dannye pol'zovatelya eta komanda ne vozdejstvuet. Pol'zovatelya mozhno dopustit' v sistemu snova, udalyaya dobavlennuyu datu okonchaniya (ispol'zuya SMIT ili neposredstvenno redaktiruya fajl /etc/security/user).
usrck -t ALL Nikogda ne probujte ispravlyat' userid root, ispol'zuya etu komandu. Esli Vy hotite poprobovat' eto sdelat', pozhalujsta snachala prochitajte o vosstanovlenii root userid (sm.Vosstanovlenie root userid).
Komanda pwdck proveryaet opoznavatel'nye stanzy v fajlah /etc/passwd i /etc/security/passwd. Esli chto-to nepravil'no, standartnym dejstviem etoj komandy yavlyaetsya udalenie stanzy ili sozdanie stanzy /etc/security/passwd s * (zvezdochkoj) v pole parolya. Zapustiv etu komandu nizheukazannym sintaksisom vy poluchite soobshchenie o problemah i otchet ob ih fiksacii: pwdck -t ALL Komanda pwdck ne proveryaet opredelennye pravila zadaniya parolya, tipa minalpha, minother, i lastupdate.
|ti komandy ispol'zuyutsya SMIT, no Vy mozhete takzhe ispol'zovat' ih neposredstvenno. Pryamoe ispol'zovanie mozhet byt' bolee udobno, kogda vy hotite pomeshchat' ih vyvod v fajl, naprimer tak:
lsgroup -f ALL >> /tmp/check lsuser -f ALL >> /tmp/check
V forme, pokazannoj vyshe, eti komandy sozdayut fajl /tmp/check i pishut v nego svoj vyvod.
|ti komandy otobrazhayut bol'shinstvo informacii neobhodimoj dlya upravleniya pol'zovatelyami i gruppami. |ti komandy mogut ispol'zovat'sya lyubym pol'zovatelem, no namnogo bol'she informacii otobrazhaetsya, kogda oni ispol'zuyutsya pol'zovatelem root (ili lyubym chlenom gruppy security).
Komanda lsuser neposredstvenno polezna pri ispol'zovanii root dlya specificheskogo pol'zovatelya, naprimer: lsuser joe |ta komanda otobrazit neskol'ko strok, soderzhashchie informaciyu upravleniya dlya pol'zovatelya joe. Kogda lsuser ispol'zuetsya s operandom ALL, informaciya otobrazhaetsya dlya vseh pol'zovatelej v sisteme. Dostupny neskol'ko opcij formatirovaniya.
|ta komanda opisana podrobno v Trusted Computing Base (sm.Trusted Computing Base).
Kogda vy ustanavlivaete AIX, podsistema kontrolya po umolchaniyu ne ustanavlivaetsya. Podsistema revizii (audita) obespechivaet sredstva, chtoby proslezhivat' i zapisyvat' otnosyashchuyusya k zashchite informaciyu. Vy mozhete ispol'zovat' etu informaciyu, chtoby obnaruzhit' potencial'nye i fakticheskie narusheniya strategii zashchity.
Vy (administrator, dejstvuya kak root) mozhete konfigurirovat' i upravlyat' podsistemoj audita. Ryad komand, fajlov upravleniya, i parametrov vzaimodejstvuet, chtoby upravlyat' reviziej. Oni mogut byt' dlya vas slozhnymi.
Sleduyushchie opisaniya koncentriruyutsya na bazisnom ispol'zovanii i prinimayut, chto vy ispol'zuete kontrol'nyj fajl upravleniya, postavlennyj s AIX, tol'ko s minimal'nymi izmeneniyami.
Kogda zapushchena kontrol'naya podsistema, ona revizuet (to est' generiruet zapis' vyvoda) dlya sobytij i ob®ektov.
Mogut byt' opredeleny dva razlichnyh rezhima zapisi: BIN i STREAM.
Sobytie - vypolnenie opredelennogo dejstviya, kotoroe sozdaet direktoriyu ili modificiruet parol'. Obnaruzhenie Sobytiya raspredeleno cherez AIX (vnutri doverennyh modulej). Spisok vseh opredelennyh sobytij revizii AIX dan v Kontrol'nom Sobytii (vy mozhete dobavlyat' kontrol'nye sobytiya dlya vashih sobstvennyh programm, i rasshiryat' etot spisok, no eto bylo by neobychno). Otchet vklyuchaet imya sobytiya, uspeh sobytiya, i specificheskie dannye dlya etogo vida sobytij. CHerez razlichnye kontrol'nye sredstva upravleniya vy mozhete vybirat', kakie iz etih sobytij vy hotite aktivizirovat' i zapisyvat'.
Vy dolzhny minimizirovat' kolichestvo otslezhivaemyh sobytij, naskol'ko eto vozmozhno. Zapis' vseh vozmozhnyh sobytij dlya kazhdogo pol'zovatelya v sisteme mozhet proizvesti k generirovaniyu ogromnogo kolichestva dannyh i znachitel'no ponizit effektivnost' vsej sistemy. Prichem, administrator sistemy ili bezopasnosti prosto fizicheski ne smogut razobrat'sya s takim "obvalom" kontrol'noj informacii za priemlemyj srok.
Reviziya Sobytiya VSEGDA svyazyvaetsya s userid (ili userids). Naprimer, vy mozhete otslezhivat' sozdanie direktorij pol'zovatelem joe.
Imeyutsya priblizitel'no 130 razlichnyh kontrol'nyh sobytij, vstroennyh v AIX. Kontrol'nye sobytiya sgruppirovany v klassy. Imena klassov proizvol'ny.
V dopolnenie k otslezhivaniyu sobytij, vy mozhete revizovat' ob®ekty. Prakticheski, - sledit' za fajlami.
Vy mozhete kontrolirovat' tri fajlovye operacii: chtenie, zapis' i vypolnenie. Ob®ekty ne svyazany s pol'zovatelyami.
Mehanizm dlya revizii ob®ekta generiruet psevdosobytiya, i etot process rabotaet ochen' podobno revizii sobytij. Vy mozhete legko dobavlyat' dopolnitel'nye fajly, vklyuchaya vashi fajly prikladnyh programm, v spisok kontrol'nyh ob®ektov, rasshiryaya fajl /etc/security/audit/objects.
Imeyutsya pyat' raznovidnostej komand audita:
˛ Audit start - ispol'zuetsya dlya aktivizirovaniya podsistemy kontrolya. |to - edinstvenno pravil'nyj sposob nachat' reviziyu.
˛ Audit shutdown - prekrashchaet rabotu podsistemy kontrolya, proizvoditsya obrabotka zaklyuchitel'nyh zapisej BIN (esli neobhodimo) i udalyaetsya fajl /audit/auditb, kotoryj ispol'zuetsya kak "aktivnyj" indikator kontrol'nyh modu-lej.
˛ Audit off - vremennoe priostanovlenie revizii. Naprimer, pri kontrol'nom zakrytii sistemy net neobhodimosti ispol'zovat' reviziyu.
˛ Audit on - vklyuchenie podsistemy kontrolya posle vremennogo ee vyklyucheniya komandoj audit off.
˛ Audit query - otobrazhenie sostoyaniya podsistemy revizii.
Sushchestvuyut neskol'ko bitov dostupa (razresheniya), associirovannye s fajlom ili direktoriej.
Standartnye ogranicheniya r (read), w (write) i x (execute) opredelyayut tri urovnya dostupa dlya pol'zovatelya (vladel'ca), gruppy (group) i ostal'nyh (others). V dobavlenie k etim trem ogranicheniyam sushchestvuyut tri bita dostupa izvestnye kak SUID (set UID), SGID (set GID) i SVTX (sticky bit).
Bit SUID, ustanovlennyj na ispolnyaemom fajle, oznachaet, chto pri vypolnenii etogo fajla process vypolnyaetsya s effektivnym identifikatorom pol'zovatelya (UID) vladel'ca fajla. SUID ne podderzhivaetsya dlya komandnyh fajlov obolochki (shell scripts). Bit SUID nikak ne otnositsya k direktoriyam.
Bit SGID, ustanovlennyj na ispolnyaemom fajle, oznachaet, chto pri vypolnenii ispolnyaemogo fajla process vypolnyaetsya s effektivnym gruppovym identifikatorom (GID) gruppy vladel'ca fajla. Bit SGID, ustanovlennyj dlya direktorii oznachaet chto kazhdyj fajl ili direktoriya sozdavaemye v etoj direktorii imeyut te zhe gruppovye razresheniya chto i pervichnaya gruppa pol'zovatelya, sozdayushchego novyj fajl/direktoriyu.
Bit dostupa | Fajl | Direktoriya |
r | pol'zovatel' mozhet chitat' soderzhimoe fajla | pol'zovatel' mozhet prosmatrivat' soderzhimoe direktorii |
w | pol'zovatel' mozhet izmenyat' soderzhimoe fajla | pol'zovatel' mozhet sozdavat' fajly i peremeshchat' fajly v direktoriyu |
x | pol'zovatel' mozhet ispol'zovat' imya fajla kak komandu | pol'zovatel' mozhet vhodit' (cd) v direktoriyu i pomeshchat' e£ v PATH |
SUID | programma vypolnyaetsya s effektivnym UID vladel'ca | - |
SGID | programma vypolnyaetsya s effektivnym GID vladel'ca | fajly, sozdannye v direktorii nasleduyut prinadlezhnost' k toj zhe gruppe, chto i direktoriya |
SVTX | - | dlya udaleniya fajla v direktorii pol'zovatel' dolzhen byt' vladel'cem fajla ili direktorii |
CHtoby interpretirovat' polya razreshenij, vydavaemyh, naprimer, komandoj ls budet polezna nizhesleduyushchaya shema:
Fajlovaya zashchita - naibolee ochevidnyj element zashchity dlya bol'shinstva pol'zovatelej AIX. Bazisnymi elementami, upravlyayushchimi zashchitoj fajla v lokal'noj sisteme yavlyayutsya:
˛ Bity razresheniya, svyazannye s fajlom.
˛ Bity razresheniya, svyazannye s direktoriej,
soderzhashchej imya fajla.
˛ Bity razresheniya vo vseh direktoriyah v
puti k fajlu.
˛ Spiski razreshenij ACL.
˛ Vladelec fajla.
˛ Gruppa-vladelec fajla.
˛ Vladelec i gruppa-vladelec direktorii, v
kotoroj razmeshchen fajl.
˛ Vladel'cy i gruppy-vladel'cy vseh
direktorij vysshego urovnya v puti k fajlu.
˛ Programmy, vypolnyayushchiesya s effektivnym
userid pol'zovatelya root.
Esli vy sozdaete dopolnitel'nye fajlovye sistemy, rekomenduetsya, chtoby tochki montirovaniya direktorij imeli bity razresheniya -rwx ------- (vos'merichnyj 700).
Perenosimye fajlovye sistemy (kotorye yavlyayutsya obychno "chastnymi"), imeyut unikal'nyj defekt zashchity. Kogda ih primontiruyut, oni funkcioniruyut kak normal'nye fajlovye sistemy, vklyuchaya funkcii suid (i osobenno suid root).
Pol'zovatel' mog by vzyat' svoyu perenosimuyu fajlovuyu sistemu, dobavit' suid-programmy root. Kogda eta fajlovaya sistema ustanovlena na vashej sisteme, vse eti suid-programmy root mogli by byt' agressivnymi.
Administrator imet nekotoryj kontrol' nad ustanovkoj chastnyh fajlovyh sistem (Odna iz opcij mount - nosuid. Rekomenduetsya vsegda ispol'zovat' etu opciyu pri ustanovke perenosimyh fajlovyh sistem (vklyuchaya CD-ROM), i (vozmozhno) pri ustanovke lyuboj chastnoj fajlovoj sistemy).
Normal'nye fajlovye sistemy UNIX (vklyuchaya JFS AIX) ispol'zuyut uroven' kosvennogo upravleniya fajlami, kotoryj obychno skryvaetsya ot pol'zovatelya.
Administrator dolzhen ponimat' nekotorye bazisnye elementy kosvennogo upravleniya, tak kak oni vazhny dlya zashchity fajlov.
Dostup k dannym fajla v UNIX - obychno podoben takoj procedure:
zapis' v direktorii --> inode --> bloki dannyh
To est' zapis' dlya fajla v direktorii ne ukazyvaet na dannye fajla. Ona ukazyvaet na inode, kotoryj, v svoyu ochered', ukazyvaet na dannye.
Bity razresheniya zashchity otnosyatsya k inode, a ne k zapisi dlya fajla v direktorii. Zapis' v direktorii soderzhit "imya" dlya fajla, tipa /u/trial/data.
inode imeet nomer identifikacii, no ne "imya" fajla.
Bolee obshchee izobrazhenie moglo by byt':
/u/trial/data --> /xyz/j/g34/check --> inode 317 --> data blocks /joes/stuff -->
V etom primere, odinochnyj fajl (osnovannyj na inode 317 vnutri nekotoroj fajlovoj sistemy) imeet tri direktorii "svyazi". Tot zhe samyj fajl imeet tri ochen' razlichnyh "imeni". Bity Razresheniya (i UID i GID) sohraneny v inode. Vyzov k fajlu cherez lyuboe iz imen budet obespechivat' te zhe samye razresheniya i sredstva upravleniya vladel'ca. |ti imena dopolnitel'nogo prostranstva obespechivayutsya simvolicheskimi svyazyami. (Simvolicheskaya svyaz' mozhet funkcionirovat' mezhdu razlichnymi fajlovymi sistemami, i ne udalyaetsya, esli adresat inode udalen.
ZHestkaya svyaz' rabotaet tol'ko vnutri konkretnoj fajlovoj sistemy i mozhet byt' elementom upravleniya v udalenii dannyh fajla i inode.)
Podobnye svyazi mogut sushchestvovat' i na urovne direktorii (t.k. direktoriya - chastnyj sluchaj fajla). Naprimer, direktoriya /xxx mogla by byt' simvolicheski svyazana s direktoriej /etc. |to oznachaet, chto fajl /xxx/my/data - na samom dele yavlyaetsya fajlom /etc/my/data. K odnomu i tomu zhe samomu fajlu obrashchayutsya v oboih sluchayah, hotya ispol'zuyutsya razlichnye struktury direktorij. Znachenie zashchity svyazej direktorij obsuzhdeny pozzhe.
Kazhdyj fajl (vklyuchaya direktorii) imeet vladel'ca i gruppu. Vladelec i identifikatory gruppy vladel'ca (UID i GID) sohraneny v inode. Iznachal'no vladelec eto pol'zovatel', kotoryj sozdal fajl. Gruppa - tekushchaya gruppa vladel'ca, kogda on sozda£t fajl. Pol'zovatel' root mozhet izmenyat' vladel'ca fajla, ispol'zuya komandu chown, i mozhet izmenyat' gruppu vladel'ca s komandoj chgrp.
V AIX, obyknovennye pol'zovateli ne mogut ispol'zovat' komandy chown ili chgrp, potomu chto eti funkcii mogut kosvenno privesti k defektam zashchity. V nekotoryh versiyah UNIX, eti dve komandy dostupny obychnym pol'zovatelyam.
Obratite vnimanie, chto monopol'noe ispol'zovanie sootvetstvuet UID (vladel'ca) i GID (gruppy vladel'ca), a ne ego userid i groupid. Esli userid (i ego sootvetstvuyushchij UID) udalen iz sistemy, fajly, prinadlezhashchie etomu UID ostayutsya v sisteme. Udalenie userid ne udalyaet ego fajly. Odnako, v etom sluchae fajly, kak kazhetsya "ne imeyut" vladel'ca. No kak tol'ko drugoj, pozzhe naznachennyj userid, poluchit tot zhe samyj UID, to on stanet vladel'cem vseh fajlov, svyazannyh s etim UID.
Esli vas kasaetsya eta problema, vy mozhete blokirovat' schet pol'zovatelya vmesto togo, chtoby udalit' ego.
Vy dolzhny takzhe ponyat', kak na monopol'noe ispol'zovanie fajla vozdejstvuyut komandy mv i cp (peremeshcheniya i kopirovaniya). Komanda kopirovaniya cp vsegda sozdaet novyj fajl, i pol'zovatel' kotoryj dal etu komandu stanovitsya vladel'cem novogo fajla. Konechno, etot pol'zovatel' dolzhen imet' dostatochnye razresheniya na chtenie ishodnogo fajla.
Esli komanda peremeshcheniya mv ispol'zuetsya, chtoby peremestit' fajl vnutri fajlovoj sistemy, monopol'noe ispol'zovanie fajla ne izmenyaetsya. Pol'zovatel' komandy mv dolzhen imet' razreshenie na zapis' v celevoj direktorii, i dostatochnye razresheniya na chtenie ishodnogo fajla. Esli komanda mv ispol'zuetsya, chtoby peremestit' fajl v druguyu fajlovuyu sistemu, novyj fajl sozda£tsya i tekushchij pol'zovatel' stanovitsya vladel'cem fajla. Pol'zovatel' dolzhen imet' razreshenie na zapis' i v ishodnoj direktorii (chtoby udalit' fajl) i v celevoj direktorii (chtoby sozdat' novyj fajl). On dolzhen takzhe imet' sootvetstvuyushchie razresheniya na chtenie dlya istochnika.
Fajly (i direktorii) imeyut bity dostupa. Oni inogda nazyvayutsya bitami "rezhima", no my budem ispol'zovat' termin "bity dostupa" ili "razresheniya".
Imeyutsya 12 bitov dostupa:
˛ Tri bita sistemy (kotorye neposredstvenno
ne otobrazhayutsya);
˛ Tri bita vladel'ca, kotorye opredelyayut to,
chto razreshaetsya delat' vladel'cu;
˛ Tri bita gruppy, kotorye
opisyvayut chto razreshaetsya delat' chlenam
gruppy vladel'ca;
˛ Tri vseobshchih bita,
kotorye opisyvayut to, chto razreshaetsya
delat' lyubym drugim pol'zovatelyam.
Bity dostupa chasto otobrazhayutsya kak devyat' bitov (tri starshih sistemnyh bita otobrazhayutsya special'nymi sposobami).
Razresheniya - ne yavlyayutsya ierarhicheskimi; to est' razreshenie na zapis' ili na vypolnenie ne vklyuchayut v sebya razresheniya na chtenie.
Bity dostupa chasto zapisyvayut v vos'merichnom formate. Vos'merichnyj format udoben, tak kak pervaya cifra v takoj zapisi razreshenij pokazyvaet razresheniya dlya vladel'ca, vtoraya cifra - razresheniya dlya gruppy vladel'ca, i tret'ya cifra - razresheniya dlya ostal'nyh pol'zovatelej.
Komanda ls - veroyatno odna iz naibolee vazhnyh komand dlya administratora bezopasnosti. Vy dolzhny ponyat' detalizirovannuyu informaciyu, kotoruyu eto otobrazhaet. AIX takzhe obespechivaet komandu li, kotoraya yavlyaetsya ochen' podobnoj ls.
Predlagaetsya, chtoby vy koncentrirovalis' na komande ls, tak kak eto - standart vo vseh sistemah UNIX, i obuchat'sya, chtoby ispol'zovat' neskol'ko iz fakul'tativnyh flazhkov.
Bazisnaya komanda ls otobrazhaet spisok fajlov v tekushchem kataloge i ne otobrazhaet bol'she nichego. Dlya polucheniya bol'shogo kolichestva informacii, Vy budete obychno ispol'zovat' odnu iz sle-duyushchih form:
˛ ls -al
˛ ls -ld
˛ ls -l /some/file/name
˛ ls -ld /some/directory/name
Pervaya forma, ls -al, otobrazhaet informaciyu otnositel'no vseh fajlov v tekushchem kataloge, vklyuchaya "skrytye" fajly (ch'i imena nachinayutsya s perioda(tochki)).
Vtoraya forma, ls -ld, otobrazhaet informaciyu otnositel'no tekushchej direktorii.
Tret'ya forma, ls -l /some/file/name, otobrazhaet informaciyu otnositel'no specificheskogo fajla.
Poslednyaya forma, ls -ld /s