കമ്മිට് (commit) ചെയ്യുന്നതിന് മുമ്പ് അൺകമിറ്റഡ് (uncommitted) കോഡിലെ അഞ്ച് സാധാരണ സുരക്ഷാ പിഴവുകൾ പരിശോധിക്കുന്നതിനായി GitHub, Copilot ഡെസ്ക്ടോപ്പ് ആപ്പിൽ ഒരു സ്ലാഷ്-കമാൻഡ് സ്കാനർ അവതരിപ്പിച്ചു. സൗജന്യ പ്ലാനിലുള്ളവർ ഉൾപ്പെടെ എല്ലാ Copilot ഉപയോക്താക്കൾക്കും ഈ ഫീച്ചർ ലഭ്യമാണ്, ഇതിനായി ജൂലൈ 14-ലെ ആപ്പ് അപ്‌ഡേറ്റ് മാത്രം മതിയാകും.

AI നിർമ്മിത സ്നിപ്പറ്റുകൾ (snippets) ബഗുകളുടെ ഒരു മറഞ്ഞിരിക്കുന്ന സ്രോതസ്സാണ്. ജനറേറ്റീവ് മോഡലുകൾ നിർമ്മിക്കുന്ന കോഡിൽ 45% എങ്കിലും ലളിതമായ ഇൻജക്ഷൻ ബഗുകൾ മുതൽ ദുർബലമായ ക്രിപ്റ്റോഗ്രഫി വരെയുള്ള കുറഞ്ഞത് ഒരു സുരക്ഷാ വീഴ്ചയെങ്കിലും ഉണ്ടെന്ന് സമീപകാല പഠനങ്ങൾ കണ്ടെത്തിയിട്ടുണ്ട്. ഇത്തരം പ്രശ്നങ്ങൾ പ്രാദേശികമായി (locally) തന്നെ കണ്ടെത്താൻ സാധിക്കുന്നതിലൂടെ, CI പൈപ്പ്‌ലൈനുകളിലോ അല്ലെങ്കിൽ അതിലും മോശമായ രീതിയിൽ പ്രൊഡക്ഷനിലോ ഇവ കണ്ടെത്തുന്നതിന് പകരം സെക്കൻഡുകൾക്കുള്ളിൽ തന്നെ പരിഹരിക്കാൻ ഡെവലപ്പർമാരെ സഹായിക്കാൻ GitHub ആഗ്രഹിക്കുന്നു.

എന്തുകൊണ്ടാണ് ഇത് ഇപ്പോൾ പ്രധാനമാകുന്നത്

ഡെവലപ്പർമാർ കാലങ്ങളായി വിവിധ തലങ്ങളിലുള്ള സുരക്ഷാ സംവിധാനങ്ങളെ (layered security stack) ആശ്രയിക്കുന്നു: Dependabot സുരക്ഷാ വീഴ്ചയുള്ള ഡിപെൻഡൻസികളെക്കുറിച്ച് (dependencies) മുന്നറിയിപ്പ് നൽകുന്നു, CodeQL CI/CD-യിൽ ആഴത്തിലുള്ള സ്റ്റാറ്റിക് അനാലിസിസ് നടത്തുന്നു, കൂടാതെ മാനുവൽ കോഡ് റിവ്യൂകൾ ലോജിക് പിഴവുകൾ കണ്ടെത്തുന്നു. Copilot-ന്റെ പുതിയ സ്കാനർ ഡെവലപ്പറുടെ മെഷീനിൽ തന്നെ പ്രവർത്തിക്കുന്ന ഒരു ആദ്യ പ്രതിരോധ നിരയായി മാറുന്നു, ഇത് കോഡ് എഡിറ്ററിൽ നിന്ന് പുറത്തുപോകുന്നതിന് മുമ്പ് തന്നെ ലളിതമായ പിഴവുകൾ (low-hanging fruit) കണ്ടെത്തുന്നു.

ഈ ടൂളിന്റെ പരിധി ബോധപൂർവ്വം പരിമിതപ്പെടുത്തിയിരിക്കുന്നു. ഇത് താഴെ പറയുന്നവ പരിശോധിക്കുന്നു:

  • Injection – SQL, shell അല്ലെങ്കിൽ സമാനമായ കമാൻഡ്-ഇൻജക്ഷൻ പാറ്റേണുകൾ.
  • Cross-site scripting (XSS) – വെബ് സാഹചര്യങ്ങളിൽ ഉപയോക്താക്കൾ നൽകുന്ന ഡാറ്റ സുരക്ഷിതമല്ലാത്ത രീതിയിൽ കൈകാര്യം ചെയ്യുന്നത്.
  • Insecure data handling – അബദ്ധവശാൽ രഹസ്യ വിവരങ്ങൾ (secrets) ലോഗ് ചെയ്യുന്നതോ പുറത്തുവിടുന്നതോ ആയ സാഹചര്യം.
  • Path traversal – നിശ്ചിത ഡയറക്ടറിക്ക് പുറത്തുള്ള ഫയലുകൾ ആക്സസ് ചെയ്യാനുള്ള ശ്രമങ്ങൾ.
  • Weak cryptography – കാലഹരണപ്പെട്ട അൽഗോരിതങ്ങളോ ഹാർഡ്-കോഡ് ചെയ്ത കീകൾ ഉപയോഗിക്കുന്നതോ ആയ സാഹചര്യം.

AI സഹായത്തോടെയുള്ള കോഡിംഗിൽ ഇത്തരം തെറ്റുകൾ ആവർത്തിക്കുന്നുണ്ടെന്ന് GitHub-ന്റെ ആഭ്യന്തര വിശകലനം പറയുന്നു. ഇവ നേരത്തെ തന്നെ അടയാളപ്പെടുത്തുന്നതിലൂടെ, സ്കാനർ ഒരു വേഗത്തിലുള്ള ഫിൽട്ടറായി പ്രവർത്തിക്കുന്നു; ഇത് ഡെവലപ്പർമാർക്ക് വ്യക്തമായ പ്രശ്നങ്ങൾ ഉടൻ പരിഹരിക്കാൻ സഹായിക്കുന്നു, അതേസമയം ആഴത്തിലുള്ള ആർക്കിടെക്ചറൽ റിവ്യൂകൾ നിലവിലുള്ള ടൂളുകൾക്കായി വിട്ടേക്കുന്നു.

നിലവിലുള്ള സുരക്ഷാ വർക്ക്ഫ്ലോയിൽ ഇത് എങ്ങനെ ഉൾപ്പെടുന്നു

സുരക്ഷാ സംവിധാനങ്ങളെ ഒരു ശ്രേണി (hierarchy) ആയി കരുതുക:

  • Copilot slash command – വ്യക്തമായ പാറ്റേണുകൾക്കായി പ്രാദേശികമായി നടത്തുന്ന പെട്ടെന്നുള്ള പരിശോധന.
  • CodeQL – CI/CD-യിൽ മുഴുവൻ റിപ്പോസിറ്ററിയും ഉപയോഗിച്ച് നടത്തുന്ന സമഗ്രമായ സ്റ്റാറ്റിക് അനാലിസിസ്.
  • Dependabot – ലൈബ്രറികളിലെ സുരക്ഷാ വീഴ്ചകൾ നിരീക്ഷിക്കുന്ന ഡിപെൻഡൻസി കേന്ദ്രീകൃത സ്കാനർ.

പുതിയ Copilot കമാൻഡ് CodeQL-നോ Dependabot-നോ പകരമാകുന്നില്ല; പകരം ഇത് കണ്ടെത്തലുകളുടെ ജോലിഭാരത്തിന്റെ ഒരു ഭാഗം മുൻകൂട്ടി (upstream) മാറ്റുന്നു. ഒരു ഡെവലപ്പർ കമാൻഡ് പ്രവർത്തിപ്പിക്കുമ്പോൾ, ആപ്പ് നിലവിലെ diff പാക്കേജ് ചെയ്ത് വിശകലനത്തിനായി ഒരു റിമോട്ട് മോഡലിലേക്ക് അയക്കുകയും കണ്ടെത്തലുകളുടെ ഒരു സംക്ഷിപ്ത പട്ടിക തിരികെ നൽകുകയും ചെയ്യുന്നു. ഇത് സെക്കൻഡുകൾക്കുള്ളിൽ തന്നെ പൂർത്തിയാകുന്നതിനാൽ, ഡെവലപ്പർക്ക് ഉടൻ തന്നെ കോഡ് തിരുത്തി വീണ്ടും കമ്മිට് ചെയ്യാൻ സാധിക്കുന്നു.

ഈ ഫീച്ചർ എങ്ങനെ ഉപയോഗിക്കാം

  1. Copilot ഡെസ്ക്ടോപ്പ് ക്ലയന്റ് ജൂലൈ 14-ലെ റിലീസിലേക്ക് അപ്‌ഡേറ്റ് ചെയ്യുക.
  2. പതിവുപോലെ കോഡിൽ മാറ്റങ്ങൾ വരുത്തുക.
  3. Copilot ചാറ്റ് പെയ്ൻ തുറന്ന് സ്ലാഷ് കമാൻഡ് ടൈപ്പ് ചെയ്യുക (കൃത്യമായ സിന്റാക്സ് UI-ൽ കാണാം).
  4. ലഭിച്ച സുരക്ഷാ വീഴ്ചകളുടെ പട്ടിക പരിശോധിക്കുക.
  5. കോഡ് തിരുത്തി കമ്മිට് ചെയ്യുക.

ഈ വർക്ക്ഫ്ലോ ഒരു വേഗത്തിലുള്ള ലിന്റ് (lint) റണ്ണിന് സമാനമാണ്: പ്രത്യേക സുരക്ഷാ ഡാഷ്‌ബോർഡുകളോ CI ജോബ് പൂർത്തിയാകാൻ കാത്തിരിക്കേണ്ടതിലോ ആവശ്യമില്ല.

പരിമിതികളും എതിർവാദങ്ങളും

സ്കാനർ ഒരു സഹായി മാത്രമാണെന്നും മനുഷ്യന്റെ വിവേചനബുദ്ധിക്കോ അല്ലെങ്കിൽ ആഴത്തിലുള്ള പരിശോധനകൾക്കോ പകരമാകുന്നില്ലെന്നും GitHub ഊന്നിപ്പറയുന്നു. ഇത് ഡിസൈൻ തലത്തിലുള്ള പിഴവുകളോ, അനുമതികളുടെ അഭാവമോ (missing permissions), ആപ്ലിക്കേഷനെക്കുറിച്ച് വിപുലമായ കാഴ്ചപ്പാട് ആവശ്യമുള്ള സങ്കീർണ്ണമായ ലോജിക് പിഴവുകളോ കണ്ടെത്തില്ല.

ഇനി ശ്രദ്ധിക്കേണ്ട കാര്യങ്ങൾ

ചുരുക്കത്തിൽ: GitHub-ന്റെ Copilot സ്ലാഷ്-കമാൻഡ് സ്കാനർ ഓരോ ഡെവലപ്പർക്കും വേഗതയേറിയതും സൗജന്യവും പ്രാദേശികവുമായ ഒരു സുരക്ഷാ ഫിൽട്ടർ നൽകുന്നു. ഇത് ഏറ്റവും സാധാരണമായ AI മൂലമുണ്ടാകുന്ന ബഗുകൾ കമ്മිට് ചെയ്യുന്ന സമയത്ത് തലവേദനയാകുന്നതിന് മുമ്പ് തന്നെ കണ്ടെത്തുന്നു. ഇത് ആഴത്തിലുള്ള വിശകലനങ്ങൾക്ക് പകരമാവില്ലെങ്കിലും, ലളിതമായ തെറ്റുകൾ വേഗത്തിൽ നീക്കം ചെയ്യാനും കൂടുതൽ ശ്രദ്ധ ആവശ്യമുള്ള സുരക്ഷാ ജോലികൾ അവയുടെ ശരിയായ സ്ഥാനത്ത്—അതായത് ഡിസൈൻ, റിവ്യൂ ഘട്ടങ്ങളിൽ—നിലനിർത്താനും ടീമുകളെ സഹായിക്കുന്നു.