17/09/2018, 15:23

Tấn công cơ chế “Access Token” của Facebook

Facebook có một số biện pháp an ninh để bảo vệ tài khoản người dùng, như việc cấp “ access token ” cho các ứng dụng (candy crush saga, lexulous word game) đã được người dùng cho phép hay chấp nhận sử dụng, Facebook cung cấp quyền truy cập tạm thời và an toàn tới các API của Facebook ...

Facebook có một số biện pháp an ninh để bảo vệ tài khoản người dùng, như việc cấp “access token” cho các ứng dụng (candy crush saga, lexulous word game) đã được người dùng cho phép hay chấp nhận sử dụng, Facebook cung cấp quyền truy cập tạm thời và an toàn tới các API của Facebook để các ứng dụng có thể truy cập vào tài khoàn người dùng.

Access Token là đoạn mã sinh ra ngẫu nhiên được sử dụng bí mật cho mỗi người dùng, ứng dụng khi thực hiện các thao tác quan trọng, hay truy cập vào tài khoản của người dùng. Bạn có thể tạm hiểu access token trong trường hợp này như một đường hầm bí mật để vào ngôi nhà của bạn. Các hình thức xác thực như username, password giống như khóa và chìa khóa cửa nhà của bạn vậy. Access token sẽ không đi qua cánh cửa này.

Để có thể làm được việc này, người dùng cần “cho phép hoặc chấp nhận” các yêu cầu từ ứng dụng để một ứng dụng có thể truy cập vào các thông tin về tải khoản của người dùng với quyền đã được cấp.

Sử dụng các access token đã được cấp, có thể truy cập trực tiếp vào tài khoản của người dùng, có thể thực hiện public hay xóa các nội dung giống như người dùng bằng việc sử dụng các token mà không cần biết tới mật khẩu hay tài khoản.

Acess Token” khá nhạy cảm vì vậy bất cứ ai biết “access token” của người dùng đều có thể truy cập tới các dữ liệu cá nhân của người dùng đó và có thể thực hiện một số thao tác dưới quyền người dùng nếu token là hợp lệ.

Trong những năm gần đây, nhiều nhà nghiên cứu về bảo mật đã cảnh báo các lỗ hổng khác nhau liên quan tới việc xác thực tới nhóm bảo mật của Facebook, nhưng nếu các dữ liệu lưu chuyển trong mạng của các ứng dụng không được mã hóa, bạn không thể bảo vệ mình trước hình thức tấn công “the-man-in-the-middle” và một kẻ tấn công có thể đánh cắp các thông tin riêng tư của bạn bạn bằng việc sử dụng “access token” đã nghe lén được.

Do đó, việc biết được “access token” cho phép một hacker có thể làm tất các các thao tác giống như một ứng dụng có thể làm với người dùng. Lỗ hổng này thực sự không mới, nó đã được biết đến từ một năm trước, nhưng Facebook vẫn chưa hoàn thiện việc “vá” lỗ hổng này, vẫn còn tồn tại các nguy cơ cho phép một tin tặc hay các cơ quan giám sát an ninh như NSA có thể khai thác thông tin người dùng.

Nhóm bảo mật của Facebook đã thừa nhận một lỗ hổng cho phép kẻ tấn công có thể đánh cắp được Access Token của người dùng. Chuyên gia người Ai Cập, người đã tạo được kịch bản để hack vào các tài khoản của người dùng đã chứng minh “Cách hack một tài khoản facebook bằng việc cướp Access Token sử dụng kỹ thuật tấn công ‘man-in-the-middle‘” như sau:

hacking-facebook-account[1]

Các ứng dụng Facebook nên được bảo vệ trước hình thức tấn công “Man-in-the-middle‘, và điều này có thể thực hiện một cách hiệu quả bằng việc sử dụng HTTPs để mã hóa dữ liệu chứa các thông tin nhạy cảm hay các thông tin xác thực qua các kênh truyền nguy hiểm.

Nếu bạn là một nhà phát triển ứng dụng cho Facebook, bạn không nên gửi các “access token” qua các kênh truyền không được mã hóa và người dùng Facebook cũng chỉ nên tin tưởng các ứng dụng đã thực hiện việc mã hóa và sử dụng “HTTPs ở mọi nơi” cho việc bảo mật tự động.

0