นี่คือคำสั่งตรวจสอบการแข็งตัวที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
hardening-check - ตรวจสอบไบนารีสำหรับคุณสมบัติการชุบแข็งความปลอดภัย
เรื่องย่อ
ชุบแข็ง-ตรวจสอบ [ตัวเลือก] [ELF ...]
ตรวจสอบชุดไบนารีของ ELF ที่กำหนด และตรวจสอบคุณสมบัติการรักษาความปลอดภัยหลายอย่าง
ล้มเหลวหากไม่พบทั้งหมด
DESCRIPTION
ยูทิลิตีนี้จะตรวจสอบรายการไบนารีของ ELF ที่กำหนดสำหรับคุณสมบัติการรักษาความปลอดภัยหลายประการ
ที่สามารถคอมไพล์เป็นไฟล์ปฏิบัติการได้ คุณสมบัติเหล่านี้คือ:
ตำแหน่ง อิสระ ปฏิบัติการ
สิ่งนี้บ่งชี้ว่าไฟล์ปฏิบัติการถูกสร้างขึ้นในลักษณะ (PIE) ที่ "ข้อความ"
ส่วนของโปรแกรมสามารถย้ายไปอยู่ในหน่วยความจำ เพื่อใช้ประโยชน์จากสิ่งนี้อย่างเต็มที่
คุณลักษณะเคอร์เนลที่ดำเนินการต้องรองรับการสุ่มเค้าโครงพื้นที่ข้อความที่อยู่
(เอเอสแอลอาร์).
กอง มีการป้องกัน
สิ่งนี้บ่งชี้ว่ามีหลักฐานว่าเอลฟ์รวบรวมกับ gcc(1)
ตัวเลือก -fstack- ป้องกัน (เช่น ใช้ __stack_chk_fail). โปรแกรมจะเป็น
ทนต่อการมีกองล้น
เมื่อไฟล์เรียกทำงานถูกสร้างขึ้นโดยไม่มีอาร์เรย์อักขระใด ๆ ที่ถูกจัดสรรบน
stack การตรวจสอบนี้จะนำไปสู่การเตือนที่ผิดพลาด (เนื่องจากไม่มีการใช้
__stack_chk_fail) แม้ว่าจะคอมไพล์ด้วยตัวเลือกที่ถูกต้อง
เสริมสร้าง แหล่ง ฟังก์ชั่น
สิ่งนี้บ่งชี้ว่าไฟล์ปฏิบัติการถูกคอมไพล์ด้วย -D_FORTIFY_SOURCE=2 และ -O1
หรือสูงกว่า. ซึ่งทำให้ฟังก์ชัน glibc ที่ไม่ปลอดภัยบางอย่างมีความปลอดภัยมากขึ้น
คู่หู (เช่น ปิด แทน สตริคปี) หรือแทนที่การเรียกที่เป็น
ตรวจสอบได้เมื่อรันไทม์ด้วยเวอร์ชันตรวจสอบรันไทม์ (เช่น __memcpy_chk แทน
of เมมปี้).
เมื่อโปรแกรมปฏิบัติการถูกสร้างขึ้นเพื่อให้เวอร์ชันเสริมของ glibc
ฟังก์ชันไม่มีประโยชน์ (เช่น การใช้งานได้รับการตรวจสอบแล้วว่าปลอดภัย ณ เวลาคอมไพล์ หรือ use
ไม่สามารถตรวจสอบได้ในขณะใช้งานจริง) การตรวจสอบนี้จะนำไปสู่การเตือนที่ผิดพลาด ในอัน
ความพยายามที่จะบรรเทาสิ่งนี้ การตรวจสอบจะผ่านไปหากพบฟังก์ชันเสริมใด ๆ
และจะล้มเหลวหากพบเฉพาะฟังก์ชันที่ไม่ได้รับการเสริม เงื่อนไขที่ตรวจสอบไม่ได้เช่นกัน
ผ่าน (เช่น ไม่พบฟังก์ชันที่สามารถเสริมได้ หรือไม่ได้เชื่อมโยงกับ
กลิก)
อ่านอย่างเดียว การย้ายถิ่นฐาน
สิ่งนี้บ่งชี้ว่าไฟล์ปฏิบัติการถูกสร้างด้วย -Wl,-z,เรลโร ที่จะมีเอลฟ์
เครื่องหมาย (RELRO) ที่ขอให้ตัวเชื่อมโยงรันไทม์ทำเครื่องหมายภูมิภาคใด ๆ ของการย้ายตำแหน่ง
ตารางเป็นแบบ "อ่านอย่างเดียว" หากได้รับการแก้ไขก่อนเริ่มดำเนินการ สิ่งนี้ช่วยลด
พื้นที่หน่วยความจำที่เป็นไปได้ในโปรแกรมที่ผู้โจมตีสามารถใช้ได้
ทำการใช้ประโยชน์จากหน่วยความจำที่เสียหายได้สำเร็จ
ทันทีทันใด ผูกพัน
สิ่งนี้บ่งชี้ว่าไฟล์ปฏิบัติการถูกสร้างขึ้นด้วย -Wl,-z ตอนนี้ ให้มีเครื่องหมายเอลฟ์
(BIND_NOW) ที่ขอให้ตัวเชื่อมโยงรันไทม์แก้ไขการย้ายตำแหน่งทั้งหมดก่อนเริ่มต้น
การทำงานของโปรแกรม เมื่อรวมกับ RELRO ด้านบน สิ่งนี้จะช่วยลด
ภูมิภาคของหน่วยความจำที่พร้อมใช้งานสำหรับการโจมตีหน่วยความจำที่เสียหาย
OPTIONS
--ไม่พาย, -p
ไม่จำเป็นต้องสร้างไบนารีที่ตรวจสอบเป็น PIE
--nostackprotector, -s
ไม่จำเป็นต้องสร้างไบนารีที่ตรวจสอบด้วยตัวป้องกันสแต็ก
--nofortify, -f
ไม่จำเป็นต้องสร้างไบนารีที่ตรวจสอบด้วย Fority Source
--โนเรลโร, -r
ไม่จำเป็นต้องสร้างไบนารีที่ตรวจสอบด้วย RELRO
--nobindnow, -b
ไม่จำเป็นต้องสร้างไบนารีที่ตรวจสอบด้วย BIND_NOW
--เงียบ, -q
รายงานความล้มเหลวเท่านั้น
--รายละเอียด, -v
รายงานอย่างละเอียดเกี่ยวกับความล้มเหลว
--รายงาน-ฟังก์ชั่น, -R
หลังจากรายงาน ให้แสดงฟังก์ชันภายนอกทั้งหมดที่เอลฟ์ต้องการ
--find-libc-ฟังก์ชั่น, -F
แทนที่จะใช้รายงานปกติ ให้ค้นหา libc สำหรับ ELF แรกบนคำสั่ง
บรรทัดและรายงานฟังก์ชัน "เสริม" ที่รู้จักทั้งหมดที่ส่งออกโดย libc
--สี, -c
เปิดใช้งานการแสดงสถานะเป็นสี
--หลินเทียน, -l
สลับการรายงานเป็นเอาต์พุต lintian-check-parsable
--debug รายงานการดีบักบางอย่างระหว่างการประมวลผล
--ช่วยด้วย, -h, -?
พิมพ์ข้อความช่วยเหลือสั้นๆ แล้วออก
--ชาย, -H
พิมพ์หน้าคู่มือและออก
กลับ มูลค่า
เมื่อไบนารีที่ตรวจสอบทั้งหมดตรวจพบคุณลักษณะการชุบแข็งที่ตรวจสอบได้ทั้งหมด โปรแกรมนี้
จะลงท้ายด้วยรหัสออกเป็น 0 หากการตรวจสอบใดล้มเหลว รหัสออกจะเป็น 1
การตรวจสอบแต่ละรายการสามารถปิดใช้งานได้โดยใช้ตัวเลือกบรรทัดคำสั่ง
ใช้การชุบแข็ง - ตรวจสอบออนไลน์โดยใช้บริการ onworks.net