Những kẻ tấn công đang ngày càng khai thác các lỗ hổng trong việc triển khai OAuth để thu lợi tài chính. Mặc dù OAuth được coi là giao thức bảo mật nhưng mức độ bảo mật của nó phụ thuộc vào cài đặt. Chỉ thực hiện một giao thức thôi là chưa đủ; nó phải được cấu hình đúng.
- Giới thiệu
- Tấn công ứng dụng OAuth là gì?
- Phương pháp và cơ chế bảo vệ chống lại các cuộc tấn công vào OAuth
- kết luận
Giới thiệu
OAuth là một giao thức ủy quyền mô tả cách để có được quyền truy cập an toàn vào tài nguyên. Nó giải phóng người dùng khỏi việc nhập mật khẩu, giảm toàn bộ quá trình chỉ bằng một nút bấm. Ví dụ nổi bật nhất về việc sử dụng giao thức này là ủy quyền thông qua mạng xã hội.
Hình 1. Ví dụ về ủy quyền sử dụng giao thức OAuth
OAuth được cả người dùng và doanh nhân đánh giá cao. Do đó, nó đã nhanh chóng trở thành một công cụ phổ biến để truy cập an toàn vào nhiều loại tài nguyên.
Những kẻ tấn công cũng quan tâm đến OAuth. Họ đã nghiên cứu giao thức và nhận thấy rằng do cài đặt không chính xác hoặc do quản trị viên giám sát nên thường phát sinh lỗi có thể được sử dụng để giành quyền truy cập vào dữ liệu người dùng.
Một số tin tặc đã cố gắng tấn công PayPal, Microsoft và các công ty nổi tiếng khác bằng cách sử dụng lỗ hổng trong quá trình triển khai OAuth 2.0. Do các cuộc tấn công mạng, các tổ chức bị thiệt hại trung bình khoảng 100.000 USD.
Tấn công ứng dụng OAuth là gì?
Bản thân giao thức OAuth là an toàn nhưng việc triển khai quy trình không đúng có thể gây ra lỗ hổng. Tin tặc khai thác lỗ hổng trong quá trình triển khai giao thức để lừa mọi người cấp cho ứng dụng độc hại quyền truy cập vào thông tin cá nhân của họ và/hoặc nhập thông tin xác thực vào một biểu mẫu giả mạo. Tiếp theo, những kẻ tấn công sử dụng thông tin thu được cho mục đích riêng của chúng, thường là trong các tội phạm tài chính.
Có ba loại tấn công sử dụng ứng dụng OAuth.
Lừa đảo
Tin tặc tạo trang đăng nhập giả cho các ứng dụng mà khách hàng quen sử dụng xác thực OAuth. Thoạt nhìn, mọi thứ có vẻ chân thực nên khách hàng ngay lập tức đồng ý xử lý dữ liệu của mình. Sau đó, ứng dụng độc hại sẽ có quyền truy cập vào thông tin cá nhân.
Có một trường hợp đã biết tin tặc đã tạo và sử dụng một ứng dụng được cho là chính thức của một ngân hàng nổi tiếng để lấy dữ liệu cá nhân của khách hàng của họ. Nhìn bề ngoài, mọi thứ trông rất thuyết phục: đồ dùng, cách phối màu, tên quản lý, v.v.
Hình 2. Sự giả mạo độc hại một trang web ngân hàng chính thức
Mọi người vào trang lừa đảo, tải xuống và cài đặt ứng dụng. Trong quá trình đăng ký, họ đã nhập dữ liệu cá nhân và đồng ý xử lý.
Hình 3. Nhận được sự đồng ý bằng ứng dụng OAuth độc hại
Sau khi hoàn tất đăng ký, các “chuyên gia” đã liên hệ với khách hàng, những người này sẽ hướng dẫn nạn nhân về cách đầu tư qua hệ thống ngân hàng. Mọi người đã làm theo các khuyến nghị, cung cấp thêm thông tin cá nhân về tài khoản của họ và ngay lập tức mất tiền tiết kiệm.
Sử dụng OAuth để bỏ qua bộ lọc nội dung
Bộ lọc nội dung doanh nghiệp hoặc tường lửa thường được định cấu hình để cho phép OAuth từ một nhà cung cấp cụ thể hoạt động trơn tru trong công ty. Do đó, những kẻ lừa đảo tạo tài khoản OAuth của riêng chúng với cùng nhà cung cấp.
Giả sử một công ty lưu trữ một số thông tin trong dịch vụ đám mây của Google. Sau đó, tin tặc sẽ đăng ký với cùng một dịch vụ đám mây và tạo một điểm vào (URL) cho lệnh gọi lại ứng dụng sẽ hơi khác so với điểm truy cập thực. Bằng cách bỏ qua các biện pháp an ninh mạng, kẻ tấn công có thể sử dụng tài khoản mới của mình dưới vỏ bọc tài khoản nhân viên để nhập mã độc và thực thi nó.
Một ví dụ khác về việc sử dụng OAuth để vượt qua bộ lọc nội dung là khi tin tặc sử dụng thông tin đăng nhập bị đánh cắp để đăng nhập vào các trang web phổ biến (ví dụ: mạng xã hội) và thay mặt nạn nhân xuất bản nội dung bị cấm: tin tức giả mạo hoặc tài liệu có nội dung khiêu khích.
Sử dụng OAuth để khai thác tiền điện tử
Thông tin xác thực bị xâm phạm có thể được sử dụng để tạo các ứng dụng OAuth mới được cấp đặc quyền mở rộng. Điều này cho phép bạn ẩn hoạt động độc hại và đảm bảo quyền truy cập dữ liệu liên tục ngay cả khi tài khoản ban đầu đã bị mất.
Những ứng dụng như vậy đã được nhóm Storm-1283 sử dụng. Nhóm này sử dụng tài khoản bị tấn công để có thể triển khai các máy ảo để khai thác tiền điện tử. Dữ liệu tài khoản cho phép kẻ tấn công tạo ứng dụng OAuth mới bằng VPN có tên miền tương tự như Microsoft Entra ID, sau đó thêm một số bí mật vào đó. Sau đó, họ tạo ra một số máy ảo trên đám mây của nạn nhân và bắt đầu khai thác tiền điện tử. Các hacker sau đó đã quay trở lại và triển khai nhiều máy hơn nữa.
Hình 4. Sơ đồ sử dụng ứng dụng OAuth để khai thác tiền điện tử
Phương pháp và cơ chế bảo vệ chống lại các cuộc tấn công vào OAuth
Các phương pháp bảo vệ chống lại các cuộc tấn công có thể được xem xét theo cả quan điểm của khách hàng và quan điểm của quản trị viên hoặc chuyên gia bảo mật. Hãy lưu ý ngay rằng trong trường hợp thứ hai, cần phải hiểu cách OAuth hoạt động ở cấp cơ bản như một giao thức xác thực và ủy quyền. Nếu không có kiến thức này, sẽ khó thực hiện hiệu quả các phương pháp phòng thủ trước mọi hình thức tấn công.
Các phương pháp và cơ chế bảo vệ được liệt kê dưới đây giảm thiểu rủi ro về các mối đe dọa và đảm bảo sự tương tác không bị gián đoạn giữa chủ sở hữu tài nguyên và người dùng cuối.
Khuyến nghị cho người dùng ứng dụng
Có thể tránh được hành vi trộm cắp dữ liệu bằng cách tuân theo các quy tắc về hành vi trực tuyến an toàn:
- Kiểm tra địa chỉ email của người gửi và các liên kết họ yêu cầu bạn theo dõi.
- Đảm bảo rằng chương trình sử dụng giao thức HTTPS để truyền thông tin.
- Không sử dụng cùng thông tin đăng nhập và mật khẩu cho các trang web và ứng dụng khác nhau.
- Không tiết lộ thông tin cá nhân trực tuyến hoặc qua điện thoại, bao gồm mật khẩu và mã xác minh, cho bên thứ ba, ngay cả khi họ tự nhận mình là quan chức thực thi pháp luật, ngân hàng, v.v.
- Nếu chi tiết tài khoản của bạn được ai đó biết hoặc bị công khai, hãy thay đổi chúng trên các trang web nơi chúng được sử dụng. Nếu cần, hãy báo cáo khẩn cấp tình huống của bạn cho quản trị viên của chương trình hoặc cổng web.
- Đảm bảo rằng ứng dụng không yêu cầu bạn truy cập vào các tài nguyên không cần thiết.
- Định kỳ cập nhật mật khẩu cho các tài khoản quan trọng.
- Sử dụng xác thực hai yếu tố.
Khuyến nghị dành cho quản trị viên
Để bảo vệ ứng dụng và dữ liệu người dùng, quản trị viên phải tuân thủ các nguyên tắc sau.
Sử dụng giao thức SSL (TLS)
SSL (từ phiên bản 3.0 – TLS) là một giao thức mã hóa để liên lạc an toàn. Dữ liệu truyền đi được bảo vệ bằng mã hóa. Cần có chứng chỉ chính hãng để trao đổi thông tin. Việc sử dụng SSL/TLS sẽ ngăn chặn việc chặn và sửa đổi dữ liệu.
Hình 5. Sơ đồ hình thành kết nối an toàn bằng giao thức SSL
Mã hóa dữ liệu khách hàng nhạy cảm
Thông tin không nên được lưu trữ ở dạng văn bản rõ ràng. Các hệ thống khác nhau có thể được sử dụng để mã hóa. Ví dụ: giải pháp lớp CIAM bảo vệ dữ liệu khi truyền và ở trạng thái nghỉ. CIAM đảm bảo sự an toàn của dữ liệu ngay cả khi dữ liệu bị đánh cắp hoặc bị chặn.
Sử dụng mã thông báo làm mới
Mã thông báo làm mới sẽ tự động chấm dứt phiên với hệ thống thông tin hoặc ứng dụng nếu hoạt động của người dùng dừng lại. Khoảng thời gian không hoạt động được đặt trước. Cách tiếp cận này sẽ giảm nguy cơ bị hack vì kẻ tấn công sẽ không thể chặn phiên.
Đặt tuổi thọ mã thông báo ngắn
Thời gian sử dụng của mã thông báo phải ngắn – không quá một phút. Khi thiết lập hệ thống OAuth, bạn có thể đặt thời gian tồn tại của mã thông báo, sau đó nó sẽ trở nên không hợp lệ và khách hàng sẽ phải yêu cầu lại quyền truy cập vào tài nguyên.
Bảo vệ chống lại các cuộc tấn công vũ phu
Bạn cần định cấu hình tài khoản khách hàng để bị khóa sau một số lần xác thực không thành công nhất định.
Đảm bảo xác thực URL chuyển hướng
Mỗi lần bạn yêu cầu mã thông báo truy cập, bạn phải nhận được xác nhận rằng URL chuyển hướng khớp chính xác với URL đã đăng ký.
Cho phép người dùng thu hồi quyền truy cập vào dữ liệu của họ
Ứng dụng OAuth cung cấp cho người dùng toàn quyền kiểm soát dữ liệu cá nhân của họ. Quản trị viên nên xem xét và triển khai cơ chế thu hồi mã thông báo để có thể chặn những truy cập không mong muốn.
Triển khai cơ chế xác thực hai yếu tố
Người dùng sẽ cần xác minh thêm danh tính của mình bằng cách sử dụng một yếu tố bổ sung. Đây có thể là mã từ tin nhắn SMS, một tập hợp dữ liệu sinh trắc học, v.v. Do đó, tính bảo mật cho tài khoản của bạn sẽ tăng lên.
Bảo vệ chống giả mạo yêu cầu trên nhiều trang web
Bạn phải sử dụng tham số “trạng thái” khi bắt đầu yêu cầu ủy quyền và cũng kiểm tra trạng thái được trả về so với giá trị ban đầu.
Đảm bảo lưu trữ an toàn mã thông báo truy cập
Ví dụ: bạn có thể sử dụng cơ chế cookie với các cờ bổ sung bao gồm “HttpOnly” và “Secure”. Điều này sẽ làm giảm khả năng bị đánh cắp mã thông báo truy cập bằng cách sử dụng các lỗ hổng cho phép tin tặc tiêm mã độc thông qua trang web vào trình duyệt của người dùng khác.
Sau khi triển khai các phương pháp bảo vệ, cần phải kiểm tra lại và kiểm tra việc triển khai trên các dịch vụ ủy quyền và ứng dụng khách khác nhau.
kết luận
Bất kỳ tổ chức nào cũng có thể trở thành tâm điểm của hacker: từ lĩnh vực tài chính đến ngành dầu khí. Đồng thời, người dùng cuối khó có thể hiểu được liệu mình có đăng nhập vào trang web một cách chính xác hay không. Vì vậy, mọi công ty cần thường xuyên xem xét các quyền của OAuth và thông báo kịp thời cho khách hàng của mình về các cuộc tấn công mạng có thể xảy ra. Tất nhiên, tùy chọn bảo mật tốt nhất là tự động giám sát OAuth.