TL; DR
Otu ìgwè ngwugwu PyPI gbaziri aha nke uv, onye njikwa ngwugwu Python nke dabeere na Rust dị ngwa ngwa ma dịkwa oke ewu ewu, iji mee ka a mara na ha bụ ndị enyemaka UV. Ha anaghị eziga ọrụ ọ bụla. Kama nke ahụ, ihe ha na-ebu bụ ibu ọrụ Windows nke na-eguzo ọtọ Sava JupyterLab agbanyụrụ na njirimara agbanyụrụ na, na nsụgharị ndị ọzọ, na-ebipụta ya na ịntanetị ọha site na ọwara azụ.
Nke ahụ bụ akụkọ dum n'otu ahịrị: Aha ngwaọrụ a tụkwasịrị obi dị ka ihe ndọta, na JupyterLab dị ka injin njikwa koodu dịpụrụ adịpụ. Ihe nkesa Jupyter na-agba koodu ọ bụla ị pịnyere na nke a abụghịebook cell; otu e tinyere ihe ngosi efu ma jikọọ na njikọ netwọk ọ bụla bụ ihe ntụgharị okwu mepere emepe nke onye ọ bụla nwere ike iru ọdụ ụgbọ mmiri nwere ike ịkwọ ụgbọala.
Anyị na-esochi otu ahụ dịka FauxUVNgwugwu abụọ a nyochachara bụ moon-uv (0.0.1-0.0.16) na my-magic-uv-helper (0.0.1), nke otu onye ọrụ ahụ bipụtara ma bipụta na PyPI n'oge nyocha.
| Ngwurugwu | P&IP |
| nchịkọta | moon-uv (0.0.1-0.0.16), my-magic-uv-helper (0.0.1) |
| Ezubere ikpo okwu ahụ maka ya | Windows |
| Àgwà bụ́ isi | Sava JupyterLab na-enweghị ikike, nke e bipụtara na ịntanetị site na ọwara azụ |
| Ngwaọrụ ndị ziri ezi e ji aka mee ihe | uv, JupyterLab, ígwé ojii, Pinggy |
Ihe na-adọrọ mmasị: aha ị tụkwasịrị obi
uv bụ otu n'ime ngwaọrụ Python kachasị arụnyere n'ime afọ abụọ gara aga, yabụ "onye enyemaka maka uv"bụ ngwugwu onye nrụpụta na-etinye n'echeghị echiche. FauxUV na-eji aha ahụ atụkwasị obi kpamkpam. Ngwugwu ndị ahụ na-ekpuchi ezi uv onye nrụnye sitere na Astral — URL ndị dị na ebe a na-akwụ ụgwọ na ezigbo ndị ọbịa a ma ama — yabụ ilele ngwa ngwa na-ahụ ihe ọ bụla ma e wezụga ntụaka a pụrụ ịtụkwasị obi. Ọ dịghị nke ọ bụla n'ime ngwugwu ndị ahụ na-agbakwụnye n'ezie. uv ọrụ; aha ahụ bụ ihe mkpuchi ahụ dum.
JupyterLab dị ka injin RCE
Isi ihe dị na ngwa a bụ ihe eji ebido JupyterLab ma ewepụ ihe nchekwa ọ bụla:
jupyter server --with jupyterlab --ip=0.0.0.0 # listen on every interface --ServerApp.token="" # no password, no token --allow_origin='*' # accept cross-origin connections --disable_check_xsrf # allow a remote browser/WebSocket to drive it Ọkọlọtọ ọ bụla na-ewepụ ihe nchebe, edemede e zigara na-edetukwa ha (n'asụsụ Chaịna mbụ): akara efu ahụ "Na-agbanyụ paswọọdụ na nlele akara - onye ọ bụla nwere ike ijikọ." ụlọ nyocha jupyter bụ IDE data-sayensị ziri ezi, mana ọ bụghịebook cell na-eme koodu aka ike site na imewe. Haziri ya n'ụzọ a ma jikọta ya na 0.0.0.0, ọ kwụsịrị ịbụ IDE ma ghọọ shei dịpụrụ adịpụ na-enweghị ikike na onye ọbịa ahụ - ọ dịghị mkpa ka a kpọọ malware binary omenala, naanị ngwaọrụ bụ isi na-egosi ụzọ na-ezighi ezi.
Akụkụ nkwado abụọ na-eme ka nke ahụ bụrụ ihe a pụrụ iru ma na-emegharị ugboro ugboro:
- Ihe mkpali nrụnye dị jụụ. Mbido mbụ na-eji PowerShell arụ ọrụ -Ndị Nkwụsị Ụdị Egwu kwụ ọtọ site na Mbido.py on pip tinye, n'azụ ya na mmejọ e gbochiri ya pip ọ dị ka ihe nkịtị. Nsụgharị ndị mechara na-akwaga otu ihe mbụ ahụ n'ime pip-uv ngwaọrụ iwu - ma hapụ oge nrụnye akpaka kpamkpam.
- Ọwara ihu ọha. Ihe nkesa dị na 0.0.0.0 Ọ ka bụ naanị ndị ọbịa nwere ike iru ya ma ọ bụ banye na igwe ahụ. Modulu ejikọtara ọnụ na-emepe [Pinggy](https://pinggy.io/) Ọwara azụ SSH nke na-ebuga ọdụ ụgbọ mmiri Jupyter dị na mpaghara gaa na adreesị ọha, na-ewepụ oke ahụ. Ederede ebufere na-ebukwa — kwuru — ụzọ ọzọ site na iji Cloudflare's ígwé ojii na a netsh onye nnọchiteanya ọdụ ụgbọ mmiri gaa na Linode IP, na-edekọ otu ebumnuche ahụ site na akụrụngwa dị iche iche.
Tinye ihe niile: wụnye ngwugwu ahụ, onye na-ahazi Windows ga-emecha jiri JupyterLab na-enweghị paswọọdụ wee bipụta ya na ịntanetị mepere emepe.
Otu FauxUV si gbasaa
E zigara ụdị FauxUV n'usoro ngwa ngwa, ebe ihe na-akpali ibu ahụ gafere ha — ihe ncheta na otu ụdị e dere akara anaghị akọ akụkọ zuru oke gbasara ahịrị ngwugwu.
| ogbo | Versions | ịkpalite | Ihe ọ na-agbakwụnye |
|---|---|---|---|
| Nko nrụnye | moon-uv 0.0.1-0.0.3, my-magic-uv-helper 0.0.1 | setup.py na ntinye pip | Wụnye uv + PATH prepend |
| Oge ọrụ CLI | moon-uv 0.0.5-0.0.13 | pip-uv iwu | onye na-ebu ụzọ JupyterLab na-enweghị paswọọdụ |
| ọwara | moon-uv 0.0.14-0.0.16 | pip-uv iwu | ọwara azụ Pinggy na-arụ ọrụ |
Ihe dị mkpa bụ na oge nrụnye ahụ na-agba ọsọ na akpaghị aka. wepụrụ na ụdị ndị ọzọ dị ike karịa — yabụ ihe nyocha na-ejide naanị okirikiri ndụ hooks ga-enye akara ndị ọhụrụ dị ka Mpekarị ihe ize ndụ, kpọmkwem azụ azụ.
Ihe ngosi nke nkwekọrịta
A kwadoro ya site n'ịgụ isi iyi ngwugwu ahụ; akara njedebe akara kwuru dị na faịlụ ndị ahụ mana ụdị nyocha ahụ anaghị arụ ọrụ. A na-ehichapụ ihe ngosi netwọk.
| ụdị | egosi |
|---|---|
| Wụnye iwu | powershell -ExecutionPolicy Bypass ịchọta ezigbo onye nrụnye uv, n'oge nrụnye pip |
| Ọkọlọtọ JupyterLab | --ip=0.0.0.0 --ServerApp.token="" --allow_origin='*' --disable_check_xsrf |
| Ọwara azụ (na-arụ ọrụ) | free[.]pinggy[.]io:443 izipu mpaghara 127.0.0.1:8888 |
| Onye na-anabata ọwara (ekwuru) | cloudflared tunnel --url hxxp://127[.]0[.]0[.]1:2718 |
| IP (ekwuru okwu) | 45[.]79[.]134[.]161 (Linode) site na netsh port-proxy |
| Iguzosi ike | na-akwado %USERPROFILE%\.local\bin nye onye ọrụ PATH |
Ihe ịrịba ama omume kwesịrị ịdọ aka ná ntị na ya, n'adabereghị na eriri ndị a kpọmkwem: pip tinye nke ahụ na-amịpụta ike -Mmezu Iwu Ngafe; ọ bụla jupyter njikọta mmalite akara ngosi = "" na –ip=0.0.0.0na-apụ apụ na SSH gaa na *.pinggy.io site na onye nrụpụta ma ọ bụ igwe CI.
Omume na mmalite a hụrụ
Ngwugwu abụọ ahụ nwere otu onye dere ya na otu usoro: aha ngwaọrụ a pụrụ ịtụkwasị obi, ihe na-egbochi naanị Windows, mmejuputa ndabere nke njehie na-egbochi, na ịdabere na ngwaọrụ a ma ama ka ilele ngwa ngwa wee hụ naanị URL ndị a ma ama. Isi mmalite ahụ nwere okwu ndị China na-akọwa ọkọlọtọ ndị metụtara nchekwa nke ọma; anyị na-akọ akụkọ ndị ahụ dị ka okwu a na-ahụ anya na faịlụ ahụ, ọ bụghị dị ka nkwupụta gbasara ebumnuche. allow_origin uru na a colab.bat aha faịlụ ahụ na-eme ka usoro ọrụ "kesaa oge m na-agba ọsọ mpaghara m" nke na-agbasa maka Google Colab. N'agbanyeghị ebe o si bịa, ihe si na ngwugwu pụta bụ otu.
Mmetụta na nduzi maka ndị na-agbachitere
Onye na-enweta FauxUV. Ndị mmepe Windows na ndị na-agba ọsọ CI nke pip tinye otu n'ime ngwugwu ndị a. JupyterLab na-enweghị paswọọdụ dị na ya 0.0.0.0 bụ mmejuputa koodu dịpụrụ adịpụ maka onye ọ bụla nwere ike iru ọdụ ụgbọ mmiri; ọwara ahụ na-ewepụ oke "onye nwere ike iru ya". Sava ahụ na-agba ọsọ dị ka onye na-etinye ya, na-eketa faịlụ onye ọrụ ahụ, ihe nrịbama, na nzere ígwé ojii.
Ihe mere o ji dị mfe ichefu. Eriri netwọk ọ bụla na-egosi na onye ọbịa a ma ama — Astral, JupyterLab, ígwé ojii, Pinggy, Colab. Enweghị malware binary ruo hash na enweghị blob obfuscated iji kọwaa. Nnyocha aha na mbinye aka dabere na ya anaghị ebelata nke a, ọ bụ ya mere ajụjụ omume ahụ ji dị mkpa — kedu ihe itinye ngwugwu a na-eme ka igwe ahụ mee? — ọ bụ nke na-ejide ya.
Nduzi:
- Jiri oge nrụnye ọ bụla mee ihe ike -Mmezu Iwu Ngafe dị ka ihe mgbaàmà na-emebi ihe, ihe ọ bụla URL ọ na-enweta.
- Gaa na jupyter malitere na ihe efu na –ip=0.0.0.0; nchikota ahụ ekwesịghị ịpụta na ebe ọrụ ma ọ bụ onye na-agba ọsọ.
- Nyochaa maka ndị na-enye ọrụ SSH na ọwara na-apụ apụ (*.pinggy.io, *.trycloudflare.com) site na gburugburu ndị mmepe na CI.
- wụnye uv site na [isi mmalite ya](https://docs.astral.sh/uv/) ma nwee obi abụọ maka ngwugwu "onye enyemaka" nke ndị ọzọ nke na-ekpuchi ngwaọrụ dị oke mkpa ịwụnye.
- Tinye ma leleeghachi ihe ndị dabere na mmelite - ahịrị ngwugwu nwere ike ịbawanye ikike ọhụrụ nke ụdị-n'elu ụdị.



