Tải bản đầy đủ (.docx) (13 trang)

BÀI TẬP LỚN MÔN CƠ SỞ AN TOÀN THÔNG TIN ĐỀ TÀI: TÌM HIỂU KIẾN TRÚC AN TOÀN CỦA HỆ ĐIỀU HÀNH IOS

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (232.95 KB, 13 trang )

HỌC VIỆN KỸ THUẬT MẬT MÃ
---���---

BÀI TẬP LỚN MÔN CƠ SỞ AN TỒN THƠNG TIN
ĐỀ TÀI: TÌM HIỂU KIẾN TRÚC AN TOÀN CỦA HỆ ĐIỀU HÀNH IOS

Giáo viên hướng dẫn: Nguyễn Mạnh Thắng

Sinh viên: Nguyễn Thành Long (AT150133)


Lời cảm ơn
Dưới đây là đề tài “Tìm hiểu kiến trúc an toàn của hệ điều
hành iOS” do em thực hiện.
Em chân thành cảm ơn thầy Nguyễn Mạnh Thắng đã dành
nhiều thời gian và tâm huyết để giảng dạy kiến thức và giúp đơ
em hoàn thành đề tài này.
Trong thời gian thực hiện đề tài lần này do nhiều yếu tố dẫn
đến không thể dành toàn bộ thời gian và tâm sức để làm đề tài
lần này nên không thể tránh khỏi nhứng sai sót có thể xảy ra.
Kính mong thầy đóng góp ý kiến để em có thể củng cố và bô
sung kiến thức cho bản thân và rút ra kinh nghiệm cho lần làm
bài tập lớn cũng như đồ án tốt nghiệp sau này.
Em xin chân thành cảm ơn ạ!

Mục lục


Lời mở đầu
Trong sự phát triển vượt bậc của Công nghệ thông tin, điện
thoại thông minh đã trở thành công cụ cần thiết cho mỗi người


chúng ta. Điện thoại thông minh không chỉ là phương tiện liên
lạc mà còn trở thành một công cụ vô cùng hữu ích cho con
người.
Một trong những công ty nằm trong top đầu về phát triển điện
thoại thông minh đó chính là Apple. Dù Apple không phải công ty
tiên phong về mảng điện thoại mà xuất phát điểm lại là phát
triển máy tính cá nhân nhưng hiện tại Apple đang là công ty sản
xuất điện thoại lớn thứ ba thế giới chỉ sau Samsung và Huawei.
Đồng hành cùng Apple trong sự tăng tiến này chính là hệ
điều hành do chính công ty tạo ra đó là iOS – hệ điều hành phô


biến thứ 2 Thế giới chỉ sau Android và có bảo mật được đánh
giá là tốt nhất Thế giới.
Vậy iOS là gì? Kiến trúc bảo mật của hệ điều hành iOS như
thế nào?

I.
-

-

Thông tin chung về hệ điều hành iOS

iOS là một hệ điều hành điện thoại di động được phát triển bởi
Apple và phân phối độc quyền cho phần cứng của Apple. Đây
là hệ điều hành chạy trên các sản phẩm iPhone, iPad và iPod
Touch hiện tại đã phát triển đến IOS15 với giao diện và tính
năng nôi bật.
iOS là một trong những hệ điều hành phô biến nhất hiện này.

Một trong số những đặc điểm ưu việt thường được nhắc tới
của hệ điều hành này là tính bảo mật (hay nói đúng hơn là ít
các vụ tấn công bảo mật xảy ra).


-

-

Khác với Android, iOS không phải là một hệ điều hành mã
nguồn mở, và ban đầu nó không hỗ trợ các ứng dụng của bên
thứ ba
Các phần mềm (ứng dụng) trên iOS được người dùng tải về
từ App Store - kho ứng dụng của iOS, ngoài ra cũng có những
kho ứng dụng không chính thống khác, mà đa phần được tải
qua Cydia khi jailbreak máy.
App Store là nền tảng phân phối kỹ thuật số các ứng dụng cho các thiết bị
chạy hệ điều hành iOS, phát triển và duy trì bởi Apple. App Store được coi
như là tính năng bảo mật tốt nhất của Apple nhờ sự kiểm duyệt nội dung
khắt khe với các ứng dụng được đăng lên; duy trì tính bảo mật và không
chứa các ứng dụng gây hại cho phần cứng và phần mềm của thiết bị.
• Cydia là phần mềm ứng dụng trên nền tảng iOS cho phép người dùng tìm
kiếm và cài đặt gói phần mềm, phục vụ cho quá trình Jailbreak iOS, chiếm
quyền điều khiển và phá rào cản, can thiệp vào hệ điều hành iOS
• Jailbreak là quá trình loại bỏ các rào cản phần mềm được Apple áp đặt
trên iOS


-


Các phần mềm này được các nhà phát triển sử dụng ngôn ngữ
lập trình Objective-C và sau này được thay thế bằng Swift.

II.
1.

Mô hình cấu trúc bảo mật của iOS
Mô hình cấu trúc


Hình 1: Cấu trúc bảo mật của iOS
-

Như từ hình trên có thể thấy, mỗi app sẽ được chạy trong một
sandbox riêng của mình. Trong đó có một lớp bảo mật dữ liệu
(Data protection class). Các sandbox này sẽ nằm trong phân
vùng của người dùng. Các dữ liệu trong vùng này sẽ được áp
dụng các thuật toán mã hoá của iOS.


-

Sandbox là mợt kỹ tḥt quan trọng trong lĩnh vực bảo mật có tác
dụng cô lập các ứng dụng, ngăn chặn các phần mềm độc hại để chúng
không thể làm hỏng hệ thống

Phân vùng này là một phần của file system bên cạnh phân
vùng hệ điều hành (OS partition).
Ngoài ra, việc bảo mật phần cứng và firmware của iOS cũng
rất được chú trọng. Như việc sử dụng các secure enclave và

secure element trong kernel, các crypto engine – thứ duy nhất
truy cập được tới các khoá mã hoá của hệ thống.
- Cùng với đó, ở sâu nhất của hệ thống sẽ là các khoá thiết bị
và khoá group sẽ nói tới ở phần sau cùng chứng chỉ root
của Apple (Apple Root Certificate).


2.
-

-

-

-

-

Secure Enclave là gì?

Secure enclave: Các thiết bị của Apple có Touch ID và Face ID
sử dụng một bộ xử lý riêng để xử lý thông tin sinh trắc học của
bạn và được gọi là secure enclave về cơ bản nó giống như
một chiếc máy tính hoàn chỉnh và cung cấp nhiều tính năng
bảo mật khác nhau.
Secure Enclave khởi động riêng biệt với phần còn lại của thiết
bị. Nó chạy kênh vi mô của riêng mình, kênh này không thể
truy cập trực tiếp bởi hệ điều hành của bạn hoặc bất kỳ
chương trình nào đang chạy trên thiết bị của bạn.
Thông tin sinh trắc học của bạn không được lưu trữ trên

Secure Enclave; 4MB không đủ dung lượng lưu trữ cho tất cả
dữ liệu đó. Thay vào đó, Enclave lưu trữ các khóa mã hóa
được sử dụng để khóa dữ liệu sinh trắc học đó. Các khóa này
là duy nhất cho thiết bị của bạn và không bao giờ được đồng
bộ hóa với đám mây hoặc thậm chí được nhìn thấy trực tiếp
bởi hệ điều hành chính của thiết bị của bạn. Thay vào đó, hệ
thống yêu cầu Secure Enclave giải mã thông tin bằng các
khóa.
Secure Enclave khiến tin tặc rất khó giải mã thông tin nhạy
cảm nếu không có quyền truy cập vật lý vào thiết bị của bạn vì
hệ điều hành chính của bạn không bao giờ thực sự thấy các
khóa giải mã, nên việc giải mã dữ liệu của bạn mà không có ủy
quyền thích hợp là vô cùng khó khăn.
Các chương trình của bên thứ ba cũng có thể tạo và lưu trữ
các khóa trong enclave để khóa dữ liệu nhưng các ứng
dụng không bao giờ có quyền truy cập vào các chìa khóa mà
các ứng dụng đưa ra yêu cầu Mã hóa bảo mật để mã hóa và
giải mã dữ liệu. Điều này có nghĩa là bất kỳ thông tin nào được
mã hóa bằng Enclave đều cực kỳ khó giải mã trên bất kỳ thiết
bị nào khác.


-

Với Secure enclave bạn sẽ không bao giờ trực tiếp xử lý khóa
mà chỉ hướng dẫn nó tạo khóa lưu trữ an toàn và nhận kết quả
đầu ra của hoạt động này có thể là dữ liệu được mã hóa hoặc
chữ ký bảo mật.

III.

-

-

Mỗi thiết bị iOS sẽ có 2 key mã hoá AES-256 bits built-in là ID
của thiết bị (UID) và ID của nhóm thiết bị (GID). Hai key ID này
sẽ được đính vào trong Application Processor (AP) và Secure
Enclave Processor (SEP) ngay từ quá trình sản xuất. Các khoá
này chỉ có thể đọc từ các crypto engine.
GID là giá trị được chia sẻ giữa các bộ xử lý của cùng một lớp
thiết bị, dùng để chống làm giả các file firmware cũng như
ngăn các tác vụ mã hoá khác truy cập tới các thông tin của
người dùng. Trong khi đó UID là giá trị độc nhất cho từng thiết
bị, dùng để bảo vệ hệ thống khóa trong mã hoá các tệp tin hệ
thống ở cấp độ thiết bị. Giá trị UID không được ghi lại trong
quá trình sản xuất nên Apple cũng không thể recover lại được.

IV.
-

Bảo mật phần cứng

Secure Boot

Đầu tiên khi khởi động hệ thống iOS, hệ thống sẽ gọi tới Boot
ROM, nơi chứa các đoạn code không thể sửa được cũng như
là Apply CA (Được gắn trong 1 silicon chip). Tiếp theo, nếu
kiểm tra chữ kí (signature) của Low Level Bootloader (LLB)
đúng, đến lượt LLB kiểm tra chữ kí của iBoot bootloader. Nếu
chính xác, công việc tiếp theo sẽ chuyển tới cho iOS kernel.

Nếu như thất bại tại 1 bước nào đó, quá trình khởi động sẽ
ngay lập tức bị huỷ và chuyển qua revorery mode, nơi có dòng
chữ “Connects to iTunes”. Tuy nhiên, nếu như không khởi
động được Boot ROM, nỗ lực cuối cùng của hệ thống sẽ là gọi


-

tới Device Firmware Upgrade (DFU) để khởi tạo lại trạng thái
nguyên thuỷ của hệ thống.
Quá trình trên gọi là Secure Boot Chain với sự tham gia của
kernel, kernel extensions, bootloader và baseband firmware.
Mục đích của nó là đảm bảo tính toàn vẹn của quá trình khởi
động, chắc chắn hệ thống và các thành phần được viết và
phân phối bởi Apple.

V.
-

-

Apple đã triển khai một hệ thống DRM phức tạp với 1 mục đích
duy nhất là chỉ các thiết bị được kí bởi Apple mới có quyền
chạy trên thiết bị của Apple. Mục đích của việc này là để cho
người dùng chỉ có thể cài đặt ứng dụng thông qua Apple app
store. Có thể nói không ngoa rằng iOS chính là một nhà tù pha
lê tráng lệ của người dùng hệ thống này.
Ngoài ra, các lập trình viên có chứng chỉ của Apple có thể chạy
được ứng dụng. Các developer sẽ phải tham gia một chương
trình đào tạo developer của Apple và phải trả phí hàng năm

cho việc này. Ngoài ra cũng có các tài khoản miễn phí cho
phép compile và deploy ứng dụng, tuy nhiên không được up
lên App Store. Trên các thiết bị đã jailbreak, các ứng dụng còn
có thể được cài đặt thông qua sideloading.

VI.
-

Code Signing

Mã hóa và bảo vệ dữ liệu

Apple sử dụng một thuật toán gọi là Fairplay Code Encrypting.
Về cơ bản, nó được phát triển như một DRM cho các nội dung


-

đa phương tiện được thanh toán qua iTunes. Ban đầu nó được
ứng dụng cho các luồng MPEG và QuickTime, tuy nhiên cũng
có thể sử dụng cho các file thực thi. Nguyên lý cơ bản sẽ như
thế này: Khi người dùng đăng kí một Apple ID, Apple sẽ tạo ra
một bộ public/private key, trong đó private key được lưu an
toàn tại thiết bị của người dùng. Khi người dùng tải một ứng
dụng về, nó sẽ được mã hoá bằng public key và giải mã trên
memory khi chạy RAM). Vì private key lưu trên máy người
dùng, chỉ có thiết bị liên kết với tài khoản mới có quyền chạy
ứng dụng.
Apple sử dụng mã hoá trên phần cứng và firmware ngay từ
những đời 3GS. Mỗi thiết bị đều có mã hoá phần cứng dựa

trên các thuật toán AES-256 và SHA1. Thêm nữa, mỗi thiết bị
sẽ có 1 UID gắn trên Application Processor (AP). UID này
không được lưu tại bất cứ đâu khác và không thể truy cập tới
(ngoại trừ các engine mã hoá).

VII.
-

Sandbox

Sandbox là một tính năng cốt lõi của iOS security. Nó đảm bảo
rằng các ứng dụng sẽ chạy với quyền mobile và chỉ rất ít ứng
dụng có thể chạy với quyền root. Một ứng dụng sẽ nằm trong 1
container, thứ quy định nó chỉ có quyền truy cập tới file mà nó
sở hữu cũng như một vài API nhất định. Việc truy cập tới các
tài nguyên như file, network socket, IPC hay shared memory
sẽ bị kiểm soát bởi sandbox. Cơ chế như sau:

Ứng dụng chỉ được chạy tại thư mục mà nó được cấp
thơng qua mợt chroot-like process.
• Các syscall mmap và mprotect được sửa đôi đôi chút nhằm
ngăn chặn ứng dụng cố gắng tạo ra các vùng thực thi trên
bộ nhớ cũng như dừng các tiến trình được sinh ra từ source
code.
• Tất cả các tiến trình đợc lập với nhau.




VIII.

-

-

-

Các hạn chế chung khác

iOS cũng sử dụng thêm address space layout randomization
(ASLR) và eXecute Never (XN) để hạn chế các tấn công thực
thi code.
ASLR sẽ sinh ra các địa chỉ ngẫu nhiên cho các file thực thi,
dữ liệu, heap và stack mỗi lần thực thi. Vì các thư viện cần truy
cập từ nhiều tiến trình nên địa chỉ sẽ được sinh ngẫu nhiên khi
khởi động thiết bị. Việc này sẽ khiến địa chỉ của các tiến trình
rất khó đoán, hạn chế các tấn công thực thi cũng như các tấn
công return-to-lib.
XN là một cơ chế để đánh dấu một vùng nào đó trên memory
là không thể thực thi. Trong iOS, heap và stack của các tiến
trình người dùng sẽ được đánh dấu này. Các trang được gắn
nhãn writable thì không thể gắn executable tại cùng thời điểm.
Điều này giúp hạn chế việc chạy các đoạn mã máy trên heap
và stack.

IX.

-

Không thể trực tiếp truy cập tới các driver phần cứng mà
phải thông qua framework của Apple.


Một số lỗ hổng trên hệ điều hành iOS
của Apple

Một hệ thống dù phát triển đến đâu vẫn không thể tránh khỏi
một số lỗ hông bảo mật. Dưới đây là một số lỗ hông đã bị tận
dụng:
• Vấn đề nhức nhới của Apple từ những thế hệ iOS đầu tiên
đó chính là quá trình loại bỏ các rào cản phần mềm hay còn
gọi là jailbreak. Vì iOS là hệ điều hành mã nguồn đong với
nhiều hạn chế nên jailbreak có thể cho phép người dùng tải
xuống và sử dụng các ứng dụng bô sung, phần mở rộng và






X.
-

giao diện không có trên App Store. Jailbreak sử dụng một
loạt các bản vá nhân hệ điều hành, cho phép truy cập root
vào hệ thống iOS. Mặc dù Apple đã cảnh báo về các lỗ hông
có thể xảy ra đồng thời liên tục ra các bản cập nhật để ngăn
cản jailbreak tuy nhiên cộng đồng vẫn liên tục tìm cách bẻ
khóa mà không có bất kì quy định pháp lý nào có thể can
thiệp.
Đội ngũ bảo mật Project Zero của Google từng phát hiện 2
lỗ hông “zero-day”:

CVE-2019-7286 (ảnh hưởng lên một thành phần cốt lõi của
hệ điều hành iOS là iOS Foundation Framework ). Nếu khai thác
thành công lỗ hông này, tin tặc có thể chiếm quyền kiểm
soát bộ nhớ và truy cập dữ liệu người dùng dễ dàng.
CVE-2019-7287 (ảnh hưởng tới I/O Kit module- thành phần
xử lí các luồng dữ liệu giữa phần cứng và phần mềm ). Các hacker
có thể lợi dụng lỗi bộ nhớ để chạy các đoạn mã tùy biến với
đặc quyền riêng của kernel nhằm truy cập được mọi thứ trên
điện thoại của nạn nhân.
Gần đây nhất một lố hông đã được phát hiện trên iMessage
(phần mềm nhắn tin mặc định trên iPhone). NSO Groupmột tô chức có trụ sở tại Israel, đã thực hiện thành công
cuộc tấn công zero-click bằng phần mềm gián điệp Pegasus
thông qua iMessage. Phần mềm này đã thành công xâm
nhập vào những chiếc iPhone 11, 12 đang chạy bản iOS
14.4 14.5 và thậm chí cả 14.6.

Tổng kết
Trên đây là những trình bày vắn tắt về các cơ chế bảo mật
của một hệ thống iOS. Có thể nói Apple đã áp dụng rất


-

-

nhiều các giải pháp nhằm đảm bảo an toàn cho hệ thống và
người dùng của họ.
Mặc dù vẫn còn một số lỗ hông nhưng theo thời gian iOS
vẫn được đánh giá có bảo mật tốt nhờ ít trường hợp bị mất
thông tin hoặc dữ liệu trong khi đó hệ điều hành Android liên

tục bị lây nhiễm phần mềm độc hại, kiểm soát thu thập dữ
liệu người dùng
Apple luôn lắng nghe các phát hiện của cộng đồng cho các
lỗ hông của iOS để kịp thời khắc phục và hoàn thiện hơn.
Nếu tình cờ một ngày chúng ta phát hiện ra trong các cơ chế
bảo mật này có lỗ hông thì đừng ngần ngại gì mà report nó
lại cho Apple.



×