You are on page 1of 22

At1HỌC VIỆN KỸ THUẬT MẬT MÃ

KHOA AN TOÀN THÔNG TIN


------

AN TOÀN HỆ ĐIỀU HÀNH

TÌM HIỂU CƠ CHẾ AN TOÀN TRONG HỆ ĐIỀU HÀNH IOS


Ngành: An toàn thông tin
Mã số: ATCTHT10

Nhóm sinh viên thực hiện:Nhóm 07

Vũ Thị Dịu: AT140408

Nguyễn Thị Lan: AT140221

Bùi Thị Thư Thư: AT140741

Trần Thị Ngân: AT140431

Giảng viên hướng dẫn:

ThS.Nguyễn Đức Ngân

Khoa An Toàn Thông Tin-Học Viện KT Mật Mã

Hà Nội,tháng 11/2020
DANH MỤC HÌNH VẼ
Hình 1: Hệ điều hành Android.....................................................5
Hình 2: Hệ điều hành iOS............................................................6
Hình 3: Steve Jobs nhà sáng lập Apple........................................8
Hình 4 : Tính năng FaceTime trên iOS 4.....................................9
Hình 5: Giao diện iOS 8.............................................................10
Hình 6: iOS 9.............................................................................11
Hình 7: iOS 10...........................................................................12
Hình 8: Cơ chế an toàn trong iOS..............................................15
Hình 9:Không gian địa chỉ của các chương trình được thay đổi
ngẫu nhiên...........................................................................................19

1
Mục lục

LỜI NÓI ĐẦU.....................................................................2

CHƯƠNG 1: TỔNG QUAN VỀ HỆ ĐIỀU HÀNH IOS..3


1.1 KHÁI NIỆM HỆ ĐIỀU HÀNH...................................................................3
1.2 KHÁI NIỆM HỆ ĐIỀU HÀNH IOS............................................................4
1.3 LỊCH SỬ HÌNH THÀNH............................................................................5
1.3.1 Iphone OS 1.............................................................................................5
1.3.2 iOS 4........................................................................................................6
1.3.3 iOS 8........................................................................................................7
1.3.4 iOS 9........................................................................................................8
1.3.5 iOS 10......................................................................................................9
1.4 KIẾN TRÚC HỆ ĐIỀU HÀNH IOS..........................................................10
1.4.1 Các tiến trình (Processes)......................................................................10
1.4.2 Nhân (Kernel)........................................................................................10
1.4.3 Bộ đệm gói (Packet bufer).....................................................................11
1.4.4 Trình điều khiển thiết bị (Device driver)...............................................11
1.4.5 Phần mềm chuyển mạch nhanh (Fast switching software)....................11
1.5 ƯU, NHƯỢC ĐIỂM HỆ ĐIỀU HÀNH IOS..............................................11
1.5.1 Ưu điểm.................................................................................................11
1.5.2 Nhược điểm............................................................................................12

CHƯƠNG 2: CƠ CHẾ AN TOÀN TRONG IOS......12


2.1 BẢO MẬT PHẦN CỨNG.........................................................................13
2.2 SECURE BOOT.........................................................................................13
2.3 CODE SIGNING........................................................................................14
2.4 MÃ HÓA VÀ BẢO VỆ DỮ LIỆU............................................................14
2.5 SANDBOX.................................................................................................15

2
2.6 CÁC CƠ CHẾ HẠN CHẾ CHUNG KHÁC..............................................15
2.6.1 Address Space Layout Randomization..................................................15
2.6.2 eXecute Never........................................................................................17

3
LỜI NÓI ĐẦU
Ngày nay, với sự phát triển như vũ bão của công nghệ thông tin song song với
nền công nghiệp 4.0 việc sử dụng các thiết bị điện như điện thoại, máy tính
bảng..càng trở nên phổ biến. Ngoài những tiêu chí như giao diện bắt mắt,tiện lợi ,dễ
dàng sử dụng,tính năng phục vụ nhu cầu thiết yếu thì vấn đề an toàn ,bảo mật cũng
rất được chú trọng. Chính vì vậy, bài toán bảo mật luôn được các ông lớn đặt lên
hàng đầu cho nền tảng hệ điều hành của mình.Vậy như thế nào là an toàn và các hệ
điều hành có những cơ chế bảo mật,an toàn ?

Từ thực tế đó, nhóm 07 đã chọn đề tài “Tìm hiểu về cơ chế an toàn trong hệ điều
hành iOS” làm đề tài nghiên cứu. Mục tiêu của đề tài là tìm hiểu về các cơ chế an toàn
trong hệ điều hành iOS.

Báo cáo đề tài của nhóm được chia thành 2 chương:

 Chương 1: Tổng quan về hệ điều hành iOS

 Chương 2: Cơ chế an toàn trong iOS

Trong đó, chương 1 giới thiệu tổng quan về hê điều hành ios,lịch sử hình
thành cũng như kiến trúc của nó; chương 2 trình bày về các cơ chế an toàn

Chúng em xin chân thành cảm ơn sự giúp đỡ tận tình của thầy Nguyễn Đức
Ngân để đề tài nghiên cứu của chúng em được hoàn thành.

Do thời gian có hạn nên đề tài của chúng em chắc chắn còn nhiều thiết sót.
Chúng em rất mong nhần được sự góp ý, chỉ bảo của thầy để đề tài của chúng em
được hoàn thiện hơn.

Chúng em xin chân thành cảm ơn!

4
CHƯƠNG 1: TỔNG QUAN VỀ HỆ ĐIỀU HÀNH IOS

1.1 KHÁI NIỆM HỆ ĐIỀU HÀNH

Hệ điều hành (tiếng Anh: Operating System - viết tắt: OS) là một phần mềm
dùng để điều hành, quản lý toàn bộ tất cả thành phần (bao gồm cả phần cứng và
phần mềm) của thiết bị điện tử.

Có vai trò trung gian trong việc giao tiếp giữa người sử dụng và thiết bị.
Hệ điều hành dành cho thiết bị di động
Được thiết kế dành cho những thiết bị như: Điện thoại di động, máy tính bảng,
… Được thiết kế với nhu cầu giải trí, liên lạc,… nên không có được đầy đủ những
tính năng như hệ điều hành dành cho máy tính.
Một số hệ điều hành dành cho thiết bị di động phổ biến

• Hệ điều hành Android

Hình 1: Hệ điều hành Android

Là hệ điều hành được phát triển bởi công ty Android Inc và được Google mua
lại vào năm 2005, Android là hệ điều hành trên thiết bị di dộng có số người được sử
dụng đông đảo nhất trên thế giới (chiếm 87,7% thị phần) năm 2017.
5
- Ưu điểm: Hệ điều hành mở, vì hầu hết cách thiết bị di động điều sử dụng
nên Android sở hữu kho ứng dụng khổng lồ, khả năng tùy biến cao, dễ dàng đặt lại
thiết bị nếu như quên mật khẩu.

- Nhược điểm: Hiện tại độ bảo mật của Android là khá cao nhưng sẽ không
bằng nếu so sánh với iOS.

 Hệ điều hành iOS

Hình 2: Hệ điều hành iOS

iOS là hệ điều hành được sử dụng duy nhất trên các thiết bị di động của Apple. Được
ra mắt vào năm 2007, iOS đã tạo ra một cuộc cách mạng về công nghệ phần mềm.
Được đánh giá khá cao về tính năng cũng như về độ ổn định của nó.

- Ưu điểm: Tính bảo mật cao, khả năng tối ưu phần mềm tốt, hiệu năng ổn định mà
không cần đòi hỏi nhiều về cấu hình so với Android.

- Nhược điểm: Hệ điều hành chỉ độc quyền cho các dòng điện thoại của Apple và
không thể sử dụng trên các điện thoại khác, kho ứng dụng ít hơn so với Android.

6
1.2 KHÁI NIỆM HỆ ĐIỀU HÀNH IOS

iOS là tên gọi hệ điều hành được Apple phát triển độc quyền cho các thiết bị
di động của hãng, nó được viết bằng các ngôn ngữ C,C++ và iOS là hệ điều hành mã
nguồn đóng có độ bảo mật cao .

Tương tự các hệ điều hành dành cho thiết bị cảm ứng khác, giao diện người
dùng của iOS dựa trên cơ sở thao tác bằng tay. Người dùng có thể tương tác với hệ
điêu hành này thông qua các động tác bằng tay như lướt chạm, kéo thả... trên màn
hình cảm ứng. Lần lượt các phiên bản 8.0 và 9.0, iOS còn hỗ trợ thêm công nghệ
cảm biến vân tay và cảm ứng lực nhấn.

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. CEO của Apple khi đó là Steve
Jobs đã thông báo rằng những nhà phát triển có thể xây dựng các ứng dụng web mà
“sẽ hoạt động như những ứng dụng nguyên thủy trên iPhone”.Vào ngày 17 tháng 10
năm 2007, Apple thông báo một bộ phát triển phần mềm đang được xây dựng và họ
dự định sẽ đưa nó đến "tay của các nhà phát triển vào tháng 2". Ngày 6 tháng 3 năm
2008, Apple đã chính thức phát hành bản dùng thử đầu tiên cho hệ điều hành mới.

Chỉ vài năm sau khi ra mắt, iOS đã gặt hái được những thành công mà trước
đó khó ai có thể tưởng tượng được. Tính đến quý IV năm 2010, có khoảng 26% điện
thoại thông minh trên toàn cầu chạy hệ điều hành iOS, chỉ đứng sau Android của
Google và Symbian của Nokia. Cuối năm 2012, iOS chiếm 21% thị phần hệ điều
hành điện thoại thông minh và 43,6% thị trường hệ điều hành máy tính bảng.  Và đến
tháng 6 năm 2014, App Store của Apple chứa hơn 1.200.000 ứng dụng iOS, với tổng
số lần tải về vượt hơn 60 tỷ lượt.

1.3 LỊCH SỬ HÌNH THÀNH

Apple đã ra mắt iOS lần đầu tiên vào ngày 29/6 năm 2007, đó cũng là dịp chiếc
iPhone thế hệ thứ nhất xuất hiện trước toàn thế giới. Khi đó, iOS vẫn còn được gọi
là iPhone OS vì nó chỉ dành cho mỗi iPhone mà thôi. Giờ thì iOS đã trưởng thành,
nó không chỉ có mặt trên điện thoại mà còn cho cả máy tính bảng và cũng là vũ khí

7
mà Apple sử dụng để thống trị thị trường tablet. iOS không chỉ dừng lại mộ chỗ, cứ
mỗi năm dịp hè về là một bản iOS mới lại xuất hiện. Chúng ta hãy cùng xem lại lịch
sử phát triển của những thế hệ nổi bật nhất của hệ điều hành này.

Hình 3: Steve Jobs nhà sáng lập Apple

1.3.1 Iphone OS 1
Năm 2007, Steve Jobs đứng trên sân khấu giới thiệu iPhone và iPhone OS
cùng nhau. Trong buổi lễ ra mắt, Jobs gọi hệ điều hành này là “OS X” bởi vì nó chia
sẻ cùng một nhận Unix với phiên bản dành cho máy tính của Apple. Một năm sau
khi Apple công bố iPhone SDK để các nhà phát triển có thể viết app thì công ty mới
nhắc đến chữ “iPhone OS”.

1.3.2 iOS 4

Có gì mới ở iOS 4? Trước hết đó là cái tên. Apple đã chính thức bỏ chữ
“iPhone” đi và chỉ còn giữ lại phần OS mà thôi, đồng thời thêm chữ “i” vào trước
cho phù hợp với cách đặt tên sản phẩm của hãng. Đây cũng là động thái hợp lý khi
mà iPhone OS giờ không chỉ dành cho iPhone mà còn cho cả iPad. iOS thực chất đã

8
được Cisco đăng kí bảo hộ trước đó cho một dòng điện thoại, vậy nên Apple phải
thương thuyết lại với Cisco để được quyền sử dụng thương hiệu.

Ngoài ra, iOS 4 còn đánh dấu sự xuất hiện lần đầu tiên của FaceTime, dịch vụ
gọi thoại hình ảnh của Apple. Kể từ khi ra mắt ngày 21/6/2010, FaceTime đến giờ
vẫn là một trong những lý do mà rất nhiều người vẫn quyết định ở lại với hệ sinh thái
Apple. iOS 4 cũng đưa vào tính năng quản lý đa nhiệm, một thứ đã được người dùng
yêu cầu từ lâu và đối thủ Android cũng đã có.

iOS 4 có thể xem là một trong những bản iOS quan trọng nhất vì nó định
nghĩa chu trình phát triển phần mềm mà Apple tiếp tục sử dụng trong nhiều năm sau
đó. Lấy ví dụ với FaceTime, Apple đã xây dựng nên một tương lai mới cho việc gọi
video trên thiết bị di động. Những ứng dụng như Skype hay các công cụ chat trên
máy tính vẫn phải mất nhiều năm sau đó mới đạt tới một mức đủ ổn định.
Với iOS 4, Apple cũng bắt đầu ngừng hỗ trợ cho những chiếc iPhone đời trước
đó, bao gồm iPhone và iPod Touch đời đầu. Đây là lần đầu tiên hãng làm điều này.
Những thế hệ iOS về sau, chúng ta tiếp tục thấy việc Apple bỏ dần những thiết bị mà
hãng cho là không phù hợp để chạy các phiên bản hệ điều hành mới.

Hình 4 : Tính năng FaceTime trên iOS 4

1.3.3  iOS 8

Sau khi đã làm mới giao diện của hệ điều hành, Apple quay trở lại chu kỳ cập
nhật iOS với những thay đổi để tăng mức độ tiện dụng của nền tảng. Đặc biệt, hãng
rất chú trọng tới chuyện cho phép các nhà phát triển được truy cập nhiều hơn vào các

9
thành phần hệ thống. Đây là lần đầu tiên Apple mở khả năng sử dụng bàn phím cho
bên thứ ba, cũng như cho phép các lập trình viên làm widget và chia sẻ file giữa các
ứng dụng với nhau.
Với iOS 8, Apple cũng ra mắt TestFlight, chương trình test app dành cho các lập
trình viên. Trước đó, việc thử nghiệm app trên iOS khá hạn chế vì đòi hỏi thiết bị cài
app beta phải được đăng kí với tài khoản Apple Developer Account. Còn với
TestFlight, bạn chỉ cần cài một ứng dụng vào là xong.

Apple không chỉ có di động mà còn có máy tính. Điều đáng nói là hãng kiểm soát
chặt chẽ cả hai hệ sinh thái này, vậy nên việc Apple xóa bỏ bức tường giữa iOS và
OS X là chuyện sớm muộn cũng diễn ra. iOS 8 khởi động điều này bằng cách đưa ra
tính năng Continuity để chuyển giữa các app từ điện thoại sang máy tính và ngược
lại. Chức năng gọi điện, trả lời tin nhắn từ máy tính cũng được tích hợp vào iOS.

Với iOS 8, khoảng cách về khả năng tùy biến giữa iOS và Android đã được thu
hẹp lại đáng kể. iOS vẫn chưa thể bằng Android về khoảng này, nhưng ít nhất Apple
cũng cho phép người dùng làm được nhiều việc hơn mà không cần jailbreak máy.

Hình 5: Giao diện iOS 8

1.3.4 iOS 9

iOS 9 tập trung vào 3 thứ: làm cho Siri thông minh hơn, Apple Music và 3D
Touch. Siri được cập nhật một thứ mà Apple gọi là Proactive, nó được tích hợp vào
Spotlight để gợi ý nhanh n hững nội dung, ứng dụng mà bạn hay sử dụng. Ứng dụng

10
Notes, Transit, News cũng được thay đổi nhiều. Đặc biệt, iOS 9 còn hỗ trợ chạy đa
nhiệm chia màn hình cho iPad. Đây cũng là một tính năng được công ty chú trọng
khi ra mắt iPad Pro, mẫu tablet đầu tiên của Apple với màn hình trên 10”.

Hình 6: iOS 9

iOS 9 dường như là cách mà Apple đuổi theo các đối thủ. Windows 8 đã có
chia màn hình từ năm 2012, Samsung cũng đã triển khai chức năng chia màn hình
của riêng mình trên không chỉ tablet mà còn điện thoại. Proactive thì sở hữu cách
hoạt động giống như Google Now.
Dù vậy, iOS 9 cũng có một thay đổi quan trọng là 3D Touch. Tính năng mới này
hiện chỉ có cho iPhone 6s và 6s Plus nhưng khi phần cứng hỗ trợ 3D Touch đã phổ
biến thì sẽ ngày càng có nhiều nhà phát triển đưa tính năng này vào app của mình.

11
1.3.5 iOS 10

iOS 10 đã có bản beta từ tháng 6 năm nay (2016) và sẽ ra mắt chính thức đâu
đó trong tháng này. iOS 10 có thể xem như một đợt nâng cấp vừa vừa của iOS 9, chủ
yếu để khắc phục những tính năng còn thiếu sót của nền tảng như cho phép Safari
chạy hai cửa sổ, màn hình khóa được thiết kế mới hoàn toàn, hệ thống thông báo
được làm cho dễ nhìn hơn và mang hơi hướng của watchOS.

Hình 7: iOS 10

Đặc biệt, Apple tập trung rất nhiều vào việc bổ sung chức năng mới cho nền
tảng chat iMessage của mình, ví dụ như gửi chữ ẩn, cho khung chat nhỏ kiểu đang
nói thì thầm hay nói to như đang hét, hỗ trợ mở rộng chức năng bằng app của bên thứ
ba... Tất cả cho thấy Apple đang muốn biến iMessage thành một thứ có thể cạnh
tranh được với các app chat OTT như Viber, Facebook Messenger hay WhatsApp.
Nếu thành công, đây cũng sẽ là một nơi mà Apple có thể kiếm được tiền thông qua
việc bán quảng cáo và bán nội dung.
Apple cũng bắt đầu chú trọng nhiều hơn tới mô hình thuê bao thay vì mua app
một lần. Hãng tin rằng mô hình này sẽ giúp developer kiếm được nhiều tiền hơn và
duy trì được mối quan hệ tốt hơn với khách hàng. Trước đây hãng chia 70% doanh
thu cho nhà phát triển và giữ lại 30% cho các gói thuê bao, giờ đây hãng điều chỉnh
lại chính sách đó là kể từ năm 2 trở đi, Apple chỉ giữ lại 15% tiền mà thôi. Chức

12
năng search và quảng cáo trong App Store cũng được triển khai vào iOS 10 để giúp
App Store cạnh tranh tốt hơn với Google Play.

1.4 KIẾN TRÚC HỆ ĐIỀU HÀNH IOS


Các thành phần của hệ điều hành iOS:

1.4.1 Các tiến trình (Processes)


Là những tuyến riêng lẻ kết hợp với dữ liệu để thực hiện những tác vụ, như
duy trì hệ thống, chuyển mạch gói dữ liệu, thực hiện giao thức định tuyến....
Một tiến trình có thể được tạo ra hoặc kết thúc bất kì lúc nào khi iOS đang
hoạt động. Nó được tạo bởi một kernel hay một tiến trình khác.
Tiến trình iOS trải qua các trạng thái như sau:

 Trạng thái khởi tạo

 Trạng thái điều chỉnh

 Trạng thái thực thi

 Trạng thái kết thúc

Môt thành phần có trách nhiệm tạo nhiều tiến trình iOS gọi là parser (bộ phân
tách). Parser này là một tập các chức năng làm phiên dịch cấu hình iOS và dòng lệnh
EXEC. Parser được yêu cầu bởi kernel trong suốt quá trình khởi tạo iOS và các tiến
trình EXEC, để cung cấp một giao tiếp dòng lệnh CLI thông qua giao tiếp console
(giao tiếp người và máy) và các phiên bản telnet. Tại bất cứ thời điểm nào, một lệnh
được nhập bời người dùng hoặc một cấu hình được đọc từ file, parser phiên dịch
dòng lệnh và đưa ra những hoạt động tức thời.

1.4.2 Nhân (Kernel)


Cung cấp những dịch vụ cơ bản của hệ thống tùy thuộc vào iOS như: quản lý
bộ nhớ, lập lịch các tiến trình..Nó cung cấp quản lý tài nguyên phần cứng (CPU, bộ
nhớ) cho các tiến trình.
Các chức năng chính của kernel:

 Lập lịch.

 Quản lý bộ nhớ.

13
1.4.3 Bộ đệm gói (Packet bufer)
Cung cấp các bộ đệm toàn cụ và kết hợp với chức năng quản lý bộ đệm để lưu
trữ gói dữ liệu đang được chuyển mạch.

1.4.4 Trình điều khiển thiết bị (Device driver)


Làm chức năng điều khiển giao tiếp giữa phần cứng va thiết bị ngoại vi, giao
tiếp giữa các tiến trình iOS, kerenl và phần cứng. Chúng cũng giao tiếp với phần
mềm chuyển mạch nhanh.
Một thiết bị chứa hai thành phần chính: thành phần điều khiển và thành phần
dữ liệu.
Thành phần điểu khiển có trách nhiệm quản lý tình trạng và trạng thái của
thiết bị.
Thành phần dữ liệu có trách nhiệm đối với tất cả các luồng hoạt động chuyển
mạch gói dữ liệu.

1.4.5 Phần mềm chuyển mạch nhanh (Fast switching


software)
Chức năng chuyển mạch gói dữ liệu cao.

1.5 ƯU, NHƯỢC ĐIỂM HỆ ĐIỀU HÀNH IOS

1.5.1 Ưu điểm

 Nền tảng ổn định, ứng dụng có khả năng tương thích cao do được phát triển
để tối ưu với các thiết bị của riêng Apple.

 Độ tin cậy và khả năng bảo mật cao do mã nguồn đóng.

 Các phiên bản mới của iOS thường hỗ trợ tốt cho các model thiết bị cũ, do đó
người dùng không phải chạy đua đổi máy mới.

 Ứng dụng phong phú, chất lượng cao và cập nhật liên tục.

14
1.5.2 Nhược điểm

 Trao đổi dữ liệu phải thông qua iTunes khá rắc rối;

 Khả năng tùy chỉnh giao diện còn hạn chế;

 iOS chỉ có mặt trên các thiết bị của Apple, mà những sản phẩm này đều có
mức giá không hề rẻ, khiến những khách hàng bình dân khó tiếp cận.

2 CHƯƠNG 2: CƠ CHẾ AN TOÀN TRONG IOS


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 an
toan(hay nói đúng hơn là ít các vụ tấn công bảo mật xảy ra). Vậy để có được đặc
điểm tuyệt vời này thì iOS đã ứng dụng những gì trong hệ điều hành của mình?

Hình 8: Cơ chế an toàn trong 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ằng 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. 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. 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
15
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.1 BẢO MẬT PHẦN CỨNG

Như đã nói ở phần trên, 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 key 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. (Đó là theo như Apple nói vậy).

2.2 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.

16
2.3 CODE SIGNING

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.

2.4 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á).

2.5 SANDBOX

Sandbox (tạm dịch: hộp cát) là một kĩ thuật bảo mật giúp Apple đảm bảo độ
an toàn cao nhất có thể cho các ứng dụng trên Mac App Store. Sandbox có thể giúp
ứng dụng khỏi bị khai thác các lỗ hổng bảo mật hoặc hạn chế các lỗi phát sinh trong
17
quá trình chạy(bug). Khi một ứng dụng sử dụng được khởi chạy, Sandbox sẽ tạo một
"tường rào" xung quanh để cách li ứng dụng với phần còn lại của hệ thống như tài
liệu người dùng, mạng, khả năng lưu tập tin, truy xuất các thiết bị ngoại vi (ví dụ như
bàn phím, máy in), danh bạ, lịch, vị trí... Bản thân Mac OS không thể một mình làm
việc này mà cần có sự hợp tác từ phía nhà phát triển phần mềm. Các lập trình viên sẽ
sử dụng "luật lệ" của Sandbox có tên là Entitlement. Các luật này được Apple quản lí
cách thức truy xuất vào tài nguyên hệ thống. Chính vì thế, Sandbox sẽ giúp giảm
thiểu khả năng máy tính của người dùng bị tấn công do tin tặc khai thác các lỗi bảo
mật. Nếu có lỗi phát sinh, lập trình viên cũng sẽ dễ dàng hơn trong việc khắc phục..
Cơ chế như sau:

Ứng dụng chỉ được chạy tại thư mục mà nó được cấp
((/private)/var/containers/Bundle/Application) 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.

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.

2.6 CÁC CƠ CHẾ 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.

2.6.1 Address Space Layout Randomization

Address Space Layout Randomization (ASLR) - Ngẫu nhiên hóa sơ đồ không


gian địa chỉ là một kỹ thuật bảo mật được sử dụng trong các hệ điều hành, được triển
khai lần đầu tiên vào năm 2001. Các phiên bản hiện tại của tất cả các hệ điều hành
phổ biến (như iOS, Android, Windows, macOS và Linux) đều có ASLR.
ASLR gia tăng tính toàn vẹn của luồng điều khiển (control-flow) của một hệ
thống, khiến các cuộc tấn công tràn bộ đệm khó thành công hơn bằng cách ngẫu
nhiên các offsets mà nó sử dụng trong phân bổ vị trí bộ nhớ.

18
Hình 9:Không gian địa chỉ của các chương trình được thay đổi ngẫu nhiên

Để thực hiện các cuộc tấn công tràn bộ đệm, kẻ tấn công cần chuẩn bị một
hàm nhiều dữ liệu rác nhất có thể, sau đó là một playload độc hại. Payload này sẽ ghi
đè lên dữ liệu mà chương trình dự định truy cập.

Buffer overflows yêu cầu kẻ tấn công biết vị trí từng phần của chương trình
trong bộ nhớ. Quá trình tìm chính xác vị trí này khá khó khăn vì cần thử nhiều lần và
chắc chắn nhiều lỗi sẽ xảy ra. Sau khi xác định xong, kẻ tấn công phải tạo ra một
payload và tìm một nơi thích hợp để inject nó vào. Nếu kẻ tấn công không biết target
code nằm ở đâu, thì việc khai khác sẽ trở nên khó khăn hoặc thậm chí là không thể.

ASLR hoạt động cùng với quản lý bộ nhớ ảo để đặt ngẫu nhiên từng vị trí của
các phần khác nhau của một chương trình trong bộ nhớ. Mỗi khi chương trình được
chạy, các thành phần (bao gồm stack, heap, và libraries) ) sẽ được chuyển đến một
địa chỉ khác trong bộ nhớ ảo. Những kẻ tấn công không còn có thể biết mục tiêu của
chúng ở đâu, bởi vì địa chỉ sẽ khác nhau mỗi lần.

ASLR hoạt động tốt hơn đáng kể trên các hệ thống 64 bit, vì các hệ thống này
cung cấp số lượng các entropy (vị trí ngẫu nhiên tiềm năng) lớn hơn nhiều.

2.6.2 eXecute Never

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.

19
TÀI LIỆU THAM KHẢO

[1]. www.forum.vnpro.org
[2].iOS Security –Computer Science & Enginerring.
[3].Viblo.asia

20
21

You might also like