കോഡ് ഇഞ്ചക്ഷൻ

അസാധുവായ ഡാറ്റ(invalid data)പ്രോസസ്സ് ചെയ്യുന്നത് മൂലമുണ്ടാകുന്ന കമ്പ്യൂട്ടർ ബഗിനെ ചൂഷണം ചെയ്യുന്നതിനെയാണ് **കോഡ് ഇൻജക്ഷൻ** എന്ന് വിളിക്കുന്നത്. വൾനറബിലിറ്റിയുള്ള ഒരു കമ്പ്യൂട്ടർ പ്രോഗ്രാമിലേക്ക് കോഡ് അവതരിപ്പിക്കുന്നതിന് വേണ്ടി (അല്ലെങ്കിൽ "ഇൻജക്റ്റ്" ചെയ്യുന്നതിന്) അറ്റാക്കർ കോഡ് ഇഞ്ചക്ഷൻ ഉപയോഗിക്കുന്നത്. ഇത്തരത്തിൽ വിജയിപ്പിക്കാൻ സാധിച്ച കോഡ് ഇഞ്ചക്ഷന്റെ ഫലം വിനാശകരമായിരിക്കും, ഉദാഹരണത്തിന്, കമ്പ്യൂട്ടർ വൈറസുകളോ കമ്പ്യൂട്ടർ വേമുകളോ പ്രചരിപ്പിക്കാൻ അനുവദിക്കുന്നതിലൂടെ.

ഒരു ആപ്ലിക്കേഷൻ വിശ്വസനീയമല്ലാത്ത ഡാറ്റ ഒരു ഇന്റർപ്രെറ്ററിന് അയയ്‌ക്കുമ്പോൾ കോഡ് ഇഞ്ചക്ഷൻ വൾനറബിലിറ്റി സംഭവിക്കുന്നു. എസ്ക്യൂഎൽ, എൽഡിഎപി(LDAP), എക്സ്പാത്ത്(XPath), നോഎസ്ക്യൂഎൽ ക്വറികൾ, ഒഎസ്(OS) കമാൻഡുകൾ, എക്സ്എംഎൽ പാഴ്‌സറുകൾ, എസ്എംടിപി ഹെഡറുകൾ, പ്രോഗ്രാം ആർഗ്യുമെന്റുകൾ മുതലായവയിലാണ് ഇഞ്ചക്ഷനിലെ പിഴവുകൾ കൂടുതലായി കാണപ്പെടുന്നത്. പരിശോധനയിലൂടെ കണ്ടെത്തുന്നതിനേക്കാൾ  സോഴ്സ് കോഡ് പരിശോധിക്കുമ്പോൾ ഇഞ്ചക്ഷൻ മൂലം സംഭവിക്കുന്ന പിഴവുകൾ കണ്ടെത്തുന്നത് എളുപ്പമായിരിക്കും.സ്കാനറുകളും ഫസറുകളും ഉപയോഗിച്ച് ഇഞ്ചക്ഷൻ മൂലം സംഭവിക്കുന്ന പിഴവുകൾ കണ്ടെത്താൻ സഹായിക്കും.

ഇൻജക്ഷൻ മൂലം ഡാറ്റ നഷ്‌ടത്തിനോ, കറപ്ക്ഷനോ, ലാക്ക് ഓഫ് അക്കൗണ്ടബിറ്റിയോ അല്ലെങ്കിൽ പ്രവേശനം നിരസിക്കന്നതിനോ കാരണമാകാം. ഇൻജക്ഷൻ ചിലപ്പോൾ പൂർണ്ണമായി ഹോസ്റ്റ് ഏറ്റെടുക്കുന്നതിലേക്ക് നയിച്ചേക്കാം.

ചില തരത്തിലുള്ള കോഡ് ഇഞ്ചക്ഷനുകൾ ഇന്റർപ്രെട്ടേഷനിലുള്ള പിശകുകളാണ്, ഇത് ഉപയോക്താവ് നല്കുന്ന ഇൻപുട്ടിന് പ്രത്യേക അർത്ഥം നൽകുന്നു. കമ്പ്യൂട്ടർ സയൻസിന്റെ ലോകത്തിന് പുറത്തും സമാനമായ ഇന്റർപ്രെട്ടേഷൻ പിശകുകൾ നിലവിലുണ്ട്, ഹാസ്യ ദിനചര്യയായ ഹൂസ് ഓൺ ഫസ്റ്റ്?("ഹൂസ് ഓൺ ഫസ്റ്റ്?" എന്നത് ഒരു അമേരിക്കൻ കോമഡി പരിപാടിയാണിത്, കോമഡി കലാകാരന്മാരായ അബോട്ടും കോസ്റ്റെല്ലോയും ചേർന്ന് അവതരിപ്പിച്ചിരുന്ന ഒരു ക്ലാസിക് കോമഡി റുട്ടീനാണിത്.). പതിവായി നൽകുന്ന വാക്കുകളിൽ നിന്ന് ശരിയായ പേരുകൾ വേർതിരിച്ചറിയുന്നതിൽ പരാജയപ്പെടുന്നു. അതുപോലെ തന്നെ, ചില തരത്തിലുള്ള കോഡ് ഇഞ്ചക്ഷനുകൾ മൂലം, സിസ്റ്റം കമാൻഡുകളിൽ നിന്ന് ഉപയോക്താവ് നൽകിയ ഇൻപുട്ട് വേർതിരിച്ചറിയുന്നതിൽ പരാജയപ്പെടുന്നു.

സിസ്റ്റം ഹാക്കിംഗ് അല്ലെങ്കിൽ ക്രാക്കിംഗ്, വിവരങ്ങൾ, പ്രവിലേജ് എസ്കലേഷൻ അല്ലെങ്കിൽ ഒരു സിസ്റ്റത്തിലേക്കുള്ള അനധികൃതമായി പ്രവേശിക്കുക എന്നിവയിൽ കോഡ് ഇഞ്ചക്ഷൻ ടെക്നിക്കുകൾ ഹാക്കറന്മാക്ക് പ്രിയപ്പെട്ടതാണ്. ഇനിപ്പറയുന്നവ ഉൾപ്പെടെ നിരവധി ആവശ്യങ്ങൾക്കായി കോഡ് ഇഞ്ചക്ഷൻ ദോഷകരമായി ഉപയോഗിക്കാം:
*എസ്ക്യൂഎൽ(SQL) ഇൻജക്ഷൻ വഴി ഒരു ഡാറ്റാബേസിലെ മൂല്യങ്ങൾ ഏകപക്ഷീയമായി പരിഷ്ക്കരിക്കുന്നു. ഇതിന്റെ ആഘാതം വെബ്‌സൈറ്റ് ഡീഫേസ്മെന്റ് മുതൽ സെൻസിറ്റീവ് ഡാറ്റയു‌ടെ ഗുരുതരമായ ചോർച്ച സംഭവിക്കുന്നത് വരെയാകാം.
*സെർവർ സ്‌ക്രിപ്റ്റിംഗ് കോഡ് (പിഎച്ച്പി(PHP) അല്ലെങ്കിൽ എഎസ്പി(ASP) പോലുള്ളവ) ഇഞ്ചക്ട് ചെയ്ത് ഒരു സെർവറിൽ മാൽവെയർ ഇൻസ്റ്റാൾ ചെയ്യുകയോ മെയിൽവൊലന്റ് കോഡ് നടപ്പിലാക്കുകയോ ചെയ്യുന്നു.
*യുണിക്സിലെ സെറ്റ്യൂഡ് റൂട്ട് ബൈനറിയിലെ ഷെൽ ഇൻജക്ഷൻ വൾനറബിലിറ്റി മുതലെടുത്ത് റൂട്ട് അനുമതികളിലേക്കുള്ള പ്രിവിലേജ് എസ്കലേഷൻ നേടുന്നു, അല്ലെങ്കിൽ മൈക്രോസോഫ്റ്റ് വിൻഡോസിൽ ഉള്ള ലോക്കൽ സിസ്റ്റത്തിലെ ഒരു സേവനം ഉപയോഗപ്പെടുത്തുന്നു.
*എച്ച്ടിഎംഎൽ/സ്ക്രിപ്റ്റ് ഇൻജക്ഷൻ (ക്രോസ് സൈറ്റ് സ്ക്രിപ്റ്റിംഗ്) ഉപയോഗിച്ച് വെബ് ഉപയോക്താക്കളെ ആക്രമിക്കുന്നു.
2008-ൽ, എല്ലാ വൾനറബിലിറ്റികളെയും കൂടി 5.66% ആ വർഷം കോഡ് ഇഞ്ചക്ഷൻ ആയി തരംതിരിച്ചിട്ടുണ്ട്, ഇത് ഏറ്റവും ഉയർന്ന റെക്കോർഡിലെത്തിയ വർഷമാണ്. 2015ൽ ഇത് 0.77 ശതമാനമായി കുറഞ്ഞു.
## ഗുണകരമല്ലാത്തതും ആസൂത്രിതമില്ലാത്തതുമായ ഉപയോഗം
കോഡ് ഇഞ്ചക്ഷൻ നല്ല ഉദ്ദേശ്യത്തോടെ ഉപയോഗിക്കാം; ഉദാഹരണത്തിന്, കോഡ് ഇഞ്ചക്ഷനിലൂടെ ഒരു പ്രോഗ്രാമിന്റെയോ സിസ്റ്റത്തിന്റെയോ സ്വഭാവം മാറ്റുകയോ ട്വീക്ക് ചെയ്യുകയോ ചെയ്യുന്നത് ഒരു മലിഷ്യസ് ഇന്റന്റ്(malicious intent-കേടുപാടുകൾ വരുത്തുക, വിവരങ്ങൾ മോഷ്ടിക്കുക, അല്ലെങ്കിൽ കമ്പ്യൂട്ടർ സിസ്റ്റങ്ങൾ, നെറ്റ്‌വർക്കുകൾ അല്ലെങ്കിൽ സോഫ്റ്റ്‌വെയർ ആപ്ലിക്കേഷനുകൾ എന്നിവയുടെ സാധാരണ പ്രവർത്തനത്തെ തടസ്സപ്പെടുത്തുക എന്ന ഉദ്ദേശ്യത്തോടെ വ്യക്തികളോ സോഫ്റ്റ്‌വെയർ പ്രോഗ്രാമുകളോ എടുക്കുന്ന ബോധപൂർവവും ഹാനികരവുമായ പ്രവർത്തനങ്ങളെയാണ് മലിഷ്യസ് ഇന്റന്റ് എന്ന പദം സൂചിപ്പിക്കുന്നത്.) കൂടാതെ സിസ്റ്റത്തെ ഒരു പ്രത്യേക രീതിയിൽ പെരുമാറാൻ ഇടയാക്കും.കോഡ് ഇഞ്ചക്ട് ചെയ്യാം, ഉദാഹരണത്തിന്:
*ഒരു സെർച്ച് റിസൾട്ട് പേജിന്റെ യഥാർത്ഥ രൂപകൽപ്പനയിൽ ദൃശ്യമാകാത്ത ഉപയോഗപ്രദമായ ഒരു പുതിയ കോളം അവതരിപ്പിക്കാൻ സാധിക്കും.
*യഥാർത്ഥ ഡിസൈനിന്റെ ഡിഫോൾട്ട് ഫംഗ്‌ഷനുകളിൽ വെളിപ്പെടുത്താത്ത ഒരു ഫീൽഡ് ഉപയോഗിച്ച് ഡാറ്റ ഫിൽട്ടർ ചെയ്യുന്നതിനോ ഓർഡർ ചെയ്യുന്നതിനോ ഗ്രൂപ്പ് ചെയ്യുന്നതിനോ ഉള്ള ഒരു പുതിയ മാർഗം വാഗ്ദാനം ചെയ്യുന്നു.
*ഡ്രോപ്പ്ബോക്‌സ് പോലുള്ള പ്രോഗ്രാമുകളെ സംബന്ധിച്ചിടത്തോളം, ഒരു ഓഫ്‌ലൈൻ പ്രോഗ്രാമിൽ ഓൺലൈൻ ഉറവിടങ്ങളിലേക്ക് കണക്റ്റുചെയ്യാൻ ഉപയോഗിക്കാവുന്ന പ്രത്യേക ഭാഗങ്ങൾ ചേർക്കുന്നു.
*ചില ലിബ്ക് ഫംഗ്‌ഷനുകളുടെ അതേ പേരിൽ തന്നെ ഒരു ഫംഗ്‌ഷൻ നിർവചിക്കുന്നതിനും ആ ഫംഗ്‌ഷൻ ഒരു ലൈബ്രറിയായി ലിങ്ക് ചെയ്യുന്നതിനും ലിബ്ക്(libc) ഫംഗ്‌ഷന്റെ ഉപയോഗം അസാധുവാക്കുന്നതിനും ലിനക്സ് ഡൈനാമിക് ലിങ്കർ(Linux Dynamic Linker) ഉപയോഗിക്കുന്നു.

## അവലംബം

വർഗ്ഗം:കമ്പ്യൂട്ടർ പ്രോഗ്രാമിങ്ങ്