โฮมเพจ » ทำอย่างไร » ASLR คืออะไรและทำให้คอมพิวเตอร์ของคุณปลอดภัยอย่างไร

    ASLR คืออะไรและทำให้คอมพิวเตอร์ของคุณปลอดภัยอย่างไร

    Address Space Layout Randomization (ASLR) เป็นเทคนิคความปลอดภัยที่ใช้ในระบบปฏิบัติการซึ่งเริ่มใช้ครั้งแรกในปี 2544 รุ่นปัจจุบันของระบบปฏิบัติการหลักทั้งหมด (iOS, Android, Windows, macOS และ Linux) มีคุณสมบัติ ASLR แต่ในสัปดาห์ที่ผ่านมาพบวิธีการใหม่ในการข้าม ASLR ดังนั้นคุณควรกังวล?

    สำหรับผู้ที่ไม่มีพื้นฐานการเขียนโปรแกรมระดับต่ำ ASLR อาจสร้างความสับสน เพื่อให้เข้าใจได้คุณต้องเข้าใจถึงหน่วยความจำเสมือนก่อน.

    หน่วยความจำเสมือนคืออะไร?

    หน่วยความจำเสมือนเป็นเทคนิคการจัดการหน่วยความจำที่มีประโยชน์มากมาย แต่มันถูกสร้างขึ้นเพื่อให้การเขียนโปรแกรมง่ายขึ้น ลองนึกภาพคุณมี Google Chrome, Microsoft Word และโปรแกรมอื่น ๆ อีกมากมายที่เปิดบนคอมพิวเตอร์ที่มี RAM ขนาด 4 GB โดยรวมแล้วโปรแกรมในคอมพิวเตอร์เครื่องนี้ใช้ RAM มากกว่า 4 GB อย่างไรก็ตามไม่ใช่ว่าทุกโปรแกรมจะสามารถใช้งานได้ตลอดเวลาหรือต้องการการเข้าถึง RAM นั้นพร้อมกัน.

    ระบบปฏิบัติการจะจัดสรรหน่วยความจำให้กับโปรแกรมที่เรียกว่า หน้า. หากมี RAM ไม่เพียงพอในการจัดเก็บหน้าเว็บทั้งหมดในครั้งเดียวหน้าเว็บที่มีโอกาสน้อยที่สุดที่ต้องการจะถูกจัดเก็บไว้ในฮาร์ดไดรฟ์ที่ช้าลง เมื่อต้องการเพจที่เก็บไว้พวกเขาจะสลับช่องว่างด้วยเพจที่ไม่จำเป็นใน RAM ในปัจจุบัน กระบวนการนี้เรียกว่าการเพจและให้ชื่อของมันกับไฟล์ pagefile.sys บน Windows.

    หน่วยความจำเสมือนทำให้โปรแกรมจัดการความจำของตนเองได้ง่ายขึ้นและทำให้พวกเขาปลอดภัยยิ่งขึ้น โปรแกรมไม่จำเป็นต้องกังวลเกี่ยวกับตำแหน่งที่โปรแกรมอื่นจัดเก็บข้อมูลหรือเหลือแรมเท่าไร พวกเขาสามารถขอระบบปฏิบัติการสำหรับหน่วยความจำเพิ่มเติม (หรือคืนหน่วยความจำที่ไม่ได้ใช้) ตามความจำเป็น โปรแกรมทั้งหมดเห็นเป็นที่อยู่หน่วยความจำต่อเนื่องก้อนเดียวสำหรับการใช้งานแบบเอกสิทธิ์เฉพาะบุคคลซึ่งเรียกว่าที่อยู่เสมือน โปรแกรมไม่ได้รับอนุญาตให้ดูที่หน่วยความจำของโปรแกรมอื่น.

    เมื่อโปรแกรมต้องการเข้าถึงหน่วยความจำโปรแกรมจะให้ที่อยู่เสมือนของระบบปฏิบัติการ ระบบปฏิบัติการติดต่อหน่วยจัดการหน่วยความจำของ CPU (MMU) MMU แปลระหว่างที่อยู่เสมือนและที่อยู่จริงโดยส่งคืนข้อมูลนั้นไปยังระบบปฏิบัติการ โปรแกรมไม่โต้ตอบกับ RAM โดยตรงอย่างไม่มีจุด.

    ASLR คืออะไร?

    การสุ่มตัวอย่างเค้าโครงพื้นที่ที่อยู่ (ASLR) นั้นใช้เพื่อป้องกันการโจมตีด้วยบัฟเฟอร์ล้น ในบัฟเฟอร์ที่มากเกินไปผู้โจมตีจะฟีดข้อมูลขยะมากที่สุดเท่าที่สามารถจัดการได้ตามด้วยเพย์โหลดที่เป็นอันตราย เพย์โหลดจะเขียนทับข้อมูลที่โปรแกรมตั้งใจจะเข้าถึง คำแนะนำในการข้ามไปยังอีกจุดหนึ่งในรหัสคือส่วนของข้อมูลทั่วไป ตัวอย่างเช่นวิธี JailbreakMe ที่โด่งดังของการแหกคุก iOS 4 ใช้การโจมตีด้วยบัฟเฟอร์ล้นทำให้แอปเปิ้ลเพิ่ม ASLR ใน iOS 4.3.

    Buffer overflows ต้องการให้ผู้โจมตีทราบว่าแต่ละส่วนของโปรแกรมอยู่ในหน่วยความจำ การหาสิ่งนี้มักเป็นกระบวนการที่ยากในการลองผิดลองถูก หลังจากพิจารณาแล้วพวกเขาจะต้องสร้างเพย์โหลดและหาสถานที่ที่เหมาะสมในการฉีด หากผู้โจมตีไม่ทราบว่าตั้งรหัสเป้าหมายไว้ที่ไหนมันอาจเป็นเรื่องยากหรือเป็นไปไม่ได้ที่จะใช้ประโยชน์จากมัน.

    ASLR ทำงานร่วมกับการจัดการหน่วยความจำเสมือนเพื่อสุ่มตำแหน่งของส่วนต่าง ๆ ของโปรแกรมในหน่วยความจำ ทุกครั้งที่รันโปรแกรมคอมโพเนนต์ (รวมถึงสแต็กฮีปและไลบรารี) จะถูกย้ายไปยังที่อยู่อื่นในหน่วยความจำเสมือน ผู้โจมตีไม่สามารถรู้ได้ว่าเป้าหมายของพวกเขานั้นอยู่ที่ไหนผ่านการลองผิดลองถูกเพราะที่อยู่จะแตกต่างกันทุกครั้ง โดยทั่วไปแล้วแอปพลิเคชั่นจะต้องรวบรวมด้วยการรองรับ ASLR แต่สิ่งนี้กำลังกลายเป็นค่าเริ่มต้นและจำเป็นต้องใช้กับ Android 5.0 และใหม่กว่า.

    ASLR ยังปกป้องคุณอยู่หรือไม่?

    เมื่อวันอังคารที่ผ่านมานักวิจัยจาก SUNY Binghamton และ University of California นำเสนอบทความที่ชื่อว่า Jump Over ASLR: โจมตีผู้ทำนายสาขาเพื่อเลี่ยงผ่าน ASLR รายละเอียดกระดาษวิธีการโจมตี Branch Target Buffer (BTB) BTB เป็นส่วนหนึ่งของโปรเซสเซอร์ที่เพิ่มความเร็วหากคำสั่งโดยการคาดการณ์ผลลัพธ์ ใช้วิธีการของผู้เขียนเป็นไปได้ที่จะกำหนดสถานที่ตั้งของคำแนะนำสาขาที่รู้จักในโปรแกรมที่กำลังทำงานอยู่ การโจมตีดังกล่าวดำเนินการบนเครื่อง Linux ที่มีโปรเซสเซอร์ Intel Haswell (เปิดตัวครั้งแรกในปี 2013) แต่อาจนำไปใช้กับระบบปฏิบัติการและโปรเซสเซอร์ที่ทันสมัย.

    ที่กล่าวว่าคุณไม่ควรสิ้นหวัง บทความนี้นำเสนอวิธีการบางอย่างที่นักพัฒนาฮาร์ดแวร์และระบบปฏิบัติการสามารถลดภัยคุกคามนี้ได้ ใหม่กว่าเทคนิค ASLR แบบละเอียดจะต้องใช้ความพยายามมากขึ้นจากผู้โจมตีและการเพิ่มปริมาณของเอนโทรปี (การสุ่ม) สามารถทำให้การโจมตีแบบ Jump Over เป็นไปไม่ได้ เป็นไปได้ว่าระบบปฏิบัติการและโปรเซสเซอร์ที่ใหม่กว่าจะได้รับผลกระทบจากการโจมตีนี้.

    ดังนั้นสิ่งที่เหลือไว้ คุณ ทำ? บายพาส Jump Over เป็นของใหม่และยังไม่เคยถูกพบในป่า เมื่อผู้โจมตีใช้ประโยชน์จากข้อบกพร่องจะเพิ่มความเสียหายที่อาจเกิดขึ้นที่ผู้โจมตีสามารถทำให้เกิดในอุปกรณ์ของคุณ การเข้าถึงระดับนี้ไม่เคยเกิดขึ้นมาก่อน Microsoft และ Apple ใช้ ASLR ในระบบปฏิบัติการที่เปิดตัวในปี 2550 และหลังจากนั้นเท่านั้น แม้ว่าการโจมตีรูปแบบนี้จะเป็นเรื่องธรรมดาคุณจะไม่เลวร้ายไปกว่าเมื่อก่อนใน Windows XP.

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

    เครดิตรูปภาพ: Steve / Flickr