Jump to content

ആർബിട്ടറി കോഡ് എക്സിക്യൂഷൻ

വിക്കിപീഡിയ, ഒരു സ്വതന്ത്ര വിജ്ഞാനകോശം.
(Arbitrary code execution എന്ന താളിൽ നിന്നും തിരിച്ചുവിട്ടതു പ്രകാരം)

കമ്പ്യൂട്ടർ സുരക്ഷ ശാഖയിൽ വിവരിക്കുന്നത് പ്രകാരം, ആർബിട്ടറി കോഡ് എക്സിക്യൂഷൻ (എസിഇ) എന്നത് ആക്രമണകാരി ലക്ഷ്യമാക്കുന്ന മെഷീനിലോ ടാർഗെറ്റ് പ്രോസസ്സിലോ ആക്രമണകാരിക്ക് ഇഷ്ടമുള്ള ഏതെങ്കിലും കമാൻഡുകളോ കോഡോ പ്രവർത്തിപ്പിക്കാനുള്ള ഒരു ആക്രമണകാരിയുടെ കഴിവിനെയാണ് സൂചിപ്പിക്കുന്നത്.[1]സോഫ്‌റ്റ്‌വെയറിലോ ഹാർഡ്‌വെയറിലോ ആർബിട്ടറി കോഡ് എക്‌സിക്യൂഷൻ അനുവദിക്കുന്ന സുരക്ഷാ പിഴവാണ് ആർബിട്ടറി കോഡ് എക്‌സിക്യൂഷൻ വൾനറബലിറ്റി. അത്തരമൊരു അപകടസാധ്യതയെ പ്രയോജനപ്പെടുത്താൻ രൂപകൽപ്പന ചെയ്ത ഒരു പ്രോഗ്രാമിനെ ആർബിട്ടറി കോഡ് എക്സിക്യൂഷൻ എക്സ്പ്ലോയിറ്റ് എന്ന് വിളിക്കുന്നു. ഒരു നെറ്റ്‌വർക്കിലൂടെ (പ്രത്യേകിച്ച് ഇന്റർനെറ്റ് പോലുള്ള വൈഡ് ഏരിയ നെറ്റ്‌വർക്ക് വഴി) ആർബിട്ടറി കോഡ് എക്‌സിക്യൂഷൻ പ്രവർത്തനക്ഷമമാക്കാനുള്ള കഴിവിനെ പലപ്പോഴും റിമോട്ട് കോഡ് എക്‌സിക്യൂഷൻ (ആർസിഇ) എന്ന് വിളിക്കുന്നു.[2]

വൾനറബിലിറ്റി ടൈപ്പ്സ്

[തിരുത്തുക]

ആർബിട്ടറി കമാൻഡുകളോ കോഡുകളോ നടപ്പിലാക്കാനുള്ള ആക്രമണകാരി ഉപയോഗിക്കാൻ സാധ്യതയുള്ള നിരവധി തരം വൾനറബിലിറ്റികളുണ്ട്. ഇതിന് ഉദാഹരണങ്ങൾ താഴെ ചേർക്കുന്നു:

  • ബഫർ ഓവർഫ്ലോകൾ അല്ലെങ്കിൽ ഓവർ റീഡുകൾ പോലെയുള്ള മെമ്മറി സുരക്ഷാ തകരാറുകൾ.
  • ഡിസീരിയലൈസേഷൻ വൾനറബിലിറ്റികൾ[3]
  • ടൈപ്പ് കൺഫ്യൂഷൻ വൾനറബിലിറ്റികൾ[4][5]
  • ഗ്നൂ എൽഡിഡി(GNU LDD)ആർബിട്ടറി കോഡ് എക്സിക്യൂഷൻ[6]

മെത്തേഡുകൾ

[തിരുത്തുക]

ഒരു റണ്ണിംഗ് പ്രോസസിന്റെ ഇൻസ്ട്രക്ഷൻ പോയിന്ററിന്റെ (ജമ്പ് അല്ലെങ്കിൽ ബ്രാഞ്ച് പോലുള്ളവ) നിയന്ത്രണത്തിലൂടെയാണ് ആർബിട്ടറി കോഡ് എക്സിക്യൂഷൻ സാധാരണയായി നടപ്പാക്കുന്നത്. എക്സിക്യൂട്ട് ചെയ്യുന്ന പ്രക്രിയയിലേക്ക് അടുത്ത നിർദ്ദേശം ഇൻസ്ട്രക്ഷൻ പോയിന്റർ നൽകുന്നു. ഇൻസ്ട്രക്ഷൻ പോയിന്ററിന്റെ മൂല്യത്തിന് മേലുള്ള നിയന്ത്രണം അതിനാൽ അടുത്തതായി ഏത് നിർദ്ദേശം നടപ്പിലാക്കണം എന്നതിന് കൺട്രോൾ നൽകുന്നു. ഇൻസ്ട്രക്ഷൻ പോയിന്ററിൽ കൺട്രോൾ ഉണ്ടായിരിക്കുക എന്നതിനർത്ഥം ഒരു പ്രോഗ്രാമിലെ ഏത് നിർദ്ദേശമാണ് അടുത്തതായി നടപ്പിലാക്കേണ്ടതെന്ന് തീരുമാനിക്കാനുള്ള കഴിവ് എന്നാണ്. ആർബിട്ടറി കോഡ് എക്സിക്യൂട്ട് ചെയ്യുന്നതിനായി, പല തരത്തിലുള്ള ചൂഷണങ്ങൾ നടത്തി പ്രോസസിലേക്ക് കോഡ് ഇൻജക്ട് ചെയ്യുന്നു (ഉദാഹരണത്തിന് റാമിലെ ഇൻപുട്ട് ബഫറിൽ സംഭരിച്ചിരിക്കുന്ന ഇൻപുട്ട് റാമിലേക്ക് അയയ്‌ക്കുന്നതിലൂടെ കമ്പ്യൂട്ടറിന്റെ മെമ്മറിയിലേക്ക് പ്രത്യേക സന്ദേശങ്ങൾ അയയ്ക്കുന്നതിന് എന്താണ് ചെയ്യേണ്ടതെന്ന് തീരുമാനിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു.) കൂടാതെ ഇൻ‌സ്ട്രക്ഷൻ പോയിന്റർ ഇൻജക്‌റ്റ് ചെയ്‌ത കോഡിലേക്ക് പോയിന്റു ചെയ്യുന്നതിന് ഒരു വൾനറബിലിറ്റി ഉപയോഗിക്കുന്നു. ഇൻജക്ട് ചെയ്ത കോഡ് സ്വയമേവ എക്സിക്യൂട്ട് ചെയ്യും. മിക്ക കമ്പ്യൂട്ടറുകളും (വോൺ ന്യൂമാൻ ആർക്കിടെക്ചർ ഉപയോഗിക്കുന്നവ) കോഡും ഡാറ്റയും തമ്മിൽ വ്യത്യാസം കാണിക്കുന്നില്ല എന്ന വസ്തുത മുതലെടുത്താണ് ഇത്തരത്തിലുള്ള ആക്രമണങ്ങൾ നടത്തുന്നത്,[7][8]അതിനാൽ മലിഷ്യസ് കോഡിന് നിരുപദ്രവകരിയായ ഇൻപുട്ട് ഡാറ്റയായി ഭാവിച്ച് മറഞ്ഞിരിക്കാൻ കഴിയും. പല പുതിയ സിപിയുകൾക്കും നോ-എക്‌സിക്യൂട്ട് ബിറ്റ് പോലുള്ള ഫീച്ചർ ഉപയോഗിക്കുന്നതിനാൽ ആരെങ്കിലും കബളിപ്പിക്കാൻ ശ്രമിച്ചാലും ആ ഘട്ടങ്ങൾ പാലിക്കരുതെന്ന് സിപിയുവിന് നിർദ്ദേശം നൽകുന്നു. തന്മൂലം അനാവശ്യ നിർദ്ദേശങ്ങളിൽ നിന്ന് കമ്പ്യൂട്ടറിനെ സംരക്ഷിക്കാൻ ഇത് സഹായിക്കുന്നു.[9][10]

അവലംബം

[തിരുത്തുക]
  1. Team, KernelCare (25 January 2021). "Remote code execution attack: what it is, how to protect your systems". blog.kernelcare.com (in ഇംഗ്ലീഷ്). Retrieved 2021-09-22.
  2. "What is remote code execution (RCE)?". Retrieved 20 Aug 2023.
  3. "Deserialization of untrusted data". owasp.org.
  4. "Understanding type confusion vulnerabilities: CVE-2015-0336". microsoft.com. 18 June 2015.
  5. "Exploiting CVE-2018-19134: remote code execution through type confusion in Ghostscript". lgtm.com. 5 February 2019.
  6. "LDD arbitrary code execution".
  7. Gilreath, William F.; Laplante, Phillip A. (2003-03-31). Computer Architecture: A Minimalist Perspective (in ഇംഗ്ലീഷ്). Springer Science & Business Media. ISBN 9781402074165.
  8. Reilly, Edwin D. (2003). Milestones in Computer Science and Information Technology (in ഇംഗ്ലീഷ്). Greenwood Publishing Group. p. 245. ISBN 9781573565219.
  9. "Tech Insight: Execute Disable Bit (XD-Bit)" (PDF). toshiba.pl. 2005. Archived from the original (PDF) on 2018-10-31. Retrieved 2023-08-21.
  10. "AMD has you covered" (PDF). amd.com. 2012.