Hệ thống tích hợp WEB APPLICATION FIREWALL và vấn đề bảo vệ tấn công

Hệ thống tích hợp WEB APPLICATION FIREWALL và vấn đề bảo vệ tấn công

Hệ thống tích hợp WEB APPLICATION FIREWALL và vấn đề bảo vệ tấn công ứng dụng Web tại TRƯỜNG CAO ĐẲNG KIÊN GIANG

1. LÝ DO CHỌN ĐỀ TÀI

Hiện nay, công nghệ thông tin được áp dụng rộng rãi trên toàn cầu, tại Việt Nam việc áp dụng công nghệ thông tin đã đi vào các lĩnh vực như kinh doanh, quản lý, mua sắm,… phục vụ nhu cầu của cá nhân, doanh nghiệp.

Một trong những dịch vụ công nghệ hàng đầu được sử dụng phổ biến nhất là dịch vụ WEB. Với sự phổ biến và tiện dụng của công nghệ WEB hiện tại có thể đáp ứng mọi nhu cầu của các đối tượng sử dụng.

Web được sử dụng phổ biến không chỉ đối với các doanh nghiệp, tổ chức mà còn cá nhân với nhiều mục đích sử dụng khác nhau. Ngoài ra, xu hướng thanh toán online phát triển là một trong các mục tiêu của tin tặc. Trong vai trò là người quản trị hệ thống thì vấn đề an ninh cho mạng máy tính luôn được đặt lên hàng đầu. Web Application Firewall chính là phương thức giúp chúng ta thực hiện việc này một cách tối ưu nhất, ngăn chặn các truy cập bất hợp pháp từ bên ngoài và lọc các gói tin ra vào mạng nội bộ.

Đứng trước các rủi ro trong quá trình trao đổi, giao dịch thông tin thông qua website, việc bảo mật các ứng dụng web là điều rất cần thiết trong thời đại số hiện nay. Đó là lý do tôi chọn đề tài “Hệ thống tích hợp WEB APPLICATION FIREWALL và vấn đề bảo vệ tấn công ứng dụng Web tại TRƯỜNG CAO ĐẲNG KIÊN GIANG” để thực hiện luận văn tốt nghiệp. Luận văn sẽ tập trung vào các kỹ thuật tấn công và bảo mật ứng dụng web, đồng thời qua đó đưa ra các giải pháp ngăn chặn, bảo vệ hệ thống website thông qua tường lửa lớp ứng dụng ModSecurity.

2. MỤC ĐÍCH VÀ NHIỆM VỤ

  • Giúp cho khả năng tự đọc, tìm hiểu và nghiên cứu của bản thân ngày càng được nâng cao. Tìm hiểu và mở mang kiến thức cho bản thân và học hỏi nhiều cái mới.
  • Các firewall truyền thống không đủ mạnh để bảo vệ các web server. ModSecurity cho phép bảo vệ web server (một/nhiều) thông qua cơ chế can thiệp trực tiếp ở mức độ ứng dụng. Vì thế, luận văn nhằm nghiên cứu và ứng dụng ModSecurity để bảo vệ hệ thống web được an toàn hơn.
  • Đưa ra chuẩn, mô hình chung khi xây dựng hệ thống tích hợp WAF (Web Application Firewall). Tìm hiểu về WAF và xây dựng hệ thống bảo mật có tích hợp WAF. Triển khai một số kịch bản tấn công ứng dụng web và cách phòng chống bằng WAF.

3. ĐỐI TƯỢNG NGHIÊN CỨU

  • Tìm hiểu các hệ thống web, ứng dụng web. Tổng quan về an ninh mạng và bảo mật ứng dụng web.
  • Tìm hiểu về Web application firewall và triển khai cài đặt cho hệ thống.
  • Các giao thức bảo mật cho web. Một số lỗi của ứng dụng web và cách phòng chống.

4. PHẠM VI NGHIÊN CỨU

  • Triển khai xây dựng hệ thống Web server.
  • Triển khai Firewall Pfsense.
  • Triển khai Web application firewall.
  • Thực hiện một số kịch bản tấn công, phòng thủ cho hệ thống.

5. Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN

Ý nghĩa khoa học:

  • Cung cấp lý thuyết về an ninh mạng, kiến thức về Firewall và Web application firewall.
  • Hiểu được sự cần thiết của WAF trong hệ thống Web server. Hiểu thêm về một số lỗi trong Ứng dụng web và tác dụng của WAF trong ứng dụng web.
  • Hiểu được một số bảo mật Web server. Cấu hình và cài đặt XAMP.
  • Cấu hình và cài đặt OWASP Mutillidae II.

Ý nghĩa thực tiễn:

  • Chỉ ra lỗi trong hệ thống Web server và tầng ứng dụng web.
  • Chỉ ra tác dụng của WAF trong hệ thống Web server. Đưa ra cách phòng chống của các lỗi ứng dụng web.
  • Triển khai hệ thống có Web application firewall bảo vệ.

CHƯƠNG I: TỔNG QUAN VỀ AN NINH MẠNG VÀ ỨNG DỤNG WEB

1.1 Tổng quan về an ninh mạng

1.1.1 Giới thiệu về an ninh mạng

1.1.1.1 An ninh mạng là gì?

An ninh mạng là một trong những lĩnh vực mà hiện nay giới công nghệ thông tin khá quan tâm. Một khi internet ra đời và phát triển, nhu cầu trao đổi thông tin trở nên cần thiết. Mục đích của việc kết nối mạng là làm cho mọi người có thể sử dụng chung tài nguyên mạng từ những vị trí địa lý khác nhau. Chính vì vậy mà các tài nguyên dễ dàng bị phân tán, hiển nhiên một điều là chúng ta dễ bị xâm phạm, gây mất mát dữ liệu cũng như các thông tin có giá trị. Kết nối càng rộng thì càng dễ bị tấn công, đó là một quy luật tất yếu. Từ đó, vấn đề bảo vệ thông tin cũng đồng thời xuất hiện và như thế an ninh mạng ra đời.

Ví dụ: User A gởi một tập tin cho User B trong phạm vi là nước Việt Nam thì nó khác xa so với việc User A gởi tập tin cho User C ở Mỹ. Ở trường hợp đầu thì dữ liệu có thể mất mát với phạm vi nhỏ là trong nước nhưng trường hợp sau thì việc mất mát dữ liệu với phạm vi rất rộng là cả thế giới.

Một lỗ hổng trên mạng đều là mối nguy hiểm tiềm tàng. Từ một lổ hổng bảo mật nhỏ của hệ thống, nhưng nếu biết khai thác và lợi dụng kỹ thuật hack điêu luyện thì cũng có thể trở thành mối tai họa.

Theo thống kê của tổ chức IC3 thì số tội phạm internet ngày càng gia tăng nhanh chóng chỉ trong vòng 8 năm từ năm 2001 đến năm 2009 số lượng tội phạm đã tăng gần gấp 20 lần[1].

Thống kê tội phạm internet của tổ chức IC3 năm 2001 – 2009

Nhưng trong những năm 2010 – 2015 tội phạm internet có giảm nhưng không đáng kể dù vẫn dùng nhiều cách để bảo vệ mạng internet[2].

Thống kê tội phạm Internet IC3 trong những năm 2010 – 2015

Như vậy, số lượng tội phạm tăng sẽ dẫn đến tình trạng các cuộc tấn công tăng đến chóng mặt. Điều này cũng dễ hiểu, vì một thực thể luôn tồn tại hai mặt đối lập nhau. Sự phát triển mạnh mẽ của công nghệ thông tin và kỹ thuật sẽ là miếng mồi béo bở của các Hacker bùng phát mạnh mẽ.

Tóm lại, Internet là môi trường tồn tại nhiều rủi ro trong quá trình giao dịch, tương tác trao đổi thông tin. Công nghệ càng phát triển thì mạng lưới trao đổi thông tin càng phát triển và phạm vi bảo mật thông tin càng rộng rãi qua mạng. Vì vậy công nghệ càng phát triển thì tội phạm công nghệ càng nhiều trên thế giới ngày nay.

1.1.1.2 Kẻ tấn công là ai

Kẻ tấn công người ta thường gọi là Hacker. Là những kẻ tấn công vào hệ thống mạng với nhiều mục đích khác nhau. Có nhiều cách phân loại hacker tùy theo mục đích hacker, trình độ của hacker,… Dựa vào mục đích của hacker, có thể chia thành 3 loại như sau:

  • Hacker mũ đen:
  • Hacker mũ trắng:
  • Hacker mũ xám:

Ranh giới phân biệt các Hacker rất mong manh. Một kẻ tấn công là Hacker mũ trắng trong thời điểm này nhưng ở thời điểm khác họ lại là một tên trộm chuyên nghiệp.

1.1.1.3 Lỗ hổng bảo mật

1.1.2 Đánh giá vấn đề an toàn, bảo mật hệ thống mạng

Để đảm bảo an ninh cho hệ thống mạng, cần phải xây dựng một số tiêu chuẩn đánh giá mức độ an ninh, an toàn cho hệ thống mạng. Một số tiêu chuẩn đã được thừa nhận là thước đo mức độ an ninh của hệ thống mạng.

1.1.2.1 Phương diện vật lý

Có thiết bị dự phòng nóng cho các tình huống hỏng đột ngột. Có khả năng thay thế nóng từng phần hoặc toàn phần (hot-plug, hot-swap).

Bảo mật an ninh nơi lưu trữ các máy chủ.

Khả năng cập nhật, nâng cấp, bổ sung phần cứng và phần mềm.

Yêu cầu nguồn điện, có dự phòng trong tình huống mất điện đột ngột.

Các yêu cầu phù hợp với môi trường xung quanh: độ ẩm, nhiệt độ, chống sét, phòng chống cháy nổ,…

1.1.2.2. Phương diện logic

  • Tính bí mật (Confidentiality)

Là giới hạn các đối tượng được quyền truy xuất đến thông tin. Đối tượng truy xuất thông tin có thể là con người, máy tính và phần mềm. Tùy theo tính chất của thông tin mà mức độ bí mật của chúng có thể khác nhau.

  • Tính xác thực (Authentication)

Liên quan tới việc đảm bảo rằng một cuộc trao đổi thông tin là đáng tin cậy giữa người gởi và người nhận.

  • Tính toàn vẹn (Integrity)

Tính toàn vẹn đảm bảo sự tồn tại nguyên vẹn của thông tin, loại trừ mọi sự thay đổi thông tin có chủ đích hoặc do hư hỏng, mất mát thông tin vì sự cố thiết bị hoặc phần mềm.

  • Tính không thể phủ nhận (Non repudiation)
  • Tính sẵn sàng (Availability)
  • Khả năng điều khiển truy nhập (Access Control)

Trong một hệ thống mạng được coi là bảo mật, an toàn thì người quản trị viên phải điều khiển được truy cập ra vào của hệ thống mạng, có thể cho phép hay ngăn chặn một truy cập nào đấy trong hệ thống.

1.2. Tổng quan về ứng dụng Web

1.2.1. Giới thiệu về Website

Website là một “trang web” được lưu trữ tại các máy chủ hay các hosting hoạt động trên Internet. Đây là nơi giới thiệu những thông tin, hình ảnh về doanh nghiệp, sản phẩm và dịch vụ của doanh nghiệp hay giới thiệu bất cứ thông tin gì để khách hàng có thể truy cập bất kì ở đâu, bất cứ lúc nào.

Website là tập hợp của nhiều web page. Khi doanh nghiệp, công ty xây dựng website nghĩa là đang xây dựng nhiều trang thông tin về sản phẩm, dịch vụ hay giới thiệu,… Để tạo nên một website cần có 3 yếu tố sau:

  • Tên miền (domain)
  • Nơi lưu trữ website (hosting)
  • Nội dung các trang thông tin (web page)

1.2.2. Khái niệm về ứng dụng Web

Ứng dụng WEB là một ứng dụng máy chủ/ máy khách sử dụng giao thức HTTP để tương tác với người dùng hay hệ thống khác. Trình duyệt WEB giành cho người dùng như Internet Explore hoặc Firefox hay Chrome,… Người dùng gởi và nhận các thông tin từ máy chủ WEB thông qua việc tác động vào các trang WEB. Các ứng dụng WEB có thể là trang trao đổi mua bán, các diễn đàn, gửi và nhận email, games online,…Với công nghệ hiện nay, website không chỉ đơn giản là một trang tin cung cấp các bài tin đơn giản. Những ứng dụng web viết trên nền web không chỉ được gọi là một phần của website nữa, giờ đây chúng được gọi là phần mềm viết trên nên web. Có rất nhiều phần mềm chạy trên nền web như Google Word (xử lý các file văn bản), Google spreadsheets (xử lý tính bảng tính), Google Translate (từ điển, dịch văn bản),…

Ngày nay, ứng dụng web phát triển rất cao, gần như bây giờ người ta đều sử dụng ứng dụng web như: Xem phim online, nghe nhạc online, chia sẻ mạng xã hội (facebook, zing), chơi games online, ngân hàng trực tuyến,… và bắt đầu xuất hiện những Hacker muốn thu lợi ích về phần mình từ các ứng dụng web. Và sau đây là thống kê bảo mật ứng dụng web mà hacker sử dụng[3].

Thống kê bảo mật ứng dụng WEB

1.2.3. Một số thuật ngữ trong ứng dụng Web

1.2.3.1 Javascript

1.2.3.2. HTTP header

1.2.3.3. Session

1.2.3.4. Cookie

1.2.3.5. Proxy

1.2.4. Cấu trúc cơ bản của ứng dụng Web

 

Mô hình 3 tầng của một ứng dụng web

1.2.5. Nguyên lý hoạt động một ứng dụng Web

Mô tả hoạt động của một ứng dụng web

1.2.6. Vấn đề bảo mật ứng dụng web

Hiện nay, hacker có rất nhiều cách tấn công một ứng dụng web từ các kỹ thuật cơ bản cho đến những kỹ thuật đòi hỏi kỹ thuật và công nghệ cao. Các công cụ (tool) hỗ trợ ra đời ngày càng nhiều, hỗ trợ rất nhiều cho người quản trị mạng, tìm ra những lỗ hổng để có bản vá lỗi kịp thời nhưng đồng thời nó cũng là một con dao hai lưỡi.

Hacker có thể dùng những công cụ này để phát hiện những lỗ hổng của một ứng dụng web và từ đó sẽ có cách tấn công tương ứng vào lỗ hổng này gây ra rất nhiều tổn thất. Vì vậy việc nghiên cứu về các kỹ thuật tấn công và những công cụ cơ bản hiện nay là một nhu cầu tất yếu trong việc nghiên cứu bảo mật ứng dụng web.

1.3. OWASP Mutillidae II

OWASP Mutillidae II là một ứng dụng miễn phí, mã nguồn mở, cố ý dễ bị tổn thương, cung cấp một mục tiêu cho những người đam mê bảo mật web. Mutillidae có thể được cài đặt trên Linux và Windows bằng cách sử dụng LAMP, WAMP và XAMMP. Nó được cài đặt sẵn trên SamuraiWTF và OWASP BWA. Các phiên bản hiện tại có thể được cập nhật trên các nền tảng này. 

Tính năng, đặc điểm:

 

CHƯƠNG II: BẢO MẬT ỨNG DỤNG WEB

2.1. KiếnTrúc Web Application Firewall

2.1.1. Khái niệm Firewall

Tường lửa là một thiết bị phần cứng và/hoặc một phần mềm hoạt động trong một môi trường máy tính nối mạng để ngăn chặn một số liên lạc bị cấm bởi chính sách an ninh của cá nhân hay tổ chức.

Nhiệm vụ cơ bản của tường lửa là kiểm soát giao thông dữ liệu giữa hai vùng có độ tin cậy khác nhau. Các vùng tin cậy (zone of trust) điển hình bao gồm: mạng Internet (vùng không đáng tin cậy) và mạng nội bộ (một vùng có độ tin cậy cao). Mục đích cuối cùng là cung cấp kết nối có kiểm soát giữa các vùng với độ tin cậy khác nhau thông qua việc áp dụng một chính sách an ninh và mô hình kết nối dựa trên nguyên tắc quyền tối thiểu (principle of least privilege).

Cấu hình đúng đắn cho các tường lửa đòi hỏi kỹ năng của người quản trị hệ thống. Việc này yêu cầu hiểu biết đáng kể về các giao thức mạng và về an ninh máy tính. Những lỗi nhỏ có thể biến tường lửa thành một công cụ an ninh vô dụng.

Có hai loại tường lửa thông dụng là tường lửa bảo vệ để bảo vệ an ninh cho máy tính cá nhân hay mạng cục bộ, tránh sự xâm nhập, tấn công từ bên ngoài và tường lửa ngăn chặn thường do các nhà cung cấp dịch vụ Internet thiết lập và có nhiệm vụ ngăn chặn không cho máy tính truy cập một số trang web hay máy chủ nhất định, thường dùng với mục đích kiểm duyệt Internet.

2.1.2. Khái niệm Web Application Firewall

Tường lửa ứng dụng web WAF (Web Application Firewall) được thiết kế để kiểm soát truy cập từ một mạng không tin cậy đến mạng tin cậy và ngược lại. Mọi luồng dữ liệu đi qua tường lửa được kiểm soát theo chính sách bảo mật định sẵn.

Trong những năm gần đây, xu hướng tấn công vào ứng dụng web đang ngày càng trở nên phổ biến. Các kỹ thuật tấn công được sử dụng chủ yếu là cross-site scripting, SQL injection, và nhiều các kỹ thuật khác… tất cả các kỹ thuật này đều nhắm vào lớp ứng dụng trong mô hình OSI. Các lỗ hổng trong ứng dụng web chủ yếu xảy ra do người lập trình không kiểm tra kỹ các tham số hay ký tự do người dùng nhập vào để tương tác với ứng dụng web. Để khắc phục các lỗi trên ứng dụng web, người lập trình cần hiểu và viết được các đoạn mã ở mức độ bảo mật nhất, tuy nhiên việc viết đoạn mã sao cho “bảo mật” nhất thường khó thực hiện, bởi các lẽ sau: Thứ nhất, các đơn vị lập trình thường không có hoặc thiếu đội ngũ chuyên trách về việc kiểm tra và sửa lỗi bảo mật mã nguồn ứng dụng. Thứ hai, đôi khi áp lực phải hoàn thành ứng dụng web trong thời gian nhanh khiến cho các ứng dụng web được đưa vào vận hành mà không qua các khâu kiểm thử. Thứ ba, việc dùng các công cụ kiểm tra lỗi web tự động đôi khi cũng không tìm ra hết các lỗi khi được thực hiện bằng tay. Do vậy, việc bảo mật một ứng dụng web đó là một quá trình phòng thủ theo chiều sâu bao gồm các khâu phát triển, vận hành, xây dựng cơ sở hạ tầng bảo vệ tốt và có một đội ngũ chuyên trách vấn đề bảo mật riêng cho web.

Tường lửa ứng dụng web (Web Application Firewall – WAF) là một giải pháp nhằm bảo vệ cho ứng dụng web tránh khỏi các lỗi bảo mật nói trên. WAF là một thiết bị phần cứng hoặc phần mềm được cài lên máy chủ có chức năng theo dõi các thông tin được truyền qua giao thức http/https giữa trình duyệt của người dùng và máy chủ web tại lớp 7. Một WAF có khả năng thực thi các chính sách bảo mật dựa trên các dấu hiệu tấn công, các giao thức tiêu chuẩn và các lưu lượng truy cập ứng dụng web bất thường. Đây là điều mà các tường lửa mạng khác không làm được.

Mô hình của một hệ thống Tường lửa ứng dụng Web (WAF)

Hình vẽ trên cho chúng ta thấy rõ hệ thống WAF: Luồng dữ liệu kết nối Web từ bên ngoài vào bên trong qua port 80/443, truy xuất tới hệ thống dữ liệu Database của Web Server thì sẽ có rất nhiều lỗ hổng như SQL Injection, XSS, CSRF, … để các hacker có thể xâm nhập vào bên trong. Nhưng hệ thống có sự giám sát của tưởng lửa ứng dụng web (WAF) và những biện pháp bảo mật giúp phòng chống các lỗ hổng của hệ thống, giúp cho hệ thống được an toàn khi kết nối dữ liệu từ bên ngoài vào bên trong và từ bên trong ra bên ngoài.

2.1.3. Chức năng

2.1.4. Vị trí đặt Web Application Firewall

Một ví dụ triển khai WAF trong máy chủ web Windows

2.1.5. Các mô hình Web Application Firewall

2.1.5.1. Mô hình bảo mật

2.1.5.2. Mô hình hoạt động

WAF có thể hoạt động ở các mô hình riêng biệt, dưới đây là một số mô hình tham khảo:

  • Reverse Proxy:

Mô hình Reverse Proxy

  • Transparent Proxy:

Mô hình Transparent Proxy

  • Layer 2 Brigde:

C:\Users\LXT\Desktop\fw_routed_layer2_bridge.png

Mô hình Layer 2 Brigde

  • Host/Server Based:

2.1.6. GIỚI THIỆU TỔNG QUAN VỀ MODSECURITY

2.1.6.1. Mục đích

Mô hình tổng quan ModSecurity

Modsecurity có thể:

– Theo dõi HTTP traffic để phát hiện những dấu hiệu bất thường.

– Lọc các dữ liệu ra vào webserver.

– Ghi lại các tương tác giữa client và webserver.

2.1.6.2. Các tính năng và vai trò của ModSecurity

  • (Filter): Phân tích và ghi nhật ký (log) luồng dữ liệu HTTP: HTTP, HTTPS, TrafficInput, Reject.
  • Giám sát theo thời gian thực và phát hiện tấn công
  • Phòng chống tấn công và vá lỗi
  • Tính linh hoạt của Ruler engine (lọc)
  • Phát triển các mẫu nhúng

2.1.6.3. Cách thức hoạt động của ModSecurity

ModSecurity hoạt động phát hiện các tấn công dựa vào hai phương pháp:

– Dựa vào các mẫu

– Dựa vào các dấu hiệu bất thường

2.1.6.4. ModSecurity core ruler

  • Tổng quan về Core ruler
  • Nội dung Core rule
  • Cấu trúc của Core rule
  • Cú pháp SecRule

2.2. SSL Ứng Dụng trong Web Server

2.2.1. Giới thiệu về SSL

Để bảo vệ những thông tin mật trên mạng Internet hay bất kỳ mạng TCP/IP nào, SSL đã kết hợp những yếu tố sau để thiết lập được một giao dịch an toàn:

  • Xác thực
  • Mã hoá
  • Toàn vẹn dữ liệu

2.2.2. Chức năng của SSL

SSL không phải là một giao thức đơn lẻ, mà là một tập các thủ tục đã được chuẩn hoá để thực hiện các nhiệm vụ bảo mật sau:

  • Xác thực server
  • Xác thực Client
  • Mã hoá kết nối

2.2.3. Các thuật toán sử dụng trong SSL

2.2.4. Ứng dụng SSL trên Web Server

2.2.5. Giao thức TLS (Transport Layer Security)

2.2.5.1. TLS (Transport Layer Security)

2.2.5.2. Cấu trúc của giao thức SSL

2.2.5.3. Chức năng và hoạt động của giao thức TLS

2.2.5.4. Ứng dụng của giao thức TLS

2.3. Phân tích một số kịch bản bảo vệ ứng dụng web sử dụng WAF

2.3.1. Một số phương thức tấn công ứng dụng web

– Tấn công Bruteforce

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

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

Biện pháp đối phó:

  • Sử dụng SSL (mod_ssl) trong quá trình chứng thực để chống lại việc nghe lén dữ liệu quan trọng.
  • Sử dụng cơ chế tạo session ID ngẫu nhiên, thuật toán mã hóa mạnh.
  • Session ID phải đủ lớn để làm khó quá trình tấn công brute-fore.
  • Giới hạn thời gian tồn tại của session ID.

– XSS – Cross-Site Scripting:

Biện pháp đối phó:

Chỉ cho phép những dữ liệu hợp lệ, từ chối nhận các dữ liệu sai, thường xuyên kiểm tra và lọc dữ liệu đầu vào.

Sử dụng ModSecurity để lọc một số dữ liệu tấn công XSS.

– SQL injection:

Biện pháp đối phó:

  • Kiểm tra dữ liệu đầu vào.
  • Sử dụng ModSecurity để lọc một số dữ liệu tấn công SQL injection.

– Liệt kê thư mục (Directory indexing):

Biện pháp đối phó:

  • Thiết lập quyền hợp lý trên các thư mục chứa nội dung web.
  • Sử dụng ModSecurity để lọc dữ liệu đầu vào.

– Từchối dịch vụ (DoS):

DoS là kỹ thuật tấn công nhằm không cho phép các truy cập hợp lệ truy cập tới server. Kỹ thuật tấn công này thường xảy ra tại lớp mạng và lớp ứng dụng.

  • Biện pháp đối phó:
  • Sử dụng module Mod_Dosevasive.
  • Thiết lập các thông tin hợp lý cho máy chủ phục vụ web: KeepAlives, KeepAliveTimeouts, MaxKeepAliveRequests…

2.3.2. Phân tích một số kịch bản bảo vệ ứng dụng web sử dụng WAF bằng ModSecurity

– Kịch bản một: Chạy ModSecurity ghi lại lỗi tấn công và cách phòng chống tấn công Directory traversal sử dụng mod_sucurity.

– Kịch bản hai: Phân tích user-agent.

– Kịch bản ba: Tấn công SQL Injection.

– Kịch bản bốn: Tấn công Cross-site Scripting (XSS).

2.4. KẾT LUẬN VỀ BẢO VỆ ỨNG DỤNG WEB

  • Phân tích được một số kịch bản bảo vệ ứng dụng web sử dụng WAF như sau:
  • Một số phương thức tấn công ứng dụng web gồm:
  • Tấn công Bruteforce
  • Lỗi chứng thực yếu (Insufficient Authentication)
  • Dự đoán, chèn phiên (Credentical/Session Prediction)
  • XSS – Cross-Site Scripting
  • SQL injection
  • Liệt kê thư mục (Directory indexing)
  • Từ chối dịch vụ (DoS)
  • Phân tích được một số kịch bản bảo vệ ứng dụng web sử dụng WAF bằng ModSecurity như sau:
  • Kịch bản một: Chạy ModSecurity ghi lại lỗi tấn công và cách phòng chống tấn công Directory traversal sử dụng mod_sucurity
  • Kịch bản hai: Phân tích user-agent
  • Kịch bản ba: Tấn công SQL Injection
  • Kịch bản bốn: Tấn công Cross-site Scripting (XSS)

CHƯƠNG III: TRIỂN KHAI HỆ THỐNG WEB APPLICATION FIREWALL TẠI TRƯỜNG CAO ĐẲNG KIÊN GIANG

3.1. HIỆN TRẠNG MÔ HÌNH MẠNG TẠI TRƯỜNG CAO ĐẲNG KIÊN GIANG

3.1.1. Mô tả mạng

Mạng hiện tại không có tính bảo mật.

Mô hình mạng hiện tại có máy chủ Web Server kết nối với Internet qua Router và tự do truy cập từ trong ra ngoài và từ ngoài vào Web Server của trường không qua bất kỳ tường lửa nào nên mô hình mạng này có thể bị tấn công mọi lúc. Nguy cơ bị mất dữ liệu rất cao, trong đó bao gồm bảng điểm, dữ liệu về sinh viên, giảng viên, v.v.. và khả năng phục hồi là không có.

Hacker có thể xâm nhập vào hệ thống mạng mà không mất quá nhiều công sức.

Do đó, cần thiết xây dựng một mô hình hệ thống Web Application Firewall tại trường Cao đẳng Kiên Giang.

3.1.2. Sơ đồ mạng logic

Hệ thống sơ đồ cũ

3.1.3. Hạn chế

  • Hệ thống mạng không được bảo mật kết nối từ Internet vào web server.
  • Hệ thống có thể bị tấn công từ bên ngoài vào hoặc tấn công vòng.
  • Không thể chống lại nguy cơ bị đe dọa từ bên trong.
  • Không thể chống lại các tấn công bởi virus, sâu mạng và mã độc hại.
  • Có thể bị tấn công tầng ứng dụng web và xâm nhập để lấy thông tin.
  • Hế thống có nhiều lỗ hổng và chưa được bảo mật, có thể bị tấn công mọi lúc.
  • Khó phục hồi được dữ liệu khi bị xóa hoặc bị thay đổi thông tin.

3.2. ĐỀ XUẤT HỆ THỐNG MẠNG TÍCH HỢP WEB APPLICATION FIREWALL

3.2.1. Giải pháp

  • Gắn thêm Firewall để kiểm soát luồng thông tin từ giữa Web server và Internet.
  • Thiết lập bộ luật để điều khiển dòng thông tin giữa mạng Web Server và Internet.
  • Cho phép hoặc cấm những dịch vụ truy nhập ra ngoài và vào trong hệ thống.
  • Cài đặt WAF ModSecurity để bảo vệ hệ thống trước các loại tấn công tầng ứng dụng như: Cross-site Scripting (XSS), SQL Injection,…. kiểm tra cả nội dung các truy cập Web sử dụng giao thức HTTP ở lớp ứng dụng. Phân tích những yêu cầu và cảnh báo ngay khi có một hoạt động đáng nghi nào đó trên hệ thống.

3.2.2. Sơ đồ mới

Hệ thống sơ đồ mới

3.2.3. Phân tích

  • Web Server được kết nối với Firewall và định tuyến ra mạng Internet qua Firewall pfSense.
  • Vùng web server được bảo vệ của firewall bằng những bộ rule được cấu hình trên firewall, có thể kiểm soát được luồng thông tin, điều khiển truy cập từ internet vào web server và quyền truy cập của web server ra internet.
  • Mô hình có tăng tính bảo mật nhưng vẫn còn nhiều hạn chế.

3.3. CÁC BƯỚC CÀI ĐẶT – CẤU HÌNH MỘT SỐ KỊCH BẢN BẢO VỆ ỨNG DỤNG WEB SỬ DỤNG WAF

– Chuẩn bị cho hệ thống mạng:

  • Một máy Windows 10, đóng vai trò là web server và Firewall ModSecurity có địa chỉ IP là: 192.168.1.76/24
  • Một máy Pfsense làm firewall thường và cấu hình NAT. Có địa chỉ IP là:
  • Card WAN: 192.168.157.133/24
  • Card LAN: 10.1.1.1/24
  • Một máy Windows XP đóng vai trò là máy Attacker có địa chỉ IP là: 10.1.1.10/24

– Cấu hình máy Win 10:

Cài đặt Xampp và tải OWASP Mutillidae II về chúng ta thêm file mutillidae vào thư mục C:\xampp\htdocs. Truy cập website http://localhost/mutillidae/ ta được:

Truy cập website http://localhost/mutillidae/

Tải ModSecurity 2.8 về máy và cài đặt ModSecurity 2.8. Trong thư mục ModSecurity sẽ có 2 file là libxml2.dll và pcre.dll chúng ta sẽ copy 2 file này vào thư mục C:\xampp\apache\bin.

Sau đó chúng ta sẽ copy file ModSecurity2.so từ trong thư mục ModSecurity 2.8 đến C:\xampp\apache\modules.

Copy file ModSecurity.conf đến thư mục C:\xampp\apache\conf\extra.

Đã thêm nhưng file cấu hình ModSecurity cho apache và cuối cùng chúng ta sẽ thêm nhưng dòng sau vào file httpd.conf để ModSecurity được chạy.

Bỏ dấu “#” trước Load Moduleunique_id_module modules/mod_unique_id.so

Thêm LoadModule security2_module modules/ModSecurity2.so vào file httpd.conf.

Thêm đoạn code sau vào cuối file httpd.conf:

Code:

<IfModule security2_module>

Include conf/extra/ModSecurity.conf

Include conf/extra/rules/*.conf

</IfModule>

Tải OWASP CRS là những tập quy tắc của ModSecurity. Thêm nhưng file quy tắc vào thư mục C:\xampp\apache\conf\extra\rules.

ModSecurity đã được bật lên.

– Cấu hình và cài đặt pfSense:

  • Cài đặt pfSense trên vmware.
  • Chúng ta có 1 card làm mạng LAN và 1 card mạng làm WAN.
  • Tại đây ta cấu hình 2 card mạng theo thứ tự là LAN -> le1, WAN-> le0.
  • Sau khi cài đặt xong ta được giao diện pfSense và địa chỉ các card mạng.
  • Tiếp theo chúng ta sẽ cấu hình địa chỉ IP cho 2 mạng trên và được địa chỉ:

Kết quả sau khi cấu hình IP

– Cấu hình pfSense và test website:

  • Truy cập từ máy win xp vào địa chi máy 10.1.1.1 và đăng nhập pfSense bằng username: admin; password: pfsense.
  • Sau đó chúng ta vào Firewall chọn NAT để cấu hình mạng LAN có thể truy cập internet và mạng WAN có thể truy cập Web server.
  • Sau khi Nat xong chúng ta test bằng cách ping từ máy XP sang máy Turbolinux và truy cập vào Web server và ta được:

Ping từ máy Window XP sang TurboLinux

  • Sau đó chúng ta vào Firewall và chọn Rules để đặt luật cho Firewall.
  • Thêm luật cho firewall là có thể truy cập đến web nhưng không thể ping đến webserver:

Kết quả đạt được sau khi thêm rules

  • Một số kịch bản tấn công ứng dụng web sử dụng ModSecurity để bảo vệ:
  • – Kịch bản một: Chạy ModSecurity ghi lại lỗi tấn công và cách phòng chống tấn công Directory traversal sử dụng modsecurity.

Chúng ta sẽ đặt quy tắc trên vào file ModSecurity.conf ở thư mục C:\xampp\apache\conf\extra:

Code:

SecRule ARGS “\.\./” “t:normalisePathWin,id:99999,severity:4,msg:’Drive Access'”

Sau đó chúng ta mở apache và web OWASP mutillidae lên và thử nghiệm trên thanh url:

Thử nghiệm trên trình duyệt

Và nhận lại trong file erro.log tại thư mục C:\xampp\apache\logs:

Những dòng báo lỗi của sự tấn công trên đến máy chủ web

Sau đó chúng ta sẽ phân tích sự tấn công trên và cảm thấy nó nguy hại đến hệ thống web của chúng ta, ta sẽ thêm một quy tắc mới trong file ModSecurity.conf là:

Code:

SecRule ARGS “\.\./” “phase:1,log,deny,status:503,id:1”

Kết quả ta nhận được khi ta đặt quy tắc trên

– Kịch bản hai: Phân tích và chặn tấn công user-agent.

Giả sử chúng ta là một chủ doanh nghiệp nhỏ bán sách dạy nấu ăn ở định dạng file PDF trên website. Để lôi kéo khách hàng mua sách, chúng ta cung cấp một chương mẫu có chứa các công thức nấu ăn ngon nhất trong cuốn sách, mà họ có thể tải về miễn phí để xem trước khi quyết định mua.

Công việc kinh doanh đang ổn định, nhưng sau đó đột nhiên chúng ta nhận được đơn khiếu nại qua email nói rằng trang web của chúng ta rất chậm hoặc không truy cập được. 

Khi nhìn vào log chúng ta nhận thấy rằng, một IP kết nối tới server web tràn ngập với các request cho các chương mẫu. Các chuỗi user-agent thấy được có tên AppleWebKit/537.36. User-agent này của các chương trình Download nhanh. 

File log chứa các chuỗi user-agent có tên AppleWebKit/537.36

Giải pháp đưa ra để giải quyết vấn đề này là dùng ModSecuriry để ngăn chặn các user-agent này download. Rules được viết như sau. 

Code:

SecRuleREQUEST_HEADERS:User-Agent “AppleWebKit/537.36” “phase:1,log,deny,status:503,id:1”

Và kết quả đạt được:

Kết quả sau khi dùng ModSecurity để ngăn chặn User-Agent

Trong ví dụ trên, REQUEST_HEADERS là một thu thập chứa tất cả các trường trong thông điệp header (message header) được gởi đến bởi client và trong header này chứa User-agent. Vì vậy, ta sử dụng từ khoá cho user-agent là “AppleWebKit/537.36” vì từ AppleWebKit/537.36 này thường xuyên xuất hiện trong các header được gởi đến từ client. Và Action là deny – là từ chối và log là ghi lại log.

– Kịch bản ba: Tấn công SQL Injection

Chúng ta đăng nhập vào OWASP Mutillidae II và truy cập vào lỗi SQL Injection:

Đăng nhập vào OWASP Mutillidae II

Sau đó chúng ta thêm vào Name câu truy vấn SQL là : 1′ or ‘1’ = ‘1’))/*

Và nhấn vào View Account Details và chúng ta truy vấn vào được file user name và password của câu truy vấn trên là:

Kết quả khi click View Account Details

Như vậy chúng ta có user và password và có thể cho phép những kẻ tấn công thực hiện các thao tác xóa, chèn, cập nhập, v.v. Trên cơ sở dữ liệu của ứng dụng, thậm chí là server mà ứng dụng đó đang chạy.

Chúng ta sẽ tải về bản OWASP CRS là những bản quy tắc về ModSecurity về OWASP. Sau đó chúng ta sẽ thêm những quy tắc trên vào ModSecurity và sau khi tấn công lại chúng ta nhận được lỗi trong file erro.log là:

[Thu Apr 27 18:56:24.080959 2019] [:error] [pid 22832:tid 1872] [client 192.168.1.76] ModSecurity: Warning. Pattern match “\\\\W{4,}” at ARGS:blog_entry. [file “C:/xampp/apache/conf/extra/rules/REQUEST-942-APPLICATION-ATTACK-SQLI.conf”] [line “1102”] [id “942460”] [rev “2”] [msg “Meta-Character Anomaly Detection Alert – Repetitive Non-Word Characters”] [data “Matched Data: \\x22></ found within ARGS:blog_entry: <iframe src=\\x22http://www.cnn.com\\x22></iframe>”] [severity “WARNING”] [ver “OWASP_CRS/3.0.0”] [maturity “9”] [accuracy “8”] [tag “paranoia-level/3”] [hostname “192.168.1.76”] [uri “/mutillidae/index.php”] [unique_id “WQHcaMConQEAAFkwIdsAAACV”]

Khi đọc file log chúng ta đã nhận biết được sự tấn công SQL và phân tích nó rồi chúng ta thêm một quy tắc mới vào file ModSecurity.conf là:

Code:

SecRule REQUEST_COOKIES|!REQUEST_COOKIES:/__utm/|!REQUEST_COOKIES:/_pk_ref/|REQUEST_COOKIES_NAMES|ARGS_NAMES|ARGS|XML:/* “(/\*!?|\*/|[‘;]–|–[\s\r\n\v\f]|(?:–[^-]*?-)|([^\-&])#.*?[\s\r\n\v\f]|;?\\x00)” “phase:1,log,deny,status:503,id:1”

Quy tắc trên sẽ chặn tấn công SQL Injection vào hệ thống của chúng ta và không thể thêm vào những câu truy vấn nữa:

Kết quả chặn tấn công SQL Injection

– Kịch bản bốn: Tấn công Cross-site Scripting (XSS)

Chúng ta đăng nhập vào OWASP Mutillidae II và truy cập vào lỗi Cross-site Scripting (XSS):

Đăng nhập vào OWASP Mutillidae II

Sau đó chúng ta sẽ tấn công XSS bằng cách thêm vào câu truy vấn là:

Code:

<script>alert(“Hello! Wellcome to ModSecurity”)</script>

Chèn đoạn Script vào nội dung

Sau đó chúng ta Save Blog Entry và nhận được kết quả sau khi tấn công là:

Đoạn Script được thực thi khi nội dung load

Ở đây, đoạn mã <script>alert (“Hello! Wellcome to ModSecurity”)</script> được chèn vào trong lời nhắn, và ngay lập tức nó được thực thi như hình trên. Vì các lời nhắn được lưu trữ trong database nên bất cứ người dùng nào khi truy cập vào trang web này sẽ thực thi đoạn mã trên. Thay vì một đoạn mã vô hại như trên, chúng ta có thể thay bằng các đoạn mã nguy hiểm khác nhằm gây hại đến người dùng.

Và cũng như cách trên chúng ta sẽ truy vấn vào một câu lệnh khác là:

Code:

<iframe src=”http://www.cnn.com”></iframe>

Và ta thu được kết quả sau khi truy vấn là:

Kết quả khi chèn iframe vào nội dung

Câu lệnh trên sẽ hiển thị một trang web ngay bên trong Blogs của nó. Tuy tấn công trên chưa nguy hại nhưng nó có thể là một trang web nguy hại đến người dùng và người dùng có thể truy cập đến và bị hacker dễ dàng đăng nhập mà không cần mật khẩu của người dùng.

Thêm quy tắc từ OWASP CRS về XSS vào trong thư mục conf và khi chúng ta thực hiện tấn công lại thì kết quả đạt được trong file erro.log sẽ báo lỗi:

[Thu Apr 27 18:56:24.060456 2019] [:error] [pid 22832:tid 1864] [client 192.168.1.76] ModSecurity: Warning. detected XSS using libinjection. [file “C:/xampp/apache/conf/extra/rules/REQUEST-941-APPLICATION-ATTACK-XSS.conf”] [line “56”] [id “941100”] [rev “2”] [msg “XSS Attack Detected via libinjection”] [data “Matched Data: found within ARGS:blog_entry: <iframe src=\\x22http://www.cnn.com\\x22></iframe>”] [severity “CRITICAL”] [ver “OWASP_CRS/3.0.0”] [maturity “1”] [accuracy “9”] [tag “application-multi”] [tag “language-multi”] [tag “platform-multi”] [tag “attack-xss”] [tag “OWASP_CRS/WEB_ATTACK/XSS”] [tag “WASCTC/WASC-8”] [tag “WASCTC/WASC-22”] [tag “OWASP_TOP_10/A3”] [tag “OWASP_AppSensor/IE1”] [tag “CAPEC-242”] [hostname “192.168.1.76”] [uri “/mutillidae/index.php”] [unique_id “WQHcaMConQEAAFkwIdoAAACU”]

Nếu phát hiện tấn công có nguy hại đến hệ thống web server thì chúng ta sẽ thêm quy tắc trên vào C:\xampp\apache\conf\extra\modsecurity.conf:

Code:

SecRule ARGS “(?i)(<script[^>]*>[\s\S]*?<\/script[^>]*>|<script[^>]*>[\s\S]*?<\/script[[\s\S]]*[\s\S]|<script[^>]*>[\s\S]*?<\/script[\s]*[\s]|<script[^>]*>[\s\S]*?<\/script|<script[^>]*>[\s\S]*?)” “id:’973336′,phase:2,deny,rev:’1′,ver:’OWASP_CRS/2.2.7′,maturity:’1′,accuracy:’8′,t:none,t:urlDecodeUni,t:htmlEntityDecode,t:jsDecode,t:cssDecode,log,capture,msg:’XSS Filter – Category 1: Script Tag Vector’,tag:’OWASP_CRS/WEB_ATTACK/XSS’,tag:’WASCTC/WASC-8′,tag:’WASCTC/WASC-22′,tag:’OWASP_TOP_10/A2′,tag:’OWASP_AppSensor/IE1′,tag:’PCI/6.5.1′,logdata:’Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}: %{MATCHED_VAR}’,severity:’2′,setvar:’tx.msg=%{rule.msg}’,setvar:tx.xss_score=+%{tx.critical_anomaly_score},setvar:tx.anomaly_score=+%{tx.critical_anomaly_score},setvar:tx.%{rule.id}-OWASP_CRS/WEB_ATTACK/XSS-%{matched_var_name}=%{tx.0}”

Và kết quả sau khi tấn công XSS lại:

Kết quả sau khi chúng ta thêm rules vào ModSecurity

3.4. KẾT LUẬN SAU KHI ÁP DỤNG HỆ THỐNG WEB APPLICATION FIREWALL

Sau khi áp dụng hệ thống Web Application Firewall, máy chủ Web Server đã hoạt động ổn định hơn, các Website được bảo vệ nội dung tuyệt đối. Chống được các kỹ thuật hacker như: SQL Injection, Cross-site Scriptting, phân tích và ngăn chặn được User-Agent.

KẾT LUẬN

Kết quả đạt được

Cài đặt và cấu hình được Xampp và hệ thống web server OWASP Mutillidae II.

Cài đặt và cấu hình được hệ thống Firewall pfSense tạo ra những rules cho hệ thống, NAT cho mạng Intranet truy cập được Internet. Cho phép hoặc cấm những dịch vụ truy nhập ra ngoài (từ Intranet ra Internet), cho phép hoặc cấm những dịch vụ truy nhập vào trong (từ Internet vào Intranet).

Cài đặt và cấu hình được WAF ModSecurity và demo được một số kịch bản tấn công ứng dụng web và sử dụng ModSecurity để chặn và phát hiện xâm nhập từ hacker.

Đề tài đã giải quyết được vấn đề bảo mật nội dung thông tin của Trường, ngăn chặn các kỹ thuật tấn công Website như SQL Injection, Cross-site Scriptting. Giúp cho hệ thống Website của Trường hoạt động ổn định, tránh nguy cơ bị mất-cắp dữ liệu, bảo mật dữ liệu quan trọng và quý giá của Trường.

Hạn chế của đề tài:

Tầng ứng dụng web sử dụng rất nhiều ứng dụng và đa dạng nên trong khuôn khổ của Luận văn chỉ demo được một số lỗi thường gặp khi tấn công ứng dụng web. Luận văn vẫn còn hạn chế trong việc nghiên cứu và giả lập các kịch bản chuyên sâu đối với các thể loại lỗi bảo mật ứng dụng khác.

Ngoài việc áp dụng WAF là ModSecurity, Luận văn chưa đi sâu và nghiên cứu các giải pháp khác có chức năng tương đương.

Hướng phát triển:

Luận văn có thể được phát triển theo hướng xây dựng thành một hệ thống hoàn chỉnh và tìm hiểu thêm những phương pháp bảo mật khác liên quan đến bảo mật WAF. Phát hiện ra những lỗi chưa tìm được, những lỗi mới nhất tấn công ứng dụng web và tìm cách phòng thủ sử dụng WAF, cải tiến nâng cao hơn về bảo mật web.

LIỆN HỆ:

SĐT+ZALO: 0935568275

E:\DỮ LIỆU COP CỦA CHỊ YẾN\LUAN VAN DUY TAN\LUAN VAN DUY TAN\LUAN VAN CO TUYET\HUYNH TRUNG LUU

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *