Sự phát triển của Tường lửa ứng dụng web: từ tường lửa đến hệ thống bảo vệ dựa trên đám mây với máy học

Trong tài liệu trước đây về chủ đề đám mây, chúng tôi nói, cách bảo vệ tài nguyên CNTT trên đám mây công cộng và tại sao các phần mềm chống vi-rút truyền thống không hoàn toàn phù hợp cho các mục đích này. Trong bài đăng này, chúng ta sẽ tiếp tục chủ đề về bảo mật đám mây và nói về sự phát triển của WAF và lựa chọn nào tốt hơn: phần cứng, phần mềm hay đám mây. 

Sự phát triển của Tường lửa ứng dụng web: từ tường lửa đến hệ thống bảo vệ dựa trên đám mây với máy học

WAF là gì

Hơn 75% các cuộc tấn công của hacker nhắm vào các lỗ hổng của ứng dụng web và trang web: các cuộc tấn công như vậy thường vô hình đối với cơ sở hạ tầng bảo mật thông tin và các dịch vụ bảo mật thông tin. Ngược lại, các lỗ hổng trong các ứng dụng web mang đến rủi ro xâm phạm và gian lận tài khoản người dùng cũng như dữ liệu cá nhân, mật khẩu và số thẻ tín dụng. Ngoài ra, các lỗ hổng trên trang web còn đóng vai trò là điểm xâm nhập cho những kẻ tấn công vào mạng công ty.

Tường lửa ứng dụng web (WAF) là một màn hình bảo vệ chặn các cuộc tấn công vào các ứng dụng web: SQL SQL, tập lệnh chéo trang, thực thi mã từ xa, bạo lực và bỏ qua ủy quyền. Bao gồm các cuộc tấn công khai thác lỗ hổng zero-day. Tường lửa ứng dụng cung cấp khả năng bảo vệ bằng cách giám sát nội dung trang web, bao gồm HTML, DHTML và CSS, đồng thời lọc các yêu cầu HTTP/HTTPS độc hại tiềm ẩn.

Những quyết định đầu tiên là gì?

Những nỗ lực đầu tiên để tạo Tường lửa ứng dụng web đã được thực hiện vào đầu những năm 90. Ít nhất ba kỹ sư được biết là đã làm việc trong lĩnh vực này. Đầu tiên là giáo sư khoa học máy tính Gene Spafford từ Đại học Purdue. Ông đã mô tả kiến ​​trúc của tường lửa ứng dụng proxy và xuất bản nó vào năm 1991 trong cuốn sách "Bảo mật UNIX trong thực tế".

Người thứ hai và thứ ba là các chuyên gia bảo mật thông tin William Cheswick và Marcus Ranum từ Bell Labs. Họ đã phát triển một trong những nguyên mẫu tường lửa ứng dụng đầu tiên. Nó được phân phối bởi DEC - sản phẩm được phát hành dưới tên SEAL (Liên kết truy cập bên ngoài an toàn).

Nhưng SEAL không phải là một giải pháp WAF chính thức. Đó là một tường lửa mạng cổ điển với chức năng nâng cao - khả năng chặn các cuộc tấn công vào FTP và RSH. Vì lý do này, giải pháp WAF đầu tiên ngày nay được coi là sản phẩm của Perfecto Technologies (sau này là Sanctum). Năm 1999 cô trình bày Hệ thống AppShield Vào thời điểm đó, Perfecto Technologies đang phát triển các giải pháp bảo mật thông tin cho thương mại điện tử và các cửa hàng trực tuyến trở thành đối tượng mục tiêu của sản phẩm mới của họ. AppShield có thể phân tích các yêu cầu HTTP và các cuộc tấn công bị chặn dựa trên các chính sách bảo mật thông tin động.

Cùng thời điểm với AppShield (năm 2002), WAF nguồn mở đầu tiên xuất hiện. Anh ấy đã trở thành ModSecurity. Nó được tạo ra với mục đích phổ biến các công nghệ WAF và vẫn được cộng đồng CNTT hỗ trợ (đây là kho lưu trữ trên GitHub). ModSecurity chặn các cuộc tấn công vào các ứng dụng dựa trên bộ biểu thức chính quy (chữ ký) tiêu chuẩn - công cụ kiểm tra yêu cầu dựa trên mẫu - Bộ quy tắc cốt lõi OWASP.

Kết quả là, các nhà phát triển đã đạt được mục tiêu của mình - các giải pháp WAF mới bắt đầu xuất hiện trên thị trường, bao gồm cả những giải pháp được xây dựng trên cơ sở ModSecurity.

Ba thế hệ đã là lịch sử

Người ta thường phân biệt ba thế hệ hệ thống WAF, đã phát triển cùng với sự phát triển của công nghệ.

Thế hệ đầu tiên. Hoạt động với các biểu thức chính quy (hoặc ngữ pháp). Điều này bao gồm ModSecurity. Nhà cung cấp hệ thống nghiên cứu các kiểu tấn công vào ứng dụng và tạo ra các mẫu mô tả các yêu cầu hợp pháp và có khả năng gây hại. WAF kiểm tra các danh sách này và quyết định phải làm gì trong một tình huống cụ thể - có chặn lưu lượng truy cập hay không.

Một ví dụ về phát hiện dựa trên biểu thức chính quy là dự án đã được đề cập Bộ quy tắc cốt lõi mã nguồn mở. Một vi dụ khac - Naxsi, cũng là nguồn mở. Các hệ thống có biểu thức chính quy có một số nhược điểm, cụ thể khi phát hiện lỗ hổng mới, quản trị viên phải tạo thêm các quy tắc theo cách thủ công. Trong trường hợp cơ sở hạ tầng CNTT quy mô lớn, có thể có vài nghìn quy tắc. Việc quản lý nhiều biểu thức chính quy như vậy là khá khó khăn, chưa kể việc kiểm tra chúng có thể làm giảm hiệu suất mạng.

Biểu thức chính quy cũng có tỷ lệ dương tính giả khá cao. Nhà ngôn ngữ học nổi tiếng Noam Chomsky đã đề xuất một cách phân loại ngữ pháp, trong đó ông chia chúng thành bốn mức độ phức tạp có điều kiện. Theo phân loại này, các biểu thức chính quy chỉ có thể mô tả các quy tắc tường lửa không liên quan đến những sai lệch so với mẫu. Điều này có nghĩa là kẻ tấn công có thể dễ dàng "đánh lừa" WAF thế hệ đầu tiên. Một phương pháp để chống lại điều này là thêm các ký tự đặc biệt vào các yêu cầu ứng dụng, những ký tự này không ảnh hưởng đến logic của dữ liệu độc hại nhưng lại vi phạm quy tắc chữ ký.

Sự phát triển của Tường lửa ứng dụng web: từ tường lửa đến hệ thống bảo vệ dựa trên đám mây với máy học

Thế hệ thứ hai. Để tránh các vấn đề về hiệu suất và độ chính xác của WAF, tường lửa ứng dụng thế hệ thứ hai đã được phát triển. Giờ đây, họ có các trình phân tích cú pháp chịu trách nhiệm xác định các loại tấn công được xác định nghiêm ngặt (trên HTML, JS, v.v.). Các trình phân tích cú pháp này hoạt động với các mã thông báo đặc biệt mô tả các truy vấn (ví dụ: biến, chuỗi, không xác định, số). Các chuỗi mã thông báo độc hại tiềm ẩn được đặt trong một danh sách riêng biệt mà hệ thống WAF thường xuyên kiểm tra. Cách tiếp cận này lần đầu tiên được trình bày tại hội nghị Black Hat 2012 dưới dạng C/C++ thư viện libinjection, cho phép bạn phát hiện việc tiêm SQL.

So với WAF thế hệ đầu tiên, các trình phân tích cú pháp chuyên dụng có thể nhanh hơn. Tuy nhiên, chúng không giải quyết được những khó khăn liên quan đến việc cấu hình hệ thống theo cách thủ công khi các cuộc tấn công độc hại mới xuất hiện.

Sự phát triển của Tường lửa ứng dụng web: từ tường lửa đến hệ thống bảo vệ dựa trên đám mây với máy học

Thế hệ thứ ba. Sự phát triển trong logic phát hiện thế hệ thứ ba bao gồm việc sử dụng các phương pháp học máy giúp đưa ngữ pháp phát hiện gần nhất có thể với ngữ pháp SQL/HTML/JS thực của các hệ thống được bảo vệ. Logic phát hiện này có thể điều chỉnh máy Turing để bao quát các ngữ pháp có thể đếm được đệ quy. Hơn nữa, trước đây nhiệm vụ tạo ra một máy Turing có khả năng thích ứng là không thể giải quyết được cho đến khi những nghiên cứu đầu tiên về máy Turing thần kinh được công bố.

Học máy cung cấp khả năng duy nhất để điều chỉnh bất kỳ ngữ pháp nào để xử lý bất kỳ loại tấn công nào mà không cần tạo danh sách chữ ký theo cách thủ công theo yêu cầu trong phát hiện thế hệ đầu tiên và không cần phát triển trình phân tích cú pháp/mã thông báo mới cho các loại tấn công mới như Memcached, Redis, Cassandra, SSRF , theo yêu cầu của phương pháp thế hệ thứ hai.

Bằng cách kết hợp cả ba thế hệ logic phát hiện, chúng ta có thể vẽ một sơ đồ mới trong đó thế hệ phát hiện thứ ba được biểu thị bằng đường viền màu đỏ (Hình 3). Thế hệ này bao gồm một trong những giải pháp mà chúng tôi đang triển khai trên đám mây cùng với Onsek, nhà phát triển nền tảng bảo vệ thích ứng cho các ứng dụng web và API Wallarm.

Logic phát hiện hiện sử dụng phản hồi từ ứng dụng để tự điều chỉnh. Trong học máy, vòng phản hồi này được gọi là “tăng cường”. Thông thường, có một hoặc nhiều loại cốt thép như vậy:

  • Phân tích hành vi phản hồi của ứng dụng (thụ động)
  • Quét/làm mờ (hoạt động)
  • Tệp báo cáo/thủ tục chặn/bẫy (sau khi thực tế)
  • Hướng dẫn sử dụng (do người giám sát xác định)

Do đó, logic phát hiện thế hệ thứ ba cũng giải quyết được vấn đề quan trọng về độ chính xác. Giờ đây, bạn không chỉ có thể tránh các kết quả dương tính giả và âm tính giả mà còn có thể phát hiện các kết quả âm tính thực hợp lệ, chẳng hạn như phát hiện việc sử dụng phần tử lệnh SQL trong Bảng điều khiển, tải mẫu trang web, các yêu cầu AJAX liên quan đến lỗi JavaScript và các lỗi khác.

Sự phát triển của Tường lửa ứng dụng web: từ tường lửa đến hệ thống bảo vệ dựa trên đám mây với máy học

Sự phát triển của Tường lửa ứng dụng web: từ tường lửa đến hệ thống bảo vệ dựa trên đám mây với máy học

Sự phát triển của Tường lửa ứng dụng web: từ tường lửa đến hệ thống bảo vệ dựa trên đám mây với máy học

Tiếp theo, chúng tôi sẽ xem xét khả năng công nghệ của các tùy chọn triển khai WAF khác nhau.

Phần cứng, phần mềm hay đám mây - chọn gì?

Một trong những lựa chọn để triển khai tường lửa ứng dụng là giải pháp phần cứng. Những hệ thống như vậy là những thiết bị điện toán chuyên dụng mà một công ty cài đặt cục bộ trong trung tâm dữ liệu của mình. Nhưng trong trường hợp này, bạn phải mua thiết bị của riêng mình và trả tiền cho các nhà tích hợp để thiết lập và gỡ lỗi (nếu công ty không có bộ phận CNTT riêng). Đồng thời, bất kỳ thiết bị nào cũng trở nên lỗi thời và không thể sử dụng được nên khách hàng buộc phải bỏ ra ngân sách để nâng cấp phần cứng.

Một tùy chọn khác để triển khai WAF là triển khai phần mềm. Giải pháp này được cài đặt dưới dạng tiện ích bổ sung cho một số phần mềm (ví dụ: ModSecurity được định cấu hình trên Apache) và chạy trên cùng một máy chủ với nó. Theo quy định, các giải pháp như vậy có thể được triển khai cả trên máy chủ vật lý và trên đám mây. Nhược điểm của họ là khả năng mở rộng hạn chế và hỗ trợ nhà cung cấp.

Tùy chọn thứ ba là thiết lập WAF từ đám mây. Các giải pháp như vậy được cung cấp bởi các nhà cung cấp đám mây dưới dạng dịch vụ đăng ký. Công ty không cần phải mua và cấu hình phần cứng chuyên dụng, những nhiệm vụ này thuộc về nhà cung cấp dịch vụ. Một điểm quan trọng là WAF đám mây hiện đại không ngụ ý việc di chuyển tài nguyên sang nền tảng của nhà cung cấp. Trang web có thể được triển khai ở mọi nơi, ngay cả tại chỗ.

Chúng tôi sẽ giải thích thêm lý do tại sao mọi người hiện đang ngày càng hướng tới WAF trên nền tảng đám mây.

WAF có thể làm gì trên đám mây

Về năng lực công nghệ:

  • Nhà cung cấp chịu trách nhiệm cập nhật. WAF được cung cấp theo hình thức đăng ký, vì vậy nhà cung cấp dịch vụ sẽ giám sát mức độ liên quan của các bản cập nhật và giấy phép. Các bản cập nhật không chỉ liên quan đến phần mềm mà còn cả phần cứng. Nhà cung cấp nâng cấp bãi đậu máy chủ và duy trì nó. Nó cũng chịu trách nhiệm cân bằng tải và dự phòng. Nếu máy chủ WAF bị lỗi, lưu lượng truy cập ngay lập tức được chuyển hướng sang máy khác. Phân phối lưu lượng truy cập hợp lý cho phép bạn tránh các tình huống khi tường lửa chuyển sang chế độ mở không thành công - nó không thể đối phó với tải và ngừng lọc các yêu cầu.
  • Vá ảo. Các bản vá ảo hạn chế quyền truy cập vào các phần bị xâm nhập của ứng dụng cho đến khi nhà phát triển đóng lỗ hổng. Do đó, khách hàng của nhà cung cấp đám mây có cơ hội bình tĩnh chờ đợi cho đến khi nhà cung cấp phần mềm này hoặc phần mềm kia xuất bản các “bản vá” chính thức. Thực hiện việc này càng nhanh càng tốt là ưu tiên hàng đầu của nhà cung cấp phần mềm. Ví dụ: trong nền tảng Wallarm, một mô-đun phần mềm riêng biệt chịu trách nhiệm vá lỗi ảo. Quản trị viên có thể thêm biểu thức chính quy tùy chỉnh để chặn các yêu cầu độc hại. Hệ thống có thể đánh dấu một số yêu cầu bằng cờ “Dữ liệu bí mật”. Sau đó, các tham số của chúng được che giấu và trong mọi trường hợp chúng không được truyền ra ngoài khu vực làm việc của tường lửa.
  • Trình quét chu vi và lỗ hổng tích hợp. Điều này cho phép bạn xác định độc lập ranh giới mạng của cơ sở hạ tầng CNTT bằng cách sử dụng dữ liệu từ truy vấn DNS và giao thức WHOIS. Sau đó, WAF tự động phân tích các dịch vụ chạy bên trong phạm vi (thực hiện quét cổng). Tường lửa có khả năng phát hiện tất cả các loại lỗ hổng phổ biến - SQLi, XSS, XXE, v.v. - và xác định các lỗi trong cấu hình phần mềm, chẳng hạn như truy cập trái phép vào kho Git và BitBucket cũng như các cuộc gọi ẩn danh tới Elaticsearch, Redis, MongoDB.
  • Các cuộc tấn công được giám sát bởi tài nguyên đám mây. Theo quy định, các nhà cung cấp đám mây có sức mạnh tính toán lớn. Điều này cho phép bạn phân tích các mối đe dọa với độ chính xác và tốc độ cao. Một cụm nút lọc được triển khai trên đám mây, qua đó tất cả lưu lượng truy cập đều đi qua. Các nút này chặn các cuộc tấn công vào ứng dụng web và gửi số liệu thống kê đến Trung tâm phân tích. Nó sử dụng thuật toán học máy để cập nhật các quy tắc chặn cho tất cả các ứng dụng được bảo vệ. Việc thực hiện sơ đồ như vậy được thể hiện trong Hình. 4. Các quy tắc bảo mật được thiết kế riêng như vậy sẽ giảm thiểu số lượng cảnh báo tường lửa sai.

Sự phát triển của Tường lửa ứng dụng web: từ tường lửa đến hệ thống bảo vệ dựa trên đám mây với máy học

Bây giờ một chút về các tính năng của WAF đám mây về các vấn đề tổ chức và quản lý:

  • Chuyển sang OpEx. Trong trường hợp WAF trên nền tảng đám mây, chi phí triển khai sẽ bằng XNUMX vì tất cả phần cứng và giấy phép đã được nhà cung cấp thanh toán; thanh toán cho dịch vụ được thực hiện bằng cách đăng ký.
  • Các gói cước khác nhau. Người dùng dịch vụ đám mây có thể nhanh chóng bật hoặc tắt các tùy chọn bổ sung. Các chức năng được quản lý từ một bảng điều khiển duy nhất và cũng rất an toàn. Nó được truy cập thông qua HTTPS, ngoài ra còn có cơ chế xác thực hai yếu tố dựa trên giao thức TOTP (Thuật toán mật khẩu một lần dựa trên thời gian).
  • Kết nối qua DNS. Bạn có thể tự thay đổi DNS và định cấu hình định tuyến mạng. Để giải quyết những vấn đề này, không cần phải tuyển dụng và đào tạo từng chuyên gia. Theo quy định, bộ phận hỗ trợ kỹ thuật của nhà cung cấp có thể giúp thiết lập.

Công nghệ WAF đã phát triển từ tường lửa đơn giản với các quy tắc ngón tay cái đến các hệ thống bảo vệ phức tạp với thuật toán học máy. Tường lửa ứng dụng hiện nay cung cấp nhiều tính năng mà những năm 90 rất khó triển khai. Theo nhiều cách, sự xuất hiện của chức năng mới đã trở nên khả thi nhờ vào công nghệ đám mây. Các giải pháp WAF và các thành phần của chúng tiếp tục phát triển. Cũng giống như các lĩnh vực bảo mật thông tin khác.

Văn bản được chuẩn bị bởi Alexander Karpuzikov, giám đốc phát triển sản phẩm bảo mật thông tin tại nhà cung cấp đám mây #CloudMTS.

Nguồn: www.habr.com

Thêm một lời nhận xét