เวลาพูดถึงการแฮกระบบคอมพิวเตอร์ หลายคนจะนึกถึงพวกมัลแวร์ที่จะมาโจมตีเครื่องคอมพิวเตอร์ โดนเจาะรหัสผ่าน หรือมีแฮกเกอร์มานั่งพิมพ์ๆ บนหน้าจอเท่ๆ แล้วอยู่ๆ ระบบคอมพิวเตอร์ก็โดนแฮกไป แต่ในทางปฏิบัติจริง หากต้องการจะแฮกคนทั่วไปแล้ว วิธีที่ประสบความสำเร็จได้อย่างมหาศาลจริงๆ กลับเป็นวิธีที่ใช้หลักการของวิศวกรรมสังคม (Social engineering) และ Phishing หรือ การหลอกให้ผู้ใช้งานเป็นผู้เปิดเผยข้อมูลชื่อผู้ใช้งานและรหัสผ่านเองเนี่ย ก็เป็นอะไรที่ได้ผลมากซะด้วย เพียงแต่ว่าหลังๆ มานี่ คนเริ่มไหวตัวทัน และพอจะรู้ว่าต้องดู URL ให้แน่ใจก่อนว่าเป็นเว็บไซต์จริงหรือไม่การทำ Phishing ด้วยการจำลองหน้าล็อกอินของเว็บก็เริ่มจะหมดประสิทธิภาพไป แต่เมื่อกลางเดือนมีนาคม 2565 ที่ผ่านมา เว็บไซต์ mrd0x.com มีการเตือนถึงเทคนิคใหม่ของพวกแฮกเกอร์ที่จะใช้หลอก Phishing ให้เนียนขึ้นอย่าง Browser in the Browser (BITB) attack ที่ทำให้การดู URL เพียงอย่างเดียวอาจไม่พออีกต่อไปแล้วนะสิ
จริงๆ มันก็เหมือนกับความพยายามในการเล่นเกมแมวไล่จับหนูแหละ หนูก็คือแฮกเกอร์ ส่วนแมวก็คือพวกเจ้าของระบบหรือผู้เชี่ยวชาญด้านความมั่นคงปลอดภัยทางคอมพิวเตอร์ พวกเขาพยายามหาวิธีต่างๆ มากมายมาเสริมสร้างความปลอดภัยให้กับระบบ แต่พวกแฮกเกอร์เขาก็พยายามหาช่องโหว่ในการที่จะโจมตีได้อยู่ดี
ในขณะที่หลักการทำ Phishing ของพวกแฮกเกอร์ยังคงเหมือนเดิม คือ พยายามหลอกล่อให้ผู้ใช้งานเข้ามายังหน้าเว็บปลอม ที่มีการทำเนียนซะจนเหมือนเว็บไซต์จริงๆ แล้วก็เผลอใส่ชื่อผู้ใช้งานและรหัสผ่านของตัวเองเข้าไป แต่ในทางปฏิบัติมันมีการพัฒนาเทคนิคเพิ่มขึ้น เพราะผู้คนเริ่มเรียนรู้ว่าฉันต้องดู URL ของเว็บไซต์ให้แน่ใจก่อนนะ ว่ามันเป็นเว็บไซต์จริงๆ ไหม เดี๋ยวนี้พวกเว็บไซต์ต่างๆ ที่ลูกค้าโดยแฮกด้วยวิธีนี้บ่อยๆ เขาก็จะมีการทำประกาศเตือนเอาไว้แล้ว และโซเชียลมีเดียก็แชร์กันให้สนั่น ผู้คนก็ตระหนักรู้มากขึ้น

การปลอมเว็บไซต์ให้เหมือนกับเว็บไซต์ของจริงเดี๋ยวนี้ทำได้ไม่ยาก เพราะโค้ดต่างๆ ในการทำเว็บไซต์มันก็เรียกดูได้สบายๆ และเว็บไซต์สมัยนี้ก็เน้นเรื่องความเร็วในการโหลด เพราะมันคือปัจจัยหนึ่งที่ทำให้เว็บไซต์ของตนเองได้คะแนนดีตอนทำ SEO (Search Engine Optimization) นอกจากนี้ การแสดงผลแบบ Mobile-first ก็ทำให้ความซับซ้อนของหน้าเว็บไซต์ลดน้อยลงไปเยอะมาก ยิ่งปลอมให้เนียนง่ายเข้าไปอีก
การจะให้แน่ใจว่าผู้ใช้งานจะเปิดเว็บไซต์ปลอมนั้น นอกจากจะพยายามหลอกล่อด้วยการส่งลิงก์มาที่เว็บไซต์ปลอมผ่านทางอีเมลหรือ SMS แล้ว ก็ยังมีเทคนิคที่เรียกว่า Man-in-the-browser (MITB) ที่เป็นการส่งมัลแวร์มาโจมตีก่อน (ผ่านการหลอกล่อให้ติดตั้งโปรแกรมหรือเปิดไฟล์ที่มีมัลแวร์อยู่) แล้วภายหลัง Malware นั้นก็จะสร้างป๊อบอัปของหน้าเว็บไซต์ที่เป็นเว็บปลอมมาหลอกเอาข้อมูลของผู้ใช้งาน
อีกเทคนิคนึง เขาเรียกว่า Inception bar คือ การอาศัยหน้าจอของสมาร์ทโฟนมันมีพื้นที่ในการแสดงผลที่จำกัด ดังนั้นพวกเบราว์เซอร์บนสมาร์ทโฟนเลยมักจะซ่อน Address bar (ที่เอาไว้แสดง URL ของเว็บไซต์) ซะ เวลาที่เราเริ่มเลื่อนหน้าจอเว็บลงไปอ่านข้อมูล แฮกเกอร์ก็จะใช้วิธีเขียนโค้ดเพื่อสร้าง Adress bar ปลอมๆ ขึ้นมาแสดงแทน อย่างเช่นในเว็บไซต์ jamesfisher.com นี้ ถ้าเปิดด้วย Google Chrome บนสมาร์ทโฟน แล้วค่อยๆ เลื่อนหน้าจอลงไปเรื่อยๆ เราจะเห็นว่า Address bar จะถูกซ่อนไป แล้วซักพัก เราก็จะเห็น Address bar อีกอัน แต่เขียนว่าเป็น https://www.hsbc.com ที่เป็นเว็บไซต์ของธนาคารฮ่องกงและเซี่ยงไฮ้ แทน

และเทคนิคล่าสุด Browser-in-the-browser (BITB) ที่เว็บไซต์ mrd0x.com เนี่ย ก็อาศัยเรื่องที่ว่า หลายๆ เว็บไซต์จะมีการเปิดป๊อบอัปหน้าเว็บขึ้นมาเพื่อให้ผู้ใช้งานได้ล็อกอิน เวลาที่ผู้ใช้งานพยายามล็อกอินด้วยวิธี Single Sign On (SSO) ผ่านบัญชีของบริการอื่นๆ เช่น Apple Account, Google Account, Facebook อะไรพวกนี้ ถ้าใครสังเกตดีๆ จะเห็นว่า เวลาเราจะล็อกอินแบบง่ายๆ ด้วยการล็อกอินผ่านพวกบัญชี Apple, Google, Facebook ที่เรามีอยู่แล้ว (จะได้ไม่ต้องมานั่งจำรหัสผ่านหลายๆ อัน) เราจะเห็นว่าตรงป๊อบอัป มันก็จะมี URL ของเว็บไซต์ขึ้นมาด้วย พอเราเห็นว่ามันโฮสต์อยู่ที่ accounts.google.com เราก็สบายใจได้ว่า เออ เว็บจริง เราก็ใส่ Username กับ Password ลงไป

ปัญหาก็คือ เมื่อแฮกเกอร์เอาความรู้ด้าน JavaScript มาผสมกับ HTML และ CSS นิดหน่อย เขาก็จะสามารถสั่งให้เมื่อคลิกลิงก์แล้ว ก็จะเปิดหน้าต่างป๊อบอัปขึ้นมา แสดงเป็นหน้าตาล็อกอิน Single Sign On ได้เหมือนกับของจริงเป๊ะๆ แบบนี้ เนียนยัน URL ไปเลยครับ ถามว่าทำไมเนียนได้ขนาดนั้น? คำตอบก็คือ เขามีการสร้าง Address bar ปลอมขึ้นมา แล้วแสดงข้อความเป็น URL แบบเดียวกับ URL ของจริง ส่วนตัวข้อมูลใดๆ บนหน้าเว็บ ก็ไปดึงมาจาก iframe ที่อยู่บนเว็บไซต์ปลอมแทน ซึ่งหากเรากรอก Username กับ Password ลงไปในป๊อบอัปปลอมๆ นี้ ก็เท่ากับเราส่งข้อมูลให้แฮกเกอร์ถึงมือเลยครับ

ข้างบนเนี่ย เป็นตัวอย่างที่ยังไม่เนียน 100% นะ ใครสังเกตไหมว่ามีอะไรที่ผิดแผกแตกต่างไปจากของจริง? คำตอบก็คือ ตัวไอคอนรูปแม่กุญแจครับ ถ้าเทียบให้ดีๆ จะเห็นว่ามันอ้วนกว่าของจริงนิดหน่อยใช่ไหมครับ แต่อย่าคิดว่าจะใช้วิธีนี้ดูได้นะ เพราะแฮกเกอร์ก็สามารถที่จะเขียนโค้ดให้ซับซ้อน สามารถตรวจสอบได้ว่าเบราว์เซอร์เป็นตัวไหน และเลือกแสดงรูปแม่กุญแจที่ถูกต้องสำหรับเบราว์เซอร์นั้นๆ ได้ครับ อันนี้เขาแค่ทำเป็น Proof of concept ก็จะไม่ได้ใส่ใจรายละเอียดมากขนาดนั้น
ถ้าอยากเห็นว่าของจริงมันเป็นยังไง ช่อง Infinite Logins บน YouTube เขามีทำมาให้ดูครับ
หลายคนก็อาจจะมองว่า ก่อนจะคลิกปุ่มใดๆ ก็ดูก่อนไหมล่ะ ว่ามันจะชี้ไปที่ URL อะไร เพราะปกติ เวลาที่เราเอาเคอร์เซอร์ของเมาส์ไปชี้ไว้ตรงลิงก์หรือปุ่มที่มี HTML tag <a href> อยู่ มันก็จะพรีวิว URL ขึ้นมาให้แบบในรูปด้านล่างนี่

ทาง mrd0x เขาก็บอกว่า ก็ถ้าปกติเราใช้ HTML tag <a href> มันก็จะแสดง URL ให้แหละ แต่ว่าถ้าเกิดมีการพ่วง JavaScript ใส่ onclick event เข้าไป เพื่อรันฟังก์ชันให้เปิดหน้าต่างป๊อบอัปแบบนี้ เวลาที่เราเอาเมาส์ไปชี้ที่ปุ่ม มันก็จะยังคงพรีวิว URL ที่ถูกต้องขึ้นมาให้ แต่ตัวป๊อบอัปจริงๆ อะ มันจะขึ้นมาอีกอัน เพราะอยู่ที่ว่าเราจะเรียกให้อันไหนขึ้นมาผ่านฟังก์ชันของ JavaScript นั่นเอง
<a href="https://gmail.com" onclick="return launchWindow();">Google</a>
function launchWindow(){
// Launch the fake authentication window
return false; // This will make sure the href attribute is ignored
}
ข่าวดีเพียงหนึ่งเดียวเกี่ยวกับเรื่องนี้ก็คือ การจะใช้เทคนิคนี้โจมตีเราได้ แฮกเกอร์จะต้องหลอกล่อให้เราเข้าไปที่เว็บไซต์ของเขาก่อน ไม่ว่าจะด้วยการหลอกล่อให้เข้ามาผ่าน SMS อีเมล หรือช่องทางใดๆ ก็ตาม และเขาก็จะต้องหลอกล่อให้เราทำการคลิกเพื่อล็อกอินด้วย ถึงจะหลอกเอาข้อมูลจากเราได้ ซึ่งในกรณีนี้ ตัวอย่างที่ง่ายสุดที่เจอบ่อยคือ ส่งอีเมลไปหาแล้วบอกว่าเพื่อนส่งไฟล์หรือรูปใหญ่ๆ เยอะๆ มาให้ ต้องไปดาวน์โหลดจาก Cloud storage ซึ่งก็จะต้องล็อกอินก่อน เพื่อจะเข้าไปดาวน์โหลดได้ เพราะเพื่อนเขากำหนดมาเลยว่าต้องเป็นผู้ใช้งานคนนี้ ยิ่งเป้าหมายเป็นผู้ใช้งานระดับองค์กรที่มีการใช้พวก Google Drive หรือ OneDrive อะไรพวกเนี้ย ยิ่งหลอกง่าย
สุดท้าย ยังไงก็ระวังให้มากๆ เป็นดีที่สุดแหละนะ