Technology

รวมสำรับวิชาการ แบน เว็บไซต์

By Arnon Puitrakul - 06 ตุลาคม 2023

รวมสำรับวิชาการ แบน เว็บไซต์

เมื่อหลายวันก่อน เรานั่งอ่านข่าวก็ เรียกว่า เรื่องโง่ ๆ ของคนโง่ ๆ ประจำวันอะเนอะ อยู่ ๆ ก็มีข่าวออกมาบอกว่า จะทำการแบน Facebook ออกจากประเทศไทย แต่พรี่ก็ยังประกาศผ่าน Facebook เอาเถอะช่างมัน ไม่ใช่สาระสำคัญ ทำให้เกิดคำถามที่น่าสนใจว่า แล้วถ้า ความโง่นี่มันโง่ขึ้นไปอีก ถ้าบอกว่า อ่อ กรูทำจริง วันนี้เราจะมาคุยกันว่า มันจะใช้เทคนิคอะไรที่จะ Implement ให้เกิดขึ้นจริง วันนี้เราหยิบยกมาเล่าทั้งวิธีที่รัฐไทยใช้อยู่แล้ว และ ฉบับสุดตรีนอย่าง The Great Firewall ของพรี่หมีพู

เมื่อเราเข้าเว็บไซต์ มันเกิดอะไรขึ้น ?

ก่อนที่เราจะไปเข้าใจกลไก การทำงานของระบบ Website Censorship และ Information Control Mechanism เราต้องเริ่มจากการมาทำความเข้าใจกลไกการทำงานของการเข้าถึง Website หรือ Service ต่าง ๆ บนโลกอินเตอร์เน็ตกันก่อน

ภาพกว้าง ๆ คือ เมื่อเราพิมพ์ URL อะไรสักอย่างเช่นเว็บไซต์ สาระแน่น ๆ อย่าง arnondora.in.th เข้าไป แล้วกด Enter บนหน้า Web Browser สิ่งที่เราจะได้ก็คือ หน้าเว็บใช่มะ แต่ในความเป็นจริงแล้ว มันมีขั้นตอนการทำงานที่มากกว่านั้นมาก ๆ

รวมสำรับวิชาการ แบน เว็บไซต์

ขั้นตอนแรกคือ เครื่องคอมพิวเตอร์มันไม่รู้หรอกนะว่า arnondora.in.th คือที่ไหน ระบบ Computer Network เราไม่ได้ใช้ชื่อพวกนี้ในการระบุที่อยู่ มันเจ้าใจยากสำหรับเครื่อง แต่เข้าใจง่ายสำหรับคน ทำให้เครื่องมันจะต้องมีการแปลงให้กลายเป็น ที่อยู่ ในแบบที่เครื่องคอมพิวเตอร์เข้าใจ นั่นคือ IP Address ทำให้มันจะต้องไปคุยกับคนที่มีข้อมูลว่า ชื่อ arnondora.in.th มันคือ IP Address อะไร ผู้ให้บริการนั่นก็คือ DNS Server นั่นเอง หลักการง่าย ๆ คือ มันจะวิ่งไปถามส่ง Query ไปแล้วถ้ามันไม่รู้ มันก็จะไปถามคนอื่นต่อ (ถามคนอื่นต่อยังไงไปอ่านเพิ่มเอาเองนะ) จนได้กลับมาเป็น IP Address

ซึ่งค่าพื้นฐาน มันก็จะไปเลือกที่ ๆ ใกล้ที่สุด แล้วค่อย ๆ ห่างออกไปเรื่อย ๆ เช่น ถ้าเราอยู่บ้าน มันก็จะวิ่งไปถาม Router ของเราที่ทำงานเป็น DNS Server ในตัวไปด้วยก่อน แล้วถ้าไม่รู้ มันก็จะค่อย ๆ ไปถามคนที่อยู่ห่างออกไป ซึ่งก็คือ ISP หรือผู้ให้บริการอินเตอร์เน็ตของเรานั่นเอง

Internet

พอเราได้ IP Address ของเว็บปลายทางออกมาแล้ว ตัว Web Browser มันก็จะส่งคำขอ (Request) ไปตามที่อยู่ปลายทางที่ได้รับมา แต่ ๆๆๆ เราไม่ได้เชื่อมต่อตรงกับที่อยู่ปลายทาง ทำให้เราจะต้องมีการวิ่งไปตามเส้นทางที่ใกล้ที่สุด เร็วที่สุด โดยทั่ว ๆ ไปแล้ว เราก็จะวิ่งจากเรา ไป ISP แล้วค่อย ๆ ไปที่ปลายทาง โดยที่เครื่องที่จุดสุดท้ายก่อนออกจากที่ต่าง ๆ เราจะเรียกว่า Gateway เช่น Router บ้านเรา มันก็คือ Gateway ของเราด้วย หรือของ ISP จุดสุดท้ายที่จะออกจาก ISP ไปหาปลายทางก็คือ Gateway ของ ISP เช่นเดียวกัน ซึ่ง Gateway ของ ISP เอง ก็อาจจะมี หนึ่ง หรือ มากกว่านั้นก็ได้ ขึ้นกับแต่ละเจ้าเลย โดยเราสามารถดูได้จาก Internet Map ของ NECTEC

เมื่อเครื่องปลายทางได้รับคำขอแล้ว มันก็จะทำการ Process หรือ ประมวลผล เพื่อสร้างผลลัพธ์ หรือ คำตอบ (Response) ออกมา ถ้าเป็นการเข้าหน้าเว็บ มันก็จะเป็น HTML ของหน้าเว็บ แล้วส่งกลับไปที่เครื่องที่ส่งคำขอมาให้ หรือก็คือ เครื่องเราเอง พอ Web Browser เราได้ข้อมูลกลับมา มันก็จะพยายาม Render หน้าออกมาเป็นอย่างที่เราเห็นนั่นเองงงง

แล้วเครื่องรู้ได้ยังไงว่า มันจะต้องส่งไปที่ไหนต่อ ?

เวลาเครื่องของเราส่ง Request ไปที่ Server ปลายทาง ถ้าเราบอกไปแค่ว่า เราขออะไร มันก็เป็นเรื่องยากใช่มะ ที่เครื่องปลายทางจะยิง Response กลับมา เพราะมันไม่รู้ว่า ใครละเป็นคนส่ง Request มาให้

รวมสำรับวิชาการ แบน เว็บไซต์

การแก้ปัญหา ง่ายมาก ๆ เหมือนกับตอนที่เราจะส่งจดหมายเลย เราจะต้องจ่าหน้าว่า เราจะส่งให้ใคร และ ใครเป็นคนส่ง อยู่หน้าซอง และ เราก็เอา Content หรือสิ่งที่ต้องการส่ง สอดเข้าไปในซอง ในโลกของ Internet ที่เราใช้งานกัน เราทำงานอยู่บนมาตรฐานเดียวกันที่ชื่อว่า TCP/IP

รวมสำรับวิชาการ แบน เว็บไซต์

จดหมายซองนึง เปรียบได้กับ Packet โดยใน 1 Packet มันจะประกอบด้วยของ 2 อย่างคือ Header และ Data ส่วนตัว Data ก็ตรงตัวเนอะคือ ข้อมูลที่เราต้องการจะส่งไป ส่วน Header ก็คือ จ่าหน้าซอง เราไม่เล่าละกันว่า มันมีหน้าตารายละเอียดอะไรยังไง แต่มันประกอบด้วยข้อมูลที่จำเป็นกับการระบุที่อยู่ต้นทางและปลายทางละกัน ถ้าเราอยากรู้เพิ่มลองไปหาเรียนพวกเรื่อง OSI Layer และ TCP/IP เพิ่มได้

เมื่อ Packet เราถึงจุดส่งต่อ มันก็เหมือนกับเวลาเราส่งพัสดุแล้วมันอยู่ตาม Sorting Centre ต่าง ๆ เลย ในโลกของ Internet เขาก็จะระบุด้วย IP Address ที่อยู่บน Header ของ Packet ซึ่งในเครื่อง Server ที่ทำหน้าที่ส่งต่อข้อมูลพวกนี้ เขาก็จะมีสิ่งที่เรียกว่า Routing Table อยู่ว่า ถ้าปลายทางจะไปที่นี่ เราต่อตรงอยู่นะ หรือ เราจะต้องไปอีกที่นะ มันก็จะอ่าน Routing Table แล้ว เทียบกับปลายทางที่ต้องการจะไป มันก็จะส่ง Packet นั่นแหละ ไปในปลายทางหรือ Sorting Centre จุดต่อไป ทำแบบนี้ไปเรื่อย ๆ จนถึงปลายทาง

ถ้าอยากศึกษาวิธีการทำงานของพวกการค้นหาเส้นทาง การสร้าง Routing Table ขึ้นมามันทำยังไง ลองไปอ่านเรื่องพวก Border Gateway Protocol (BGP) ได้

เท่านี้ เราก็น่าจะพอเข้าใจภาพรวมของอินเตอร์เน็ตไปกันบ้างไม่มากก็น้อยแล้ว ทีนี้เรามาดูกันดีกว่าว่ารัฐ จะใช้กลไก อะไรในการ Block หรือปิดกั้นการเข้าถึงเว็บไซต์ได้

วิชาเด็กกระโปก รัฐไทยกำลังใช้อยู่ : DNS Spoofing

#Hackให้เด็กมันดู : DNS Spoofing
วันนี้ขอเปิด Series ใหม่ด้วยเรื่องของการโจมตียอดนิยมอย่างการทำ DNS Spoofing เป็นทริกที่ใช้กันเยอะมาก ๆ เพื่อล่อล่วงให้เราเข้า Phishing Site แล้วล้วงข้อมูลได้เลย

มาที่วิธีแรกกันก่อน เป็นวิธีที่ง่ายมาก ๆ คือ การทำ DNS Spoofing เราเคยเขียนเล่าวิธีการไปละ สั้น ๆ คือ รัฐเข้ามาแทรกแซงโดยการบอกให้ ISP มีการเพิ่ม Static DNS เข้าไป ถ้าเกิดมีคน Request ขอ Domain Name ที่ไม่ได้รับอนุญาติ ตัว DNS ของ ISP จะต้องคืนค่ากลับมาเป็นที่อยู่ของกระทรวง DE นั่นเอง เรามา Hand-on กันดีกว่า

เราขอใช้ตัวอย่างเป็นเว็บไซต์ยอดนิยมของประชาชนชาวไทยขี้งี่ งี่โว้ยย อย่าง Pornhub ถ้าเราอยู่ใน Web Browser ของเราแล้วพิมพ์เข้าเว็บไซต์นั้นไป เราก็จะได้หน้าเว็บแบบนี้เลย

> nslookup pornhub.com
Server:		115.178.58.10
Address:	115.178.58.10#53

Name:	pornhub.com
Address: 125.26.170.3

แล้วเราจะพิสูจน์ได้ยังไงว่า มันเกิดจากที่เขาทำ DNS Spoofing งั้นเราลองขอเรียก DNS เลยละกัน ในเครื่องเราสามารถขอดู IP Address ที่ DNS ตอบกลับมาได้โดยใช้คำสั่งชื่อว่า nslookup มันจะบอกเลยว่า มันไปเรียก DNS Server ที่ไหน ซึ่งเราเดาว่า อันนี้น่าจะเป็น DNS Server ที่ใกล้ที่สุดของเรา น่าจะเป็น AIS แหละ แล้ว DNS Server ตอบกลับมาเป็น IP Address 125.26.170.3 ถ้าเราลองเอาไปเข้าดู เราก็จะได้หน้าเหมือนที่ตอนเราเข้า Pornhub เมื่อกี้เลย

เอ๊ะ แล้วงี้ IP Address จริง ๆ ของ Pornhub คืออะไรกันละ แน่นอนว่า ถ้าเขาใช้แค่ DNS Spoofing เราสามารถที่จะเลือกไม่ยอมใช้ DNS Server ที่มีความเสี่ยงว่าอาจจะมีการเปลี่ยนแปลงในลักษณะนี้ได้ และไปใช้ DNS Server ที่ได้รับความนิยมมากกว่าแทน เช่น Google DNS 8.8.8.8 หรือฝั่ง Cloudflare จะเป็น 1.1.1.1 งั้นเราลองเปลี่ยน DNS Server ในเครื่องเราให้ชี้ไปที่ 1.1.1.1 ก่อน

> nslookup pornhub.com
Server:		1.1.1.1
Address:	1.1.1.1#53

Non-authoritative answer:
Name:	pornhub.com
Address: 66.254.114.41

เมื่อเราขอ DNS Query อีกครั้งหลังจากเปลี่ยน DNS Server ในเครื่องเราไป อย่างแรกที่เราจะเห็นคือ Server มันเปลี่ยนไปละ เป็น 1.1.1.1 ตามที่เราตั้งไว้ และ เราจะเห็นว่า IP Address ที่ DNS Server ตอบกลับมา มันเปลี่ยนไปเป็น 66.254.114.41 แทนที่จะเป็น 125.26.170.3 แะถ้าเราลองเข้าดู มันก็จะเป็นหน้า Pornhub จริง ๆ นั่นแหละ

วิชามั่วซั่ว ชิบหายทั้งบาง : IP Blocking

มาที่อีกวิธีนึงที่สนุกกว่าวิธีแรกเยอะ คือการ Block IP ไปเลย คือ อาจจะไปคุยกับ ISP เลยว่า ให้ไปเซ็ตใน Firewall ที่อยู่บน Gateway พวกนั้นไปเลยว่า ถ้าเกิดปลายทางเป็น IP Address ที่เป็นที่อยู่ของ เว็บไซต์ที่ต้องการจะ Block ก็ให้มัน Drop Packet ออกไป​ (Network Blackholing หรือ ภาษาที่เราใช้คุยกับเพื่อนคือ "หลุมสูบกูแล้ว !") หรือก็คือ ทำให้คำขอส่งไม่ถึงปลายทางด้วยซ้ำ นั่นทำให้ สิ่งที่เราจะเห็นก็คือ เรา DNS Query ได้ออกมานะ แต่เราเชื่อมต่อไปที่ IP Address ไม่ได้ จะเจออาการ Connection Drop

เอาจริง มันก็ดูจะเป็นวิธีที่ดี มีประสิทธิภาพอยู่นะ แต่.... ความพีคของ IP Address ก็คือ แต่ละเว็บไซต์ มันอาจจะไม่ได้ประกอบด้วย 1 IP Address บางเจ้าอาจจะมีมากกว่านั้น หรือสนุกกว่านั้นคือ มันก็เปลี่ยนไปเปลี่ยนมาได้ด้วย

ตัวอย่างของเว็บที่มี IP Address เยอะมาก ๆ และน่าจะเยอะสุด ๆ ที่เราเคยเจอมาแล้วนั่นคือ Shopee นางมี IP Address เยอะมาก เว็บปกติ เขาซื้อกันไม่กี่ IP Address นี่บอกว่า ไม่ ซื้อแมร่งเป็น วง เลย ถ้าเราเข้าไปดูในเว็บของ ipinfo เราจะเห็นเลยว่า เขาซื้อ IP Address ไปทั้งหมด 4 วงด้วยกัน โดย 3 วงแรกเป็น /24 วงละ 256 Addresses และ อีกวงเป็น /23 ที่มี 512 Addresses ก็คือ จัดหนักมาก สงสัยชิบหายเลยว่า พรี่แมร่งเอาไปทำอะไรวะ ???

เจาะ Technical ทำไม Telegram ถึงปลอดภัย บล็อกเท่าไหร่ก็ ”อ่อนหัด”
Telegram เป็น App ที่นักเคลื่อนไหวหลายคนเลือกใช้มาหลายรอบแล้ว ทั้งในฮ่องกงเอง และ ในครั้งนี้ฝั่งไทยเราก็ใช้กัน วันนี้เราจะพาทุกคนมาไขความลับกันว่า ทำไมมันถึงปลอดภัยได้ขนาดนั้น และ มันปิดการเข้าถึงได้จริงเหรอ

แต่มันก็จะมีอีกตัวอย่างคือ เว็บบางเว็บ เขาไม่ได้มีการซื้อ Public IP Address ด้วยตัวเอง เขาอาจจะใช้งานผ่านพวก Cloud เช่น GCP และ AWS ซึ่งผู้ให้บริการพวกนี้ เขาก็จะซื้อพวก IP Address หลายวงมาก ๆ เพื่อมาให้บริการ พอเว็บใช้บริการ Cloud มันก็จะได้รับการแจก IP Address เข้ามา พอรัฐเห็นว่าจะ Block IP Address ของเว็บนี้ เขาก็จะเอา IP Address ปัจจุบันไปใส่ใน Blacklist ความตลกคือ เจ้าของเว็บนั้นก็คือลบ Service แล้ว สร้างใหม่ ย้ายข้อมูลไป เขาก็จะได้ IP Address ตัวใหม่ ก็ทำให้คนเข้าเว็บนั้นได้เหมือนเดิมแล้ว

ความเ_ยคือ IP เดิมที่รัฐเคย Block ไป มันก็อาจจะถูกใช้โดยผู้ใช้บริการคนอื่น ๆ ใน Cloud ด้วยเหมือนกันทำให้เขาก็รับกรรมไปด้วยกันเลย ฮ่า ๆ แล้วนึกภาพว่า เรื่องแบบนี้เกิดขึ้นแบบเยอะมาก ๆ มันกลายเป็นว่า แมร่ง Block IP กันมั่วซั่วไปหมด โดนกันแบบ งง ๆ เลยบอกว่า วิธีการแบบนี้ก็คือ มั่วซั่ว ชิบหายกันทั้งบาง

พีคขึ้นไปอีก ถ้าเกิดว่า IP Address List มันขยายใหญ่ขึ้น เครื่องมันก็จะต้องใช้กำลังในการหาเยอะขึ้นไปอีกเรื่อย ๆ เลย นั่นแปลว่า จะต้อง Scale เครื่องสำหรับการทำอะไรพวกนี้ให้ใหญ่ขึ้น กินเงินค่าให้บริการไปอีก และแน่นอนว่า มันจะเก็บกับใครละ ก็ลูกค้าที่ไปแบนเขาไงวะ ถามได้ !

แต่ทีนี้นังหมีพูก็คือ แหม่ แบนเขาไปทั่วหมดเลย ทำแบบนั้นมันก็ทำให้ IP Address List ใหญ่โตมาก งั้นเปลี่ยนเป็น Whitelist แทนเลยสิวะ คือ ถ้า IP Address นั้นไม่อยู่ใน Whitelist ก็คือ Block ไปเลย อันไหนอยู่ก็ปล่อยผ่าน เป็นการลดภาระสำหรับเครื่อง Firewall ที่จัดการแบน

วิชาคำต้องห้าม !!! : Keyword Filtering

จากวิธีการก่อนหน้าทั้ง 2 วิธี มันเป็นการ Block ในระดับของทั้ง Website หรือ Service ได้เลย โดยที่เราจะต้องรู้ว่า Service และ Website นั้นอยู่ที่ไหน หรือมีชื่อว่าอะไร แต่บางครั้งเขาก็อยากจะ Block ใน Keyword ต่าง ๆ เช่นที่เคยเกิดขึ้นในบ้านเราอย่างพวก เรื่องของเสี่ยโ_นักเ_ด ในเว็บไซต์สำนักข่าวต่าง ๆ ที่ชอบใส่เสื้อแบบนั้นไปเดินอยู่ในประเทศเยอรมัน แต่ถ้าจะแบนทั้งเว็บเลย มันก็จะแหม่นะ ทำให้ดูปิดกั้นสื่อไปอีก หรือกระทั่ง Internet มันมีเว็บใหม่ ๆ มาเรื่อย ๆ การจะปิดกั้นมันก็เป็นเรื่องยากอีก งั้นไม่ได้ปะ งั้นเราต้องใช้วิธีการใหม่

งั้น ๆ เราทำแบบนี้ดีกว่า ในเมื่อเราพอจะเห็นบางอย่างใน Packet เช่นพวก Header หรือกระทั่ง Content ในบางเว็บไซต์ได้เลย งั้นเราลองมาตั้งเป็น Keyword มะ เช่น เ_ยโ_ขี้เย_ หรือคำที่อาจจะเกี่ยวข้องกับหัวเรื่องที่ต้องการปิดกั้น ถ้าใน URL ที่เราเข้ามันประกอบด้วย Keyword สักตัวที่ตั้งไว้ มันก็จะ Drop Packet นี้ไปเลย ทำให้ผู้ใช้จึงไม่สามารถจะเข้าถึงหน้าเว็บนั้นได้เลย วิธีการแบบนี้บางคน เขาจะเรียกว่า Shallow Packet Inspection (SPI)

ถ้ามันเช็คแค่ URL เอาจริง ๆ เจ้าของเว็บก็สามารถที่จะ Bypass มันได้ง่าย ๆ ด้วยการตั้ง URL ที่ไม่ประกอบด้วยคำต้องห้ามพวกนั้นแค่นั้นเลย จบ อีซี่

วิชาลูกคนกลาง : Transparent Proxy + Keyword Filtering

จากวิธีก่อน มันทำให้เขาสามารถ Inspect พวก Header ทั้งหลายได้ ซึ่งจริง ๆ มันก็คือแค่พวก URL ที่เราเข้าเท่านั้นว่ามันมีอะไรที่เกี่ยวกับเรื่องที่เขาต้องการปิดกั้นหรือไม่แค่นั้น แต่ว่า แล้ว Content ละ อะ ถ้าเป็นเว็บสมัยก่อน เราใช้ HTTP ภายใน Content ของ Packet มันเป็น Plaintext เลย ทำให้ เขาสามารถอ่านได้ง่าย ๆ สบายเลย

HTTPS, SSL และ TLS ของง่าย ๆ ที่ทำให้ชีวิตปลอดภัย
โลกอินเตอร์เน็ตย่างกลายเข้ามาอยู่ในชีวิตเรามากขึ้นทุกวัน ๆ เราใช้งานมันส่งข้อมูลส่วนตัวมากมายวันนี้เรามาดูกันว่า HTTPS, SSL และ TLS จะเข้ามาช่วยให้ชีวิตเราปลอดภัยขึ้นได้อย่างไรกัน

แต่วันนี้ เว็บไซต์หลาย ๆ เว็บส่วนใหญ่บนโลก เรากระโดดมาเล่นเป็น HTTPS กันหมดแล้ว เราเคยเขียนเล่าไว้แล้ว สิ่งที่ต่างกันหลัก ๆ คือ HTTPS จะทำการเข้ารหัสส่วน Content ใน Packet ก่อนที่เราจะส่งไป ทำให้ มีแค่ผู้ส่งและผู้รับเท่านั้นที่จะอ่านได้ แต่เขาอยากรู้จังเลยอะว่า กลางทางนั้นแกเข้าเว็บอะไรอยู่อะ

งั้นทำงี้ เดี๋ยวเราเองเนี่ย จะเป็นคนกลางให้นะ เราจะโหลดหน้าเว็บไว้ให้แล้วคุณก็มาโหลดหน้าเว็บจากเราไป จะได้เป็นการลด Traffic ของคุณไง พวกนี้แหละ เราเรียกว่า Web Proxy ซึ่งเป็นท่าที่เราใช้งานกันทั่ว ๆ ไปมาก ๆ เช่นบางองค์กรก็เลือกใช้เพื่อเป็นการลด Traffic เข้าออก หน้าที่เคยโหลดแล้ว ก็ไม่ต้องโหลดอีก

เท่านี้ถึงเว็บจะใช้ HTTPS แต่พอเราเปลี่ยนคนเรียกเป็น Proxy Server แปลว่า ตัว Proxy Server ก็ต้องอ่าน Content ได้ใช่ป่ะ เพราะ Proxy Server ทำตัวเป็นคนกลางสำหรับการเข้าเว็บซะเอง ทำให้ ในพวก Content อย่างบทความ หน้าเว็บ หรือวีดีโอ เราก็สามารถที่จะโหลดเข้ามาใน Proxy Server ได้ แต่นอนว่า มันติดตั้ง Software สำหรับการทำ Keyword Filtering เข้าไปด้วย ทำให้เขาสามารถที่จะเข้าถึงตัว Content ได้ละ

ด้วยการเล่นท่าแบบนี้ต้องยอมรับว่า Countermeasure ยากมาก ๆ เพราะ Content เราเข้าได้แบบ Public ทำให้ผู้ให้บริการเว็บก็ไม่รู้จะปิดยังไงเหมือนกัน จะ Block Proxy Server อ้าว ชิบหาย มันก็เข้าไม่ได้เลยสิวะ เพราะทุกคนวิ่งผ่าน Proxy Server ตัวนี้กันหมด แต่ถามว่า มันอ่านได้ทุก Content เลยเหรอ ก็ไม่ พวก Content ที่มันอาศัยการ Authentication หรืออะไรที่มันเป็น Stateful มันต้องมีการทำบางอย่างก่อน ที่จะเข้าอ่าน Content นี้ได้ วิธีการอย่าง Proxy Server มันก็ไม่ได้เรื่องเท่าไหร่ เพราะหน้าที่เขาจะได้ไปถ้าเขาเอา URL ไปเรียกเก็บเองก็อาจจะเป็นหน้า Login แค่นั้น

วิชาเด็กงอแง อุแว้ : Traffic Shaping

อันนี้เป็นวิชามารที่เราอ่านเจอในหนังสือเรียนและ เชี้ย มันทำกันแล้ว Works จริง ๆ เหรอวะ แต่แมร่งตัวอย่างของที่เขายกขึ้นมาคือ Great Firewall ของจีน เข้ !! แต่บอกเลยว่า แมร่งเหนือจริ๊งงง คืองี้ เวลาเราเข้าเว็บ ถ้าเว็บที่มันเข้าได้ เร็ว ปกติ เราก็จะชอบใช่ป่ะ แต่ถ้าเกิด หน้าเว็บมันโหลดช้ามาก ๆ หลักวินาทีอะไรแบบนั้น เราก็เอ๊ะ หรือว่า เว็บมันจะพัง แล้วเราก็ไม่เข้า ไปหาเว็บอื่นใช่ป่ะ

นี่แหละ มันใช้ช่องโหว่แบบนี้แหละ ในการทำวิชานี้ คือ เขาจะพยายามทำสิ่งที่เรียกว่า Rate-Limitting เป็นท่าที่เราใช้งานกันทั่ว ๆ ไปสำหรับการลด อัตราการเข้าถึง เช่น เราจำกัดไว้ที่ 1,000 Req/s ถ้าตอนนั้นเกินกว่านั้น มันก็ต่อคิว หรือ Drop Packet ออกไปเลย แต่สิ่งที่เขาทำก็คือ การให้ไปต่อคิว เหมือนอยู่ ๆ เราบอกว่า โอเค ถ้าแกถือ Passport นี้ ต้องไปได้แค่ช่องนี้ ๆ เท่านั้นนะ แล้วให้พนักงานเปิด Counter น้อย ๆ แบบนั้นเลย มันก็จะทำให้คนไม่เข้า เปลี่ยนไปเข้าเว็บอื่นแทน และ ถ้าเราลองพยายาม Ping เพื่อเช็คว่ามันเชื่อมต่อได้มั้ย มันแน่นอนว่า เชื่อมต่อได้สิ เพราะ ปลายทางมีอยู่จริง แค่โดน Rate Limit ไว้เท่านั้นแหละ

ส่วนตัวอันนี้ เราคิดว่า การที่เราจะรู้ว่า เราโดนอะไรแบบนี้อยู่มันแอบยากนิดหน่อย เพราะเราไม่รู้เลยว่า เราโดน Rate Limit อยู่หรือไม่ แต่เราเดาได้ไม่ยากว่า ถ้าเกิดว่า เว็บที่เราเข้ามันมี Traffic ณ เวลานั้นหนาแน่นจริง ๆ ไม่ว่าเราจะส่งอะไรไป มันจะต้องตอบช้ากว่าที่ควรจะเป็นแน่ ๆ แต่กลับกัน ถ้าเราโดน Rate Limiter เข้าไป จริง ๆ Server หรือ Proxy ทุกจุดมันไหว แต่มันโดนจำกัดไว้ ทำให้ถ้าเราโยนอะไรเข้าไปมันก็น่าจะไม่มีปัญหา เลยคิดว่า ถ้าเราโยน ICMP เข้าไป ก็น่าจะพอเดาออกได้

> traceroute pornhub.com
traceroute to pornhub.com (125.26.170.3), 64 hops max, 52 byte packets
 1  router.lan (192.168.88.1)  2.627 ms  1.850 ms  3.177 ms
 2  * * *
 3  ae8.fcr02j.cwdc.myaisfibre.com (49.228.4.99)  9.232 ms  6.893 ms  7.529 ms
 4  ve454.nat-bpi.sila1-cgn01.myaisfibre.com (49.228.129.133)  5.904 ms  5.036 ms  6.022 ms
 5  ae19.bgw01j.cwdc.myaisfibre.com (49.228.4.16)  11.674 ms  6.853 ms  12.397 ms
 6  aex.nix-cwdc-pe02.cwdc.myaisfibre.com (49.228.4.60)  5.893 ms  5.625 ms  7.713 ms
 7  203.113.61.81 (203.113.61.81)  6.573 ms  9.453 ms
    49-231-32-163.sbn-idc.com (49.231.32.163)  6.293 ms
 8  203.113.61.94 (203.113.61.94)  7.285 ms
    203.113.61.81 (203.113.61.81)  6.475 ms  6.988 ms
 9  203.113.61.94 (203.113.61.94)  7.391 ms  7.755 ms
    203.113.37.174 (203.113.37.174)  11.648 ms
10  203.113.37.174 (203.113.37.174)  12.887 ms  12.149 ms
    node-xkz.pool-125-26.dynamic.totinternet.net (125.26.170.3)  6.601 ms !Z
11  node-xkz.pool-125-26.dynamic.totinternet.net (125.26.170.3)  5.828 ms !Z  6.713 ms !Z  5.851 ms !Z

คำสั่งที่เราสามารถใช้ในการ Trace หรือตามรอยได้ว่า ถ้าเราเข้าเว็บนี้ มันจะต้องผ่านที่ไหนบ้าง คือคำสั่งที่ชื่อว่า traceroute สิ่งที่มันทำคือ มันจะค่อย ๆ เดินไปตามทางเรื่อย ๆ แล้วทำการ Ping หรือ ส่ง ICMP เข้าไปที่แต่ละ Hop ที่มันผ่าน เพื่อมาบอกเราว่า จากเราถึงแต่ละจุดมันใช้เวลาเท่าไหร่ เช่นตัวอย่างนี้ เราขอให้มันวิ่งที่ Pornhub อะแน่นอนว่ามันเข้าหน้าของ DE แต่เราจะเห็นว่า แต่ละ Hop เวลาที่มันใช้ในการกระโดดจากจุดนึงไปอีกจุดนึงมันไม่ได้ห่างกันอย่างเป็นนัยสำคัญ ถ้าเกิด เราเข้าแล้วมันโหลดอยู่นานมาก ๆ อะ ก็เรียกว่า น่าจะแล้วแหละ

วิชาถ้ำมอง : Deep Packet Inspection (DPI)

หากคิดว่า วิธีที่ผ่านมา มันหาทำ เสียเงินชิบหายวายป่วงแล้ว เราอยากให้ทุกคนรู้จักกับวิธีการที่ชิบหายการเงิน และ ปวดหัวกว่านั่นคือ การทำสิ่งที่เรียกว่า Deep Packet Inspection (DPI) ก่อนหน้านี้เราเห็นคำว่า Shallow Packet Inspection (SPI) กันไปแล้ว เหมือนกันเลย แต่ DPI มันทำลึกว่า ละเอียดกว่ามาก ๆ

เทียบง่าย ๆ ถ้า SPI เหมือน Guard ตรวจโลหะติดตัวในสนามบิน DPI ก็คือ เครื่องสแกนกระเป๋าเลยแหละ เพราะสิ่งที่ DPI มันมอง มันมองลึกมาก ๆ นอกจากพวก Header แล้ว มันมองเข้าไปใน Content ของ Packet เลย พร้อมกับอาศัยพวก Machine Learning ในยุคสมัยใหม่ ที่จะ ตรวจหาสิ่งแปลกปลอมได้ด้วย

เช่น ถ้าเราจากจะ Block VPN เพราะวิธีที่ผ่านมาทั้งหมด เราสามารถออกจากประเทศ มุดไปออกอีกประเทศด้วย VPN ได้ งั้นถามว่า ถ้าเราเป็นหมีพู เราจะทำยังไง เราก็ต้อง Block VPN ใช่ป่ะ แต่ความยากคือ Packet ของ VPN จริง ๆ มันก็ไม่ต่างจาก Packet อื่น ๆ เลยนะ คือมี หัว และ Content เหมือนกัน แต่สิ่งที่มันต่างคือ ภายใน Content มันจะประกอบด้วย Packet ทั้งตัวอีกอันนึงเลย โอ้วโหหห สุดปะละ

ถ้าเราใช้พวกวิธีการที่ผ่านมาในการมาหา เราก็จะไม่เห็นอะไรเลยใช่ป่ะ เพราะ Header จริง ๆ มันก็เหมือนกันหมด อย่างมาก เราอาจจะมองให้ลึกขึ้นว่า เอ๊ะ Traffic มันวิ่งไปที่ IP Address นี้เยอะกว่าปกตินะ แล้วเราก็ต้องใช้คนมานั่งดูว่า เอ๋ ปลายทางคือที่ไหนถึงจะ Block ได้ใช่ป่ะ มันยุ่งยากมาก และ IP Address มันเปลี่ยนกันไปเรื่อย ๆ ตามตัวยากมาก ๆ

แต่แน่นอนว่า พวกนี้มันมี Pattern จริง ๆ ถ้าเราสามารถออกแบบระบบที่สามารถเรียนรู้ Pattern และให้มัน Detect Pattern พวกนี้ได้ เขาก็สามารถที่จะ Filter Packet แปลก ๆ อย่างพวก VPN ได้แบบสุด ๆ ไปเลย

สรุป : ท่าล้านอย่าง แต่ก็เหมือนแมวจับหนูอยู่ดี

ทุกวิธีที่เราเล่ามาจริง ๆ มันเป็นท่าเดียวกับที่เราใช้ในการป้องกันระบบของเราอยู่แล้ว เช่นพวก DPI เราก็ใช้งานกันในระดับ Enterprise หรือกระทั่ง Home Use บางคนก็อาจจะได้ใช้แล้วด้วยซ้ำ วิธีพวกนี้มันไม่ได้ผิดอะไรเนอะ แต่ปัญหาคือ การเอามาใช้งานมากกว่า เลยสามารถเล่าได้หมดเลยว่าเขาทำกันยังไง หลักการเบื้องต้นคืออะไร แต่สุดท้ายแล้ว ไม่ว่าจะเป็นวิธีไหน จะสังเกตได้ว่า เรามักจะบอก Countermeasure เสมอว่า มันทำยังไง เพราะ ทุกอย่างมีช่องโหว่เสมอ วิธีนึงออกมา มันก็จะมีคนคิดวิธีแก้ออกมาเช่นกัน มันก็จะวนแบบนี้ไปเรื่อย ๆ เหมือนกับแมวจับหนูวนไปเรื่อย ๆ นี่แหละ และเราจะบอกว่า แมร่งมีวิธีการที่เ_ยกว่านี้อีกเช่น การทำ MITM Attack โดยการ อ่อ เราเป็น CA ซะเอง แล้วเราก็จุ๊บ Certificate แมร่งมาเลย เข้ แบบนี้ก็ได้เหรอวะ แล้วปลอมตัวเองเป็น Github บ้าง เป็น iCloud บ้าง มาเหนือชิบหาย ถ้าไม่ใช่ CA ก็ทำไม่ได้นะ

มี IETF เขาสำรวจพวกเทคนิคที่ใช้ในการทำ Internet Censorship มาด้วย เขาเขียนละเอียดกว่าเรามาก ลองเข้าไปอ่านได้ใน A Survey of Worldwide Censorship Techniques

ปล. อ่านมาถามว่า พรี่จีนเราใช้วิธีไหนอยู่ ก็จะบอกว่า ทุกวิธีที่เราว่ามาแหละค่าาา เหนือกว่านั้นคือ Gateway รัฐเป็นเจ้าของนะ จะเข้าจะออก ต้องผ่านรัฐเสมอ แซ่บปะละอีประเทศนี้ ยังไม่นับว่า มลฑลไท่กั๊ว แมร่งยังเคยมีไอเดียอยากทำ Single Gateway เหมือนเขาอี๊กกกกก งง ลอกมาทุกอย่าง ยกเว้นความเจริญ.....

Read Next...

ยืดเวลาการใช้งานแบต Macbook ด้วย 3 ทริกง่าย ๆ

ยืดเวลาการใช้งานแบต Macbook ด้วย 3 ทริกง่าย ๆ

เวลาเราเอา Macbook ออกไปใช้งานนอกบ้าน บางครั้ง เราสามารถเสียบปลั๊กไฟได้ แต่งานก็ต้องทำ ก็คือทำงานแข่งกับเวลาเลยทีเดียว วันนี้เราจะมาบอกทริกการยืดเวลาการใช้งานบน Battery กันจาก 3 ทริกง่าย ๆ กัน...

Bittorrent คืออะไร ทำงานอย่างไร?

Bittorrent คืออะไร ทำงานอย่างไร?

การดาวน์โหลดไฟล์ผ่าน Internet เป็นเรื่องทั่ว ๆ ไปสำหรับการใช้งานในปัจจุบันกันแล้ว ตั้งแต่การโหลดไฟล์เอกสารต่าง ๆ จนไปถึงการ Stream เพลง และหนังต่าง ๆ แต่วันนี้เราจะพามาทำความรู้จักกับโลกอีกใบ อีกวิธีการของการแชร์ไฟล์บนโลก Internet กันนั่นคือ Bittorrent...

ปัญหาการโอนเงินไม่ผ่านแต่ผ่านกับ Two Generals' Problem

ปัญหาการโอนเงินไม่ผ่านแต่ผ่านกับ Two Generals' Problem

หลายวันก่อนไปซื้อชานมมา จ่ายเงินด้วย QR Code ปรากฏว่า จ่ายไม่ได้ แต่เครื่อง EDC บอกว่า จ่ายผ่านเฉยทำให้คิดถึงปัญหานึงที่น่าสนใจคือ Two Generals' Problem วันนี้เราจะมาเล่าให้อ่านกันว่า มันคืออะไร และเกี่ยวอะไรกับการโอนเงิน...

Stream Apple Music อย่างไรให้ได้คุณภาพสูงสุด

Stream Apple Music อย่างไรให้ได้คุณภาพสูงสุด

เรื่องของเรื่องคือ เราทดลองเล่นเพลงผ่าน AirPlay 2 เข้ากับลำโพงแล้วเสียงมันแปลก ๆเลยไปหาข้อมูลมา เลยทำให้โป๊ะว่า อ้าว.... ชิบหาย Hi-Res ทิพย์นี่หว่า ทำไม เราไปดูเหตุผลในบทความนี้กัน...