በሚሊዮን የሚቆጠሩ ሁለትዮሽ በኋላ። ሊኑክስ እንዴት ጠነከረ

በሚሊዮን የሚቆጠሩ ሁለትዮሽ በኋላ። ሊኑክስ እንዴት ጠነከረTL; DR. በዚህ ጽሑፍ ውስጥ በአምስት ታዋቂ የሊኑክስ ስርጭቶች ላይ ከሳጥኑ ውጭ የሚሰሩትን የማጠናከሪያ እቅዶችን እንመረምራለን ። ለእያንዳንዳቸው ነባሪውን የከርነል ውቅረት ወስደን ሁሉንም ፓኬጆችን ጫንን እና በተያያዙት ሁለትዮሽ ውስጥ የደህንነት መርሃግብሮችን መረመርን። የታሰቡት ስርጭቶች OpenSUSE 12.4፣ Debian 9፣ CentOS፣ RHEL 6.10 እና 7፣ እንዲሁም ኡቡንቱ 14.04፣ 12.04 እና 18.04 LTS ናቸው።

ውጤቶቹ የሚያረጋግጡት እንደ ካናሪዎች መደራረብ እና ከቦታ ነጻ የሆነ ኮድን የመሳሰሉ መሰረታዊ መርሃግብሮች እንኳን በሁሉም ሰው ገና አልተቀበሉም። እንደ ቁልል ግጭት ያሉ ተጋላጭነቶችን ከመከላከል አንፃር በጥር ወር ከታተመ በኋላ ትኩረት ሰጥተው ሲወጡ ሁኔታው ​​ለአቀናባሪዎች የከፋ ነው። ስለ ሥርዓታዊ ድክመቶች መረጃ. ግን ሁሉም ነገር በጣም ተስፋ አስቆራጭ አይደለም. ከፍተኛ ቁጥር ያላቸው ሁለትዮሽዎች መሰረታዊ የጥበቃ ዘዴዎችን ይተገብራሉ, እና ቁጥራቸው ከስሪት ወደ ስሪት ያድጋል.

ግምገማው እንደሚያሳየው ትልቁ የጥበቃ ዘዴዎች በኡቡንቱ 18.04 በስርዓተ ክወና እና በአፕሊኬሽን ደረጃዎች ሲተገበሩ ዴቢያን 9 በመቀጠል። በጣም ጥቅጥቅ ባለው የነባሪ ጥቅሎች ስብስብ የበለጠ በስፋት ጥቅም ላይ ይውላል።

መግቢያ

ከፍተኛ ጥራት ያለው ሶፍትዌር ማረጋገጥ አስቸጋሪ ነው. ለስታቲክ ኮድ ትንተና እና ለተለዋዋጭ የሩጫ ጊዜ ትንተና እጅግ በጣም ብዙ የተሻሻሉ መሳሪያዎች፣ እንዲሁም በአቀናባሪዎች እና ፕሮግራሚንግ ቋንቋዎች እድገት ላይ ከፍተኛ እድገት ቢያሳይም ዘመናዊ ሶፍትዌሮች አሁንም በአጥቂዎች የሚበዘብዙ ተጋላጭነቶች አሉ። የቅርስ ኮድን ባካተቱ ሥነ-ምህዳሮች ውስጥ ያለው ሁኔታ የከፋ ነው። በእንደዚህ ዓይነት ሁኔታዎች ውስጥ፣ ሊበዘበዙ የሚችሉ ስህተቶችን የማግኘት ዘላለማዊ ችግር ብቻ ሳይሆን፣ በጥብቅ ኋላ ቀር የተኳኋኝነት ማዕቀፎች የተገደበን ነን፣ ይህም ብዙውን ጊዜ የተገደበ፣ ወይም እንዲያውም የከፋ፣ የተጋላጭ ወይም የጭካኔ ኮድ እንድንጠብቅ ይፈልጋል።

ፕሮግራሞችን የመከላከል ወይም የማጠናከሪያ ዘዴዎች የሚከናወኑት እዚህ ነው። አንዳንድ አይነት ስህተቶችን መከላከል አንችልም ነገር ግን የአጥቂውን ህይወት የበለጠ አስቸጋሪ እናድርገው እና ​​ችግሩን በመከላከል ወይም በመከላከል በከፊል መፍታት እንችላለን. ብዝበዛ እነዚህ ስህተቶች. እንዲህ ዓይነቱ ጥበቃ በሁሉም ዘመናዊ ስርዓተ ክወናዎች ውስጥ ጥቅም ላይ ይውላል, ነገር ግን ዘዴዎቹ ውስብስብነት, ቅልጥፍና እና አፈፃፀም በእጅጉ ይለያያሉ-ከቁልል ካናሪዎች እና ASLR ወደ ሙሉ ጥበቃ CFI и ሪፕ. በዚህ ጽሑፍ ውስጥ በነባሪ ውቅረት ውስጥ በጣም ታዋቂ በሆነው የሊኑክስ ስርጭቶች ውስጥ ምን ዓይነት የመከላከያ ዘዴዎች ጥቅም ላይ እንደሚውሉ እንመለከታለን እንዲሁም በእያንዳንዱ ስርጭት የጥቅል አስተዳደር ስርዓቶች ውስጥ የሚሰራጩትን የሁለትዮሽ ባህሪዎችን እንመረምራለን ።

CVE እና ደህንነት

ሁላችንም እንደ "የአመቱ በጣም ተጋላጭ አፕሊኬሽኖች" ወይም "በጣም ተጋላጭ ስርዓተ ክወናዎች" ያሉ ርዕሶችን አይተናል። ብዙውን ጊዜ ስለ ድክመቶች በጠቅላላው የመዝገብ ብዛት ላይ ስታቲስቲክስ ይሰጣሉ CVE (የተለመደ ተጋላጭነት እና ተጋላጭነት), ከ የተገኘ ብሔራዊ የተጋላጭነት ዳታቤዝ (NVD) от NIST እና ሌሎች ምንጮች. በመቀጠል፣ እነዚህ አፕሊኬሽኖች ወይም ስርዓተ ክወናዎች በCVEs ብዛት የተቀመጡ ናቸው። እንደ አለመታደል ሆኖ ሲቪኤዎች ጉዳዮችን ለመከታተል እና ሻጮችን እና ተጠቃሚዎችን ለማሳወቅ በጣም ጠቃሚ ቢሆኑም ስለ ሶፍትዌሩ ትክክለኛ ደህንነት ግን ብዙም አይናገሩም።

ለአብነት ያህል፣ ለሊኑክስ ከርነል እና ለአምስቱ በጣም ታዋቂ የአገልጋይ ስርጭቶች ላለፉት አራት ዓመታት የCVE ዎች ብዛት ማለትም ኡቡንቱ ፣ ዴቢያን ፣ ቀይ ኮፍያ ኢንተርፕራይዝ ሊኑክስ እና OpenSUSEን ተመልከት።

በሚሊዮን የሚቆጠሩ ሁለትዮሽ በኋላ። ሊኑክስ እንዴት ጠነከረ
የበለስ. 1

ይህ ግራፍ ምን ይነግረናል? ከፍተኛ ቁጥር ያላቸው ሲቪኤዎች አንድ ስርጭት ከሌላው የበለጠ ተጋላጭ ነው ማለት ነው? መልስ የለም. ለምሳሌ፣ በዚህ ጽሁፍ ውስጥ ዴቢያን ከ OpenSUSE ወይም RedHat ሊኑክስ ጋር ሲወዳደር ጠንካራ የደህንነት ዘዴዎች እንዳሉት ታያለህ፣ ነገር ግን ዴቢያን ብዙ CVEs አለው። ነገር ግን፣ እነሱ የግድ የተዳከመ ደህንነት ማለት አይደለም፡ የ CVE መኖር እንኳን ተጋላጭነት አለመኖሩን አያመለክትም። ተበዘበዘ. የክብደት ውጤቶች እንዴት እንደሚጠቁሙ አመላካች ናቸው። ምናልባትም የተጋላጭነት ብዝበዛ፣ ነገር ግን በመጨረሻ ብዝበዛ በአብዛኛው የተመካው በተጎዱት ስርዓቶች ውስጥ ባሉ ጥበቃዎች እና በአጥቂዎች ሃብት እና አቅም ላይ ነው። ከዚህም በላይ የ CVE ዘገባዎች አለመኖራቸው ስለሌሎች ምንም አይናገርም ያልተመዘገበ ወይም ያልታወቀ ድክመቶች. የCVE ልዩነት ከሶፍትዌር ጥራት ውጪ በሆኑ ነገሮች፣ ለሙከራ የተመደቡ ሀብቶች ወይም የተጠቃሚው መሰረት መጠንን ጨምሮ ሊሆን ይችላል። በእኛ ምሳሌ፣ የዴቢያን ከፍተኛ የሲቪኤዎች ቁጥር በቀላሉ ዴቢያን ተጨማሪ የሶፍትዌር ፓኬጆችን እንደሚልክ ሊያመለክት ይችላል።

እርግጥ ነው, የ CVE ስርዓት ተስማሚ ጥበቃዎችን ለመፍጠር የሚያስችል ጠቃሚ መረጃ ይሰጣል. የፕሮግራም ውድቀት ምክንያቶችን በተሻለ ሁኔታ በተረዳን መጠን የብዝበዛ ዘዴዎችን መለየት እና ተገቢ ዘዴዎችን ማዳበር ቀላል ይሆናል። መለየት እና ምላሽ. በስእል. 2 ባለፉት አራት ዓመታት ውስጥ ለሁሉም ስርጭቶች የተጋላጭነት ምድቦችን ያሳያል (ምንጩ). አብዛኞቹ CVEዎች በሚከተሉት ምድቦች ውስጥ እንደሚወድቁ ወዲያውኑ ግልጽ ነው፡ የአገልግሎት መከልከል (DoS)፣ ኮድ አፈጻጸም፣ ከመጠን በላይ መፍሰስ፣ የማስታወስ ችሎታን ማበላሸት፣ የመረጃ መፍሰስ (ማጣራት) እና የልዩነት ማሳደግ። ምንም እንኳን ብዙ CVEs በተለያዩ ምድቦች ውስጥ ብዙ ጊዜ ቢቆጠሩም በአጠቃላይ ተመሳሳይ ጉዳዮች ከአመት አመት ይቀጥላሉ. በአንቀጹ በሚቀጥለው ክፍል የእነዚህን ድክመቶች ብዝበዛ ለመከላከል የተለያዩ የመከላከያ ዘዴዎችን አጠቃቀም እንገመግማለን.

በሚሊዮን የሚቆጠሩ ሁለትዮሽ በኋላ። ሊኑክስ እንዴት ጠነከረ
የበለስ. 2

ተግባራት

በዚህ ጽሑፍ ውስጥ የሚከተሉትን ጥያቄዎች ለመመለስ አስበናል.

  • የተለያዩ የሊኑክስ ስርጭቶች ደህንነት ምንድነው? በከርነል እና በተጠቃሚ ቦታ መተግበሪያዎች ውስጥ ምን ዓይነት የመከላከያ ዘዴዎች አሉ?
  • የደህንነት ዘዴዎችን መቀበል በስርጭቶች ውስጥ በጊዜ ሂደት እንዴት ተለውጧል?
  • ለእያንዳንዱ ስርጭት የፓኬጆች እና ቤተ-መጻሕፍት አማካኝ ጥገኛዎች ምን ያህል ናቸው?
  • ለእያንዳንዱ ሁለትዮሽ ምን ዓይነት መከላከያዎች ይተገበራሉ?

የስርጭቶች ምርጫ

በአብዛኛዎቹ ሁኔታዎች የወረዱ ቁጥር ትክክለኛ ጭነቶችን ስለማያሳይ በስርጭት ጭነቶች ላይ ትክክለኛ ስታቲስቲክስን ማግኘት አስቸጋሪ ነው። ነገር ግን፣ የዩኒክስ ልዩነቶች አብዛኛዎቹን የአገልጋይ ስርዓቶች (በድር አገልጋዮች ላይ 69,2%፣ በ ስታቲስቲክስ W3techs እና ሌሎች ምንጮች), እና የእነሱ ድርሻ በየጊዜው እያደገ ነው. ስለዚህ፣ ለጥናታችን ትኩረት ሰጥተን በመድረክ ላይ ከሳጥኑ ውጪ በሚገኙ ስርጭቶች ላይ አተኮርን። Google ደመና. በተለይም የሚከተለውን ስርዓተ ክወና መርጠናል-

ስርጭት/ስሪት
ዋናው ነገር
ይገንቡ

አውቶSESE12.4 ክፈት
4.12.14-95.3-ነባሪ
#1 SMP ረቡዕ ዲሴምበር 5 06:00:48 UTC 2018 (63a8d29)

ዴቢያን 9 (ተዘረጋ)
4.9.0-8-amd64
#1 SMP ዴቢያን 4.9.130-2 (2018-10-27)

CentOS 6.10
2.6.32-754.10.1.el6.x86_64
#1 SMP ማክሰኞ ጃንዋሪ 15 17:07:28 UTC 2019

CentOS 7
3.10.0-957.5.1.el7.x86_64
#1 SMP አርብ የካቲት 1 14:54:57 UTC 2019

ቀይ ኮፍያ ኢንተርፕራይዝ ሊኑክስ አገልጋይ 6.10 (ሳንቲያጎ)
2.6.32-754.9.1.el6.x86_64
# 1 SMP ረቡዕ ህዳር 21 15:08:21 EST 2018

Red Hat Enterprise Linux Server 7.6 (Maipo)
3.10.0-957.1.3.el7.x86_64
# 1 SMP Thu ህዳር 15 17:36:42 UTC 2018

ኡቡንቱ 14.04 (ታማኝ ታህር)
4.4.0-140-አጠቃላይ

#166~14.04.1-ኡቡንቱ SMP ቅዳሜ ህዳር 17 01፡52፡43 UTC 20…

ኡቡንቱ 16.04 (Xenial Xerus)
4.15.0-1026-ጂሲፒ
#27~16.04.1-ኡቡንቱ SMP አርብ ዲሴምበር 7 09:59:47 UTC 2018

ኡቡንቱ 18.04 (ባዮኒክ ቢቨር)
4.15.0-1026-ጂሲፒ
#27-Ubuntu SMP Thu ዲሴምበር 6 18:27:01 UTC 2018

ሠንጠረዥ 1

ትንታኔ

ነባሪውን የከርነል ውቅረት እና እንዲሁም በእያንዳንዱ ስርጭት የጥቅል አስተዳዳሪ በኩል የሚገኙትን የጥቅሎች ባህሪያት ከሳጥኑ ውስጥ እናጠና። ስለዚህ፣ ከእያንዳንዱ የስርጭት ነባሪ መስተዋቶች ጥቅሎችን ብቻ ነው የምንመለከተው፣ ጥቅሎችን ከማይረጋጉ ማከማቻዎች (እንደ ዴቢያን 'ሙከራ' መስተዋቶች ያሉ) እና የሶስተኛ ወገን ፓኬጆችን (እንደ Nvidia ፓኬጆች ከመደበኛ መስተዋቶች) ችላ በማለት። በተጨማሪም፣ ብጁ የከርነል ስብስቦችን ወይም በደህንነት-ጠንካራ ውቅሮችን አንመለከትም።

የከርነል ውቅር ትንተና

እኛ ላይ የተመሠረተ የትንታኔ ስክሪፕት ተግባራዊ ነጻ kconfig አራሚ. የተሰየሙትን ስርጭቶች ከሳጥን ውጪ ያሉትን የመከላከያ መለኪያዎች እንይ እና ከዝርዝሩ ጋር እናወዳድራቸው ኮር ራስን መከላከል ፕሮጀክት (KSPP) ለእያንዳንዱ የማዋቀር አማራጭ፣ ሠንጠረዥ 2 የሚፈለገውን መቼት ይገልፃል፡ አመልካች ሳጥኑ የKSSP ምክሮችን ለሚያከብሩ ስርጭቶች ነው (ለቃላቶቹ ማብራሪያ የሚከተለውን ይመልከቱ)። እዚህ; በሚቀጥሉት መጣጥፎች ውስጥ ከእነዚህ የደህንነት ዘዴዎች ውስጥ ምን ያህሉ እንደተፈጠሩ እና በሌሉበት ስርዓትን እንዴት እንደሚጥሉ እናብራራለን)።

በሚሊዮን የሚቆጠሩ ሁለትዮሽ በኋላ። ሊኑክስ እንዴት ጠነከረ

በሚሊዮን የሚቆጠሩ ሁለትዮሽ በኋላ። ሊኑክስ እንዴት ጠነከረ

በአጠቃላይ፣ አዲሶቹ ከርነሎች ከሳጥኑ ውጭ ጥብቅ ቅንጅቶች አሏቸው። ለምሳሌ፣ CentOS 6.10 እና RHEL 6.10 በ 2.6.32 ከርነል ላይ በአዲሶቹ ከርነሎች ውስጥ የሚተገበሩ አብዛኛዎቹ ወሳኝ ባህሪያት የላቸውም ለምሳሌ ኤስ.ኤም.ፒ.፣ ጥብቅ የRWX ፈቃዶች ፣ የአድራሻ ዕድሎች ወይም ቅጂ2usr ጥበቃ። በሰንጠረዡ ውስጥ ያሉት ብዙዎቹ የማዋቀሪያ አማራጮች በከርነል የቆዩ ስሪቶች ውስጥ የማይገኙ እና በእውነታው ላይ የማይተገበሩ መሆናቸውን ልብ ሊባል የሚገባው ነው - ይህ አሁንም በሠንጠረዡ ውስጥ እንደ ተገቢ ጥበቃ እጥረት ይታያል. በተመሳሳይ መልኩ የማዋቀሪያ አማራጭ በተሰጠው ስሪት ውስጥ ከሌለ እና ደህንነት ይህ አማራጭ እንዲሰናከል የሚፈልግ ከሆነ ይህ እንደ ምክንያታዊ ውቅር ይቆጠራል።

ውጤቱን በሚተረጉምበት ጊዜ ሊታሰብበት የሚገባ ሌላ ነጥብ፡ የጥቃቱን ወለል የሚጨምሩ አንዳንድ የከርነል ውቅሮች ለደህንነት ሲባልም ጥቅም ላይ ሊውሉ ይችላሉ። እንደነዚህ ያሉ ምሳሌዎች uprobes እና kprobes፣ kernel modules እና BPF/eBPF ያካትታሉ። የኛ ምክረ ሃሳብ ከላይ የተጠቀሱትን ዘዴዎች በመጠቀም እውነተኛ ጥበቃን መጠቀም ነው ምክንያቱም ለአጠቃቀም ቀላል ያልሆኑ እና ብዝበዛቸው ተንኮል አዘል ተዋናዮች በስርአቱ ውስጥ መደላድል እንደፈጠሩ ስለሚታሰብ ነው። ነገር ግን እነዚህ አማራጮች የነቁ ከሆነ የስርዓት አስተዳዳሪው አላግባብ መጠቀምን በንቃት መከታተል አለበት።

በሰንጠረዥ 2 ላይ ያሉትን ተጨማሪ መረጃዎች ስንመለከት፣ ዘመናዊ ከርነሎች እንደ የመረጃ መፍሰስ እና ቁልል/መብዛት ካሉ ተጋላጭነቶች ብዝበዛ ለመከላከል በርካታ አማራጮችን እንደሚሰጡ እናያለን። ሆኖም ግን፣ በጣም የቅርብ ጊዜዎቹ ታዋቂ ስርጭቶች እንኳን የበለጠ ውስብስብ ጥበቃን (ለምሳሌ በፕላስተር) እስካሁን ተግባራዊ እንዳልሆኑ እናስተውላለን ግስጋሴ) ወይም ከኮድ ድጋሚ ጥቅም ላይ የሚውሉ ጥቃቶችን ለመከላከል ዘመናዊ ጥበቃ (ለምሳሌ. እንደ R^X ለ ኮድ ካሉ ዕቅዶች ጋር የዘፈቀደ ጥምረት). ይባስ ብሎ እነዚህ በጣም የተራቀቁ መከላከያዎች እንኳን ከሙሉ ጥቃቶች አይከላከሉም. ስለዚህ የስርዓት አስተዳዳሪዎች የሩጫ ብዝበዛን ፈልጎ ማግኘት እና መከላከልን በሚያቀርቡ መፍትሄዎች ዘመናዊ አወቃቀሮችን ማሟላት በጣም አስፈላጊ ነው።

የመተግበሪያ ትንተና

ምንም አያስደንቅም ፣ የተለያዩ ስርጭቶች የተለያዩ የጥቅል ባህሪዎች ፣ የቅንብር አማራጮች ፣ የቤተ-መጻህፍት ጥገኞች ፣ ወዘተ. ልዩነቶች ለዚያም አሉ ። ተዛማጅ ማከፋፈያዎች እና ፓኬጆች ከጥቂት ጥገኞች ጋር (ለምሳሌ በኡቡንቱ ወይም በዴቢያን ላይ ያሉ coreutils)። ልዩነቶቹን ለመገምገም ሁሉንም የሚገኙትን ፓኬጆች አውርደናል፣ ይዘታቸውን አውጥተናል፣ እና ሁለትዮሽ እና ጥገኞችን ተንትነናል። ለእያንዳንዱ እሽግ በእሱ ላይ የተመካውን ሌሎች ፓኬጆችን ተከታትለናል, እና ለእያንዳንዱ ሁለትዮሽ, ጥገኞቹን ተከታትለናል. በዚህ ክፍል ውስጥ መደምደሚያዎቹን በአጭሩ እናጠቃልላለን.

ማከፋፈያዎች

በአጠቃላይ 361 ፓኬጆችን አውርደናል ለሁሉም ስርጭቶች ጥቅሎችን ከነባሪው መስተዋቶች በማውጣት። እንደ ምንጮች፣ ቅርጸ-ቁምፊዎች፣ ወዘተ ያሉ የELF ፈጻሚዎች የሌላቸውን ፓኬጆች ችላ አልን። ከተጣራ በኋላ 556 ፓኬጆች ቀርተዋል፣ በአጠቃላይ 129 ሁለትዮሾች። የጥቅሎች እና የፋይሎች ስርጭት በስርጭቶች ላይ በምስል. 569.

በሚሊዮን የሚቆጠሩ ሁለትዮሽ በኋላ። ሊኑክስ እንዴት ጠነከረ
የበለስ. 3

ይበልጥ ዘመናዊ ስርጭት, ብዙ ፓኬጆችን እና ሁለትዮሽዎችን እንደያዘ ልብ ይበሉ, ይህም ምክንያታዊ ነው. ሆኖም የኡቡንቱ እና የዴቢያን ፓኬጆች ከሴንትኦኤስ፣ SUSE እና RHEL የበለጠ ብዙ ሁለትዮሾችን (ሁለቱም ተፈፃሚዎች እና ተለዋዋጭ ሞጁሎች እና ቤተ-መጻሕፍት) ያካትታሉ፣ ይህም በኡቡንቱ እና በዴቢያን የጥቃት ገጽ ላይ ተጽዕኖ ሊያሳድር ይችላል (ቁጥሮቹ ሁሉንም የሁሉም ስሪቶች ሁለትዮሽ እንደሚያንፀባርቁ ልብ ሊባል ይገባል) ፓኬጅ, ማለትም, አንዳንድ ፋይሎች ብዙ ጊዜ ይመረመራሉ). በጥቅሎች መካከል ያለውን ጥገኝነት ሲያስቡ ይህ በጣም አስፈላጊ ነው. ስለዚህ፣ በአንድ ጥቅል ሁለትዮሽ ውስጥ ያለው ተጋላጭነት ብዙ የስርዓተ-ምህዳሩን ክፍሎች ሊጎዳ ይችላል፣ ልክ ተጋላጭ ቤተ-መጽሐፍት ከውጭ የሚያስገቡትን ሁሉንም ሁለትዮሽዎች ሊጎዳ ይችላል። እንደ መነሻ ፣ በተለያዩ ስርዓተ ክወናዎች ውስጥ ባሉ ፓኬጆች መካከል የጥገኛዎች ብዛት ስርጭትን እንመልከት ።

በሚሊዮን የሚቆጠሩ ሁለትዮሽ በኋላ። ሊኑክስ እንዴት ጠነከረ
የበለስ. 4

በሁሉም ስርጭቶች ማለት ይቻላል 60% ፓኬጆች ቢያንስ 10 ጥገኛዎች አሏቸው። በተጨማሪም ፣ አንዳንድ ፓኬጆች በጣም ትልቅ የጥገኛ ብዛት አላቸው (ከ 100 በላይ)። በተገላቢጦሽ የጥቅል ጥገኝነት ላይም ተመሳሳይ ነው፡ እንደተጠበቀው ጥቂት ጥቅሎች በስርጭቱ ውስጥ በሌሎች ብዙ ፓኬጆች ጥቅም ላይ ይውላሉ፣ ስለዚህ በተመረጡት ጥቂቶች ውስጥ ያሉ ተጋላጭነቶች ከፍተኛ ስጋት አላቸው። እንደ ምሳሌ፣ የሚከተለው ሠንጠረዥ በ SLES፣ Centos 20፣ Debian 7 እና Ubuntu 9 (እያንዳንዱ ሴል ጥቅሉን እና የተገላቢጦሽ ጥገኞችን ቁጥር ያሳያል) ከፍተኛው የተገላቢጦሽ ጥገኞች ቁጥር ያላቸውን 18.04 ፓኬጆች ይዘረዝራል።

በሚሊዮን የሚቆጠሩ ሁለትዮሽ በኋላ። ሊኑክስ እንዴት ጠነከረ
ሠንጠረዥ 3

አስደሳች እውነታ። ምንም እንኳን ሁሉም የተተነተኑ የስርዓተ ክወናዎች ለ x86_64 አርክቴክቸር የተገነቡ ናቸው፣ እና አብዛኛዎቹ ፓኬጆች አርክቴክቸር እንደ x86_64 እና x86 ይገለጻል፣ ጥቅሎች ብዙ ጊዜ ለሌሎች አርክቴክቸር ሁለትዮሽ ይይዛሉ፣ በስእል 5 እንደሚታየው። XNUMX.

በሚሊዮን የሚቆጠሩ ሁለትዮሽ በኋላ። ሊኑክስ እንዴት ጠነከረ
የበለስ. 5

በሚቀጥለው ክፍል ውስጥ, የተተነተነው ሁለትዮሽ ባህሪያት ውስጥ እንገባለን.

የሁለትዮሽ ፋይል ጥበቃ ስታቲስቲክስ

በፍፁም በትንሹ፣ ለነባር ሁለትዮሽዎ መሰረታዊ የደህንነት አማራጮችን ማሰስ ያስፈልግዎታል። በርካታ የሊኑክስ ስርጭቶች እንደዚህ አይነት ፍተሻዎችን ከሚያደርጉ ስክሪፕቶች ጋር አብረው ይመጣሉ። ለምሳሌ፣ ዴቢያን/ኡቡንቱ እንደዚህ አይነት ስክሪፕት አላቸው። የስራው ምሳሌ እነሆ፡-

$ hardening-check $(which docker)
/usr/bin/docker:
 Position Independent Executable: yes
 Stack protected: yes
 Fortify Source functions: no, only unprotected functions found!
 Read-only relocations: yes
 Immediate binding: yes

ስክሪፕቱ አምስት ያረጋግጣል የመከላከያ ተግባራት:

  • ገለልተኛ ፈጻሚ (PIE)፡- ASLR በከርነል ውስጥ ከነቃ የፕሮግራሙ የጽሑፍ ክፍል በማህደረ ትውስታ ሊንቀሳቀስ እንደሚችል ያሳያል።
  • ቁልል የተጠበቀ፡- የተደራረቡ ካናሪዎች ከቁልል ግጭት ጥቃቶች ለመከላከል የነቁ ይሁኑ።
  • Forify Source፡ ደህንነታቸው ያልተጠበቁ ተግባራት (ለምሳሌ፡ strcpy) ይበልጥ ደህንነታቸው በተጠበቁ ባልደረባዎቻቸው ቢተኩ እና በሂደት ላይ የሚደረጉ ጥሪዎች ቁጥጥር ባልተደረገባቸው አቻዎቻቸው (ለምሳሌ በ__memcpy_chk ምትክ ሜምcpy) ይተካሉ።
  • ተነባቢ-ብቻ ማዛወሪያዎች (RELRO)፡ የመቀየሪያ ሠንጠረዥ ግቤቶች አፈፃፀም ከመጀመሩ በፊት ከተቀሰቀሱ ብቻ የተነበበ ምልክት ተደርጎባቸው እንደሆነ።
  • የወዲያውኑ ማሰር፡ የፕሮግራም አፈጻጸም ከመጀመሩ በፊት የሩጫ ጊዜ ማገናኛው ሁሉንም እንቅስቃሴዎች ይፈቅድ እንደሆነ (ይህ ከሙሉ RELRO ጋር እኩል ነው)።

ከላይ ያሉት ዘዴዎች በቂ ናቸው? እንደ አለመታደል ሆኖ አይደለም. ከላይ የተጠቀሱትን መከላከያዎች በሙሉ ለማለፍ የታወቁ መንገዶች አሉ ነገር ግን የተከላካይ ክፍሉ በጠነከረ መጠን ለአጥቂው ከፍ ያለ ይሆናል። ለምሳሌ, RELRO ማለፊያ ዘዴዎች ፒኢ እና አፋጣኝ ማሰሪያ ተግባራዊ ከሆኑ ለማመልከት የበለጠ ከባድ ነው። እንደዚሁም፣ ሙሉ ASLR የሚሰራ ብዝበዛ ለመፍጠር ተጨማሪ ስራ ያስፈልገዋል። ሆኖም ግን, የተራቀቁ አጥቂዎች እንደዚህ አይነት ጥበቃዎችን ለማሟላት አስቀድመው ተዘጋጅተዋል: የእነሱ አለመኖር በመሠረቱ ጠለፋውን ያፋጥነዋል. ስለዚህ እነዚህ እርምጃዎች አስፈላጊ ናቸው ተብሎ መታሰብ አስፈላጊ ነው ዝቅተኛ.

በጥያቄ ውስጥ ባሉት ስርጭቶች ውስጥ ምን ያህል ሁለትዮሽ ፋይሎች በእነዚህ እና በሌሎች ሶስት ዘዴዎች እንደተጠበቁ ማጥናት እንፈልጋለን።

  • ሊተገበር የማይችል ቢት (NX) መፈፀም በማይገባበት በማንኛውም ክልል እንደ ክምር ክምር ወዘተ እንዳይፈፀም ይከለክላል።
  • RPATH/RUNPATH ተዛማጅ ቤተ-መጻሕፍት ለማግኘት በተለዋዋጭ ጫኚው የሚጠቀመውን የማስፈጸሚያ መንገድ ያመለክታል። የመጀመሪያው ነው። የግዴታ ለማንኛውም ዘመናዊ ስርዓት፡ አለመኖሩ አጥቂዎች የዘፈቀደ ጭነት ወደ ማህደረ ትውስታ እንዲጽፉ እና እንደነበሩ እንዲፈጽሙ ያስችላቸዋል። ለሁለተኛው፣ የተሳሳቱ የማስፈጸሚያ መንገዶች አወቃቀሮች ወደ በርካታ ችግሮች ሊመሩ የሚችሉ አስተማማኝ ያልሆኑ ኮድ ለማስተዋወቅ ይረዳሉ (ለምሳሌ፦ ልዩ መብት ማሳደግ, እንዲሁም ሌሎች ችግሮች).
  • የቁልል ግጭት መከላከያ ቁልል ሌሎች የማስታወሻ ቦታዎችን (እንደ ክምር ያሉ) እንዲደራረቡ ከሚያደርጉ ጥቃቶች ጥበቃ ያደርጋል። በቅርብ ጊዜ የተፈጸመውን አላግባብ መጠቀምን በተመለከተ የስርዓት ክምር ግጭት ተጋላጭነቶችይህንን ዘዴ በመረጃ ቋታችን ውስጥ ማካተት ተገቢ እንደሆነ ተሰማን።

ስለዚህ፣ ያለ ተጨማሪ ወሬ፣ ወደ ቁጥሮቹ እንውረድ። ሠንጠረዥ 4 እና 5 በቅደም ተከተል ሊተገበሩ የሚችሉ ፋይሎችን እና የተለያዩ ስርጭቶችን ቤተ-መጻሕፍት ትንተና ማጠቃለያ ይዟል።

  • እንደሚመለከቱት፣ የNX ጥበቃ በሁሉም ቦታ ይተገበራል፣ ከስንት ልዩ ሁኔታዎች ጋር። በተለይም በኡቡንቱ እና በዴቢያን ስርጭቶች ከ CentOS፣ RHEL እና OpenSUSE ጋር ሲወዳደር በትንሹ ዝቅተኛ አጠቃቀሙን መገንዘብ ይችላል።
  • ቁልል ካናሪዎች በብዙ ቦታዎች ላይ ጠፍተዋል፣በተለይም በዕድሜ የገፉ አስኳሎች ባሉባቸው ስርጭቶች። በሴንቶስ፣ RHEL፣ ዴቢያን እና ኡቡንቱ የቅርብ ስርጭቶች ላይ የተወሰነ መሻሻል እየታየ ነው።
  • ከዴቢያን እና ኡቡንቱ 18.04 በስተቀር፣ አብዛኛዎቹ ስርጭቶች ደካማ የፒኢኢ ድጋፍ አላቸው።
  • የቁልል ግጭት ጥበቃ በOpenSUSE፣ Centos 7 እና RHEL 7 ደካማ ነው፣ እና በሌሎች ውስጥም የለም ማለት ይቻላል።
  • ዘመናዊ ከርነሎች ያላቸው ሁሉም ስርጭቶች ለ RELRO የተወሰነ ድጋፍ አላቸው፣ ኡቡንቱ 18.04 መንገዱን እየመራ እና ዴቢያን ሁለተኛ ነው።

ቀደም ሲል እንደተገለፀው በዚህ ሠንጠረዥ ውስጥ ያሉት መለኪያዎች ለሁሉም የሁለትዮሽ ፋይል ስሪቶች አማካኝ ናቸው። የቅርብ ጊዜዎቹን የፋይሎች ስሪቶች ብቻ ከተመለከቱ ፣ ቁጥሩ የተለየ ይሆናል (ለምሳሌ ፣ ይመልከቱ) የዴቢያን ሂደት ከPIE ትግበራ ጋር). ከዚህም በላይ አብዛኛዎቹ ስርጭቶች ስታቲስቲክስን ሲያሰሉ በሁለትዮሽ ውስጥ ያሉ የጥቂት ተግባራትን ደህንነት የሚፈትኑት ሲሆን ነገር ግን የእኛ ትንተና የደነደነ የተግባር መቶኛን ያሳያል። ስለዚህ, ከ 5 ተግባራት ውስጥ 50 ቱ በሁለትዮሽ ውስጥ ከተጠበቁ, 0,1 ነጥብ እንሰጠዋለን, ይህም እየተጠናከሩ ካሉት ተግባራት 10% ጋር ይዛመዳል.

በሚሊዮን የሚቆጠሩ ሁለትዮሽ በኋላ። ሊኑክስ እንዴት ጠነከረ
ሠንጠረዥ 4. በስዕል ውስጥ ለሚታዩት ሊተገበሩ የሚችሉ ፋይሎች የደህንነት ባህሪያት. 3 (ተገቢ ተግባራትን መተግበር ከጠቅላላው የሚተገበሩ ፋይሎች ብዛት በመቶኛ)

በሚሊዮን የሚቆጠሩ ሁለትዮሽ በኋላ። ሊኑክስ እንዴት ጠነከረ
ሠንጠረዥ 5. በስእል ውስጥ ለሚታዩ ቤተ-መጻሕፍት የደህንነት ባህሪያት. 3 (ከጠቅላላው የቤተ-መጻሕፍት ብዛት በመቶኛ ተዛማጅ ተግባራትን መተግበር)

ስለዚህ እድገት አለ? በእርግጠኝነት አለ፡ ይህ በግለሰብ ስርጭቶች ላይ ካለው ስታቲስቲክስ ሊታይ ይችላል (ለምሳሌ፡- ደቢያን), እንዲሁም ከላይ ካሉት ጠረጴዛዎች. እንደ ምሳሌ በስእል. ምስል 6 በሶስት ተከታታይ የኡቡንቱ LTS 5 ስርጭቶች የጥበቃ ዘዴዎችን መተግበሩን ያሳያል (የቁልል ግጭት መከላከያ ስታቲስቲክስን አስቀርተናል)። ከስሪት ወደ ስሪት ቁጥራቸው እየጨመረ የመጣ ፋይሎች ቁልል ካናሪዎችን እንደሚደግፉ እና እንዲሁም ተጨማሪ እና ተጨማሪ ሁለትዮሾች ከሙሉ RELRO ጥበቃ ጋር እንደሚላኩ እናስተውላለን።

በሚሊዮን የሚቆጠሩ ሁለትዮሽ በኋላ። ሊኑክስ እንዴት ጠነከረ
የበለስ. 6

እንደ አለመታደል ሆኖ፣ በተለያዩ ስርጭቶች ውስጥ ያሉ በርካታ ሊተገበሩ የሚችሉ ፋይሎች አሁንም ከላይ ከተጠቀሱት ጥበቃዎች ውስጥ አንዳቸውም የላቸውም። ለምሳሌ ኡቡንቱ 18.04ን በመመልከት የጌቲ ሁለትዮሽ (የጌቲ ምትክ)፣ እንዲሁም mksh እና lksh shells፣ picolisp ተርጓሚው፣ nvidia-cuda-Toolkit ጥቅሎችን (ለጂፒዩ-የተጣደፉ መተግበሪያዎች ታዋቂ ጥቅል ያስተውላሉ) እንደ ማሽን መማሪያ ማዕቀፎች) እና klibc -utils. በተመሳሳይም የማንዶስ-ደንበኛ ሁለትዮሽ (ማሽኖችን በተመሰጠሩ የፋይል ስርዓቶች በራስ-ሰር እንደገና እንዲጀምሩ የሚያስችልዎ የአስተዳደር መሣሪያ) እንዲሁም rsh-redone-client (የ rsh እና rlogin እንደገና መተግበር) ምንም እንኳን የ SUID መብቶች ቢኖራቸውም ይጓዛሉ፡ (. እንዲሁም፣ በርካታ suid binaries እንደ ቁልል canaries (ለምሳሌ Xorg.wrap ሁለትዮሽ ከ Xorg ጥቅል) ያሉ መሠረታዊ ጥበቃ የላቸውም.

ማጠቃለያ እና መደምደሚያ አስተያየቶች

በዚህ ጽሑፍ ውስጥ የዘመናዊ ሊኑክስ ስርጭቶችን በርካታ የደህንነት ባህሪያትን አጉልተናል። ትንታኔው እንደሚያሳየው የቅርብ ጊዜው የኡቡንቱ LTS ስርጭት (18.04) በአማካኝ ጠንካራውን የስርዓተ ክወና እና የመተግበሪያ ደረጃ ጥበቃን እንደሚተገበር እንደ ኡቡንቱ 14.04 ፣ 12.04 እና ዴቢያን 9 ባሉ ስርጭቶች መካከል በአንጻራዊ ሁኔታ አዲስ ከርነሎች ጋር። በእኛ ስብስብ ውስጥ በነባሪ ክፈት SUSE ጥቅጥቅ ያሉ ጥቅል ያመርታሉ፣ እና በቅርብ ጊዜ ስሪቶች (ሴንትኦኤስ እና RHEL) በዴቢያን ላይ ከተመሰረቱ ተፎካካሪዎች (ዴቢያን እና ኡቡንቱ) ጋር ሲነፃፀሩ ከፍ ያለ መቶኛ የቁልል ግጭት ጥበቃ አላቸው። የCentOS እና RedHat ስሪቶችን በማነፃፀር፣ በስታck canaries እና RELRO ከ6 እስከ 7 ስሪቶች በመተግበር ላይ ትልቅ መሻሻሎችን እናስተውላለን፣ ነገር ግን በአማካይ CentOS ከRHEL የበለጠ የተተገበሩ ባህሪያት አሉት። በአጠቃላይ ሁሉም ስርጭቶች ከዲቢያን 9 እና ከኡቡንቱ 18.04 በስተቀር በእኛ የውሂብ ስብስብ ውስጥ ከ 10% ባነሰ ሁለትዮሽ ውስጥ የሚተገበረውን ለፒአይኢ ጥበቃ ልዩ ትኩረት መስጠት አለባቸው።

በመጨረሻም፣ ምርምሩን በእጅ ብንመራም፣ ብዙ የደህንነት መሳሪያዎች እንዳሉ ልብ ሊባል ይገባል (ለምሳሌ፡. ሊኒ, ነብር, Hubble), ትንታኔን የሚያካሂድ እና ደህንነቱ ያልተጠበቀ ውቅሮችን ለማስወገድ ይረዳል. በሚያሳዝን ሁኔታ, በተመጣጣኝ ውቅሮች ውስጥ ጠንካራ ጥበቃ እንኳን የብዝበዛዎች አለመኖር ዋስትና አይሰጥም. ለዚህም ነው ማረጋገጥ አስፈላጊ መሆኑን አጥብቀን የምናምነው አስተማማኝ ክትትል እና ጥቃቶችን በእውነተኛ ጊዜ መከላከል, የብዝበዛ ቅጦች ላይ በማተኮር እና እነሱን ለመከላከል.

ምንጭ: hab.com

አስተያየት ያክሉ