19/08/2015

An ninh Việt Nam có thể đột nhập máy bạn bằng cách nào?

Lời giới thiệu của Dân Luận: Qua phân tích dữ liệu của công ty Hacking Team mà tin tặc công bố, người ta có thể thấy an ninh Việt Nam đã sử dụng Hệ thống Kiểm Soát Từ Xa (RCS) của công ty này để theo dõi các nhà bất đồng chính kiến ở Việt Nam.

Vậy công ty Hacking Team có thể đột nhập máy tính của bạn bằng cách nào? Bài dịch sau đây của Dân Luận sẽ cho độc giả những thông tin đáng lo ngại về khả năng tin tặc đột nhập qua lỗ hổng bảo mật của phần mềm Flash. Flash của Adobe là plugin đặc biệt phổ biến, 98% người duyệt internet có cài plugin này để xem video từ các trang web, do đó việc lợi dụng thành công lỗ hổng bảo mật của phần mềm này để cài đặt mã độc là đặc biệt nghiêm trọng, và tin tặc gần như có thể xâm nhập máy tính của bất kỳ ai mà họ muốn.

Hãy thử tưởng tượng lực lượng an ninh Việt Nam đặt mã độc vào một tập tin flash đặt trên một trang web nổi tiếng, ví dụ VnExpress, rồi lừa đối tượng vào đọc. Máy của họ sẽ bị lây nhiễm và thông tin trên đó rơi vào tay an ninh. Mối lo ngại này hoàn toàn là có thực, đây là một email trao đổi giữa VIRNA, một khách hàng Việt Nam với Hacking Team:

clip_image001

Email yêu cầu tạo mã độc cho trang vnexpress.net từ VIRNA. Nguồn: WikiLeaks.

Cho đến thời điểm này những lỗ hổng bảo mật mà Hacking Team sử dụng đã được Adobe và Microsoft vá. Độc giả Dân Luận được khuyến cáo cập nhật Flash Player lên phiên bản mới nhất ngay lập tức.

Ngày 5/7/2015 công ty Hacking Team có trụ sở ở Ý đã bị tin tặc đột nhập, và đem hơn 400GB dữ liệu mật của công ty chia sẻ với công chúng. Công ty này được biết tới như nhà cung cấp các công cụ để các chính quyền và lực lượng an ninh có thể theo dõi một cách hợp pháp các đối tượng tình nghi. Trước đây công ty này đã từng tuyên bố rằng họ KHÔNG LÀM VIỆC VỚI CÁC QUỐC GIA ĐỘC TÀI.

Phần lớn những thông tin rò rỉ nói về hoạt động kinh doanh của Hacking Team, và chúng chứng tỏ những tuyên bố chính thức của họ về việc không bán cho các quốc gia độc tài là sai sự thực. Tuy nhiên, thông tin rò rỉ còn chứa những bộ công cụ cho phép công ty thực hiện các vụ đột nhập, và trong đó họ lợi dụng các lỗ hổng bảo mật của Adobe Flash Player và của bản thân Windows.

Thông tin cho biết có ít nhất là 3 lỗ hổng bảo mật – 2 trên Flash Player và 1 trên hệ điều hành Windows. Một lỗi của Flash, mã CVE-2015-0349, đã được vá.

Một lỗ hổng khác của Flash được Hacking Team mô tả là "lỗi Flash đẹp nhất trong suốt 4 năm qua". Tại thời điểm viết bài lỗi Flash này chưa được Adobe biết tới và chưa có mã CVE.

Thông tin về lỗ hổng bảo mật

Gói phần mềm bị rò rỉ có chứa proof-of-concept (mã chứng minh khái niệm): phiên bản thứ nhất biểu diễn cách bật chương trình Calculator của Windows mà không cần nạn nhân đồng ý, và phiên bản thứ hai cài đặt mã độc thực sự vào máy nạn nhân.

Trong mã chứng minh khái niệm có một văn bản mô tả chi tiết về lỗ hổng zero-day mà chúng ta thấy dưới đây. Nó nói rằng lỗ hổng này có trên Adobe Flash Player từ phiên bản 9.0 trở lên, và tất cả các trình duyệt trên máy tính bao gồm IE, Chrome, Firefox và Safari đều bị ảnh hưởng. Các báo cáo bên ngoài cũng nói rằng phiên bản Adobe Flash mới nhất (18.0.0.194 – vào thời điểm viết bài) cũng bị ảnh hưởng.

Nội dung văn bản đi kèm mã chứng minh khái niệm

Thử nghiệm: Mở tập tin "calc.html" bằng trình duyệt của bạn và nhấn nút.

Trên Windows: Chương trình Calc.exe sẽ chạy trên màn hình với IE. Với metro IE, chương trình Calc.exe sẽ chạy như một process con không có giao diện. Với Chrome/FF sandbox, mã sẽ trả về 0 từ CrerateProcessA("calc.exe").

Trên OS X: Chương trình Calculator sẽ chạy trong FF hoặc một chương trình Flash Player độc lập. Payload trả về 1 từ vfork() trong Safari sandbox.

Nguyên nhân dẫn tới lỗ hổng

Hacking Team giải thích nguyên nhân dẫn tới lỗ hổng như sau:

- Khi bạn có một object ByteArray tên là ba và gán cho nó một object nào đó, ví dụ ba[0]=object, nó sẽ gọi hàm lượng giá ValueOf().
- Hàm lượng giá ValueOf() có thể bị ghi đè, nhờ đó hacker có thể thay đổi giá trị của ba trong khi gọi hàm lượng giá ValueOf().
- Khi bạn thay đổi dung lượng bộ nhớ cho ba trong hàm ValueOf(), nó sẽ gây ra lỗi use-after-free (UAF) bởi ba[0]=object sẽ lưu lại bộ nhớ ban đầu và sử dụng lại nó sau khi hàm ValueOf() đã được gọi.

Sau khi kích hoạt lỗ hổng bảo mật UAF, độ dài Vector. bị sai lệch cho phép tiến trình đọc và ghi bộ nhớ một cách tùy ý. Với khả năng này, hacker có thể thực hiện các tác vụ sau:

- Tìm kiếm địa chỉ của kernel32.dll và tìm địa chỉ VirtualProtect.
- Tìm địa chỉ của shellcode (mã khai thác lỗ hổng bảo mật) được lưu trong ByteArray
- Gọi VirtualProtect để biến địa chỉ bộ nhớ chứa shellcode thành "mã có thể thực thi".
- Có một hàm static có tên Payload được định nghĩa trong mã AS3.
- Tìm địa chỉ đối tượng hàm Payload này, và sau đó tìm địa chỉ mã hàm thực chứa trong đối tượng.
- Ghi đè địa chỉ này bằng địa chỉ của shellcode.
- Gọi hàm Payload trong AS3, khiến cho mã shellcode được thực thi.
- Sau khi mã shellcode được thực thi thì hoàn trả lại địa chỉ hàm static nói trên.

Chúng ta có thể thấy rằng phương pháp khai thác lỗ hổng bảo mật này có thể vượt qua kiểm soát Control Flow Guard bằng cách ghi đè địa chỉ hàm static.

Kết luận

Trong khi Hacking Team nói rằng đây là lỗi đẹp nhất kể từ lỗi CVE-2010-2161, chúng ta có thể thấy một vài lỗi khác nhau đã được khai thác khi sử dụng ValueOf, bao gồm cả lỗi CVE-2015-0349 được sử dụng bởi Pwn2Own 2015.

Người sử dụng không cần phải quá lo ngại với lỗ hổng bảo mật này, bởi vì một cuộc tấn công quy mô lớn chưa được phát hiện. Chúng tôi sẽ cập nhật bài viết này với các thông tin và khuyến cáo nếu thấy cần thiết sau đây.

Cập nhật ngày 7/7/2015, lúc 7h:

Dựa trên các phân tích bổ sung, chúng tôi thấy rằng lỗ hổng của Flash và của Windows đều chưa được gán mã CVE. Chúng tôi đã cập nhật bài viết để phản ảnh điều này.

Cập nhật ngày 7/7/2015, lúc 9h:

Dựa trên phân tích của chúng tôi, có thể xác định rằng lỗi bảo mật này đã được dùng trong một số cuộc tấn công mà chúng tôi theo dõi gần đây. Chúng tôi sẽ cập nhật thông tin trên một bài viết khác sớm.

Bài bổ sung: Lỗi bảo mật Hacking Team lợi dụng được dùng trong các cuộc tấn công ở Hàn Quốc và ở Nhật vào ngày 1/7.

Cập nhật ngày 8/7/2015, lúc 7h:

Adobe đã đưa ra bản vá lỗi cho lỗ hổng bảo mật của mình. Thông tin chi tiết được đề cập ở đây https://helpx.adobe.com/security/products/flash-player/apsb15-16.html. Chúng tôi khuyến nghị người sử dụng cập nhật Flash càng sớm càng tốt.

Cập nhật ngày 14/7/2015, lúc 4h:

Lỗi bảo mật của Flash đã được gán mã CVE-2015-5119 trong báo cáo APSA15-03 vào 7/7/2015.

Một số cột mốc liên quan đến Hacking Team:

- 5/7/2015: Công ty Ý, Hacking Team, bị tin tặc tấn công, và hơn 400GB dữ liệu mật của công ty bị công bố.

- 7/7/2015: Ba lỗ hổng: 2 của Flash và 1 của Windows được phát hiện trong dữ liệu rò rỉ.

- 11/7/2015: Hai lỗ hổng bảo mật khác của Flash Player, CVE-2015-5122 và CVE-2015-5123, được tìm thấy trong dữ liệu rò rỉ.

- 13/7/2015: Phân tích cho thấy Hacking Team sử dụng UEFI BIOS rootkit để duy trì hệ thống điều khiển từ xa (RCS) của họ cài đặt trong hệ thống của nạn nhân. Điều này có nghĩa là dù nạn nhân cài lại máy, xóa sạch ổ cứng, họ cũng không thoát khỏi sự lây nhiễm trở lại.

- 14/7/2015: Một lỗ hổng zero-day (CVE-2015-2425) được tìm thấy trong Internet Explorer.

- 16/7/2015: Trên mặt trận điện thoại di động, một chương trình tin tức giả vờ được thiết kế để lọt vào Google Play được phát hiện

- 20/7/2015: Một lỗi zero-day khác (CVE-2015-2426) của Windows được phát hiện, và Microsoft đã vá lỗi.

- 21/7/2015: Theo phân tích của RCSAndroid Spying Tool thì Hacking Team có thể nghe lén cuộc gọi và kiểm soát hoàn toàn điện thoại của bạn từ xa.

- 28/7/2015: Một chiến dịch tấn công các trang web của Đài Loan và Hồng Kông gần đây đã đưa lên các chương trình Flash có chứa mã độc liên quan đến Hacking Team.

Nguồn: Unpatched Flash Player Flaw, More POCs Found in Hacking Team Leak, TrendMicro Labs

Nguồn: https://www.danluan.org/tin-tuc/20150816/an-ninh-viet-nam-co-the-dot-nhap-may-ban-bang-cach-nao