අද මම කතා කරන්න බලාපොරත්තු වෙන්නේ SSL VPN සහ එහි තියෙන vulnerabilities ගැන. SSL VPN ගැන කතාව පටන් ගන්න කලින්, VPN technologies කීපයක් ගැන මුලික අවධානය යොමු කරමු.
- IPsec — IP security
- SSL — Secure Socket Layer
මේ ක්රම දෙක භාවිත කරල තමයි දැනට ගොඩක් භාවිත වෙන VPNs හදල තියෙන්නේ. ඊට අමතරව පහල තියෙන protocols භාවිත කරන්නත් පුළුවන්
- PPTP — Point to Point Tunneling Protocol
- L2TP — Layer 2 Tunneling Protocol
ඒ ඒ technologies වලට අදාලව තියෙන වාසි අවාසි ඕන තරමක් දැනගන්න පුළුවන් පොඩ්ඩක් google කරා නම්
IPSEC සැලකුවොත්
- Host to Host
- Host to Network
- Network to Network කියන ක්රම වලට VPN හදන්න IPsec use කරන්න පුළුවන්.
මේකේ තියෙන communication methods අනුව වර්ග කරොත්,
- Transport — Host to Host
- Tunnel — Network to Network කියන categories දෙකම අදුරගන්න පුළුවන්.
ඊටත් අමතරව මේකේ packet header එක transport කරන methodology එක use කරල අපිට පුළුවන් Authentication Header(AH) සහ Encapsulating Security Payload(ESP) වලට මේක වෙන් කරගන්න
ඒ කියන්නේ අපිට අදුරගන්න පුළුවන් මුලික IPSec VPN methods තමයි
- AH tunnel mode
- AH transport mode
- ESP tunnel mode
- ESP transport mode
මේ tunneling සහ transport VPN වල මුලිකවම සැලකිය යුතු වාසි අවාසි කීපයක්ම තියෙනවා. ඒ දේවල් මම වෙනම බ්ලොග් පොස්ට් එකකින් කතා කරන්නම්.
හරි අපි දැන් ප්රධාන මාතෘකාව දිහාවට හැරෙමු
මුලිකවම VPN වර්ග 2ක් තියෙනවා.
- Remote access VPN
- Site to site VPN
A site to site VPN, හිතන්නකෝ ඔයාලගේ Head office කොළඹ තියෙන්නේ සහ තව office එකක් නුවර තියෙන්නේ කියල. ඒ වගේ මොහොතක secure packet transmission එකකට භාවිතා කරන්න පුළුවන් මේ ක්රමය. නුවර ඉන්න employee කෙනෙකුට Colombo HO network එකට connect වෙන්න ලේසියෙන් පුළුවන් මේ site to site VPN එක නිසා. විශේෂත්වය වෙන්නේ මේවා භාවිතා කරන්න පුළුවන් fixed location එකක ඉගෙන විතරක් වීම. මේකේ තියෙන මුලිකම අවාසියත් මේකම තමයි. Mobility නැති වීම.
මේකේ විශේෂත්වය වෙන්නේ S2S VPN එකකදී ගොඩක් encryption, decryption handle කරන්නේ ඔයාගේ VPN configured router එක හෝ security purpose භාවිතා කරන device එකෙන්. මේක නිසා ගොඩක් වෙලාවට ඔයාලගේ PC/Laptop එකේ network adapter එකට memory එකට තියෙන වැඩ offload වෙනවා.
ඊට අමතරව සැලකුවොත්,මේ වගේ VPN එකක තියෙන PC එකකින් අපි login/logout උනා කියල VPN එකට නැවත නැවත log වෙන්නට අවශ්ය නෑ. මුලින්ම මම පැහැදිලි කරපු IPSec technology එක තමයි බොහෝ වෙලාවට මේ S2S VPN වලදී භාවිතා වෙන්නේ.
හරි දැන් අපි බලමු SSL VPN ගැන.
හිතන්නකෝ ඔයා සිංහල හින්දු අවුරුද්ද දවස් ටිකේම ගෙදර හිටියේ. ඒ වෙලාවේදී හදිසියේ office එකෙන් කෝල් එකක් එනවා server එකක service එකක් වැඩ කරන්නේ නෑ කියල. එහෙමත් නැත්නම් මොකක්හරි හේතුවකට ඔයාට සිද්ද වෙනවා office එකේ data center එකේ තියෙන server එකට ලොග් වෙන්න. මෙන්න මේ වගේ වේලාවකදී අපහු office එකට යන්න උනොත්? එකට විසදුම තමයි remote VPN. මෙතැනදී සිද්ද වෙන්නේ ඔය දැනට වැඩ කරන PC එක සහ office network එකේ තියෙන point එකක් අතරේ secure tunnel එකක් හදනවා. එක හරහා ඔයාට පුළුවන් office network එකට connect වෙන්න.
මෙතන මුලික වෙන්නේ ඕන කෙනෙකුට authenticate වෙන්න පුළුවන් නම්, office network එකට ලේසියෙන්ම connect වෙන්න පුළුවන්. එකේදී ගොඩක්ම පහසුව වෙන්නෙත්, ඕනෑම laptop/PC එකක් use කරල VPN client එකක් install කරගෙන authenticate කරගැනීමට තියෙන හැකියාව. නමුත් security mechanism විදියට ගොඩක් companies එයාලගේ employees ලට recommend කරනවා භාවිත කරන්න ඕන client එක ගැන.
සාමාන්යයෙන් මෙතැනදී මුලිකවම වෙන්නේ unsecured network එකක් හරහා ඔයාට secure tunnel එකක් හදල දෙනවා ඔයාගේ communication එක complete කරගන්න.
පැහැදිලි කිරීමේ පහසුව තකා මම පහල තියෙන image එක භාවිත කරනවා
මෙතනදී මුලිකවම වෙන්නේ SSL handshake සහ ඒ හරහා VPN tunnel එකක් නිර්මාණය කරගැනීම.
අවශ්යතාවය අනුව අපිට අපි භාවිතා කරන laptop/PC එක උනත් VPN server එකක් විදියට configure කරගන්න හැකියාව තියෙනවා. SSL සාමාන්යයෙන් run වෙන්නේ TCP 443. ඉතින් connect වෙනකොට අමුතුවෙන් firewall configurations එහෙම වෙනස් කිරීමේ අවශ්යතාවයකුත් නෑ. ඔයා VPN එකට connect උනාම ඔයාට assign වෙනවා IP එකක්. එක ලබා දෙන්නේ VPN provider තමයි. මේ මොහොතේ ඉදල ඔයාගේ identity එක වෙන්නේ මේ IP එක තමයි.
මේක PC/mobile කියන අවස්තා දෙකේදීම භාවිතා කරන්න පුළුවන් solution එකක්.
ඔයාට අවශ්ය උනොත් android phone එක තුල VPN එකක් use කරන්න, අපි හැමෝම කරන්නේ playstore එකෙන් VPN එකක් download කරගෙන install කරන එක.
නමුත් මෙතැනදී ඇතිවෙන ගැටළු ගොඩක් තියෙනවා
අවශ්ය නම් VPN provider ට පුළුවන් ඔයාගේ යවන packets ඔක්කොම decrypt කරල බලල අවශ්ය data ටික ගන්නත්. ඒක කරන්න පුළුවන් ක්රම කීපයක් තියෙනවා.
ලේසියෙන්ම කරන්න පුළුවන් android permission භාවිතා කරල. ඔයා use කරන්නේ android 6.0 වලට වඩා පැරණි OS එකක් නම්, එතැනදී භාවිත වෙන්නේ install time permission විතරයි. ඒ කියන්නේ app එක install කරන වෙලාවේදී provider ට පුළුවන් එයාගේ root certificate එකක් ගෙනල්ල ඔයාගේ mobile එකට install කරන්න. හැබැයි මෙතැනදී user permission එක අනිවාර්යයෙන්ම තියෙන්න ඕනා.
ඔබ භාවිතා කරන්නේ android 6.0 වලට වඩා අලුත් OS එකක් තියෙන device එකක් නම්, එතැනදී runtime /install-time permissions භාවිතා කරල app එක first time run වෙනකොට හෝ install කරන වෙලාවේදී provider ට පුළුවන් මේක plant කරන්න.
මෙතැනදී වෙන්නේ මෙහෙම දෙයක්. හිතන්න ඔබට අවශ්ය නම් facebook යන්න VPN එක භාවිතා කරල.
ඔය facebook.com කියල browser එකේ type කරල ඔයා login වෙන්න හදනවා FB profile එකට. මෙතැනදී වෙන්නේ vpn එක හරහා යන packet එක vpn provider decrypt කරල එයාගේ signature එකෙන් නැවතත් sign කරල ඒ packet එක යවනවා. Facebook දකින්නේ මේ VPN provider එවන request එක, මෙතැනදී legitimate request එකක් විදියට පිලිගන්නවා සහ ඒ request එකට reply කරනවා.
දැන් මේ එන response එකත් බලන්න VPN provider ට හැකියාව තියෙනවා. එට පස්සේ එයා කරන්නේ අවශ්ය data ටික අරගෙන නැවතත් මේකට එයාගේ signature එක දාල එවනවා අපේ browser එකට, අපි එයාගේ certificate එක already install කරගෙන ඉන්න නිසා මේක legitimate කියල හිතල අපිත් reply කරනවා. ඔන්න ඔහොමයි සරලවම වැඩේ වෙන්නේ.
මෙතැනදී ගොඩක් වෙලාවට service provider කරන්නේ real-time analysis එකක් නෙමෙයි. මොකද එහෙම inspect කරන්න ගියොත්, ගොඩක් වෙලාවට traffic එකේ slowness එකක් userට දැනෙන්න පුළුවන් නිසා. බොහෝ විට සිද්ද වෙන්නේ මේ traffic එක store කරගෙන ඉදල පස්සේ මේ data utilize කරන එකයි.
දැන් මේවගේ දෙයක් ගැන කලින් දැනුවත් වෙන්නේ කොහොමද?
1. VPN එකක් install කරන වෙලාවට අනිවාර්යයෙන්ම VPN provider ගැනත් ටිකක් හොයල බලන්න.
2. Permission දෙනකොට හොදට හිතල බලල දෙන්න.
3. Traffic transmit වෙනකොට browser එකේ load වෙන padlock එකෙනුත්, certificate details ටික අරගෙන verify කරගැනීමේ හැකියාවකුත් තියෙනවා. හැබැයි ටිකක් අපහසු දෙයක්.
දැන් ඔය ක්රමේ VPN provider කෙනෙකුට ටිකක් වෙලාව ගන්න, අමාරු වැඩක්. ඊට වඩා ගොඩක් ලේසියෙන් කරන්න පුළුවන් දෙයක් තමයි, user permission භාවිත කරල mobile device එකේ පාලනය VPN provider සතු කරගන්න එක.
හිතන්න ඔයා install කරන්න යනකොට app එකෙන් permission ඉල්ලනවා oyage contact list එක බලන්න. එතකොට අපි ටිකක් සලකිල්මත් වෙන්න ඕනා, VPN software එකක් මොකද අපේ device එකේ contact list එක access කරන්නේ කියන එක ගැන.
මෙතැනදී තියෙන ගැටලුව තමයි, මේ permission grant කරාට පස්සේ අවශ්ය ඕන වෙලාවක ඒවා utilize කරගැනීමේ හැකියාව අදාළ VPN provider ට තිබීම.
ඉහත මම ලිව්වේ අපි එදිනෙද කරන සුළු අඩුපාඩු නිසා අපේ data compromise වෙන්න පුළුවන් ක්රම කීපයක් විතරයි. හදිසියට VPN install කරගෙන internet browse කරාට, ඔයා දන්නෙම නැතුව third party එකක් අතට oyage personal data ගිහිල්ල ඉවරයි. ඒ නිසා අවධානයෙන් ඉන්න!
මෙතන ඉදල මම කතා කරන්න බලාපොරොත්තු වෙන්නේ, PC SSL VPN clients සහ ඒවගේ තියෙන vulnerabilities ගැන.
PC එකක් භාවිතා කරල ඔයා VPN එකක් හරහා office network එකට connect වෙනවා නම්, එතනදිත් අවස්ථා ගොඩක් තියෙනවා office network එකට malware traffic inject කරන්න. ඔයා VPN connect වෙන PC එක public internet එකටත් open නම්, ඒ කියන්නේ කාටහරි පුළුවන් oyage PC එකේ malware/worm එකක් plant කරල trigger එකක් ලියන්න ඔයා VPN connect වෙනකොට මේවා start වෙන විදියට.
ගොඩක් organizations දැන් මේ වගේ threats identify කරගෙන තියෙන්නේ වගේම, ඒවාට solutions පවා in-house built කරල. එහෙමත් නැතිනම් මිලදී අරගෙන සුදානම් වෙනවා. සාමාන්යයෙන් security policies එහෙම build කරනකොට මේවා ගැනත් සැලකිල්මත් වෙනව.
ඊළඟට අපි බලමු කොහොමද clientless SSL VPN වැඩ කරන්නේ කියල
ඉහත දක්වපු ක්රම දෙකට අමතරව ගොඩක් වෙලාවට අපි භාවිතා කරනවා clientless VPN. මෙතැනදී HTML, HTML5, JavaScript භාවිත වෙන applications, SSL-enabled web browsers එකක් හරහා ඉතා පහසුවෙන් access කිරීමට හැකියාව ලැබෙනවා. User authenticate කරගත්තට පස්සේ, pre-defined resources access කිරීමේ හැකියාව userට ලැබෙනවා.
මෙතන වෙන්නේ වෙබ් browser එකට පමණක් අදාලව VPN එකක් නිර්මාණය වීමයි. විශේෂත්වය තමයි, සාමාන්ය SSL VPN එකකදී වගේ VPN client එකක් වෙනම PC එක ඇතුලේ install කරගැනීමක් අවශ්ය වෙන්නේ නෑ.
මෙතැනදී mobility feature එක සාමාන්ය SSL VPN එකකටත් වඩා තියෙනවා. නමුත් ඒ feature එක නිසාම මේක vulnerable වෙන්නත් පුළුවන්. මෙතැනදී මුලිකවම ආකාර 2ක attacks ගැන මන් කතා කරන්න බලාපොරොත්තු වෙනවා.
- Vpn එක configure කරල තියෙන්නේ, internal සහ external domains 2ම එක වර access කරන්න පුළුවන් වෙන්න නම්, එතැනදී attacker ට පුළුවන් external වෙබ් page එකක් හදන්න එක හරහා අවශ්ය internal domains access කරන්න පුළුවන් වෙන විදියට. ඊට අමතරව session cookies හොරකම් කරල සහ VPN session එක hijack කරලත් internal network එකට attack කරන්න පුළුවන්.
- ඊළඟ ක්රමවේදය වෙන්නේ attacker විසින් web frames 2ක් නිර්මාණය කරල ඒවා හරහා කරන attacks. එතැනදී user ට පෙන්නන්නේ internal network එකේ තියෙන වෙබ් page එක. නමුත් අනිත් frame එක run කරන්නේ background එකේ. එතනින් user ගේ keystrokes(username/password etc) log කරගැනීමේ හැකියාව තියෙනවා.
අද දවසේ මන් ලියන්න බලාපොරොත්තු උන දේවල් ටික තමයි මේ. ඔබේ අදහස් පහල comment කරගෙන යන්නත් අමතක කරන්නෙපා! :)