Antivirus: Giám sát, can thiệp vào luồng dữ liệu người dùng trong quá trình dò quét mã độc

08:20 | 20/12/2017
Vũ Mạnh Hùng , Vietinbank (Theo “Security with a hint of surveillance” – Tạp chí [IN]Secure số 53)

Trong không gian mạng hiện nay, việc phòng chống mã độc trên các thiết bị kết nối mạng có sự trợ giúp đắc lực của các công cụ antivirus. Một trong những công cụ antivirus phổ biến nhất hiện nay là Kaspersky Internet Security (KIS). Theo công bố từ phía nhà cung cấp, công cụ này bảo vệ người dùng tránh được những đe dọa trên môi trường Internet, bảo mật thông tin cá nhân và đảm bảo an toàn khi giao dịch online. Những tính năng trên là cần thiết, nhưng trong đó vẫn có một số tác vụ không được liệt kê và không phải tác vụ ẩn nào cũng tốt cho người dùng.

Một trong số các tác vụ không được liệt kê ra là việc KIS ngầm giám sát kết nối HTTPS trên PC. Khi truy cập website bằng giao thức HTTPS, KIS thường xuyên “chen ngang” vào giữa các kết nối và âm thầm chuyển tiếp tất cả dữ liệu trao đổi giữa trình duyệt (browser) và máy chủ web (web server). Rõ ràng, công cụ này có thể truy cập tất cả các dữ liệu (kể cả dữ liệu đã được mã hóa) và có thể chỉnh sửa nội dung thông tin.

Kỹ thuật giám sát web tương tự cũng được sử dụng bởi Firewalls nhằm phát hiện mã độc. Tuy nhiên, có 2 điểm khác nhau căn bản: Đầu tiên, các công cụ chống mã độc thông thường không giám sát dữ liệu được mã hóa hoặc bảo vệ, giao thức HTTPS được thiết kế nhằm bảo vệ dữ liệu khỏi các phương thức giám sát. Hai là, kỹ thuật KIS sử dụng là không được phép và sẽ tạo rủi ro đối với thông tin cá nhân người dùng.


Hình 1. Chứng chỉ không hợp lệ (A) và chứng chỉ hợp lệ (B) của website

Ví dụ đối với chữ ký điện tử trong Transport Layer Security - TLS (bảo mật tầng truyền tải), mọi website bảo mật đều có một chữ ký điện tử gắn liền với nó. Mỗi khi trình duyệt kết nối đến một điểm đầu cuối HTTPS (end point), website gửi lại chữ ký của mình để trình duyệt xác thực độ tin cậy của website. Nếu chữ ký là hợp lệ (chứa thông tin trùng địa chỉ website do một tổ chức đơn vị chứng thực tin cậy phát hành và chưa bị thu hồi), trình duyệt xem đó là website tin cậy và tiếp tục kết nối. Ngược lại, trình duyệt sẽ đưa ra cảnh báo người dùng đang kết nối đến một website không an toàn.

Trong giao thức HTTPS, chữ ký điện tử đóng 2 vai trò quan trọng: chúng thể hiện tính xác thực của website, giúp các bên tham gia thiết lập kết nối an toàn. Việc này được thực hiện bằng kỹ thuật mã hóa mạnh mẽ, khiến người ngoài không thể đọc được dữ liệu trao đổi giữa các bên ngay cả khi có đủ quyền truy cập vào kết nối đó. Trong trường hợp này, để khai thác kênh TLS của người dùng, tin tặc có thể đặt một máy chủ proxy trung gian. Dựa vào đó, thiết lập một máy chủ TLS thông qua DNS spoofing hay kỹ thuật tương tự khác khiến trình duyệt nhầm tưởng máy chủ trung gian chính là máy chủ đích. Khi proxy nhận được kết nối từ trình duyệt, nó thiết lập một kết nối TLS của chính nó đến tài nguyên đích và chuyển tiếp hoặc chỉnh sửa nội dung dữ liệu nhận được từ trình duyệt tới máy chủ đích.

Tuy nhiên, kỹ thuật mã hóa sử dụng trong chữ ký điện tử không cho phép máy chủ proxy sử dụng chứng thực của website thật. Đó là lý do kẻ nghe lén phải đưa ra một chứng thực giả mạo chứa các thông tin giống với thông tin của website thật gắn vào proxy. Khi trình duyệt kết nối đến proxy, máy chủ này sẽ gửi về chứng thực giả và “hy vọng” trình duyệt không phát hiện ra điểm khác biệt với chứng thực thật. Đó là một rủi ro thực sự và đã được hạn chế bằng cách giới hạn các đơn vị cung cấp dịch vụ chứng thực điện tử. Chữ ký điện tử cho các website hợp pháp được phát hành bởi các đơn vị xác thực (CA) tin cậy như Verisign, Thawte, hay GlobalSign.... Trước khi cấp chứng thực cho một website, CA sẽ kiểm tra chủ sở hữu của website để chắc chắn tổ chức, công ty đứng sau đó là thật và tuân thủ các quy định liên quan.

Mỗi trình duyệt web duy trì một danh sách nhà cung cấp chứng thực cùng chứng thực được phát hành bởi các nhà cung cấp đó. Điều này nhằm ngăn chặn tin tặc tự tạo ra chứng thực giả và phát hành cho những website không hợp pháp, như trường hợp máy chủ proxy đã đề cập ở trên. Khi website cung cấp chứng thực không có trong danh sách CA của trình duyệt, một cảnh báo sẽ được hiển thị và khuyến cáo người dùng dừng kết nối. Thông thường, không thể truy cập vào dữ liệu trao đổi giữa trình duyệt và máy chủ HTTPS nó kết nối. Đó là nguyên nhân vì sao HTTPS được sử dụng phổ biến để bảo vệ dữ liệu truyền nhận trên môi trường Internet.

Vậy làm cách nào KIS truy cập được vào dữ liệu này? Như đã nói, KIS “chen ngang” vào yêu cầu (request) của trình duyệt gửi bằng giao thức HTTPS và không cho chúng vượt ra khỏi hệ thống cục bộ. Thay vào đó, KIS âm thầm khởi chạy một máy chủ HTTPS proxy ngay trên máy tính đó, rồi chuyển hướng yêu cầu của trình duyệt đến máy chủ proxy. Khi đó máy chủ proxy tự thiết lập kết nối đến tài nguyên đích và sau đó hoạt động tương tự như một switch, chuyển tiếp dữ liệu nhận được từ trình duyệt tới tài nguyên HTTPS và ngược lại.

Với cách thức này, rõ ràng KIS đóng vai trò chủ động trong cả hai kết nối (với trình duyệt và tài nguyên đích), do đó KIS có thể đọc hoặc chỉnh sửa dữ liệu truyền đến và gửi đi. Vì thế, trình duyệt không phát hiện ra sự có mặt của một máy chủ HTTPS lạ trên đường truyền. KIS sinh ra một chứng thực giả chứa tên của tài nguyên HTTPS trình duyệt đang yêu cầu và gắn nó vào máy chủ proxy.

KIS có toàn quyền truy cập vào hệ điều hành máy tính nên có khả năng thay đổi cấu hình trình duyệt. Trong quá trình cài đặt, KIS ngầm bổ sung các đơn vị chứng thực của riêng nó vào danh sách CA hợp lệ trên trình duyệt. Từ đó, nó có thể sử dụng chính đơn vị chứng thực đó để cấp chứng thực khi cần, và tất cả các chứng thực này là đáng tin với trình duyệt. Bởi vì tổ chức chứng thực này không có điểm khác biệt nào so với các đơn vị xác thực trong danh sách của hệ thống và trình duyệt không có lý do gì để nghi ngờ. Chính điều này đã giúp KIS can thiệp được vào các kết nối an toàn.


Hình 2. Đường truyền gốc và đường truyền đã bị thay đổi

Những hoạt động trên của KIS được xem như kiểu tấn công người đứng giữa chủ động, có khả năng giám sát và chỉnh sửa dữ liệu truyền nhận giữa hai đầu A và B bằng cách thiết lập kết nối đến máy tính của nạn nhân và chuyển tiếp dữ liệu trao đổi giữa chúng. Trong kiểu tấn công này, đầu A tin rằng đó là giao tiếp trực tiếp với đầu B trong khi thực tế dữ liệu liên lạc lại đi qua một máy chủ trung gian phục vụ việc tấn công và ngược lại.

Mặc dù KIS không giám sát tất cả lượng tin bảo mật truyền đi từ máy tính nhưng đã can thiệp vào một số tài nguyên khá phổ biến có dữ liệu đến và đi, bao gồm Google, Facebook, Twitter, OneDrive, LinkedIn, Bing, và Amazon Web Services. Các website bảo mật khác kém phổ biến hơn thường được cho qua mà không bị can thiệp.

Nhưng KIS không phải công cụ duy nhất sử dụng kỹ thuật này bởi ít nhất có một công cụ khác của Avast Software, cũng sử dụng cách thay thế chứng thực tương tự để giám sát thông tin mã hóa.

Những hệ lụy do KIS mang tới

Ngoài việc sử dụng các kỹ thuật bảo mật thông tin trực tiếp như thuật toán mã hóa mạnh, việc bảo đảm an toàn thông tin còn được thiết lập dựa trên mối quan hệ tin cậy phi kỹ thuật giữa các bên tham gia. Trong khi có thể dễ dàng tính toán được hiệu quả của các biện pháp kỹ thuật, thì lại rất khó để ước lượng giá trị mang lại bởi các thỏa thuận tin tưởng giữa các bên.

Đối với giao thức HTTPS, có hai loại quan hệ tin cậy như sau:

Loại đầu tiên được quản lý bởi hạ tầng khóa công khai (Public Key Infrastructure - PKI). PKI là một cách thông minh để tổ chức toàn bộ các điểm đầu cuối kết nối Internet và thiết lập sự tin cậy với mỗi điểm một cách trực tiếp, mà không cần biết trước thông tin về các đối tượng. Phương pháp chuỗi tin cậy (chain-of-trust) cho phép trình duyệt ngay lập tức phân loại website thuộc loại tin cậy hay không, mà không cần phải thực hiện kiểm tra mỗi khi kết nối đến một website mới nữa. Thay vào đó, quá trình kiểm tra sẽ được giao cho các đơn vị CA, từ đó thông tin nhất quán và tính tin cậy được cập nhật tới tất cả trình duyệt trên thế giới.

Loại thứ hai là giữa người dùng với nhà cung cấp trình duyệt và hệ điều hành. Đối tượng được người dùng tin tưởng có thể áp dụng bất cứ biện pháp bảo mật nào và lựa chọn CA thay mặt người dùng. Mức độ tin cậy mà người dùng đặt vào các nhà cung cấp hệ điều hành đa phần dựa trên uy tín và lịch sử hoạt động của nhà cung cấp đó. Trong khi độ tin cậy đối với các nhà cung cấp trình duyệt nhỏ hơn thường dựa trên bản chất mã nguồn mở của nó, cho phép mọi người có thể tìm hiểu cách làm việc để đảm bảo rằng chúng đang hoạt động một cách đúng đắn.

Ngoài vấn đề về tính tin cậy nói chung, các công cụ antivirus như vậy có thể mang đến một số rủi ro như sau:

Giám sát dữ liệu (Surveillance): Việc thông tin bảo mật cá nhân bị âm thầm theo dõi khiến người dùng cảm giác không mấy thoải mái. Khi truy cập vào các địa chỉ người dùng muốn kết nối đó sẽ chỉ là giữa người dùng và website. Do đó, người dùng không thích việc những công cụ như KIS truy cập vào các thông tin của mình. Khó có thể biết được những thông tin gì bị thu thập và chúng sẽ được chuyển tới đâu. Đối với KIS, những thông tin đó sẽ gửi đến kho dữ liệu đám mây của Kaspersky (Kaspersky Security Network - KSN), với dịch vụ cập nhật dữ liệu tích hợp trong mỗi bản cài đặt trên máy tính. KIS sử dụng giao thức bảo mật độc quyền (không phải TLS) để bảo vệ các kết nối đến KSN.

Điều này thực sự đáng lo ngại. Ví dụ, với việc can thiệp như trên, những công cụ được sử dụng có thể đạt được toàn quyền truy cập vào tất cả các tài khoản Google của người dùng, bao gồm thư điện tử, ảnh, lịch hay các tập tin trên Google Drive. KIS có thể thu được thông tin đăng nhập của người dùng. Ngay cả khi việc thu thập thông tin không vì mục đích xấu, nhưng việc thu thập dữ liệu cũng yêu cầu sự cẩn trọng và trách nhiệm cao để loại trừ khả năng dữ liệu lọt vào tay kẻ xấu.

Chỉnh sửa thông tin (Substitution and misrepresentation): Dữ liệu bị can thiệp có thể bị nghe lén hoặc chỉnh sửa mà người dùng không hề hay biết. Nội dung dữ liệu có thể bị thay đổi như cố ý chèn quảng cáo của các công ty liên kết với hãng Kaspersky hoặc những đoạn javascript ghi lại hoạt động người dùng, cho đến việc loại bỏ nội dung độc hại (tiêu chí quy định tính độc hại lại được quy định bởi Kaspersky).

Mặt khác, người dùng có thể bị bỏ qua một thư điện tử hay một bài đăng trên Facebook nếu KIS cho rằng nội dung đó là có hại. Người dùng sẽ không bao giờ biết được những công cụ như thế thay đổi dữ liệu của họ như thế nào.

Thỏa thuận tin cậy (Trust Compromise): Quan hệ tin cậy trên môi trường Internet được quản lý thận trọng qua việc lựa chọn cách thức kết nối, từ nền tảng mã hóa khóa công khai (cryptography-driven public key infrastructure) và các quy định pháp luật, đến những kiến trúc trình duyệt mở.

Bằng cách đặt một CA tự tạo giữa trình duyệt và Internet, những công cụ như KIS hay Avast Free Antivirus về cơ bản đã chối bỏ toàn bộ hệ sinh thái tin cậy trên máy tính, bỏ qua môi trường tin cậy toàn cầu, và thay thế bằng mô hình tin cậy của chính những công cụ đó.

Khi người dùng cho phép công cụ như KIS độc quyền quyết định website có tin cậy hay không thì họ đang đối mặt với nhiều rủi ro. Không thể chắc chắn, liệu một website được xem là tin cậy đối với công cụ đó có đáng tin thật sự không. Đôi khi có thể do lỗi lập trình (coding) hoặc cố ý mà dữ liệu tin cậy thực sự lại bị thay đổi, khiến cho trình duyệt hiển thị một website không tin cậy như một website đáng tin cậy và ngược lại. Hơn nữa, kết hợp với khả năng thay đổi thông tin bảo mật, công cụ này có thể kiểm soát trình duyệt theo cách mà nó muốn.

Điểm chịu lỗi duy nhất (Single point of failure): Lỗi của một liên kết cụ thể trong hệ sinh thái tin cậy toàn cầu là một điều không tốt nhưng trong tầm kiểm soát. Vì đa số các bên được chuẩn bị để đối phó với các vấn đề về tin cậy khác nhau, nên hầu hết các lỗi không gây ra vấn đề lớn. Việc thu hồi chứng thực bị đánh cắp có thể chỉ mất vài phút, vì vậy một website độc hại có thể tự động bị vô hiệu hóa gần như ngay lập tức trước khi gây ra thiệt hại đáng kể. Tuy nhiên, người dùng không thể chắc chắn về điều gì khi một công cụ của bên thứ 3 chiếm quyền điều khiển mọi tương tác họ. Vì mọi dữ liệu và các quan hệ tin cậy bây giờ được điều khiển bởi một ứng dụng duy nhất, nên ứng dụng đó rất dễ trở thành mục tiêu của những kẻ tấn công, và trở thành điểm chịu lỗi duy nhất.

Để truy cập vào chứng thực CA chuẩn cần khá nhiều công sức. Theo thống kê thực tế trường hợp “dàn xếp” và thỏa thuận chứng thực là rất hiếm gặp, tuy nhiên, việc khôi phục chứng thực CA của KIS lại là một tác vụ rất đơn giản, hoàn toàn thực hiện được qua việc đặt mã độc vào email hay lợi dụng bug trên trình duyệt. Một khi kẻ tấn công truy cập vào chứng thực đó, chúng có thể dùng KIS giám sát hệ thống người dùng.

Không thể bảo đảm rằng, giải pháp của KIS hay Avast không chứa bất cứ lỗi nào. Một vài lỗi gây lỗ hổng cho phép kẻ tấn công truy cập vào trong hệ thống, số còn lại có thể làm cho ứng dụng hoạt động không đúng khi thiết lập sự tin cậy đến một website nào đó. Các trình duyệt hay CA không thể tránh khỏi các lỗi thiết kế hoặc lập trình. Nhưng đối với những kẻ tấn công, thì một công cụ antivirus cá nhân như KIS hay Avast sẽ là mục tiêu khả thi hơn so với các CA chuẩn.

Những vấn đề nguyên tắc khác: Internet là một không gian mở, chi tiết của hầu hết các giao thức sử dụng trên mạng internet luôn mở với cộng đồng và thường được đóng góp từ chính cộng đồng. Mô hình mở khá hiệu quả đối với chất lượng tổng thể của công nghệ và đặc biệt đối với chất lượng của các giao thức bảo mật, vì những người quan tâm đều có thể nghiên cứu sâu bên trong và chỉ ra những khiếm khuyết của nó.

Tuy nhiên, thiết kế mà KIS áp dụng đem đến nhiều nghi vấn hơn là sự thuyết phục. Mã nguồn của phần mềm là độc quyền, chỉ nhân viên của Kaspersky Lab biết nó hoạt động như thế nào. Trong quá trình hoạt động, phần mềm của Kaspersky đã gửi thông tin về KSN, tuy nhiên, không có cách nào để biết chính xác thông tin gì được gửi đi, vì công cụ này sử dụng một giao thức độc quyền để mã hóa tất cả thông tin. Người dùng cũng không được biết các công cụ antivirus còn có khả năng làm được những điều gì ngoài đặc tả chức năng công khai của nó.

Khuynh hướng sử dụng kỹ thuật gây tranh cãi để đạt được quyền truy cập vào bảo mật thông tin web mà một số phần mềm chống mã độc hiện nay đang sử dụng là thực sự đáng lo ngại. TLS và toàn bộ nền tảng chứng thực có nhiệm vụ bảo vệ thông tin nhạy cảm bằng cách bảo đảm tính bảo mật, xác thực và nguyên vẹn với biểu tượng chiếc khóa màu xanh trên thanh địa chỉ trình duyệt đã trở thành biểu tượng của sự tin cậy và bảo mật. Phương pháp mà KIS đang sử dụng để thu thập dữ liệu được bảo vệ gây lo ngại cho người dùng. Bằng cách xâm nhập vào chuỗi tin cậy (trust chain), những công cụ như vậy đã bỏ qua tất cả lợi ích mà cơ sở hạ tầng tin cậy Internet mang lại, tạo ra một điểm chịu lỗi duy nhất trên diện rộng. Quan trọng hơn, chúng đã bỏ qua tất cả các dịch vụ an ninh bảo mật mà TLS cung cấp cho người dùng.