Giống như mọi dịch vụ trực tuyến khác, Apple có một tùy chọn để những người quên mật khẩu vào tài khoản iCloud của họ có thể reset mật khẩu khi nhập chính xác mã số OTP với 6 chữ số được gửi đến số điện thoại di động và địa chỉ email của họ. Để đảm bảo an toàn, Apple còn cẩn thận nhắc nhở người dùng nhận mã số OTP đó trên số điện thoại và địa chỉ email mà họ tin tưởng.
Tuy nhiên, một hacker mũ trắng có tên Laxman Muthiyah đã tìm ra cách vượt qua lớp bảo vệ của Apple để đổi mật khẩu cho bất kỳ tài khoản iCloud nào mình muốn. Nhưng điều đáng nói hơn cả là cách hành xử của Apple khi nhận được thông tin đó.
Cách thức đơn giản reset mật khẩu iCloud
Không dùng đến các thủ thuật phức tạp, Laxman áp dụng giải pháp đơn giản nhất để tìm ra mã số OTP này: thử sai từng lần một. Laxman sẽ nhập thử tất cả các khả năng có thể của mã số có 6 chữ số để xem mã số nào sẽ cho kết quả đúng.
Tất nhiên, không dễ để làm vậy. Với 6 chữ số trong OTP, sẽ có khoảng 1 triệu khả năng khác nhau. Số lần nhập mã số OTP lại bị giới hạn trong 6 lần thử sai, nếu vượt quá, tài khoản sẽ bị tạm khóa trong vài giờ, kể cả khi đã đổi địa chỉ IP. Không bỏ cuộc, Laxman thử gửi đồng loạt các truy vấn mã OTP tới máy chủ Apple. Nhưng cũng giống như trên, không thể gửi quá 6 truy vấn cùng lúc tới máy chủ Apple nếu không muốn bị chặn địa chỉ IP.
Tuy nhiên, Laxman phát hiện ra Apple có 6 địa chỉ IP dành cho các máy chủ đảm nhiệm các truy vấn OTP trên toàn cầu. Do các giới hạn về số lần gửi truy vấn chỉ dành cho một IP máy chủ nào đó của Apple, nghĩa là vẫn có thể gửi tiếp các truy vấn khác đến các IP máy chủ còn lại của Apple – miễn là vẫn trong giới hạn cho phép.
Với mỗi địa chỉ IP cho máy chủ của Apple, sẽ chỉ có thể gửi đồng thời 6 truy vấn mã OTP. Điều này cũng có nghĩa là cùng lúc, từ mỗi địa chỉ IP bạn có thể gửi đến 36 truy vấn mã OTP đến 6 máy chủ Apple. Do vậy, nếu kẻ tấn công có huy động được 28.000 địa chỉ IP khác nhau, anh ta có thể gửi cùng lúc 1 triệu truy vấn đến máy chủ Apple và trong đó chắc chắn sẽ có một kết quả đúng được máy chủ Apple trả về.
28.000 địa chỉ IP không phải là vấn đề đối với các nhà cung cấp dịch vụ đám mây, nhưng Apple lại chặn truy vấn POST từ các nhà cung cấp như Amazon, Google Cloud hay Microsoft Azure. Nhưng Laxman phát hiện ra, Apple lại chỉ chặn truy vấn từ một số nhà cung cấp dịch vụ đám mây cụ thể và cuối cùng hacker này đã tìm ra một số nhà cung cấp dịch vụ đám mây không bị Apple chặn.
Một truy vấn POST gửi tới máy chủ Apple và phản hồi trở lại, việc nhập mã xác thực sai đã diễn ra quá nhiều và việc đăng nhập bị khóa tạm thời.
Và thật bất ngờ, cách làm này đã hiệu quả. Giờ Laxman này có thể đổi mật khẩu của bất kỳ Apple ID nào nếu muốn. Tất nhiên cuộc tấn công dạng này không dễ thực hiện. Để truy cập được vào tài khoản iCloud, Laxman còn phải vượt qua lớp khóa mã hóa 6 ký tự của iPhone có liên kết với tài khoản đó. Tuy vậy, cách thức vượt qua lớp bảo mật này cũng thực hiện tương tự như với iCloud.
Với lỗ hổng nghiêm trọng thế này, một hacker có thể kiếm được một số tiền lớn trên thị trường chợ đen, nhưng Laxman quyết định chọn cách thông báo với Apple – dù rằng số tiền thưởng sẽ ít hơn nhiều.
Sự im lặng đến đáng ngờ của Apple với lỗ hổng này
Ngày 1 tháng Sáu năm 2020, Laxman thông báo về lỗ hổng bảo mật cùng với video chứng minh tới cho nhóm bảo mật của Apple. Nhóm bảo mật của Apple thừa nhận vấn đề này và cho biết sẽ sớm sửa lỗi cho nó.
Ảnh chụp màn hình email của Laxman gửi Apple vào đầu tháng Sáu 2020.
Nhưng sau 3 tháng, rồi lại thêm 5 tháng chờ đợi, Laxman vẫn không nhận được cập nhật nào từ phía Apple về lỗ hổng mà anh cho là nghiêm trọng này. Mỗi lần anh hỏi lại nhóm bảo mật của Apple là một lần anh nhận được câu trả lời rằng họ vẫn đang sửa chữa và vẫn chưa có thông tin gì mới có thể chia sẻ cho anh.
Là một lỗ hổng khá nghiêm trọng nhưng Apple lại không có cập nhật nào về nó trong nhiều tháng liền
Đến này 1 tháng Tư năm 2021, khi kiểm tra lại lỗ hổng trên, Laxman nhận ra nó đã được vá lại trong không hề có thông tin gì từ phía Apple. Một tháng sau đó, anh lại email cho Apple một lần nữa, nói rằng kẽ hở này đã được vá vào ngày 1 tháng Tư nhưng tại sao không thấy Apple cập nhật về điều này. Thậm chí anh còn chia sẻ với họ bài viết về cách thức tìm ra lỗ hổng này.
Thế nhưng giờ là lúc mọi chuyện trở nên kỳ lạ.
Sau khi nhận được bài viết về cách thức khai thác lỗ hổng, nhóm bảo mật của Apple phủ nhận lỗ hổng này có thể sử dụng để chiếm quyền tài khoản iCloud. Họ cho rằng, cách thức này chỉ có tác dụng với những iCloud gắn liền với các iPhone, iPad không sử dụng lớp bảo vệ bằng mật khẩu hoặc mật mã.
Email của Apple cho biết, cách thức tấn công này chỉ có tác dụng với iCloud gắn trên các iPhone, iPad và máy Mac không có mật khẩu bảo vệ.
Laxman phản đối lập luận của Apple. Anh cho rằng với việc có cùng giới hạn thử sai trên máy chủ, nên cho dù thiết bị Apple có sử dụng mật khẩu hoặc mật mã hoặc thậm chí cả bảo mật xác thực 2 lớp, nó vẫn có thể bị qua mặt nhờ cách thức dò mã kể trên.
Giả thuyết về cách thức bảo mật của Apple
Nhưng Apple vẫn khăng khăng với lập luận của mình. Trong cuộc gọi cho Laxman, Apple giải thích rằng, máy chủ của công ty không gửi mã số xác thực đến cho thiết bị và rằng quá trình xác thực được diễn ra ngay trên thiết bị. Cho dù Apple không giải thích chi tiết, nhưng bằng một số công cụ như checkra1n và SSL Kill Switch, Laxman xác nhận một phần các tuyên bố của công ty.
Theo Laxman, dường như Apple dùng giao thức SRP để xác thực người dùng mà không phải gửi trực tiếp mã số xác thực đến cho thiết bị.
Theo giao thức này, khi có yêu cầu xác thực, máy chủ Apple chỉ gửi một thông số ngẫu nhiên (được gọi là salt) đến thiết bị. Thiết bị sẽ dùng số salt này để tính toán ra mã khóa dựa trên công thức có sẵn. Máy chủ Apple cũng dùng số salt này, kết hợp với một mã xác minh khác để tính toán theo công thức tương tự như trên thiết bị. Nếu cả máy chủ và thiết bị cho ra cùng kết quả thì quá trình đăng nhập mới diễn ra.
Vì vậy, Apple tự tin rằng, cách duy nhất để dò được mã xác thực iCloud là phải mở khóa được iPhone hoặc iPad gắn liền với nó, nhưng điều này là không thể do giới hạn về số lần thử sai trên thiết bị.
Tuy nhiên, Laxman cho rằng, cách làm của mình là nhắm đến điểm yếu khi máy chủ Apple cho phép nhận cùng lúc hàng loạt truy vấn mã xác thực từ một tài khoản iCloud, không phải cách tấn công vét cạn mã số xác thực tài khoản.
Để chứng minh lập luận của mình, Laxman quyết định thử nghiệm bằng cách tấn công reset mật khẩu của một iPhone bất kỳ. Sau lần nhập thử mã xác thực đầu tiên, anh chặn bắt được dữ liệu (bao gồm số salt và mã xác thực) gửi từ máy chủ Apple đến thiết bị.
Tuy nhiên, anh kinh ngạc phát hiện ra rằng, điểm yếu này đã bị bít lại. Trong số 30 truy vấn được anh gửi cùng lúc đến thiết bị Apple, chỉ một truy vấn được tiếp nhận và 29 truy vấn còn lại bị từ chối. Điều này nghĩa là cách thức tấn công của anh đã không còn dùng được nữa.
Theo Laxman, nếu xét đến việc lỗ hổng này xuất hiện trong các lớp bảo mật của Apple mà anh đã từng thử nghiệm trước đây, bao gồm xác thực SMS, mã xác thực email, xác thực hai lớp, xác thực mật khẩu, rất khó có khả năng nó không xuất hiện trên thiết bị của Apple, cũng như nó đã được vá lại trước khi báo cáo của Laxman được gửi tới công ty.
Còn nếu quả thật Apple đã âm thầm vá lại lỗ hổng đó sau khi Laxman báo cáo về nó, nghĩa là lỗ hổng này còn nghiêm trọng hơn nhiều so với suy nghĩ ban đầu của anh. Do đó nếu giả định của anh là đúng, lỗ hổng này không chỉ giúp chiếm được bất kỳ tài khoản iCloud nào mà còn cả mã khóa của thiết bị Apple gắn liền với nó. Ngay cả khi cách thực hiện cuộc tấn công này khá phức tạp, lỗ hổng này vẫn cho phép hack bất cứ iPhone/iPad nào dù dùng 4 hay 6 chữ số.
Tuy nhiên giờ đây lỗ hổng này đã được bít lại, việc tấn công bằng truy vấn đồng thời không còn hiệu quả nữa, Laxman không có cách nào có thể xác thực tuyên bố của mình được nữa. Hy vọng cuối cùng là lời xác nhận từ Apple nhưng họ cũng không phản hồi lại email của Laxman nữa.
Thất vọng hoàn toàn về cách hành xử của Apple
Mặc dù vậy, Apple vẫn gửi cho Laxman email thông báo tiền thưởng vì đã phát hiện ra lỗi bảo mật cho công ty. Nhưng nó cũng không làm Laxman thấy đỡ thất vọng hơn về cách hành xử của Apple.
Email thông báo tiền thưởng phát hiện lỗi của Laxman là 18.000 USD.
Số tiền thưởng mà Laxman nhận được từ Apple là 18.000 USD. Trong khi đó, trên trang web của Apple, số tiền thưởng cho việc chiếm quyền tài khoản iCloud là 100.000 USD, trích xuất dữ liệu từ một iPhone bị khóa là 250.000 USD. Trong khi đó báo cáo của Laxman liên quan đến cả 2 kịch bản này (trước khi lỗ hổng được vá), nên số tiền thưởng có thể lên tới 350.000 USD.
Số tiền thưởng Apple dành cho các lỗ hổng nghiêm trọng
Thậm chí nếu Laxman chọn cách bán các lỗ hổng này cho các công ty mua lỗ hổng khai thác như Zerodium, số tiền thưởng có khi còn lớn hơn nữa. Thế nhưng Laxman đã chọn cách làm có đạo đức hơn, đó là thông báo cho Apple, nhưng hóa ra cách hành xử và tiền thưởng của công ty lại làm anh rất thất vọng. Nó không chỉ không xứng đáng với phát hiện của mình mà còn không xứng đáng với công sức làm việc và chờ đợi trong suốt một năm qua.
Chính vì vậy, Laxman quyết định từ chối khoản tiền thưởng không xứng đáng này và công bố toàn bộ phát hiện của mình mà không chờ đợi phản hồi từ phía Apple nữa.
Tham khảo: Thezerohack
Xem Chi Tiết Ở Đây >>>
Bạn có thể quan tâm:
>> Máy nhồi bột Bear có tốt không? Địa chỉ mua máy nhồi bột Bear chính hãng
>> Nồi phủ sứ an toàn Honey's HO-AP2C182 size 18 màu vàng
>> Trên tay Galaxy A52 5G: Phiên bản nâng cấp với màn hình 120 Hz, chip Snapdragon 750G và thiết kế không đổi
0 nhận xét:
Đăng nhận xét