• Thứ Sáu, 18/07/2008 09:43 (GMT+7)

    Website doanh nghiệp: Những lỗ hổng nghiêm trọng

    Nghiên cứu gần đây cho thấy, các website doanh nghiệp (DN) đang mắc phải những lỗ hổng bảo mật rất sơ đẳng gây hậu quả nghiêm trọng. Ông Trần Văn Toàn, giám đốc trung tâm Đào Tạo Công Nghệ Mạng Việt Chuyên đã chia sẻ với tạp chí TGVT về các phương pháp phòng chống các lỗ hổng trên.

    Xin ông cho biết những lỗ hổng thường gặp trong các website của DN Việt Nam hiện nay và đâu là nguyên nhân?


    Ông Trần Văn Toàn

    Các lỗ hổng bảo mật nghiêm trọng trên các website trong nước từ lâu đã được cảnh báo. Tuy nhiên, chưa có cá nhân, tổ chức nào đứng ra thực hiện những nghiên cứu, báo cáo cụ thể và thường xuyên để giúp các DN khắc phục. Tại trung tâm Đào Tạo Công Nghệ Mạng Việt Chuyên, song song với việc đào tạo các khóa học về xây dựng website DN, chúng tôi còn triển khai nghiên cứu về bảo mật website DN. Có nhiều nguyên nhân dẫn đến các lỗ hổng này, cụ thể là các lỗ hổng dưới đây:

    Dữ liệu đầu vào không được kiểm tra tính hợp lệ
    Trước tiên, hacker sẽ thiết lập một proxy đứng giữa trình duyệt và máy chủ ứng dụng web. Proxy này có khả năng chặn các gói dữ liệu trước khi chuyển đến máy chủ, do đó cho phép hacker sửa đổi dữ liệu truy cập và chèn các mã tấn công trước khi gửi đến ứng dụng web. Những cuộc tấn công dạng này đang có xu hướng ngày càng phổ biến hơn do số lượng các công cụ hỗ trợ các chức năng tạo tham số bất kỳ, tạo mã tấn công, tấn công lập trình máy (brute force) đang ngày càng tăng. Hậu quả của việc sử dụng các tham số không được kiểm tra sẽ gây khó khăn cho nhà lập trình web nếu họ không có một hệ thống tập trung kiểm tra tính hợp lệ của tất cả các truy xuất HTTP.

    Lỗi kiểm soát truy cập nguồn tài nguyên
    Những lập trình viên thường không đánh giá được mức độ khó khăn trong việc xây dựng một cơ chế quản lý kiểm soát truy cập dữ liệu. Đa số những chức năng này không đựơc thiết kế từ lúc đầu mà được xây dựng kèm theo tùy tính năng của ứng dụng. Vì vậy, các chức năng kiểm soát được xây dựng ở khắp các module khác nhau trong mã nguồn. Khi ứng dụng được phát triển xong và đưa vào triển khai, các mã kiểm soát này trở nên không thống nhất và gây ra nhiều lỗ hổng nghiêm trọng khó phát hiện được.

    Lỗi liên quan đến quá trình quản lý xác thực và phiên truy cập


    Lớp học bảo vệ website DN tại Việt Chuyên

    Một số lượng lớn lỗi ứng dụng trong các hàm quản lý tài khoản và phiên truy cập có thể dẫn đến mối nguy cơ lộ tài khoản người sử dụng và thậm chí tài khoản của người quản trị. Ứng dụng web thường phải theo dõi và duy trì phiên truy cập của người dùng nhằm phân biệt các truy cập từ người dùng khác nhau. Giao thức HTTP không cung cấp khả năng trên do đó ứng dụng web phải tự tạo cơ chế này. Thông thường, môi trường phát triển ứng dụng cung cấp cơ chế quản lý phiên truy cập (thường là dưới hình thức mã hóa bằng những đoạn video hấp dẫn). Tuy nhiên, đa số các nhà lập trình nghiêng về phát triển cơ chế riêng của họ. Trong cả hai trường hợp, nếu token quản lý phiên truy cập không được bảo vệ, tin tặc có thể ăn cắp token truy cập tài khoản của người khác.

    Lỗi tràn bộ đệm
    Tin tặc sử dụng lỗi tràn bộ đệm nhằm ảnh hưởng đến dòng lệnh thực thi của ứng dụng web. Bằng cách gửi một đoạn mã được thiết kế đặc biệt đến ứng dụng, tin tặc có thể làm cho ứng dụng web thi hành bất kỳ đoạn mã nào, điều này tương đương với việc chiếm quyền làm chủ máy server. Mặc dù là một lỗi phổ biến, lỗi tràn bộ đệm là loại lỗi rất khó phát hiện và ngay cả khi đã được phát hiện, lỗi này rất khó bị lợi dụng do tin tặc cần một trình độ rất cao để có thể viết đoạn mã khai thác.

    Lưu trữ thiếu an toàn
    Đa số các ứng dụng web cần lưu trữ dữ liệu nhạy cảm, trong cơ sở dữ liệu hoặc trong một tập tin nào đó trong hệ thống. Thông tin nhạy cảm bao gồm: mật khẩu, số thẻ tín dụng, thông tin tài khoản, hoặc các thông tin cần bảo vệ khác. Các cơ chế mã hóa thường được sử dụng để bảo vệ những thông tin này. Mặc dù, sử dụng các hàm mã hóa không khó cho các lập trình viên. Tuy nhiên, lập trình viên vẫn thường mắc những lỗi cơ bản khi áp dụng vào ứng dụng web do không hiểu rõ hết các đặc điểm mã hóa. Những lỗi thông thường bao gồm: không mã hóa dữ liệu quan trọng như khóa, certificates và mật khẩu, lưu trữ các khóa bảo mật trong bộ nhớ bằng các cơ chế không an toàn, cơ chế tạo số ngẫu nhiên không đảm bảo, sử dụng sai thuật toán...

    Từ chối dịch vụ
    Một dạng tấn công DoS đó là, ứng dụng web dựa trên các lỗi trong chức năng của ứng dụng. Ví dụ một ứng dụng sử dụng cơ chế khóa tài khoản trong một tiếng hoặc hơn nếu nhận được quá 3 lần mật khẩu sai. Hacker có thể lợi dụng điểm yếu này, gửi đến quá 3 lần sai mật khẩu của một tài khoản hợp lệ, hậu quả là người dùng của tài khoản này không thể truy cập được trong một tiếng hoặc hơn. Trong một cuộc tấn công từ chối dịch vụ điển hình vào ứng dụng web, hackers sẽ tìm cách chiếm gần hết nguồn tài nguyên hệ thống trên máy chủ hoặc ứng dụng khiến người sử dụng hợp lệ không thể truy cập vào ứng dụng.

    Quản lý cấu hình thiếu an toàn
    Theo các thống kê hiện nay, thông thường các phần mềm và hệ điều hành trên máy chủ không được cập nhật kịp thời với bản vá lỗi bảo mật mới nhất. Lỗi trên phần mềm web hosting máy chủ cho phép liệt kê bất kỳ thư mục (hoặc tập tin) nào trong hệ thống như những tập tin mặc định, tập tin tạo ra để test như script, tập tin cấu hình không được xóa đi trong thư mục của trang web... Những tập tin này, thường có độ bảo mật yếu và có thể chứa những thông tin quan trọng.

    Quy trình xử lý báo lỗi
    Quy trình xử lý báo lỗi có thể gây ra nhiều vấn đề bảo mật cho một trang web. Vấn đề thông thường nhất là khi các thông báo lỗi có chứa các thông tin nhạy cảm như stack traces, thông tin cơ sở dữ liệu và các mã lỗi được thông báo cho người dùng. Những lỗi này cung cấp các thông tin về hệ thống, ứng dụng ở mức độ thấp và thông tin này phải được bảo mật. Sử dụng những thông tin này, hacker có thể dò tìm ra những lỗi khác của ứng dụng.

    Với việc tìm ra hàng chục lỗi bảo mật trên các website DN, dự án bảo mật ứng dụng web đưa ra giải pháp nào để phòng chống, thưa ông ?

    Vấn đề bảo mật ứng dụng web không phải là câu chuyện mới. Thực tế là phần lớn các vấn đề trên đã được hiểu rõ trong nhiều thập kỷ qua. Tuy nhiên, đến nay vẫn có khá nhiều dự án phát triển phần mềm còn mắc phải những lỗ hổng này và đe dọa không chỉ đến an toàn cho hệ thống của khách hàng mà còn ảnh hưởng chung đến an toàn của hệ thống Internet. Do tính chất phức tạp của ứng dụng, hiện nay chưa có một giải pháp tuyệt đối cho vấn đề này. Tuy nhiên các giải pháp sau được đề nghị để giảm thiểu các rủi ro liên quan đến bảo mật của ứng dụng web: Các tiêu chí về bảo mật phải được đặt ra ngay từ lúc thiết kế ứng dụng nhằm phát triển các module bảo vệ ngay từ giai đoạn đầu, ban hành một chuẩn tối thiểu về bảo mật cho toàn ứng dụng; thường xuyên cập nhật kiến thức bảo mật cho lập trình viên; sử dụng dịch vụ đánh giá bảo mật của một công ty ngoài để kiểm tra tính bảo mật của ứng dụng; sử dụng các công cụ dò và phát hiện lỗi của ứng dụng; cập nhật các phần mềm máy chủ web với các phiên bản vá lỗi bảo mật mới nhất; sử dụng các thiết bị tường lửa ứng dụng web để bảo vệ ứng dụng ở mức ngoại vi...

    Trân trọng cảm ơn ông!

    ID: B0807_67