ඔබේ පරිගණකයේ localhost එකේ bash ක්රියාත්මක කළ හැකි කේත එජෙන්ට් එකක්, ඉතා සුළු වැරදි මඟින් අන්තර්ජාලයේ ඕනෑම වෙබ්අඩවියකින් පාලනයට ලක් විය හැකිය. මේ සම්බන්ධයෙන් Dev.to හි ලේඛකයෙක් තමන්ගේ agentproto නමැති ඕපන් රන්ටයිම් එක පරීක්ෂා කරමින් හෙළි කර තිබේ.
අවසානයේ, opencode වැනි පද්ධති වල පෙරනිමි HTTP සේවාදායකය CORS සීමා නොකරමින්, අහඹු shell විධාන ක්රියාත්මක කළ හැකි endpoint එකක් දක්වා තිබුණි. එම නිසා, ඔබ ගවේෂණය කරන වෙබ් පිටුවක් ඔබේ යන්ත්රයේ පාලනය ග්රහණය කරගත හැකි බව පෙනීගියේය.
මෙවැනි අවදානමක් ඇති වන්නේ “command filtering” යන පුරාතන ක්රමය විශ්වාසයෙන් භාවිතා කරන නිසාය. පේළි වල pipe, base64, heredoc, python -c වැනි විවිධ තාක්ෂණික ක්රම භාවිතා කරමින්, සරල regex පරීක්ෂාවක් පසුබැසීමක් පවා ඉක්මවා යයි. එබැවින් ආරක්ෂාව සලස්වීමට අවශ්ය වන්නේ OS‑මට්ටමේ අවසර සහ ජාල පරිසරය යන දෙකයි.
- Browser drive‑by – Origin header පරීක්ෂා නොකිරීමෙන්, ඕනෑම වෙබ් පිටුවක් 127.0.0.1 වෙත fetch() කර shell විධානයක් ක්රියාත්මක කළ හැකිය.
- Read exfiltration – GET endpoint මගින් සංවාද ලිපි හා live stream තොරතුරු cross‑origin ලෙස ලබා ගත හැකි වීම.
- DNS rebinding – Host header පරීක්ෂා නොකිරීමෙන්, දූෂිත ඩොමේන් එක localhost වෙත පත් කර පාලනය ලැබේ.
- Supply chain – curl | bash වැනි අවිශ්වාසනීය ස්ක්රිප්ට් භාවිතයෙන් interpreter escape සිදු විය හැකිය.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ තරුණ සංවර්ධකයින්, විද්යාඥයින් සහ ව්යාපාරිකයින් මේ සටහනෙන් ඉගෙන ගත යුතු කරුණු කිහිපයක් ඇත. ප්රථමයෙන්, ලොකල් ද්වාරයක් (localhost) භාවිතා කරන ඕපන්‑සෝස් මෙවලම් වලට OS‑මට්ටමේ අවසර සහ CORS/Origin පරීක්ෂා අත්යවශ්ය බව තේරුම් ගත හැකිය. දෙවැනිය, DNS rebinding වැනි නවතම තාක්ෂණික ප්රහාරයන්ට ප්රතිරෝධයක් ලෙස Host header වල නිරීක්ෂණය කිරීම අත්යවශ්ය වේ. තෙවැනිය, “command filtering” මත අධික විශ්වාසය තැබීමේ ඉඩ නොදෙමින්, ක්රියාත්මක වන්නේ shell‑false, verbatim argv වැනි ආකාරයන් බවට පත්වීමයි. මෙම පියවරයන් අනුගමනය කරන්නේ නම්, ශ්රී ලංකාවේ තාක්ෂණික ආරක්ෂාව ශක්තිමත් කර, ස්ථානයීය startups සහ IT සේවා සපයන්නන්ගේ විශ්වාසය වැඩිදුරටත් ගොඩනැගිය හැකිය.
අවසන් වශයෙන්, ඔබේ පද්ධතියේ ආරක්ෂාව පරීක්ෂා කිරීම සඳහා පහත ප්රශ්න පහසුවෙන් පිළිතුරු දී බලන්න: 127.0.0.1 වෙත TCP port එකක් බඳිනවාද? එම port එකට වෙබ් පිටුවක් fetch() කර ගත හැදුවද? “allow bash” පරීක්ෂාව විධාන පදයක් මතද, binary එක මතද? දුරස්ථ මොඩලයක් පාවිච්චි කරයිද? මේ ප්රශ්නවලට “නැත” යැයි පිළිතුරු දෙනවා නම්, ඔබේ එජෙන්ට් එක ආරක්ෂිතය.