
รอบรู้เรื่อง Remote Access ผ่าน VPN
Incognito Lab
VPN (Virtual Private Network) ถูกสร้างขึ้นเพื่อทำให้มั่นใจว่าการสื่อสารระหว่าง Source และ Destination นั้น secure เพียงพอ มีครบทั้ง Confidentiality และ Integrity ถ้าเป็นสมัยก่อน หากองค์กรรวยพอ ก็ลาก lease line แล้วคุยกันก็จบ แต่มันแพงและมีข้อจำกัดเยอะ เทคโนโลยีของ VPN จึงพัฒนาขึ้นเรื่อยมา
ถ้าพูดในเชิงวิชาการ ผลิตภัณฑ์ VPN คืออะไรนั้น ก็ให้มองว่าเป็นหนึ่งในรูปแบบการประยุกต์ใช้เรื่อง Applied Cryptography ที่กลายมาเป็นรากฐานของเทคโนโลยี Internet ในปัจจุบัน
ถ้าพิจารณา VPN ในเชิง Network อยากให้ลองดู Cisco SAFE blueprint ซึ่งเป็นคัมภีร์ที่ Network Engineer มักจะใช้เป็นต้นแบบในการประยุกต์พลิกแพลง Network Design รูปแบบต่าง ๆ แบบไม่รู้จบ ใน blueprint จะพบ VPN/Remote Access Module ตามภาพ ผู้ใช้งานเชื่อมต่อผ่าน Internet ไปยัง Perimeter ขององค์กร จากนั้น VPN/Remote Access Module จะรับผิดชอบจัดการต่อไป โดยขึ้นอยู่กับ Technology ที่เลือกใช้ VPN ในมุมมองของ Network Engineer ก็จะเป็น jigsaw หนึ่งของ Master Network Diagram ใหญ่ขององค์กร

Remote Access VPN
ดูต้นฉบับได้ที่ https://www.cisco.com/c/dam/en%5Fus/training-events/netacad/demos/FNSDemo1%5F1/ch1/1%5F4%5F7/safe-poster.pdf
ท่าต่าง ๆ ของการทำ Remote Access ด้วย VPN
ทำความเข้าใจกันก่อน
เนื้อหาส่วนนี้จะขออธิบายแบบกระชับ เนื่องจากข้อมูลเหล่านี้สามารถหาอ่านได้ หรือฟังการบรรยายจาก Vendor ที่ขายผลิตภัณฑ์เหล่านี้ก็ได้
- source หมายถึงเครื่องหรืออุปกรณ์ของผู้ใช้งาน
- destination หมายถึงอุปกรณ์ที่สร้างการเชื่อมต่อแบบ VPN เช่น Firewall หรือ VPN Concentrator ซึ่ง traffic หลังจากนี้ก็แล้วแต่ว่าใช้ application หรือใช้ protocol อะไรอาจจะ secure หรือไม่นั้นขึ้นอยู่กับ environment ในเครือข่ายนั้น ๆ
PPTP, L2F, P2TP
เป็น L2 tunneling protocol ใช้กันมานานแล้ว ทุกวันนี้ก็ยังมีอยู่ ผู้เขียนก็ยังใช้อยู่บ้างเหมือนกัน!! อาศัยการ dial-in เข้าไปจาก source ไปยัง destination
IPsec VPN
ส่วนใหญ่ใช้กันในรูปแบบ site-to-site โดยทำการสร้าง tunnel ระหว่าง source และ destination หากจะมาใช้แบบ client-to-site ก็ไม่มีปัญหา แต่ว่าถ้าให้ผู้ใช้งาน configure ด้วยตัวเองก็จะวุ่นวายหน่อย ไม่ค่อย practical ต้องติดตั้ง client เพื่อเป็น agent ในการจัดการจะดีกว่า เวลาใช้งาน traffic ทั้งหมดของ source จะถูก route ผ่านไปยังองค์กรหรือ security stack ปลายทาง (ส่วนตัวไม่ค่อยได้พบการทำ split-tunneling กับท่านี้เท่าไร) ดังนั้นสามารถควบคุม policy ด้าน security ได้ว่าจะให้ใช้งานหรืออยากจะ block อะไรก็ได้ตามที่ต้องการ แต่เปลือง bandwidth
ตัวอย่าง Product: Cisco AnyConnect, Palo Alto GlobalProtect, FortiClient, Pulse Connect Secure, Check Point Remote Access VPN
TLS VPN
ท่านี้ ผู้ดูแลระบบและผู้ใช้งานน่าจะรู้จักกันเป็นอย่างดีในชื่อของ SSL VPN ถ้าเขียนรูปแบบที่ไม่ทำให้งงจะใช้ marketing keyword ว่า SSL/TLS VPN ท่านี้ไม่มีการสร้าง tunnel ใด ๆ เป็นพิเศษ source ของท่านี้คือ browser โดยจะทำการเชื่อมต่อเข้ามาที่ destination ด้วย TLS(HTTPS) ใช้งานง่ายและสะดวกเพราะเป็น agentless ถ้าผู้ใช้งานต้องการใช้แค่ Web Application ในการทำงาน ท่านี้จะสะดวกที่สุด
TLS Tunnel VPN
เป็นการสร้าง TLS tunnel ระหว่าง source และ destination ดังนั้นที่ Firewall ของ destination ไม่ต้องปรับเปลี่ยนอะไรมากนักแค่เปิด TCP/443 โดย traffic ที่เกิดขึ้นบน source จะถูก route ผ่านไปยังองค์กรหรือ security stack ปลายทาง ท่านี้ต้องติดตั้ง agent
ตัวอย่าง Product: Cisco AnyConnect, Palo Alto GlobalProtect, FortiClient, Pulse Connect Secure, Check Point Remote Access VPN, Citrix Gateway
SDP (Software Defined Perimeter)
เป็น technology ใหม่แต่ไม่ได้ใหม่! concept เกิดขึ้นหลายปีแล้ว โดย source จะต้องเชื่อมต่อผ่าน agent ที่ถูกติดตั้งเพื่อไป authenticate และ authorise กับ controller ฝั่ง destination โดยจะพิจารณาทั้ง user และ device หลังจากนั้นถ้า approve ว่าผ่านใช้งานได้ จะมีการโยนส่งต่อให้ gateway ควบคุม traffic ระหว่าง source และ destination ต่อไป มองง่าย ๆ ก็เหมือนแนว next gen remote access เพราะคำว่า VPN ถูกละลายกลายเป็น SDP ไปแล้ว ข้อดีคือดู cool ดี แต่ข้อเสียคือน่าจะมีปัญหากับพวก legacy application และพวกใช้ proprietary protocol บ้าง
ตัวอย่าง Product: Pulse SDP, Duo Beyond
VPN as a Service (VPNaaS)
source เชื่อมต่อด้วยรูปแบบ VPN ตามแต่ละเทคนิคของ Provider ที่เอามาใช้ โดย traffic จะวิ่งจาก source ไปยัง cloud provider และไปยัง destination ท่านี้ผู้เขียนคิดว่ามันค่อนข้างหลากหลาย เช่นผู้ให้บริการนำเสนอ solution เพื่อเชื่อมต่อกับ cloud facility หลาย ๆ ที่ผ่าน VPN gateway เพื่อเชื่อมโยงแต่ละที่เข้าด้วยกัน สร้างเป็น Network ขนาดใหญ่และยืดหยุ่นที่ประกอบไปด้วย network ของ source และ network ที่เป็น cloud facility กระจายหลาย ๆ ที่ ส่วนอีกรูปแบบหนึ่งที่ผู้เขียนใช้งานเป็นประจำก็คือ VPN service ที่ทำให้ผู้ใช้งานสามารถเชื่อมต่อ Internet ได้อย่าง secure และมี privacy
ตัวอย่าง Product: ท่าเชื่อม cloud-Palo Alto Prisma Access ส่วนหากใช้ VPN Service ส่วนตัวก็มีหลากหลายยี่ห้อเช่น Freedome ของ F-Secure
Security ของการทำ Remote Access ผ่าน VPN
VPN Infrastructure : ท่าที่ใช้ย่อมแปรตาม infrastructure และ solution ที่เลือกจะทำ ดังนั้นการ update ระบบ, ติดตั้ง Patch และ configure ให้ปลอดภัยเป็นเรื่องสำคัญ เนื่องจาก asset owner ไม่สามารถ block การทำ service fingerprinting และการทำการ configuration evaluation ได้เลย ที่สำคัญหากเป็นช่องโหว่ของ solution เองช่องทางการโจมตีเพื่อทำ authentication bypasses ทำ command injection หรือทำ session hijacking ก็สามารถทำได้ เช่นช่องโหว่ CVE-2019–11510 หาก attacker scan พบและไม่ใช่ false positive แล้วล่ะก็ เรื่องใหญ่แน่นอน!!!
Remark: หาช่องโหว่ของ VPN Product อย่างไร
ต้องเอา Product มา hack มาทำ reverse engineering มา debug แล้วก็หาช่องโหว่ ลองดูได้จากหัวข้อ Black Hat 2019, Orange Tsai’s & Meh Chang’s ‘Infiltrating Corporate Intranet Like NSA — Pre-Auth RCE href="https://i.blackhat.com/USA-19/Wednesday/us-19-Tsai-Infiltrating-Corporate-Intranet-Like-NSA.pdf" rel="noopener nofollow">https://i.blackhat.com/USA-19/Wednesday/us-19-Tsai-Infiltrating-Corporate-Intranet-Like-NSA.pdf
Cryptographic Weakness : หลีกเลี่ยงการทำให้มีช่องโหว่ที่เกี่ยวข้องกับ cryptography เช่นการเลือกใช้ algorithm ที่ไม่ strong, ช่องโหว่ของ protocol, version ที่ไม่แนะนำ, ช่องโหว่ด้านการทำงานของอุปกรณ์, encryption, integrity checking, digital certificate, pre-shared key และอื่น ๆ แปรผันตามท่าที่เลือกใช้
Authentication: การทำ authentication มีความ secure แล้วหรือไม่ ใช้ authentication server หรือไม่, มีกระบวนการ reset password อย่างไร, หรือมีการบังคับทำ Multi-factor Authentication ด้วยวิธีการไหน เนื่องจาก authentication เป็นสิ่งสำคัญระบบที่คอยจัดการต้องมีความพร้อมต่อการทำ brure-force หรือการทำ denial of service ด้วยเช่น เป็นไปได้หรือไม่ถ้าหากมีใครมา try password ของผู้ใช้งานบ่อย ๆ แล้ว account นั้น lock?
Authorisation : ประเด็นนี้ต้องอาศัยการตรวจสอบค่อนข้างละเอียดเพราะต้องอาศัยข้อมูล authorisation matrix พิจารณาว่าแต่ละ user มีสิทธิ์ในการใช้งานอย่างไรบ้าง และ policy ของ network control ที่เปิดบังคับใช้ ทำตามที่ระบุใน matrix หรือไม่
Endpoint Attestation : เนื่องจากการทำ Remote Access ผ่าน VPN สร้างความยืดหยุ่นให้ผู้ใช้งานสามารถที่จะเลือกได้ว่าจะเชื่อมต่อจากอุปกรณ์อะไร ดังนั้น Policy ที่จะบังคับระดับ host-based security software หรือ endpoint attestation นั้นจึงถูกบังคับใช้ในบางองค์กรด้วย เช่นต้องติดตั้ง software antivirus, ต้อง enable host-based firewall, ต้องใช้งานผ่านเครือข่ายที่กำหนด ซึ่ง VPN solution ที่ใช้ พวก agent ที่ติดตั้งไว้จะสามารถตรวจสอบ function เหล่านี้ได้ อีกทางเลือกหนึ่งคือการใช้ NAC ในการรับผิดชอบหน้าที่ในการตรวจสอบก่อน ซึ่งจุดประสงค์ก็คือเพื่อตรวจสอบว่า source นั้น secure แล้วหรือยังก่อนใช้งาน VPN อย่างไรก็ตามต้อง tradeoff ว่าผู้ใช้งานอาจรู้สึกว่าเวลาใช้ Remote access แล้วระบบช้าก็เป็นได้ซึ่งผู้บริหารและผู้ไม่บริหารอาจไม่สบอารมณ์ $#!*%$
Split Tunneling : ในทางทฤษฎีมีความเป็นไปได้ว่าระหว่างเชื่อมต่อ VPN อยู่เครื่องคอมพิวเตอร์หรือ source อาจถูกโจมตีและถูกยึดกลายเป็นช่องทางในการเข้ามาโจมตีเครือข่ายของ destination แต่ว่าในทางปฏิบัติหรือข่าวการโจมตีที่เคยเกิดขึ้นในอดีต ผู้เขียนยังไม่เคยพบ high-profile case ใด ที่ใช้ท่านี้เลย ดังนั้นแต่ละองค์กรก็ลองตัดสินใจดูครับว่าจะทำ split tunneling หรือไม่ security หรือ capacity ที่เป็นเรื่องที่ต้อง concern กว่า ให้ลองตัดสินใจกันดู
Network Security Monitoring : แค่ VPN authentication log อาจยังไม่พอ เนื่องจากการใช้งานผ่าน VPN พวก traffic ระหว่าง source และ destination ถูก encrypt อีกทั้งเรื่องของ IP address ที่จะพบใน log ด้วยว่าจะ correlate กันหรือจะ monitor จากจุดไหนดี สิ่งเหล่านี้เป็นเรื่องที่ blue team ต้องเตรียมความพร้อม
เรื่องทั่ว ๆ ไป: ได้แก่ credential leaks, security awareness, และเรื่อง sensitive information ที่เก็บอยู่บนเครื่องผู้ใช้งานไม่ว่าจะเป็น desktop, laptop, mobile หรือ IoT ให้อาศัย Policy และการ enforcement ขององค์กรในการบังคับใช้
ถึงแม้ว่าโลกของเราจะไม่มี Spider-Man แต่เราก็สามารถใช้ Remote Access ด้วย VPN อย่าง secure ได้นะครับ

Meme
Up Next

ARTICLES
Mar
03
2021
Secure Code Warrior
วันก่อนเจอ Tweet ที่คุณ Troy Hunt เจ้าของ haveibeenpwned ได้ share มาเกี่ยวกับ paper อันนึงที่น่าสนใจมาก
READ MORE

ARTICLES
Mar
03
2021
หลักแห่งการออกแบบระบบอย่างมั่นคงปลอดภัย (Secure Design Principles)
ธนาคารรายใหญ่มีกฎระเบียบข้อบังคับในการคัดเลือกผู้ให้บริการหลายข้อ ทั้งในแง่ขีดความสามารถและความมั่นคงทางการเงินของบริษัท แต่เมื่อมีการจัดซื้อจัดจ้างผลิตภัณฑ์หรือบริการไปแล้ว
READ MORE

ARTICLES
Mar
02
2021
ทำความรู้จักกับ Application Sandboxing บน Mobile Platform
เมื่อพูดถึงกลไกการรักษาความปลอดภัยของ Smartphone ในปัจจุบัน ไม่ว่าจะ iOS, Android หรือ Windows Phone ล้วนมีกลไกการรักษาความปลอดภัยพื้นฐานมาอยู่แล้วซึ่งช่วยให้ผู้ใช้งานทั่วไปสามารถใช้งาน Smartphone ได้อย่างมั่นคงปลอดภัยในระดับหนึ่ง
READ MORE