Hiểu về cơ chế bảo mật rootless của OS X El Capitan: giới hạn cả quyền root, hạn chế malware

Duy Luân
21/10/2015 22:47Phản hồi: 86
Hiểu về cơ chế bảo mật rootless của OS X El Capitan: giới hạn cả quyền root, hạn chế malware
Trong OS X El Capitan, Apple đã đưa ra một tính năng bảo mật mới rất quan trọng mang tên System Integrity Protection (còn có tên là rootless). Nó đảm bảo rằng các ứng dụng bên thứ ba sẽ không được phép ghi dữ liệu vào các folder quan trọng của hệ thống, cũng như không được can thiệp vào những phần mềm đang chạy. Cũng nhờ vào cơ chế mới mà các driver giả mã, phần mềm mã độc sẽ ít có đất sống hơn trong El Capitan. Trong bài này mời các bạn tìm hiểu kĩ hơn về SIP, tác dụng của nó và cách vô hiệu hóa khi cần thiết.

System Integrity Protection - khi root cũng chẳng có quyền


Trong những hệ thống Linux và UNIX, bao gồm cả OS X, root là người dùng có quyền cao nhất, quyền tối thượng đối với hệ thống và họ có thể làm tất cả những gì họ muốn. Chính vì vậy mà root còn được gọi là super user. Những lệnh Linux khi bắt đầu bằng chữ sudo hay đăng nhập bằng lệnh su sẽ cho phép bạn truy cập bằng quyền root và bạn tha hồ quậy phá.

Tuy nhiên, với OS X El Capitan thì ngay cả khi bạn đã có quyền root trong tay, bạn cũng không được quyền làm một số việc nhất định, ví dụ như ghi / xóa vào các file hoặc folder cốt lõi của hệ thống, hay can thiệp vào các tiến trình (process) quan trọng. Tính năng này được Apple gọi chính thức bằng cái tên "System Integrity Protection" (SIP), đôi khi còn được nhắc đến bằng chữ "rootless". Apple đưa ra SIP nhằm đảm bảo rằng không một ứng dụng bên thứ ba nào hoặc các phần mềm mã độc được quyền can thiệp vào OS X.

Rootless cũng có mặt trên iOS 9 chứ không chỉ là OS X El Capitan. Ban đầu, có vẻ như là rootless không thể được phá bỏ nhưng rồi thì các nhóm hacker hiện đã làm được điều đó để jailbreak máy iOS 9. Còn với người dùng thông thường không jailbreak thì việc đưa rootless lên iOS 9 chỉ có tác dụng bảo vệ dự phòng, không gây ra khó khăn hay thay đổi gì.


Vì sao Apple lại nghĩ đến việc hạn chế quyền của root? Tại hội nghị WWDC diễn ra hồi tháng 6/2015, kĩ sư Pierre-Olivier Martel của Apple đã mô tả rằng quyền không giới hạn của người dùng root / super user chính là một trong những điểm yếu còn lại của hệ thống. "Bất kì phần mềm nào có password của root đều có quyền kiểm soát toàn bộ máy tính của bạn".

Ông nói thêm rằng bởi vì hầu hết người dùng OS X đều chỉ tạo 1 tài khoản trên máy nên mặc định tài khoản này cũng có đầy đủ quyền của root. Nếu sơ ý, người dùng có thể cấp quyền root cho một phần mềm mã độc khi được nó yêu cầu mà không hề biết đến sự mất an toàn đang đe dọa chính mình. Ngoài ra, người dùng thường không đặt password hoặc password quá đơn giản nên sẽ dẫn đến việc bị dò ra mật khẩu một cách dễ dàng và chiếm lấy quyền root trong tích tắc. Chính vì thế mà SIP mới xuất hiện.

Thực chất thì việc giới hạn quyền root cũng đã có từ trước chứ không phải quá mới mẻ. Từ OS X Leopard 10.5 về trước, Apple cũng áp dụng cơ chế bảo mật tương tự và nó là tính năng của BSD, hệ điều hành UNIX mà OS X có xài một phần.

Hạn chế ghi vào các thư mục hệ thống

Vậy thì những thư mục nào bị hạn chế? Chúng gồm có:
  • /System
  • /System
  • /bin
  • /usr (nhưng không áp dụng cho “/usr/local”)
  • /sbin
Để thử SIP với các folder trên rất đơn giản, bạn chỉ cần mở cửa sổ Terminal và thử lệnh sudo mkdir TestTinhte để tạo folder mới trong thư mục /System. Bạn sẽ nhận được thông báo rằng bạn không được phép làm chuyện này, ngay cả khi đã có chữ sudo (tức chạy dưới quyền root).

system-integrity-protection-mac.png

Nếu bạn có những file, folder "lạ" đã cài vào những thư mục nói trên từ trước khi update lên OS X El Capitan thì sao? Khi đó, hệ điều hành sẽ di chuyển những file này vào thư mục /Library/SystemMigration để bạn khôi phục lại khi cần thiết, còn 6 thư mục nói trên thì sẽ y nguyên như cách mà Apple cấu trúc chúng, không ai được xâm phạm.

Không còn được phép chèn dữ liệu vào tiến trình đang chạy

Quảng cáo



EasySIMBL là một công cụ rất mạnh cho phép bạn tùy biến gần như mọi thứ trên máy Mac: từ điển, dock, bản đồ... cho đến thanh status và giao diện phần mềm. Thậm chí phần mềm này còn có thể bổ sung các chức năng mới vào cho OS X nữa. Ví dụ, một extension của EasySIMBL cho phép ứng dụng Twitter chính chủ trên OS X hiển thị hình ảnh nhúng từ Instagram, vốn không có sẵn. Và để làm điều đó thì EasySIMBL đã tận dụng cơ chế đẩy dữ liệu vào một tiến trình đang hoạt động và can thiệp, chỉnh sửa nó.

Nghe qua thì những phần mềm như EasySIMBL rất là hay, nhưng nó cũng khiến hệ thống gặp nguy hiểm. Lỡ một phần mềm mã độc nào đó chèn code độc hại vào một phần mềm đang hoạt động để đánh cắp hay giả mạo thông tin thì sao? Lỡ hacker dùng các đoạn code chèn vào kiểu này để đánh sập hệ thống của bạn thì sao?

Thế là Apple quyết định cắt hẳn khả năng chèn code này luôn bằng SIP. Như vậy thì hãng có thể đảm bảo rằng người dùng OS X El Capitan sẽ an toàn hơn.

Không còn kernel extension "lậu"

"Kernel" là phần cốt lõi của mọi hệ điều, và OS X cũng một kernel được xây dựng dựa trên nền tảng UNIX. Còn "kernel extension" (kexts) là những phần mềm được phép tương tác trực tiếp với kernel. Có thể bạn đã gặp chữ này trong lúc cài đặt các driver bên thứ ba cho máy tính của mình lúc mới sắm một thiết bị ngoại vi mới nào đó.

Kernel.png

Quảng cáo


Kernel đứng giữa lớp ứng dụng và phần cứng, nó cho phép app và các thành phần của hệ điều hành truy cập đến CPU, RAM và các thiết bị khác, kể cả thiết bị ngoại vi gắn vào máy tính

Tạm gác vụ kernel qua một bên, bây giờ chúng ta nói về một kĩ thuật gọi là code signing, tạm dịch là kí xác nhận cho mã lập trình, và rộng hơn là cho phần mềm. Code signing được Apple sử dụng trong iOS và OS X để giúp lập trình viên xác nhận rằng đây chính là phần mềm do họ tạo ra. Khi một app đã được "signed", hệ thống có thể phát hiện ra bất kì thay đổi nào với app đó, chẳng hạn như lúc bạn đang download app nhưng bị lỗi giữa chừng, hoặc khi có đoạn mã độc bị ai đó nhúng trái phép vào app. Một số tính năng bảo mật khác của OS X cũng dựa vào code signing để hoạt động. Ngoài Apple ra thì nhiều hãng khác cũng áp dụng cơ chế tương tự, bao gồm Microsoft, Google, Nokia,...

code_signing.png
Quy trình code signing: mã / phần mềm sẽ được đem đi "băm" (hash) thành các mảnh nhỏ, sau đó được mã hóa bằng cách dùng một khóa riêng của nhà phát triển phần mềm. Dữ liệu gốc, kết hợp với dữ liệu đã mã hóa và chứng nhận của nhà phát triển sẽ được gom lại thành code đã được "signed"

Giờ thì lại trở về kernel extension. Những extension chính chủ do các hãng phần cứng, phần mềm phát hành ra sẽ được họ "signed" trước khi phát hành cho bạn. Ví dụ đơn giản như thế này: Logitech làm chuột cho Mac, họ phát hành driver, driver này chính là một kernel extension và nó đã được Logitech "kí xác nhận". Khi bạn cài driver này vô OS X El Capitan, hệ thống nhận thấy nó đã được signed và cho thực thi một cách bình thường. Nhưng nếu có hacker nào đó dụ bạn tải về driver đã bị chỉnh sửa để chèn mã độc đánh cắp thông tin, El Capitan sẽ biết ngay và chặn không cho driver chạy nên bạn vẫn an toàn.

Cách tắt SIP / rootless trong OS X El Capitan


Bảo mật cao là thế, nhưng SIP cũng gây ra một số khó khăn nhất định với người dùng, ví dụ như các phần mềm cũ dùng để can thiệp vào ổ đĩa, công cụ backup sẽ không còn chạy được. Đơn giản như các app đọc ghi phân vùng NTFS cũ sẽ không còn hoạt động khi lên OS X El Capitan.

SIP hiện có thể được tắt đi, tuy nhiên bạn không thể thực hiện nó khi máy đang chạy bình thường. Thay vào đó, bạn cần tắt máy Mac, truy cập vào chế độ Recovery rồi dùng lệnh csrutil để vô hiệu hóa SIP. Chi tiết cách làm như sau:

1. Chạy máy tính lên ở chế độ Recovery:

1.1 Đầu tiên bạn shutdown máy, sau đó ngay lúc nhấn nút nguồn thì nhấn giữ phím "Option" trên bàn phím cho đến khi thấy ổ đĩa Recovery xuất hiện trên màn hình.


1.2 Vào menu Utilities > chọn Terminal. Sau đó, nhập dòng lệnh như bên dưới vào để vô hiệu hóa tính năng rootless.

Code:
csrutil disable
View attachment 3037656

View attachment 3037657

1.3 Khởi động lại máy vào lại OS X

Bằng cách chỉ cho vô hiệu hóa SIP khi chạy chế độ Recovery, Apple có thể đảm bảo rằng gần như chỉ có chủ máy mới có quyền tắt SIP, hacker từ xa hay malware sẽ không làm được.

Một số thay đổi khác về bảo mật trên OS X El Capitan:
  • Nhiều cơ chế bảo mật hơn cho việc bảo vệ Keychain (hệ thống quản lý password trong OS X)
  • Cải thiện kĩ thuật mã hóa
  • Thay đổi firmware EFI để chống lại các thay đổi khi boot máy
86 bình luận
Chia sẻ

Xu hướng

kiến thức hay lắm, tks thớt
Vỏ quýt dày thì có móng tay nhọn, dù sao Apple đã chú tâm về mặt an toàn cho OS của họ
Ngon quá đê. Trước giờ chỉ chơi elementary OS với CentOS biết sudo, không biết Mac OS cũng có. Ráng kiếm về 1 em để vọc thôi 😁
@mrsugarvn hệ thống lệnh trên linux là học theo unix đấy :D ( os x base trên cái này )
@mrsugarvn Nhân UNIX cả mà bác, chớ có phải nhân đậu xanh bánh cốm đâu mà ko có sudo :D
omega911
TÍCH CỰC
9 năm
Bác Ben đã nói:

"With great power comes great responsibility"


Đừng lấy quyền root nếu không chắc chắn những hành động mình sẽ làm sau khi root.
duzpopo
ĐẠI BÀNG
9 năm
Rồi vài ngày sau trên tinhte sẽ có bài đã phá vỡ rootless
mchan004
ĐẠI BÀNG
9 năm
vậy hackintosh còn đường sống k 😔
kungfu9
CAO CẤP
9 năm
@mchan004 Vivu thím à…đã lên từ đời mô rồi…bảo mật kia hok liên quan gì đến hackintosh cả…bạn tìm hiểu về nó bạn sẽ hiểu
1234hdpa
ĐẠI BÀNG
9 năm
@mchan004 Vẫn Hackintosh được 😃, vỏ quýt dày có móng tay nhọn mà
Đang dùng 10.11.1 trên asus đây.
Swift
ĐẠI BÀNG
9 năm
cảm ơn bạn Duy Luân rất là nhiều 😃
Làm vậy thì cũng có hạn chế khi 1 số người dùng hoặc lập trình viên muốn can thiệp sâu vào hệ thống khi có nhu cầu. Hiểu nôm na là các phần mềm can thiệp vào hệ thống sẽ ko hoạt động ổn định dc. Còn với bọn hacker thì nếu muốn hack thế nào nó cũng tìm cách phá cái bức tường bảo vệ này thôi, chủ yếu làm cho việc hack khó khăn hơn 1 chút thôi chứ ko ngăn được. Cá nhân mình nghĩ đã là root user thì phải có quyền cao nhất (đơn giản là máy của tôi toi có quyền), lộ password ra thì tự chịu trách nhiệm
@shinkt Thì đó, vô recovery tắt béng cái SIP đó đi là ok, miễn là ông phải thao tác trên máy chủ( tức ông là chủ máy). Tắt xong thì root user sẽ có quyền cao nhất. Chỉ là thêm 1 bức tường ngăn cản việc hacker đột nhập từ xa thôi mà. Còn tất nhiên là xây lên thì khó chứ phá thì mấy hồi.
trung_c5
ĐẠI BÀNG
9 năm
cái cơ chế này chỉ mệt cho hackintosh thôi.chắc lại quay về với yosemite thôi
@trung_c5 hack thì chỉ vất vả vụ USB thôi.
có cách tắt đi là may rồi. tưởng mua cái máy của mình mà nó không phải của mình mới đáng lo :rolleyes:
nhokbabypro
ĐẠI BÀNG
9 năm
Chả biết tốt chỗ nào nhưng máy không nuột nữa.
kungfu9
CAO CẤP
9 năm
Dùng mac mượt, nhanh, tối ưu, cập nhật hằng năm, nhiều bản vá lỗi ra rất nhanh để bảo vệ người dùng…điều ngăn mac phổ biến chính là bản quyền (cài cũng ko phải vấn đề quá lớn), nhưng điều ấy cũng chính làm cho osx ưu việt đúng nghĩa trên phần cứng rất tốt, bền, và đẹp của Apple

tương lai tăng trưởng của Mac còn dài dài và có thể cân với windows về số lượng thôi

Ps: em cảm nhận một cách khách quan nhất nên các bác đừng chém nhá
J.C.Jean
ĐẠI BÀNG
9 năm
@tq_slna Con ếch này có cả macbook pro và precision m6800 xài đấy...hahaha... còn con ếch trên miệng giếng thì sao ta???? hahaha
J.C.Jean
ĐẠI BÀNG
9 năm
@1234hdpa mac os thì xài trên macbook pro còn win 10 thì xài trên Precision m6800... không cần cái trãi nghiệm vớ vẫn hackintosh tốn thời gian...hahaha
@J.C.Jean Mình cũng quen biết mấy chú bán máy tính 21,22 năm rồi cơ nhưng mà chả biết méo gì về công nghệ cả, chỉ biết "đào lửa", "trố đào" với chối đẩy trách nhiệm giỏi thôi.
@reviewdao.com Bản quyền app đó bạn free chỉ là 1 số ít thôi còn os x đã tính tiền vào chung với máy luôn rồi
mrford105
TÍCH CỰC
9 năm
Tóm tắt bài viết:
1/SIP hay lắm, tuyệt với lắm, bảo mật lắm
2/ Và đây là cách tắt nó đi

tắt xong sau này bị chôm thẻ tín dụng rồi lăn ra chửi đổng 😁
mr33acs
TÍCH CỰC
9 năm
@mrford105 Đọc cho trọn vẹn đi bạn. Apple cho phép tắt nhưng chỉ tắt khi ở chế độ Recovery. Tức là chỉ có chủ máy mới có thể làm được. Các loại hack từ xa sẽ bó tay nhé!
sucsong1
TÍCH CỰC
9 năm
iOS có tắt đc cái rootless này ko
RedBee8888
ĐẠI BÀNG
9 năm
@sucsong1 JB được thì khác gì tắt rootless
oldman20
TÍCH CỰC
9 năm
cũng hóng câu trả lờio_O
bảo sao mình cài thằng paragon NTFS trên 10.11 xong mà vẫn ko xoá đc file trên pv NTFS:mad:
@oldman20 Bản Paragon 14.0.483 mới nhất dùng ngon lành rồi nhé bác.
Cái rootless này mình thấy quá hữu dụng. Chỉ có cái muốn cài XtraFinder hay TotalFinder không được thôi. Nhưng mình nghĩ sau này kiểu gì cũng sẽ cài được mà không cần díable rootless.
Ps: Các bác không dùng Macbook hay iMac đừng phán. Nghe nực cười lắm.
oldman20
TÍCH CỰC
9 năm
@satthuxacuop cám ơn bạn, để mình kiếm xxx nó tést:p
J.C.Jean
ĐẠI BÀNG
9 năm
@oldman20 Bạn mua bản quyền của Paragon thì sẽ không bị lỗi gì cả...hihihi...
Vì cái này mà mấy app hỗ trợ Finder: TotalFinder, XtraFinder ngoẻo hết.
nhoctm
ĐẠI BÀNG
9 năm
Thêm 1 cái để nghịch
verybeo
TÍCH CỰC
9 năm
chả hay = window nhờ
Cấm đoán đủ thứ thế này mới thấy cái hệ điều hành OSX nó n.g.u thế nào. Thế này mút mùa mới đòi bằng được Windows.
@joe_tribbiani mút mùa mà nhân viên MS nó dùng OSX để lập trình windows đấy 😆 và cũng mút mùa nhưng công ty nó vẫn giàu , còn MS đang học cách làm cái hệ điều hành windows 10 giống OSX đó
beautiful
ĐẠI BÀNG
9 năm
@Pisces.Mist Mình thích sự ngây ngô của bạn muahahaha.
@Pisces.Mist bạn kiếm đâu ra thông tin nhân viên MS dùng Mac để lập trình win vậy?
https://www.quora.com/Are-MacBooks-actively-used-by-Microsoft-employees

Xu hướng

Bài mới









  • Chịu trách nhiệm nội dung: Trần Mạnh Hiệp
  • © 2024 Công ty Cổ phần MXH Tinh Tế
  • Địa chỉ: Số 70 Bà Huyện Thanh Quan, P. Võ Thị Sáu, Quận 3, TPHCM
  • Số điện thoại: 02822460095
  • MST: 0313255119
  • Giấy phép thiết lập MXH số 11/GP-BTTTT, Ký ngày: 08/01/2019