„በsandbox ውስጥ አስኪደው“ አንድ መመሪያ ይመስላል። በተግባር ሰዎች በዚህ ከአራት የተለመዱ ድንበሮች አንዱን ማለታቸው ነው፣ እነሱም በጣም የተለያዩ ነገሮችን ያስቆማሉ። የተሳሳተውን መምረጥ ወይ ለአደጋ ያጋልጥዎታል፣ ወይ እያንዳንዱን ማስኬጃ ከሚያስፈልገው በላይ ቀርፋፋና ውድ ያደርገዋል።
ይህ ንጽጽር ኮዱ በእርግጥ የማይታመን እንደሆነ ያስባል፦ በቋንቋ ሞዴል የተጻፈ፣ በተጠቃሚ የቀረበ፣ ወይም ከማያውቁት ሰው pull request የመጣ። እርስዎ ራስዎ የጻፉት ኮድ የተለየ ፍላጎት አለው።
ምን ሊበላሽ ይችላል
ድንበሮችን ከማወዳደራችን በፊት ለምን እንደሆኑ መጥቀስ ይጠቅማል። የማይታመን ኮድ የሚከተሉትን ሊያደርግ ይችላል፦
- የማይገባውን ማንበብ፦ የአካባቢ ተለዋዋጮች፣ የSSH ቁልፎች፣ በመነሻ ማውጫዎ ያሉ ፋይሎች፣ የደመና ሜታዳታ endpoints።
- ሀብቶችን ማሟጠጥ፦ ማለቂያ የሌለው ዙር፣ ማሽኑ እስኪቆም ድረስ fork፣ ዲስኩን መሙላት።
- ኔትወርኩን አላግባብ መጠቀም፦ ሌሎች አስተናጋጆችን መቃኘት፣ አይፈለጌ መልዕክት መላክ፣ ክሪፕቶ ማውጣት፣ የውስጥ አገልግሎቶችዎን መጥራት።
- መቆየት፦ ከስራው በላይ የሚቆይ cron job ወይም አገልግሎት መጫን።
- ማምለጥ፦ በታችኛው ንብርብር ያለ ስህተትን ተጠቅሞ በአስተናጋጁ ራሱ ላይ ኮድ ማስኬድ።
ከዚህ በታች ያለው እያንዳንዱ ደረጃ ከእነዚህ አንዳንዶቹን ያስተናግዳል፣ ሌሎቹን አያስተናግድም።
ደረጃ 1፦ ሂደት
በጣም ቀላሉ sandbox የልጅ ሂደት ነው፦ ከጊዜ ገደብ ጋር subprocess.run፣ ምናልባት በተለየ ተጠቃሚ ስር፣ ጥንቁቅ ከሆኑ ደግሞ ከሀብት ገደቦችና ከseccomp ማጣሪያ ጋር።
ያስቆማል፦ ቁጥጥር የሌለው ጊዜን (የጊዜ ገደቡ)፣ የሀብት መሟጠጥን በከፊል (ገደቦቹ)፣ አንዳንድ አደገኛ የሲስተም ጥሪዎችን (seccomp)። አያስቆምም፦ ያ ተጠቃሚ ሊያነበው የሚችለውን ሁሉ ማንበብ፣ የኔትወርክ መዳረሻ፣ ተጠቃሚው በሚጽፍበት በማንኛውም ቦታ መቆየት፣ እና ማንኛውንም የከርነል ስህተት። የተለመደ ውድቀት፦ ኮዱ ሊነበብ እንደሚችል የረሱትን ፋይል ያነብባል፣ ወይም „የተገደበ“ የቋንቋ አስተርጓሚ የማምለጫ በር እንዳለው ይታወቃል። ታሪክ ያልቆሙ በቋንቋ ውስጥ ባሉ sandboxes የተሞላ ነው።
የመነሻ ጊዜው በተግባር ዜሮ ነው። ለጻፉት ኮድ ጥሩ ነው፤ ላልጻፉት ኮድ ግን ድንበር አይደለም።
ደረጃ 2፦ ኮንቴይነር
በኮንቴይነር ውስጥ namespaces ለኮዱ የራሱን የፋይሎች፣ የሂደቶችና የኔትወርክ እይታ ይሰጡታል፤ cgroups CPUን እና ማህደረ ትውስታን ይገድባሉ፤ የተወገዱ capabilities እና seccomp ከከርነሉ ሊጠይቀው የሚችለውን ያጠብባሉ።
ያስቆማል፦ የአስተናጋጁን ፋይሎች ማንበብ (ካልተገጠሙ በስተቀር)፣ ሌሎች ሂደቶችን ማየት፣ ያልተገደበ የሀብት አጠቃቀም፣ እና ኮንቴይነሩ ከዚያ ከተጣለ አብዛኛውን የመቆየት ችግር። አያስቆምም፦ በጋራ የአስተናጋጅ ከርነል ውስጥ ያለ ስህተት። በማሽኑ ላይ ያለ እያንዳንዱ ኮንቴይነር ከአንድ ከርነል ጋር ይነጋገራል፣ ስለዚህ ሊደረስበት የሚችል የከርነል ተጋላጭነት መውጫ ነው። የተለመደ ውድቀት፦ እንግዳ exploits ሳይሆን ውቅረት። privileged ኮንቴይነር፣ ውስጥ የተገጠመ የcontainer runtime ሶኬት፣ „ለማረሚያ ብቻ“ የበራ የአስተናጋጅ ኔትወርክ። እያንዳንዳቸው ድንበሩን በጸጥታ ያስወግዳሉ።
የመነሻ ጊዜው ሚሊሰከንዶች ነው። የተጠናከሩ ዓይነቶችም አሉ፣ የሲስተም ጥሪዎችን ወደ አስተናጋጁ ከመድረሳቸው በፊት የሚጠልፉ የተጠቃሚ ቦታ ከርነሎችን ጨምሮ፣ በፍጥነትና በተኳኋኝነት የተወሰነ ዋጋ። ለሚያምኗቸው ሰዎች ኮድ፣ በደንብ የተዋቀረ ኮንቴይነር ምክንያታዊ ነባሪ ነው።
ደረጃ 3፦ microVM
microVM እንደ ሙሉ ቨርቹዋል ማሽን በሃይፐርቫይዘር ስር የራሱን ከርነል ያስኬዳል፣ ነገር ግን የተመሰለው ሃርድዌር ከሞላ ጎደል ተወግዷል። Firecracker በጣም የታወቀው ምሳሌ ነው።
ያስቆማል፦ ኮንቴይነር የሚያስቆመውን ሁሉ፣ በተጨማሪም የጋራ ከርነል ችግርን። አስተናጋጁን ለመድረስ ኮዱ ሃይፐርቫይዘሩን ወይም ከጥቂት ቨርቹዋል መሳሪያዎች አንዱን መስበር አለበት፣ ይህም ከከርነል የሲስተም ጥሪ በይነገጽ እጅግ ያነሰ ገጽ ነው። አያስቆምም፦ የሰጡትን ነገር አላግባብ መጠቀም። ክፍት ወጪ ትራፊክ አሁንም አላግባብ ሊውል ይችላል፤ ያስገቡት ምስጢር አሁንም ሊፈስ ይችላል። የተለመደ ውድቀት፦ ማግለል ሳይሆን ፖሊሲ። አንድ ሰው „ሙከራዎቹ እንዲሰሩ“ የምርት ቶከን ያስተላልፋል፣ ወይም ወጪ ትራፊክ በማያስፈልገው የስራ ጫና ላይ ያልተገደበ ይተዋል።
የመነሻ ጊዜው ከሰከንድ ክፍልፋይ እስከ አንድ ሰከንድ ገደማ ነው፣ ከጥቂት ሜጋባይት ተጨማሪ ጫና ጋር። ለእያንዳንዱ ስራ አንድ ፈጥሮ ከዚያ ለመሰረዝ በቂ ፈጣን ነው፣ ይህም የመቆየት ችግርንም ይፈታል፦ ተመልሶ የሚመጣበት ምንም ነገር አይቀርም።
ደረጃ 4፦ ሙሉ ቨርቹዋል ማሽን
የተለመደ ቨርቹዋል ማሽን፣ ወይም VPS፣ ከmicroVM ጋር ተመሳሳይ ዓይነት ድንበር አለው፦ የሃርድዌር ቨርቹዋላይዜሽንና ሃይፐርቫይዘር። ልዩነቱ በዙሪያው ባለው ሁሉ ነው፦ ሙሉ የመሳሪያ ሞዴል፣ ሙሉ ስርዓተ ክወና፣ ከፈለጉ የሕዝብ IP፣ እና በቀናት ወይም በወራት የሚለካ የሕይወት ዑደት።
ያስቆማል፦ ከmicroVM ጋር ተመሳሳይ የችግር ዓይነቶችን፣ ተጨማሪ ሃርድዌር ስለሚመሰል በትንሹ ትልቅ የጥቃት ገጽ። አያስቆምም፦ የራሱን የኔትወርክ ማንነት አላግባብ መጠቀም። የሕዝብ IP ያለው እና ጎጂ ኮድ የሚያስኬድ ቨርቹዋል ማሽን የራሱን IP የእገዳ ዝርዝር ውስጥ ያስገባል፣ ያው IP ኢሜልዎንም የሚልክ ከሆነ ይህ ችግር ነው። (ይህ ቀድሞ ከተከሰተ፣ IPዎ የእገዳ ዝርዝር ውስጥ ሲገባ ምን ማድረግ እንዳለብዎት ይመልከቱ።) የተለመደ ውድቀት፦ ከሚገባው በላይ ይኖራል። ለአንድ ሙከራ የተፈጠረ ቨርቹዋል ማሽን ምስክርነቶችንና ሁኔታን ያከማቻል፣ ቀስ በቀስም ሊጠብቀው የነበረው የሚታመን ማሽን ይሆናል።
የመነሻ ጊዜው ከአስር ሰከንዶች እስከ ደቂቃዎች ነው፣ ክፍያውም ብዙውን ጊዜ ወርሃዊ ነው። ይህ ገቢ ፖርቶች ለሚፈልግ ረጅም ጊዜ ለሚሄድ አገልግሎት ትክክለኛው ቅርጽ ነው፣ ለ20 ሰከንድ ኮድ ማስኬጃ ግን የተሳሳተው ቅርጽ።
ንጽጽሩ
| ሂደት | ኮንቴይነር | microVM | ሙሉ ቨርቹዋል ማሽን | |
|---|---|---|---|---|
| የራስ ከርነል | የለም | የለም | አለ | አለ |
| ዋና ድንበር | የተጠቃሚ ፈቃዶች | namespaces + የጋራ ከርነል | ሃይፐርቫይዘር፣ በጣም ትንሽ የመሳሪያ ሞዴል | ሃይፐርቫይዘር፣ ሙሉ የመሳሪያ ሞዴል |
| የመነሻ ጊዜ | ~0 | ms | ~0.1–1 ሰ | 10 ሰ – ደቂቃዎች |
| ተጨማሪ ጫና | የለም | ትንሽ | ጥቂት MiB | አስር–መቶ MiB |
| ከእያንዳንዱ ስራ በኋላ መጣል | ቀላል | ቀላል | ቀላል | ቀርፋፋ፣ ውድ |
| ገቢ ፖርቶች / የሕዝብ IP | የአስተናጋጁ | የአስተናጋጁ | ብዙውን ጊዜ የለም | አለ |
መምረጥ
- እርስዎ ወይም ቡድንዎ የጻፋችሁት ኮድ፦ ሂደት ወይም ኮንቴይነር በቂ ነው።
- ለራስዎ ቅርንጫፎች ቀጣይነት ያለው ውህደት (CI)፦ በእርስዎ runner ላይ ኮንቴይነር።
- በኤጀንት የተፈጠረ ኮድ፣ የተጠቃሚ ማቅረቢያዎች፣ የውጭ pull requests፦ ለእያንዳንዱ ስራ አንድ microVM፣ ከዚያ የሚሰረዝ።
- ግንኙነቶችን መቀበል ያለበት ወይም ለሳምንታት የሚሄድ የማይታመን አገልግሎት፦ የራሱ IP ያለው የተለየ ቨርቹዋል ማሽን፣ ምስክርነቶችዎን ከሚይዝ ወይም ኢሜልዎን ከሚልክ ማንኛውም ነገር የራቀ።
የትኛውንም ቢመርጡ፣ ሁለት ደንቦች በላዩ ላይ ይተገበራሉ፦ ለኮዱ ደራሲ የማይሰጡትን ምንም ነገር ውስጥ አያስቀምጡ፣ እና ኔትወርኩ ምን ማድረግ እንደሚችል አውቀው ይወስኑ።
ምርቶቻችን የት ናቸው
ለደረጃ 3 ኮድ sandboxes እናስኬዳለን፦ በአንድ ሰከንድ ገደማ የሚጀምሩ Firecracker microVM፣ ከወጪ ኢንተርኔት ጋር፣ ያለ ገቢ ፖርቶች እና በሰከንድ ክፍያ። ከላይ ያለውን ሦስተኛውን ነጥብ በትክክል ያነጣጥራሉ፤ የMCP ጥበቃዎች ገጽ ኤጀንት በእነሱ ምን ማድረግ እንደሚችል እንዴት እንደሚገድቡ ያብራራል። ለደረጃ 4፣ እንደ AI agent ዕቅድ ያለ VPS ሙሉ ማሽን በወር ይሰጥዎታል። በለAI ኤጀንቶች sandbox ውስጥ ያሉት ምሳሌዎች የmicroVM ስልቱን ከጅምሩ እስከ መጨረሻው ያሳያሉ፣ AI ኤጀንቶች ከመሠረተ ልማት የሚፈልጉት ደግሞ ማግለልን ከበርካታ መስፈርቶች እንደ አንዱ ይመለከታል።
አስተያየቶች
እስካሁን አስተያየቶች የሉም። መጀመሪያ ይሁኑ።