An ninh Việt nam có thể đột nhập máy bạn bằng cách nào?
Theo Dân Luận
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:
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.