Mã độc DarkSword trên iPhone: chuỗi sáu lỗ hổng, biến thể P7 và iOS nào an toàn

Chuỗi khai thác DarkSword chạy thế nào, biến thể P7 lấy gì, phiên bản iOS nào an toàn, và cần làm gì khi chưa cập nhật được.

· Đăng ngày · 10 phút đọc

Ngày 25/10/2026, BIDV, VietinBank và Agribank cùng khuyến cáo khách hàng dùng iPhone cập nhật iOS vì mã độc DarkSword. DarkSword thực chất là gì, iPhone nào thật sự bị ảnh hưởng, và bạn cần làm gì? Trả lời ngắn: đó là một chuỗi sáu lỗ hổng iOS, đều đã được vá từ nhiều tháng trước, chiếm quyền một iPhone chưa cập nhật chạy iOS 18.4 đến 18.7 chỉ khi máy mở một trang web có cài bẫy. Phần mới là biến thể P7, chuyên lấy mật khẩu trong Keychain và ví tiền mã hoá.

Mình đã đọc các báo cáo gốc của Google Threat Intelligence Group, iVerify và Apple, rồi gom lại một chỗ: dòng thời gian, chuỗi khai thác chạy thế nào, từng payload lấy gì, cách kiểm tra máy của bạn, và người làm website rút ra được gì.

DarkSword trong một đoạn

DarkSword là một bộ khai thác trọn chuỗi (full-chain exploit kit) cho iOS: đi từ "Safari tải một trang" tới "kẻ tấn công có quyền kernel" mà người dùng không cần chạm vào gì. Nhóm tình báo mối đe doạ của Google (GTIG) đặt tên theo chuỗi ký tự tìm thấy trong payload thu được, và công bố phân tích vào tháng 3/2026. Nó dùng sáu lỗ hổng, ba trong số đó là zero-day lúc bị khai thác lần đầu, và hỗ trợ iOS 18.4 đến 18.7. Điểm khác thường: toàn bộ chuỗi khai thác và mọi payload GTIG thu được đều viết bằng JavaScript. Điều này ảnh hưởng cả cách nó chạy lẫn tốc độ nó lan ra.

Dòng thời gian: từ zero-day cuối 2025 tới cảnh báo của ngân hàng Việt Nam

Thời điểm Sự kiện
11/2025 GTIG ghi nhận các chiến dịch đầu tiên: một trang giả mạo Snapchat nhắm vào Ả Rập Xê Út, và một công ty giám sát của Thổ Nhĩ Kỳ (PARS Defense) nhắm vào Thổ Nhĩ Kỳ
11–12/2025 GTIG báo lỗi cho Apple; phần lớn được vá trong iOS 26.1 và 18.7.2 (tháng 11), 26.2 và 18.7.3 (tháng 12)
12/2025 Một nhóm gián điệp bị nghi là của Nga (UNC6353) dùng DarkSword trên các website Ukraine bị xâm nhập
1/2026 PARS Defense chạy chiến dịch ở Malaysia
11/2/2026 iOS 26.3 vá lỗi cuối cùng, nằm trong dyld
18–19/3/2026 GTIG, iVerify và Lookout công bố báo cáo
Cuối 3/2026 Một bản sao của bộ công cụ bị đăng lên GitHub (heise); Apple phát hành iOS 18.7.7
1/4/2026 Apple mở iOS 18.7.7 cho nhiều máy hơn để người dùng iOS 18 bật cập nhật tự động nhận được bản vá (Apple)
8/2026 iVerify phát hiện biến thể mới, P7, trên iPhone của một nhân viên tổ chức tài chính
8–9/10/2026 iVerify công bố phân tích P7
24–25/10/2026 VietinBank, BIDV và Agribank cảnh báo khách hàng (CafeF)

Các ngân hàng đang cảnh báo về một mối đe doạ đã được vá gần một năm. Rủi ro nằm ở số lượng lớn điện thoại chưa bao giờ cài các bản cập nhật đó. Theo bài phân tích của Kaspersky, Apple ước tính khoảng một phần tư số thiết bị đang hoạt động vẫn chạy iOS 18 trở xuống.

Chuỗi khai thác: sáu lỗi đi từ một trang web tới kernel

Mỗi bước cho kẻ tấn công thêm một phần quyền trên máy. Bảng dưới theo phân tích của GTIG:

Bước CVE Thành phần Zero-day Vá trong
Chạy code trong Safari (trước 18.6) CVE-2025-31277 JIT của JavaScriptCore Không iOS 18.6
Chạy code trong Safari (18.6–18.7) CVE-2025-43529 Bộ thu gom rác của JavaScriptCore Có 18.7.3, 26.2
Vượt cơ chế xác thực con trỏ (PAC) CVE-2026-20700 dyld Có 26.3
Thoát sandbox nội dung web sang tiến trình GPU CVE-2025-14174 ANGLE (WebGL) Có 18.7.3, 26.2
Thoát từ tiến trình GPU sang mediaplaybackd CVE-2025-43510 Kernel XNU, copy-on-write Không 18.7.2, 26.1
Đọc/ghi bộ nhớ kernel CVE-2025-43520 Kernel XNU, race condition trong VFS Không 18.7.2, 26.1
Sơ đồ chuỗi DarkSword: trang web có bẫy dẫn vào tiến trình nội dung web của Safari trong sandbox, rồi tiến trình GPU, rồi mediaplaybackd, rồi đọc/ghi bộ nhớ kernel, cuối cùng là payload JavaScript. Mỗi bước ghi CVE được dùng.Trang web có cài bẫyiframe ẩn tải exploit đúng với phiên bản iOS của máymở bằng SafariSafari: tiến trình nội dung web (sandbox)CVE-2025-31277 / CVE-2025-43529: JavaScriptCoreCVE-2026-20700: dyld, vượt PACCVE-2025-14174 · ANGLE (WebGL)Tiến trình GPUđã ra khỏi sandbox nội dung webCVE-2025-43510 · XNU copy-on-writemediaplaybackdnạp JavaScriptCore riêng và chạy tiếp bằng JSCVE-2025-43520 · XNU, race trong VFSĐọc/ghi bộ nhớ kernelchạm được dữ liệu mọi app và cả Keychainpayload bắt đầu chạyPayload JavaScriptGHOSTBLADE · GHOSTKNIFE · GHOSTSABER · P7
Mỗi ranh giới tiến trình cần một lỗi riêng. Vá bất kỳ lỗi nào cũng làm chuỗi gãy.

Chỉ một lỗi trình duyệt thì kẻ tấn công mới vào được tiến trình nội dung web của Safari, vốn bị sandbox rất chặt. Hai lần thoát sandbox và lỗi kernel mới biến điều đó thành quyền đọc tin nhắn, Keychain và dữ liệu của app khác. Vì vậy chỉ cần vá một mắt xích là chuỗi này gãy, và một máy đã cập nhật đầy đủ thì chuỗi này không chạm tới được.

Vì sao viết bằng JavaScript lại quan trọng

GTIG không tìm thấy file thực thi native nào trong các mẫu. Khi đã đọc/ghi được bộ nhớ, các bước sau nạp một bản sao của engine JavaScript vào trong mediaplaybackd và tiếp tục chạy bằng JavaScript, gọi hàm native qua các đối tượng trung gian. Có hai hệ quả.

Thứ nhất, chuỗi khai thác không cần vượt qua các lớp bảo vệ của Apple chống chạy code native chưa ký (PPL và SPTM), vì nó không chạy code native nào. Nó dùng lại code Apple đã ký sẵn.

Thứ hai, nó dễ bị sao chép và sửa lại. Một exploit JavaScript là văn bản đọc được. Kaspersky cho biết kẻ tấn công để nguyên mã nguồn trên các website bị nhiễm, và một bản sao xuất hiện trên GitHub chỉ vài ngày sau khi công bố. Một nhà nghiên cứu của iVerify nói với TechCrunch rằng nó "có thể bị dùng lại quá dễ dàng". Đó là cách một công cụ bán cho khách hàng giám sát cuối cùng lại nằm trong các chiến dịch nhắm vào người bình thường để tìm ví tiền mã hoá.

Có một điểm tốt. Theo Kaspersky, mã độc này không ghi file (fileless) và không tồn tại qua lần khởi động lại. Khởi động lại máy chấm dứt lây nhiễm, nhưng không lấy lại được những gì đã bị gửi đi.

Nạn nhân bị dẫn tới exploit thế nào: watering hole và quảng cáo

Không ai bị gửi app độc hại cả. Bộ công cụ được phục vụ từ trang web: một trang giả mạo, trang do kẻ tấn công sở hữu, hoặc một website hợp pháp bị chèn thêm đúng một thẻ <script> (kiểu tấn công "watering hole", đầu độc nơi nạn nhân hay lui tới). Theo các bài tổng hợp báo cáo của iVerify, nạn nhân của P7 bị dẫn tới qua quảng cáo độc hại.

Theo GTIG, các trang đích lọc người truy cập trước khi phục vụ bất cứ thứ gì:

  • Lấy dấu vân tay trình duyệt (fingerprinting) để chắc đây là Safari trên iOS thật (ví dụ có Apple Pay và WebGL2, không có các API riêng của Android hay Chrome).
  • Một cờ phiên trong sessionStorage (P7 dùng localStorage) để không tấn công một máy hai lần.
  • Người không phải mục tiêu bị chuyển hướng sang một trang bình thường, nên đa số người truy cập không thấy gì lạ.
  • Một iframe ẩn kích thước bằng 0 nạp bộ tải, bộ này chọn exploit đúng với phiên bản iOS.
Sơ đồ cách DarkSword được phát tán: người dùng mở một trang bị xâm nhập hoặc một quảng cáo, trang đích kiểm tra có phải Safari iOS thật và máy chưa bị tấn công; nếu không thì chuyển sang trang bình thường, nếu có thì một iframe ẩn tải bộ nạp chọn exploit theo phiên bản iOS.Bạn mở một trang tin hoặc thấy quảng cáotrang thật bị chèn một <script>, hoặc ô quảng cáo độcTrang đích kiểm tra người truy cậpCó phải Safari iOS thật? Có Apple Pay, WebGL2,không có API riêng của Chrome hay AndroidMáy này bị tấn công chưa? Xem cờ trong trình duyệtkhôngcóChuyển hướngsang trang bình thường;đa số không thấy gìiframe ẩnkích thước 0, tải bộ nạpBộ nạpchọn exploit đúng vớiphiên bản iOS của máy
Nhờ bước lọc, đa số người truy cập, và mọi máy mà bộ công cụ không tấn công được, chỉ thấy một trang bình thường.

Với người dùng, điều này nghĩa là không có khoảnh khắc nào nhìn thấy được để mà nghi ngờ. "Đừng bấm link lạ" vẫn là lời khuyên đúng, nhưng ở đây thứ kích hoạt có thể là một trang tin bạn đọc hằng ngày, hay một ô quảng cáo trên đó.

Các payload lấy những gì

GTIG tìm thấy ba payload, mỗi cái do một khách hàng khác nhau của bộ công cụ dùng, đều viết bằng JavaScript:

Payload Bên sử dụng Hành vi
GHOSTBLADE UNC6353 (Ukraine) Chạy một lần rồi tải lên: iMessage, Telegram, WhatsApp, email, danh bạ, lịch sử cuộc gọi, Keychain, mật khẩu Wi-Fi, lịch sử vị trí, metadata ảnh, Ghi chú, Sức khoẻ, file iCloud Drive, dữ liệu ví tiền mã hoá
GHOSTKNIFE Chiến dịch nhắm vào Ả Rập Xê Út Backdoor: tài khoản, tin nhắn, dữ liệu trình duyệt, vị trí, chụp màn hình, ghi âm micro, kênh điều khiển có mã hoá
GHOSTSABER PARS Defense Backdoor: liệt kê app và file, chạy truy vấn SQLite trên cơ sở dữ liệu của app, tải file lên, chạy JavaScript tuỳ ý

Cả ba đều xoá báo cáo crash của các tiến trình mà chuỗi khai thác đã đi qua, xoá luôn một dấu vết dễ thấy.

P7: biến thể đứng sau các cảnh báo tuần này

P7 không phải lỗ hổng iOS mới. Nó là một implant đã được sửa, cài vào sau khi cùng chuỗi DarkSword khai thác thành công, và được đặt tên theo tiền tố p7_ mà tác giả thêm vào code. iVerify liệt kê những thay đổi:

  • Kín tiếng hơn: bỏ log gỡ lỗi, ít lần chèn vào tiến trình khác hơn, và dùng bộ nhớ trình duyệt để không khai thác lại cùng một máy.
  • Trích Keychain ngay trên máy: dựng một file JSON chứa các mục trong Keychain rồi mới tải lên, thay vì chép nguyên cơ sở dữ liệu ra ngoài.
  • Ví tiền mã hoá: có lệnh tìm ví và một phần xử lý riêng cho imToken.
  • Điều khiển hai chiều: implant chạy bên trong SpringBoard (tiến trình màn hình chính) và hỏi server mỗi 15 giây để nhận lệnh, ví dụ tải file về, tải ảnh lên, liệt kê app, chép cơ sở dữ liệu Ghi chú, hay chạy JavaScript tuỳ ý.

iVerify so sánh P7 với nhiều biến thể có AI hỗ trợ mà họ gặp: tác giả P7 hiểu đoạn code họ đang sửa. Họ cũng cho biết các dấu hiệu nhận diện cũ không còn bắt được nó. Đó là lý do thông báo của VietinBank nói các dấu hiệu nhiễm thường gặp không còn đáng tin.

Kiểm tra iPhone của bạn: phiên bản nào an toàn

Vào Cài đặt › Cài đặt chung › Giới thiệu và xem phiên bản iOS. Dựa trên khuyến cáo của Apple và danh sách bản cập nhật bảo mật:

iPhone của bạn An toàn trước DarkSword khi chạy
iPhone 11 trở lên iOS 26.3 trở lên, hoặc iOS 27 (hiện tại: 27.0.1)
iPhone XS, XS Max, XR iOS 18.7.7 trở lên (mới nhất: 18.7.10)
Các đời cũ hơn iOS 15.8.7 hoặc 16.7.15

Máy nào đang ở iOS 18.4 đến 18.7.6 là nằm trong vùng bị ảnh hưởng. Nếu bạn dùng iPhone 11 trở lên mà vẫn ở iOS 18, Apple khuyên lên hẳn phiên bản chính hiện tại, nơi có các lớp bảo vệ mạnh nhất.

Cần làm gì, theo thứ tự

  1. Cập nhật trong Cài đặt › Cài đặt chung › Cập nhật phần mềm, và bật cập nhật tự động.
  2. Chưa cập nhật được ngay thì bật Chế độ phong toả (Lockdown Mode) trong Cài đặt › Quyền riêng tư & Bảo mật. Apple nói máy bật chế độ này được bảo vệ khỏi các cuộc tấn công này kể cả khi chạy phần mềm cũ. Nó chặn một số công nghệ web phức tạp, nên vài trang sẽ chạy khác đi.
  3. Giữ Duyệt web an toàn (Safe Browsing) của Safari ở trạng thái bật. Apple cho biết nó chặn các tên miền đã được xác định trong các cuộc tấn công này.
  4. Nếu nghi máy đã bị xâm nhập, khuyến cáo của ngân hàng khớp với các báo cáo: sao lưu dữ liệu quan trọng, khôi phục cài đặt gốc, cập nhật iOS, rồi đổi mật khẩu ngân hàng và các tài khoản quan trọng từ một thiết bị bạn tin tưởng. Chuyển tiền ra khỏi mọi ví nóng có khoá nằm trên máy đó, vì P7 nhắm đúng vào chỗ này.

Có hai giới hạn nên biết. Khởi động lại xoá được implant không ghi file, nhưng không xoá được hậu quả của những gì nó đã gửi đi. Và cập nhật bảo vệ bạn khỏi chuỗi này, không phải khỏi chuỗi tiếp theo. Không bước nào ở đây thay được các lớp bảo vệ phía ngân hàng như OTP hay hạn mức giao dịch.

Người làm website rút ra được gì

DarkSword cần một trang web làm điểm xuất phát, và nhiều trang trong số đó là website hợp pháp bị chèn một script, hoặc các ô quảng cáo. Nếu bạn vận hành một website, câu hỏi đáng đặt ra là bạn đang cho phép code nào chạy trên đó:

  • Biết rõ từng script bên thứ ba. Thẻ của mạng quảng cáo hay công cụ analytics chạy với quyền ngang code của chính bạn. Một Content Security Policy liệt kê các nguồn script được phép sẽ làm một thẻ <script> bị chèn từ tên miền lạ không chạy được.
  • Ghim các file tĩnh của bên thứ ba bằng Subresource Integrity, để file trên CDN bị thay đổi sẽ bị từ chối.
  • Coi "website của mình bị dùng để phát tán mã độc" là một loại sự cố thật, không chỉ "dữ liệu của mình bị lấy". Theo dõi thẻ <script> hay <iframe> lạ trong HTML trên production giúp bắt được chính bước chèn code.

Các biện pháp này giảm khả năng website của bạn trở thành bước phát tán. Chúng không giúp gì cho một người truy cập có điện thoại chưa vá và gặp exploit ở nơi khác, nên cập nhật iOS vẫn là cách sửa quan trọng nhất.

Tóm tắt

  • DarkSword là chuỗi khai thác sáu lỗi cho iOS 18.4–18.7, viết bằng JavaScript, kích hoạt chỉ bằng việc mở một trang web.
  • Mọi lỗi đều đã được vá: iOS 26.3 trở lên hoặc iOS 27, 18.7.7 trở lên với máy chỉ chạy được iOS 18, 15.8.7 hoặc 16.7.15 với máy cũ nhất.
  • P7 là implant kín tiếng hơn cho cùng chuỗi đó, lấy dữ liệu Keychain và ví tiền mã hoá; đây là thứ các ngân hàng Việt Nam đang cảnh báo.
  • Chưa cập nhật được: bật Chế độ phong toả. Nghi bị nhiễm: sao lưu, khôi phục, cập nhật, đổi mật khẩu trên máy khác.
  • Người làm website: kiểm soát script bên thứ ba bằng CSP và SRI để trang của bạn không trở thành nơi phát tán.

Nếu bạn từng xử lý hậu quả của một bộ khai thác trên một đội điện thoại hay một website bị xâm nhập, mình rất muốn được trao đổi. Email của mình ở trang chủ.