በማጠናቀቂያ ጊዜ የሚሰራ ጃቫክዶር፣ ማቨን ማልዌር

ጃቫክዶር፡- በግንባታ ወቅት የሚሠራ የሜቨን ቅርስ እንጂ

TL; DR

የታተመው የማቨን ሴንትራል ቅርስ io.github.davidtimur:c2-lab ዘጠኝ ልቀቶችን ልኳል፣ ከእነዚህም ውስጥ ስምንቱ በማብራሪያ-ፕሮሰሰር መንገዱ ላይ ያስቀመጠውን ማንኛውንም የታችኛው ፕሮጀክት በማጠናቀር ጊዜ የርቀት መዳረሻ ክፍያ ፈጽመዋል። የመተግበሪያ ኮድ ማስገባት አልነበረበትም። ምንም የምንጭ መስመር መጥቀስ አልነበረበትም። የመጫኛ ስክሪፕት፣ ከተጫነ በኋላ ተመጣጣኝ የሆነ እና ለመሳሪያዎች የሚመረመር ምንም አይነት የህይወት ዑደት መንጠቆ አልነበረም።

የአፈጻጸም ቬክተር በጃሩ ውስጥ ያለ ነጠላ 46-ባይት ፋይል ነው፡ የጃቫ አገልግሎት-አቅራቢ ምዝገባ የተግባር ክፍልን የሚሰይም ነው። javax.annotation.processing.Processorየጃቫ ኮምፓይለሩ እንደዚህ አይነት ምዝገባዎችን በራስ-ሰር ያገኛል። አንዴ ከተገኘ፣ javac ክፍሉን እንደ መደበኛ የማጠናቀሪያ ክፍል ያንቀሳቅሳል እና ያካሂዳል። ይህ ማለት የክፍያው የሩጫ ጊዜ አካባቢ የግንባታ ማሽኑ ነው፣ በአሁኑ ጊዜ የግንባታ ማሽኑ ማድረግ ያለበትን አንድ ነገር እያደረገ ነው።

በዘጠኙ እትሞች ውስጥ የትዕዛዝ እና የቁጥጥር ቻናሉ ሦስት ጊዜ እንደገና ተገንብቷል፡ በኦፕሬተር የቀረበ የጥሪ መልሶ ማግኛ ዩአርኤል፣ ከዚያም በንግሮክ TCP ዋሻ ላይ የተገላቢጦሽ ቅርፊት፣ ከዚያም መንገዶቹ ሁለት ጊዜ የተቀየሩ የኤችቲቲፒ የሕዝብ አስተያየት መስጫ ቻናል። የመጨረሻው እትም የJVM ነባሪ ሆኖ የOp-Op TLS ትረስት አስተዳዳሪን ጭኗል፣ በኮምፑል ጊዜ ውስጥ ማንኛውንም የምስክር ወረቀት መቀበል.

ቅርሱ "C2 Lab Payload" የሚሉትን ቃላት በራሱ POM እና በMIT ፈቃድ ይዞ ነበር። በሜቨን ሴንትራል ላይ ለምናየው እና ለምናየው ጊዜ ሁሉ በቀጥታ ስርጭት ላይ ነበር። ከዚያን ጊዜ ጀምሮ ከጠቅላላው ጋር ተወግዷል io.github.davidtimur ቡድን.

አናቶሚ፡- ኮምፓየር እንደ አፈፃፀም ሞተር

የጃቫ የማብራሪያ ማቀነባበሪያ ማዕቀፍ ስላለ ቤተ-መጻሕፍት በማጠናቀሪያ ጊዜ ኮድ ማመንጨት ይችላሉ - ሎምቦክ፣ ዳገር እና ረጅም የኦአርኤም እና ተከታታይነት መሳሪያዎች ዝርዝር። አንድ ፕሮሰሰር በጃሩ ውስጥ ግልጽ ጽሑፍ ያለው ፋይል ይዞ እራሱን ያስታውቃል፡

META-INF/services/javax.annotation.processing.processor

በእያንዳንዱ የተጎዳ ልቀት ውስጥ የዚያ ፋይል ይዘት፣ ቃል በቃል እና ሙሉ፦

io.github.davidtimur.c2lab.C2ፕሮሰሰር

ፋይሉ ከ1.0.1 እስከ 1.0.8፣ md5 ባሉ ልቀቶች ላይ ባይት-ተመሳሳይ ነው። 7d2a08a5c8869a47eea9fa62487dfbe4. ልቀት 1.0.0 በውስጡ አልያዘም።

መቼ ጃቫክ በማስኬድ፣ ለእነዚህ የአገልግሎት ግቤቶች የማብራሪያ-ፕሮሰሰር ዱካውን ይቃኛል እና ያገኘውን ይጭናል። በሚጠናቀቀው ፕሮጀክት ውስጥ ምንም ነገር ፕሮሰሰሩን መጥቀስ፣ ማንኛውንም ነገር መግለጽ ወይም ማንኛውንም ነገር ማዋቀር አያስፈልገውም። በመንገዱ ላይ መገኘት በቂ ነው። ይህ JavacDoorን ከአቅርቦት ሰንሰለት ቅጦች የሚለየው ባህሪ ነው አብዛኛዎቹ መሳሪያዎች በዙሪያው የተገነቡት፡

ሥርዓተ ጥለትምላጭእንደሚታየው ይታያል
npm የመጫኛ መንጠቆnpm installscripts.postinstall በማኒፌስት ውስጥ
የፓይዘን የማስመጣት ጊዜ ክፍያየሞጁሉ የመጀመሪያ ማስመጣትበምንጭ ውስጥ የሞጁል-ደረጃ መግለጫ
ጃቫክዶርjavac በማንኛውም የታችኛው ፕሮጀክት ላይየአገልግሎት-ምዝገባ የፋይል ስም

የመጫኛ መንጠቆ በማኒፌስት ውስጥ ያለ መግለጫ ሲሆን፣ ማኒፌስት ደግሞ ማንኛውም ሰው የሚያነበው የመጀመሪያው ነገር ነው። የማስመጣት ጊዜ ክፍያ ቢያንስ ሊነበብ በሚችል ምንጭ ውስጥ ይገኛል። የአገልግሎት ምዝገባ ሁለቱም አይደሉም፡ የፋይል ስም እና አንድ ክፍል የሚሰይም አንድ መስመር ሲሆን ባህሪው በተጠናቀረ ባይትኮድ ማውጫ ውስጥ ይኖራል።

የክፍያው ክፍል ራሱ የአስተናጋጅ ቅኝትን በማውጣት ያከናውናል። የተጠናቀሩት ክፍሎች ቋሚ ገንዳዎች የሚከተሉትን ያካትታሉ / bin / sh, ማነኝ, ተቀላቀሉኝ -, በዩኒክስ መንገድ ላይ እና የተግባር ዝርዝር በዊንዶውስ መንገድ ላይ፣ ከ ጋር የሪዳይሬክት ስህተት ዥረት የልጁን የስህተት ውጤት ወደተያዘው ዥረት ለማዋሃድ። ሁለት የJSON አብነቶች ከአስተናጋጁ ውጤቶችን ይይዛሉ - የምዝገባ ምልክት፡

{"host":"%s","os":"%s","user":"%s","dir":"%s"}

ከሞላበት አካባቢ የተጨናነቀ የአስተናጋጅ ስም ትዕዛዝ እና ኦስ.ስም, የተጠቃሚ ስም, እና user.dir የስርዓት ባህሪያት እና የውጤት መልሶ ጥሪ፦

{"version":"%s","host":"%s","time":"%s","output":"%s"}

በኮምፕሬተሩ በራሱ ውጤት ውስጥ የተተዉት የሂደት ምልክቶች ባልተለመደ ሁኔታ ግልጽ ናቸው፡ [C2] የማጠናቀቂያ ጊዜ አፈፃፀም ተጠናቋል, [C2] የመልሶ ጥሪ ተልኳል → HTTP , [C2] ቅርፊት ከ ጋር ተገናኝቷል .

ዘጠኝ ልቀቶች፣ ሶስት የC2 ትውልዶች

የተለቀቁት ቅጂዎች የአንድ ክፍያ ጭነት ዘጠኝ ቅጂዎች አይደሉም። የድግግሞሽ ምዝግብ ማስታወሻ ናቸው፣ እና በቅደም ተከተል ማንበብ የማድረሻ ቬክተሩ ሳይስተካከል ሲቀር ቻናሉ እንደገና እየተገነባ መሆኑን ያሳያል።

መልቀቅበማጠናቀቂያ ላይ በራስ-ሰር ይፈጸማልሰርጥ
1.0.0አይ (የአገልግሎት ፋይል የለም)በኦፕሬተር የቀረበ የመልሶ ጥሪ ዩአርኤል ብቻ
1.0.1አዎ (ቬክተር አስተዋውቋል)በኦፕሬተር የቀረበ የመልሶ ጥሪ ዩአርኤል
1.0.2አዎየተገላቢጦሽ ቅርፊት፣ የ TCP ዋሻ
1.0.3አዎየኤችቲቲፒ ቻናል፣ /register /cmd /out
1.0.4አዎየኤችቲቲፒ ቻናል፣ /register /cmd /out
1.0.5አዎየኤችቲቲፒ ቻናል፣ /register /poll /out
1.0.6አዎየኤችቲቲፒ ቻናል፣ /register /poll /out
1.0.7አዎየኤችቲቲፒ ቻናል፣ /register /cmd
1.0.8አዎየኤችቲቲፒ ቻናል + የቲኤልኤስ ማረጋገጫ ተሰናክሏል

በዚያ ሰንጠረዥ ውስጥ ሦስት ዝርዝሮችን ማንሳት ተገቢ ነው፣ ምክንያቱም እያንዳንዳቸው የጥንታዊ ቅርሱ ስብስብ እንዴት መነበብ እንዳለበት ስለሚቀይሩ።

ቬክተሩ በ1.0.1 ላይ ይደርሳል እንጂ በ1.0.2 ላይ አይደለም። ልቀት 1.0.0 ተመሳሳይ የስለላ እና የጥሪ መልሶ ማግኛ ሎጂክ ይይዛል ነገር ግን የአገልግሎት ፋይል እና የማብራሪያ ሂደት ማስመጣት የለውም፤ የሆነ ነገር ከጠራው ብቻ ነው የሚሰራው። ከ1.0.1 የአገልግሎት ፋይል አለ እና የተጠናቀሩት ክፍሎች ያስመጣሉ javax.annotation.processing.SupportedSource Version. ሁለቱን ቲኬት የተደረገባቸውን ልቀቶች - 1.0.0 እና 1.0.2 - የሚያወዳድር ማንኛውም ግምገማ የሆነ ነገር እንደተለወጠ በትክክል ይደመድማል፣ ነገር ግን የት እንዳለ በትክክል አይለይም።

የተገላቢጦሽ ቅርፊቱ በአንድ ልቀት ውስጥ ይገኛል። ልቀት 1.0.2 ይዟል 0.tcp.ngrok[.]io፣ የሎግ መስመሩ [C2] ሼል ከ0.tcp.ngrok[.]io:19823 ጋር ተገናኝቷል፣ በይነተገናኝ ባነር c2-ሼልእና የፍሬም ተርሚናተር __መጨረሻ__. 1.0.3 ከዚያ በኋላ የሚለቀቁት ልቀቶች ከእነዚህ ውስጥ አንዳቸውንም አልያዙም እና በምትኩ ወደ HTTPS አስተናጋጅ ይደርሳሉ። የቲኬት ልቀቶችን ብቻ የሚሰይም የማውረጃ ጥያቄ በስድስት በኋላ በተለቀቁት ልቀቶች ላይ ከሚገኘው የቀጥታ HTTP ቻናል ሲወጣ የሞተ የቲሲፒ የመጨረሻ ነጥብን ይጠቅሳል።

የመጨረሻው ልቀት የትራንስፖርት ማረጋገጫን ያስወግዳል። ልቀት 1.0.8 ተግባራዊ ክፍልን ያክላል javax.net.ssl.X509TrustManager የሰርተፊኬት ማረጋገጫ ዘዴዎቹ ምንም አያደርጉም፣ ሁልጊዜም እውነተኛ የአስተናጋጅ ስም ማረጋገጫ በኩል የተመዘገበ setDefaultHostnameVerifier, እና ሁሉምን ታመን ሁለቱንም እንደ JVM ነባሪዎች የሚጭን መደበኛ ተግባር። ውጤቱም ለዚያ ማጠናከሪያ ቀሪ ክፍል፣ JVM ከማንኛውም አስተናጋጅ ማንኛውንም የምስክር ወረቀት ይቀበላል - ለክፍያ ጭነቱ የራሱ ትራፊክ ብቻ ሳይሆን ግንባታው በኋላ ላይ ከTLS በላይ ለሚያደርገው ለማንኛውም ነገር።

የኤችቲቲፒ ቻናል፣ በሚጠቀሙት ስድስቱም ልቀቶች ውስጥ፣ በአንድ አስተናጋጅ ፊት ለፊት ይገኛል፡ tableful-fervor-crazed.ngrok-free[.]devእያንዳንዱ ጥያቄ ራስጌውን ይይዛል ngrok-skip-browser-warning፣ ይህም ነፃ የንግሮክ ዋሻዎች ለአሳሾች የሚያቀርቡትን የመሃል ገጽን ያደናቅፋል። የመንገድ ስብስቦች በተለቀቁት ላይ ይቀያየራሉ — /ውጣ በ1.0.7 ይጠፋል፣ እና /ሴሜድ ከ ጋር ይለዋወጣል /የሕዝብ አስተያየት መስጫ - ግን አስተናጋጁ ፈጽሞ አይለወጥም።

ራስን ማግለል ይናገራል

ከ1.0.1 ጀምሮ ያለው እያንዳንዱ POM ለቅርሱ ግንባታ የኮምፓየር ክርክር ያዘጋጃል፡

-ፕሮክ:ምንም

ያ ባንዲራ የማብራሪያ ሂደትን ያሰናክላል። እዚህ ያለው ተጽእኖ ቅድመ ነውcisሠ፡ ፕሮሰሰሩን የያዘው ፕሮጀክት ራሱ ሲጠናቀር ፕሮሰሰሩ አይሰራም።

ይህ ባንዲራ ሙሉ በሙሉ ተራ አጠቃቀሞች አሉት። የማብራሪያ ፕሮሰሰር የሚያደርስ ፕሮጀክት ብዙውን ጊዜ በቡትስትራፕ ወቅት ያንን ፕሮሰሰር ለራሱ ከመተግበር መቆጠብ አለበት፣ እና የግንባታ መሣሪያ ሰነዶች ይህንን በትክክል ይመክራሉ። ብቻውን ምንም አያረጋግጥም።

ሆኖም ግን፣ ፕሮሰሰሩ ከሚያደርገው ጋር ተዳምሮ፣ የተለየ አለመመጣጠንን ይገልጻል፡ ኮዱ የሚተገበረው ቅርሱን በሚገነባው ማሽን ላይ ሳይሆን ከቅርንጫፉ ጋር በሚቃረኑት ሰዎች ማሽኖች ላይ ነው። ባንዲራው የአገልግሎት ፋይሉን በሚያስተዋውቀው ተመሳሳይ ልቀት - 1.0.1 - እና ከዚያ በኋላ በእያንዳንዱ ልቀት ላይ ይታያል። “የኮምፓክት-ጊዜ አፈጻጸም የሚጀመርበት ልቀት” እና “የኮምፓክት-ጊዜ አፈጻጸም በአካባቢው የሚጠፋበት ልቀት” መካከል ያለው ትስስር በቅሪተ አካል ስብስብ ውስጥ በጣም ጠቃሚው የትንታኔ ምልክት ሲሆን ምንም ነገር ሳይፈርስ በቀላል ጽሑፍ POM ውስጥ ይታያል።

ውጤቱን አስተውለን እዚያው እናቆማለን። ባንዲራው ለምን እንደተሰቀለ በቅሪተ አካላቱ ውስጥ ምንም ነገር አያሳይም።

አንድ ተጨማሪ የሜታዳታ ክፍል መጥቀስ የሚገባው ሲሆን፣ በአብዛኛው ለማስወገድ። POM ፕሮጀክቱን “C2 Lab Payload” ብሎ ሰይሞታል፣ “C2 lab payload ቅርስ” ሲል ገልጾታል፣ እና ለ MIT ፈቃድ ይሰጣል። እንዲህ ዓይነቱ ራስን ማግለል አንዳንድ ጊዜ አንድ ፓኬጅ የምርምር ሙከራ መሆኑን እንደ ማስረጃ ይቀርባል።cisከቀጥታ ስጋት ይልቅ፣ እና አልፎ አልፎ ማንበብ ትክክል ነው - ሊደረስበት የሚችል መሠረተ ልማት የሌለው የተገለጸ ካናሪ ከዚህ የተለየ ነገር ነው። እዚህ ላይ አይተገበርም። ወደ ይፋዊ ማከማቻ የታተመ ተግባራዊ ተከላ፣ በማንኛውም ሸማች ሊደረስበት የሚችል፣ በዘጠኝ ልቀቶች ላይ ሶስት ጊዜ እንደገና የተገነባ የውጪ መሠረተ ልማት ያለው፣ ሜታዳታው ምን ብሎ ቢጠራው የቀጥታ አቅም ነው። በPOM ውስጥ ያለው ስም በእሱ ላይ በሚጠናቀር ማሽን ላይ ስለሚሆነው ነገር ምንም ለውጥ አያመጣም።

የግንባታ ማሽኖች አመልካቾች

የግንባታ አስተናጋጅ ከዚህ ቅርስ ጋር ከተጣመረ፣ ማስረጃው በዲስክ ላይ ባለው ቋሚ ኢምፕላንት ውስጥ ሳይሆን በግንባታ ምዝግብ ማስታወሻዎች እና በኔትወርክ ቴሌሜትሪ ውስጥ ይቀመጣል - የክፍያ ጭነቱ በኮምፓይለሩ ሂደት ውስጥ ይሰራል እና ከእሱ ጋር ይወጣል።

በማሰሮው ውስጥ ወይም በአካባቢያዊ ማከማቻ መሸጎጫ ውስጥ

  • META-INF/services/javax.annotation.processing.Processor በመሰየም ላይ io.github.davidtimur.c2lab.C2Processor
  • የአገልግሎት ፋይል md5 7d2a08a5c8869a47eea9fa62487dfbe4
  • በታች ያሉ ክፍሎች io/github/davidtimur/c2lab/: C2Processor, C2Task, Taskእና በ1.0.8 ውስጥ ውስጣዊ ክፍል Task$1

በግንባታ ውጤት ውስጥ

  • [C2] compile-time execution complete
  • [C2] callback sent → HTTP
  • [C2] callback failed:
  • [C2] shell connected to
  • በይነተገናኝ ባነር c2-shellየፍሬም ተርሚናተር __END__

በሂደት ላይ ያለ ቴሌሜትሪ

  • javac እንደ ወላጅ /bin/sh -c (ዩኒክስ) ወይም የዊንዶውስ ትዕዛዝ ተርጓሚ
  • የህፃናት ትዕዛዞች whoami, uname -a, pwd (ዩኒክስ) ወይም tasklist (ዊንዶውስ) በማጠናቀር ደረጃ የተደገፈ

በኔትወርክ ቴሌሜትሪ ውስጥ

  • ወደ TCP የሚወጣው ወደ 0.tcp.ngrok[.]io:19823 (ልቀት 1.0.2)
  • HTTPS ወደ tableful-fervor-crazed.ngrok-free[.]dev, መንገዶች /register, /cmd, /poll, /out (ከ1.0.3 እስከ 1.0.8 የሚለቀቁ)
  • የጥያቄ ራስጌ ngrok-skip-browser-warning: true
  • የአካል ማዛመጃዎችን ይጠይቁ {"host":...,"os":...,"user":...,"dir":...} or {"version":...,"host":...,"time":...,"output":...}

በማዋቀር ላይ

  • የአካባቢ ተለዋዋጮች CALLBACK, CALLBACK_URLየስርዓት ባህሪ callback.url

የአሳታሚ ሜታዳታ

  • ቡድን io.github.davidtimur; የአታሚ አድራሻ davudboi999@gmail[.]com፤ የመፈረሚያ ቁልፍ E520C345EF94423D

የተለቀቀውን 1.0.8 የሚያሄድ ግንባታ አንድ ተጨማሪ ፍተሻ ያስፈልገዋል። ያ ልቀት እንደ JVM-wide ነባሪ የተፈቀደለት የትረስት አስተዳዳሪን ስለሚጭን፣ በኋላ ላይ በተመሳሳይ JVM ውስጥ የተሰራ ማንኛውም የTLS ግንኙነት - የጥገኝነት ጥራት፣ የቅርስ ጭነት፣ የማሰማሪያ ደረጃ - ያለ የምስክር ወረቀት ማረጋገጫ ይቀጥላል። ከዚያ መስኮት የሚመጣ ትራፊክ የተረጋገጠ እንደሆነ ሊታሰብ አይገባም።

የተቀናጁ ቅርሶች ለምን የተለየ ቅኝት ያስፈልጋቸዋል

ጃቫክዶር ጠቃሚ የሙከራ ጉዳይ ነው ምክንያቱም በአንድ ጊዜ ሁለት የተለመዱ ግምቶችን ስለሚያሸንፍ እና ሁለቱም ውድቀት ለማንኛውም ሻጭ የመሳሪያ መሳሪያዎች የተለየ አይደለም።

የመጀመሪያው ግምት አደገኛ ኮድ እራሱን በማኒፌስት ውስጥ እንደሚያሳውቅ ነው። ብዙ የአቅርቦት ሰንሰለት መሳሪያዎች በህይወት ዑደት ዙሪያ የተደራጁ ናቸው hooksምክንያቱም ለ npm እና PyPI ድርጊቱ ብዙውን ጊዜ የሚሆነው እዚያ ነው። JavacDoor መንጠቆ የለውም። ቀስቅሴው ስሙ የጃቫ በይነገጽ የሆነ እና ይዘቱ የክፍል ስም የሆነ የአገልግሎት-ምዝገባ ፋይል ነው። ያንን በስታቲስቲክስ ለመያዝ ማከም አለብዎት META-INF/services/javax.annotation.processing.processor እንደ የአፈጻጸም መግቢያ ነጥብ፣ ከ ድህረ-ጭነት ስክሪፕት — ከዚያም የተሰየመውን ክፍል ወደ ባይትኮድ ይከተሉ። ኢኮሲስተምስ የዚህ ቅርፅ የራሳቸው የራስ-ግኝት ዘዴዎች አሏቸው፣ እና እያንዳንዱ መሳሪያ እንደ አንድ ቢዘረዝርም ባይዘረዝርም የመግቢያ ነጥብ ነው።

ሁለተኛው ግምት ሕብረቁምፊዎች በምንጭ ፋይሎች ውስጥ ይኖራሉ የሚለው ነው። ለአንድ ማሰሮ፣ የመጨረሻ ነጥቦች፣ የሼል ትዕዛዞች፣ የJSON አብነቶች እና የሎግ ማርከሮች ሁሉም በቋሚዎቹ የ .ክፍል ፋይሎች። ጽሑፍን የሚደግፍ መሳሪያ ምንም ነገር አያገኝም - ሕብረቁምፊዎቹ ስለተደበቁ ሳይሆን የጽሑፍ ቅኝት የማይተነተን በተዋቀረ የሁለትዮሽ መያዣ ውስጥ ስለሆኑ። በዚህ ልጥፍ ውስጥ ያለው እያንዳንዱ የአውታረ መረብ አመልካች የመጣው ከቋሚ-ገንዳ ትንተና ነው። ከእነዚህ ውስጥ አንዱ ሙሉ በሙሉ የተቀረጸ ነው። https:// ዩአርኤል በክፍል ፋይል ውስጥ በግልጽ የሚታይ፤ የጠርሙሱን ሊነበብ የሚችል ይዘት የጽሑፍ ቅኝት አሁንም አያሳየውም። እዚህ ላይ ምንም አይነት ኮድ ማስቀመጥ አይቻልም፣ ለማንበብ የሚያስችል የኮንቴይነር ቅርጸት ብቻ ነው።

ሁለቱም ክፍተቶች ተመሳሳይ ቅርፅ አላቸው፡ የቅርስ ቅርጸት እንደ የተገለጹ ትርጉሞች ያሉት መዋቅር ሳይሆን እንደ ፋይሎች ከረጢት ተደርጎ ይታይ ነበር። ማስተካከያው ማራኪ አይደለም - መያዣውን ይተንትኑ፣ የስነ-ምህዳሩን የራስ-ግኝት የመግቢያ ነጥቦችን ይዘርዝሩ እና በተጠናቀረ ኮድ ይከተሉዋቸው። በተለይ ለግንባታ ጊዜ ቬክተሮች፣ ሶስተኛው ቼክ ርካሽ እና በሚያስደንቅ ሁኔታ የምርመራ ነው፡ አንድ ቅርስ ለሸማቾች የሚያደርገውን ነገር ከእራሱ ነፃ ከሚያደርገው ነገር ጋር ያወዳድሩ። የኮምፕሌክስ ጊዜ ፕሮሰሰርን የሚመዘግብ እና በተመሳሳይ ጊዜ ለራሱ ግንባታ የኮምፕሌክስ ጊዜ ሂደትን የሚያሰናክል ቅርስ በሁለት ግልጽ የጽሑፍ POM መስመሮች ስለራሱ የሆነ ነገር ነግሮዎታል።

ዛሬ የማቨን ቅርሶችን ለሚጠቀሙ ቡድኖች፣ ሶስት ተግባራዊ እርምጃዎች ይከተላሉ፡

  • የማብራሪያ-ፕሮሰሰር መንገዱን እንደ የአፈጻጸም ወሰን አድርገው ይመለከቱት። እዚያ ላይ የሚገኙ ጥገኝነቶች በግንባታዎ ውስጥ ኮድ ያካሂዳሉ። አንድ ግንባታ የማብራሪያ ሂደት የማያስፈልገው ከሆነ፣ -ፕሮክ:ምንም እዚህ አካባቢ እንደነበረው ሁሉ በመከላከያ ረገድ ጠቃሚ ነው፤ እንዲህ ከሆነ ደግሞ፣ ከኮምፕሌክስ ክላስፓዝ ከመውረስ ይልቅ ፕሮሰሰሩን በግልጽ ይሰኩት።
  • የሎግ ኮምፓየር ንዑስ ሂደቶች። ቅርፊት የሚፈጥር የኮምፕሌክስ እርምጃ በአብዛኛዎቹ ፕሮጀክቶች ውስጥ ያልተለመደ እና በቀላሉ ንቁ ነው።
  • ሜታዳታን እንደ ምስክርነት አትቁጠሩት። "ላብ"፣ "ሙከራ"፣ "ክፍያ" እና "PoC" በጥቅል ስም ወይም መግለጫ ውስጥ ያሉ የወሰን ገደቦች አይደሉም። ተደራሽነት እና ባህሪ ናቸው።

ቅርሱና መላው ቡድኑ ተወግደዋል Maven ሪፖርታችንን ተከትሎ ማዕከላዊ፤ የቅርስ መንገዱም ሆነ የቡድን መንገዱ አሁን 404 ይመልሳሉ፣ እና ማዕከላዊው ኢንዴክስ ምንም አይነት ተዛማጅ መጋጠሚያዎችን ሪፖርት ያደርጋል። ይህ ይህንን ቅርስ ይዘጋል። የጃቫ ኮምፓለር የተመዘገበ ባህሪ የሆነውን እና ማሰሮ ለሚያትም ለማንኛውም ሰው የሚገኝ ቬክተርን አይዘጋውም።

ማጣቀሻዎች

ይህ ጽሑፍ ምንም አይነት የውጭ ምንጮችን አይጠቅስም። ሁሉም ግኝቶች ከመወገዱ በፊት ከ Maven Central የተገኙትን ዘጠኝ የታተሙ ማሰሮዎችን በቀጥታ የተመለከተ የማይንቀሳቀስ ትንተና ናቸው። ከቅርሶቹ ውስጥ ምንም ኮድ በየትኛውም ጊዜ አልተተገበረም።

sca-tools-software-composition-analyse-tools
የሶፍትዌር አደጋዎችዎን ቅድሚያ ይስጡ፣ ያስተካክሉ እና ይጠብቁ
ነፃ መለያ ያግኙ።
ምንም ዱቤ ካርድ አያስፈልግም።

የሶፍትዌር ልማትዎን እና አቅርቦትዎን ደህንነት ይጠብቁ

ከ Xygeni Product Suite ጋር