INTRODUCTION
NAT Slipstreaming เป็นเทคนิคการโจมตีช่องโหว่ซึ่งทำให้ผู้โจมตีสามารถเชื่อมต่อเข้าเครือข่ายภายในที่มี Firewall หรือ NAT ขวางอยู่ได้โดยตรง เพียงแค่ผู้ใช้งานเปิดเว็บไซต์ซึ่งถูกสร้างโดยผู้โจมตีที่ออกแบบมาโจมตีช่องโหว่นี้เป็นพิเศษ ลักษณะของช่องโหว่ขึ้นอยู่กับการอิมพลีเมนต์ฟังก์ชันของ NAT ซึ่งส่วนใหญ่แล้วเหมือนกัน ทำให้อุปกรณ์ที่อาจได้รับผลกระทบนั้นสามารถมีได้หลากหลาย
ในบทความนี้ ทีมตอบสนองการโจมตีและภัยคุกคาม (Intelligent Response) จาก บริษัทไอ-ซีเคียว จำกัด จะมาวิเคราะห์ที่มาของช่องโหว่ แนวคิดซึ่งอยู่เบื้องหลังการโจมตีช่องโหว่ ข้อจำกัดรวมไปถึงแนวทางในการลดผลกระทบจากช่องโหว่ครับ
แม้ว่าต้นตอของช่องโหว่นั้นจะสามารถทำความเข้าใจได้ง่าย แต่ด้วยเงื่อนไขของการโจมตีช่องโหว่ทำให้เนื้อหาอาจมีรายละเอียดเยอะขึ้นและอาจทำให้ผู้อ่านสับสนได้ เราขอแนะนำให้ผู้อ่านทำความเข้าใจจากหัวข้อ Vulnerability Overview ก่อน จากนั้นลองลงรายละเอียดที่สำคัญในหัวข้อย่อยอื่นๆ ที่เกี่ยวข้องต่อไป
Attack Technique Overview
Attack Technique Insights
Understanding NAT Pinning Technique
Fundamental of ALG Attacking
The "Slipping" Part
Write-What-Where in Network Packets
The Need for Leaking Internal Address
Crafting the Exploit
Mitigations
Glossary
References
ATTACK TECHNIQUE OVERVIEW
เทคนิค NAT Slipstreaming เป็นเทคนิคการโจมตีที่อาจเรียกได้ว่าได้รับอิทธิพลมาจากเทคนิค NAT pinning ซึ่งถูกประกาศในปี 2010 ทั้ง 2 เทคนิคมีผู้ค้นพบและทำวิจัยคนเดียวกันคือ Samy Kamkar และมีเป้าหมายเดียวกันคือการโจมตีการทำงานของ NAT ในลักษณะที่ผู้เริ่มต้นการโจมตีมาจากฝั่งผู้ใช้งาน หรือจากภายในสู่ภายนอก และมีผลลัพธ์ที่เหมือนกันคือหากการโจมตีสำหรับนั้น กระบวนการทำงานของ NAT จะถูกข้ามผ่านและทำให้ผู้โจมตีซึ่งอยู่เครือข่ายภายนอกสามารถทะลุกระบวนการทำงานของ NAT เพื่อเข้าถึงเครือข่ายภายในได้โดยตรง
อย่างไรก็ตาม เทคนิคการโจมตี NAT Slipstreaming เจาะจงการโจมตีไปในส่วน Application Level Gateway (ALG) ซึ่งอาศัยการตรวจสอบข้อมูลที่ส่งมาใน application layer เพื่อสนับสนุนการทำงานของ NAT ให้สามารถทำงานได้อย่างถูกต้อง ผู้โจมตีใช้วิธีการสอดแทรกข้อมูลในแพ็คเกต (packet injection) ด้วยโปรโตคอล SIP ไว้ในการส่งข้อมูลจากฟอร์มของเว็บไซต์ผ่านโปรโตคอล HTTP เพื่อหลอกการทำงานของ ALG และส่งที่จุดระเบิดไปให้ฝั่งผู้ใช้ในลักษณะของเว็บเพจ เมื่อผู้ใช้งานเปิดเว็บเพจที่มีโค้ดฝังอยู่ โค้ดดังกล่าวจะส่งผลให้เกิดการเปิดช่องทางการเชื่อมต่อที่ข้ามผ่านการทำงานของ Firewall และ NAT ได้
เทคนิคการโจมตีหลักอยู่ที่การทำให้ผู้ใช้งานซึ่งอยู่ในเครือข่ายภายในสร้างการเชื่อมต่อในโปรโตคอล SIP ออกมาโดยไม่รู้ตัว ทั้งนี้ด้วยเงื่อนไขและความไม่ง่ายที่จะแทรกแพ็คเกตของโปรโตคอล SIP ไว้ในโปรโตคอล HTTP อย่างสมบูรณ์แบบ การที่จะใช้เทคนิคให้สำเร็จจึงต้องมีการอาศัยแนวทางของการทำความเข้าใจกระบวนการทำงานของฟีเจอร์ Connection tracking ใน ALG, การควบคุมของแพ็คเกตด้วยวิธีการอย่าง TCP segmentation หรือ IP fragmentation เมื่อใช้ SIP UDP รวมไปถึงการใช้ WebRTC และ TCP timing attack เพื่อให้องค์ประกอบการโจมตีสมบูรณ์
หากสิ่งที่ผู้อ่านคาดหวังคือการเข้าใจเทคนิค NAT Slipstreaming อย่างเพียงพอ นี่คือจุดสิ้นสุดของเนื้อหาที่เราแนะนำให้ได้อ่าน อย่างไรก็ตามหากผู้อ่านสนใจอย่างแท้จริงถึงที่มาของเทคนิค แนวคิดและความสร้างสรรค์ของนักวิจัยเพื่อแก้ปัญหาในส่วนต่าง ๆ ให้การโจมตีเกิดขึ้นได้จริง เราขอแนะนำให้อ่านรายละเอียดของช่องโหว่ต่อในส่วน Attack Technique Insights ด้านล่างครับ
ATTACK TECHNIQUE INSIGHTS
เนื้อหาในส่วนต่อไปนี้คือส่วนที่จะอธิบายเทคนิคการโจมตี NAT Slipstreaming ในทุกมุมที่ผู้เขียนมีความเข้าใจ เพื่อให้เกิดความเข้าใจในลำดับของเทคนิคอย่างถูกต้อง เราขอเพิ่มคำอธิบายสั้น ๆ ในแต่ละขั้นตอนย่อยดังนี้ครับ
หัวข้อ Understanding NAT Pinning Technique อธิบายแนวคิดของเทคนิคการโจมตี NAT Pinning ที่ส่งผลเป็นอย่างมากต่อการมอง Attack surface และแนวทางในการ Exploit ของ NAT Slipstreaming
หัวข้อ Fundamental of ALG Attack อธิบายใจความสำคัญของเทคนิค NAT Slipstreaming ว่ามีไอเดียการโจมตีหลักเป็นอย่างไร
หัวข้อ The "Slipping" Part อธิบายการนำแนวคิดของการโจมตีมาทำให้เกิดการโจมตีจริง
หัวข้อ Write-What-Where in Network Packets อธิบายการแก้ปัญหาอุปสรรคแรกเพื่อให้การโจมตีสมบูรณ์ โดยการใช้ TCP segmentation และ IP fragmentation
หัวข้อ The Need for Leaking Internal Address อธิบายการแก้ปัญหาในอุปสรรคที่สองเพื่อให้แพ็คเกต SIP ที่จะส่งนั้นถูกต้อง โดยการใช้เทคนิคต่าง ๆ เพื่อให้ได้มาซึ่งหมายเลขไอพีแอดเดรสภายในของเป้าหมาย
หัวข้อ Crafting the Exploit อธิบายการนำองค์ประกอบทั้งหมดมารวมกันเพื่อสร้างเป็นชุดของ Exploit สำหรับเทคนิคนี้
Understanding NAT Pinning Technique
ในปี 2010 ผู้ค้นพบและวิจัยช่องโหว่ NAT Slipstreaming ได้มีการเปิดเผยงานวิจัยชิ้นแรกออกมาในชื่อ NAT Pinning พร้อมกับหน้าตัวอย่างของระบบเพื่อทดสอบเทคนิคการโจมตี การโจมตีโดยใช้เทคนิค NAT Pinning ที่สำเร็จนั้นจะทำให้อุปกรณ์เราท์เตอร์ทำการฟอร์เวิร์ดพอร์ตที่ผู้โจมตีกำหนดออกมา และเป็นช่องทางให้ผู้โจมตีที่อยู่เครือข่ายภายนอกสามารถเข้าถึงผู้ใช้งานที่อยู่ในเครือข่ายภายในได้
NAT Pinning อาศัยการใช้ฟีเจอร์ DCC (Direct Client-to-Client) ในโปรโตคอล IRC ที่ทำให้ผู้ติดต่อสื่อสารระหว่างกันสามารถติดต่อสื่อสารกันได้โดยตรงมาเปิดการใช้งานของ NAT โดยการหลอกล่อให้ผู้ใช้งานภายในร้องขอการเชื่อมไปยังเราท์เตอร์ และให้เราท์เตอร์เปิดและฟอร์เวิร์ดพอร์ตที่ต้องการจากภายนอกเข้ามา ขั้นตอนในเทคนิคการโจมตีสามารถอธิบายอย่างละเอียดได้ดังนี้
ผู้โจมตีหลอกให้ผู้ใช้งานซึ่งเป็นเหยื่อนั้นเข้าถึงเว็บไซต์ที่มีการฝังโค้ดที่เป็นอันตรายเอาไว้
เมื่อผู้ใช้งานเข้าเว็บไซต์ดังกล่าว ฟอร์มที่ถูกฝังไว้ในหน้าเว็บไซต์จะสร้างการเชื่อมต่อไปยังเซิร์ฟเวอร์ IRC ผ่านโปรโตคอล IRC ที่พอร์ต 6667 (http://attacker.