Hồi tháng 3, Google tổ chức một cuộc thi tìm lỗ hổng trên Google Chrome với tổng giải thưởng lên đến 1 triệu Mỹ kim. Có ba mức giải thưởng, trong đó cao nhất là 60.000 Mỹ kim cho những mã khai thác lỗ hổng của chính Chrome (chứ không phải của plugin) và vượt qua được tất cả các biện pháp an toàn mà các kỹ sư Google đã dày công “bày binh bố trận”. Có hai người tham gia và cả hai đều dành được giải thưởng cao nhất. Người đầu tiên là Sergey Glazunov, một sinh viên người Nga mà tôi đã có lần đề cập đến trong bài này. Người còn lại có biệt danh là Pinkie Pie. Cho đến nay vẫn có rất ít thông tin về nhân vật này. Tất cả những gì chúng ta biết là anh ấy còn rất trẻ và không thể tiết lộ danh tính vì có thể sẽ bị công ty sa thải. Đây là một trong những yếu tố làm cho ngành an toàn thông tin rất thú vị – lâu lâu “giang hồ” lại bất thình lình xuất hiện một vị “thiếu niên xuất anh hùng” không biết từ đâu đến, học nghệ ở đâu và khi nào mà “võ công” siêu đến vậy.
Hôm nay Google công bố những lỗi mà Pinkie Pie phát hiện và cách anh ấy tận dụng chúng để chạy được mã với đầy đủ quyền trên Chrome. Tóm gọn lại thì Pinkie Pie:
1. Lợi dụng một lỗ hổng nhỏ để tải một module NaCl khi bạn viếng thăm trang web của anh ấy.
2. Dùng NaCl để khai thác một lỗi tràn số nguyên (integer overflow) trong GPU process.
3. Lợi dụng lỗi tràn số để chỉnh sửa một cấu trúc dữ liệu quan trọng, rồi từ đó có quyền đọc và ghi vào địa chỉ bất kỳ trong vùng nhớ của GPU process.
4. Biến khả năng đọc/ghi địa chỉ bất kỳ thành khả năng chạy được mã bất kỳ trong GPU process bằng kỹ thuật ROP.
5. Shellcode chạy được ở bước 3 khai thác tiếp một lỗi điều kiện đua (race condition) trong cơ chế IPC của Chrome để chuyển khả năng chạy mã trong GPU process sang khả năng chạy mã trong renderer process. Điểm thú vị là các renderer process thường có quyền thấp hơn GPU process.
6. Lợi dụng tiếp lỗi điều kiện đua trong cơ chế IPC để nâng quyền từ một renderer process thông thường lên một renderer process có quyền cao hơn, rồi giả danh extension manager.
7. Khai thác thêm hai lỗ hổng nữa để âm thầm cài và chạy một extension. Extension này sẽ tải một plugin, và plugin này chạy ngoài sandbox của Chrome với đầy đủ quyền như tài khoản của bạn.
Kinh.
Link to full article
0 nhận xét:
Đăng nhận xét