Hacker News

CSP ለ Pentesters፡ መሰረታዊ ነገሮችን መረዳት

አስተያየቶች

2 min read Via www.kayssel.com

Mewayz Team

Editorial Team

Hacker News

ለምን እያንዳንዱ ፔንቴስተር የይዘት ደህንነት ፖሊሲን መቆጣጠር ያስፈልገዋል

የይዘት ደህንነት ፖሊሲ (ሲ.ኤስ.ፒ.) ከጣቢያ-አቋራጭ ስክሪፕት (XSS)፣ ከዳታ መርፌ እና የጠቅ ጠለፋ ጥቃቶችን ለመከላከል በጣም ወሳኝ ከሆኑ የአሳሽ-ጎን መከላከያ ዘዴዎች አንዱ ሆኗል። ገና በመግቢያ ሙከራ ተሳትፎ ውስጥ፣ የCSP ራስጌዎች በጣም በተደጋጋሚ ከተሳሳቱ - እና ካልተረዱ - የደህንነት ቁጥጥሮች አንዱ እንደሆኑ ይቆያሉ። እ.ኤ.አ. በ2024 ከ1 ሚሊዮን በላይ ድረ-ገጾችን የመረመረ ጥናት እንደሚያሳየው 12.8% ብቻ የሲኤስፒ አርዕስቶችን ያሰማሩ ሲሆን ከነዚህም ውስጥ ወደ 94% የሚጠጉት ቢያንስ አንድ ጥቅም ላይ ሊውል የሚችል የፖሊሲ ድክመት አላቸው። ለአሳዳጊዎች፣ ሲኤስፒን መረዳቱ አማራጭ አይደለም - በገጸ-ደረጃ ግምገማ እና በሪፖርት መካከል ያለው ልዩነት የደንበኛን የደህንነት አቋም የሚያጠናክር ነው።

የድር መተግበሪያ ግምገማዎችን እያደረጉ፣ የችሮታ ማደን፣ ወይም ደህንነትን ወደ የንግድ መድረክ እየገነቡ ሚስጥራዊነት ያለው የደንበኛ ውሂብን ወደሚያስተናግድ የCSP እውቀት መሰረታዊ ነው። ይህ መመሪያ ሲ.ኤስ.ፒ ምን እንደሆነ፣ እንዴት እንደሚሰራ፣ የት እንደሚወድቅ፣ እና ወንጀለኞች እንዴት ደካማ ፖሊሲዎችን ስልታዊ በሆነ መንገድ መገምገም እና ማለፍ እንደሚችሉ ይከፋፍላል።

የይዘት ደህንነት መመሪያ ምን ያደርጋል

በዋናው ላይ፣ ሲኤስፒ በኤችቲቲፒ ምላሽ ራስጌ (ወይም ባነሰ መልኩ፣ መለያ) በኩል የሚቀርብ ገላጭ የደህንነት ዘዴ ነው። አሳሹ የትኞቹ የይዘት ምንጮች - ስክሪፕቶች ፣ ቅጦች ፣ ምስሎች ፣ ቅርጸ-ቁምፊዎች ፣ ክፈፎች እና ሌሎች - በአንድ የተወሰነ ገጽ ላይ እንዲጫኑ እና እንዲሰሩ እንደሚፈቀድ ያስተምራል። አንድ ግብአት መመሪያውን ሲጥስ አሳሹ ያግደዋል እና እንደአማራጭ ጥሰቱን ለተወሰነ የመጨረሻ ነጥብ ያሳውቃል።

ከሲኤስፒ ጀርባ ያለው የመጀመሪያው ተነሳሽነት የXSS ጥቃቶችን ማቃለል ነበር። እንደ የግቤት ንጽህና እና የውጤት ኢንኮዲንግ ያሉ ባህላዊ የXSS መከላከያዎች ውጤታማ ናቸው ነገር ግን ተሰባሪ ናቸው - አንድ ያመለጠ አውድ ወይም የኢኮዲንግ ስህተት ተጋላጭነቱን እንደገና ሊያመጣ ይችላል። ሲኤስፒ የመከላከያ-ጥልቅ ንብርብር ያክላል፡ አጥቂው ተንኮል አዘል ስክሪፕት መለያ ወደ DOM ቢያስገባም በትክክል የተዋቀረ ፖሊሲ አሳሹ እንዳይሰራ ይከለክለዋል።

ሲኤስፒ በነጭ ዝርዝር ሞዴል ላይ ይሰራል። የሚታወቅ-መጥፎ ይዘትን ለማገድ ከመሞከር ይልቅ፣ የተፈቀደውን በግልፅ ይገልጻል። የተቀረው ሁሉ በነባሪነት ተከልክሏል። ይህ የደህንነት ሞዴል መገለባበጥ በንድፈ ሃሳቡ ኃይለኛ ነው፣ በተግባር ግን ውስብስብ በሆኑ የድር መተግበሪያዎች ላይ ጥብቅ ፖሊሲዎችን መጠበቅ -በተለይ እንደ CRM፣ ደረሰኝ፣ ትንታኔ እና የቦታ ማስያዣ ስርዓቶች ያሉ በደርዘን የሚቆጠሩ የተቀናጁ ሞጁሎችን የሚያስተዳድሩ መድረኮች - በጣም ከባድ ነው።

የሲኤስፒ አርዕስት አናቶሚ፡ መመሪያዎች እና ምንጮች

የሲኤስፒ ራስጌ በመመሪያዎች ያቀፈ ነው፣ እያንዳንዱም የተወሰነ የንብረት አይነት ይቆጣጠራል። እነዚህን መመሪያዎች መረዳት የኢላማ ፖሊሲን ለሚገመግም ለማንኛውም ፔንቴስተር አስፈላጊ ነው። በጣም አስፈላጊዎቹ መመሪያዎች default-src(የማንኛውም መመሪያ ውድቀት በግልጽ አልተዘጋጀም)፣script-src(JavaScript execution)፣ style-src (CSS)፣ img-src(ምስሎች)፣ግንኙነት-srcዌብሳይትግንኙነት (የተከተተ iframes)፣ እና object-src(እንደ ፍላሽ ወይም ጃቫ አፕሌት ያሉ ተሰኪዎች)።

እያንዳንዱ መመሪያ የተፈቀደላቸውን መነሻዎች የሚገልጹ አንድ ወይም ከዚያ በላይምንጭ መግለጫዎችን ይቀበላል። እነዚህ ከተወሰኑ የአስተናጋጅ ስሞች (https://cdn.example.com) እስከ ሰፋ ያሉ ቁልፍ ቃላት፡

  • 'ራስ' — ከሰነዱ ጋር ከተመሳሳዩ ምንጭ የመጡ ሀብቶችን ይፈቅዳል
  • ‘ምንም’ — ሁሉንም የዚያ ዓይነት ሀብቶች ያግዳል
  • 'ደህና-ውስጥ መስመር' — የመስመር ውስጥ ስክሪፕቶችን ወይም ቅጦችን ይፈቅዳል (የXSS ጥበቃን በብቃት ያስወግዳል)
  • 'አስተማማኝ-ኢቫል' — eval()፣ setTimeout(string) እና ተመሳሳይ ተለዋዋጭ ኮድ ማስፈጸሚያ ይፈቅዳል።
  • 'nonce-{ የዘፈቀደ}' — በተዛማጅ ክሪፕቶግራፊክ nonce የተሰጡ ልዩ የመስመር ላይ ስክሪፕቶችን ይፈቅዳል።
  • 'srict-dynamic' — አስቀድሞ በታመኑ ስክሪፕቶች የተጫኑ ስክሪፕቶችን ያምናል፣ በአስተናጋጅ ላይ የተመሰረቱ የፈቃድ ዝርዝሮችን ችላ በማለት
  • ውሂብ፡ — የውሂብ ዩአርአይዎችን እንደ የይዘት ምንጮች ይፈቅዳል

የገሃዱ ዓለም ሲኤስፒ ራስጌ ይህን ሊመስል ይችላል፡የይዘት-ደህንነት-ፖሊሲ፡ default-src 'self'; script-src 'ራስ' https://cdn.jsdelivr.net 'nonce-abc123'; style-src 'ራስ' 'ደህንነቱ የተጠበቀ-ውስጥ መስመር'; img-src *; object-src 'ምንም'. እንደ ፔንቴስተር፣ የእርስዎ ስራ ይህን ፖሊሲ ማንበብ እና የት ጠንካራ እንደሆነ፣ የት ደካማ እንደሆነ እና የሚበዘበዝበትን ቦታ ወዲያውኑ መለየት ነው።

የተለመዱ የCSP የተሳሳቱ ውቅረቶች ጴንጤዎች ማነጣጠር አለባቸው

የሲኤስፒ ራስጌን በማሰማራት እና በውጤታማCSP ራስጌ በማሰማራት መካከል ያለው ክፍተት በጣም ትልቅ ነው። በተግባር፣ አብዛኞቹ ፖሊሲዎች በገንቢ ምቾት፣ በሶስተኛ ወገን ውህደት ወይም ቀላል አለመግባባት የገቡ ድክመቶችን ይይዛሉ። በግምገማ ወቅት ወንጀለኞች እነዚህን የተለመዱ ውድቀቶች በዘዴ ማረጋገጥ አለባቸው።

በጣም አውዳሚው የተሳሳተ ውቅረት በስክሪፕት-srcመመሪያው ውስጥ የ‘ደህና-ውስጥ መስመር’ መኖር ነው። ይህ ነጠላ ቁልፍ ቃል ሙሉውን የCSP ጸረ-XSS ጥቅም ከንቱ ያደርገዋል።ምክንያቱም አሳሹ ማንኛውንም የመስመር ውስጥ