72 മണിക്കൂറിനുള്ളിൽ AI 300 വേർഡ്പ്രസ്സ് പ്ലഗിൻ ബഗുകൾ കണ്ടെത്തി

AI വേഗത്തിൽ ബഗുകൾ കണ്ടെത്തുന്നു. അത് വേഗത്തിൽ കോഡ് എഴുതുകയും ചെയ്യുന്നു. ഇത് പ്ലഗിൻ ഡെവലപ്പർമാർക്ക് അപകടകരമായ ഒരു വിടവ് സൃഷ്ടിക്കുന്നു.

സെക്യൂരിറ്റി ഗവേഷകർ വേർഡ്പ്രസ്സ് ഇക്കോസിസ്റ്റത്തിൽ 300-ലധികം നിർണ്ണായകമായ സീറോ-ഡേ (zero-day) സുരക്ഷാ വീഴ്ചകൾ കണ്ടെത്താൻ AI ഉപയോഗിച്ചു. വെറും 72 മണിക്കൂറിനുള്ളിൽ അവർ ഇത് ചെയ്തുതീർത്തു.

പ്രശ്നം 'വൈബ് കോഡിംഗ്' (vibe coding) ആണ്. ഡെവലപ്പർമാർക്ക് പരിശോധിക്കാൻ (audit) കഴിയാത്ത രീതിയിൽ LLM-കൾ നിർമ്മിച്ച കോഡ് ഉപയോഗിക്കുമ്പോഴാണ് ഇത് സംഭവിക്കുന്നത്. ഇതുമൂലം ഒരു പ്ലഗിനിൽ മാത്രം 100 വ്യത്യസ്ത സുരക്ഷാ പ്രശ്നങ്ങൾ ഉണ്ടായിരുന്നു.

നിങ്ങളുടെ പഴയ രണ്ട് സുരക്ഷാ കവചങ്ങളെയും AI ഇല്ലാതാക്കുന്നു: സമയവും (time) രഹസ്യസ്വഭാവവും (obscurity).

ആക്രമണകാരികൾ ഇപ്പോൾ സുരക്ഷാ വീഴ്ചകൾ കണ്ടെത്താൻ AI ഉപയോഗിക്കുന്നു. ഡെവലപ്പർമാർ കോഡ് എഴുതാൻ AI ഉപയോഗിക്കുന്നു. ഈ കോഡുകൾ പലപ്പോഴും താഴെ പറയുന്ന സുരക്ഷാ ഘട്ടങ്ങൾ ഒഴിവാക്കുന്നു:

  • Escaping data
  • Capability checks
  • Nonce validation

ഒരു ബഗ് റിപ്പോർട്ട് പരസ്യമാകുന്നതും അത് വ്യാപകമായി ദുരുപയോഗം ചെയ്യപ്പെടുന്നതും തമ്മിലുള്ള സമയം ഇപ്പോൾ വെറും അഞ്ച് മണിക്കൂർ മാത്രമാണ്. പ്രതികരിക്കാൻ ഇതിൽ സമയം ലഭിക്കില്ല. ഇത് നിങ്ങൾ തോൽക്കാൻ സാധ്യതയുള്ള ഒരു മത്സരമാണ്.

കഠിനമായ അനുഭവത്തിലൂടെയാണ് ഞാൻ ഇത് പഠിച്ചത്. ഞാൻ ഒരു AI ചാറ്റ്ബോട്ട് പ്ലഗിൻ നിർമ്മിച്ചിരുന്നു. ഒരു സെക്യൂരിറ്റി റിവ്യൂവിൽ എന്റെ കോഡിൽ 35 ബഗുകൾ കണ്ടെത്തി. അതിലൊന്ന് HTML injection ആയിരുന്നു.

ഞാൻ ഒരു തെറ്റ് ചെയ്തു. ഞാൻ AI നൽകുന്ന ഔട്ട്‌പുട്ടിനെ വിശ്വസിച്ചു. ഒരു മോഡൽ ആണ് ടെക്സ്റ്റ് നിർമ്മിച്ചതതുകൊണ്ട് അത് സുരക്ഷിതമാണെന്ന് ഞാൻ കരുതി. എന്നാൽ അത് അങ്ങനെയല്ല. മോഡൽ ഔട്ട്‌പുട്ടുകളിൽ ഉപയോക്താക്കളിൽ നിന്നും ബാഹ്യ സൈറ്റുകളിൽ നിന്നുമുള്ള ഡാറ്റ അടങ്ങിയിട്ടുണ്ടാകാം. അതിനാൽ അതിനെ വിശ്വസിക്കാൻ പാടില്ലാത്ത ഒന്നായി (untrusted) കാണണം.

ഞാൻ എന്റെ പ്രവർത്തനരീതി മാറ്റി. കോഡ് പ്രവർത്തിക്കുന്നു എന്നതുകൊണ്ട് മാത്രം അത് സുരക്ഷിതമാണെന്ന് ഞാൻ ഇനി കരുതുന്നില്ല. AI എഴുതിയ ഓരോ ഭാഗവും ഞാൻ മൂന്ന് മേഖലകളിൽ നേരിട്ട് പരിശോധിക്കുന്നു:

  • Input: ഡാറ്റ എങ്ങനെ സിസ്റ്റത്തിലേക്ക് പ്രവേശിക്കുന്നു.
  • Output: ഡാറ്റ എങ്ങനെ സിസ്റ്റത്തിൽ നിന്ന് പുറത്തേക്ക് പോകുന്നു.
  • Permissions: ആർക്കാണ് ഒരു പ്രവർത്തനം ചെയ്യാൻ അനുവാദമുള്ളത്.

ഔട്ട്‌പുട്ട് ഭാഗത്ത്, ഞാൻ ഇപ്പോൾ esc_html, wp_kses തുടങ്ങിയ ഫംഗ്ഷനുകൾ ഉപയോഗിക്കുന്നു. ഓരോ ഡാറ്റാബേസ് റൈറ്റിംഗിനും ഞാൻ $wpdb->prepare ഉപയോഗിക്കുന്നു. ഓരോ എൻട്രി പോയിന്റിലും current_user_can ഉപയോഗിച്ച് പെർമിഷനുകൾ ഞാൻ പരിശോധിക്കുന്നു.

യഥാർത്ഥ പ്രതിസന്ധി ബഗുകൾ മാത്രമല്ല, മറിച്ച് പ്രതികരണ സമയമാണ് (response time).

  • 52% ഡെവലപ്പർമാരും ഒരു ബഗ് പരസ്യമാകുന്നതിന് മുമ്പ് അതിന്റെ പാച്ച് (patch) പുറത്തിറക്കുന്നില്ല.
  • വെളിപ്പെടുത്തപ്പെട്ട ബഗുകളിൽ 46 ശതമാനത്തിനും പരിഹാരങ്ങൾ ലഭ്യമല്ല.

ഭൂരിഭാഗം ഡെവലപ്പർമാരും ഒറ്റയ്ക്ക് പ്രവർത്തിക്കുന്നവരാണ്. ബഗുകൾ വേഗത്തിൽ പരിഹരിക്കുന്നതിന് അവർക്ക് പ്രതിഫലം ലഭിക്കാറില്ല. AI ഈ വിടവിനെ കൂടുതൽ വ്യക്തമാക്കുന്നു.

നിങ്ങൾ പ്ലഗിനുകൾ പുറത്തിറക്കുന്നുണ്ടെങ്കിൽ, ശ്രദ്ധിച്ച് എഴുതിയാൽ മതി എന്ന് കരുതി പ്രതീക്ഷിച്ചിരിക്കരുത്. ആക്രമണകാരികൾ നിമിഷങ്ങൾക്കുള്ളിൽ നിങ്ങളുടെ സുരക്ഷാ വീഴ്ചകൾ കണ്ടെത്തും എന്ന് കരുതുക.

ഈ പ്രതിരോധ സംവിധാനങ്ങൾ ഒരുക്കുക:

  • എല്ലാ ഇൻപുട്ട്, ഔട്ട്‌പുട്ട്, പെർമിഷനുകളും നേരിട്ട് പരിശോധിക്കുക.
  • എല്ലാ മോഡൽ റെസ്‌പോൺസുകളും സാനിറ്റൈസ് (Sanitize) ചെയ്യുക.
  • ആളുകൾക്ക് നിങ്ങൾക്ക് സ്വകാര്യമായി ബഗുകൾ റിപ്പോർട്ട് ചെയ്യാൻ ഒരു മാർഗ്ഗം ഉണ്ടാക്കുക.

നിങ്ങളുടെ readme ഫയലിൽ ഒരു ലളിതമായ സെക്യൂരിറ്റി കോൺടാക്റ്റ് നൽകുന്നത് ഒരു തുടക്കമാണ്. ഒരു ബഗ് പൊതുവായ ഭീഷണിയാകുന്നതിന് മുമ്പ് റിപ്പോർട്ടുകൾക്കായി നിങ്ങൾക്ക് ഒരു ചാനൽ ആവശ്യമാണ്.

Source: https://dev.to/rapls/ai-found-300-wordpress-plugin-zero-days-in-72-hours-i-build-plugins-heres-what-changed-for-me-43na