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 TỒ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 là đề tài “Tìm hiểu kiến trúc an toàn của hệ điều hành iOS” 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 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 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 kinh nghiệm cho lần làm bài tập lớn cũng đồ á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 người Một những công ty nằm 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 hiện tại Apple 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 sự tăng tiến này chính là hệ điều hành chính công ty tạo đó là iOS – hệ điều hành phô biến thứ 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 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 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ôi bật iOS là một những hệ điều hành phô biến nhất hiện này Một 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 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) iOS được người dùng tải về từ App Store - kho ứng dụng của iOS, ngoài 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 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à trì bởi Apple App Store được coi là tính 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; 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 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 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 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 có thể thấy, mỗi app được chạy 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 nằm phân vùng của người dùng Các dữ liệu vùng này đượ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 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 kernel, các crypto engine – thứ 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 là các khoá thiết bị và khoá group 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ề bản nó giống một chiếc máy tính hoàn chỉnh và cung cấp nhiều tính bảo mật khác 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 bất kỳ chương trình nào chạy 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ữ 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à 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 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 enclave để khóa dữ liệu 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 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ã bất kỳ thiết bị nào khác - Với Secure enclave bạn 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 của hoạt động này có thể là dữ liệu được mã hóa chữ ký bảo mật III - - Mỗi thiết bị iOS có 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 được đính vào Application Processor (AP) và Secure Enclave Processor (SEP) 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 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 đó UID là giá trị độc nhất cho thiết bị, dùng để bảo vệ hệ thống khóa mã hoá các tệp tin hệ thống ở cấp độ thiết bị Giá trị UID không được ghi lại 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 khởi động hệ thống iOS, hệ thống gọi tới Boot ROM, nơi chứa các đoạn code không thể sửa được cũng là Apply CA (Được gắn 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 chuyển tới cho iOS kernel Nếu thất bại tại bước nào đó, quá trình khởi động 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 không khởi động được Boot ROM, nỗ lực cuối cùng của hệ thống 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 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 mục đích nhất là chỉ các thiết bị được kí bởi Apple mới có quyền chạy 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 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 cũng có các tài khoản miễn phí cho phép compile và deploy ứng dụng, 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ề bản, nó được phát triển một DRM cho các nội dung - đa phương tiện được toán qua iTunes Ban đầu nó được ứng dụng cho các luồng MPEG và QuickTime, nhiên cũng có thể sử dụng cho các file thực thi Nguyên lý bản thế này: Khi người dùng đăng kí một Apple ID, Apple tạo một bộ public/private key, đó 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ó được mã hoá bằng public key và giải mã memory chạy RAM) Vì private key lưu 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á phần cứng và firmware từ những đời 3GS Mỗi thiết bị đều có mã hoá phần cứng dựa các thuật toán AES-256 và SHA1 Thêm nữa, mỗi thiết bị có UID gắ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 cốt lõi của iOS security Nó đảm bảo rằng các ứng dụng 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 nằm container, thứ quy định nó chỉ có quyền truy cập tới file mà nó sở hữu cũng một vài API nhất định Việc truy cập tới các tài nguyên file, network socket, IPC hay shared memory bị kiểm soát bởi sandbox Cơ chế 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 các vùng thực thi bộ nhớ cũng dừng các tiến trình được sinh từ source code • Tất cả các tiến trình đợc lập với • 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 sinh 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ỉ được sinh ngẫu nhiên khởi động thiết bị Việc này 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 các tấn công return-to-lib XN là một chế để đánh dấu một vùng nào đó 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 đượ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 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 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 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ó 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 đồng thời liên tục các bản cập nhật để ngăn cản jailbreak 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 phát hiện 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 thứ điện thoại của nạn nhân Gần nhất một lố hông đã được phát hiện iMessage (phần mềm nhắn tin mặc định 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 chạy bản iOS 14.4 14.5 và thậm chí cả 14.6 Tổng kết Trên là những trình bày vắn tắt về 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 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 dữ liệu đó 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 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 Nếu tình cờ một ngày chúng ta phát hiện 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 ... 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 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... “Tìm hiểu kiến trúc an toàn của hệ điều hành iOS? ?? 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... Samsung và Huawei Đồng hành cùng Apple sự tăng tiến này chính là hệ điều hành chính công ty tạo đó là iOS – hệ điều hành phô biến thứ Thế giới chỉ sau Android và có bảo