FixVibe
Covered by FixVibecritical

SQL കുത്തിവയ്പ്പ്: അനധികൃത ഡാറ്റാബേസ് ആക്സസ് തടയുന്നു

SQL കുത്തിവയ്പ്പ് (SQLi) ഒരു ആപ്ലിക്കേഷൻ്റെ ഡാറ്റാബേസ് അന്വേഷണങ്ങളിൽ ആക്രമണകാരികൾ ഇടപെടുന്ന ഒരു ഗുരുതരമായ അപകടസാധ്യതയാണ്. ക്ഷുദ്രകരമായ SQL വാക്യഘടന കുത്തിവയ്ക്കുന്നതിലൂടെ, ആക്രമണകാരികൾക്ക് ആധികാരികത ഒഴിവാക്കാനും പാസ്‌വേഡുകളും ക്രെഡിറ്റ് കാർഡ് വിശദാംശങ്ങളും പോലുള്ള സെൻസിറ്റീവ് ഡാറ്റ കാണാനും അല്ലെങ്കിൽ അടിസ്ഥാന സെർവറിൽ വിട്ടുവീഴ്ച ചെയ്യാനും കഴിയും.

CWE-89

SQL കുത്തിവയ്പ്പിൻ്റെ ആഘാതം

SQL കുത്തിവയ്പ്പ് (SQLi) ഒരു ആപ്ലിക്കേഷൻ അതിൻ്റെ ഡാറ്റാബേസിലേക്ക് നടത്തുന്ന ചോദ്യങ്ങളിൽ ഇടപെടാൻ ഒരു ആക്രമണകാരിയെ അനുവദിക്കുന്നു [S1]. പ്രാഥമിക ആഘാതത്തിൽ ഉപയോക്തൃ പാസ്‌വേഡുകൾ, ക്രെഡിറ്റ് കാർഡ് വിശദാംശങ്ങൾ, വ്യക്തിഗത വിവരങ്ങൾ [S1] എന്നിവ പോലുള്ള സെൻസിറ്റീവ് ഡാറ്റയിലേക്കുള്ള അനധികൃത ആക്‌സസ് ഉൾപ്പെടുന്നു.

ഡാറ്റ മോഷണത്തിനപ്പുറം, ആക്രമണകാരികൾക്ക് പലപ്പോഴും ഡാറ്റാബേസ് റെക്കോർഡുകൾ പരിഷ്‌ക്കരിക്കാനോ ഇല്ലാതാക്കാനോ കഴിയും, ഇത് ആപ്ലിക്കേഷൻ സ്വഭാവത്തിലെ സ്ഥിരമായ മാറ്റങ്ങളിലേക്കോ ഡാറ്റാ നഷ്‌ടത്തിലേക്കോ നയിക്കുന്നു [S1]. ഉയർന്ന തീവ്രതയുള്ള കേസുകളിൽ, ബാക്ക്-എൻഡ് ഇൻഫ്രാസ്ട്രക്ചറിൽ വിട്ടുവീഴ്ച ചെയ്യുന്നതിനും സേവന നിരസിക്കൽ ആക്രമണങ്ങൾ പ്രവർത്തനക്ഷമമാക്കുന്നതിനും അല്ലെങ്കിൽ ഓർഗനൈസേഷൻ്റെ സിസ്റ്റങ്ങളിലേക്ക് സ്ഥിരമായ ഒരു പിൻവാതിൽ നൽകുന്നതിനും SQLi വർദ്ധിപ്പിക്കാൻ കഴിയും.

മൂലകാരണം: സുരക്ഷിതമല്ലാത്ത ഇൻപുട്ട് കൈകാര്യം ചെയ്യൽ

ഒരു SQL കമാൻഡിൽ [S2] ഉപയോഗിക്കുന്ന പ്രത്യേക മൂലകങ്ങളുടെ തെറ്റായ ന്യൂട്രലൈസേഷനാണ് SQL കുത്തിവയ്പ്പിൻ്റെ മൂലകാരണം. [S1][S2] എന്ന ചോദ്യ സ്‌ട്രിംഗിലേക്ക് നേരിട്ട് ബാഹ്യ സ്വാധീനമുള്ള ഇൻപുട്ട് സംയോജിപ്പിച്ച് ഒരു ആപ്ലിക്കേഷൻ SQL അന്വേഷണങ്ങൾ നിർമ്മിക്കുമ്പോൾ ഇത് സംഭവിക്കുന്നു.

ഇൻപുട്ട് ക്വറി ഘടനയിൽ നിന്ന് ശരിയായി വേർതിരിച്ചിട്ടില്ലാത്തതിനാൽ, ഡാറ്റാബേസ് ഇൻ്റർപ്രെട്ടർ ഉപയോക്തൃ ഇൻപുട്ടിൻ്റെ ഭാഗങ്ങൾ ലിറ്ററൽ ഡാറ്റ [S2] ആയി കണക്കാക്കുന്നതിനുപകരം SQL കോഡായി എക്സിക്യൂട്ട് ചെയ്തേക്കാം. SELECT പ്രസ്‌താവനകൾ, INSERT മൂല്യങ്ങൾ, അല്ലെങ്കിൽ UPDATE പ്രസ്‌താവനകൾ [S1] എന്നിവയുൾപ്പെടെ, ഒരു അന്വേഷണത്തിൻ്റെ വിവിധ ഭാഗങ്ങളിൽ ഈ ദുർബലത പ്രകടമാകാം.

കോൺക്രീറ്റ് പരിഹാരങ്ങളും ലഘൂകരണങ്ങളും

പാരാമീറ്റർ ചെയ്ത ചോദ്യങ്ങൾ ഉപയോഗിക്കുക

SQL കുത്തിവയ്പ്പ് തടയുന്നതിനുള്ള ഏറ്റവും ഫലപ്രദമായ മാർഗം പാരാമീറ്ററൈസ്ഡ് അന്വേഷണങ്ങളുടെ ഉപയോഗമാണ്, ഇത് തയ്യാറാക്കിയ പ്രസ്താവനകൾ [S1] എന്നും അറിയപ്പെടുന്നു. സ്ട്രിംഗുകൾ സംയോജിപ്പിക്കുന്നതിനുപകരം, ഡാറ്റയും കോഡും [S2] വേർതിരിക്കുന്ന ഘടനാപരമായ സംവിധാനങ്ങൾ ഡവലപ്പർമാർ ഉപയോഗിക്കണം.

കുറഞ്ഞ പ്രിവിലേജിൻ്റെ തത്വം

[S2] ടാസ്‌ക്കുകൾക്ക് ആവശ്യമായ ഏറ്റവും കുറഞ്ഞ പ്രത്യേകാവകാശങ്ങൾ ഉപയോഗിച്ച് അപ്ലിക്കേഷനുകൾ ഡാറ്റാബേസിലേക്ക് കണക്‌റ്റ് ചെയ്യണം. ഒരു വെബ് ആപ്ലിക്കേഷൻ അക്കൗണ്ടിന് അഡ്‌മിനിസ്‌ട്രേറ്റീവ് പ്രത്യേകാവകാശങ്ങൾ ഉണ്ടാകരുത്, കൂടാതെ അതിൻ്റെ പ്രവർത്തനത്തിന് ആവശ്യമായ [S2] നിർദ്ദിഷ്ട ടേബിളുകളിലേക്കോ പ്രവർത്തനങ്ങളിലേക്കോ പരിമിതപ്പെടുത്തിയിരിക്കണം.

ഇൻപുട്ട് മൂല്യനിർണ്ണയവും എൻകോഡിംഗും

പാരാമീറ്ററൈസേഷനു പകരമല്ലെങ്കിലും, ഇൻപുട്ട് മൂല്യനിർണ്ണയം പ്രതിരോധത്തിൽ ആഴത്തിലുള്ള [S2] നൽകുന്നു. ഇൻപുട്ട് പ്രതീക്ഷിക്കുന്ന തരങ്ങൾ, ദൈർഘ്യം, ഫോർമാറ്റുകൾ [S2] എന്നിവയുമായി പൊരുത്തപ്പെടുന്നുണ്ടെന്ന് സാധൂകരിക്കുന്ന സ്വീകാര്യമായ-അറിയപ്പെടുന്ന-നല്ല തന്ത്രം അപ്ലിക്കേഷനുകൾ ഉപയോഗിക്കണം.

എങ്ങനെയാണ് FixVibe അതിനായി പരീക്ഷിക്കുന്നത്

FixVibe ഇതിനകം ഗേറ്റഡ് active.sqli സ്കാനർ മൊഡ്യൂളിലൂടെ SQL കുത്തിവയ്പ്പ് കവർ ചെയ്യുന്നു. ഡൊമെയ്ൻ ഉടമസ്ഥാവകാശ പരിശോധനയ്ക്കും സാക്ഷ്യപ്പെടുത്തലിനും ശേഷം മാത്രമേ സജീവ സ്കാനുകൾ പ്രവർത്തിക്കൂ. ക്വറി പാരാമീറ്ററുകൾ ഉപയോഗിച്ച് ചെക്ക് ഒരേ ഉത്ഭവമുള്ള GET എൻഡ്‌പോയിൻ്റുകൾ ക്രാൾ ചെയ്യുന്നു, ഒരു അടിസ്ഥാന പ്രതികരണം സ്ഥാപിക്കുന്നു, SQL-നിർദ്ദിഷ്‌ട ബൂളിയൻ അപാകതകൾക്കായി തിരയുന്നു, കൂടാതെ ഒന്നിലധികം കാലതാമസ ദൈർഘ്യങ്ങളിലുടനീളം സമയ സ്ഥിരീകരണത്തിന് ശേഷം മാത്രം ഒരു കണ്ടെത്തൽ റിപ്പോർട്ട് ചെയ്യുന്നു. ടെംപ്ലേറ്റ് ഇൻ്റർപോളേഷൻ ഉപയോഗിച്ച് നിർമ്മിച്ച റോ SQL കോളുകൾ ഫ്ലാഗ് ചെയ്യുന്ന code.web-app-risk-checklist-backfill വഴി മൂലകാരണം കണ്ടെത്താനും റിപ്പോസിറ്ററി സ്കാനുകൾ സഹായിക്കുന്നു.