Missing Function Level Access Control

Một phần của tài liệu Xây dựng công cụ hỗ trợ đánh giá an toàn website luận văn thạc sĩ công nghệ thông tin (Trang 55 - 57)

3.4 Các kiểu tấn công ứng dụng web phổ biến

3.4.7 Missing Function Level Access Control

a. Mơ tả

Trong một ứng dụng web có nhiều cấp người dùng, mỗi cấp có vai trị khác nhau, nếu chỉ sử dụng cách xác thực người dùng là không đủ để phân loại họ. Chẳng hạn, hacker đăng ký một tài khoản thường trong một trang web, sau đó họ có

thể thay đổi đường link để truy cập trái phép vào các trang web chỉ dành cho admin nếu như khơng có sự phân biệt giữa admin và người dùng thơng thường. Vì vậy cần phải có sự phân quyền cho mỗi cấp người dùng tương ứng với quyền hạn của cấp đó.

b. Các kiểu tấn cơng có thể xảy ra

- Giả sử có một trang web là “http //example.com/app/admin_getappInfo”. Một người chưa truy cập vào trang web vẫn có thể truy cập được đường dẫn này, đây là lỗi không kiểm tra truy cấp. Một người dùng thường truy cập được trang này, đây là lỗi khơng phân quyền người dùng thường và admin. Hacker có thể khai thác lỗi này để sử dụng quyền admin.

- Một trang web cung cấp tham số “action” để chỉ định các chức năng được gọi, các action khác nhau sẽ yêu cầu các cấp người dùng khác nhau. Lỗi xảy ra khi một loại người dùng nào đó khơng thực hiện được action của mình.

c. Cách phát hiện

Cách tốt nhất để kiểm tra lỗ hổng này là kiểm tra tất cả các chức năng của ứng dụng theo các tiêu chí

- Các UI hiển thị có chuyển hướng đến các chức năng khơng xác thực người dùng hay khơng?

- Phía máy chủ của ứng dụng web có thiếu sót trong q trình xác thực hay khơng?

- Phía máy chủ có kiểm tra thành cơng thơng tin mà hacker cung cấp hay không?

Sử dụng proxy, truy cập trang web của bạn với vai trị admin, sau đó truy cập lại trang admin với vai trị người dùng thường. Nếu trang web trả về kết quả giống nhau, có thể trang web của bạn đã dính phải lỗ hổng Missing Function Level Access Control.

d. Cách ngăn chặn - Quản lí truy cập

Cần đảm bảo rằng tất cả các các trang và các chức năng đều yêu cầu xác thực. Để đơn giản, các thông tin về truy cập nên lưu trữ tập trung và dựa vào quyền hạn để phân loại người dùng. Nên cấu hình theo nguyên tắc deny-bydefault, tức là chúng ta chỉ cho phép một số loại người dùng nào đó (theo u cầu) truy cập và khơng cho phép tất cả các loại còn lại.

- Ẩn các chức năng trái phép

Nếu người dùng không biết sự tồn tại của các chức năng khơng có quyền truy cập, thì họ sẽ khơng được phép truy cập chúng. Bất cứ khi nào có thể, chỉ cho người dùng thấy được các chức năng trong quyền hạn của họ. Bằng cách này chúng ta có thể giấu được các URL nhạy cảm đối với hacker.

- Ghi lại các action nhạy cảm vào file log

Ghi lại tất cả các action liên quan đến các chức năng nhạy cảm vào log file, và chứa log file đó ở nơi có tính bảo mật cao. Nếu trang web bị tấn cơng, thì chúng ta có thể biết được ai tấn cơng và vào lúc nào. Từ đó có biện pháp ngăn chặn các cuộc tấn công tiếp theo (chẳng hạn cấm IP, xóa account...) hoặc từ đó có thể điều tra họ. Nếu muốn tốt hơn, mỗi khi các action nhạy cảm được thực hiện sẽ có cảnh báo đến admin, từ đó admin sẽ có hành động giải quyết kịp thời.

Một phần của tài liệu Xây dựng công cụ hỗ trợ đánh giá an toàn website luận văn thạc sĩ công nghệ thông tin (Trang 55 - 57)

Tải bản đầy đủ (DOCX)

(81 trang)
w