^Back To Top

foto1 foto2 foto3 foto4 foto5


Get Adobe Flash player

Ứng dụng Web ngày càng cải tiến và được sử dụng rộng rãi. Kéo theo là những tiềm ẩn trong việc bảo mật ứng dụng Web đang gây trở ngại cho các doanh nghiệp, tổ chức và cơ quan nhà nước. Bài viết dưới đây cung cấp thông tin về một số lỗ hổng, nguyên tắc bảo mật trong ứng dụng Web, giúp người đọc hiểu khái quát về ứng dụng Web và vấn đề bảo mật cho ứng dụng Web.

1. Vấn đề bảo mật cho ứng dụng Web hiện nay

Thực tế với tình hình hiện nay, các ứng dụng Web ngày một nhiều. Sự thay đổi chóng mặt của công nghệ đã giúp ứng dụng Web được cải tiến nâng cao rất nhiều, và vấn đề bảo mật cho ứng dụng Web không ngừng tăng lên. Một khi ứng dụng Web bị rò rỉ lỗ hổng, các hacker sẽ dễ dàng chiếm quyền quản trị Web, ứng dụng và phần mềm của công ty. Nguyên nhân dẫn đến các ứng dụng Web bị rò rỉ thông tin, các nguy cơ về lỗ hổng, là do các đoạn mã lệnh, mã code không phù hợp trong ứng dụng Web. Chỉ cần một lỗ hổng, hacker cũng có thể xâm nhập và truy cập vào cơ sở dữ liệu, thông tin và thực hiện các hành vi sai trái như đánh cắp, thay đổi, chỉnh sửa, mã hóa dữ liệu…Đối với các doanh nghiệp, tổ chức, cơ quan nhà nước, việc tăng lớp bảo mật, rà quét lỗ hổng ứng dụng là điều cần thiết.

Việc đánh cắp hoặc chiếm đoạt quyền truy cập của người dùng, nhà quản trị, cũng như chiếm các phiên làm việc trên session management hoặc ẩn phiên làm việc session fixation, dẫn đến các hậu quả không an toàn như: những thông tin cá nhân, thông tin quan trọng, tài chính  của công ty và khách hàng sẽ bị hacker xâm phạm; ứng dụng web và các phần mềm khác mà công ty, doanh nghiệp đang sử dụng rất có thể sẽ bị hacker cài mã theo dõi, virus độc hại; hệ thống máy chủ hoặc hệ thống có thể bị tê liệt do sự cố bắt nguồn từ các ứng dụng Web,…..

2. Một số lỗ hổng thường gặp trong ứng dụng Web

Theo thống kê mới nhất, có 90% lỗ hổng bảo mật bắt nguồn từ ứng dụng Web, 90% nhà quản trị chưa có cái nhìn tổng quan về bảo mật WebApp. Đây là lý do dẫn tới số lượng các cuộc tấn công trên mạng ngày càng nhiều.

- Lỗ hổng XSS (Cross Site Scripting)

Mối đe dọa tiềm ẩn trong XSS cho phép thực hiện các kịch bản trong trình duyệt có thể chiếm quyền điều khiển phiên người dùng, gỡ bỏ trang Web… Lỗ hổng này là do việc xác nhận không hợp lệ của người sử dụng cung cấp dữ liệu khi một ứng dụng lấy dữ liệu đó và gửi nó tới một trình duyệt web mà không cần xác nhận hoặc mã hóa nội dung. Thông qua lỗ hổng XSS, kẻ tấn công có thể chiếm quyền điều khiển phiên người dùng, gỡ bỏ trang web, và có thể đánh cắp thông tin của người dùng dựa trên trình duyệt. Bản chất của dạng tấn công này là dựa vào trình duyệt. Tin tặc có thể chèn mã JavaScript vào các trang web có lỗi XSS, khi người dùng truy cập vào những trang web này, lập tức mã script của tin tặc sẽ hoạt động lưu lại thông tin người dùng.

- Chèn mã độc hại (Injection flaws)

Từ lỗ hổng này kẻ tấn công có thể lừa các ứng dụng để thực hiện các lệnh bất chính hoặc vào thay đổi dữ liệu hệ thống. Các lỗi injection, đặc biệt là SQL injection, phổ biến trong các ứng dụng web. Nó xảy ra khi người dùng cung cấp dữ liệu được gửi đến một thông dịch viên như là một phần của một lệnh hoặc truy vấn.

Hacker có thể sử dụng điểm yếu của các truy vấn đầu vào bên trong ứng dụng để chèn thêm dữ liệu không an toàn, từ đó máy chủ có thể bị tấn công bởi một số dạng như: SQL Injection, Xpath Injection, XML Injection, Buffer overflow, LDAP lookups, Shell command Injection. Một số hoặc tất cả những dữ liệu quan trọng của tổ chức bạn sẽ bị hacker truy cập trái pháp, chúng có thể sửa đổi, xóa bỏ thông tin hoặc thậm chí lợi dụng để tống tiến.

- Tệp tin chứa mã độc

Nguy cơ bị tấn công tiềm ẩn với việc mã hóa trong tích hợp tệp tin từ xa (RFI) có thể cho phép kẻ tấn công tạo sự thỏa hiệp của máy chủ. Dạng tấn công bằng tệp tin chứa mã độc này có thể ảnh hưởng đến PHP, XML và bất kỳ tập tin nào từ người dùng.

- Lỗ hổng CSRF (Cross-Site Request Fogery)

 

Hình 1. Lỗ hổng CSRF

Một trong những lỗ hổng bảo mật thường gặp trong ứng dụng Web là lỗ hổng CSRF.

Mối đe dọa tiềm ẩn từ lỗ hổng này là nó có thể buộc một nạn nhân đăng nhập trình duyệt để gửi một yêu cầu trước khi chứng thực đến một ứng dụng Web dễ bị tấn công, mà sau đó buộc trình duyệt của nạn nhân thực hiện một hành động thù địch với lợi ích của kẻ tấn công. CSRF có thể mạnh mẽ như các ứng dụng Web mà nó tấn công.

Lợi dụng cơ chế tự động đăng nhập vào một số website, tin tặc có thể điều hướng người dùng thực hiện các đoạn chứa mã độc, nhúng vào các website mà người dùng đang trong phiên làm việc. Từ đó, mã độc sẽ chạy trên trình duyệt của người dùng và hacker sẽ thực hiện các hành vi gian lận. Vì vậy, trong một số diễn đàn hoặc website khi bạn đăng nhập tài khoản, tốt nhất không nên lưu mật khẩu, tên người dùng.

- Tham chiếu đối tượng trực tiếp không an toàn

Mối đe dọa tiềm ẩn ở đây là những kẻ tấn công có thể lợi dụng những tài liệu tham khảo để  truy cập vào quyền của các đối tượng khác mà không sự cho phép. Một tham chiếu đối tượng trực tiếp xảy ra khi một nhà phát triển cho thấy một tham chiếu đến một đối tượng thực hiện nội bộ, chẳng hạn như tệp tin, thư mục, bản ghi cơ sở dữ liệu hoặc khóa, dưới dạng URL hoặc tham số biểu mẫu. Ví dụ: A có thể mạo danh là B để truy cập vào hệ thống.

Việc tham chiếu các đối tượng, tệp tin, file, bản ghi cơ sở dữ liệu cần được thực hiện gián tiếp và những thông tin nhạy cảm nên được che giấu. Bên cạnh đó, việc phân quyền nhà quản trị cũng cần cài đặt bảo mật ở chế độ cao nhất, không cho phép người lạ truy cập trái phép. Một khi hacker có thể xác định được cấu trúc thông tin chuyển tới server, chúng có thể thu thập dữ liệu người dùng, ăn cắp tài khoản thẻ tín dụng,….

- Rò rỉ thông tin và xử lý lỗi không đúng cách

Mối đe dọa tiềm ẩn từ việc rò rỉ thông tin và xử lý lỗi không đúng cách (Broken Authentication and Session Management) có thể giúp tin tặc ăn cắp dữ liệu nhạy cảm, hoặc tiến hành các cuộc tấn công nghiêm trọng hơn. Một ứng dụng web không được bảo mật tốt có thể vô ý rò rỉ thông tin về cấu hình, hoạt động bên trong, hoặcvi phạm sự riêng tư thông qua một loạt các vấn đề ứng dụng.

- Quản lý xác thực và quản lý phiên yếu

Khâu xác thực (authentication) và trao quyền (authorisation) được sử dụng khá phổ biến trong các ứng dụng web. Nếu một trong 2 khâu này không bảo mật mạnh mẽ thì đây chính là lỗ hổng tiềm ẩn giúp tin tặc xâm nhập vào hệ thống. Mối đe dọa tiềm ẩn ở đây là kẻ tấn công có thể thỏa hiệp mật khẩu, mã khóa hoặc danh tính người dùng. Để hạn chế nguy cơ tấn công, quản trị viên nên thiết lập session thật tốt.

- Không hạn chế truy nhập vào URL nội bộ

Lỗ hổng này cho phép kẻ tấn công cơ hội truy cập và thực hiện trái phép hoạt động bằng cách trực tiếp truy cập các URL đó. Lỗi này là do ứng dụng chỉ bảo vệ chức năng nhạy cảm khi ngăn chặn hiển thị liên kết hoặc URL cho người dùng trái phép.

Một trong những giải pháp nhằm hạn chế sự tấn công từ bên trong nội bộ mà nhà quản trị nên làm là hạn chế sự truy cập vào các URL quan trọng. Bạn có thể hạn chế địa chỉ IP, hạn chế sử dụng phân quyền, sự truy cập trực tiếp vào URL.

- Không kiểm tra sự điều hướng và chuyển tiếp của URL

Lợi dụng sơ hở này, tin tặc có thể điều hướng đường link gốc đến một trang Web hoặc 1 ứng dụng lừa đảo hoặc trang Web đen. Khi click vào đường dẫn tới trang Web lừa đảo, máy tính của người dùng có thể bị nhiễm mã độc và hacker sau đó có thể ép người dùng tiết lộ thông tin cá nhân.

- Sử dụng các lỗ hổng có sẵn trong thư viện

Một số lỗi xuất phát từ thư viện ứng dụng, một số nằm trong plugin cài thêm, số khác ở trong module ứng dụng. Cũng chính vì điều này mà hacker nhanh chóng khai thác các lỗ hổng bảo mật và hàng loạt người dùng, thiết bị bị ảnh hưởng.

3. Nguyên tắc bảo mật ứng dụng Web

Để thuận tiện cho việc sử dụng Internet trên mọi thiết bị, rất nhiều ứng dụng của các website ra đời và được nhiều người cài đặt. Một số nguyên tắc bảo mật cho ứng dụng Website dưới đây buộc các doanh nghiệp, tổ chức phải tuân theo để hạn chế thấp nhất khả năng ứng dụng bị tấn công.

Đào tạo an ninh ứng dụng

Mọi người thường cho rằng nhà phát triển Web có sự hiểu biết tổng thể về các lỗ hổng ảnh hưởng đến các ứng dụng Web, tuy nhiên họ thường chỉ cố gắng làm thế nào cho Web hoạt động tốt chứ phần lớn không chú trọng đến những lổ hổng đang tồn tại. Họ thường giả định rằng tất cả các nguy cơ an ninh đều đến từ phía mạng, tường lửa, ssl hay lỗi máy chủ mà rất nhiều người ý thức được rằng bảo mật ứng dụng Web nằm trong mã chứa lỗ hổng dễ bị khai thác. Đào tạo nhà phát triển bảo mật ứng dụng là hoàn toàn cần thiết để các nhà phát triển chủ động hoàn thiện sản phẩm hạn chế tối đa nhất lỗ hổng tồn tại để kiểm soát an ninh đồng thời nắm được vấn đề để phòng ngừa được mã độc tấn công.

Kiểm soát an ninh chung

Để chủ động phòng thủ thì mọi hoạt động cụ thể cần phải được kiểm soát an ninh chung. Các nhà phát triển phải nắm được chính xác về những kiểm soát bảo mật mà họ nên sử dụng. Một số lĩnh vực cơ bản cần được kiểm soát bao gồm: xác thực, kiểm soát truy cập, nhập xác nhận, mã hóa chống XSS, truy cập cơ sở dữ liệu an toàn, mã hóa, đăng nhập. Lựa chọn kiểm soát an ninh phù hợp với tổ chức của bạn có thể khác nhau tùy thuộc vào ngôn ngữ đã chọn và các yếu tố khác.

Xác minh độc lập về an ninh trong quá trình phát triển

            Trong quá trình phát triển xây dựng phần mềm chúng ta cần phải đảm bảo các điều khoản về bảo mật và tuân thủ chúng. Phải tiền hành quét mã nguồn liên tục để tìm kiếm và giảm thiểu các lỗ hổng trong quá trình phát triển. Kết hợp giữa việc rà soát tự động với việc kiểm tra thủ công cũng rất quan trọng để đảm bảo ứng dụng web được đảm bảo tốt nhất, an toàn nhất.

Giám sát ứng dụng trong sản xuất

Quá trình sản xuất làm phát sinh rất nhiều vấn đề vì thế cần phải giám sát kỹ lưỡng ứng dụng trong quá trình sản xuất tránh rõ rỉ thông tin. Thêm vào đó các vấn đề có thể nảy sinh giữa các thành phần khác tạo nên ứng dụng Web, ví dụ như một lỗ hổng thực hiện mã ở xa đã được tìm thấy trong Php một nền tảng chiếm tỷ trọng rất lớn trong tất cả các ứng dụng Web.

Phải chú ý đến các mức của một quá trình phát triển ứng dụng web

Một đường dẫn được xây dựng nhằm đảm bảo cho các mã được an toàn bắt đầu từ khâu đào tạo, kiểm soát an ninh chuẩn, nhận xét các mã đến giảm sát kiểm soát ứng dụng để thực nghiệm động. Cần phải tuân thủ và đảm bảo các mức được diễn ra theo đúng trình tự để hoàn thiện một ứng dụng Web hoàn hảo, hạn chế tối đa lỗ hổng tồn tại trong ứng dụng.

An toàn thông tin và bảo mật cho ứng dụng Web trong các doanh nghiệp, tổ chức, cơ quan nhà nước không phải là điều dễ dàng. Vì vậy, cần lựa chọn ứng dụng Web trước khi sử dụng và nắm được những vấn đề cơ bản liên quan tới vấn đề bảo mật ứng dụng Web.