സുജിത് കുമാർ
ഒരു വാട്സപ്പ് മിസ്സ്ഡ് കാളിലൂടെ ഫോൺ ഹാക്ക് ചെയ്യപ്പെട്ടു എന്നതിൽ വല്ല സത്യവുമുണ്ടോ? ഇത് സാധ്യമാണോ? ആണെങ്കിൽ എങ്ങിനെയായിരിക്കും അത് സംഭവിച്ചിട്ടുണ്ടായിരിക്കുക?
വാട്സപ്പ് മിസ്ഡ് വോയ്സ് കാളിലൂടെ ഫോൺ ഹാക്ക് ചെയ്യപ്പെട്ടു എന്നത് വാട്സപ്പ് തന്നെ അംഗീകരിച്ചതാണ്. അതുകൊണ്ട് ആ വിഷയത്തിൽ തർക്കം ഇല്ല. പൊതുവേ മാൽവെയർ ഉള്ള ലിങ്കുകൾ തുറക്കുന്നതു വഴിയും വ്യാജ ആപ്പുകൾ ഇൻസ്റ്റാൾ ചെയ്യുന്നതുവഴിയുമൊക്കെയാണ് ഫോണുകളിൽ മാൽവെയറുകൾ കയറിക്കൂടുന്നത്. പക്ഷേ ഇവിടെ അങ്ങനെ ഒന്നും ഇല്ലാതെതന്നെ ഏതോ ഒരു അജ്ഞാത നമ്പറിൽ നിന്നും വന്ന വാട്സപ്പ് വോയ്സ് കാളിലൂടെ – അതും അറ്റന്റ് ചെയ്യാത്ത കാളിലൂടെ ഫോണിലെ സകല വിവരങ്ങളും ചോർത്താനും ഫോണിന്റെ വിദൂര നിയന്ത്രണം സാധ്യമാക്കാനും തക്ക ശക്തമായ ഒരു മാൽവെയർ കയറിക്കൂടുക എന്നു വച്ചാൽ വിശ്വസിക്കാൻ പ്രയാസമായിരിക്കും അല്ലേ?
വാട്സപ്പിലെ വോയ്സ് കാളിംഗ് ഫീച്ചറിലെ ബഫർ ഓവർ ഫ്ലോ പഴുതുകൾ മുതലെടുത്ത് മാൽവെയറുകൾ കടത്തി വിടാൻ കഴിയുന്നു എന്നും അതിന്റെ പാച്ച് അപ്ഡേറ്റിലൂടെ പുറത്തു വിട്ടിട്ടൂണ്ടെന്നും ഈ കഴിഞ്ഞ മെയ് മാസത്തിൽ ഫേസ്ബുക്ക് ഔദ്യോഗികമായിത്തന്നെ പുറത്തു വിട്ടിരുന്നു.1 ഇസ്രായേൽ കമ്പനിയായ NSO യുടെ കുപ്രസിദ്ധമായ Pegasus എന്ന സ്പൈ വെയറാണ് ഇതെന്ന് കണ്ടെത്തിയതിനെത്തുടർന്ന് വാട്സപ്പ് ഇവർക്കെതിരെ പരാതി നൽകിയിട്ടുമുണ്ട്.
ആൻഡ്രോയ്ഡ് / ഐ ഓ എസ് സ്മാർട്ട് ഫോൺ പ്ലാറ്റ്ഫോമുകളിൽ നിന്നും രഹസ്യമായി വിവരങ്ങൾ ചോർത്താൽ ലക്ഷ്യമിട്ട് നിർമ്മിയ്ക്കപ്പെട്ട ഒരു സ്പൈവെയർ ആണ് പെഗാസിസ്. സർക്കാർ സ്ഥാപനങ്ങൾക്ക് തീവ്രവാദ വിരുദ്ധ പ്രവർത്തനങ്ങൾക്ക് വേണ്ടി മാത്രമേ തങ്ങളുടെ ഈ സോഫ്റ്റ്വെയർ വിപണനം ചെയ്യുന്നുള്ളൂ എന്നാണ് NSO പറയുന്നത്.
പെഗാസിസിന്റെ സാന്നിദ്ധ്യവും പ്രവർത്തന രീതിയുമൊക്കെ 2018 ൽ തന്നെ വിവിധ സൈബർ സുരക്ഷാ സ്ഥാപനങ്ങൾ കണ്ടെത്തിയിരുന്നു. പക്ഷേ മികച്ച വിൽപ്പനാനന്തര സേവനം ഉറപ്പ് നൽകുന്ന ഒരു കമ്പനിയാണ് NSO എന്നതിനാൽ ഒരു വാതിൽ അടയുമ്പോൾ പത്തു പുതിയ വാതിലുകൾ അവർ അവരുടെ ഉപഭോക്താക്കൾക്കായി കണ്ടെത്തി, അതനുസരിച്ച് തങ്ങളുടെ മാൽവെയർ അപ്ഡേറ്റ് ചെയ്തുകൊണ്ടിരിക്കുന്നു.
വാട്സപ്പ് മിസ്സ്ഡ് കാൾ ഹാക്കിന്റെ ഉള്ളുകള്ളികൾ
എന്തായാലും വാട്സപ്പ് മിസ്സ്ഡ് കാൾ ഹാക്കിന്റെ ചില ഉള്ളുകള്ളികൾ അറിയാൻ ശ്രമിക്കാം. “A buffer overflow vulnerability in WhatsApp VOIP stack allowed remote code execution via a specially crafted series of RTCP packets sent to a target phone number.”ഇതാണ് വാട്സപ്പിനെ കുഴിയിൽ ചാടിച്ചത്. എന്തെങ്കിലും മനസ്സിലായോ? ബഫർ ഓവർ ഫ്ലോ, RTCP പാക്കറ്റ്, VOIP Stack… ആകെ ജഗപൊക. അല്ലേ?
സാധാരണക്കാർക്ക് പെട്ടെന്ന് മനസ്സിലാകുന്ന രീതിയിലേക്ക് ഇതൊന്ന് അവതരിപ്പിക്കുക അത്ര എളുപ്പമല്ല. എങ്കിലും ഒന്ന് ശ്രമിച്ച് നോക്കാം.
വിശ്വസിച്ചുനൽകിയ അനുമതികൾ
വാട്സപ്പ് എന്ന ഒരൊറ്റ ആപ്പിന് നിങ്ങളുടെ ഫോണിലെ കോണ്റ്റാക്റ്റ്സ്, കാമറ, മെസേജ്, മൈക്രോഫോൺ, സ്റ്റോറേജ്, നെറ്റ് വർക്ക്, എന്നു വേണ്ട അത്യാവശ്യം എല്ലാത്തിലും കൈകടത്താനുള്ള അനുവാദവും അവകാശം നമ്മൾ അനുവദിച്ച് കൊടുത്തിട്ടുണ്ടല്ലോ. അതായത് നിങ്ങളുടെ ക്യാമറ നിങ്ങൾ അറിഞ്ഞോ അറിയാതെയോ ഓൺ ആക്കാനും നിങ്ങളുടെ ശബ്ദം റെക്കോഡ് ചെയ്യാനും നിങ്ങൾക്ക് ബാങ്കിൽ നിന്നും വന്ന ഓ.ടി.പി. മെസേജുകൾ വായിക്കാനുമൊക്കെ വാട്സപ്പിന് അനുവാദം ഉണ്ട്, വാട്സപ്പിന് അതു കഴിയുകയും ചെയ്യും. ഇതിനൊക്കെ നമ്മൾ വാട്സപ്പിനു അനുവാദം നൽകുന്നത് എന്ത് ധൈര്യത്തിലാണ്? ഉത്തരവാദിത്ത ബോധമുള്ള നല്ല വിശ്വാസ്യതയുള്ള ഒരു കമ്പനിയായതുകൊണ്ടും അവർ നമ്മളെ കുഴിയിൽ ചാടിക്കില്ല എന്ന ഉത്തമ വിശ്വാസം കൊണ്ടും തന്നെ. പക്ഷേ ഈ പറഞ്ഞ വാട്സപ്പിൽ അവർ പോലുമറിയാതെ ഒരു കള്ളൻ കയറിക്കൂടിയാലോ? നല്ല പിള്ളയായ വാട്സപ്പ് കാണിക്കുന്ന മര്യാദയൊന്നും കള്ളനു പാലിക്കേണ്ട ആവശ്യമില്ലല്ലോ. അവൻ വാട്സപ്പിനു ലഭിച്ച ആനുകൂല്ല്യങ്ങൾ എല്ലാം ദുരുപയോഗം ചെയ്യാൻ തുടങ്ങും. അതായത് ദൂരെ ഇരിക്കുന്ന യജമാനന്റെ ആജ്ഞകൾക്ക് അനുസരിച്ച് നിങ്ങൾ കാണാതെയും നിങ്ങളൂടെ അനുവാദമില്ലാതെയും സംഭാഷണങ്ങൾ റെക്കോഡ് ചെയ്യും, ക്യാമറ പ്രവർത്തിപ്പിക്കും, നിങ്ങൾക്ക് വന്ന മെസേജുകൾ വായിക്കും, മെമ്മറി കാർഡിലെ ഫയലുകൾ പകർത്തും.
ബഫർ ഓവർ ഫ്ലോയെക്കുറിച്ച് ചില കാര്യങ്ങൾ
ഇനി ഈ കള്ളൻ എങ്ങിനെ ഒരു മിസ്സ്ഡ് കാളിലൂടെ വാട്സപ്പിനകത്ത് കയറിക്കൂടി എന്ന് മനസ്സിലാക്കാൻ ഈ കുഴപ്പത്തിനു കാരണമായ ബഫർ ഓവർ ഫ്ലോയെക്കുറിച്ച് അടിസ്ഥാനപരമായ ചില കാര്യങ്ങൾ അറിഞ്ഞിരിക്കണം.
കമ്പ്യൂട്ടർ / മൊബൈൽ സോഫ്റ്റ്വെയറുകളിലെ ബഫർ എന്നുവച്ചാൽ താല്കാലികമായി ഡാറ്റ സൂക്ഷിച്ചു വച്ചിരിക്കുന്ന നിശ്ചിത കപ്പാസിറ്റി ഉള്ള മെമ്മറിയുടെ ഒരു ഭാഗം.
സോഫ്റ്റ് വെയറിന്റെ ഒരു ഭാഗത്തു നിന്നും മറ്റൊരു ഭാഗത്തേക്ക് ഡാറ്റ പ്രോസസ്സ് ചെയ്യാനായി മാറ്റുന്നതിനു മുൻപ് ഈ ബഫറിൽ ആയിരിക്കും സൂക്ഷിക്കുക. അതായത് നമ്മൾ ഡൈനിംഗ് ടേബിളിലെ ജഗ്ഗിൽ വെള്ളം എടുത്തു വയ്ക്കുന്നതുപോലെ. വാട്ടർ ടാങ്കിനും വെള്ളം കുടിക്കുന്ന ഗ്ലാസിനും ഇടയ്ക്കുള്ള ഒരു ബഫർ ആയി വേണമെങ്കിൽ ജഗ്ഗിനെ വിളിക്കാം. ജഗ്ഗിനുള്ളതുപോലെത്തന്നെ ഏത് പ്രോഗ്രാം ബഫറിനും പ്രോഗ്രാമിന്റെ ഘടനയ്ക്ക് അനുസരിച്ച് പ്രോഗ്രാമർ നിശ്ചിത അളവ് നിശ്ചയിച്ചിട്ടുണ്ടാകും. ഒരു ലിറ്റർ വെള്ളം കൊള്ളുന്ന ജഗ്ഗിൽ രണ്ടു ലിറ്റർ വെള്ളം ഒഴിക്കാൻ ശ്രമിച്ചാൽ എന്തായിരിക്കും ഫലം? ജഗ്ഗിൽ നിന്നും വെള്ളം നിറഞ്ഞൊഴുകി മുറിയിലാകെ പരക്കും. ഇതുപോലെ ഒരു പ്രശ്നം വേണ്ട രീതിയിൽ ശ്രദ്ധയോടെ പ്രോഗ്രാം ചെയ്യാത്ത സോഫ്റ്റ്വെയറുകൾക്കുമുണ്ട്.
ഏതൊരു സോഫ്റ്റ്വെയറിലും പ്രോഗ്രാം മെമ്മറിയും ഡേറ്റാ മെമ്മറിയും ഉണ്ട്. ഇതിൽ പ്രോഗ്രാം മെമ്മറിയിൽ ആണ് ഡേറ്റ എന്തു ചെയ്യണം എന്നും പ്രോഗ്രാം എങ്ങിനെ പ്രവർത്തിക്കണമെന്നുമൊക്കെയുള്ള സകല നിർദ്ദേശങ്ങളും വിവരങ്ങളുമൊക്കെ അടങ്ങിയിരിക്കുക. പ്രോഗ്രാം മെമ്മറിയ്ക്കും ഡേറ്റാ മെമ്മറിക്കും ഇടയിൽ ആണ് ബഫർ വരുന്നത്. പ്രോഗ്രാം ബഫറിൽ നിന്നും ഡേറ്റ എടുത്ത് പ്രോസസ് ചെയ്ത് ഡേറ്റാ മെമ്മറിയിലേക്കും നേരെ തിരിച്ചും കൈമാറ്റം ചെയ്തുകൊണ്ടിരിക്കുന്നു. ഇവിടെ ബഫറിനു താങ്ങാൻ കഴിയാത്തതിലും ഡേറ്റ അതിലേക്ക് തള്ളിക്കയറുന്നതോ കയറ്റുന്നതോ ആയ സാഹചര്യം ഉണ്ടായാൽ എന്തു സംഭവിക്കും? ജഗ്ഗിൽ നിന്നും വെള്ളം നിറഞ്ഞ് കവിഞ്ഞ് മുറിയിൽ മുഴുവൻ വ്യാപിക്കുന്നതുപോലെ ബഫറിൽ നിന്നും നിറഞ്ഞ് കവിയുന്ന ഡേറ്റ പ്രോഗ്രാം മെമ്മറിയിലേക്കും വ്യാപിക്കാം. അതുകൊണ്ടുള്ള പ്രശ്നം? പ്രോഗ്രാമിന്റെ പ്രവർത്തനം മുഴുവൻ അവതാളത്തിലാകും, പ്രോഗ്രാം തകരാറിലാകും. ജഗ്ഗ് നിറഞ്ഞ് വെള്ളം മുറിയിൽ നിറഞ്ഞ് മുറിയിലെ ഉപകരണങ്ങൾ നശിപ്പിക്കുന്നതുപോലെ പ്രോഗ്രാമിനെ ഇത്തരത്തിൽ ബഫർ നിറച്ചുകൊണ്ടുള്ള ഡേറ്റ തകരാറിലാക്കുന്നു. ഇവിടെ നിറയ്ക്കുന്ന ഡേറ്റ യഥാർത്ഥ ഒരു മാൽവെയർ പാക്കറ്റ് ആണെങ്കിലോ? അത് പ്രൊഗ്രാമിന്റെ സുരക്ഷാ സംവിധാനങ്ങളെല്ലാം ഭേദിച്ച് അകത്ത് കയറിക്കൂടാൻ അവസരം ഉണ്ടാക്കുന്നു. അതുകൊണ്ട് പ്രോഗ്രാമർമ്മാർ ബഫർ ഓവർ ഫ്ലോ ഒഴിവാക്കാനുള്ള മുൻകരുതലുകൾ എടുക്കാൻ പ്രത്യേകം ശ്രദ്ധിക്കാറുണ്ട് എങ്കിലും ചതുരംഗക്കളിയിൽ എന്നതുപോലെ എതിരാളിക്ക് മുൻകൂട്ടി കാണാൻ കഴിയാത്ത നീക്കങ്ങൾ നടത്തുന്നവനായിരിക്കും ഇവിടെയും വിജയം. വാട്സപ്പിന്റെ കാര്യത്തിലും സംഭവിച്ചത് ഇതു തന്നെ.
വാട്സപ്പിൽ പല മോഡ്യൂളുകളിലായി ബഫർ ഓവർ ഫ്ളോ പ്രശ്നങ്ങൾ ഉണ്ടെന്ന് മുൻപേ തന്നെ റിപോർട്ട് ചെയ്യപ്പെട്ടിരുന്നു.
പെഗാസസിന്റെ നുഴഞ്ഞുകയറ്റം
വാട്സപ്പിലെ വോയ്സ് കാളിംഗ് സംവിധാനത്തിലെ ബഫർ ഓവർ ഫ്ലോ പഴുതുകൾ ആണ് പെഗാസിസ് ഇവിടെ ഉപയോഗപ്പെടുത്തിയത്. VoIP അപ്ലിക്കേഷനുകളിലൂടെ വോയ്സ് കാളുകൾ ചെയ്യുമ്പോൾ കാൾ അറ്റന്റ് ചെയ്യുന്നതിനു മുൻപേ തന്നെ വിളിക്കുന്ന ആളുടെ ഉപകരണവും വിളിക്കപ്പെടുന്ന ആളുടെ ഉപകരണവും തമ്മിൽ രണ്ടുപേരും അറിയാതെ ഒരു ചെറിയ വിവര കൈമാറ്റം നടത്തുന്നു. അതായത് സോഫ്റ്റ്വെയറുക പരസ്പരം അറിയാനായി കണ്ട്രോൾ സിഗ്നലുകൾ ഉപയോഗിച്ചുകൊണ്ടുള്ള ഒരു തരം കൈകൊടുക്കൽ. ഇന്റർനെറ്റ് വോയ്സ് കാളുകൾക്കും വീഡീയോ കൊൺഫറൻസുകൾകുമൊക്കെ ഉപയോഗിക്കുന്ന Real time Transport Control Protocol (RTCP) എന്ന പൊതു നിയമാവലിക്ക് അനുസരിച്ചാണ് ഈ കണ്ട്രോൾ സിഗ്നലുകൾ പ്രവർത്തിക്കുന്നത്. വിളിക്കുന്ന ആളുടെയും വിളി സ്വീകരിക്കുന്ന ആളൂടെയും നെറ്റ് വർക്കുകളിലും ഉപകരണങ്ങളുടെ കപ്പാസിറ്റിയിലും ബാൻഡ് വിഡ്ത്തിലുമൊക്കെ വ്യത്യാസം ഉണ്ടാകും എന്നതിനാൽ സംഭാഷണം തുടങ്ങുന്നതിനു മുൻപേ തന്നെ അതിനെക്കുറിച്ചൊക്കെ ചില അടിസ്ഥാനവിവരങ്ങൾ നൽകാനായാണ് RTCP ഉപയോഗപ്പെടുത്തുന്നത്.
നമ്മുടെ സാധാരണ മൊബൈൽ വിളികളിലും സമാനമായ സംവിധാനം കണ്ട്രോൾ ചാനലുകളുടെ രൂപത്തിൽ ഉണ്ട്. വിളി അറ്റന്റ് ചെയ്യുന്നതുവരെയുള്ള കാര്യങ്ങളുടെ നിയന്ത്രണം കണ്ട്രോൾ ചാനലിനാണ്. വിളി നടന്നുകൊണ്ടിരിക്കുമ്പോഴും വിളിയെക്കുറിച്ചുള്ള വിവരങ്ങൾ കണ്ട്രോൾ ചാനൽ വഴി പങ്കുവയ്ക്കപ്പെടുന്നുമുണ്ട്. അതുപോലെത്തന്നെയാണ് RTCP യുടെ കാര്യവും. യഥാർത്ഥത്തിലുള്ള ഡേറ്റാ കൈമാറ്റം RTP (Real Time Protocol) വഴി നടക്കുമ്പോൾ അതിന്റെ നിയന്ത്രണവും സ്ഥിതി വിവരവും RTCP കൈകാര്യം ചെയ്യുന്നു. പൊതുവേ VoIP ട്രാഫിക്കിന്റെ 5 ശതമാനം വരെ മാത്രമേ RTCP യ്ക്കായി നീക്കിവയ്ക്കപ്പെടാറുള്ളൂ. അതായത് പറഞ്ഞു വന്നത് ഇത്രമാത്രം VoIP അപ്ലിക്കേഷനുകൾ വഴി നിങ്ങൾക്ക് വിളി വരുമ്പൊൾ തന്നെ നിങ്ങളുടെ ഉപകരണവും വിളിക്കുന്ന ആളുടെ ഉപകരണവും തമ്മിൽ ചില ഡേറ്റാ കൈമാറ്റമൊക്കെ നടക്കുന്നുണ്ട്. ഈ പറയുന്ന ഡേറ്റയിൽ കൃത്രികം കാണിച്ച് യഥാർത്ഥത്തിലുള്ള RTCP പാക്കറ്റുകൾക്ക് പകരം മാൽവെയർ പാക്കറ്റുകൾ വിളിക്കുന്ന ആളുടെ ഉപകരണത്തിലേക്ക് അയയ്ക്കുന്ന വിദ്യ സാദ്ധ്യമാണ്. സാധാരണ ഗതിയിൽ ഇങ്ങനെ ചെയ്താൽ സ്വീകരിക്കുന്ന അപ്ലിക്കേഷൻ സാധാരണഗതിയിൽ പ്രോട്ടോക്കോളിൽ നിന്നും വിഭിന്നമായി പരിചയമില്ലാത്ത പാക്കറ്റുകൾ റിജക്റ്റ് ചെയ്യും. ഇവിടെയാണ് വാട്സപ് പോലെയുള്ല VoIP അപ്ലിക്കേഷനുകളിലെ ബഫർ ഓവർ ഫ്ലോ പ്രശ്നങ്ങൾ മുതലെടുത്ത് വാട്സപ്പിനെ ആശയ്ക്കുഴപ്പത്തിലാക്കി ചെക് പോയന്റുകളൊക്കെ മറി കടന്ന് പ്രോഗ്രാം ഏരിയയിലേക്ക് മാൽവെയർ പ്രോഗ്രാമുകൾ RTCP പാക്കറ്റുകളുടെ രൂപത്തിൽ തിരുകിക്കയറ്റുന്നത്. ഒരു തവണ അകത്ത് കയറിയാൽ പിന്നെ പൂട്ട് തുറന്ന് ആവശ്യമായ മറ്റ് മോഡ്യൂളുകൾ സ്വയമേവ ഡൗൺലോഡ് ചെയ്യാനും ഇൻസ്റ്റാൾ ചെയ്യാനുമൊക്കെ ഇതുവഴി കഴിയുന്നു. ഇത് വാട്സപ്പിനു മാത്രമല്ല ഏത് VoIP അപ്ലിക്കേഷനുനിലും സംഭവിക്കാവുന്നതാണ്. പക്ഷേ അവ RTCP പാക്കറ്റുകളെ എങ്ങിനെ കൈകാര്യം ചെയ്യുന്നു എന്നതിനെ ആശ്രയിച്ചിരിക്കും എന്നുമാത്രം. ചിത്രങ്ങളിൽ മാൽവെയറുകൾ ഒളിപ്പിച്ചു വയ്ക്കുന്ന Steganography സാങ്കേതിക വിദ്യകൾ ഉണ്ട്. അതിന്റെ മറ്റൊരു രൂപമാണ് വോയ്സ് കാളുകളിലും വേണമെങ്കിൽ മാൽവെയറുകളെ ഒളിപ്പിച്ചു വയ്കാൻ കഴിയുന്ന VoIP Steganography. വാട്സപ്പ് പെഗാസിസ് ആക്രമണത്തെ വേണമെങ്കിൽ ഈ വിഭാഗത്തിൽ പെടുത്താവുന്നതാണ്.
ഇവിടെ പറഞ്ഞതുപോലെ അത്ര എളുപ്പമുള്ള ഒരു ആക്രമണ രീതി അല്ല ഇത്. ഒരു ഫോണിൽ നിന്നും മറ്റൊരു ഫോണിലേക്ക് വിളിച്ചൊന്നുമല്ല ഈ പദ്ധതികൾ നടപ്പിലാക്കുന്നത്. പ്രത്യേകം സോഫ്റ്റ്വ്വെയറുകൾ ഉപയോഗിച്ച് കമ്പ്യൂട്ടർ ടെർമിനലുകൾ വഴിയാണ് ഇതൊക്കെ നടത്തുന്നത് . അതോടൊപ്പം തന്നെ ഇത്തരം ആക്രമണങ്ങളൊക്കെ കൃത്യമായി ഓഫ് ലൈൻ മാർഗ്ഗങ്ങളിലൂടെയും മറ്റും അറിയുന്ന വ്യക്തികളെത്തന്നെ ലക്ഷ്യമിട്ടുള്ളവയും ആയിരിക്കും.
അവലംബം