ซานต้าเป็นระบบการอนุญาตการเข้าถึงแบบไบนารีและไฟล์สำหรับ macOS ประกอบด้วยส่วนขยายระบบที่ตรวจสอบการดำเนินการ daemon ที่ตัดสินใจดำเนินการตามเนื้อหาของฐานข้อมูลในเครื่อง เอเจนต์ GUI ที่แจ้งเตือนผู้ใช้ในกรณีที่มีการตัดสินใจบล็อก และยูทิลิตี้บรรทัดคำสั่งสำหรับจัดการระบบและ การซิงโครไนซ์ฐานข้อมูลกับเซิร์ฟเวอร์
ชื่อซานต้าเพราะคอยติดตามไบนารีที่ซุกซนหรือน่ารัก
เอกสารซานต้าจะถูกจัดเก็บไว้ในไดเร็กทอรี Docs และเผยแพร่ที่ https://santa.dev
เอกสารประกอบด้วยตัวเลือกการใช้งาน รายละเอียดการทำงานของส่วนต่างๆ ของซานต้า และคำแนะนำในการพัฒนาซานต้าเอง
หากคุณมีคำถามหรือต้องการความช่วยเหลือในการเริ่มต้น santa-dev group คือสถานที่ที่ดีเยี่ยม
หากคุณเชื่อว่าคุณมีข้อบกพร่อง โปรดรายงานปัญหาแล้วเราจะตอบกลับโดยเร็วที่สุด
หากคุณเชื่อว่าคุณพบช่องโหว่ โปรดอ่านนโยบายความปลอดภัยสำหรับการรายงานการเปิดเผยข้อมูล
หลายโหมด: ในโหมด MONITOR เริ่มต้น ไบนารีทั้งหมดยกเว้นที่ทำเครื่องหมายว่าบล็อกจะได้รับอนุญาตให้ทำงาน ในขณะที่ถูกบันทึกและบันทึกในฐานข้อมูลเหตุการณ์ ในโหมด LOCKDOWN อนุญาตให้รันเฉพาะไบนารีที่อยู่ในรายการเท่านั้น
การบันทึกเหตุการณ์: เมื่อโหลดส่วนขยายระบบ การเปิดตัวไบนารีทั้งหมดจะถูกบันทึกไว้ เมื่ออยู่ในโหมดใดโหมดหนึ่ง ไบนารีที่ไม่รู้จักหรือถูกปฏิเสธทั้งหมดจะถูกจัดเก็บไว้ในฐานข้อมูลเพื่อเปิดใช้งานการรวมกลุ่มในภายหลัง
กฎตามใบรับรองที่มีระดับการแทนที่: แทนที่จะอาศัยแฮชของไบนารี (หรือ 'ลายนิ้วมือ') ไฟล์ปฏิบัติการสามารถได้รับอนุญาต/บล็อกโดยใบรับรองการลงนาม ดังนั้น คุณจึงสามารถอนุญาต/บล็อกไบนารีทั้งหมดโดยผู้เผยแพร่รายใดรายหนึ่งซึ่งลงนามด้วยใบรับรองดังกล่าวในการอัปเดตเวอร์ชันต่างๆ ไบนารี่จะได้รับอนุญาตโดยใบรับรองก็ต่อเมื่อลายเซ็นของมันตรวจสอบอย่างถูกต้อง แต่กฎสำหรับลายนิ้วมือของไบนารีจะแทนที่การตัดสินใจสำหรับใบรับรอง กล่าวคือ คุณสามารถอนุญาตใบรับรองในขณะที่บล็อกไบนารีที่ลงนามด้วยใบรับรองนั้น หรือในทางกลับกัน
กฎตามเส้นทาง (ผ่าน NSRegularExpression/ICU): อนุญาตให้ใช้คุณสมบัติที่คล้ายกันกับที่พบใน Managed Client (สารตั้งต้นของโปรไฟล์การกำหนดค่า ซึ่งใช้กลไกการใช้งานเดียวกัน) การจำกัดการเปิดใช้แอปพลิเคชันผ่านไบนารี mcxalr การใช้งานนี้มีประโยชน์เพิ่มเติมในการกำหนดค่าผ่าน regex และไม่ต้องใช้ LaunchServices ตามรายละเอียดในวิกิ เมื่อประเมินกฎ จะมีลำดับความสำคัญต่ำสุด
กฎใบรับรองที่ไม่ปลอดภัย: คุณไม่สามารถใส่กฎการปฏิเสธที่จะบล็อกใบรับรองที่ใช้ในการลงนาม launchd หรือที่รู้จักในชื่อ pid 1 และส่วนประกอบทั้งหมดที่ใช้ใน macOS ไบนารีในทุกการอัปเดตระบบปฏิบัติการ (และในบางกรณีเวอร์ชันใหม่ทั้งหมด) จึงได้รับอนุญาตโดยอัตโนมัติ สิ่งนี้ไม่ส่งผลกระทบต่อไบนารีจาก App Store ของ Apple ซึ่งใช้ใบรับรองต่างๆ ที่เปลี่ยนแปลงเป็นประจำสำหรับแอพทั่วไป ในทำนองเดียวกัน คุณไม่สามารถบล็อกซานต้าได้ และซานต้าก็ใช้ใบรับรองแยกต่างหากจากแอปอื่นๆ ของ Google
ส่วนประกอบ Userland ตรวจสอบซึ่งกันและกัน: ส่วนประกอบ Userland แต่ละส่วนประกอบ (daemon, GUI agent และยูทิลิตีบรรทัดคำสั่ง) สื่อสารระหว่างกันโดยใช้ XPC และตรวจสอบว่าใบรับรองการลงนามนั้นเหมือนกันก่อนที่จะยอมรับการสื่อสารใดๆ
การแคช: ไบนารีที่อนุญาตจะถูกแคช ดังนั้นการประมวลผลที่จำเป็นในการร้องขอจะทำได้ก็ต่อเมื่อไบนารี่ไม่ได้ถูกแคชไว้อยู่แล้ว
ไม่มีระบบหรือกระบวนการใดที่จะหยุดการโจมตี ทั้งหมด หรือให้ความปลอดภัย 100% ซานต้าเขียนขึ้นโดยมีจุดประสงค์เพื่อช่วยปกป้องผู้ใช้จากตนเอง ผู้คนมักจะดาวน์โหลดมัลแวร์และเชื่อถือ โดยให้ข้อมูลประจำตัวของมัลแวร์ หรืออนุญาตให้ซอฟต์แวร์ที่ไม่รู้จักกรองข้อมูลเพิ่มเติมเกี่ยวกับระบบของคุณ ในฐานะองค์ประกอบที่มีการจัดการจากส่วนกลาง Santa สามารถช่วยหยุดการแพร่กระจายของมัลแวร์ในเครื่องจักรขนาดใหญ่ได้ ซานต้าสามารถช่วยวิเคราะห์สิ่งที่ทำงานบนคอมพิวเตอร์ของคุณได้อย่างอิสระ
ซานต้าเป็นส่วนหนึ่งของกลยุทธ์การป้องกันเชิงลึก และคุณควรปกป้องโฮสต์ต่อไปด้วยวิธีอื่นใดก็ตามที่คุณเห็นว่าเหมาะสม
ซานต้าบล็อกการดำเนินการเท่านั้น (execve และตัวแปร) แต่ไม่ได้ป้องกันไลบรารีแบบไดนามิกที่โหลดด้วย dlopen ไลบรารีบนดิสก์ที่ถูกแทนที่ หรือไลบรารีที่โหลดโดยใช้ DYLD_INSERT_LIBRARIES
สคริปต์: ขณะนี้ซานต้าถูกเขียนขึ้นเพื่อเพิกเฉยต่อการดำเนินการใดๆ ที่ไม่ใช่ไบนารี่ เพราะหลังจากชั่งน้ำหนักต้นทุนการบริหารเทียบกับผลประโยชน์แล้วพบว่าไม่คุ้มค่า นอกจากนี้ แอปพลิเคชันจำนวนหนึ่งยังใช้สคริปต์ที่สร้างขึ้นชั่วคราว ซึ่งเราไม่สามารถอนุญาตได้และการไม่ทำเช่นนั้นอาจทำให้เกิดปัญหาได้ เรายินดีที่จะกลับมาดูสิ่งนี้อีกครั้ง (หรืออย่างน้อยก็ทำให้เป็นตัวเลือก) หากจะเป็นประโยชน์ต่อผู้อื่น
ไคลเอ็นต์บรรทัดคำสั่ง santactl
มีแฟล็กที่จะซิงโครไนซ์กับเซิร์ฟเวอร์การจัดการ ซึ่งจะอัปโหลดเหตุการณ์ที่เกิดขึ้นบนเครื่องและดาวน์โหลดกฎใหม่ มีเซิร์ฟเวอร์โอเพ่นซอร์สหลายตัวที่คุณสามารถซิงค์ได้:
หรืออีกวิธีหนึ่ง santactl
สามารถกำหนดค่ากฎในเครื่องได้ (โดยไม่ต้องใช้เซิร์ฟเวอร์การซิงค์)
เครื่องมืออย่างซานต้าไม่ได้เหมาะกับการจับภาพหน้าจอจริงๆ เลยลองใช้วิดีโอแทน
แพทช์สำหรับโครงการนี้ยินดีเป็นอย่างยิ่ง โปรดดูเอกสารสนับสนุน
นี่ ไม่ใช่ ผลิตภัณฑ์อย่างเป็นทางการของ Google