CHƯƠNG 1 MÁY CHỦ WEB VÀ CÁC VẤN ĐỀ VỀ AN TOÀN WEB 1. Tổng quan về lỗ hổng bảo mật Web 1. Giới thiệu về máy chủ web Phần mềm máy chủ hoặc phần cứng dành riêng để chạy các phần mềm trên máy chủ có khả năng cung cấp các dịch vụ World Wide Web được gọi là máy chủ Web (Web server). Máy chủ Web thường có dung lượng lớn, tốc độ cao, lưu trữ thông tin như một ngân hàng chứa dữ liệu, những website cùng với những thông tin liên quan khác, ví dụ như các chương trình dịch vụ và các file Multimedia, v.
Máy chủ Web có khả năng gửi đến máy khách những trang Web thông qua môi trường Internet (hoặc Intranet) qua giao thức HTTP (Hypertext Transfer Protocol) – giao thức được thiết kế để gửi các file đến trình duyệt Web (Web Browser), và các giao thức khác. Các máy chủ Web đều có một tên miền (Domain Name) hoặc một địa chỉ IP (IP Address). Ví dụ khi đưa https://qldt.vn/ vào dòng địa chỉ trên trình duyệt nghĩa là gửi một yêu cầu đến một máy chủ Web có Domain Name là qldt. Bất kỳ máy tính – máy chủ nào cũng có thể trở thành một máy chủ Web nếu cài đặt lên nó một phần mềm Web Server và có kết nối vào Internet.
Khi máy tính của người dùng kết nối đến Web Server và gửi yêu cầu truy cập vào các thông tin trên một trang Web nào đó, Web Server sẽ nhận yêu cầu và gửi lại trình duyệt của người dùng những thông tin mà người dùng mong muốn. Giống như những phần mềm khác, phần mềm máy chủ Web cũng chỉ là một ứng dụng phần mềm. Phầm mềm máy chủ Web được cài đặt và chạy trên máy tính – máy Luan van 4 chủ dùng để làm Web Server. Nhờ chương trình này, người dùng có thể truy cập vào các thông tin của trang Web từ một máy tính khác ở trên mạng (Internet, Intranet).
Phần mềm máy chủ Web có thể điều khiển việc kết nối vào cơ sở dữ liệu (CSDL) hay được tích hợp với CSDL để truy cập và tải thông tin từ CSDL lên các trang Web và truyền tải chúng đến người dùng. Máy chủ Web thường sẽ hoạt động 24/24 giờ để phục vụ cho việc cung cấp thông tin liên tục. Vị trí đặt máy chủ Web đóng vai trò quan trọng trong chất lượng và tốc độ truyền thông tin từ máy chủ Web đến máy tính truy cập [2]. Các thành phần cơ bản của máy chủ web Như đã nêu ở trên, một máy chủ Web bao gồm một phần mềm Web server cài đặt trên một máy tính hoặc máy chủ.
Máy tính hoặc máy chủ (server) là thiết bị phần cứng cần thiết để cài đặt phần mềm Web server. Tùy vào phạm vi ứng dụng, yêu cầu cung cấp dịch vụ, phần cứng máy chủ có thể có cấu hình từ đơn giản đến phức tạp. Quan trọng đối với hiệu năng của máy chủ Web là tốc độ CPU, dung lượng đĩa cứng lưu trữ và tốc độ kết nối mạng. Ngoài ra để máy chủ Web hoạt động, còn cần thêm các thành phần quan trọng khác là máy chủ cơ sở dữ liệu (Database server) và máy chủ ứng dụng (Application server).
Trong một hệ máy chủ Web đơn gian, hai thành phần nêu trên có thể cùng được cài đặt trên một phần cứng máy tính/máy chủ.1 là kiến trúc đơn giản cho một hệ thống máy chủ Web. Web server bao gồm thành phần giao diện Web (Presentation layer hay Web interface), thành phần giao diện CSDL (Database interface). Máy chủ CSDL có thể đặt ngoài máy tính cài Web Server, được kết nối với nhau qua giao diện TCP/IP. Giao diện giữa máy chủ Web và trình duyệt của người dùng (Web Browser) được thực hiện qua kết nối HTTP hoặc HTTPS.
Toàn bộ hoạt động của máy chủ Web được ghi vào nhật ký (Log file) phục vụ cho việc theo dõi, giám sát hoạt động và tìm lỗi). Luan van 5 Hình 1.1 Kiến trúc hệ thống của Web Server 1. Các lỗ hổng bảo mật Web 1. Khái niệm lỗ hổng bảo mật Lỗ hổng bảo mật (Security Vulnerability): là một điểm yểu trong hệ thống cho phép kẻ tấn công khai tác gây tổn hại đến an ninh, an toàn hệ thống.
Lỗ hổng bảo mật Web có thể liên quan đến tính toàn vẹn, bí mật, sẵn sàng Những nguy cơ tiềm ẩn, đối với an toàn ứng dụng web đến từ nhiều nguyên nhân khách quan và chủ quan sau đây: - Tai họa bất ngờ: tác động đến từ bên ngoài, ảnh hưởng ở mức vật lý của trang web như hỏa hoạn, động đất, lũ lụt, tai nạn lao động. - Sự cố máy tính: sự cố vật lý ảnh hưởng đến vận hành của trang web như mất điện, hỏng phần cứng, thiết bị nối mạng trục trặc, môi trường vận hành không đảm bảo,. - Sự cố vô tình: sự cố ảnh hưởng đến hệ thống do yếu tố con người như thiếu kiến thức về bảo mật, chủ quan, cẩu thả trong khâu quản lý hệ thống. - Sự cố có chủ ý: hoạt động phá hoại, khai thác tấn công làm ảnh hưởng đến an toàn của trang web, bao gồm tội phạm mạng sử dụng công nghệ cao, nhân viên mâu thuẫn với tổ chức, nội gián bán thông tin để nhận hối lộ, nhân viên bị đánh lừa tài khoản hệ thống.
Luan van 6 Phải tốn nhiều thời gian và công sức để loại bỏ các mối đe dọa trên. Trước hết, cần nhận thức đầy đủ và rõ ràng về hiểm họa này, sau đó lên kế hoạch thực hiện và phòng tránh rủi ro thích hợp trước mỗi loại nguy cơ. Các loại lỗ hổng phổ biến của Web - Các loại lỗ hổng Web phổ biến theo OWASP Hiểu rõ lỗ hổng bảo mật là một việc có ý nghĩa tối quan trọng. OWASP (Open Web Application Security Project) là một dự án mở về bảo mật ứng dụng web nhằm đảm bảo các ứng dụng web một cách an toàn.
Hàng năm OWASP công bố 10 lỗ hổng phổ biến nhất của ứng dụng web trong năm đó. Danh sách này luôn được cập nhật thường xuyên do thay đổi về ảnh hưởng của các lỗ hổng. Theo OWASP năm 2013, 10 lỗ hổng bảo mật Web nghiêm trọng nhất là: + Chèn mã (Injection): Sai sót trong nhập liệu, ví dụ SQL injection, OS injection, LDAP injection. Thông tin không chính xác được đưa vào cùng với các dữ liệu đầu vào như một phần của câu truy vấn.
Tin tặc lợi dụng lỗ hổng này để thực hiện các lệnh không hợp pháp hay truy cập các dữ liệu trái phép. + Lỗi xác thực, quản lý phiên (Broken Authentication and Session Management): Lỗ hổng này cho phép tin tặc lợi dụng để lấy password, khóa hay phiên làm việc, từ đó giả mạo phiên làm việc và danh tính của người dùng. + Lỗi chéo trang-XSS (Cross-Site Scripting): Nguyên nhân tồn tại lỗ hổng này là do không kiểm soát dữ liệu nhập vào cẩn thận. Các dữ liệu của kẻ tấn công gửi đến trình duyệt web mà không cần xác nhận.
Điều này cho phép hắn thực thi các kịch bản trên trình duyệt web của nạn nhân, thay đổi nội dung, chuyển hướng trang web hay lấy phiên làm việc được người dùng lưu trên trình duyệt. + Tham chiếu trực tiếp đối tượng không an toàn (Insecure Direct Object References): Luan van 7 Nhà phát triển ứng dụng web đưa ra tham chiếu đến một đối tượng bên trong ứng dụng chẳng hạn như là một tập tin, một thư mục hay một khóa cơ sở dữ liệu. Nếu quá trình tham chiếu này không được kiểm tra an toàn, hacker có thể dựa vào để tham chiếu đến các dữ liệu không được cấp quyền truy cập + Cấu hình bảo mật kém (Security Misconfigtiration): Một hệ thống bảo mật tốt cần trang bị cho máy chủ ứng dụng, khung ứng dụng, máy chủ cơ sở dữ liệu, nền tảng. các biện pháp bảo mật an toàn, cần thiết và liên kết với nhau.
Việc này nhằm giảm nguy cơ bị kẻ tấn công khai thác vào ứng dụng, có thể để lộ những thông tin bí mật khi trao đổi các gói tin. + Lộ dữ liệu nhạy cảm (Sensitive Data Exposure): Các dữ liệu nhạy cảm như thẻ visa, tài khoản banking, mật khẩu tài khoản mạng xã hội. nếu không lưu trữ và bảo vệ an toàn, kẻ gian có thể đánh cắp hoặc chỉnh sửa những thông tin này. Dữ liệu nhạy cảm cần được lưu trữ và bảo vệ một cách cẩn thận, nên mã hoá và sao lưu định kỳ.
+ Thiếu kiểm soát truy cập mức chức năng (Missing Function Level Access Control): Trong việc phân quyền quản trị các mức, nếu thiếu các điều khoản sẽ dẫn đến việc tin tặc có thể tìm ra các điểm yếu trên hệ thống hay lợi dụng để thay đổi phân quyền. + Giả mạo yêu cầu liên kết trang (Cross-Site Request Forgery - CSRF): Lợi dụng sơ hở của nạn nhân, kẻ tấn công có thể giăng bẫy khiến nạn nhân truy cập vào trang Web giả mạo mà không hề hay biết. Hậu quả có thể là mất tiền, lộ thông tin cá nhân hay mất tài khoản ngân hàng, tài khoản mạng xã hội,… + Sử dụng lỗ hổng đã biết (Using Known Vulnerable Components): Tin tặc sử dụng các thư viện, plugin, module. chứa các lỗ hổng đã được công bố, từ đó tấn công vào hệ thống một cách nhanh chóng.
+ Chuyển hướng không an toàn (Unvalidated Redirects and Forwards): Luan van 8 Chuyển hướng người dùng đến một đường dẫn bên ngoài có thể bị tin tặc lợi dụng để chuyển hướng người dùng đến đường dẫn được hắn chuẩn bị sẵn Hình 1. Các lỗ hổng bảo mật phổ biến nhất 1. Tấn công vào máy chủ Web 1. Giới thiệu về tấn công vào máy chủ Web Tấn công vào máy chủ Web là hình thức kẻ tấn công tìm cách khai thác các lỗ hổng đã biết hoặc chưa biết trên máy chủ Web nhằm đánh cắp thông tin từ máy chủ, phá hoại hoạt động hoặc gây gián đoạn, ngưng trệ dịch vụ Web.
Đối tượng bị tấn công có thể là cá nhân, doanh nghiệp, tổ chức hoặc cơ quan nhà nước. Kẻ tấn công có thể dùng công cụ bắt gói tin tự động, rà quét các lỗ hổng trong hệ thống, quét cổng, và kiểm tra các dịch vụ đang chạy với mục đích là thăm dò, thu thập thông tin về hệ thống. Thông qua các lỗ hổng trong dịch vụ web, đường truyền, dịch vụ xác thực, kẻ tấn công có thể dễ dàng truy cập vào các tài khoản của quản trị viên như trong cơ sở dữ liệu, website, ứng dụng, phần mềm quản lý… để lấy đi những thông tin, dữ liệu quan trọng. Luan van 9 Tin tặc có thể quấy phá hoạt động bằng cách xóa dữ liệu, mã hóa dữ liệu, tống tiền chủ sở hữu máy chủ để lấy lại được dữ liệu cần thiết.