NGHIÊN CỨU VỀ PHƯƠNG PHÁP PHÁT HIỆN TẤN CÔNG ỨNG DỤNG WEB DỰA TRÊN MẪU DẤU HIỆU

44 282 0
NGHIÊN CỨU VỀ PHƯƠNG PHÁP PHÁT HIỆN TẤN CÔNG ỨNG DỤNG WEB DỰA TRÊN MẪU DẤU HIỆU

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Trong thời đại phát triển mạnh của công nghệ Internet như hiện nay. Các dịch vụ trên mạng đã thâm nhập vào hầu hết các lĩnh vực trong đời sống xã hội. Các thông tin trên Internet cũng đa dạng về nội dung và hình thức, trong đó có rất nhiều thông tin cần được bảo mật cao hơn bởi tính kinh tế, tính chính xác và tính tin cậy của nó. Chính vì vậy, các vấn đề thuộc về an ninh mạng như: sự tấn công, thâm nhập và đánh cắp dữ liệu trên website và trên hệ thống máy chủ đã dấy lên sự lo ngại từ phía người quản trị. Để ngăn chặn điều này xảy ra, người quản trị cần có những phương pháp thích hợp để bảo vệ máy chủ cũng như máy tính của mình. Trong quá trình xây dựng website, điều thiết yếu là phải bảo mật website trước những hiểm họa trên internet. Việc xây dựng bảo mật Web Server có vai trò cực kì quan trọng trong vấn đề này. Xuất phát từ những thực tế đó, chúng ta sẽ tìm hiểu về các cách tấn công phổ biến nhất hiện nay và cách phòng chống các loại tấn công này

BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT MÃ MÔN CHUYÊN ĐỀ NGHIÊN CỨU VỀ PHƯƠNG PHÁP PHÁT HIỆN TẤN CÔNG ỨNG DỤNG WEB DỰA TRÊN MẪU DẤU HIỆU Ngành: An tồn thơng tin Hà Nội, 2020 MỤC LỤC PHẦN I: CÁC VẤN ĐỀ AN TOÀN ĐỐI VỚI MÁY CHỦ WEB .- 1) GIỚI THIỆU - 2) CÔNG CỤ TẤN CÔNG - 3) PHÂN LOẠI CÁC HÌNH THỨC TẤN CÔNG - 3.1) Tấn công Bruteforce .- 3.2) Lỗi chứng thực yếu (Insufficient Authentication) - 3.3) Dự đoán, chèn phiên (Credentical/Session Prediction) - 3.4) XSS (Cross-Site Scripting) .- 3.5) SQL Injection - 3.6) Liệt kê thư mục (Directory indexing) - 3.7) Path Traversal - 3.8) Từ chối dịch vụ (DoS) - 4) CÁC GIẢI PHÁP PHÁT HIỆN VÀ NGĂN CHẶN TẤN CÔNG ỨNG DỤNG WEB - 4.1) Giải pháp tường lửa hệ thống ứng dụng Web (Web application firewall – WAF) - 4.2) Giải pháp chống giả mạo giao dịch (Fraud detection) - 4.3) Giải pháp mã hóa liệu .- 4.4) Giải pháp tường lửa đa UTM .- 4.5) Giải pháp dò quét lỗ hổng an ninh - PHẦN II: TƯỜNG LỬA BẢO VỆ ỨNG DỤNG WEB - 10 1) TƯỜNG LỬA BẢO VỆ ỨNG DỤNG WEB (WAF) - 10 1.1) Kiến trúc tường lửa ứng dụng web - 10 a) Vị trí WAF - 10 b) Mơ hình bảo mật WAF - 10 c) Mơ hình hoạt động .- 10 - 1.2) Các sản phẩm giải pháp - 11 2) TIÊU CHUẨN OWASP TOP TEN - 11 2.1) A1: Injection - 12 2.2) A2: Broken Authentication - 12 2.3) A3: Sensitive Data Exposure - 13 2.4) A4: XML External Entities (XXE) .- 13 2.5) A5: Broken Access Control - 14 2.6) A6: Security Misconfiguration .- 14 2.7) A7: Cross Site Scripting (XSS) .- 14 2.8) A8: Insecure Deserialization - 14 2.9) A9: Using Components with Know Vulnerabilities .- 14 2.10) A10: Insufficient Logging & Monitoring - 15 3) TƯỜNG LỬA BẢO VỆ ỨNG DỤNG WEB MODSECURITY - 15 3.1) Chức .- 15 3.2) Quy trình xử lý ModSecurity - 16 3.3) Cấu trúc tập luật ModSecurity - 18 3.3.1) Variables - 18 3.3.2) Collections - 19 3.3.3) Operators - 20 3.3.4) Actions - 22 - 3.4) Xây dựng tập luật phát chống công ModSecurity - 23 3.4.1) Xây dựng tập luật phát chống công SQL Injection - 23 3.4.2) Xây dựng tập luật phát chống công XSS - 27 - 3.4.3) Xây dựng tập luật phát chống công Local File Include - 28 3.4.4) Xây dựng tập luật phát chống công BruteForce - 28 - 4) TRIỂN KHAI MODSECURITY - 30 4.1) Triển khai ModSecurity môi trường Windows - 30 4.2) Triển khai ModSecurity cho Nginx Ubuntu 18.04 - 32 5) CHẠY THỬ VÀ KIỂM TRA - 35 5.1) Chạy thử kiểm tra Windows .- 35 5.1.1) Chống công XSS Reflected - 35 a) Trước sử dụng tập luật chống XSS cho Modsec - 35 b) Sau sử dụng tập luật chống XSS cho Modsec - 36 5.1.2) Chống công XSS Stored - 37 a) Trước sử dụng tập luật chống XSS cho Modsec - 37 b) Sau sử dụng tập luật chống XSS cho Modsec - 38 5.1.3) Chống công SQL Injection - 39 a) Trước sử dụng tập luật chống SQL Injection cho Modsec .- 39 b) Sau sử dụng tập luật chống SQL Injection cho Modsec - 40 - 5.2) Chạy thử kiểm tra Ubuntu .- 41 5.2.1) Chống công XSS - 41 a) Trước sử dụng tập luật chống XSS cho Modsec - 41 b) Sau sử dụng tập luật chống XSS cho Modsec - 41 5.2.2) Chống công SQL Injection - 42 a) Trước sử dụng tập luật chống SQL Injection cho Modsec .- 42 b) Sau sử dụng tập luật chống SQL Injection cho Modsec - 43 - PHẦN I: CÁC VẤN ĐỀ AN TOÀN ĐỐI VỚI MÁY CHỦ WEB 1) Giới Thiệu Trong thời đại phát triển mạnh công nghệ Internet Các dịch vụ mạng thâm nhập vào hầu hết lĩnh vực đời sống xã hội Các thông tin Internet đa dạng nội dung hình thức, có nhiều thơng tin cần bảo mật cao tính kinh tế, tính xác tính tin cậy Chính vậy, vấn đề thuộc an ninh mạng như: công, thâm nhập đánh cắp liệu website hệ thống máy chủ dấy lên lo ngại từ phía người quản trị Để ngăn chặn điều xảy ra, người quản trị cần có phương pháp thích hợp để bảo vệ máy chủ máy tính Trong q trình xây dựng website, điều thiết yếu phải bảo mật website trước hiểm họa internet Việc xây dựng bảo mật Web Server có vai trò quan trọng vấn đề Xuất phát từ thực tế đó, tìm hiểu cách cơng phổ biến cách phòng chống loại công 2) Công Cụ Tấn Công Metasploit Framework môi trường dùng để kiểm tra, công khai thác lỗi service Ban đầu Metasploit xây dựng từ ngôn ngữ hướng đối tượng Perl với component viết C Python sau viết lại vằng ruby Đây công cụ mã nguồn mở phát triển nhằm sử dụng shellcode để công, khai thác khai thác lỗi dịch vụ Metasploit chạy hầu hết hệ điều hành: Linux, Windows, MacOS Các tính chính:  Quét cổng để xác định dịch vụ hoạt động server  Xác định lỗ hổng dựa phiên hệ điều hành phiên phần mềm cài đặt hệ điều hành  Thử nghiệm khai thác lỗ hổng xác định MPack công cụ khai thác web Nó viết PHP hỗ trợ MySQL Khi máy chủ web bị xâm nhập MPack, tất lưu lượng chuyển hướng đến trang web độc hại Zeus công cụ sử dụng để biến máy tính bị chiếm quyền thành bot zombie Một bot máy tính bị chiếm quyền điều khiển bị sử dụng để thực công Internet Một botnet tập hợp máy tính bị chiếm quyền điều khiển Mạng botnet bị sử dụng công từ chối dịch vụ gửi email rác Neosploit công cụ chứa mã khai thác lỗi bảo mật nguy hiểm trình duyệt web ứng dụng phổ biến Cơng cụ sử dụng để cài đặt chương trình, xóa chương trình, chép nó, v.v 3) Phân Loại Các Hình Thức Tấn Cơng 3.1) Tấn cơng Bruteforce Brute Force Attack phương thức cơng dò mật tài khoản người quản trị cao Hình thức cơng dễ phòng chống lại dễ bị dính người quản trị chủ quan việc đặt mật username Thường dễ bị công kiểu khi:  Đặt username admin, administrator tương tự  Mật không an tồn, dễ đốn ra, sử dụng phổ biến  Khơng bảo mật đường dẫn đăng nhập  Không thay đổi mật thường xuyên  Như vậy, vấn đề liên quan đến bảo mật tài khoản đăng nhập giúp cho hacker sử dụng brute force attack để công 3.2) Lỗi chứng thực yếu (Insufficient Authentication) Lỗi chứng thực yếu xuất website cho phép truy cập nội dung, tài nguyên nhạy cảm mà khơng có đủ quyền Các trang quản trị ví dụ dễ thấy Nếu khơng có chế phân quyền hợp lý thư mục tài khoản đăng nhập trang quản trị Tin tặc hoàn toàn có khả vượt qua chế đăng nhập để chiếm quyền điều khiển trang 3.3) Dự đoán, chèn phiên (Credentical/Session Prediction) Dự đoán, chèn phiên phương thức chiếm phiên (hijacking ) Thông thường, tài khoản thực trình chứng thực server (tài khoản/mật khẩu) Dựa vào thông tin này, server tạo giá trị session ID phép trì kết nối đốn session ID tin tặc có khả chiếm phiên đăng nhập người dùng hợp lệ khác 3.4) XSS (Cross-Site Scripting) XSS kĩ thuật công phổ biến nay, đồng thời vấn đề bảo mật quan trọng nhà phát triển web người sử dụng web Bất kì website cho phép người sử dụng đăng nhập thông tin mà khơng có kiểm tra chặt chẽ đoạn mã nguy hiểm tiềm ẩn lỗi XSS Tin tặc công cách chèn vào website động (ASP, PHP, CGI, JSP…) thẻ HTML hay đoạn mã script nguy hiểm gây nguy hại cho người sử dụng khác Trong đó, đoạn mã nguy hiểm chèn vào hầu hết viết Client – Site Script JavaScript, Jscript, DHTML thẻ HTML Ví dụ: Sử dụng XSS chèn mã java script trực tiếp URL: http://www.demo.com/search.cgi?query=alert(‘XSS was found !’); Khi wesite http://www.demo.com bị lỗi XSS trình duyệt lên thông báo “XSS was found !” Nếu kĩ thuật cơng khác làm thay đổi liệu nguồn web server (mã nguồn, cấu trúc, sở liệu) XSS gây tổn hại website phía client mà nạn nhân trực tiếp người khách duyệt site 3.5) SQL Injection Tấn công SQL Injection thực thi cách chèn câu truy vấn SQL vào liệu tương tác máy khách trình ứng dụng Q trình khai thác lỗi SQL Injection thành cơng giúp tin tặc lấy liệu nhạy cảm cở sở liệu, thay đổi sở liệu (Insert/Update/Delete), thực thi hành động với quyền người quản trị cao điều khiển hệ điều hành máy chủ Ví dụ: Xét đoạn mã truy vấn SQL sau: SELECT * FROM Users WHERE Username=’$username’ AND Password=’$password’ Đây câu truy vấn thường hay dùng trình ứng dụng nhằm xác thực người dùng Nếu câu truy vấn trả giá trị nói thơng tin người dùng đăng nhập lưu sở liệu, người dùng phép đăng nhập vào hệ thống, ngược lại khơng đăng nhập Người dùng nhập thơng tin vào trường gọi web form Thay nhập tên đăng nhập mật khẩu, thử nhập vào ký tự đặc biệt như: $username = 1′ or ‘1’ = ‘1 $password = 1′ or ‘1’ = ‘1 Khi câu truy vấn là: SELECT * FROM Users WHERE Username=’1′ OR ‘1’ = ‘1’ AND Password=’1′ OR ‘1’ = ‘1’ Giả sử giá trị tham số gửi tới máy chủ phương thức GET, có câu lệnh khai thác lỗi sau: ‘%20or%20’1’%20=%20’1&password=1’%20or%20’1’%20=%20’1 Khi đó, truy vấn trả giá trị (hay loạt giá trị) điều kiện ln ln (OR 1=1) Trong trường hợp tin tặc đăng nhập vào hệ thống mà không cần biết tên đăng nhập mật Trường hợp nguy hiểm dòng bảng “Users” tài khoản người quản trị (admin) tin tặc đăng nhập vào hệ thống tài khoản bảng 3.6) Liệt kê thư mục (Directory indexing) Đây chức web server cho phép liệt kê tất nội dung bên thư mục mà khơng có tập tin sở (index.html/home.html/ default.html) Trong thư mục chứa nội dung quan trọng: tập tin sở liệu dự phòng, tập tin cấu hình, tập tin lưu trữ tạm thời, kịch bản… 3.7) Path Traversal Path Traversal hay biết với số tên khác “dot-dot-slash”, “directory traversal”,”directory clumbing” “backtracking” hình thức cơng truy cập đến file thư mục mà lưu bên ngồi thư mục webroot Hình thức cơng không cần sử dụng công cụ mà đơn thao tác biến với / (dot-dot-slash) để truy cập đến file, thư mục, bao gồm source code, file hệ thống, … Ví dụ: GET / / / / / /some/file HTTP/1.0 GET / %255c %255c %255csome/file HTTP/1.0 GET / %u2216 %u2216some/file HTTP/1.0 3.8) Từ chối dịch vụ (DoS) DoS kỹ thuật công nhằm không cho phép truy cập hợp lệ truy cập tới server Kỹ thuật công thường xảy lớp mạng lớp ứng dụng Các hệ thống đích bị cơng DoS:  Người dùng riêng lẻ: trình đăng nhập lặp lặp lại với tài khoản hợp lệ mật không Sau nhiều lần đăng nhập sai, hệ thống khóa tài khoản hợp lệ này, dẫn đến người dùng hợp lệ đăng nhập  Máy chủ sở liệu: Sử dụng kỹ thuật chèn câu lệnh truy vấn SQL chỉnh sửa sở liệu, hệ thống khơng thể phục vụ truy cập từ client  Máy chủ phục vụ web: Sử dụng kỹ thuật công tràn đệm ( Buffer Overflow) để gửi gói truy vấn làm đổ vỡ tiến trình phía máy chủ phục vụ web, dẫn đến hệ thống máy chủ webserver khơng có khả phục vụ truy cập hợp lý 4) Các Giải Pháp Phát Hiện Ngăn Chặn Tấn Công Ứng Dụng Web 4.1) Giải pháp tường lửa hệ thống ứng dụng Web (Web application firewall – WAF) Tường lửa ứng dụng Web thiết bị bảo vệ chun biệt cho ứng dụng, phân tích, hiểu sâu cấu trúc, thuộc tính hoạt động website cụ thể tổ chức Nhờ phát ngăn chặn công chưa biết hành vi bất thường ứng dụng, công tinh vi, sử dụng kỹ thuật lẩn tránh mà dễ dàng vượt qua tường lửa mức mạng IPS Tường lửa có khả kết hợp với giải pháp đánh giá điểm yếu để đưa bảo vệ điểm yếu phát với vá ảo Giải pháp tường lửa ứng dụng Web hỗ trợ nhiều mơ hình triển khai cho phép triển khai hoàn toàn suốt mà không làm thay đổi tới tới mạng ứng dụng hoạt động Giải pháp cho phép:  Chống công mức ứng dụng, nhờ khả học phân tích sâu tầng ứng dụng  Chống công tự động (sử dụng bot, script tự động truy cập, dò quét website), giúp hạn chế chống công DDoS  Cung cấp vá ảo bảo vệ điểm yếu ứng dụng nhanh chóng chưa thể triển khai biện pháp vá điểm yếu cách sửa mã nguồn hay cài vá thật  Bổ sung tăng cường lớp an ninh theo chiều sâu để bảo vệ vững chắc, chống công nhằm vào hệ thống ứng dụng Web  Bảo vệ nhanh chóng điểm yếu ứng dụng biện pháp khác cài vá, sửa mã nguồn chưa thể triển khai  Ngăn chặn công đánh cắp thông tin, hay phá hoại, thay đổi thông tin Cơ sở liệu qua việc khai thác điểm yếu ứng dụng web  Ghi vết truy cập, công vào ứng dụng, giúp điều tra xử lý cố  Tăng cường tính sẵn sàng, ổn định cho hệ thống dịch vụ kinh doanh, giúp bảo vệ hình ảnh tổ chức, nâng cao uy tín sức cạnh tranh 4.2) Giải pháp chống giả mạo giao dịch (Fraud detection) Ngăn chặn hành vi giả mạo người dùng, chiếm đoạt sử dụng tài khoản tốn mơi trường tốn điện tử, e-banking Tính năng:  Giám sát hành vi người dùng dịch vụ toán điện tử, e-banking  Chống đánh cắp định danh người dùng dựa nhiều thông tin: loại giao dịch, số tiền giao dịch, thời gian làm việc, vị trí địa lý (theo địa IP), …  Ngăn chặn hành vi lạm dụng hệ thống: truy cập trực tiếp vào trang đặt hàng, sử dụng biến môi trường đáng ngờ…  Ngăn chặn hành vi đáng ngờ hệ thống giao dịch trực tuyến như: số lần sử dụng thẻ toán, toán nhiều lần từ địa IP… 4.3) Giải pháp mã hóa liệu Bảo vệ liệu nhạy cảm hình thức mã hóa: mã hóa thư mục, tập tin, ổ cứng, … Tính năng:  Thực thi mã hóa liệu thiết bị đầu cuối (máy tính xách tay, smart phone, máy tính để bàn, …)  Mã hóa liệu ổ đĩa local, máy chủ mạng, cấp độ tập tin thư mục 4.4) Giải pháp tường lửa đa UTM Bảo vệ cổng hệ thống (gateway), ngăn chặn rủi ro từ mơi trường Internet Tính năng:  Lọc web, Chống xâm nhập (IPS), Chống DDoS, Chống virus, spam  Lọc cổng dịch vụ Giám sát ứng dụng người dùng 4.5) Giải pháp dò quét lỗ hổng an ninh Xác định, giám sát đưa phương án xử lý lỗ hổng an ninh toàn hệ thống mạng, máy chủ, hệ điều hành, sở liệu ứng dụng Tính năng:  Cung cấp báo cáo toàn diện lỗ hổng an ninh hệ thống  Đưa cảnh báo tức thời hệ thống xuất lỗ hổng bảo mật  Hỗ trợ người quản trị đưa định sách điều chỉnh bảo mật hệ thống xác, phù hợp kịp thời  Tích hợp với cơng cụ giám sát bảo vệ hệ thống IDS/IPS, tường lửa ứng dụng web… tạo hệ thống phòng thủ an ninh có chiều sâu liên kết chặt chẽ thành phần bảo mật PHẦN II: TƯỜNG LỬA BẢO VỆ ỨNG DỤNG WEB 1) Tường Lửa Bảo Vệ Ứng Dụng Web (WAF) Web Application Firewall – WAF giải pháp nhằm bảo vệ cho ứng dụng web tránh khỏi lỗi bảo mật, công từ mã độc tin tặc WAF thiết bị phần cứng phần mềm cài lên máy chủ có chức theo dõi thông tin truyền qua giao thức http/https trình duyệt người dùng máy chủ web lớp Một WAF có khả thực thi sách bảo mật dựa dấu hiệu công, giao thức tiêu chuẩn lưu lượng truy cập ứng dụng web bất thường Đây điều mà tường lửa mạng khác không làm 1.1) Kiến trúc tường lửa ứng dụng web a) Vị trí WAF WAF có 02 hình thức triển khai, bao gồm dạng phần cứng giải pháp cloudbased Các hệ thống WAF cứng thường đặt sau tường lửa mạng trước máy chủ ứng dụng web Việc đặt WAF thực cho tất lưu lượng đến ứng dụng web cần qua WAF trước Tuy nhiên, đơi có ngoại lệ WAF dùng để giám sát cổng mở máy chủ web Ngồi ra, chương trình WAF cài đặt trực tiếp lên máy chủ web thực chức tương tự thiết bị WAF giám sát lưu lượng đến khỏi ứng dụng web b) Mơ hình bảo mật WAF Một tường lửa ứng dụng web hoạt động dựa theo mơ hình bảo mật: Positive Negative Mơ hình Positive cho phép lưu lượng hợp lệ định nghĩa sẵn qua chặn tất lưu lượng lại Mơ hình Negative cho phép tất lưu lượng vượt qua chặn lưu lượng mà WAF cho nguy hại Đơi có WAF cung cấp mơ hình trên, nhiên thơng thường WAF cung cấp mơ hình Với mơ hình Postitive đòi hỏi nhiều cấu hình tùy chỉnh Còn mơ hình Negative chủ yếu dựa vào khả học hỏi phân tích hành vi lưu lượng mạng c) Mơ hình hoạt động WAF hoạt động mơ hình riêng biệt, số mơ hình tham khảo:  Reverse Proxy: chức sử dụng phổ biến triển khai WAF Trong mơ hình này, WAF giám sát tất lưu lượng đến ứng dụng web, sau thay cho địa IP bên gửi yêu cầu trực tiếp đến máy chủ web WAF đứng làm trung gian để gửi yêu cầu đến máy chủ web thay cho trình duyệt gốc gửi trả lại kết cho địa IP Mơ hình có nhược điểm tạo độ trễ kết nối từ trình duyệt đến ứng dụng web  Transparent Proxy: Ở mơ hình này, WAF đứng tường lửa mạng máy chủ web hoạt động tương tự mô hình Reverse Proxy khơng đứng làm 10 4) Triển khai ModSecurity 4.1) Triển khai ModSecurity môi trường Windows Phầm mềm sử dụng: - Mã nguồn DVWA: Là framework xây dựng sẵn lỗ hổng bảo mật theo top 10 điểm yếu bảo mật Web OWASP Trình độ từ mức low đến high đáp ứng nhu cầu kiểm thử nhiều người - Xampp B1) Truy cập vào https://www.apachelounge.com/download/ tải mod_security tương ứng B2) Giải nén tìm file mod_security2.so yajl.dll thư mục vừa giải nén copy mod_security2.so vào C:\xampp\apache\modules copy yajl.dll vào C:\xampp\apache\bin B3) Cấu hình file httpd.conf -> Mở file httpd.conf Xampp thêm vào nội dung sau: LoadModule security2_module modules/mod_security2.so SecRuleEngine DetectionOnly SecRuleEngine On SecDefaultAction "phase:2,deny,log,status:403" Include conf/sqlinjection.conf Include conf/xss.conf Include conf/localfileinclude.conf Trong đó: Include conf/sqlinjection.conf Include conf/xss.conf Include conf/localfileinclude.conf 30 Để thêm luật chống công SQL Injection, XSS, Local File Include Kết quả: B4) Tạo file conf để thiết lập rules Tiến hành tạo file sqlinjection.conf, xss.conf localfileinclude.conf thư mục C:\xampp\apache\conf Xampp, để thêm luật chống SQL Injection, XSS, Local File Include cho Modsec -> Hồn tất việc cấu hình Modsec windows, tiến hành chạy thử kiểm tra phần 5.1 4.2) Triển khai ModSecurity cho Nginx Ubuntu 18.04 31 B1) Chuyển sang root cài đặt gói phần mềm cần thiết: # sudo -i # apt-get install -y git build-essential libpcre3 libpcre3-dev libssl-dev libtool autoconf apache2-dev libxml2-dev libcurl4-openssl-dev automake pkgconf B2) Biên dịch Modsec: # cd /usr/src # git clone -b nginx_refactoring https://github.com/SpiderLabs/ModSecurity.git # cd ModSecurity # /autogen.sh # /configure enable-standalone-module disable-mlogc # make B3) Biên dich nginx # cd /usr/src # wget https://nginx.org/download/nginx-1.14.0.tar.gz # tar -zxvf nginx-1.14.0.tar.gz && rm -f nginx-1.14.0.tar.gz # cd nginx-1.14.0/ # /configure user=www-data group=www-data –addmodule=/usr/src/ModSecurity/nginx/modsecurity with-http_ssl_module # make # make install -> Sửa đổi người dùng mặc định nginx: # sed -i "s/#user nobody;/user www-data www-data;/" /usr/local/nginx/conf/nginx.conf B4) Kiểm tra cài đặt nginx /usr/local/nginx/sbin/nginx -t -> Nếu khơng có lỗi thị sau: B5) Thiết lập systemd cho nginx # cat /lib/systemd/system/nginx.service [Service] Type=forking 32 ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf ExecReload=/usr/local/nginx/sbin/nginx -s reload KillStop=/usr/local/nginx/sbin/nginx -s stop KillMode=process Restart=on-failure RestartSec=42s PrivateTmp=true LimitNOFILE=200000 [Install] WantedBy=multi-user.target EOF -> Thực khởi động, dừng, khởi động lại dịch vụ nginx # systemctl start nginx.service # systemctl stop nginx.service # systemctl restart nginx.service B6) Cấu hình Modsecurity kết hợp Nginx Mở file cấu hình nginx: # nano /usr/local/nginx/conf/nginx.conf Tìm đến đoạn http{} đây: location / { root html; index index.html index.htm; } -> Chèn vào bên location đoạn đây: ModSecurityEnabled on; ModSecurityConfig modsec_includes.conf; -> kết cuối: location / { ModSecurityEnabled on; ModSecurityConfig modsec_includes.conf; root html; index index.html index.htm; } B7) Tạo tệp /usr/local/nginx/conf/modsec_includes.conf để chèn luật cách: # cat /usr/local/nginx/conf/modsec_includes.conf -> nhập vào đoạn sau: include modsecurity.conf include owasp-modsecurity-crs/crs-setup.conf include owasp-modsecurity-crs/rules/*.conf EOF -> enter 33 B8) Copy tệp cấu hình ModSecurity vào thư mục: # cp /usr/src/ModSecurity/modsecurity.conf-recommended /usr/local/nginx/conf/modsecurity.conf # cp /usr/src/ModSecurity/unicode.mapping /usr/local/nginx/conf/ B9 Cấu hình bật Modsec: # sed -i "s/SecRuleEngine DetectionOnly/SecRuleEngine On/" /usr/local/nginx/conf/modsecurity.conf B10 Thêm luật OWASP: # cd /usr/local/nginx/conf # git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git # cd owasp-modsecurity-crs # mv crs-setup.conf.example crs-setup.conf # cd rules # mv REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example REQUEST900-EXCLUSION-RULES-BEFORE-CRS.conf # mv RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf.example RESPONSE999-EXCLUSION-RULES-AFTER-CRS.conf -> Thực khởi động lại nginx: systemctl start nginx.service -> Hồn tất việc cấu hình Modsec cho nginx ubuntu, tiến hành chạy thử kiểm tra phần 5.2 34 5) Chạy thử kiểm tra 5.1) Chạy thử kiểm tra Windows 5.1.1) Chống công XSS Reflected a) Trước sử dụng tập luật chống XSS cho Modsec - login vào http://localhost/DVWA-master/login.php với username/password: admin/password - Vào XSS reflected submit đoạn script sau: alert('XSS testing – CLC') 35 - Sau submit đoạn script lần truy cập vào, trang web thông báo cho người dùng sau: Như thấy lỗi xss reflected rễ bị khai thác chưa có modsec b) Sau sử dụng tập luật chống XSS cho Modsec - Tiến hành thêm tập luật chống công XSS cho modsec cách dùng tập luật phần 3.4.2: Copy toàn luật paste vào file xss.conf C:\xampp\apache\conf\xss.conf - Tiến hành khởi động lại xampp để áp dụng luật - Vào XSS reflected submit lại đoạn script sau: alert('XSS testing – CLC') 36 - Sau submit đoạn script trang web thơng báo sau: Như vậy, thấy tập luật chống XSS cho modsec hoạt động trả mã lỗi 403 Forbidden 5.1.2) Chống công XSS Stored a) Trước sử dụng tập luật chống XSS cho Modsec - Truy cập vào XSS stored submit đoạn script sau: - Sau Sign Guestbook đoạn script lần truy cập vào trang web thông báo cho người dùng sau: 37 Như vậy, sau submit đoạn script chèn vào csdl, người dùng truy cập vào XSS stored nhận thông báo XSS testing-CLC cookie người dùng gửi cho hacker -> Khi chưa có luật chống XSS modsec lỗi XSS stored bị khai thác b) Sau sử dụng tập luật chống XSS cho Modsec - Tiến hành thêm tập luật tương tự thêm tập luật phần chống công XSS Reflected - Khởi động lại xampp để áp dụng luật - Vào XSS Stored submit đoạn script sau: 38 - Sau submit đoạn script trang web thông báo sau: 5.1.3) Chống công SQL Injection a) Trước sử dụng tập luật chống SQL Injection cho Modsec - Login vào DVWA chọn SQL Injection - Nhập vào %’ or ‘0’=’0 submit 39 Kết nhận thông tin tất users có sở liệu Bởi câu truy vấn lúc hiểu : SELECT * FROM users WHERE user_id = '%' or '0'='0' (luôn đúng) Có thể thấy lỗi SQL Injection dễ dàng bị khai thác chưa có modsec b) Sau sử dụng tập luật chống SQL Injection cho Modsec - Tiến hành thêm tập luật chống công SQL Injection cho modsec cách dùng tập luật phần 3.4.1: Copy toàn luật paste vào file sqlinjection.conf C:\xampp\apache\conf\sqlinjection.conf - Tiến hành khởi động lại xampp để áp dụng luật - Vào SQL Injection submit: '%' or '0'='0' - Sau submit trang web thơng báo sau: Như vậy, thấy tập luật chống SQL Injection cho modsec hoạt động trả mã lỗi 403 Forbidden 40 5.2) Chạy thử kiểm tra Ubuntu 5.2.1) Chống công XSS a) Trước sử dụng tập luật chống XSS cho Modsec - Tại trình duyệt thực chạy lệnh kiểm tra công XSS sau: 127.0.0.1/?q=alert('XSS testing – CLC') -> Khơng có chế lọc ký tự đặc biệt, người dùng truy cập vào trang chủ nginx b) Sau sử dụng tập luật chống XSS cho Modsec - Tạo file xss.conf : nano /usr/local/nginx/conf/owasp-modsecurity-crs/rules/xss.conf - Copy tập luật chống XSS phần 3.4.2 vào file xss.conf lưu lại - Xóa file luật chống XSS mặc định owasp tải phần 4.2 /usr/local/nginx/conf/owasp-modsecurity-crs/rules/ REQUEST-941-APPLICATIONATTACK-XSS.conf để sử dụng luật file xss.conf: rm REQUEST-941-APPLICATION-ATTACK-XSS.conf 41 - Thực khởi động lại nginx để luật xss.conf áp dụng: systemctl restart nginx.service - Quay trở lại trình duyệt thực lệnh kiểm tra công XSS: 127.0.0.1/?q=alert('XSS testing – CLC') Như luật chống XSS Modsec hoạt động cho nginx ubuntu 5.2.2) Chống công SQL Injection a) Trước sử dụng tập luật chống SQL Injection cho Modsec - Tại trình duyệt thực chạy lệnh kiểm tra công XSS sau: 127.0.0.1/?q='%' or '0'='0' 42 -> Người dùng truy cập vào trang chủ nginx chưa áp dụng luật chống SQL Injection b) Sau sử dụng tập luật chống SQL Injection cho Modsec - Tạo file sqlinjection.conf : nano /usr/local/nginx/conf/owasp-modsecurity-crs/rules/ sqlinjection.conf - Copy tập luật chống SQL Injection phần 3.4.1 vào file sqlinjection.conf lưu lại - Xóa file luật chống SQLI mặc định owasp tải phần 4.2 /usr/local/nginx/conf/owasp-modsecurity-crs/rules/ REQUEST-942-APPLICATIONATTACK-SQLI.conf để sử dụng luật file sqlinjection.conf: rm REQUEST-942-APPLICATION-ATTACK-SQLI.conf - Thực khởi động lại nginx để luật sqlinjection.conf áp dụng: systemctl restart nginx.service 43 - Quay trở lại trình duyệt thực lệnh kiểm tra cơng SQL Injection 127.0.0.1/?q='%' or '0'='0' Như luật chống SQL Injection Modsec hoạt động cho nginx ubuntu 44 ... vụ web, dẫn đến hệ thống máy chủ webserver khơng có khả phục vụ truy cập hợp lý 4) Các Giải Pháp Phát Hiện Ngăn Chặn Tấn Công Ứng Dụng Web 4.1) Giải pháp tường lửa hệ thống ứng dụng Web (Web. .. - 4) CÁC GIẢI PHÁP PHÁT HIỆN VÀ NGĂN CHẶN TẤN CÔNG ỨNG DỤNG WEB - 4.1) Giải pháp tường lửa hệ thống ứng dụng Web (Web application firewall – WAF) - 4.2) Giải pháp chống giả mạo... ứng dụng Web thiết bị bảo vệ chun biệt cho ứng dụng, phân tích, hiểu sâu cấu trúc, thuộc tính hoạt động website cụ thể tổ chức Nhờ phát ngăn chặn cơng chưa biết hành vi bất thường ứng dụng, công

Ngày đăng: 04/05/2020, 22:02

Từ khóa liên quan

Mục lục

  • PHẦN I: CÁC VẤN ĐỀ AN TOÀN ĐỐI VỚI MÁY CHỦ WEB

    • 1) Giới Thiệu

    • 2) Công Cụ Tấn Công

    • 3) Phân Loại Các Hình Thức Tấn Công

      • 3.1) Tấn công Bruteforce

      • 3.2) Lỗi chứng thực yếu (Insufficient Authentication)

      • 3.3) Dự đoán, chèn phiên (Credentical/Session Prediction)

      • 3.4) XSS (Cross-Site Scripting)

      • 3.5) SQL Injection

      • 3.6) Liệt kê thư mục (Directory indexing)

      • 3.7) Path Traversal

      • 3.8) Từ chối dịch vụ (DoS)

      • 4) Các Giải Pháp Phát Hiện và Ngăn Chặn Tấn Công Ứng Dụng Web

        • 4.1) Giải pháp tường lửa hệ thống ứng dụng Web (Web application firewall – WAF)

        • 4.2) Giải pháp chống giả mạo giao dịch (Fraud detection)

        • 4.3) Giải pháp mã hóa dữ liệu

        • 4.4) Giải pháp tường lửa đa năng UTM

        • 4.5) Giải pháp dò quét các lỗ hổng an ninh

        • PHẦN II: TƯỜNG LỬA BẢO VỆ ỨNG DỤNG WEB

          • 1) Tường Lửa Bảo Vệ Ứng Dụng Web (WAF)

            • 1.1) Kiến trúc tường lửa ứng dụng web

              • a) Vị trí WAF

              • b) Mô hình bảo mật của WAF

              • c) Mô hình hoạt động

              • 1.2) Các sản phẩm và giải pháp

              • 2) Tiêu Chuẩn OWASP TOP TEN

                • 2.1) A1: Injection

Tài liệu cùng người dùng

Tài liệu liên quan