ക്രോസ് സൈറ്റ് സ്ക്രിപ്റ്റിംഗ്

വെബ് ആപ്ലിക്കേഷനുകളിൽ കണ്ടുവരുന്ന ഒരു സുരക്ഷാ പ്രശ്നം
(Cross-site scripting എന്ന താളിൽ നിന്നും തിരിച്ചുവിട്ടതു പ്രകാരം)

സാധാരണയായി വെബ് ആപ്ലിക്കേഷനുകളിൽ കണ്ടുവരുന്ന ഒരു സുരക്ഷാ പ്രശ്നമാണ് ക്രോസ് സൈറ്റ് സ്ക്രിപ്റ്റിങ് (Cross-site scripting അഥവാ XSS). ക്രോസ് സൈറ്റ് സ്ക്രിപ്റ്റിങ് ഉപയോഗിച്ച് ഹാക്കർമാർക്ക് വെബ് താളിലേയ്ക്ക് ക്ലയന്റ് സൈഡ് സ്ക്രിപ്റ്റ് കുത്തിവെയ്ക്കാൻ സാധിക്കുന്നതാണ്. ഇതുവഴി സൈറ്റിന്റെ ഉപയോക്താവിനെ യഥാർത്ഥത്തിലുള്ളതെന്ന് തോന്നിക്കുന്ന വിധത്തിൽ, സൈറ്റ് നിർമ്മിച്ചവർ നൽകാത്ത കാര്യങ്ങൾ ഉപയോഗിപ്പിക്കുവാനും, ഉപയോക്താവിന്റെ വിവരങ്ങൾ ശേഖരിക്കാനും ഹാക്കർക്ക് സാധിച്ചേക്കാം. ആക്സസ് കണ്ട്രോൾ (Access control), സേം ഒറിജിൻ നയം (Same origin policy) തുടങ്ങിയവ അതിലംഘിക്കാൻ സാധാരണയായി ക്രോസ് സൈറ്റ് സ്ക്രിപ്റ്റിങ് ഉപയോഗിക്കപ്പെടുന്നു. 2007-ൽ വെബ് സൈറ്റുകളിൽ സിമാന്റെക് കണ്ടെത്തിയ സുരക്ഷാ വിടവുകളിൽ 84 ശതമാനവും ക്രോസ് സൈറ്റ് സ്ക്രിപ്റ്റിങ് വഴിയുണ്ടാകുന്നതായിരുന്നു[1].

ക്രോസ് സൈറ്റ് സ്ക്രിപ്റ്റിങ് സുരക്ഷാ വിടവുകൾ 1990-കൾ മുതൽക്ക് തന്നെ തിരിച്ചറിയപ്പെടുകയും ദുരുപയോഗം ചെയ്യപ്പെടുകയും ചെയ്തുവന്നിരുന്നു. ട്വിറ്റർ,[2] ഫേസ്ബുക്ക്[3][4], മൈസ്പേസ്, യൂട്യൂബ്, ഓർക്കുട്ട്[5] ഒബാമയുടെ സൈറ്റ്[6] തുടങ്ങിയവയൊക്കെ വ്യത്യസ്തസമയങ്ങളിൽ ക്രോസ് സൈറ്റ് സുരക്ഷാ വിടവിനു പാത്രമായിട്ടുണ്ട്. 2013 ജൂലൈയിൽ ക്രോസ് സൈറ്റ് സ്ക്രിപ്റ്റിങ് ഉപയോഗിച്ച് തുടങ്ങിയ ആക്രമണത്തിനൊടുവിൽ 1.82 ദശലക്ഷം ഉപയോക്താക്കളുടെ വിവരങ്ങൾ ഉബുണ്ടു ഫോറത്തിൽ നിന്നും അക്രമണകാരി മോഷ്ടിച്ചിരുന്നു[7]. സമീപകാലത്ത് ക്രോസ് സൈറ്റ് സ്ക്രിപ്റ്റിങ് സുരക്ഷാ വിടവിനേക്കാളും കൂടുതൽ ബഫർ ഓവർഫ്ലോ ആണ് കൂടുതൽ പരസ്യമായി തിരിച്ചറിയപ്പെടുകയും റിപ്പോർട്ട് ചെയ്യപ്പെടുകയും ചെയ്യുന്നതെന്ന് കണക്കാക്കപ്പെട്ടിട്ടുണ്ട്[8] എന്നിരുന്നാലും 68 ശതമാനത്തോളം വെബ് സൈറ്റുകൾ ക്രോസ് സൈറ്റ് സ്ക്രിപ്റ്റിങ് സുരക്ഷാ പാളിച്ചയുള്ളവയാണെന്ന് 2007-ൽ കണക്കാക്കപ്പെട്ടിരുന്നു[9].

ക്രോസ് സൈറ്റ് സ്ക്രിപ്റ്റിങ് വൈകല്യങ്ങളെ കൃത്യമായി തരം തിരിച്ചിട്ടില്ല. എന്നിരുന്നാലും "സ്ഥിരമല്ലത്തത്" (non-persistent), "സ്ഥിരം" (persistent) എന്നിങ്ങനെ രണ്ട് വിധത്തിൽ മിക്കപ്പോഴും ഇവയെ വർഗ്ഗീകരിക്കാറുണ്ട്. ചിലപ്പോളിവയെ "പരമ്പരാഗതം" (സെർവർ ഭാഗത്തെ വൈകല്യം), ഡോം-അധിഷ്ഠിതം (ക്ലയന്റ് ഭാഗം) എന്നവിധത്തിലും വിഭജിക്കാറുണ്ട്.

സ്ഥിരമല്ലാത്തത്

തിരുത്തുക

സ്ഥിരമല്ലാത്ത അഥവാ പ്രതിബിംബിത (non-persistent or reflected) ക്രോസ് സൈറ്റ് സ്ക്രിപ്റ്റിങ് സുരക്ഷാവിടവാണ് സർവ്വസാധാരണം[10]. വെബ് ക്ലയന്റിൽ നിന്നുള്ള വിവരങ്ങൾ, മിക്കവാറും എച്ച്.റ്റി.റ്റി.പി. ക്വറി ചരങ്ങളായോ അല്ലെങ്കിൽ എച്ച്.റ്റി.എം.എൽ. ഫോം സമർപ്പിക്കുന്നതു വഴിയോ ഉള്ളവ, വേണ്ടത്ര ശ്രദ്ധയോടെ കൈകാര്യം ചെയ്യാത്തതുമൂലം (HTML sanitization) സെർവർ ഭാഗത്തെ സ്ക്രിപ്റ്റുകൾ ഉപയോക്താവിനു വേണ്ടി അവ പാഴ്സ് ചെയ്യുകയും ഫലങ്ങൾ സൃഷ്ടിക്കുകയും ചെയ്യുമ്പോഴാണ് ഇത്തരം വിടവുകൾ പ്രത്യക്ഷത്തിൽ വരിക[11].

എച്ച്.റ്റി.എം.എൽ. പ്രമാണങ്ങളിൽ കണ്ട്രോൾ സ്റ്റേറ്റ്മെന്റുകളും, രൂപനിർണ്ണയഭാഗങ്ങളും, യഥാർത്ഥ ഉള്ളടക്കവും ഇടകലർന്ന് കിടക്കുന്നതിനാൽ, ഉപയോക്താവ് നൽകുന്ന വിവരങ്ങൾ വേണ്ട വിധത്തിൽ പരിശോധിക്കാതെ ഉപയോഗിച്ചാൽ മാർക്കപ്പ് ഇൻജക്ഷനു വിധേയമാക്കാവുന്നതാണ്[10][11].

ഉദാഹരണത്തിനു ഒരു സൈറ്റ് സേർച്ച് എഞ്ചിൻ സാധാരണയായി തിരയാനായി നൽകുന്ന എഴുത്ത്, അതേ പടി താളിൽ പ്രദർശിപ്പിക്കാറുണ്ട്. ഇത്തരത്തിലുള്ള എഴുത്തിൽ നിന്ന് ശരിയായ വിധത്തിൽ എച്ച്.റ്റി.എം.എൽ. കണ്ട്രോൾ കാരക്ടേഴ്സിനെ അരിച്ചെടുത്ത് കളഞ്ഞില്ലെങ്കിൽ അത് ഇത്തരത്തിലുള്ള ഒരു സുരക്ഷാവിടവ് സൃഷ്ടിക്കുന്നതാണ്[12].

ഉദാ:
website.com/search.php?q=pwned</script><script>document.write(XssED BY XssER);</script>
website.com/search.php?q="><script src='http://malicous js'</script>

ഇത്തരത്തിലുള്ള ആക്രമണങ്ങൾ സാധാരണയായി ഇമെയിൽ വഴിയോ നിഷ്പക്ഷ വെബ് സൈറ്റുകൾ വഴിയോ ആയിക്കും പകരുക. വിശ്വസനീയമായ ഒരു സൈറ്റിലേയ്ക്കുള്ള നിഷ്കളങ്കമെന്ന് തോന്നിക്കുന്ന, എന്നാൽ ക്രോസ് സൈറ്റ് സുരക്ഷാവിടവ് ദുരുപയോഗം ചെയ്യുന്ന യു.ആർ.എൽ. ഉപയോഗിച്ചാവും പ്രതിബിംബിത ആക്രമണം നടത്തുക. സൈറ്റിലെ സുരക്ഷാപ്രശ്നം പരിഹരിക്കപ്പെട്ടിട്ടില്ലെങ്കിൽ, യു.ആർ.എൽ. ഉപയോഗിക്കുന്ന ആളിന്റെ ബ്രൗസർ ഇൻജക്റ്റ് ചെയ്ത സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കുന്നതാണ്.

സ്ഥിര അഥവാ സംഭരിത (Persistent or stored) ക്രോസ് സൈറ്റ് സ്ക്രിപ്റ്റിങ് സുരക്ഷാപ്രശ്നമാണ് കൂടുതൽ ഗൗരവമേറിയത്. ഇത്തരം വിടവുകൾ ആക്രമണകാരി എഴുതി നൽകുന്ന വിവരങ്ങൾ സെർവറിൽ സൂക്ഷിക്കപ്പെടാൻ ഇടയാക്കുകയും അതേ സമയം "സാധാരണ" താളുകൾ പോലെ മറ്റ് ഉപയോക്താക്കൾക്ക് ലഭിക്കുന്നതിനു കാരണമാവുകയും ചെയ്യുന്നു. മറ്റുള്ളവർ ഇത്തരം സൈറ്റുകൾ എടുത്തുനോക്കുമ്പോൾ സൈറ്റ് നിർമ്മിച്ചവർ ഉദ്ദേശിച്ച പ്രവർത്തനങ്ങൾക്കുപരിയായി ആക്രമണകാരി എഴുതി നൽകിയ പ്രവൃത്തികളും ഉപയോക്താവിനുമേൽ സൈറ്റ് ചെയ്യുന്നതാണ്. എച്ച്.റ്റി.എം.എൽ. ഉപയോഗിച്ച് മറ്റുള്ളവർക്കുള്ള സന്ദേശങ്ങൾ ചിട്ടപ്പെടുത്താൻ കഴിയുന്ന ഓൺലൈൻ മെസേജ് ബോർഡുകളാണ് ഇത്തരം സുരക്ഷാവിടവുകൾക്ക് ഉത്തമോദാഹരണം[11].

ഉദാഹരണത്തിന് ഒരു മാംഗല്യസഹായ വെബ് സൈറ്റിൽ ഒരാൾക്ക് പണമടയ്ക്കാതെ മറ്റുള്ളവരെ ബന്ധപ്പെടാനുള്ള വിവരങ്ങൾ അറിയാൻ കഴിയില്ലെന്ന് കരുതുക. അതേ സമയം സ്വന്തം പ്രൊഫൈൽ എച്ച്.റ്റി.എം.എൽ. ടാഗുകളും മറ്റും ഉപയോഗിച്ച് ചിട്ടപ്പെടുത്താനാവുമെന്നും കരുതുക. വേണ്ടത്ര കരുതലോടെയല്ലാതെ നിർമ്മിക്കപ്പെട്ട വെബ് സൈറ്റ് ആണെങ്കിൽ ആക്രമണകാരിക്ക് മറ്റെവിടെയെങ്കിലും കിടക്കുന്ന ജാവാസ്ക്രിപ്റ്റ്, എച്ച്.റ്റി.എക്.എൽ. ടാഗായ <script> ഉപയോഗിച്ച്, ഇതുവഴി സ്വന്തം പ്രൊഫൈലിൽ ഉൾപ്പെടുത്താൻ കഴിയുന്നതാണ്. ഇതുവഴി സ്വന്തം പ്രോഫൈൽ സന്ദർശിക്കുന്നവരുടെ വിവരങ്ങൾ, സൈറ്റ് നിർമ്മാതാക്കളുടെ നയത്തിനു വിരുദ്ധമായി കൈക്കലാക്കാനും കഴിയുന്നതാണ്.

സോഷ്യൽ നെറ്റ്‌വർക്കിങ് സൈറ്റുകളിൽ ഇത്തരത്തിലുള്ള കോഡുകൾ കമ്പ്യൂട്ടർ വേം പോലെ മറ്റ് ഉപയോക്താക്കളെയും ബാധിക്കാൻ ശേഷിയുള്ള വിധത്തിൽ രൂപപ്പെടുത്തിയതായേക്കാം.[13]

പരമ്പരാഗത സുരക്ഷാപ്രശ്നങ്ങളും ഡോം-അധിഷ്ഠിത സുരക്ഷാപ്രശ്നങ്ങളും

തിരുത്തുക

സാധാരണയായി സെർവർ ഭാഗത്തെ ആവശ്യമായ എച്ച്.റ്റി.എം.എൽ. റെസ്പോൺസ് തയ്യാറാക്കി നൽകുന്ന സ്ക്രിപ്റ്റുകളിലെ പ്രശ്നങ്ങളാണ് ക്രോസ്-സൈറ്റ് സ്ക്രിപ്റ്റിങിനു കാരണമാകുന്നത്. ഇവയെ പരമ്പരാഗത സുരക്ഷാവിടവുകൾ എന്ന് വിളിക്കുന്നു.

ഉള്ളടക്കത്തെ പ്രദർശിപ്പിക്കാൻ സജ്ജമാക്കുന്ന അവസരത്തിൽ ക്ലയന്റിൽ നടക്കുന്ന ക്രോസ്-സൈറ്റ് സ്ക്രിപ്റ്റിങ് ആണ് ഡോം-അധിഷ്ടിത സ്ക്രിപ്റ്റിങ്. ക്ലയന്റിൽ മാൽവേറുകളും മറ്റും ബാധിക്കുന്നതുവഴിയും ഡോം-അധിഷ്ഠിത ഇൻജക്ഷനുകൾ നടന്നേക്കാം. മുമ്പ് വിക്കിപീഡിയയിൽ ഇത്തരത്തിൽ പരസ്യങ്ങൾ പ്രദർശിപ്പിക്കപ്പെട്ടിരുന്നു[14].

  1. During the second half of 2007, 11,253 site-specific cross-site vulnerabilities were documented by XSSed, compared to 2,134 "traditional" vulnerabilities documented by Symantec, in "Symantec Internet Security Threat Report: Trends for July–December 2007 (Executive Summary)" (PDF). XIII. Symantec Corp. 2008: 1–3. Archived from the original (PDF) on 2008-06-25. Retrieved May 11, 2008. {{cite journal}}: Cite journal requires |journal= (help); Unknown parameter |month= ignored (help)
  2. Arthur, Charles (September 21, 2010). "Twitter users including Sarah Brown hit by malicious hacker attack". The Guardian. Retrieved September 21, 2010.
  3. Leyden, John (May 23, 2008). "Facebook poked by XSS flaw". The Register. Retrieved May 28, 2008.
  4. Kumar, Mohit. "Channel.facebook.com cross-site-scripting (XSS) vulnerability by Edgard Chammas - The Hacker News". thehackernews.com. Retrieved 2013 സെപ്റ്റംബർ 2. {{cite web}}: Check date values in: |accessdate= (help)
  5. "Full List of Incidents". Web Application Security Consortium. February 17, 2008. Retrieved May 28, 2008.,
  6. "Obama site hacked; Redirected to Hillary Clinton". ZDNet. April 21, 2008. Retrieved May 28, 2008.
  7. James Troup (2013 ജൂലൈ 30). "Ubuntu Forums are back up and a post mortem" (in ഇംഗ്ലീഷ്). കാനോനിക്കൽ. Retrieved 2013 സെപ്റ്റംബർ 3. {{cite web}}: Check date values in: |accessdate= and |date= (help)
  8. Christey, Steve and Martin, Robert A. (May 22, 2007). "Vulnerability Type Distributions in CVE (version 1.1)". MITRE Corporation. Retrieved June 7, 2008.{{cite web}}: CS1 maint: multiple names: authors list (link)
  9. Berinato, Scott (January 1, 2007). "Software Vulnerability Disclosure: The Chilling Effect". CSO. CXO Media. p. 7. Archived from the original on 2008-04-18. Retrieved June 7, 2008.
  10. 10.0 10.1 Hope, Paco; Walther, Ben (2008). Web Security Testing Cookbook. Sebastopol, CA: O'Reilly Media, Inc. p. 128. ISBN 978-0-596-51483-9.
  11. 11.0 11.1 11.2 "Cross-site Scripting". Web Application Security Consortium. 2005. Retrieved May 28, 2008.
  12. Grossman, Jeremiah and Robert Hansen, Seth Fogie, Petko D. Petkov and Anton Rager (2007). XSS Attacks: Cross Site Scripting Exploits and Defense (Abstract). Elsevier Science & Technology via Google Book Search. pp. 70, 156. ISBN 1-59749-154-3. Retrieved May 28, 2008.{{cite book}}: CS1 maint: multiple names: authors list (link)
  13. Viruses and worms in Alcorn, Wade (September 27, 2005). "The Cross-site Scripting Virus". BindShell.net. Archived from the original on 2008-05-16. Retrieved May 27, 2008. and Grossman, Jeremiah (2006). "Cross-Site Scripting Worms and Viruses: The Impending Threat and the Best Defense" (PDF). WhiteHat Security. p. 20. Archived from the original (PDF) on 2013-11-04. Retrieved June 6, 2008. {{cite web}}: Unknown parameter |month= ignored (help)
  14. Philippe Beaudette (2012 മെയ് 14). "If you're seeing ads on Wikipedia, your computer is probably infected with malware" (in ഇംഗ്ലീഷ്). വിക്കിമീഡിയ. Retrieved 2013 സെപ്റ്റംബർ 3. {{cite web}}: Check date values in: |accessdate= and |date= (help)