Thời gian gần đây, các chuyên gia bảo mật đã đưa ra cảnh báo về các lỗ hổng bảo mật Spectre và Meltdown. Cả hai mối nguy cơ này đều đề cập đến các biến thể của cùng một lỗ hổng, các nhà nghiên cứu hiện đang xem xét thảm họa do tính chất phổ biến của chúng gây ra.
Sự hình thành và phạm vi hoạt động của Spectre, Meltdown
Hai lỗ hổng này được đặt tên phù hợp với mức độ ảnh hưởng của chúng: Spectre đề cập đến một nguyên nhân gốc rễ, hoặc một cái gì đó khó khắc phục (và sẽ ám ảnh chúng ta trong nhiều năm tới); Meltdown được sử dụng để mô tả sự tan chảy của các ranh giới bảo mật mà điều đó đang xảy ra, do các lỗi khiến cho các biện pháp bảo vệ thông thường từ phần cứng không thể thực hiện được.
Lỗ hổng ban đầu được cho là chỉ tác động đến chipset Intel. Tuy nhiên, sau đó tình hình trở nên phức tạp và lan rộng: Gần như tất cả các hệ thống đều bị ảnh hưởng, từ máy tính để bàn và máy tính xách tay đến thiết bị di động, trên các bộ xử lý Intel, AMD và ARM. Tất cả dữ liệu bộ nhớ từ các ứng dụng đang chạy có khả năng bị tổn thương: trình quản lý mật khẩu, ảnh, tài liệu và hơn thế nữa. Một nhà nghiên cứu nói rằng kẻ xấu có thể đánh cắp bất kỳ dữ liệu gì trong hệ thống.
Về cơ bản, mỗi lỗ hổng là một vấn đề bảo mật nằm trong gần như mọi bộ xử lý được xây dựng trong 20 năm qua. Điều này có nghĩa là một số lượng lớn các hệ thống - tất cả những hệ thống được xây dựng với bộ xử lý Intel, ARM hoặc AMD - cần được cập nhật bảo mật. Bản thân lỗi này được liên kết với cách các ứng dụng và chương trình thông thường, khám phá nội dung bảo vệ vùng nhớ kernel. Trong các hệ điều hành, kernel đóng vai trò là thành phần cốt lõi trong các ứng dụng và xử lý dữ liệu, bộ nhớ và phần cứng. Lỗ hổng trong các bộ xử lý bị ảnh hưởng có thể cho phép tin tặc qua mặt các biện pháp bảo vệ truy cập kernel của bộ xử lý, làm cho nội dung của bộ nhớ kernel dễ bị tổn thương.
Cặp lỗ hổng Spectre và Meltdown có hoạt động phức tạp và khó vá so với các lỗ hổng thường gặp
Thông thường, những người quản trị đã quá quen với những lỗ hổng bảo mật nên phản ứng của họ thường là “hổng thì vá”. Nhưng cặp lỗ hổng trứ danh Spectre - Meltdown khác hẳn với những lỗ hổng mà chúng ta từng gặp, ít nhất là ở mức độ khó vá. Những nỗ lực vá lỗi cho Windows 7 và Windows Server 2008 R2 không thành công của Microsoft đã dẫn đến sự cố “Total Meltdown”, khiến vấn đề trở nên nghiêm trọng hơn rất nhiều. Bản vá thiết lập sai quyền khiến vùng nhớ vốn chỉ được truy cập bởi kernel lại bị tự đông ánh xạ cho mọi tiến trình chạy ở mức người dùng, điều này cho phép các chương trình độc hại đọc toàn bộ bộ nhớ hệ thống với tốc độ hàng GB/giây thay vì 120 KB/giây khi lợi dụng lỗ hổng Meltdown. Vào tháng 4/2018, người ta đã phát hiện ra rằng các bản vá trong Windows 10 cho Spectre và Meltdown trước bản cập nhật tháng 4/2018 là hoàn toàn vô dụng, vì một chương trình có thể truy cập vào toàn bộ bảng trang kernel bằng cách gọi NtCallEnclave (bản cập nhật Windows 10 thì gây ra nhiều vấn đề khác).
Trọng tâm ban đầu của các bản vá là các thiết bị cá nhân. Đến nay, tuy nhiều bản vá đã có sẵn nhưng các nhà nghiên cứu vẫn đang nghiên cứu tác động mà Spectre có thể gây ra trên các dịch vụ đám mây, nơi một số tổ chức đang chia sẻ cùng một tài nguyên. Có một số suy đoán về lỗ hổng dữ liệu, trong đó một người thuê đám mây có thể truy cập dữ liệu của người khác. Hãy tưởng tượng tác động sẽ lớn đến mức nào trên đám mây với sự leo thang đặc quyền. Dữ liệu có thể bị đánh cắp trong bất kỳ trường hợp nào mà người thuê chia sẻ cùng một con chip trong các dịch vụ như Amazon Web Services (AWS) hay Google Cloud (những dịch vụ đám mây khác không được nêu tên vì không thể liệt kê hết chứ không phải vì chúng không bị ảnh hưởng). May mắn là các nhà cung cấp dịch vụ điện toán đám mây lớn thường kiểm soát an ninh chặt hơn các doanh nghiệp thông thường và do đó họ thường cập nhật các bản vá rất kịp thời. Vì thế, các ngân hàng cần chú trọng đến trung tâm dữ liệu của mình và đảm bảo các lỗ hổng bảo mật được vá càng sớm càng tốt.
Nguy cơ đối với các ngân hàng
Với các ngân hàng, nhiều người thường cho rằng tác động chính của Spectre - Meltdown sẽ liên quan đến kho dữ liệu nhạy cảm của họ (bao gồm thông tin tài khoản và thông tin đăng nhập của người dùng). Tuy nhiên, vì cặp lỗ hổng cho phép tin tặc truy cập bất cứ dữ liệu nào trong bộ nhớ nên chúng có thể tấn công ngay chính ngân hàng bằng cách đánh cắp khóa giải mã và các thông tin kiểm soát truy cập API. Sau khi có được những tài sản thông tin quý giá đó, tin tặc có thể truy cập tới tất cả các hệ thống ứng dụng ngân hàng (và thậm chí cả ứng dụng của các đối tác). Vì thế, cặp lỗ hổng “phần cứng” này đang đặt ra rất nhiều thách thức cho đội ngũ phát triển phần mềm. Trước khi các lỗ hổng này xuất hiện, hầu hết các nhà phát triển web chỉ cần tập trung vào bảo mật ứng dụng (nếu họ quan tâm đến an ninh bảo mật). Kể từ khi cặp lỗ hổng nổi tiếng Spectre - Meltdown được công bố, họ phải xem xét cả cách trình duyệt quản lý bộ nhớ của nó trong chu trình xử lý yêu cầu, một nhiệm vụ mới, cực kỳ khó khăn. Để vượt qua thách thức này, đội ngũ phát triển cần tìm hiểu để tận dụng tối đa các tính năng bảo mật sẵn có như: SameSite - một thuộc tính chỉ cho phép đính kèm cookie tới các yêu cầu xuất phát từ cùng site, HTTPOnly - thuộc tính ngăn chặn cookie khỏi bị truy cập thông qua tập lệnh phía máy khách... Gần đây nhất có lẽ là Site Isolation (Cách ly trang web) - tính năng của trình duyệt Chrome bổ sung thêm một ranh giới giữa các trang web bằng cách đảm bảo rằng các trang từ các website khác nhau hoạt động trong các tiến trình “hộp cát” khác nhau trong trình duyệt. Tính năng này khiến ngay cả khi có lỗ hổng như Spectre thì tin tặc cũng khó lòng truy cập hay đánh cắp dữ liệu xuyên trang của các tài khoản của bạn trên các trang web khác. Việc kích hoạt Site Isolation không tác động trực tiếp đến những người phát triển ứng dụng web. Các lập trình viên không phải học thêm API mới nào và nhìn chung thì các trang web không thể nhận ra sự khác biệt khi chạy ở chế độ Site Isolation với chế độ thông thường. Tuy nhiên, các lập trình viên vẫn cần lưu ý tới những hiệu ứng phụ của tính năng này để đảm bảo website hoạt động trơn tru. Để tăng khả năng ngăn rò rỉ thông tin nhạy cảm, Site Isolation bao gồm tính năng Cross-Origin Read Blocking để chặn việc truyền dữ liệu giữa các trang web. Trong điều kiện trình duyệt Chrome chiếm thị phần khá lớn (ngay cả Microsoft cũng đã chuyển sang sử dụng nhân Chrome cho trình duyệt Internet Explorer), các lập trình viên không nên bỏ qua những tính năng bảo mật mà Chrome cung cấp như Site Isolation và Cross-Origin Read Blocking.
Ngoài ra, với sự phổ biến ngày càng tăng của dịch vụ mobile banking, các ngân hàng đang phải đối mặt với ngày càng nhiều rủi ro bảo mật. Ngay cả các ứng dụng được viết tốt vẫn dễ bị tổn thương. Dù hầu hết các ứng dụng đảm bảo bảo mật bằng cách mã hóa dữ liệu giữa ứng dụng và trung tâm dữ liệu nhưng điều đó vẫn là không đủ. Để được bảo vệ tốt hơn, các ngân hàng cần mã hóa dữ liệu trong ứng dụng của họ, chỉ giải mã nó tại thời điểm cần thiết và sau đó mã hóa lại. Để bảo vệ ứng dụng hơn, các ngân hàng nên bảo mật cho các ứng dụng của họ bằng kỹ thuật chống đảo ngược và chống sửa đổi.
Các ngân hàng cũng có thể tự bảo vệ mình bằng cách theo dõi và phân tích hành vi của chính ứng dụng. Các biện pháp như kỹ thuật chống chỉnh sửa và chống đảo ngược là vô giá trong việc phát hiện hành vi bất thường của một ứng dụng. Bằng cách phát hiện hành vi như vậy, chúng ta có thể hiểu cách thức và thời điểm để thay đổi nó. Tự động thay đổi hành vi ứng dụng và / hoặc chọn đường dẫn thực hiện trong khi vẫn đạt được kết quả tương tự sẽ giúp giảm khả năng dự đoán trước ứng dụng. Việc chỉnh sửa luồng điều khiển của ứng dụng sẽ khiến việc nhắm mục tiêu vào các thiết lập cụ thể hoặc địa chỉ bộ nhớ chính xác trở nên khó khăn hơn đối với những kẻ tấn công.
Với các máy ATM, tin tặc có thể tải phần mềm độc hại, truy cập thông tin nhạy cảm (như số tài khoản hay số thẻ của khách hàng) và thậm chí biết được một số loại mật khẩu như mật khẩu đăng nhập của người giám sát ATM khi những thông tin này được lưu tạm trong bộ nhớ.
Hầu hết các máy ATM đều đã được bảo vệ khỏi phần mềm độc hại. Phương pháp chuẩn là dùng “danh sách trắng” (whitelist) để tự động ngăn ATM chạy các chương trình, thư viện và tập lệnh không được nhận dạng. Danh sách trắng ngăn chặn bất kỳ phần mềm độc hại mới nào được thực thi trên ATM và là hàng phòng thủ đầu tiên tuyệt vời. Tuy nhiên, không phải tất cả các ngân hàng đều sử dụng danh sách trắng trên ATM. Một số ngân hàng sử dụng phần mềm chống virus, trong khi những ngân hàng khác không sử dụng phần mềm bảo vệ phần mềm độc hại nào (tất nhiên, điều này cực kỳ tệ hại). Phần mềm chống virus chưa bao giờ là giải pháp đúng để bảo vệ ATM và những lỗ hổng như Meltdown làm nổi bật thực tế này một cách rõ ràng nhất. Bản vá bảo mật của Microsoft cho Meltdown sẽ bị chặn bởi nhiều sản phẩm chống virus của bên thứ ba, vì họ phải truy cập CPU theo cách mà bản vá mới sẽ không cho phép. Trong trường hợp này, phần mềm chống virus có thể khiến ATM dễ bị tấn công hơn chứ không phải là bảo vệ nó.
Danh sách trắng có thể bị xâm phạm bởi nhân viên xấu của ngân hàng, những người có quyền sửa đổi cài đặt danh sách trắng. Tốt nhất là không cấp quyền quản trị trên PC của ATM cho bất kỳ cán bộ nào vì điều đó hoàn toàn không cần thiết. Tất cả các hành động bảo trì hợp lệ trên ATM có thể được thực hiện bằng các quyền tiêu chuẩn. Thật không may là nhiều ngân hàng vẫn còn cấp quyền quản trị trên PC của ATM cho nhân viên. Đó là lựa chọn của họ, nhưng với quyền quản trị PC của ATM thì bất kỳ nhân viên nào cũng có thể dễ dàng cài đặt và chạy bất kỳ phần mềm độc hại nào - không chỉ là phần mềm lợi dụng lỗ hổng Meltdown.
Không ít ngân hàng hiện nay vẫn còn chạy hệ điều hành Windows XP trong các ATM. Điều này là rất nguy hiểm vì dù Microsoft vẫn phát hành bản vá các lỗ hổng đặc biệt nghiêm trọng cho Windows XP nhưng đến nay mới chỉ có bản vá Meltdown cho Windows 7 trở lên.
Cuối cùng, không thể không nói đến vấn đề cảnh báo và hướng dẫn người dùng (các chuyên gia cho rằng đây là biện pháp đầu tiên cần xem xét). Các ngân hàng nên hướng dẫn khách hàng tận dụng tính năng Site Isolation của trình duyệt Chrome trên cả máy tính và điện thoại di động (nếu website của họ hỗ trợ trình duyệt này - điều hầu như chắc chắn). Ngoài ra, cũng cần nhắc nhở khách hàng tắt JavaScript nếu có thể và đóng ứng dụng ngay khi họ không dùng nữa. Đóng ứng dụng là biện pháp đảm bảo an toàn tốt nhất vì tin tặc không có cách gì truy cập thông tin nhạy cảm khi chúng không có trong bộ nhớ.
Tài liệu tham khảo:
- https://www.techrepublic.com/article/spectre-and-meltdown-explained-a-comprehensive-guide-for-professionals/
- https://it1.com/everything-you-need-to-know-about-spectre-meltdown/
- https://developers.google.com/web/updates/2018/02/meltdown-spectre
- https://www.finance-monthly.com/ 2018/01/meltdown-spectre-2-ways-your-banking-device-is-vulnerable/
- https://www.ibtimes.co.uk/banking-industry-having-meltdown-over-spectre-1661938
- https://www.atmmarketplace.com/articles/securing-atms-against-meltdown-and-spectre/
ThS. Trần Bình
Theo Chuyên đề THNH số 2/2020