คู่มือนี้เป็นชุดเทคนิคในการปรับปรุงความปลอดภัยและความเป็นส่วนตัวของคอมพิวเตอร์ Mac ของ Apple ที่ใช้ macOS เวอร์ชันที่รองรับในปัจจุบัน การใช้ Mac กับ Intel CPU ทำให้คุณเปิดรับช่องโหว่ด้านความปลอดภัยในระดับฮาร์ดแวร์ที่ Apple ไม่สามารถแก้ไขได้ Apple Silicon Mac เป็นคำแนะนำขั้นต่ำ แต่โดยทั่วไปแล้ว ชิปรุ่นใหม่จะมีความปลอดภัยมากกว่าเสมอ
คู่มือนี้มุ่งเป้าไปที่ผู้ใช้ระดับสูงที่ต้องการนำการรักษาความปลอดภัยมาตรฐานองค์กรมาใช้ แต่ยังเหมาะสำหรับผู้ใช้มือใหม่ที่สนใจปรับปรุงความเป็นส่วนตัวและความปลอดภัยบน Mac อีกด้วย
หากคุณกำลังรักษาความปลอดภัยคอมพิวเตอร์ให้กับองค์กร ให้ใช้แนวทาง NIST อย่างเป็นทางการสำหรับ macOS
ระบบจะมีความปลอดภัยเท่าที่ผู้ดูแลระบบสามารถทำได้เท่านั้น ไม่มีเทคโนโลยี ซอฟต์แวร์ หรือเทคนิคใดที่จะรับประกันความปลอดภัยของคอมพิวเตอร์ที่สมบูรณ์แบบได้ ระบบปฏิบัติการและคอมพิวเตอร์ที่ทันสมัยมีความซับซ้อนมากและต้องมีการเปลี่ยนแปลงเพิ่มเติมมากมายเพื่อปรับปรุงท่าทีด้านความปลอดภัยและความเป็นส่วนตัวอย่างมีนัยสำคัญ
คู่มือนี้จัดทำขึ้นตาม "สภาพที่เป็นอยู่" โดยไม่มีการรับประกันใดๆ มีเพียง คุณ เท่านั้นที่รับผิดชอบหากคุณทำสิ่งใดเสียหายหรือประสบปัญหาใดๆ โดยทำตามคำแนะนำนี้
หากต้องการแนะนำการปรับปรุง ให้ส่งคำขอดึงข้อมูลหรือเปิดประเด็น
แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัยทั่วไปมีผล:
สร้างแบบจำลองภัยคุกคาม
ปรับปรุงระบบและซอฟต์แวร์ให้ทันสมัยอยู่เสมอ
softwareupdate
ได้ โดยไม่จำเป็นต้องลงทะเบียนบัญชี Appleเข้ารหัสข้อมูลที่ละเอียดอ่อน
รับประกันความพร้อมใช้งานของข้อมูล
คลิกอย่างระมัดระวัง
ขั้นตอนแรกและสำคัญที่สุดสำหรับการรักษาความปลอดภัยและความเป็นส่วนตัวคือการสร้างแบบจำลองภัยคุกคาม คุณต้องเข้าใจฝ่ายตรงข้ามของคุณเพื่อป้องกันพวกเขา แต่ละคนจะมีความต้องการของตัวเอง ดังนั้นรูปแบบภัยคุกคามของทุกคนจะแตกต่างกัน โมเดลภัยคุกคามมีแนวโน้มที่จะพัฒนาไปตามกาลเวลาเมื่อสถานการณ์ของเราเปลี่ยนแปลง ดังนั้นอย่าลืมประเมินโมเดลภัยคุกคามของคุณใหม่เป็นระยะๆ
นี่อาจเป็นหลายสิ่งหลายอย่าง: โทรศัพท์ แล็ปท็อปของคุณ รหัสผ่านที่จัดเก็บไว้ในอุปกรณ์ของคุณ ประวัติการท่องอินเทอร์เน็ต ฯลฯ สร้างรายการโดยเริ่มจากสินทรัพย์ที่สำคัญที่สุดที่ต้องปกป้อง คุณสามารถจัดหมวดหมู่ตามความสำคัญของสิ่งเหล่านั้น ได้แก่ สาธารณะ ละเอียดอ่อน หรือเป็นความลับ
กำหนดว่าคุณกำลังปกป้องใคร เริ่มต้นด้วยการกำหนดแรงจูงใจที่พวกเขาอาจต้องโจมตีทรัพย์สินของคุณ ผลประโยชน์ทางการเงินเป็นแรงจูงใจสำคัญสำหรับผู้โจมตีจำนวนมาก เป็นต้น
เพื่อที่จะตอบโต้ศัตรูของคุณ คุณจะต้องเข้าใจว่าพวกเขามีความสามารถอะไรและสิ่งที่พวกเขาไม่สามารถทำได้ จัดอันดับศัตรูจากที่ไม่ซับซ้อนเลยไปจนถึงขั้นสูงมาก ตัวอย่างเช่น ขโมยทั่วไปไม่ซับซ้อนมากนัก พวกเขาอาจถูกหยุดโดยสิ่งพื้นฐาน เช่น เพียงแค่มีรหัสผ่านและการเข้ารหัสไดรฟ์บนอุปกรณ์ของคุณ ศัตรูที่ก้าวหน้ามากเช่นนักแสดงของรัฐอาจจำเป็นต้องปิดอุปกรณ์ของคุณโดยสมบูรณ์เมื่อไม่ได้ใช้งานเพื่อล้างคีย์จาก RAM และรหัสผ่าน diceware ที่ยาว
ตอนนี้เป็นเวลาที่คุณตัดสินใจเลือกวิธีที่ดีที่สุดในการรับมือกับภัยคุกคามแต่ละอย่าง คุณอาจหลีกเลี่ยงการจดรหัสผ่านลงบนกระดาษเพื่อให้เพื่อนร่วมห้องของคุณหาไม่พบ หรือคุณอาจเข้ารหัสไดรฟ์บนคอมพิวเตอร์ของคุณเพื่อให้ขโมยไม่สามารถรับข้อมูลจากรหัสผ่านได้ สิ่งสำคัญคือต้องสร้างสมดุลระหว่างความปลอดภัยและการใช้งาน การบรรเทาทุกประการควรตอบโต้ความสามารถบางอย่างของศัตรูของคุณ ไม่เช่นนั้นคุณอาจทำให้ชีวิตของคุณไม่สะดวกโดยไม่ได้รับผลประโยชน์เพียงเล็กน้อยหรือไม่มีเลย หากคุณนึกถึงความสามารถอื่นๆ ที่ฝ่ายตรงข้ามอาจมีไม่ได้อีกต่อไป และคุณได้ดำเนินการบรรเทาผลกระทบสำหรับพวกเขาทั้งหมดแล้ว งานของคุณก็เสร็จสิ้น
นี่คือตัวอย่างประเภทตารางที่คุณควรทำสำหรับเนื้อหาแต่ละรายการที่คุณต้องการปกป้อง:
ศัตรู | แรงจูงใจ | ความสามารถ | การบรรเทาผลกระทบ |
---|---|---|---|
เพื่อนร่วมห้อง | ดูแชทส่วนตัวหรือประวัติการเข้าชม | บริเวณใกล้เคียง; สามารถดูหน้าจอหรือประเภทนาฬิกาเป็นรหัสผ่านได้ | ใช้ไบโอเมตริกซ์ ใช้หน้าจอความเป็นส่วนตัว ล็อคโทรศัพท์ไว้เมื่อไม่ได้ใช้งาน |
ขโมย | ปลดล็อคโทรศัพท์และขโมยข้อมูลส่วนตัว ระบายบัญชีธนาคาร ขายโทรศัพท์เพื่อเงิน | ท่องไหล่เพื่อดูรหัสผ่าน ขโมยอุปกรณ์เมื่อไม่ได้ดูในขณะที่เข้าสู่ระบบ | วางโทรศัพท์ไว้ในสายตาหรืออยู่กับตัวตลอดเวลา ล็อคไว้เมื่อไม่ได้ใช้งาน ใช้ข้อมูลไบโอเมตริกเพื่อหลีกเลี่ยงการพิมพ์รหัสผ่านในที่สาธารณะ ใช้ Find My หรือบริการที่คล้ายกันเพื่อติดตาม/ปิดใช้งานอุปกรณ์ที่ถูกขโมยจากระยะไกล |
อาชญากร | การเงิน | วิศวกรรมสังคม มัลแวร์ที่พร้อมใช้งาน การใช้รหัสผ่านซ้ำ การใช้ประโยชน์จากช่องโหว่ | ใช้แซนด์บ็อกซ์ เปิดใช้งานคุณสมบัติความปลอดภัยในระบบปฏิบัติการ อัปเดตระบบปฏิบัติการและซอฟต์แวร์ทั้งหมดอยู่เสมอ และเปิดการอัปเดตอัตโนมัติ |
บริษัท | การตลาดข้อมูลผู้ใช้ | การรวบรวมข้อมูลทางไกลและพฤติกรรม | บล็อกการเชื่อมต่อเครือข่าย รีเซ็ตตัวระบุเฉพาะ หลีกเลี่ยงการเพิ่มข้อมูลการชำระเงิน |
รัฐชาติ/APT | การเฝ้าระวังแบบกำหนดเป้าหมาย | การเฝ้าระวังโครงสร้างพื้นฐานอินเทอร์เน็ตแบบพาสซีฟ คอมพิวเตอร์ขั้นสูงสำหรับการถอดรหัส/การวิเคราะห์แพ็กเก็ต | ใช้โอเพ่นซอร์ส e2ee, ใช้รหัสผ่าน diceware ที่รัดกุมสำหรับอุปกรณ์, ใช้ฮาร์ดแวร์ที่มีองค์ประกอบที่ปลอดภัยเพื่อการเข้ารหัสที่ปลอดภัย, ปิดอุปกรณ์เมื่อไม่ได้ใช้งาน, ซอฟต์แวร์ tripwire/honeypot/canary tokens |
อ่านเพิ่มเติมเกี่ยวกับการสร้างแบบจำลองภัยคุกคามที่นี่
macOS ทำงานบนฮาร์ดแวร์ Apple อย่างปลอดภัยที่สุดด้วย Apple Silicon Mac รุ่นใหม่ยิ่งดี หลีกเลี่ยงแฮ็กอินทอชและ Mac ที่ไม่รองรับ macOS เวอร์ชันล่าสุด เนื่องจาก Apple ไม่ได้แก้ไขช่องโหว่ทั้งหมดในเวอร์ชันที่ไม่ใช่เวอร์ชันล่าสุด
เมื่อคุณซื้อ Mac คุณอาจต้องการหลีกเลี่ยงไม่ให้เครื่องเชื่อมโยงกลับมาหาคุณ คุณควรชำระเงินด้วยเงินสดด้วยตนเอง แทนที่จะสั่งซื้อทางออนไลน์หรือซื้อด้วยบัตรเครดิต/เดบิต ทั้งนี้ขึ้นอยู่กับรูปแบบภัยคุกคามของคุณ ด้วยวิธีดังกล่าว จะไม่สามารถเชื่อมโยงข้อมูลระบุตัวตนกลับไปยังการซื้อของคุณได้
หากคุณต้องการใช้คีย์บอร์ด เมาส์ หูฟัง หรืออุปกรณ์เสริมอื่นๆ แบบไร้สาย ตัวเลือกที่ปลอดภัยที่สุดคือตัวเลือกของ Apple เนื่องจากระบบของคุณจะได้รับการอัพเดตโดยอัตโนมัติ นอกจากนี้ยังรองรับคุณสมบัติบลูทูธล่าสุด เช่น BLE Privacy ซึ่งจะสุ่มที่อยู่ฮาร์ดแวร์บลูทูธของคุณเพื่อป้องกันการติดตาม สำหรับอุปกรณ์เสริมของบุคคลที่สาม นี้ไม่รับประกัน
มีหลายวิธีในการติดตั้ง macOS เลือกวิธีการที่คุณต้องการจากตัวเลือกที่มีอยู่
คุณควรติดตั้ง macOS เวอร์ชันล่าสุดที่เข้ากันได้กับ Mac ของคุณ เวอร์ชันล่าสุดมีแพตช์ด้านความปลอดภัยและการปรับปรุงอื่นๆ ที่เวอร์ชันเก่าไม่มี
ในฐานะที่เป็นส่วนหนึ่งของระบบป้องกันการโจรกรรมของ Apple Apple Silicon Mac จะต้องเปิดใช้งานกับเซิร์ฟเวอร์ของ Apple ทุกครั้งที่คุณติดตั้ง macOS ใหม่เพื่อตรวจสอบกับฐานข้อมูลของ Mac ที่ถูกขโมยหรือล็อคการเปิดใช้งาน
คุณสามารถอ่านเกี่ยวกับวิธีการทำงานของกระบวนการนี้ได้ที่นี่
ไม่จำเป็นต้องสร้างบัญชี Apple เพื่อใช้ macOS การสร้างบัญชี Apple ต้องใช้หมายเลขโทรศัพท์ และโดยค่าเริ่มต้นจะซิงค์ข้อมูลจำนวนมากกับ iCloud ซึ่งเป็นบริการจัดเก็บข้อมูลบนคลาวด์ของ Apple คุณสามารถปิดใช้งานการซิงค์ในภายหลังได้หากต้องการหรือเปิดใช้งานการเข้ารหัสจากต้นทางถึงปลายทางสำหรับข้อมูล iCloud ของคุณ
คุณสามารถควบคุมข้อมูลที่เชื่อมโยงกับบัญชี Apple ของคุณหรือลบออกทั้งหมดได้
จำเป็นต้องมีบัญชี Apple เพื่อเข้าถึง App Store และใช้บริการส่วนใหญ่ของ Apple เช่น iCloud, Apple Music เป็นต้น
Mac App Store คือพื้นที่เก็บข้อมูลซอฟต์แวร์ที่ได้รับการดูแลจัดการซึ่งจำเป็นต้องใช้ App Sandbox และ Hardened Runtime รวมถึงเสนอการอัปเดตอัตโนมัติที่ผสานรวมกับระบบของคุณ
App Store เสนอการรับประกันความปลอดภัยสูงสุดสำหรับซอฟต์แวร์บน macOS แต่คุณต้องเข้าสู่ระบบด้วยบัญชี Apple และ Apple จะสามารถเชื่อมโยงบัญชี Apple ของคุณกับแอพที่คุณดาวน์โหลดได้
คุณสามารถรัน macOS ในเครื่องเสมือนได้อย่างง่ายดายโดยใช้ UTM ใช้งานได้ฟรีจากเว็บไซต์ แต่ถ้าคุณซื้อจาก App Store คุณจะได้รับการอัปเดตอัตโนมัติ
ปฏิบัติตามเอกสารประกอบเพื่อติดตั้ง macOS VM ด้วยการคลิกเพียงไม่กี่ครั้ง
อีกทางเลือกหนึ่งคือ VMware Fusion คุณสามารถอ่านเอกสารประกอบเพื่อดูวิธีติดตั้ง macOS VM
เมื่อ macOS เริ่มทำงานครั้งแรก คุณจะได้รับการต้อนรับจาก ผู้ช่วยตั้งค่า
เมื่อสร้างบัญชีแรก ให้ใช้รหัสผ่านที่รัดกุมโดยไม่มีคำใบ้
หากคุณป้อนชื่อจริงของคุณในขั้นตอนการตั้งค่าบัญชี โปรดทราบว่าชื่อคอมพิวเตอร์และชื่อโฮสต์ในเครื่องของคุณจะประกอบด้วยชื่อนั้น (เช่น MacBook ของ John Appleseed ) และจะปรากฏบนเครือข่ายท้องถิ่นและในไฟล์การตั้งค่าต่างๆ
ทั้งสองควรได้รับการตรวจสอบและอัปเดตตามความจำเป็นใน การตั้งค่าระบบ > เกี่ยวกับ หรือใช้คำสั่งต่อไปนี้หลังการติดตั้ง:
sudo scutil --set ComputerName MacBook
sudo scutil --set LocalHostName MacBook
บัญชีผู้ใช้แรกจะเป็นบัญชีผู้ดูแลระบบเสมอ บัญชีผู้ดูแลระบบเป็นสมาชิกของกลุ่มผู้ดูแลระบบและมีสิทธิ์เข้าถึง sudo
ซึ่งช่วยให้พวกเขาสามารถแย่งชิงบัญชีอื่นได้ โดยเฉพาะรูท และให้การควบคุมระบบอย่างมีประสิทธิภาพ โปรแกรมใดๆ ที่ผู้ดูแลระบบดำเนินการอาจได้รับการเข้าถึงแบบเดียวกัน ทำให้เกิดความเสี่ยงด้านความปลอดภัย
โปรแกรมอรรถประโยชน์เช่น sudo
มีจุดอ่อนที่สามารถใช้ประโยชน์ได้โดยการรันโปรแกรมพร้อมกัน
Apple ถือเป็นแนวปฏิบัติที่ดีที่สุดที่จะใช้บัญชีมาตรฐานแยกต่างหากสำหรับงานในแต่ละวัน และใช้บัญชีผู้ดูแลระบบสำหรับการติดตั้งและการกำหนดค่าระบบ
ไม่จำเป็นต้องเข้าสู่ระบบบัญชีผู้ดูแลระบบผ่านหน้าจอเข้าสู่ระบบ macOS อย่างเคร่งครัด เมื่อคำสั่ง Terminal ต้องการสิทธิ์ของผู้ดูแลระบบ ระบบจะแจ้งให้ตรวจสอบสิทธิ์ จากนั้น Terminal ก็จะใช้สิทธิ์เหล่านั้นต่อไป ด้วยเหตุนี้ Apple จึงให้คำแนะนำในการซ่อนบัญชีผู้ดูแลระบบและโฮมไดเร็กตอรี่ นี่อาจเป็นวิธีแก้ปัญหาที่ดีเพื่อหลีกเลี่ยงไม่ให้มีบัญชี 'โกสต์' ที่มองเห็นได้
/Applications
(ไดเร็กทอรีในเครื่อง) Finder และ Installer จะแจ้งให้ผู้ใช้มาตรฐานทราบพร้อมกล่องโต้ตอบการตรวจสอบสิทธิ์ สามารถติดตั้งแอปพลิเคชันจำนวนมากได้ใน ~/Applications
แทน (สามารถสร้างไดเร็กทอรีได้) ตามหลักการทั่วไป: แอปพลิเคชันที่ไม่ต้องการการเข้าถึงของผู้ดูแลระบบ หรือไม่บ่นว่าไม่ได้ติดตั้งใน /Applications
ควรติดตั้งในไดเร็กทอรีผู้ใช้ ส่วนที่เหลือในไดเร็กทอรีในเครื่อง แอปพลิเคชัน Mac App Store ยังคงติดตั้งอยู่ใน /Applications
และไม่จำเป็นต้องมีการตรวจสอบสิทธิ์เพิ่มเติมsudo
ไม่สามารถใช้งานได้ในเชลล์ของผู้ใช้มาตรฐาน ซึ่งต้องใช้ su
หรือ login
เพื่อเข้าสู่เชลล์ของบัญชีผู้ดูแลระบบ ซึ่งอาจทำให้การซ้อมรบบางอย่างยุ่งยากขึ้น และต้องใช้ประสบการณ์พื้นฐานกับอินเทอร์เฟซบรรทัดคำสั่งopen
คุณสามารถสร้างและจัดการบัญชีได้ในการตั้งค่าระบบ ในระบบที่ชำระเงินแล้ว โดยทั่วไปการสร้างบัญชีผู้ดูแลระบบบัญชีที่สองแล้วลดระดับบัญชีแรกจะง่ายกว่า วิธีนี้จะช่วยหลีกเลี่ยงการโยกย้ายข้อมูล ระบบที่ติดตั้งใหม่สามารถเพิ่มบัญชีมาตรฐานได้
การลดระดับบัญชีสามารถทำได้จากบัญชีผู้ดูแลระบบใหม่ในการตั้งค่าระบบ – บัญชีอื่นจะต้องออกจากระบบ – หรือโดยการดำเนินการคำสั่งเหล่านี้ (อาจไม่จำเป็นต้องดำเนินการทั้งสองอย่าง ดูปัญหา 179):
sudo dscl . -delete /Groups/admin GroupMembership <username>
sudo dscl . -delete /Groups/admin GroupMembers <GeneratedUID>
หากต้องการค้นหา GeneratedUID ของบัญชี:
dscl . -read /Users/<username> GeneratedUID
ดูโพสต์นี้สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่ macOS กำหนดการเป็นสมาชิกกลุ่ม
คุณควรตรวจสอบว่าการตั้งค่าความปลอดภัยของเฟิร์มแวร์ตั้งค่าเป็นความปลอดภัยเต็มรูปแบบเพื่อป้องกันการดัดแปลงระบบปฏิบัติการของคุณ นี่คือการตั้งค่าเริ่มต้น
Mac ทุกรุ่นที่ใช้ Apple Silicon จะได้รับการเข้ารหัสตามค่าเริ่มต้น การเปิดใช้งาน FileVault ทำให้คุณต้องป้อนรหัสผ่านเพื่อเข้าถึงข้อมูลในไดรฟ์ของคุณ EFF มีคำแนะนำในการสร้างรหัสผ่านที่แข็งแกร่งแต่น่าจดจำ
รหัสผ่าน FileVault ของคุณยังทำหน้าที่เป็นรหัสผ่านเฟิร์มแวร์ที่จะป้องกันไม่ให้บุคคลที่ไม่รู้จักบูตจากสิ่งอื่นนอกเหนือจากดิสก์เริ่มต้นระบบที่กำหนด เข้าถึงการกู้คืน และฟื้นฟูด้วยโหมด DFU
FileVault จะขอให้คุณตั้งค่าคีย์การกู้คืนในกรณีที่คุณลืมรหัสผ่าน เก็บกุญแจนี้ไว้ในที่ที่ปลอดภัย คุณจะมีตัวเลือกให้ใช้บัญชี iCloud ของคุณเพื่อปลดล็อคดิสก์ของคุณ อย่างไรก็ตาม ใครก็ตามที่สามารถเข้าถึงบัญชี iCloud ของคุณจะสามารถปลดล็อคบัญชีได้เช่นกัน
macOS นำเสนอโหมดล็อคดาวน์ ซึ่งเป็นคุณสมบัติด้านความปลอดภัยที่จะปิดการใช้งานคุณสมบัติหลายอย่างทั่วทั้งระบบปฏิบัติการ ช่วยลดพื้นที่การโจมตีของผู้โจมตีได้อย่างมากในขณะที่ยังคงให้ระบบปฏิบัติการใช้งานได้ คุณสามารถอ่านเกี่ยวกับสิ่งที่ถูกปิดใช้งานและตัดสินใจด้วยตัวเองว่าคุณยอมรับได้หรือไม่
เมื่อโหมดล็อคเปิดอยู่ คุณสามารถปิดใช้งานได้ในแต่ละไซต์ใน Safari บนไซต์ที่เชื่อถือได้
มีไฟร์วอลล์หลายประเภทสำหรับ macOS
ไฟร์วอลล์พื้นฐานในตัวซึ่งจะบล็อกการเชื่อมต่อ ขาเข้า เท่านั้น ไฟร์วอลล์นี้ไม่สามารถตรวจสอบหรือบล็อกการเชื่อมต่อ ขาออก
สามารถควบคุมได้โดยแท็บ ไฟร์วอลล์ ของ เครือข่าย ใน การตั้งค่าระบบ หรือใช้คำสั่งต่อไปนี้
เปิดใช้งานไฟร์วอลล์ด้วยโหมดการบันทึกและซ่อนตัว:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setloggingmode on
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setstealthmode on
แฮกเกอร์คอมพิวเตอร์จะสแกนเครือข่ายเพื่อให้สามารถระบุคอมพิวเตอร์ที่จะโจมตีได้ คุณสามารถป้องกันไม่ให้คอมพิวเตอร์ของคุณตอบสนองต่อการสแกนบางส่วนได้โดยใช้ โหมดซ่อนตัว เมื่อเปิดใช้งานโหมดซ่อนตัว คอมพิวเตอร์ของคุณจะไม่ตอบสนองต่อคำขอ Ping ของ ICMP และไม่ตอบสนองต่อความพยายามในการเชื่อมต่อจากพอร์ต TCP หรือ UDP ที่ปิด ทำให้ผู้โจมตีค้นหาคอมพิวเตอร์ของคุณได้ยากขึ้น
เพื่อป้องกันไม่ให้ ซอฟต์แวร์ในตัว รวมทั้ง ซอฟต์แวร์ที่ลงนามด้วยรหัส ไม่ให้อยู่ในไวท์ลิสต์โดยอัตโนมัติ :
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setallowsigned off
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setallowsignedapp off
แอปพลิเคชันที่ลงนามโดยผู้ออกใบรับรองที่ถูกต้องจะถูกเพิ่มลงในรายการแอปที่อนุญาตโดยอัตโนมัติ แทนที่จะแจ้งให้ผู้ใช้อนุญาต แอพที่รวมอยู่ใน macOS ได้รับการลงนามโดย Apple และได้รับอนุญาตให้รับการเชื่อมต่อขาเข้าเมื่อเปิดใช้งานการตั้งค่านี้ ตัวอย่างเช่น เนื่องจาก iTunes ได้รับการลงนามโดย Apple แล้ว จึงได้รับอนุญาตให้รับการเชื่อมต่อขาเข้าผ่านไฟร์วอลล์โดยอัตโนมัติ
หากคุณเรียกใช้แอพที่ไม่ได้ลงชื่อซึ่งไม่อยู่ในรายการไฟร์วอลล์ กล่องโต้ตอบจะปรากฏขึ้นพร้อมตัวเลือกให้อนุญาตหรือปฏิเสธการเชื่อมต่อสำหรับแอพ หากคุณเลือก "อนุญาต" macOS จะลงนามแอปพลิเคชันและเพิ่มลงในรายการไฟร์วอลล์โดยอัตโนมัติ หากคุณเลือก "ปฏิเสธ" macOS จะเพิ่มเข้าในรายการแต่จะปฏิเสธการเชื่อมต่อขาเข้าสำหรับแอพนี้
หลังจากโต้ตอบกับ socketfilterfw
ให้เริ่มกระบวนการใหม่โดยส่งสัญญาณวางสาย:
sudo pkill -HUP socketfilterfw
โปรแกรมต่างๆ เช่น Little Snitch, Radio Silence และ LuLu มอบความสมดุลที่ดีระหว่างการใช้งานและความปลอดภัย
โปรแกรมเหล่านี้สามารถตรวจสอบและบล็อกการเชื่อมต่อเครือข่าย ขาเข้า และ ขาออก อย่างไรก็ตาม อาจจำเป็นต้องใช้ส่วนขยายระบบโอเพนซอร์ซ
หากตัวเลือกในการอนุญาต/บล็อกการเชื่อมต่อเครือข่ายมีจำนวนมากเกินไป ให้ใช้ โหมดเงียบ โดยอนุญาตให้มีการเชื่อมต่อ จากนั้นตรวจสอบการกำหนดค่าเป็นระยะเพื่อทำความเข้าใจแอปพลิเคชันและสิ่งที่พวกเขากำลังทำอยู่
เป็นที่น่าสังเกตว่าไฟร์วอลล์เหล่านี้สามารถข้ามได้โดยโปรแกรมที่ทำงานเป็น รูท หรือผ่านช่องโหว่ของระบบปฏิบัติการ (pdf) แต่ก็ยังคุ้มค่าที่จะมี - แค่อย่าคาดหวังการป้องกันที่สมบูรณ์ อย่างไรก็ตาม มัลแวร์บางตัวจะลบตัวเองจริงๆ และจะไม่ทำงานหากมีการติดตั้ง Little Snitch หรือซอฟต์แวร์ความปลอดภัยอื่นๆ ไว้
ไฟร์วอลล์ที่ปรับแต่งได้สูง ทรงพลัง แต่ซับซ้อนที่สุดก็มีอยู่ในเคอร์เนล สามารถควบคุมได้ด้วย pfctl
และไฟล์คอนฟิกูเรชันต่างๆ
pf สามารถควบคุมได้ด้วยแอปพลิเคชัน GUI เช่น Murus
มีหนังสือและบทความเกี่ยวกับ pf firewall มากมาย นี่เป็นเพียงตัวอย่างหนึ่งของการบล็อกการรับส่งข้อมูลตามที่อยู่ IP
เพิ่มสิ่งต่อไปนี้ลงในไฟล์ชื่อ pf.rules
:
wifi = "en0"
ether = "en7"
set block-policy drop
set fingerprints "/etc/pf.os"
set ruleset-optimization basic
set skip on lo0
scrub in all no-df
table <blocklist> persist
block in log
block in log quick from no-route to any
block log on $wifi from { <blocklist> } to any
block log on $wifi from any to { <blocklist> }
antispoof quick for { $wifi $ether }
pass out proto tcp from { $wifi $ether } to any keep state
pass out proto udp from { $wifi $ether } to any keep state
pass out proto icmp from $wifi to any keep state
จากนั้นใช้คำสั่งต่อไปนี้เพื่อจัดการไฟร์วอลล์:
sudo pfctl -e -f pf.rules
เพื่อเปิดใช้งานไฟร์วอลล์และโหลดการกำหนดค่าsudo pfctl -d
เพื่อปิดการใช้งานไฟร์วอลล์sudo pfctl -t blocklist -T add 1.2.3.4
เพื่อเพิ่มที่อยู่ IP ในรายการบล็อกsudo pfctl -t blocklist -T show
เพื่อดูรายการบล็อกsudo ifconfig pflog0 create
เพื่อสร้างอินเทอร์เฟซสำหรับการบันทึกsudo tcpdump -ni pflog0
เพื่อดูแพ็กเก็ตที่ถูกกรองเว้นแต่คุณจะคุ้นเคยกับการกรองแพ็กเก็ตอยู่แล้ว ไม่แนะนำให้ใช้เวลากำหนดค่า pf มากเกินไป อาจไม่จำเป็นเช่นกันหาก Mac ของคุณอยู่เบื้องหลัง NAT บนเครือข่ายในบ้านส่วนตัว
คุณสามารถใช้ไฟร์วอลล์ pf เพื่อบล็อกการเข้าถึงเครือข่ายไปยังที่อยู่เครือข่ายทั้งหมด เช่น สำหรับทั้งองค์กร:
สืบค้น Merit RADb สำหรับรายการเครือข่ายที่ใช้งานโดยระบบอัตโนมัติ เช่น Facebook:
whois -h whois.radb.net '!gAS32934'
คัดลอกและวางรายการเครือข่ายที่ส่งคืนลงในคำสั่ง blocklist:
sudo pfctl -t blocklist -T add 31.13.24.0/21 31.13.64.0/24 157.240.0.0/16
ยืนยันว่าได้เพิ่มที่อยู่แล้ว:
$ sudo pfctl -t blocklist -T show
No ALTQ support in kernel
ALTQ related functions disabled
31.13.24.0/21
31.13.64.0/24
157.240.0.0/16
ยืนยันว่าการรับส่งข้อมูลเครือข่ายถูกบล็อกไปยังที่อยู่เหล่านั้น (คำขอ DNS จะยังคงใช้งานได้):
$ dig a +short facebook.com
157.240.2.35
$ curl --connect-timeout 5 -I http://facebook.com/
* Trying 157.240.2.35...
* TCP_NODELAY set
* Connection timed out after 5002 milliseconds
* Closing connection 0
curl: (28) Connection timed out after 5002 milliseconds
$ sudo tcpdump -tqni pflog0 ' host 157.240.2.35 '
IP 192.168.1.1.62771 > 157.240.2.35.80: tcp 0
IP 192.168.1.1.62771 > 157.240.2.35.80: tcp 0
IP 192.168.1.1.62771 > 157.240.2.35.80: tcp 0
IP 192.168.1.1.62771 > 157.240.2.35.80: tcp 0
IP 192.168.1.1.162771 > 157.240.2.35.80: tcp 0
แพ็กเก็ต TCP SYN ขาออกถูกบล็อก ดังนั้นจึงไม่มีการสร้างการเชื่อมต่อ TCP และเว็บไซต์จึงถูกบล็อกอย่างมีประสิทธิภาพที่เลเยอร์ IP
ดู drduh/config/scripts/pf-blocklist.sh สำหรับแรงบันดาลใจเพิ่มเติม
บริการบน macOS ได้รับการจัดการโดย launchd ดูที่ launchd.info
คุณสามารถจัดการและดูข้อมูลเพิ่มเติมเกี่ยวกับซอฟต์แวร์ที่ทำงานเมื่อเข้าสู่ระบบได้ในการตั้งค่าระบบ คุณสามารถดู System, Quick Look, Finder และส่วนขยายอื่นๆ ที่ติดตั้งไว้ในการตั้งค่าระบบได้เช่นกัน
launchctl list
เพื่อดูตัวแทนผู้ใช้ที่ทำงานอยู่sudo launchctl list
เพื่อดู daemons ระบบที่ทำงานอยู่launchctl list com.apple.Maps.mapspushd
defaults read
เพื่อตรวจสอบรายการงานใน /System/Library/LaunchDaemons
และ /System/Library/LaunchAgents
man
และ strings
เพื่อค้นหาข้อมูลเพิ่มเติมว่า Agent/daemon ทำอะไรได้บ้างตัวอย่างเช่น หากต้องการเรียนรู้ว่า system launch daemon หรือเอเจนต์ทำอะไร ให้เริ่มต้นด้วย:
defaults read /System/Library/LaunchDaemons/com.apple.apsd.plist
ดูที่ส่วน Program
หรือ ProgramArguments
เพื่อดูว่าไบนารีใดที่รันอยู่ ในกรณีนี้ apsd
หากต้องการค้นหาข้อมูลเพิ่มเติม โปรดดูที่หน้า man ที่มี man apsd
หมายเหตุ บริการของระบบได้รับการปกป้องโดย SIP อย่าปิดใช้งาน SIP เพียงเพื่อปรับแต่งบริการของระบบ เนื่องจาก SIP เป็นส่วนสำคัญของความปลอดภัยบน macOS การปิดใช้งานบริการของระบบอาจทำให้เกิดการแตกหักและพฤติกรรมที่ไม่เสถียร!
หากต้องการดูสถานะของบริการ:
find /var/db/com.apple.xpc.launchd/ -type f -print -exec defaults read {} ; 2>/dev/null
รายการคำอธิบายประกอบของ launch daemons และเอเจนต์ โปรแกรมที่เกี่ยวข้องที่ดำเนินการ และผลรวมแฮชของโปรแกรมจะรวมอยู่ในที่เก็บนี้
อ่านเพิ่มเติมเกี่ยวกับ launchd และตำแหน่งรายการเข้าสู่ระบบที่สามารถพบได้บนเว็บไซต์ของ Apple
Apple กำลังเปลี่ยนไปใช้การประมวลผลบนอุปกรณ์สำหรับฟังก์ชัน Siri จำนวนมาก แต่ข้อมูลบางอย่างยังคงถูกส่งไปยัง Apple เมื่อคุณใช้คำแนะนำโดย Siri หรือ Spotlight คุณสามารถอ่านนโยบายความเป็นส่วนตัวของ Apple เพื่อดูว่ามีอะไรส่งไปบ้างและจะปิดการใช้งานอย่างไร
หากโปรแกรมของคุณไม่มีให้บริการผ่าน App Store คุณสามารถลองใช้ Homebrew ได้
สำคัญ! Homebrew ขอให้คุณให้สิทธิ์ "การจัดการแอป" (หรือ "การเข้าถึงดิสก์แบบเต็ม") แก่เทอร์มินัลของคุณ นี่เป็นความคิดที่ไม่ดี เนื่องจากจะทำให้คุณเสี่ยงต่อการโจมตีเหล่านี้อีกครั้ง: แอปพลิเคชันที่ไม่ใช่แซนด์บ็อกซ์สามารถรันโค้ดด้วยสิทธิ์ TCC ของเทอร์มินัลของคุณโดยเพิ่มคำสั่งที่เป็นอันตรายไปที่ (เช่น) ~/.zshrc การให้ “การจัดการแอป” หรือ “การเข้าถึงดิสก์แบบเต็ม” แก่เทอร์มินัลของคุณควรพิจารณาเหมือนกับการปิดใช้งาน TCC โดยสิ้นเชิง
อย่าลืมรัน brew upgrade
บนเครือข่ายที่เชื่อถือได้และปลอดภัยเป็นระยะๆ เพื่อดาวน์โหลดและติดตั้งการอัปเดตซอฟต์แวร์ หากต้องการรับข้อมูลเกี่ยวกับแพ็คเกจก่อนการติดตั้ง ให้รัน brew info <package>
และตรวจสอบสูตรทางออนไลน์ คุณอาจต้องการเปิดใช้งานตัวเลือกความปลอดภัยเพิ่มเติม เช่น HOMEBREW_NO_INSECURE_REDIRECT=1
ตามการวิเคราะห์ที่ไม่เปิดเผยตัวตนของ Homebrew นั้น Homebrew รวบรวมการวิเคราะห์ที่ไม่ระบุชื่อและรายงานสิ่งเหล่านี้ไปยังอินสแตนซ์ InfluxDB ที่โฮสต์ด้วยตนเอง หากต้องการยกเลิกการวิเคราะห์ของ Homebrew คุณสามารถตั้งค่า export HOMEBREW_NO_ANALYTICS=1
ในสภาพแวดล้อมของคุณหรือไฟล์ rc เชลล์ หรือใช้ brew analytics off
macOS 11 เปิดตัว "โปรไฟล์การกำหนดค่า DNS" เพื่อกำหนดค่า DNS ที่เข้ารหัส กรองโดเมน และใช้ DNSSEC
คุณสามารถสร้างหรือรับโปรไฟล์ DNS ได้จากผู้ให้บริการเช่น Quad9, AdGuard และ NextDNS
ใช้ไฟล์โฮสต์เพื่อบล็อกมัลแวร์ที่รู้จัก การโฆษณา หรือโดเมนที่ไม่ต้องการ
แก้ไขไฟล์โฮสต์ในฐานะรูท เช่น ด้วย sudo vi /etc/hosts
หากต้องการบล็อกโดเมนด้วยระเบียน A
ให้เพิ่มบรรทัดใดบรรทัดหนึ่งต่อไปนี้ต่อท้าย /etc/hosts
:
0 example.com
0.0.0.0 example.com
127.0.0.1 example.com
หมายเหตุ IPv6 ใช้ประเภทบันทึก DNS AAAA
แทนที่จะเป็นประเภทบันทึก A
ดังนั้นคุณอาจต้องการบล็อกการเชื่อมต่อเหล่านั้นโดย รวม รายการ ::1 example.com
ดังที่แสดงไว้ที่นี่
มีรายการโดเมนออนไลน์มากมายที่คุณสามารถวางได้ เพียงตรวจสอบให้แน่ใจว่าแต่ละบรรทัดเริ่มต้นด้วย 0
, 0.0.0.0
, 127.0.0.1
และบรรทัด 127.0.0.1 localhost
รวมอยู่ด้วย
ต่อไปนี้เป็นรายชื่อเจ้าของที่พักยอดนิยมและมีประโยชน์:
ผนวกรายชื่อโฮสต์ด้วย tee
:
curl https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts | sudo tee -a /etc/hosts
หากคุณใช้ไฟร์วอลล์เช่น Little Snitch คุณสามารถใช้ StevenBlack/hosts นำเข้ากฎจากพื้นที่เก็บข้อมูล leohidalgo/little-snitch---rule-groups กฎเหล่านี้จะได้รับการอัปเดตทุก 12 ชั่วโมงจากพื้นที่เก็บข้อมูล StevenBlack/hosts
หากต้องการเข้ารหัสการรับส่งข้อมูล DNS ให้ลองใช้ DNSCrypt/dnscrypt-proxy เมื่อใช้ร่วมกับ dnsmasq และ DNSSEC ความสมบูรณ์ของการรับส่งข้อมูล DNS สามารถปรับปรุงได้อย่างมาก
ติดตั้ง DNSCrypt จาก Homebrew และทำตามคำแนะนำเพื่อกำหนดค่าและเริ่มต้น dnscrypt-proxy
:
brew install dnscrypt-proxy
หากใช้ร่วมกับ Dnsmasq ให้ค้นหาไฟล์ homebrew.mxcl.dnscrypt-proxy.plist
โดยเรียกใช้
brew info dnscrypt-proxy
ซึ่งจะแสดงตำแหน่งเช่น /usr/local/etc/dnscrypt-proxy.toml
เปิดในโปรแกรมแก้ไขข้อความ ค้นหาบรรทัดที่ขึ้นต้นด้วย listen_addresses =
และแก้ไขบรรทัดนั้นเพื่อใช้ DNScrypt บนพอร์ตอื่นที่ไม่ใช่ 53 เช่น 5355:
listen_addresses = ['127.0.0.1:5355', '[::1]:5355']
เริ่ม DNSCrypt:
sudo brew services restart dnscrypt-proxy
ยืนยันว่า DNSCrypt กำลังทำงานอยู่:
$ sudo lsof +c 15 -Pni UDP:5355
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
dnscrypt-proxy 15244 nobody 7u IPv4 0x1337f85ff9f8beef 0t0 UDP 127.0.0.1:5355
dnscrypt-proxy 15244 nobody 10u IPv6 0x1337f85ff9f8beef 0t0 UDP [::1]:5355
dnscrypt-proxy 15244 nobody 12u IPv4 0x1337f85ff9f8beef 0t0 UDP 127.0.0.1:5355
dnscrypt-proxy 15244 nobody 14u IPv6 0x1337f85ff9f8beef 0t0 UDP [::1]:5355
ตามค่าเริ่มต้น dnscrypt-proxy จะทำงานบน localhost (127.0.0.1) พอร์ต 53 เพื่อสร้างสมดุลการรับส่งข้อมูลระหว่างชุดตัวแก้ไข หากคุณต้องการเปลี่ยนการตั้งค่าเหล่านี้ คุณจะต้องแก้ไขไฟล์การกำหนดค่า: $HOMEBREW_PREFIX/etc/dnscrypt-proxy.toml
หมายเหตุ แอปพลิเคชันและโปรแกรมอาจแก้ไข DNS โดยใช้เซิร์ฟเวอร์ที่จัดเตรียมไว้ให้ หากใช้ dnscrypt-proxy คุณสามารถปิดการรับส่งข้อมูล DNS อื่นๆ ที่ไม่ใช่ dnscrypt ทั้งหมดได้โดยใช้กฎ pf ต่อไปนี้:
block drop quick on ! lo0 proto udp from any to any port = 53
block drop quick on ! lo0 proto tcp from any to any port = 53
ดูเพิ่มเติมที่ DNS รั่วคืออะไร และ ipv6-test.com
ในบรรดาคุณสมบัติอื่นๆ dnsmasq สามารถแคชการตอบกลับ ป้องกันการสืบค้นอัปสตรีมสำหรับชื่อที่ไม่เข้าเกณฑ์ และบล็อกโดเมนระดับบนสุดทั้งหมด
ใช้ร่วมกับ DNSCrypt เพื่อเข้ารหัสการรับส่งข้อมูล DNS เพิ่มเติม
หากคุณไม่ต้องการใช้ DNSCrypt อย่างน้อยคุณควรใช้ DNS ที่ ISP ของคุณไม่ได้ให้มา สองทางเลือกยอดนิยมคือ Google DNS และ OpenDNS
DNSSEC ที่เป็นตัวเลือก คือชุดส่วนขยายของ DNS ซึ่งมอบการตรวจสอบสิทธิ์ต้นทางของข้อมูล DNS ให้กับไคลเอ็นต์ DNS (ตัวแก้ไข) การปฏิเสธการมีอยู่ของการตรวจสอบสิทธิ์ และความสมบูรณ์ของข้อมูล คำตอบทั้งหมดจากโซนที่มีการป้องกัน DNSSEC ได้รับการเซ็นชื่อแบบดิจิทัล บันทึกที่ลงนามแล้วจะได้รับการตรวจสอบสิทธิ์ผ่านสายโซ่แห่งความไว้วางใจ โดยเริ่มต้นด้วยชุดคีย์สาธารณะที่ตรวจสอบแล้วสำหรับโซนรูท DNS สามารถดาวน์โหลด Trust Anchor โซนรากปัจจุบันได้จากเว็บไซต์ IANA มีแหล่งข้อมูลมากมายใน DNSSEC แต่แหล่งข้อมูลที่ดีที่สุดน่าจะเป็นเว็บไซต์ dnssec.net
ติดตั้ง DNSmasq:
brew install dnsmasq --with-dnssec
ดาวน์โหลดและแก้ไข drduh/config/dnsmasq.conf หรือไฟล์การกำหนดค่าเริ่มต้น
ดู drduh/config/domains สำหรับตัวอย่างเพิ่มเติมเกี่ยวกับการบล็อกบริการตามโดเมน
ติดตั้งและเริ่มโปรแกรม (ต้องใช้ sudo เพื่อผูกกับพอร์ตที่มีสิทธิ์ 53):
sudo brew services start dnsmasq
หากต้องการตั้งค่า dnsmasq เป็นเซิร์ฟเวอร์ DNS ภายใน ให้เปิด การตั้งค่าระบบ > เครือข่าย และเลือกอินเทอร์เฟซที่ใช้งาน จากนั้นแท็บ DNS เลือก + และเพิ่ม 127.0.0.1
หรือใช้:
sudo networksetup -setdnsservers "Wi-Fi" 127.0.0.1
ยืนยันว่ากำหนดค่า Dnsmasq แล้ว:
$ scutil --dns | head
DNS configuration
resolver #1
search domain[0] : whatever
nameserver[0] : 127.0.0.1
flags : Request A records, Request AAAA records
reach : 0x00030002 (Reachable,Local Address,Directly Reachable Address)
$ networksetup -getdnsservers " Wi-Fi "
127.0.0.1
หมายเหตุ ซอฟต์แวร์ VPN บางตัวจะแทนที่การตั้งค่า DNS ในการเชื่อมต่อ ดูปัญหา 24 และ drduh/config/scripts/macos-dns.sh
การทดสอบการตรวจสอบ DNSSEC เพิ่มเติม สำหรับโซนที่ลงนาม - การตอบกลับควรมีสถานะ NOERROR
และมีสถานะ ad
:
$ dig +dnssec icann.org | head
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47039
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
ทดสอบการตรวจสอบ DNSSEC ล้มเหลวสำหรับโซนที่ลงนามไม่ถูกต้อง - การตอบกลับควรมีสถานะ SERVFAIL
:
$ dig www.dnssec-failed.org | head
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 15190
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
macOS มาพร้อมกับใบรับรองสิทธิ์รูทมากกว่า 100 รายการที่ติดตั้งจากบริษัทต่างๆ เช่น Apple, Verisign, Thawte, Digicert และหน่วยงานรัฐบาลจากประเทศจีน ญี่ปุ่น เนเธอร์แลนด์ สหรัฐอเมริกา และอีกมากมาย! ผู้ออกใบรับรอง (CA) เหล่านี้สามารถออกใบรับรอง TLS สำหรับโดเมน ใบรับรองการลงนามโค้ด ฯลฯ ได้ Apple บล็อกใบรับรองเหล่านี้เมื่อ CA พิสูจน์ได้ว่าไม่น่าเชื่อถือ พวกเขายังมีข้อกำหนดที่เข้มงวดซึ่ง CA ที่เชื่อถือได้ต้องปฏิบัติตาม
สำหรับข้อมูลเพิ่มเติม โปรดดูที่เว็บไซต์ของ CA/Browser Forum
ตรวจสอบใบรับรองรูทของระบบใน Keychain Access ใต้แท็บ System Roots หรือโดยใช้เครื่องมือบรรทัดคำสั่ง security
และไฟล์ /System/Library/Keychains/SystemRootCertificates.keychain
คุณสามารถปิดใช้งานผู้ออกใบรับรองได้ด้วยตนเองผ่านการเข้าถึงพวงกุญแจโดยทำเครื่องหมายว่าเป็น Never Trust แล้วปิดหน้าต่าง:
คำเตือน: สิ่งนี้จะทำให้เบราว์เซอร์ของคุณส่งคำเตือนเมื่อคุณเยี่ยมชมไซต์โดยใช้ใบรับรองที่ลงนามโดย CA เหล่านี้ และอาจทำให้ซอฟต์แวร์อื่นเสียหายได้ อย่าเชื่อถือใบรับรองรูทของ Apple ไม่เช่นนั้นจะทำให้ macOS เสียหายจำนวนมาก!
ความเสี่ยงที่ผู้ออกใบรับรองที่ถูกบังคับหรือถูกบุกรุกซึ่งระบบของคุณไว้วางใจจะออกใบรับรอง TLS ปลอม/หลอกลวงนั้น ความเสี่ยงที่ผู้ออกใบรับรองจะถูกบังคับหรือบุกรุกนั้นค่อนข้างต่ำ แต่ก็ยังเป็นไปได้
พิจารณาใช้ Privoxy เป็นพร็อกซีในเครื่องเพื่อกรองการรับส่งข้อมูลเว็บ
ติดตั้งและเริ่ม privoxy โดยใช้ Homebrew:
brew install privoxy
brew services start privoxy
อีกทางเลือกหนึ่ง แพ็คเกจการติดตั้งที่ลงนามสำหรับ Privoxy นั้นมีให้จากเว็บไซต์หรือ Sourceforge แพ็คเกจที่เซ็นชื่อมีความปลอดภัยมากกว่าเวอร์ชัน Homebrew และได้รับการสนับสนุนจากโปรเจ็กต์ Privoxy
ตามค่าเริ่มต้น Privoxy จะรับฟังพอร์ต TCP ในเครื่อง 8118
ตั้งค่าพร็อกซี HTTP ของระบบสำหรับอินเทอร์เฟซเครือข่ายที่ใช้งานอยู่ 127.0.0.1
และ 8118
:
sudo networksetup -setwebproxy "Wi-Fi" 127.0.0.1 8118
ตั้งค่าพร็อกซี HTTPS ของระบบ:
sudo networksetup -setsecurewebproxy "Wi-Fi" 127.0.0.1 8118
ซึ่งสามารถทำได้ผ่านการ ตั้งค่าระบบ > เครือข่าย > ขั้นสูง > พรอกซี
ยืนยันว่าตั้งค่าพร็อกซีแล้ว:
$ scutil --proxy
<dictionary> {
ExceptionsList : <array> {
0 : *.local
1 : 169.254/16
}
FTPPassive : 1
HTTPEnable : 1
HTTPPort : 8118
HTTPProxy : 127.0.0.1
}
แม้ว่าการรับส่งข้อมูลเว็บส่วนใหญ่ในปัจจุบันจะถูกเข้ารหัส แต่ Privoxy ยังคงมีประโยชน์สำหรับการกรองตามรูปแบบชื่อโดเมน และสำหรับการอัปเกรดคำขอ HTTP ที่ไม่ปลอดภัย
ตัวอย่างเช่น กฎต่อไปนี้จะบล็อกการรับส่งข้อมูลทั้งหมด ยกเว้น .net
และ github.com
และโดเมน apple
ทั้งหมด:
{ +block{all} }
.
{ -block }
.apple.
.github.com
.net
หรือจะบล็อกโดเมน Facebook เพียงอย่างเดียว เช่น
{ +block{facebook} }
.facebook*.
.fb.
.fbcdn*.
.fbinfra.
.fbsbx.
.fbsv.
.fburl.
.tfbnw.
.thefacebook.
fb*.akamaihd.net
นอกจากนี้ยังรองรับไวด์การ์ดอีกด้วย
ดู drduh/config/privoxy/config และ drduh/config/privoxy/user.action สำหรับตัวอย่าง Privoxy เพิ่มเติม ไม่ จำเป็นต้องรีสตาร์ท Privoxy หลังจากแก้ไขกฎตัวกรอง user.action
หากต้องการตรวจสอบว่าการรับส่งข้อมูลถูกบล็อกหรือเปลี่ยนเส้นทาง ให้ใช้ curl หรืออินเทอร์เฟซ Privoxy ที่ http://pp ในเบราว์เซอร์:
ALL_PROXY=127.0.0.1:8118 curl example.com -IL | head
HTTP/1.1 403 Request blocked by Privoxy
Content-Length: 9001
Content-Type: text/html
Cache-Control: no-cache
Pragma: no-cache
ALL_PROXY=127.0.0.1:8118 curl github.com -IL | head
HTTP/1.1 302 Local Redirect from Privoxy
Location: https://github.com/
Content-Length: 0
HTTP/1.1 200 Connection established
HTTP/2 200
server: GitHub.com
หมายเหตุ การตั้งค่าพร็อกซี macOS ไม่เป็นสากล แอพและบริการอาจไม่เป็นไปตามการตั้งค่าพร็อกซีของระบบ ตรวจสอบให้แน่ใจว่าแอปพลิเคชันที่คุณต้องการพร็อกซีได้รับการกำหนดค่าอย่างถูกต้อง และตรวจสอบว่าการเชื่อมต่อไม่รั่วไหล นอกจากนี้ pf ยังสามารถกำหนดค่าให้รับส่งข้อมูลพร็อกซีอย่างโปร่งใสบนพอร์ตบางพอร์ตได้
เว็บเบราว์เซอร์มีแนวโน้มที่จะก่อให้เกิดความเสี่ยงด้านความปลอดภัยและความเป็นส่วนตัวที่ใหญ่ที่สุด เนื่องจากงานพื้นฐานของมันคือการดาวน์โหลดและรันโค้ดที่ไม่น่าเชื่อถือจากอินเทอร์เน็ต
คุณสมบัติที่สำคัญของเบราว์เซอร์สมัยใหม่คือ Same Origin Policy (SOP) ซึ่งป้องกันสคริปต์ที่เป็นอันตรายบนเพจหนึ่งจากการเข้าถึงข้อมูลที่ละเอียดอ่อนบนหน้าเว็บอื่นผ่าน Document Object Model (DOM) หาก SOP ถูกบุกรุก ความปลอดภัยของเบราว์เซอร์ทั้งหมดจะถูกบุกรุก
การหาประโยชน์จากเบราว์เซอร์จำนวนมากนั้นอาศัยวิศวกรรมสังคมเพื่อให้เกิดความคงอยู่ โปรดคำนึงถึงการเปิดไซต์ที่ไม่น่าเชื่อถือและระมัดระวังเป็นพิเศษเมื่อดาวน์โหลดซอฟต์แวร์ใหม่
ข้อควรพิจารณาที่สำคัญอีกประการหนึ่งเกี่ยวกับความปลอดภัยของเบราว์เซอร์คือส่วนขยาย นี่เป็นปัญหาที่ส่งผลต่อ Firefox และ Chrome เหมือนกัน การใช้ส่วนขยายเบราว์เซอร์ควรจำกัดเฉพาะส่วนที่จำเป็นอย่างยิ่งซึ่งเผยแพร่โดยนักพัฒนาที่น่าเชื่อถือเท่านั้น
Mozilla Firefox, Google Chrome, Safari และ Tor Browser ล้วนเป็นเบราว์เซอร์ที่แนะนำเพื่อวัตถุประสงค์เฉพาะและเฉพาะตัว
Mozilla Firefox เป็นเบราว์เซอร์โอเพ่นซอร์สยอดนิยม Firefox เข้ามาแทนที่ส่วนสำคัญของโครงสร้างพื้นฐานและฐานโค้ดภายใต้โปรเจ็กต์ Quantum และ Photon ส่วนหนึ่งของโครงการ Quantum คือการแทนที่โค้ด C++ ด้วย Rust Rust เป็นภาษาการเขียนโปรแกรมระบบที่เน้นเรื่องความปลอดภัยและความปลอดภัยของเธรด คาดว่าการนำ Rust มาใช้จะช่วยปรับปรุงสถานะความปลอดภัยโดยรวมของ Firefox ได้อย่างมาก
Firefox เสนอรูปแบบการรักษาความปลอดภัยที่คล้ายกับ Chrome: มีโปรแกรมจับจุดบกพร่อง แม้ว่าจะไม่สร้างผลกำไรก็ตาม Firefox มีรอบการเปิดตัวสี่สัปดาห์
Firefox รองรับไฟล์การกำหนดค่าที่ผู้ใช้ระบุ ดู drduh/config/firefox.user.js และ arkenfox/user.js สำหรับการกำหนดค่าตามความชอบที่แนะนำและมาตรการเสริมความแข็งแกร่ง ดูเพิ่มเติมที่ NoScript ซึ่งเป็นส่วนขยายที่อนุญาตให้บล็อกสคริปต์แบบเลือกได้
Firefox มุ่งเน้นไปที่ความเป็นส่วนตัวของผู้ใช้ รองรับการป้องกันการติดตามในโหมดการดูเว็บแบบส่วนตัว สามารถเปิดใช้งานการป้องกันการติดตามสำหรับบัญชีเริ่มต้นได้ แม้ว่าอาจทำให้ประสบการณ์การท่องเว็บในบางเว็บไซต์เสียหายก็ตาม Firefox ในโหมดการป้องกันการติดตามอย่างเข้มงวดจะสุ่มลายนิ้วมือของคุณเพื่อทำลายสคริปต์ติดตามพื้นฐาน Firefox มีโปรไฟล์ผู้ใช้แยกต่างหาก คุณสามารถแยกการท่องเว็บของคุณภายในโปรไฟล์ได้ด้วยคอนเทนเนอร์หลายบัญชี
Firefox รองรับเฉพาะส่วนขยายเว็บผ่าน Web Extension Api ซึ่งคล้ายกับ Chrome มาก การส่งส่วนขยายเว็บใน Firefox นั้นฟรี ส่วนขยายเว็บใน Firefox ส่วนใหญ่เป็นโอเพ่นซอร์ส แม้ว่าส่วนขยายเว็บบางรายการจะมีกรรมสิทธิ์ก็ตาม
Google Chrome ใช้โครงการ Chromium แบบโอเพ่นซอร์สซึ่งมีส่วนประกอบที่เป็นกรรมสิทธิ์บางประการ:
Chrome เสนอการซิงค์บัญชีระหว่างอุปกรณ์หลายเครื่อง ส่วนหนึ่งของข้อมูลการซิงค์รวมถึงข้อมูลรับรองไปยังเว็บไซต์ ข้อมูลถูกเข้ารหัสด้วยรหัสผ่านบัญชี
เว็บสโตร์ของ Chrome สำหรับส่วนขยายต้องมีค่าธรรมเนียมอายุการใช้งาน 5 USD เพื่อส่งส่วนขยาย ต้นทุนต่ำช่วยให้การพัฒนาส่วนขยายเว็บโอเพ่นซอร์สที่มีคุณภาพจำนวนมากซึ่งไม่ได้มีจุดมุ่งหมายเพื่อสร้างรายได้จากการใช้งาน
Chrome มีส่วนแบ่งการใช้งานทั่วโลกที่ใหญ่ที่สุดและเป็นแพลตฟอร์มเป้าหมายที่ต้องการสำหรับนักพัฒนาส่วนใหญ่ เทคโนโลยีที่สำคัญขึ้นอยู่กับส่วนประกอบโอเพ่นซอร์สของ Chrome เช่น node.js ซึ่งใช้เครื่องยนต์ V8 ของ Chrome และเฟรมเวิร์กอิเล็กตรอนซึ่งใช้โครเมียมและ Node.JS. ฐานผู้ใช้ที่กว้างใหญ่ของ Chrome ทำให้เป็นเป้าหมายที่น่าสนใจที่สุดสำหรับนักแสดงภัยคุกคามและนักวิจัยด้านความปลอดภัย แม้จะมีการโจมตีอย่างต่อเนื่อง Chrome ยังคงบันทึกความปลอดภัยที่น่าประทับใจตลอดหลายปีที่ผ่านมา นี่ไม่ใช่ความสำเร็จเล็ก ๆ
Chrome นำเสนอโปรไฟล์แยกต่างหาก, กล่องทรายที่แข็งแกร่งการอัปเดตบ่อยครั้งและมีข้อมูลประจำตัวที่น่าประทับใจ นอกจากนี้ Google ยังเสนอโปรแกรมเงินรางวัลที่ร่ำรวยมากสำหรับการรายงานช่องโหว่พร้อมกับทีมโครงการโครงการของตัวเอง ซึ่งหมายความว่าผู้คนที่มีความสามารถและมีแรงบันดาลใจจำนวนมากกำลังตรวจสอบและรักษาความปลอดภัยรหัสโครเมี่ยมอย่างต่อเนื่อง
สร้างโปรไฟล์โครเมี่ยมแยกต่างหากเพื่อลดความเสี่ยงของ XSS และแบ่งส่วนคุกกี้/อัตลักษณ์ ในแต่ละโปรไฟล์ให้ปิดการใช้งาน JavaScript ในการตั้งค่า Chrome และกำหนดค่าต้นกำเนิดที่อนุญาต คุณควรปิดใช้งาน V8 Optimizer สำหรับเว็บไซต์ที่คุณใช้ JavaScript เพื่อลดพื้นผิวการโจมตีเพิ่มเติม ไปที่ การตั้งค่า -> ความเป็นส่วนตัวและความปลอดภัย -> ความปลอดภัย -> จัดการความปลอดภัย V8 -> อย่าอนุญาตให้ไซต์ใช้เครื่องมือเพิ่มประสิทธิภาพ V8
อ่านเพิ่มเติมเกี่ยวกับประโยชน์ของการปิดการใช้งานที่นี่
คุณสามารถบล็อกตัวติดตามด้วย ublock Origin Lite
เปลี่ยนเครื่องมือค้นหาเริ่มต้นจาก Google เพื่อลดการติดตามเพิ่มเติม
ปิดการใช้งาน DNS prefetching (ดูเพิ่มเติม DNS prefetching และผลกระทบความเป็นส่วนตัว (PDF)) โปรดทราบว่า Chrome อาจพยายามแก้ไข DNS โดยใช้ Google 8.8.8.8
และ 8.8.4.4
Public Nameservers
อ่านความปลอดภัยของโครเมียมและความเป็นส่วนตัวของโครเมียมสำหรับข้อมูลเพิ่มเติม อ่านนโยบายความเป็นส่วนตัวของ Google เพื่อทำความเข้าใจว่าการรวบรวมและใช้ข้อมูลส่วนบุคคลอย่างไร
Safari เป็นเบราว์เซอร์เริ่มต้นบน MacOS นอกจากนี้ยังเป็นเบราว์เซอร์ที่ดีที่สุดสำหรับการลดการใช้แบตเตอรี่ Safari เช่น Chrome มีทั้งโอเพนซอร์สและส่วนประกอบที่เป็นกรรมสิทธิ์ Safari ขึ้นอยู่กับ WebKit Open Source Web Kit ซึ่งแพร่หลายในหมู่ระบบนิเวศของ MacOS WebKit ใช้โดย Apple Apps เช่น Mail, iTunes, iBooks และ App Store เครื่องยนต์ Blink ของ Chrome เป็นส้อมของ WebKit และเครื่องยนต์ทั้งสองมีความคล้ายคลึงกันมากมาย
Safari รองรับคุณสมบัติเฉพาะบางอย่างที่เป็นประโยชน์ต่อความปลอดภัยของผู้ใช้และความเป็นส่วนตัว ตัวบล็อกเนื้อหาช่วยให้การสร้างกฎการบล็อกเนื้อหาโดยไม่ต้องใช้ JavaScript วิธีการตามกฎนี้ช่วยปรับปรุงการใช้หน่วยความจำความปลอดภัยและความเป็นส่วนตัวอย่างมาก Safari 11 แนะนำการป้องกันการติดตามอัจฉริยะซึ่งจะลบการติดตามข้อมูลที่เก็บไว้ใน Safari หลังจากระยะเวลาของการไม่โต้ตอบโดยผู้ใช้จากเว็บไซต์ของตัวติดตาม Safari สามารถสุ่มลายนิ้วมือของคุณเพื่อลดการติดตาม Safari ไม่รองรับคุณสมบัติบางอย่างเช่น WebUSB หรือ Battery API โดยเจตนาเพื่อความปลอดภัยและเหตุผลความเป็นส่วนตัว แท็บส่วนตัวใน Safari มีคุกกี้และแคชที่แยกได้ซึ่งถูกทำลายเมื่อคุณปิดแท็บ Safari ยังรองรับโปรไฟล์ที่เทียบเท่ากับภาชนะหลายบัญชีของ Firefox สำหรับการแยกคุกกี้และการท่องเว็บ Safari สามารถสร้างความปลอดภัยได้อย่างมีนัยสำคัญด้วยโหมด Lockdown ซึ่งสามารถปิดใช้งานได้ต่อไซต์ อ่านเพิ่มเติมเกี่ยวกับการป้องกันการติดตามใน Safari
Safari เสนอโปรแกรมการเชิญชวนอย่างเดียวสำหรับการรายงานข้อผิดพลาดในการเลือกจำนวนนักวิจัยด้านความปลอดภัยที่เลือก โปรแกรม Bounty ได้รับการประกาศในระหว่างการนำเสนอของ Apple ที่ Blackhat 2016
ส่วนขยายเว็บใน Safari มีตัวเลือกเพิ่มเติมในการใช้รหัสเนทีฟในสภาพแวดล้อม SAFBOX ของ Safari นอกเหนือจาก API ส่วนขยายเว็บ ส่วนขยายเว็บใน Safari นั้นมีการแจกจ่ายผ่าน App Store ของ Apple การส่งแอพสโตร์มาพร้อมกับประโยชน์เพิ่มเติมของรหัสส่วนขยายเว็บที่ Apple ตรวจสอบ ในทางกลับกันการส่งแอพสโตร์มีค่าใช้จ่ายสูงชัน ค่าธรรมเนียมการสมัครสมาชิกผู้พัฒนารายปีมีค่าใช้จ่าย 100 USD (ตรงกันข้ามกับค่าธรรมเนียม 5 USD ของ Chrome และการส่งฟรีของ Firefox) ค่าใช้จ่ายสูงเป็นสิ่งต้องห้ามสำหรับนักพัฒนาโอเพนซอร์สส่วนใหญ่ เป็นผลให้ Safari มีส่วนขยายให้เลือกน้อยมาก อย่างไรก็ตามคุณควรคำนึงถึงค่าใช้จ่ายสูงเมื่อติดตั้งส่วนขยาย คาดว่าส่วนขยายเว็บส่วนใหญ่จะมีวิธีการสร้างรายได้จากการใช้งานเพื่อครอบคลุมค่าใช้จ่ายของนักพัฒนา ระวังการขยายเว็บที่มีซอร์สโค้ดไม่เปิด
Safari ซิงค์การตั้งค่าของผู้ใช้และรหัสผ่านด้วย keychain iCloud ในการดูในข้อความธรรมดาผู้ใช้จะต้องป้อนรหัสผ่านบัญชีของอุปกรณ์ปัจจุบัน ซึ่งหมายความว่าผู้ใช้สามารถซิงค์ข้อมูลข้ามอุปกรณ์ที่มีความปลอดภัยเพิ่ม
Safari ติดตามวงจรการปล่อยช้ากว่า Chrome และ Firefox (3-4 รุ่นรองลงมา 1 รุ่นที่สำคัญต่อปี) ฟีเจอร์ใหม่จะช้าลงที่จะนำไปใช้กับช่องทางที่มั่นคง การอัปเดตความปลอดภัยใน Safari ได้รับการจัดการโดยไม่ขึ้นกับกำหนดการวางจำหน่ายที่เสถียรและติดตั้งผ่าน App Store
ดูเพิ่มเติมที่ EL1T/UBLOCK-SAFARI เพื่อปิดการใช้งานบีคอนการตรวจสอบไฮเปอร์ลิงก์
ไม่แนะนำให้ใช้เบราว์เซอร์ที่ได้จากโครเมียมจำนวนมาก พวกเขามักจะเป็นแหล่งปิดการดูแลรักษาไม่ดีและอ้างสิทธิ์ที่น่าสงสัยเพื่อปกป้องความเป็นส่วนตัว
เบราว์เซอร์อื่น ๆ เช่น Brave ไม่ได้รับการประเมินในคู่มือนี้ดังนั้นจึงไม่แนะนำหรือไม่ท้อแท้จากการใช้งาน
เว็บเบราว์เซอร์เปิดเผยข้อมูลหลายวิธีตัวอย่างเช่นผ่านอินเตอร์เฟส Navigator ซึ่งอาจรวมถึงข้อมูลเช่นเวอร์ชันเบราว์เซอร์ระบบปฏิบัติการสิทธิ์ไซต์และระดับแบตเตอรี่ของอุปกรณ์ เว็บไซต์หลายแห่งใช้ลายนิ้วมือผ้าใบเพื่อระบุผู้ใช้ที่ไม่ซ้ำกันในเซสชัน
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการท่องเว็บที่ใส่ใจด้านความปลอดภัยและเบราว์เซอร์ของคุณส่งข้อมูลใดให้ดู Howto: การเรียกดูความเป็นส่วนตัวและการรักษาความปลอดภัย, BrowserLeaks.com, ฉันไม่เหมือนใคร? และ EFF ครอบคลุมทรัพยากรแทร็กของคุณ
หากต้องการขัดขวางผู้ติดตามบุคคลที่สามขอแนะนำให้ ปิดการใช้งานคุกกี้ของบุคคลที่สาม โดยสิ้นเชิง Safari, Firefox และ Chrome คุกกี้บุคคลที่สามบล็อกทั้งหมดโดยค่าเริ่มต้น คุกกี้ของบุคคลที่สามเป็นคุกกี้ที่เกี่ยวข้องกับไฟล์ที่ร้องขอโดยโดเมนที่แตกต่างจากที่ผู้ใช้กำลังดูอยู่ คุกกี้ของบุคคลที่สามส่วนใหญ่ใช้เพื่อสร้างโปรไฟล์การเรียกดูโดยการติดตามการเคลื่อนไหวของผู้ใช้บนเว็บ การปิดใช้งานคุกกี้ของบุคคลที่สามป้องกันการตอบสนองและสคริปต์ HTTP จากโดเมนอื่น ๆ จากการตั้งค่าคุกกี้ ยิ่งไปกว่านั้นคุกกี้จะถูกลบออกจากคำขอไปยังโดเมนที่ไม่ใช่โดเมนต้นทางเอกสารดังนั้นคุกกี้จะถูกส่งไปยังไซต์ปัจจุบันที่กำลังดูเท่านั้น
นอกจากนี้โปรดระวัง WEBRTC ซึ่งอาจเปิดเผยที่อยู่ในพื้นที่หรือสาธารณะของคุณ (ถ้าเชื่อมต่อกับ VPN) ที่อยู่ IP (ES) ใน Firefox และ Chrome/Chromium สิ่งนี้สามารถปิดใช้งานได้ด้วยส่วนขยายเช่นแหล่งกำเนิด ublock โหมดล็อคปิดใช้งาน WEBRTC ใน Safari
Tor เป็นเครือข่ายที่ไม่ระบุชื่อซึ่งสามารถใช้สำหรับการเรียกดูเว็บด้วยความเป็นส่วนตัวเพิ่มเติม Tor Browser เป็น Firefox รุ่นที่แก้ไขแล้วพร้อมพร็อกซีเพื่อเข้าถึงเครือข่าย Tor
ดาวน์โหลด Tor Browser จาก Tor Project
อย่า พยายามกำหนดค่าเบราว์เซอร์หรือแอพพลิเคชั่นอื่น ๆ เพื่อใช้ TOR เนื่องจากคุณอาจทำผิดพลาดซึ่งจะลดความไม่เปิดเผยตัวตน
ดาวน์โหลดไฟล์ dmg
และ asc
Signature จากนั้นตรวจสอบว่าภาพดิสก์ได้รับการลงนามโดยนักพัฒนา TOR:
$ cd ~ /Downloads
$ file Tor *
TorBrowser-8.0.4-osx64_en-US.dmg: bzip2 compressed data, block size = 900k
TorBrowser-8.0.4-osx64_en-US.dmg.asc: PGP signature Signature (old)
$ gpg Tor * asc
[...]
gpg: Can't check signature: No public key
$ gpg --recv 0x4E2C6E8793298290
gpg: key 0x4E2C6E8793298290: public key "Tor Browser Developers (signing key) <[email protected]>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg: imported: 1
$ gpg --verify Tor * asc
gpg: assuming signed data in 'TorBrowser-8.0.4-osx64_en-US.dmg'
gpg: Signature made Mon Dec 10 07:16:22 2018 PST
gpg: using RSA key 0xEB774491D9FF06E2
gpg: Good signature from "Tor Browser Developers (signing key) <[email protected]>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: EF6E 286D DA85 EA2A 4BA7 DE68 4E2C 6E87 9329 8290
Subkey fingerprint: 1107 75B5 D101 FB36 BC6C 911B EB77 4491 D9FF 06E2
ตรวจสอบให้แน่ใจว่า Good signature from "Tor Browser Developers (signing key) <[email protected]>"
ปรากฏในผลลัพธ์ คำเตือนเกี่ยวกับกุญแจที่ไม่ได้รับการรับรองนั้นเป็นพิษเป็นภัยเนื่องจากยังไม่ได้รับมอบหมายความไว้วางใจ
ดูว่าฉันจะตรวจสอบลายเซ็นของ Tor Browser ได้อย่างไร? สำหรับข้อมูลเพิ่มเติม
ในการติดตั้งเบราว์เซอร์ TOR ให้เสร็จให้เปิดอิมเมจดิสก์และลากมันลงในโฟลเดอร์แอปพลิเคชันหรือด้วย:
hdiutil mount TorBrowser-8.0.4-osx64_en-US.dmg
cp -r /Volumes/Tor Browser/Tor Browser.app/ ~/Applications/
ตรวจสอบลายเซ็นรหัสของแอปพลิเคชัน TOR นั้นเกิดขึ้นกับ ID Apple Developer ID ของ TOR Project โดยใช้ spctl -a -v
และ/หรือ pkgutil --check-signature
:
$ spctl -a -vv ~ /Applications/Tor Browser.app
/Users/drduh/Applications/Tor Browser.app: accepted
source=Developer ID
origin=Developer ID Application: The Tor Project, Inc (MADPSAYN6T)
$ pkgutil --check-signature ~ /Applications/Tor Browser.app
Package "Tor Browser.app":
Status: signed by a certificate trusted by Mac OS X
Certificate Chain:
1. Developer ID Application: The Tor Project, Inc (MADPSAYN6T)
SHA1 fingerprint: 95 80 54 F1 54 66 F3 9C C2 D8 27 7A 29 21 D9 61 11 93 B3 E8
-----------------------------------------------------------------------------
2. Developer ID Certification Authority
SHA1 fingerprint: 3B 16 6C 3B 7D C4 B7 51 C9 FE 2A FA B9 13 56 41 E3 88 E1 86
-----------------------------------------------------------------------------
3. Apple Root CA
SHA1 fingerprint: 61 1E 5B 66 2C 59 3A 08 FF 58 D1 4A E2 24 52 D1 98 DF 6C 60
นอกจากนี้คุณยังสามารถใช้คำสั่ง codesign
เพื่อตรวจสอบลายเซ็นรหัสของแอปพลิเคชัน:
$ codesign -dvv ~ /Applications/Tor Browser.app
Executable=/Users/drduh/Applications/Tor Browser.app/Contents/MacOS/firefox
Identifier=org.torproject.torbrowser
Format=app bundle with Mach-O thin (x86_64)
CodeDirectory v=20200 size=229 flags=0x0(none) hashes=4+3 location=embedded
Library validation warning=OS X SDK version before 10.9 does not support Library Validation
Signature size=4247
Authority=Developer ID Application: The Tor Project, Inc (MADPSAYN6T)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Signed Time=Dec 10, 2018 at 12:18:45 AM
Info.plist entries=24
TeamIdentifier=MADPSAYN6T
Sealed Resources version=2 rules=12 files=128
Internal requirements count=1 size=188
หากต้องการดูรายละเอียดใบรับรองเต็มรูปแบบสำหรับแอปพลิเคชันที่ลงนามให้แยกพวกเขาด้วย codesign
และถอดรหัสด้วย openssl
:
$ codesign -d --extract-certificates ~ /Applications/Tor Browser.app
Executable=/Users/drduh/Applications/Tor Browser.app/Contents/MacOS/firefox
$ file codesign *
codesign0: data
codesign1: data
codesign2: data
$ openssl x509 -inform der -in codesign0 -subject -issuer -startdate -enddate -noout
subject= /UID=MADPSAYN6T/CN=Developer ID Application: The Tor Project, Inc (MADPSAYN6T)/OU=MADPSAYN6T/O=The Tor Project, Inc/C=US
issuer= /CN=Developer ID Certification Authority/OU=Apple Certification Authority/O=Apple Inc./C=US
notBefore=Apr 12 22:40:13 2016 GMT
notAfter=Apr 13 22:40:13 2021 GMT
$ openssl x509 -inform der -in codesign0 -fingerprint -noout
SHA1 Fingerprint=95:80:54:F1:54:66:F3:9C:C2:D8:27:7A:29:21:D9:61:11:93:B3:E8
$ openssl x509 -inform der -in codesign0 -fingerprint -sha256 -noout
SHA256 Fingerprint=B5:0D:47:F0:3E:CB:42:B6:68:1C:6F:38:06:2B:C2:9F:41:FA:D6:54:F1:29:D3:E4:DD:9C:C7:49:35:FF:F5:D9
ทราฟฟิกของ TOR ถูก เข้ารหัส ไปยังโหนดทางออก (เช่นไม่สามารถอ่านได้ด้วยการดักฟังเครือข่ายแบบพาสซีฟ) แต่ สามารถ ระบุการใช้ TOR ได้ - ตัวอย่างเช่นการจับมือกันของ TLS "ชื่อโฮสต์" จะปรากฏใน PlainText:
$ sudo tcpdump -An " tcp " | grep " www "
listening on pktap, link-type PKTAP (Apple DLT_PKTAP), capture size 262144 bytes
.............". ...www.odezz26nvv7jeqz1xghzs.com.........
.............#.!...www.bxbko3qi7vacgwyk4ggulh.com.........
.6....m.....>...:.........|../* Z....W....X=..6...C../....................................0...0..0.......'....F./0.. *.H........0%1#0!..U....www.b6zazzahl3h3faf4x2.com0...160402000000Z..170317000000Z0'1%0#..U....www.tm3ddrghe22wgqna5u8g.net0..0..
ดูข้อมูลจำเพาะโปรโตคอล TOR และ Tor/Tlshistory สำหรับข้อมูลเพิ่มเติม
คุณอาจต้องการการจราจรที่น่ารำคาญนอกจากนี้โดยใช้การขนส่งที่สามารถทำได้
ซึ่งสามารถทำได้โดยการตั้งค่ารีเลย์ TOR ของคุณเองหรือค้นหาสะพานส่วนตัวหรือสะพานสาธารณะที่มีอยู่เพื่อทำหน้าที่เป็นโหนดรายการที่ทำให้งงงวย
เพื่อความปลอดภัยพิเศษให้ใช้ TOR ภายใน VirtualBox หรือ VMware Virtualized GNU/Linux หรือ OpenBSD
ในที่สุดโปรดจำไว้ว่าเครือข่าย TOR ให้การไม่เปิดเผยตัวตนซึ่งไม่จำเป็นต้องมีความหมายเหมือนกันกับความเป็นส่วนตัว เครือข่าย TOR ไม่รับประกันการป้องกันผู้สังเกตการณ์ทั่วโลกที่มีความสามารถในการวิเคราะห์การจราจรและความสัมพันธ์ ดูเพิ่มเติมที่ค้นหาการไม่เปิดเผยตัวตนในอินเทอร์เน็ต panopticon (PDF) และความสัมพันธ์การจราจรกับ TOR โดยฝ่ายตรงข้ามที่สมจริง (PDF)
ดูโครงการอินเทอร์เน็ตที่มองไม่เห็น (I2P) และการเปรียบเทียบ TOR
เมื่อเลือกบริการ VPN หรือตั้งค่าของคุณเองให้แน่ใจว่าได้ทำการวิจัยโปรโตคอลอัลกอริทึมการแลกเปลี่ยนคีย์กลไกการตรวจสอบและประเภทของการเข้ารหัสที่ใช้ ควรหลีกเลี่ยงโปรโตคอลบางอย่างเช่น PPTP ในความโปรดปรานของ Wireguard ที่ใช้ OpenVPN หรือ Linux บน Linux VM หรือผ่านชุดเครื่องมือข้ามแพลตฟอร์ม
ลูกค้าบางรายอาจส่งทราฟฟิกผ่านอินเทอร์เฟซที่มีอยู่ถัดไปเมื่อ VPN ถูกขัดจังหวะหรือตัดการเชื่อมต่อ ดู SCY/8122924 สำหรับตัวอย่างเกี่ยวกับวิธีการอนุญาตการรับส่งข้อมูลผ่าน VPN เท่านั้น
มีคู่มือที่ได้รับการปรับปรุงเพื่อตั้งค่า IPSec VPN บนเครื่องเสมือน (HWDSL2/SETUP-IPSEC-VPN) หรือคอนเทนเนอร์ Docker (HWDSL2/Docker-IPSEC-VPN-Server)
มันอาจจะคุ้มค่าที่จะพิจารณาที่ตั้งทางภูมิศาสตร์ของผู้ให้บริการ VPN ดูการอภิปรายเพิ่มเติมในฉบับที่ 114
ดูภาพรวมทางเทคนิคของ MACOS ในตัว VPN L2TP/IPSEC และ IKEV2 ในตัว MACOS
PGP เป็นมาตรฐานสำหรับการลงนามและการเข้ารหัสข้อมูล (โดยเฉพาะอีเมล) ตั้งแต่ต้นจนจบดังนั้นเฉพาะผู้ส่งและผู้รับเท่านั้นที่สามารถเข้าถึงได้
GPG หรือ GNU Privacy Guard เป็นโปรแกรมโอเพ่นซอร์สที่ได้รับอนุญาตจาก GPL ด้วยมาตรฐาน PGP
GPG ใช้เพื่อตรวจสอบลายเซ็นของซอฟต์แวร์ที่คุณดาวน์โหลดและติดตั้งรวมถึงไฟล์และข้อความที่เข้ารหัสแบบสมมาตรหรือไม่สมมาตร
ติดตั้งจาก Homebrew พร้อม brew install gnupg
หากคุณต้องการแอปพลิเคชันกราฟิกดาวน์โหลดและติดตั้ง GPG Suite
ดาวน์โหลด drduh/config/gpg.conf เพื่อใช้การตั้งค่าที่แนะนำ:
curl -o ~/.gnupg/gpg.conf https://raw.githubusercontent.com/drduh/config/master/gpg.conf
ดู DRDUH/Yubikey-Guide เพื่อสร้างและเก็บคีย์ GPG อย่างปลอดภัย
อ่านคู่มือออนไลน์และฝึกฝนการเข้ารหัสและถอดรหัสอีเมลถึงตัวคุณเองและเพื่อนของคุณ ให้พวกเขาสนใจในสิ่งนี้!
XMPP เป็นมาตรฐานแบบเปิดที่พัฒนาโดย IETF ที่อนุญาตให้ใช้การส่งข้อความแบบข้ามแพลตฟอร์ม มีตัวเลือกมากมายสำหรับลูกค้า พิจารณาใช้หนึ่งในลูกค้าที่ใช้เบราว์เซอร์เพื่อใช้ประโยชน์จาก Sandbox ของเบราว์เซอร์
ขึ้นอยู่กับผู้ให้บริการคุณอาจไม่ต้องการสิ่งอื่นใดนอกจากชื่อผู้ใช้และรหัสผ่านเพื่อตั้งค่าบัญชีของคุณ
XMPP ไม่ใช่ E2EE โดยค่าเริ่มต้นคุณจะต้องใช้การเข้ารหัส OMEMO ดังนั้นตรวจสอบให้แน่ใจว่าลูกค้าของคุณรองรับ
Signal เป็นผู้ส่งสาร E2EE ขั้นสูงที่มีการใช้โปรโตคอลสองเท่าของผู้ส่งสารอื่น ๆ นับไม่ถ้วนรวมถึง WhatsApp ข้อความ Google และ Facebook Messenger
สัญญาณต้องใช้หมายเลขโทรศัพท์เพื่อลงทะเบียนและคุณจะต้องติดตั้งบนโทรศัพท์ก่อนก่อนที่คุณจะสามารถใช้งานบนเดสก์ท็อป
iMessage เป็นผู้ส่งสารปาร์ตี้คนแรกของ Apple ต้องใช้บัญชี Apple เพื่อใช้งาน
ตรวจสอบให้แน่ใจว่าได้เปิดใช้งานการตรวจสอบคีย์ผู้ติดต่อและตรวจสอบกับทุกคนที่คุณส่งข้อความเพื่อให้แน่ใจว่าคุณกำลังส่งข้อความถึงบุคคลที่เหมาะสม
คุณสามารถใช้ iMessage กับหมายเลขโทรศัพท์หรืออีเมลดังนั้นเลือกที่คุณพอใจกับการดูที่ติดต่อของคุณ
หมายเหตุ: โดยค่าเริ่มต้นการสำรองข้อมูล iCloud จะเปิดใช้งานซึ่งจัดเก็บสำเนาของปุ่มเข้ารหัสข้อความของคุณบนเซิร์ฟเวอร์ของ Apple โดยไม่ต้อง E2EE ปิดใช้งานการสำรองข้อมูล iCloud หรือเปิดใช้งานการป้องกันข้อมูลขั้นสูงเพื่อป้องกันสิ่งนี้ อย่าลืมบอกให้พันธมิตรส่งข้อความของคุณทำเช่นเดียวกัน!
มีมัลแวร์ MAC จำนวนมากขึ้นเรื่อย ๆ ในป่า Macs ไม่ได้รับการยกเว้นจากไวรัสและซอฟต์แวร์ที่เป็นอันตราย!
มัลแวร์บางตัวมาพร้อมกับซอฟต์แวร์ที่ถูกกฎหมายทั้งสองเช่นแถบเครื่องมือ Java Bundling และบางส่วนที่มีซอฟต์แวร์ที่ผิดกฎหมายเช่น Mac.backdoor.iworm มาพร้อมกับโปรแกรมละเมิดลิขสิทธิ์
ดูวิธีการของการคงอยู่ของมัลแวร์บน Mac OS X (PDF) และการคงอยู่ของมัลแวร์ใน OS X Yosemite เพื่อเรียนรู้เกี่ยวกับวิธีการทำงานของมัลแวร์ในสวน
สมัครรับข้อมูลอัปเดตที่บล็อก Malwarebytes สำหรับข่าวความปลอดภัย MAC ปัจจุบัน
ตรวจสอบมัลแวร์ทีมแฮ็คสำหรับ MacOS: การติดตั้งรูทสำหรับ MACOS, สนับสนุนไดรเวอร์สำหรับตัวแทน MAC และตัวแทน RCS สำหรับ Mac ซึ่งเป็นตัวอย่างที่ดีของมัลแวร์ขั้นสูงที่มีความสามารถในการซ่อนจาก Userland (เช่น ps
, ls
) สำหรับข้อมูลเพิ่มเติมให้ดูการวิเคราะห์สั้น ๆ ของตัวติดตั้ง applant RCS และ reverse.put.as
เฉพาะโปรแกรมที่ใช้งานจาก App Store หรือที่ Apple ออกจากกันเท่านั้นที่จะช่วยลดมัลแวร์ Apple ดำเนินการสแกนอัตโนมัติบนแอพที่รับรองสำหรับมัลแวร์ แอพแอพสโตร์ผ่านกระบวนการตรวจสอบเพื่อจับมัลแวร์
มิฉะนั้นรับโปรแกรมจากแหล่งข้อมูลที่เชื่อถือได้เช่นโดยตรงจากเว็บไซต์ของนักพัฒนาหรือ GitHub ตรวจสอบให้แน่ใจเสมอว่าเบราว์เซอร์/เทอร์มินัลของคุณใช้ HTTPS เมื่อดาวน์โหลดโปรแกรมใด ๆ
คุณควรหลีกเลี่ยงโปรแกรมที่ขอสิทธิ์มากมายและโปรแกรมปิดแหล่งข้อมูลของบุคคลที่สาม รหัสโอเพ่นซอร์สช่วยให้ทุกคนสามารถตรวจสอบและตรวจสอบรหัสสำหรับปัญหาด้านความปลอดภัย/ความเป็นส่วนตัว
ตรวจสอบว่าโปรแกรมใช้แอพ Sandbox ก่อนที่จะเรียกใช้โดยเรียกใช้คำสั่งต่อไปนี้:
codesign -dvvv --entitlements - <path to your app>
หากเปิดใช้งานแอพ Sandbox คุณจะเห็น
[Key] com.apple.security.app-sandbox
[Value]
[Bool] true
หรือคุณสามารถตรวจสอบได้ในขณะที่แอปกำลังทำงานโดยเปิดการตรวจสอบกิจกรรมและเพิ่มคอลัมน์ "Sandbox"
แอพพลิเคชั่นแอพพลิเคชั่นทั้งหมดจะต้องใช้แอพ Sandbox
หมายเหตุ: เบราว์เซอร์เช่น Google Chrome ใช้ Sandbox ของตัวเองเพื่อไม่ใช้แอพ Sandbox
ตรวจสอบว่าโปรแกรมใช้รันไทม์ที่แข็งตัวก่อนเรียกใช้โดยใช้คำสั่งต่อไปนี้:
codesign --display --verbose /path/to/bundle.app
หากเปิดใช้งานรันไทม์ที่แข็งตัวคุณจะเห็น flags=0x10000(runtime)
"รันไทม์" หมายถึงเปิดใช้งานรันไทม์ที่แข็งตัวแล้ว อาจมีธงอื่น ๆ แต่ธงรันไทม์คือสิ่งที่เรากำลังมองหาที่นี่
คุณสามารถเปิดใช้งานคอลัมน์ในการตรวจสอบกิจกรรมที่เรียกว่า "จำกัด " ซึ่งเป็นธงที่ป้องกันไม่ให้โปรแกรมฉีดรหัสผ่านตัวเชื่อมโยงแบบไดนามิกของ MacOS ตามหลักการแล้วสิ่งนี้ควรพูดว่า "ใช่"
แอพที่ได้รับการรับรองจะต้องใช้รันไทม์ที่แข็งตัว
หากต้องการสแกนแอปพลิเคชันด้วยผลิตภัณฑ์ AV หลายรายการและตรวจสอบพฤติกรรมของมันให้อัปโหลดไปยัง virustotal ก่อนที่จะทำงาน
MacOS มาพร้อมกับโปรแกรม AV ในตัวที่เรียกว่า XProtect XProtect ทำงานในพื้นหลังโดยอัตโนมัติและอัปเดตลายเซ็นที่ใช้ในการตรวจจับมัลแวร์โดยไม่ต้องทำอะไรเลย หากตรวจพบมัลแวร์ที่ทำงานอยู่แล้วมันจะทำงานเพื่อลบและลดลงเช่นเดียวกับโปรแกรม AV อื่น ๆ
แอปพลิเคชันเช่น blockblock หรือ maclaunch.sh อาจช่วยป้องกันมัลแวร์ถาวร
โปรแกรม ป้องกันไวรัส ที่ติดตั้งในพื้นที่โดยทั่วไปเป็นดาบสองคม: พวกเขาอาจจับมัลแวร์ "สวนวาไรตี้" แต่ยังอาจเพิ่มพื้นผิวการโจมตีสำหรับฝ่ายตรงข้ามที่ซับซ้อนเนื่องจากโหมดการทำงานที่ได้รับการยกเว้น โดยทั่วไปแล้วพวกเขายังโทรศัพท์กลับบ้านเพื่อส่งตัวอย่างเพื่อจับมัลแวร์ใหม่ล่าสุด นี่อาจเป็นปัญหาความเป็นส่วนตัว
ดู Sophail: ใช้การโจมตีแอนติไวรัส (PDF) การวิเคราะห์และการแสวงประโยชน์จากช่องโหว่ ESET ซอฟต์แวร์ความปลอดภัยที่เป็นที่นิยมมาภายใต้การโจมตีของ NSA และ GCHQ อย่างไม่หยุดยั้งและวิธีการที่อิสราเอลจับแฮ็กเกอร์รัสเซียได้
Gatekeeper พยายามป้องกันไม่ให้แอพที่ไม่ได้ทำงาน
หากคุณพยายามเรียกใช้แอพที่ไม่ได้รับการรับรองผู้รักษาประตูจะให้คำเตือนแก่คุณ สามารถข้ามได้อย่างง่ายดายหากคุณไปที่ ความเป็นส่วนตัวและความปลอดภัย เลื่อนลงไปที่ด้านล่างและคลิก เปิด บนแอปของคุณ จากนั้น Gatekeeper จะอนุญาตให้คุณเรียกใช้
GateKeeper ไม่ครอบคลุมไบนารีทั้งหมดเพียงแอพดังนั้นควรระมัดระวังเมื่อเรียกใช้ประเภทไฟล์อื่น ๆ
ในการตรวจสอบ SIP ถูกเปิดใช้งานให้ใช้ csrutil status
ซึ่งควรส่งคืน: System Integrity Protection status: enabled.
มิฉะนั้นเปิดใช้งาน SIP ผ่านโหมดการกู้คืน
MacOS แนบข้อมูลเมตา (แอตทริบิวต์ขยาย APFS) ไปยังไฟล์ที่ดาวน์โหลดซึ่งสามารถดูได้ด้วยคำสั่ง mdls
และ xattr
:
$ ls -l@ ~ /Downloads/TorBrowser-8.0.4-osx64_en-US.dmg
-rw-r--r--@ 1 drduh staff 63M Jan 1 12:00 TorBrowser-8.0.4-osx64_en-US.dmg
com.apple.metadata:kMDItemWhereFroms 46B
com.apple.quarantine 57B
$ mdls ~ /Downloads/TorBrowser-8.0.4-osx64_en-US.dmg
kMDItemContentCreationDate = 2019-01-01 00:00:00 +0000
kMDItemContentCreationDate_Ranking = 2019-01-01 00:00:00 +0000
kMDItemContentModificationDate = 2019-01-01 00:00:00 +0000
kMDItemContentType = "com.apple.disk-image-udif"
kMDItemContentTypeTree = (
"public.archive",
"public.item",
"public.data",
"public.disk-image",
"com.apple.disk-image",
"com.apple.disk-image-udif"
)
kMDItemDateAdded = 2019-01-01 00:00:00 +0000
kMDItemDateAdded_Ranking = 2019-01-01 00:00:00 +0000
kMDItemDisplayName = "TorBrowser-8.0.4-osx64_en-US.dmg"
kMDItemFSContentChangeDate = 2019-01-01 00:00:00 +0000
kMDItemFSCreationDate = 2019-01-01 00:00:00 +0000
kMDItemFSCreatorCode = ""
kMDItemFSFinderFlags = 0
kMDItemFSHasCustomIcon = (null)
kMDItemFSInvisible = 0
kMDItemFSIsExtensionHidden = 0
kMDItemFSIsStationery = (null)
kMDItemFSLabel = 0
kMDItemFSName = "TorBrowser-8.0.4-osx64_en-US.dmg"
kMDItemFSNodeCount = (null)
kMDItemFSOwnerGroupID = 5000
kMDItemFSOwnerUserID = 501
kMDItemFSSize = 65840402
kMDItemFSTypeCode = ""
kMDItemInterestingDate_Ranking = 2019-01-01 00:00:00 +0000
kMDItemKind = "Disk Image"
kMDItemWhereFroms = (
"https://dist.torproject.org/torbrowser/8.0.4/TorBrowser-8.0.4-osx64_en-US.dmg",
"https://www.torproject.org/projects/torbrowser.html.en"
)
$ xattr -l ~ /Downloads/TorBrowser-8.0.4-osx64_en-US.dmg
com.apple.metadata:kMDItemWhereFroms:
00000000 62 70 6C 69 73 74 30 30 A2 01 02 5F 10 4D 68 74 |bplist00..._.Mht|
00000010 74 70 73 3A 2F 2F 64 69 73 74 2E 74 6F 72 70 72 |tps://dist.torpr|
00000020 6F 6A 65 63 74 2E 6F 72 67 2F 74 6F 72 62 72 6F |oject.org/torbro|
[...]
com.apple.quarantine: 0081;58519ffa;Google Chrome.app;1F032CAB-F5A1-4D92-84EB-CBECA971B7BC
คุณลักษณะข้อมูลเมตาสามารถลบออกได้ด้วยธง -d
:
xattr -d com.apple.metadata:kMDItemWhereFroms ~/Downloads/TorBrowser-8.0.4-osx64_en-US.dmg
xattr -d com.apple.quarantine ~/Downloads/TorBrowser-8.0.4-osx64_en-US.dmg
xattr -l ~/Downloads/TorBrowser-8.0.4-osx64_en-US.dmg
ข้อมูลเมตาและสิ่งประดิษฐ์อื่น ๆ อาจพบได้ในไดเรกทอรีรวมถึง แต่ไม่ จำกัด เพียง ~/Library/Preferences/
, ~/Library/Containers/<APP>/Data/Library/Preferences
/Library/Preferences
ด้านล่าง.
~/Library/Preferences/com.apple.sidebarlists.plist
มีรายการประวัติศาสตร์ของเล่มที่แนบมา ในการล้างให้ใช้คำสั่ง /usr/libexec/PlistBuddy -c "delete :systemitems:VolumesList" ~/Library/Preferences/com.apple.sidebarlists.plist
/Library/Preferences/com.apple.Bluetooth.plist
มีเมตาดาต้าบลูทู ธ รวมถึงประวัติอุปกรณ์ หากไม่ได้ใช้บลูทู ธ ข้อมูลเมตาสามารถล้างได้ด้วย:
sudo defaults delete /Library/Preferences/com.apple.Bluetooth.plist DeviceCache
sudo defaults delete /Library/Preferences/com.apple.Bluetooth.plist IDSPairedDevices
sudo defaults delete /Library/Preferences/com.apple.Bluetooth.plist PANDevices
sudo defaults delete /Library/Preferences/com.apple.Bluetooth.plist PANInterfaces
sudo defaults delete /Library/Preferences/com.apple.Bluetooth.plist SCOAudioDevices
/var/spool/cups
มีแคชงานเครื่องพิมพ์ถ้วย เพื่อล้างให้ใช้คำสั่ง:
sudo rm -rfv /var/spool/cups/c0*
sudo rm -rfv /var/spool/cups/tmp/*
sudo rm -rfv /var/spool/cups/cache/job.cache*
เพื่อล้างรายการอุปกรณ์ iOS ที่เชื่อมต่อให้ใช้:
sudo defaults delete /Users/$USER/Library/Preferences/com.apple.iPod.plist "conn:128:Last Connect"
sudo defaults delete /Users/$USER/Library/Preferences/com.apple.iPod.plist Devices
sudo defaults delete /Library/Preferences/com.apple.iPod.plist "conn:128:Last Connect"
sudo defaults delete /Library/Preferences/com.apple.iPod.plist Devices
sudo rm -rfv /var/db/lockdown/*
ข้อมูลภาพย่อของ Quicklook สามารถล้างได้โดยใช้คำสั่ง qlmanage -r cache
แต่สิ่งนี้เขียนไปยังไฟล์ resetreason
ในไดเรกทอรี Quicklook และระบุว่าแคช Quicklook ถูกล้างด้วยตนเอง ปิดการใช้งานแคชขนาดย่อด้วย qlmanage -r disablecache
นอกจากนี้ยังสามารถล้างได้โดยรับชื่อไดเรกทอรีด้วย getconf DARWIN_USER_CACHE_DIR
และ sudo getconf DARWIN_USER_CACHE_DIR
จากนั้นลบออก:
rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/exclusive
rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/index.sqlite
rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/index.sqlite-shm
rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/index.sqlite-wal
rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/resetreason
rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/thumbnails.data
ในทำนองเดียวกันสำหรับผู้ใช้รูท:
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/thumbnails.fraghandler
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/exclusive
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/index.sqlite
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/index.sqlite-shm
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/index.sqlite-wal
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/resetreason
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/thumbnails.data
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/thumbnails.fraghandler
ดูแคช 'Quicklook' อาจรั่วไหลข้อมูลที่เข้ารหัส
เพื่อล้างการตั้งค่า Finder:
defaults delete ~/Library/Preferences/com.apple.finder.plist FXDesktopVolumePositions
defaults delete ~/Library/Preferences/com.apple.finder.plist FXRecentFolders
defaults delete ~/Library/Preferences/com.apple.finder.plist RecentMoveAndCopyDestinations
defaults delete ~/Library/Preferences/com.apple.finder.plist RecentSearches
defaults delete ~/Library/Preferences/com.apple.finder.plist SGTRecentFileSearches
ไฟล์วินิจฉัยเพิ่มเติมอาจพบได้ในไดเรกทอรีต่อไปนี้ - แต่ควรใช้ความระมัดระวังก่อนที่จะลบออกเนื่องจากอาจทำลายการบันทึกหรือทำให้เกิดปัญหาอื่น ๆ :
/var/db/CoreDuet/
/var/db/diagnostics/
/var/db/systemstats/
/var/db/uuidtext/
/var/log/DiagnosticMessages/
MacOS เก็บข้อมูล Wi-Fi ที่ต้องการ (รวมถึงข้อมูลรับรอง) ใน NVRAM เพื่อล้างให้ใช้คำสั่งต่อไปนี้:
sudo nvram -d 36C28AB5-6566-4C50-9EBD-CBB920F83843:current-network
sudo nvram -d 36C28AB5-6566-4C50-9EBD-CBB920F83843:preferred-networks
sudo nvram -d 36C28AB5-6566-4C50-9EBD-CBB920F83843:preferred-count
MacOS อาจรวบรวมข้อมูลที่ละเอียดอ่อนเกี่ยวกับสิ่งที่คุณพิมพ์แม้ว่าพจนานุกรมผู้ใช้และคำแนะนำจะปิดอยู่ หากต้องการลบออกและป้องกันไม่ให้พวกเขาถูกสร้างขึ้นอีกครั้งให้ใช้คำสั่งต่อไปนี้:
rm -rfv "~/Library/LanguageModeling/*" "~/Library/Spelling/*" "~/Library/Suggestions/*"
chmod -R 000 ~/Library/LanguageModeling ~/Library/Spelling ~/Library/Suggestions
chflags -R uchg ~/Library/LanguageModeling ~/Library/Spelling ~/Library/Suggestions
เมตาดาต้ารองรับแอปพลิเคชัน QuickLook สามารถล้างและล็อคด้วยคำสั่งต่อไปนี้:
rm -rfv "~/Library/Application Support/Quick Look/*"
chmod -R 000 "~/Library/Application Support/Quick Look"
chflags -R uchg "~/Library/Application Support/Quick Look"
ข้อมูลเมตาการแก้ไขเอกสารถูกเก็บไว้ใน /.DocumentRevisions-V100
และสามารถล้างและล็อคด้วยคำสั่งต่อไปนี้ - ควรใช้ความระมัดระวังเนื่องจากอาจทำลายแอปพลิเคชันของ Apple หลัก:
sudo rm -rfv /.DocumentRevisions-V100/*
sudo chmod -R 000 /.DocumentRevisions-V100
sudo chflags -R uchg /.DocumentRevisions-V100
ข้อมูลเมตาของแอปพลิเคชันสถานะที่บันทึกไว้อาจถูกล้างและล็อคด้วยคำสั่งต่อไปนี้:
rm -rfv ~/Library/Saved Application State/*
rm -rfv ~/Library/Containers/<APPNAME>/Data/Library/Saved Application State
chmod -R 000 ~/Library/Saved Application State/
chmod -R 000 ~/Library/Containers/<APPNAME>/Data/Library/Saved Application State
chflags -R uchg ~/Library/Saved Application State/
chflags -R uchg ~/Library/Containers/<APPNAME>/Data/Library/Saved Application State
ข้อมูลเมตา Autosave สามารถล้างและล็อคด้วยคำสั่งต่อไปนี้:
rm -rfv "~/Library/Containers/<APP>/Data/Library/Autosave Information"
rm -rfv "~/Library/Autosave Information"
chmod -R 000 "~/Library/Containers/<APP>/Data/Library/Autosave Information"
chmod -R 000 "~/Library/Autosave Information"
chflags -R uchg "~/Library/Containers/<APP>/Data/Library/Autosave Information"
chflags -R uchg "~/Library/Autosave Information"
ฐานข้อมูล Siri Analytics ซึ่งถูกสร้างขึ้นแม้ว่าตัวแทนเรียกใช้งาน Siri จะถูกปิดใช้งานสามารถล้างและล็อคด้วยคำสั่งต่อไปนี้:
rm -rfv ~/Library/Assistant/SiriAnalytics.db
chmod -R 000 ~/Library/Assistant/SiriAnalytics.db
chflags -R uchg ~/Library/Assistant/SiriAnalytics.db
~/Library/Preferences/com.apple.iTunes.plist
มีข้อมูลเมตา iTunes ข้อมูลการค้นหา iTunes ล่าสุดอาจถูกล้างด้วยคำสั่งต่อไปนี้:
defaults delete ~/Library/Preferences/com.apple.iTunes.plist recentSearches
หากคุณไม่ใช้บริการที่เชื่อมโยงบัญชี Apple คีย์ต่อไปนี้อาจถูกล้างด้วยเช่นกันโดยใช้คำสั่งต่อไปนี้:
defaults delete ~/Library/Preferences/com.apple.iTunes.plist StoreUserInfo
defaults delete ~/Library/Preferences/com.apple.iTunes.plist WirelessBuddyID
สื่อทั้งหมดที่เล่นใน QuickTime Player สามารถพบได้ใน:
~/Library/Containers/com.apple.QuickTimePlayerX/Data/Library/Preferences/com.apple.QuickTimePlayerX.plist
ข้อมูลเมตาเพิ่มเติมอาจมีอยู่ในไฟล์ต่อไปนี้:
~/Library/Containers/com.apple.appstore/Data/Library/Preferences/com.apple.commerce.knownclients.plist
~/Library/Preferences/com.apple.commerce.plist
~/Library/Preferences/com.apple.QuickTimePlayerX.plist
สร้างรหัสผ่านที่แข็งแกร่งโดยใช้ urandom
และ tr
:
tr -dc '[:graph:]' < /dev/urandom | fold -w 20 | head -1
ผู้ช่วยรหัสผ่านใน การเข้าถึงพวงกุญแจ ยังสามารถสร้างข้อมูลรับรองที่ปลอดภัย
พิจารณาใช้ Diceware สำหรับรหัสผ่านที่น่าจดจำ
GNUPG ยังสามารถใช้ในการจัดการรหัสผ่านและไฟล์ที่เข้ารหัสอื่น ๆ (ดู DRDUH/PURSE และ DRDUH/PWD.SH)
ตรวจสอบให้แน่ใจว่าบัญชีออนไลน์ที่มีสิทธิ์ทั้งหมดเปิดใช้งานการรับรองความถูกต้องแบบหลายปัจจัย รูปแบบที่แข็งแกร่งที่สุดของการตรวจสอบความถูกต้องแบบหลายปัจจัยคือ WebAuthn ตามด้วยตัวตรวจสอบที่ใช้แอพและรหัสที่ใช้ SMS นั้นอ่อนแอที่สุด
Yubikey เป็นโทเค็นฮาร์ดแวร์ราคาไม่แพงพร้อมการสนับสนุน Webauthn นอกจากนี้ยังสามารถใช้ในการจัดเก็บปุ่มเข้ารหัสลับสำหรับการเข้ารหัส GNUPG และการตรวจสอบ SSH - ดู DRDUH/YUBIKEY -GUIDE
เข้ารหัสไฟล์ในเครื่องก่อนที่จะสำรองข้อมูลไปยังสื่อภายนอกหรือบริการออนไลน์
หากรูปแบบการคุกคามของคุณอนุญาตคุณควรทำตามโมเดลสำรอง 3-2-1 ตามที่ระบุโดย CISA เก็บ 3 สำเนา: สำรองต้นฉบับและสองสำรอง เก็บสำรองไว้ใน 2 ประเภทสื่อที่แตกต่างกันเช่นในไดรฟ์ท้องถิ่นและที่เก็บข้อมูลบนคลาวด์ จัดเก็บ 1 สำเนานอกสถานที่
Time Machine เป็นเครื่องมือในตัวสำหรับการจัดการการสำรองข้อมูลบน MacOS รับไดรฟ์ภายนอกหรือไดรฟ์เครือข่ายเพื่อสำรองข้อมูลและเข้ารหัสการสำรองข้อมูลของคุณ
GNUPG สามารถใช้กับรหัสผ่านแบบคงที่หรือคีย์สาธารณะ (พร้อมคีย์ส่วนตัวที่เก็บไว้ใน Yubikey)
บีบอัดและเข้ารหัสไดเรกทอรีโดยใช้รหัสผ่าน:
tar zcvf - ~/Downloads | gpg -c > ~/Desktop/backup-$(date +%F-%H%M).tar.gz.gpg
ถอดรหัสและบีบอัดไดเรกทอรี:
gpg -o ~/Desktop/decrypted-backup.tar.gz -d ~/Desktop/backup-*.tar.gz.gpg
tar zxvf ~/Desktop/decrypted-backup.tar.gz
สามารถสร้างปริมาตรที่เข้ารหัสได้โดยใช้ ดิสก์ยูทิลิตี้ หรือ hdiutil
:
hdiutil create ~/Desktop/encrypted.dmg -encryption -size 50M -volname "secretStuff"
hdiutil mount ~/Desktop/encrypted.dmg
cp -v ~/Documents/passwords.txt /Volumes/secretStuff
hdiutil eject /Volumes/secretStuff
แอปพลิเคชันและบริการเพิ่มเติมที่เสนอการสำรองข้อมูล ได้แก่ :
MacOS จำจุดเชื่อมต่อที่เชื่อมต่อได้ เช่นเดียวกับอุปกรณ์ไร้สายทั้งหมด MAC จะออกอากาศชื่อจุดเชื่อมต่อทั้งหมดที่จำได้ (เช่น MyHomenetwork ) ทุกครั้งที่มองหาเครือข่ายเช่นเมื่อตื่นจากการนอนหลับ
นี่คือความเสี่ยงด้านความเป็นส่วนตัวดังนั้นลบเครือข่ายออกจากรายการใน การตั้งค่าระบบ > เครือข่าย > ขั้นสูง เมื่อไม่จำเป็นต้องใช้อีกต่อไป
ดูสัญญาณจากฝูงชน: การเปิดเผยความสัมพันธ์ทางสังคมผ่านโพรบสมาร์ทโฟน (PDF)
ข้อมูล Wi-Fi ที่บันทึกไว้ (SSID, การเชื่อมต่อล่าสุด ฯลฯ ) สามารถพบได้ใน /Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist
คุณสามารถมีที่อยู่ MAC แบบสุ่มที่แตกต่างกันสำหรับแต่ละเครือข่ายที่หมุนไปตามกาลเวลา สิ่งนี้จะช่วยป้องกันไม่ให้คุณถูกติดตามผ่านเครือข่ายและบนเครือข่ายเดียวกันเมื่อเวลาผ่านไป
MacOS เก็บ Wi-Fi SSIDS และรหัสผ่านใน NVRAM เพื่อให้โหมดการกู้คืนสามารถเข้าถึงอินเทอร์เน็ตได้ ตรวจสอบให้แน่ใจว่าได้ล้าง NVRAM หรือยกเลิกการตรวจสอบ Mac ของคุณจากบัญชี Apple ของคุณซึ่งจะล้าง NVRAM ก่อนที่จะผ่าน Mac ไปตาม การรีเซ็ต SMC จะล้าง NVRAM บางส่วน แต่ไม่ใช่ทั้งหมด
ในที่สุดการป้องกัน WEP บนเครือข่ายไร้สายนั้นไม่ปลอดภัยและคุณควรเชื่อมต่อกับเครือข่ายที่ได้รับการป้องกัน WPA3 เมื่อเป็นไปได้เท่านั้น
สำหรับการเชื่อมต่อ SSH ขาออกให้ใช้คีย์ฮาร์ดแวร์หรือรหัสผ่านที่ป้องกันด้วยรหัสผ่านตั้งค่าโฮสต์ระยะไกลและพิจารณาการแฮชเพื่อเพิ่มความเป็นส่วนตัว ดู drduh/config/ssh_config สำหรับตัวเลือกไคลเอนต์ที่แนะนำ
นอกจากนี้คุณยังสามารถใช้ SSH เพื่อสร้างอุโมงค์ที่เข้ารหัสเพื่อส่งทราฟฟิกผ่าน VPN
ตัวอย่างเช่นการใช้ privoxy ที่ทำงานบนพอร์ตโฮสต์ระยะไกล 8118:
ssh -C -L 5555:127.0.0.1:8118 [email protected]
sudo networksetup -setwebproxy "Wi-Fi" 127.0.0.1 5555
sudo networksetup -setsecurewebproxy "Wi-Fi" 127.0.0.1 5555
หรือใช้การเชื่อมต่อ SSH เป็นพร็อกซีถุงเท้า:
ssh -NCD 3000 [email protected]
โดยค่าเริ่มต้น MacOS ไม่ ได้เปิดใช้งาน SSHD หรือ การเข้าสู่ระบบระยะไกล
เพื่อเปิดใช้งาน SSHD และอนุญาตให้เชื่อมต่อ SSH ที่เข้ามา:
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
หรือใช้ การตั้งค่าระบบ > เมนู การแชร์
หากเปิดใช้งาน SSHD ให้แน่ใจว่าได้ปิดการใช้งานการตรวจสอบรหัสผ่านและพิจารณาการกำหนดค่าของคุณให้ร้อนขึ้น ดู drduh/config/sshd_config สำหรับตัวเลือกที่แนะนำ
ยืนยันว่า SSHD กำลังทำงานอยู่หรือไม่:
sudo lsof -Pni TCP:22
รักษาความปลอดภัยให้กับ Mac ของคุณตลอดเวลาและอย่าปล่อยให้มันไม่ได้รับการดูแลในที่สาธารณะ
ผู้โจมตีที่มีทักษะที่มีการเข้าถึงทางกายภาพที่ไม่ได้รับการดูแลสามารถติดตั้ง Keylogger ฮาร์ดแวร์เพื่อบันทึกการกดแป้นพิมพ์ทั้งหมดของคุณ การใช้ Mac ที่มีแป้นพิมพ์ในตัวหรือแป้นพิมพ์บลูทู ธ ทำให้การโจมตีครั้งนี้ยากขึ้นเนื่องจากการโจมตีครั้งนี้ได้รับการออกแบบให้เสียบระหว่างคีย์บอร์ด USB และคอมพิวเตอร์ของคุณ
เพื่อป้องกันการโจรกรรมทางกายภาพในระหว่างการใช้งานคุณสามารถใช้เครื่องมือต่อต้าน "Buskill หรือ SwiftGuard (อัปเดต USBKILL พร้อมส่วนต่อประสานกราฟิกผู้ใช้) ทั้งหมดตอบสนองต่อเหตุการณ์ USB และสามารถปิดคอมพิวเตอร์ของคุณได้ทันทีหากอุปกรณ์ของคุณถูกแยกออกจากคุณหรือเชื่อมต่ออุปกรณ์ที่ไม่ได้รับอนุญาต
พิจารณาซื้อหน้าจอความเป็นส่วนตัว/ตัวกรองเพื่อใช้ในที่สาธารณะ
ซีลทาเล็บและซีลเล็บสามารถนำไปใช้กับส่วนประกอบเพื่อตรวจจับการดัดแปลง
MACOS มีความสามารถในการตรวจสอบ OpenBSM (ความปลอดภัยขั้นพื้นฐาน) ที่ทรงพลัง คุณสามารถใช้เพื่อตรวจสอบการดำเนินการตามกระบวนการกิจกรรมเครือข่ายและอื่น ๆ อีกมากมาย
หากต้องการบันทึกการตรวจสอบหางให้ใช้ยูทิลิตี้ praudit
:
$ sudo praudit -l /dev/auditpipe
header,201,11,execve(2),0,Thu Sep 1 12:00:00 2015, + 195 msec,exec arg,/Applications/.evilapp/rootkit,path,/Applications/.evilapp/rootkit,path,/Applications/.evilapp/rootkit,attribute,100755,root,wheel,16777220,986535,0,subject,drduh,root,wheel,root,wheel,412,100005,50511731,0.0.0.0,return,success,0,trailer,201,
header,88,11,connect(2),0,Thu Sep 1 12:00:00 2015, + 238 msec,argument,1,0x5,fd,socket-inet,2,443,173.194.74.104,subject,drduh,root,wheel,root,wheel,326,100005,50331650,0.0.0.0,return,failure : Operation now in progress,4354967105,trailer,88
header,111,11,OpenSSH login,0,Thu Sep 1 12:00:00 2015, + 16 msec,subject_ex,drduh,drduh,staff,drduh,staff,404,404,49271,::1,text,successful login drduh,return,success,0,trailer,111,
ดูหน้าคู่มือสำหรับ audit
, praudit
, audit_control
และไฟล์อื่น ๆ ใน /etc/security
หมายเหตุ ถึงแม้ว่า man audit
กล่าวว่าการตั้งค่าสถานะ -s
จะซิงโครไนซ์การกำหนดค่าการตรวจสอบ แต่ก็จำเป็นที่จะต้องรีบูตสำหรับการเปลี่ยนแปลงเพื่อให้มีผล
ดูบทความเกี่ยวกับ ilostmynotes.blogspot.com และ derflounder.wordpress.com สำหรับข้อมูลเพิ่มเติม
หมายเหตุ การป้องกันความสมบูรณ์ของระบบรบกวนด้วย DTRACE ดังนั้นจึงไม่สามารถใช้งานได้ในรุ่น MacOS ล่าสุดโดยไม่ต้องปิดการใช้งาน SIP
iosnoop
ตรวจสอบดิสก์ i/oopensnoop
Monitors เปิดไฟล์execsnoop
ตรวจสอบการดำเนินการของกระบวนการerrinfo
ล้มเหลวในการโทรของระบบdtruss
ตรวจสอบการโทรทุกระบบ ดู man -k dtrace
สำหรับข้อมูลเพิ่มเติม
ps -ef
แสดงข้อมูลเกี่ยวกับกระบวนการที่กำลังทำงานทั้งหมด
คุณยังสามารถดูกระบวนการด้วย การตรวจสอบกิจกรรม
launchctl list
และรายการ sudo launchctl list
รายการโหลดและเรียกใช้ผู้ใช้และระบบเปิดตัว Daemons และตัวแทน
แสดงรายการไฟล์เครือข่ายเปิด:
sudo lsof -Pni
รายการเนื้อหาของโครงสร้างข้อมูลที่เกี่ยวข้องกับเครือข่ายต่างๆ:
sudo netstat -atln
Wireshark สามารถใช้งานได้จากบรรทัดคำสั่งด้วย tshark
ตรวจสอบคำค้นหาและการตอบกลับ DNS:
tshark -Y "dns.flags.response == 1" -Tfields
-e frame.time_delta
-e dns.qry.name
-e dns.a
-Eseparator=,
ตรวจสอบคำขอและการตอบกลับ HTTP:
tshark -Y "http.request or http.response" -Tfields
-e ip.dst
-e http.request.full_uri
-e http.request.method
-e http.response.code
-e http.response.phrase
-Eseparator=/s
ตรวจสอบใบรับรอง X509 (SSL/TLS):
tshark -Y "ssl.handshake.certificate" -Tfields
-e ip.src
-e x509sat.uTF8String
-e x509sat.printableString
-e x509sat.universalString
-e x509sat.IA5String
-e x509sat.teletexString
-Eseparator=/s -Equote=d
Google/Santa เป็นซอฟต์แวร์รักษาความปลอดภัยที่พัฒนาขึ้นสำหรับ Fleet Macintosh Corporate ของ Google และแหล่งที่มาเปิด
ซานต้าเป็นระบบการอนุญาตแบบไบนารีและการเข้าถึงไฟล์สำหรับ MacOS ประกอบด้วยส่วนขยายของระบบที่ตรวจสอบการประหารชีวิต, daemon ที่ตัดสินใจดำเนินการตามเนื้อหาของฐานข้อมูลท้องถิ่นตัวแทน GUI ที่แจ้งให้ผู้ใช้ทราบในกรณีของการตัดสินใจบล็อกและยูทิลิตี้บรรทัดคำสั่งสำหรับการจัดการระบบและ การซิงโครไนซ์ฐานข้อมูลกับเซิร์ฟเวอร์
ซานต้าใช้ API การอนุญาตเคอร์เนลเพื่อตรวจสอบและอนุญาต/ไม่อนุญาตให้มีการดำเนินการไบนารีในเคอร์เนล ไบนารีสามารถเป็นสีขาวหรือสีดำโดยแฮชที่ไม่ซ้ำกันหรือใบรับรองนักพัฒนาที่ลงนาม ซานต้าสามารถใช้เพื่ออนุญาตให้ใช้งานรหัสที่เชื่อถือได้เท่านั้นหรือไปยังบัญชีมัลแวร์ที่รู้จักกันดีจาก Blacklist จากการดำเนินการบน Mac คล้ายกับซอฟต์แวร์ BIT9 สำหรับ Windows
หมายเหตุ ซานต้าไม่มีส่วนต่อประสานกราฟิกผู้ใช้สำหรับการจัดการกฎ คำแนะนำต่อไปนี้สำหรับผู้ใช้ขั้นสูงเท่านั้น!
ในการติดตั้งซานต้าให้ไปที่หน้ารีลีสและดาวน์โหลดภาพดิสก์ล่าสุด Mount It และติดตั้งแพ็คเกจที่มีอยู่:
hdiutil mount ~/Downloads/santa-0.9.20.dmg
sudo installer -pkg /Volumes/santa-0.9.20/santa-0.9.20.pkg -tgt /
โดยค่าเริ่มต้นซานต้าจะติดตั้งในโหมด "มอนิเตอร์" (หมายถึงไม่มีอะไรถูกบล็อกเท่านั้นบันทึกไว้เท่านั้น) และมาพร้อมกับสองกฎ: หนึ่งสำหรับ Apple Binaries และอีกอันสำหรับซอฟต์แวร์ซานต้าเอง
ตรวจสอบว่าซานต้ากำลังทำงานอยู่และโหลดโมดูลเคอร์เนล:
$ santactl status
>>> Daemon Info
Mode | Monitor
File Logging | No
Watchdog CPU Events | 0 (Peak: 0.00%)
Watchdog RAM Events | 0 (Peak: 0.00MB)
>>> Kernel Info
Kernel cache count | 0
>>> Database Info
Binary Rules | 0
Certificate Rules | 2
Events Pending Upload | 0
$ ps -ef | grep " [s]anta "
0 786 1 0 10:01AM ?? 0:00.39 /Library/Extensions/santa-driver.kext/Contents/MacOS/santad --syslog
$ kextstat | grep santa
119 0 0xffffff7f822ff000 0x6000 0x6000 com.google.santa-driver (0.9.14) 693D8E4D-3161-30E0-B83D-66A273CAE026 <5 4 3 1>
สร้างกฎบัญชีดำเพื่อป้องกันไม่ให้ iTunes ดำเนินการ:
$ sudo santactl rule --blacklist --path /Applications/iTunes.app/
Added rule for SHA-256: e1365b51d2cb2c8562e7f1de36bfb3d5248de586f40b23a2ed641af2072225b3.
พยายามเปิดตัว iTunes - มันจะถูกบล็อก
$ open /Applications/iTunes.app/
LSOpenURLsWithRole() failed with error -10810 for the file /Applications/iTunes.app.
เพื่อลบกฎ:
$ sudo santactl rule --remove --path /Applications/iTunes.app/
Removed rule for SHA-256: e1365b51d2cb2c8562e7f1de36bfb3d5248de586f40b23a2ed641af2072225b3.
เปิด iTunes:
$ open /Applications/iTunes.app/
[iTunes will open successfully]
สร้างโปรแกรมตัวอย่าง C ใหม่:
$ cat << EOF > foo.c
> # include <stdio.h>
> main () { printf( " Hello Worldn”); }
> EOF
รวบรวมโปรแกรมด้วย GCC (ต้องมีการติดตั้ง XCode หรือเครื่องมือบรรทัดคำสั่ง):
$ gcc -o foo foo.c
$ file foo
foo: Mach-O 64-bit executable x86_64
$ codesign -d foo
foo: code object is not signed at all
เรียกใช้:
$ ./foo
Hello World
สลับซานต้าเข้าสู่โหมด "ล็อค" ซึ่งอนุญาตให้ใช้ไบนารีที่ได้รับอนุญาตเท่านั้น:
$ sudo defaults write /var/db/santa/config.plist ClientMode -int 2
พยายามเรียกใช้ไบนารีที่ไม่ได้ลงนาม:
$ ./foo
bash: ./foo: Operation not permitted
Santa
The following application has been blocked from executing
because its trustworthiness cannot be determined.
Path: /Users/demouser/foo
Identifier: 4e11da26feb48231d6e90b10c169b0f8ae1080f36c168ffe53b1616f7505baed
Parent: bash (701)
เพื่ออนุญาตให้มีการกำหนดไบนารีให้กำหนดผลรวม SHA-256:
$ santactl fileinfo /Users/demouser/foo
Path : /Users/demouser/foo
SHA-256 : 4e11da26feb48231d6e90b10c169b0f8ae1080f36c168ffe53b1616f7505baed
SHA-1 : 4506f3a8c0a5abe4cacb98e6267549a4d8734d82
Type : Executable (x86-64)
Code-signed : No
Rule : Blacklisted (Unknown)
เพิ่มกฎใหม่:
$ sudo santactl rule --whitelist --sha256 4e11da26feb48231d6e90b10c169b0f8ae1080f36c168ffe53b1616f7505baed
Added rule for SHA-256: 4e11da26feb48231d6e90b10c169b0f8ae1080f36c168ffe53b1616f7505baed.
เรียกใช้:
$ ./foo
Hello World
อนุญาตและทำงานได้!
แอปพลิเคชันสามารถอนุญาตให้นักพัฒนาใบรับรองได้ ตัวอย่างเช่นดาวน์โหลดและเรียกใช้ Google Chrome - มันจะถูกบล็อกโดย Santa ในโหมด "Lockdown":
$ curl -sO https://dl.google.com/chrome/mac/stable/GGRO/googlechrome.dmg
$ hdiutil mount googlechrome.dmg
$ cp -r /Volumes/Google Chrome/Google Chrome.app /Applications/
$ open /Applications/Google Chrome.app/
LSOpenURLsWithRole() failed with error -10810 for the file /Applications/Google Chrome.app.
อนุญาตแอปพลิเคชันโดยใบรับรองนักพัฒนา (รายการแรกในห่วงโซ่การลงนาม):
$ santactl fileinfo /Applications/Google Chrome.app/
Path : /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
SHA-256 : 0eb08224d427fb1d87d2276d911bbb6c4326ec9f74448a4d9a3cfce0c3413810
SHA-1 : 9213cbc7dfaaf7580f3936a915faa56d40479f6a
Bundle Name : Google Chrome
Bundle Version : 2883.87
Bundle Version Str : 55.0.2883.87
Type : Executable (x86-64)
Code-signed : Yes
Rule : Blacklisted (Unknown)
Signing Chain:
1. SHA-256 : 15b8ce88e10f04c88a5542234fbdfc1487e9c2f64058a05027c7c34fc4201153
SHA-1 : 85cee8254216185620ddc8851c7a9fc4dfe120ef
Common Name : Developer ID Application: Google Inc.
Organization : Google Inc.
Organizational Unit : EQHXZ8M8AV
Valid From : 2012/04/26 07:10:10 -0700
Valid Until : 2017/04/27 07:10:10 -0700
2. SHA-256 : 7afc9d01a62f03a2de9637936d4afe68090d2de18d03f29c88cfb0b1ba63587f
SHA-1 : 3b166c3b7dc4b751c9fe2afab9135641e388e186
Common Name : Developer ID Certification Authority
Organization : Apple Inc.
Organizational Unit : Apple Certification Authority
Valid From : 2012/02/01 14:12:15 -0800
Valid Until : 2027/02/01 14:12:15 -0800
3. SHA-256 : b0b1730ecbc7ff4505142c49f1295e6eda6bcaed7e2c68c5be91b5a11001f024
SHA-1 : 611e5b662c593a08ff58d14ae22452d198df6c60
Common Name : Apple Root CA
Organization : Apple Inc.
Organizational Unit : Apple Certification Authority
Valid From : 2006/04/25 14:40:36 -0700
Valid Until : 2035/02/09 13:40:36 -0800
ในกรณีนี้ 15b8ce88e10f04c88a5542234fbdfc1487e9c2f64058a05027c7c34fc4201153
เป็น SHA -256 ของใบรับรองผู้พัฒนา Apple ของ Google
$ sudo santactl rule --whitelist --certificate --sha256 15b8ce88e10f04c88a5542234fbdfc1487e9c2f64058a05027c7c34fc4201153
Added rule for SHA-256: 15b8ce88e10f04c88a5542234fbdfc1487e9c2f64058a05027c7c34fc4201153.
ตอนนี้ Google Chrome ควรเปิดตัวและการอัปเดตที่ตามมาของแอปพลิเคชันจะยังคงทำงานต่อไปตราบใดที่ใบรับรองการลงนามในรหัสไม่เปลี่ยนแปลงหรือหมดอายุ
เพื่อปิดการใช้งานโหมด "ล็อค":
sudo defaults delete /var/db/santa/config.plist ClientMode
ดู /var/log/santa.log
เพื่อตรวจสอบอนุญาตและปฏิเสธการตัดสินใจการดำเนินการ
เซิร์ฟเวอร์บันทึกและการกำหนดค่าสำหรับซานต้ามีอยู่ใน Zentral โซลูชันการตรวจสอบเหตุการณ์โอเพ่นซอร์สและเซิร์ฟเวอร์ TLS สำหรับ OsQuery และ Santa
Zentral จะรองรับซานต้าในโหมดการตรวจสอบและล็อค ลูกค้าจะต้องลงทะเบียนกับการเชื่อมต่อ TLS เพื่อซิงค์กฎซานต้าเหตุการณ์ซานต้าทั้งหมดจากจุดสิ้นสุดจะถูกรวบรวมและเข้าสู่ระบบใน Zentral เหตุการณ์ซานต้าสามารถกระตุ้นการกระทำและการแจ้งเตือนจากภายในกรอบ Zentral
หมายเหตุ Python, Bash และล่ามอื่น ๆ ได้รับอนุญาต (เนื่องจากพวกเขาลงนามโดยใบรับรองนักพัฒนาของ Apple) ดังนั้นซานต้าจะไม่สามารถบล็อกสคริปต์ดังกล่าวจากการดำเนินการ ดังนั้นโปรแกรมที่ไม่ใช่ไบนารีที่มีศักยภาพซึ่งปิดใช้งานซานต้าจึงเป็นจุดอ่อน (ไม่ใช่ช่องโหว่เนื่องจากเป็นเช่นนั้นโดยการออกแบบ) ที่จะจดบันทึก
ปิดใช้งานการวินิจฉัยและข้อมูลการใช้งาน
หากคุณต้องการเล่น เพลง หรือดู วิดีโอ ให้ใช้ QuickTime Player เครื่องเล่นสื่อในตัวใน MacOS ใช้แอพ Sandbox รันไทม์ที่แข็งตัวและได้รับประโยชน์จากปริมาณระบบที่ลงนามเป็นส่วนหนึ่งของระบบฐาน
หากคุณต้องการใช้ torrents ให้ใช้การส่งสัญญาณซึ่งฟรีและโอเพ่นซอร์ส (หมายเหตุ: เช่นซอฟต์แวร์ทั้งหมดแม้กระทั่งโครงการโอเพนซอร์ซมัลแวร์อาจยังคงหาทางเข้า) นอกจากนี้คุณยังอาจต้องการใช้รายการบล็อกเพื่อหลีกเลี่ยงการมองด้วยโฮสต์ที่ไม่ดีที่รู้จัก - ดูรายการบล็อกที่ดีที่สุดสำหรับการส่งและ Johntyree/3331662
จัดการตัวจัดการไฟล์เริ่มต้น
ตรวจสอบบันทึกระบบด้วยแอปพลิเคชัน คอนโซล หรือ syslog -w
หรือ /usr/bin/log stream
คำสั่ง
ตั้งค่าหน้าจอของคุณเพื่อล็อคทันทีที่สกรีนเซฟเวอร์เริ่มต้น:
defaults write com.apple.screensaver askForPassword -int 1
defaults write com.apple.screensaver askForPasswordDelay -int 0
เปิดเผยไฟล์ที่ซ่อนอยู่และโฟลเดอร์ไลบรารีใน Finder:
defaults write com.apple.finder AppleShowAllFiles -bool true
chflags nohidden ~/Library
แสดงส่วนขยายชื่อไฟล์ทั้งหมด (เพื่อให้ "evil.jpg.app" ไม่สามารถปลอมตัวได้อย่างง่ายดาย)
defaults write NSGlobalDomain AppleShowAllExtensions -bool true
อย่าเริ่มต้นในการบันทึกเอกสารเป็น iCloud:
defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool false
เปิดใช้งานรายการคีย์บอร์ดที่ปลอดภัยในเทอร์มินัล (เว้นแต่คุณจะใช้ Yubikey หรือแอปพลิเคชันเช่น Textexpander)
ปิดใช้งาน Crash Reporter (กล่องโต้ตอบที่ปรากฏหลังจากแอปพลิเคชันขัดข้องและแจ้งให้รายงานปัญหาต่อ Apple):
defaults write com.apple.CrashReporter DialogType none
ปิดการโฆษณา Bonjour Multicast:
คำเตือน: สิ่งนี้จะทำให้เกิดปัญหาเกี่ยวกับการออกอากาศและการออกอากาศ!
sudo defaults write /Library/Preferences/com.apple.mDNSResponder.plist NoMulticastAdvertisements -bool YES
ปิดการใช้งานคุณสมบัติ Handoff และ Bluetooth หากไม่จำเป็น
ตรวจสอบว่าแอพของคุณถูก sandbox ในการตรวจสอบกิจกรรม
MacOS มาพร้อมกับบรรทัดนี้ใน /etc/sudoers
:
Defaults env_keep += "HOME MAIL"
ซึ่งหยุด sudo จากการเปลี่ยนตัวแปรบ้านเมื่อคุณยกระดับสิทธิพิเศษ ซึ่งหมายความว่ามันจะดำเนินการเป็นรูท ZSH dotfiles ในไดเรกทอรีบ้านผู้ใช้ที่ไม่ใช่รูทเมื่อคุณเรียกใช้ "sudo zsh" ขอแนะนำให้แสดงความคิดเห็นบรรทัดนี้เพื่อหลีกเลี่ยงวิธีที่ง่ายสำหรับมัลแวร์หรือผู้โจมตีในท้องถิ่นเพื่อเพิ่มสิทธิ์ในการรูท
หากคุณต้องการรักษาความสะดวกสบายของผู้ใช้รูทที่มีไดเรกทอรีโฮมสอร์
export HOME=/Users/blah
ตั้งค่า Umask ที่กำหนดเอง:
sudo launchctl config user umask 077
รีบูตสร้างไฟล์ใน Finder และตรวจสอบการอนุญาต (MacOS Default อนุญาตให้อ่านกลุ่ม/อื่น ๆ 'การเข้าถึง)::
$ ls -ld umask *
drwx------ 2 kevin staff 64 Dec 4 12:27 umask_testing_dir
-rw-------@ 1 kevin staff 2026566 Dec 4 12:28 umask_testing_file