ශ්‍රී ලංකාවේ නවතම තාක්ෂණික පුවත් 2026-07-21, Tuesday
🔐 සයිබර් ආරක්ෂාව · 🕒 කියවීමට විනාඩි 2 · 👁 1

Python Flask යෙදුමේ අසුරූ Pickle දෝෂය හරහා RCE තර්ජනය නවතා දැමූ ක්‍රමය

Python Flask යෙදුමේ අසුරූ Pickle දෝෂය හරහා RCE තර්ජනය නවතා දැමූ ක්‍රමය

ඊයේ මම එක් අනුමත ආරක්ෂා පරීක්ෂාවකදී, Python/Flask මයික්‍රොසේවායක් තුළ සරල cache එකක් ලෙස පෙනෙන නමුත් ඉතා උච්ච-අවදානම් දෝෂයක් සොයාගත්තා. ඒ දෝෂය session preferences ගබඩා කරගන්නා cookie එකක් Pickle ලයිබ්‍රරියාව භාවිතා කරමින් අසුරුව deserialize කිරීමෙන් සිදු වුණා.

අපි HTTP ඉල්ලීම් පරීක්ෂා කරන විට session_prefs නාමයේ cookie එකක් දැකලා, එය base64‑වෙනස් කර decode කළාම Python pickle ආකාරයේ බයිනරි දත්ත ලැබුණා. Pickle, අනුභවකයන්ගෙන් එන දත්ත සදහා අතිශය අනාරක්ෂිත වන අතර, ඕනෑම object එකක් instantiate කර ගත හැකි බැවින්, මෙය සෘජු Remote Code Execution (RCE) පථයක් බවට පත්වුණා.

ඉන්පසු මම reverse shell එකක් ක්‍රියාත්මක කරන payload එකක් සකස් කර, එය base64‑වෙනස් කර cookie එකට ඇතුළත් කරලා server එකට යැව්වා. Server එක pickle.loads() ක්‍රියාවලියෙන් එම දත්ත deserialize කරන විට, නියමිත shell කමන්ඩ් එක ක්‍රියාත්මක වුනා. මෙය දැක්කාම, දෝෂය ඉතාම ගැඹුරු බව තේරුණා.

ඇයි මෙය වැදගත්ද? Pickle වැනි native binary serialization භාවිතා කරන්නේ අතුරුදන් වීමේ අවදානම වැඩි කරන එකයි. අනික් පාර්ශවයන්ගෙන් එන දත්තවල integrity පරීක්ෂා නොකරන විට, ඕනෑම කේතයක් server එකේ ක්‍රියාත්මක විය හැකිය. එම නිසා ආරක්ෂක පරීක්ෂකයන්ට මෙම වර්ගයේ දෝෂ හඳුනාගෙන, මූලිකව serialization ක්‍රමය වෙනස් කිරීම අත්‍යවශ්‍යයි.

ශ්‍රී ලංකාවට ඇති වැදගත්කම

ශ්‍රී ලංකාවේ තාක්ෂණික ව්‍යාපාර, startup සහ විශ්වවිද්‍යාල සිසුන්ට මෙම අවධාරණය අතිශය වැදගත්. Python‑වල pickle භාවිතය අතිශය පහසු බවත්, ඒ නිසා බොහෝ වෙබ් යෙදුම් වලට එය default එකක් වශයෙන් ගන්නා ලදි. අපගේ උදාහරණය පෙන්වා දෙන්නේ, එවැනි “සරල” ක්‍රියාවලියක් පවා RCE තර්ජනයකට පත් විය හැකි බවයි. එබැවින්, JSON serialization හා HMAC signature භාවිතයෙන් data integrity සහ authenticity රැක ගැනීම, දේශීය developers ලාට ඉක්මනින් අනුගමනය කළ යුතුම පියවරයක් වේ. එය data leakage, service disruption, හෝ නීතිමය වගකීම් වලින් රැකගත හැකිය. එසේම, ආරක්ෂා‑කේන්ද්‍රිත පදනම්ව ආයතනික IT‑ආරක්ෂණ ප්‍රතිපත්ති සකස් කිරීම, ශ්‍රී ලංකාවේ තාක්ෂණික ආර්ථිකය තවත් ශක්තිමත් කරයි.

අවසන් වශයෙන්, මූලික code එකේ pickle.loads() අහෝසි කර, safe JSON + HMAC ක්‍රමයට මාරු කිරීමෙන් RCE අවදානම සම්පූර්ණයෙන් නිරෝධායන කළා. මේ පියවරෙන් පසු, යෙදුම client‑side cookie තැකීමේ අධිකාරිත්වයට ප්‍රතිරෝධී වී, ආරක්ෂා‑දෘඪවී ඇත.

ඉදිරි කාලයේ, සියලු Python‑based වෙබ් සේවා ආරක්ෂා‑පරීක්ෂා කර, insecure deserialization වර්ගයේ දෝෂ හඳුනාගෙන, සුදුසු serialization ක්‍රමයක් තෝරා ගැනීම අත්‍යවශ්‍ය වේ.

💡 ඔබේ යෙදුම් ආරක්ෂා කිරීමට අදම පියවර ගන්න!
මූලාශ්‍රය මෙම ලිපිය AI මගින් රචිත මුල් සාරාංශයකි. සම්පූර්ණ වාර්තාව කියවන්න:
Dev.to ↗
#Python #Flask #RCE #Deserialization #Security