การโจมตี Self-XSS คืออะไร
Self-XSS หรือ Cross-site Scripting ด้วยตัวเองเป็นการโจมตีแบบวิศวกรรมสังคมประเภทหนึ่งที่หลอกลวงให้คุณเรียกใช้โค้ดที่เป็นอันตรายในเว็บเบราว์เซอร์ ต่างจากการโจมตี XSS ทั่วไปซึ่งอาศัยช่องโหว่ในเว็บแอปพลิเคชันที่ให้ผู้โจมตีแทรกโค้ดที่เป็นอันตรายได้ การโจมตี Self-XSS อาศัยการดำเนินการที่อาจทำให้เกิดการเรียกใช้โค้ดของคุณเอง
โดยทั่วไปแล้ว การโจมตีด้วย Self-XSS นั้นเกี่ยวข้องกับผู้โจมตีที่หลอกลวงให้คุณคัดลอกและวางโค้ดที่เป็นอันตรายลงในคอนโซลเครื่องมือสำหรับนักพัฒนาเว็บของเบราว์เซอร์ โดยปกติแล้วผู้โจมตีจะหลอกลวงด้วยสัญญาว่าจะให้รางวัล ซึ่งอาจเป็น
- สัญญาว่าจะให้รหัสเข้าถึงฟีเจอร์ที่ซ่อนอยู่หรือรางวัลเสมือนจริง
- การแอบอ้างว่าโค้ดเป็นโปรแกรมทดสอบความปลอดภัยหรือการแก้ไขข้อบกพร่อง
- การสัญญาว่าโค้ดดังกล่าวจะช่วยให้แฮ็กเว็บไซต์เพื่อผลประโยชน์ของคุณได้
เมื่อคุณเรียกใช้โค้ดแล้ว ผู้โจมตีจะควบคุมบัญชีของคุณได้ ซึ่งอาจทำให้ผู้โจมตีดำเนินการต่อไปนี้ได้
- ขโมยข้อมูลส่วนบุคคล เช่น ชื่อ ที่อยู่ และหมายเลขบัตรเครดิต
- โพสต์ข้อความหรือความคิดเห็นที่ไม่ได้รับอนุญาตในนามของคุณ
- ควบคุมบัญชีโซเชียลมีเดีย
- แพร่กระจายมัลแวร์ไปยังผู้ใช้รายอื่น
เครื่องมือสำหรับนักพัฒนาเว็บใน Chrome พยายามลดการโจมตีด้วย XSS ด้วยตัวเองอย่างไร
การให้ผู้ใช้วางโค้ดลงในเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ แล้วเรียกใช้โค้ดนั้นย่อมมีความเสี่ยงอยู่แล้ว แต่เครื่องมือนี้ยังเป็นหนึ่งในฟีเจอร์หลักของเครื่องมือสำหรับนักพัฒนาเว็บใน Chrome ด้วย เราจึงต้องหาจุดสมดุลระหว่างการลดการโจมตี XSS ด้วยตัวเองที่อาจเกิดขึ้นกับการไม่แทรกแซงการทำงานของนักพัฒนาซอฟต์แวร์ที่ต้องการแก้ไขข้อบกพร่องเว็บไซต์เท่านั้น
โดยปกติแล้ว นักพัฒนาซอฟต์แวร์จะไม่คัดลอกโค้ดที่พบบนเว็บ วางลงในเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ และเรียกใช้โดยไม่ได้ดูก่อนว่าโค้ดนั้นทําอะไร นักพัฒนาซอฟต์แวร์ส่วนใหญ่ทราบดีถึงความเสี่ยงด้านความปลอดภัยของการใช้โค้ดที่พบในมุมที่ไม่น่าไว้วางใจบนเว็บ
Chrome DevTools ไว้วางใจนักพัฒนาซอฟต์แวร์ว่ารู้ว่ากำลังทำอะไรอยู่ เราไม่อยากทำให้นักพัฒนาแอปทำงานช้าลงหรือเสียสมาธิไม่ว่าในทางใดก็ตามเมื่อคัดลอกและวางโค้ด
เราคิดว่าผู้ที่ไม่ใช่นักพัฒนาซอฟต์แวร์มีความเสี่ยงสูงมากที่จะเป็นเหยื่อของการโจมตี XSS ด้วยตัวเอง เราเชื่อว่าการขัดจังหวะเมื่อคุณกำลังทำสิ่งที่อาจเป็นอันตรายนั้นเป็นสิ่งที่ยอมรับได้และมีประโยชน์เพื่อปกป้องคุณ เมื่อเครื่องมือสำหรับนักพัฒนาเว็บใน Chrome ตรวจพบว่าผู้ใช้ที่ไม่มีประสบการณ์พยายามวางโค้ดลงในเครื่องมือสำหรับนักพัฒนาเว็บ เครื่องมือจะหยุดและแสดงคำเตือน
เครื่องมือสำหรับนักพัฒนาเว็บจะแสดงคำเตือน XSS ด้วยตัวเองเมื่อใด
DevTools ใช้วิธีการเฮิวริสติกแบบง่ายมากในการตัดสินใจว่าจะแสดงคำเตือน XSS ด้วยตัวเองหรือไม่ โดยอิงตามประวัติคอนโซลของโปรไฟล์ผู้ใช้
หากโปรไฟล์ของคุณมีรายการในประวัติคอนโซลอย่างน้อย 5 รายการ เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์จะไม่แสดงคำเตือนหรือป๊อปอัปใดๆ ประวัติคอนโซลคือรายการคําสั่งที่คุณพิมพ์และดำเนินการในคอนโซล ต่อไปนี้คือคําสั่งที่คุณเห็นเมื่อวางเคอร์เซอร์ในคอนโซลและกดแป้นลูกศรขึ้นซ้ำๆ
คำเตือน XSS ที่เกิดขึ้นเองมีลักษณะอย่างไร
เมื่อผู้ใช้ที่ไม่มีประสบการณ์พยายามวางโค้ดลงในคอนโซล ระบบจะบล็อกการดำเนินการนี้และคอนโซลจะแสดงคำเตือนแทน
คุณสามารถลบล้างคำเตือนนี้และเปิดใช้การวางได้ แต่ต้องพิมพ์ "allow pasting" ก่อน
เมื่อผู้ใช้ที่ไม่มีประสบการณ์วางโค้ดลงในเครื่องมือแก้ไขโค้ดของ DevTools (เช่น แผงแหล่งที่มา) ประสบการณ์ของผู้ใช้จะคล้ายกันมาก คุณจะเห็นกล่องโต้ตอบแบบโมดัลแทนคำเตือน
และโปรดทราบว่าการปิดกล่องโต้ตอบนี้เพียงอย่างเดียวนั้นไม่เพียงพอที่จะเปิดใช้การวาง หากต้องการลบล้างคำเตือน คุณต้องพิมพ์ "allow pasting" ลงในช่องป้อนข้อมูล
การตั้งค่าดังกล่าวเป็นแบบครั้งเดียวใช่ไหม
ใช่ เมื่อคุณตัดสินใจอนุญาตการวางแล้ว คุณจะไม่ต้องกังวลกับคำเตือน XSS ด้วยตัวเองอีกต่อไป
เราหวังว่าวิธีนี้จะทำให้เกิดความสมดุลระหว่างประโยชน์และความรำคาญ การเพิ่มการขัดขวางนี้จะทำให้คุณอ่านคำเตือนได้มากขึ้น จึงช่วยลดโอกาสที่จะถูกโจมตีด้วย XSS ด้วยตัวเอง
เครื่องมือสำหรับนักพัฒนาเว็บของ Chrome จะเก็บ Flag ที่ระบุว่าจะแสดงคำเตือน XSS ด้วยตัวเองในโปรไฟล์ Chrome หรือไม่ ดังนั้น หากคุณสร้างโปรไฟล์ใหม่และเริ่มวางโค้ดลงในเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ทันที ระบบจะบล็อกการวางและแสดงคำเตือน XSS ด้วยตัวเองแทน
คุณปิดใช้การทดสอบอัตโนมัติได้ไหม
แล้วการทดสอบอัตโนมัติล่ะ เครื่องมือทดสอบจํานวนมากจะสร้างโปรไฟล์ชั่วคราวใหม่สําหรับการทดสอบแต่ละครั้ง ดังนั้น หากคุณใช้เครื่องมือสำหรับนักพัฒนาเว็บเพื่อแก้ไขข้อบกพร่องการทดสอบอัตโนมัติ ระบบจะบล็อกการวางลงในคอนโซลในตอนแรก
หากต้องการหลีกเลี่ยงปัญหานี้ ให้ทำอย่างใดอย่างหนึ่งต่อไปนี้
ใช้ Chrome สําหรับการทดสอบ ซึ่งเป็น Chrome เวอร์ชันต่างๆ ที่ออกแบบมาเพื่อการทดสอบและการทํางานอัตโนมัติโดยเฉพาะ คำเตือน XSS ด้วยตัวเองปิดอยู่
สำหรับเวอร์ชันการเผยแพร่อื่นๆ ของ Chrome ให้ส่ง Flag
--unsafely-disable-devtools-self-xss-warnings
บรรทัดคำสั่งไปยัง Chrome เพื่อปิดใช้กล่องโต้ตอบคำเตือน XSS ด้วยตัวเองโดยสมบูรณ์
บทสรุป
คุณคิดเห็นอย่างไรเกี่ยวกับกลยุทธ์นี้ในการลดการโจมตี XSS ด้วยตัวเอง หากมีความคิดเห็นหรือคำแนะนำ โปรดแสดงความคิดเห็นในข้อบกพร่องนี้หรือติดต่อเราโดยใช้วิธีใดวิธีหนึ่งต่อไปนี้
โดยเฉพาะอย่างยิ่งหากคุณทํางานในเว็บไซต์ที่เตือนเกี่ยวกับการโจมตี XSS ด้วยตัวเองผ่านบันทึกคอนโซล เรายินดีพูดคุยเกี่ยวกับการปรับใช้แนวทางของเราหรือวัดผลมาตรการบรรเทา XSS ด้วยตัวเอง
ดาวน์โหลดแชแนลตัวอย่าง
ลองใช้ Chrome Canary, Dev หรือ เบต้า เป็นเบราว์เซอร์สำหรับนักพัฒนาซอฟต์แวร์เริ่มต้น ช่องทางเวอร์ชันตัวอย่างเหล่านี้จะช่วยให้คุณเข้าถึงฟีเจอร์ล่าสุดของ DevTools, ทดสอบ API ของแพลตฟอร์มเว็บที่ล้ำสมัย และช่วยคุณค้นหาปัญหาในเว็บไซต์ก่อนที่ผู้ใช้จะพบ
ติดต่อทีมเครื่องมือสำหรับนักพัฒนาเว็บใน Chrome
ใช้ตัวเลือกต่อไปนี้เพื่อพูดคุยเกี่ยวกับฟีเจอร์ใหม่ การอัปเดต หรือสิ่งอื่นๆ ที่เกี่ยวข้องกับเครื่องมือสำหรับนักพัฒนาเว็บ
- ส่งความคิดเห็นและคำขอฟีเจอร์ถึงเราได้ที่ crbug.com
- รายงานปัญหาเกี่ยวกับเครื่องมือสำหรับนักพัฒนาเว็บโดยใช้ ตัวเลือกเพิ่มเติม > ความช่วยเหลือ > รายงานปัญหาเกี่ยวกับเครื่องมือสำหรับนักพัฒนาเว็บในเครื่องมือสำหรับนักพัฒนาเว็บ
- ทวีตถึง @ChromeDevTools
- แสดงความคิดเห็นในวิดีโอ YouTube เกี่ยวกับข่าวสารใน DevTools หรือวิดีโอ YouTube เกี่ยวกับเคล็ดลับใน DevTools