Firewall hay Tường lửa là gì?

Tường lửa (firewall) là một hệ thống bảo mật có nhiệm vụ giám sát và kiểm soát lưu lượng mạng dựa trên một tập hợp các quy tắc bảo mật (security rules). Tường lửa thường nằm giữa mạng tin cậy và mạng không tin cậy (untrusted network); đôi khi mạng không đáng tin cậy lại là Internet! Ví dụ, các mạng văn phòng thường sử dụng tường lửa để bảo vệ mạng của họ khỏi các mối đe dọa trực tuyến (online threats):

Tường lửa quyết định có cho phép lưu lượng vào và ra hay không. Chúng có thể được tích hợp vào phần cứng, phần mềm hoặc kết hợp cả hai loại. Thuật ngữ ‘tường lửa’ thực sự được mượn từ một thực tế xây dựng là xây các bức tường ở giữa hoặc xuyên qua giữa các tòa nhà được thiết kế để chứa lửa. Tương tự, tường lửa mạng hoạt động để đối phó (bao vây) các mối đe dọa trực tuyến.

Tại sao sử dụng tường lửa?

Mục đích sử dụng chính của tường lửa là bảo mật. Tường lửa có thể chặn lưu lượng độc hại trước khi nó đến được mạng, cũng như ngăn thông tin nhạy cảm (sensitive information) rời khỏi mạng.

Tường lửa cũng có thể được sử dụng để lọc nội dung (content filtering). Ví dụ: một trường học có thể định cấu hình tường lửa để ngăn người dùng trên mạng của họ truy cập thông tin người lớn. Tương tự, ở một số quốc gia, chính phủ thiết kế một bức tường lửa có thể ngăn những người bên trong quốc gia đó truy cập vào những phần nhất định trên Internet.

Bài viết này sẽ tập trung vào các tường lửa được cấu hình để bảo mật, trong đó sẽ bàn về một số loại phổ biến.

Các loại tường lửa khác nhau là gì?

Tường lửa dựa trên proxy

Đây là những proxy* nằm giữa máy khách và máy chủ. Máy khách kết nối với tường lửa và tường lửa sẽ kiểm tra các gói tin gửi đi, sau đó nó sẽ tạo kết nối đến người nhận dự kiến ​​(máy chủ web). Tương tự, khi máy chủ web cố gắng gửi phản hồi đến máy khách, tường lửa sẽ chặn yêu cầu đó, kiểm tra các gói và sau đó gửi phản hồi đó trong một kết nối riêng giữa tường lửa và máy khách. Tường lửa dựa trên proxy ngăn chặn hiệu quả kết nối trực tiếp giữa máy khách và máy chủ.

Tường lửa dựa trên proxy giống như một người bảo vệ tại một quán bar. Người bảo vệ này sẽ chặn khách trước khi họ bước vào quán bar để đảm bảo rằng họ không dưới tuổi vị thành niên, mang vũ khí hoặc bất cứ cái gì là mối đe dọa đối với quán bar và khách quen của quán. Bảo vệ cũng ngăn những người khách quen khi họ đi ra ngoài để đảm bảo rằng họ về nhà theo cách an toàn và không định uống rượu và lái xe.

Nhược điểm của việc có một người bảo vệ đứng trước quầy bar là khi nhiều người đang cố gắng vào hoặc rời khỏi quầy bar cùng một lúc, sẽ có một hàng dài và một số người sẽ gặp phải sự chậm trễ. Tương tự, một nhược điểm lớn của tường lửa dựa trên proxy là nó có thể gây ra độ trễ, đặc biệt là trong thời gian có lưu lượng truy cập lớn.

* Proxy là một máy tính hoạt động như một cổng kết nối giữa mạng cục bộ và mạng lớn hơn, chẳng hạn như Internet.


Tường lửa trạng thái

Trong khoa học máy tính, ứng dụng ‘trạng thái’ là ứng dụng lưu dữ liệu từ các sự kiện và tương tác trước đó. Tường lửa trạng thái lưu thông tin về các kết nối mở và sử dụng thông tin này để phân tích lưu lượng đến và đi, thay vì kiểm tra từng gói. Bởi vì nó không kiểm tra từng gói, tường lửa trạng thái (stateful firewall) nhanh hơn tường lửa dựa trên proxy (proxy-based firewalls).

Tường lửa trạng thái dựa trên rất nhiều ngữ cảnh khi đưa ra quyết định. Ví dụ: nếu tường lửa ghi lại các gói gửi đi trên một kết nối yêu cầu một loại phản hồi nhất định, nó sẽ chỉ cho phép các gói đến trên kết nối đó nếu chúng cung cấp loại phản hồi được yêu cầu.

Tường lửa trạng thái cũng có thể bảo vệ các cổng (ports)* bằng cách đóng tất cả chúng trừ khi các gói đến yêu cầu quyền truy cập vào một cổng cụ thể. Điều này có thể giảm thiểu một kiểu tấn công được gọi là quét cổng.

Một lỗ hổng đã biết liên quan đến tường lửa trạng thái là chúng có thể bị thao túng bằng cách lừa máy khách yêu cầu một loại thông tin nhất định. Khi máy khách yêu cầu phản hồi đó, kẻ tấn công có thể gửi các gói dữ liệu độc hại phù hợp với tiêu chí đó thông qua tường lửa. Ví dụ: các trang web không an toàn có thể sử dụng mã JavaScript để tạo các loại yêu cầu giả mạo (forged requests) này từ trình duyệt web.

* Cổng mạng là nơi gửi thông tin; nó không phải là một địa điểm vật lý mà là một điểm cuối giao tiếp. Khi có cơ hội, chúng ta sẽ tìm hiểu thêm về các cổng mạng sau.


Tường lửa thế hệ tiếp theo (NGFW / Next-Generation Firewalls)

Đây là những tường lửa có các khả năng của tường lửa truyền thống nhưng cũng sử dụng một loạt các tính năng bổ sung để giải quyết các mối đe dọa trên các lớp khác của Mô hình OSI. Một số tính năng dành riêng cho NGFW bao gồm:

  • Kiểm tra gói tin sâu (DPI) – NGFW thực hiện kiểm tra gói tin sâu hơn nhiều so với tường lửa truyền thống. Việc kiểm tra sâu này có thể xem xét các yếu tố như trọng tải gói và ứng dụng nào đang được các gói truy cập. Điều này cho phép tường lửa thực hiện các quy tắc lọc chi tiết hơn.
  • Nhận biết ứng dụng – Bật tính năng này giúp tường lửa biết ứng dụng nào đang chạy và cổng nào ứng dụng đó đang sử dụng. Điều này có thể bảo vệ chống lại một số loại phần mềm độc hại nhằm mục đích chấm dứt một quá trình đang chạy và sau đó chiếm lấy cổng của nó.
  • Nhận biết danh tính – Điều này cho phép tường lửa thực thi các quy tắc dựa trên danh tính, chẳng hạn như máy tính nào đang được sử dụng, người dùng nào đã đăng nhập, v.v.
  • Hộp cát – Tường lửa có thể cô lập các đoạn mã được liên kết với các gói tin đến và thực thi chúng trong môi trường ‘hộp cát / sandbox’ để đảm bảo chúng không có hoạt động nguy hại. Sau đó, kết quả của thử nghiệm hộp cát này có thể được sử dụng làm tiêu chí khi quyết định có cho phép các gói tin vào mạng hay không.

Tường lửa ứng dụng web (WAF / Web Application Firewalls)

Trong khi firewall truyền thống giúp bảo vệ mạng riêng tư khỏi các ứng dụng web độc hại, WAF giúp bảo vệ các ứng dụng web khỏi người dùng độc hại. WAF giúp bảo vệ các ứng dụng web bằng cách lọc và giám sát lưu lượng HTTP giữa ứng dụng web và Internet. Nó thường bảo vệ các ứng dụng web từ các cuộc tấn công kiểu như cross-site giả mạo, cross-site-scripting (XSS), tập tin bao gồm, và SQL injection, và cả những kiểu tấn công khác nữa.

Bằng cách triển khai WAF trước một ứng dụng web, một lá chắn được đặt giữa ứng dụng web và Internet. Trong khi ‘tường lửa dựa trên proxy’ bảo vệ danh tính của máy khách bằng cách sử dụng trung gian, WAF là một loại proxy ngược, tức là dùng để bảo vệ máy chủ khỏi bị lộ bằng cách cho máy khách đi qua WAF trước khi đến được máy chủ.

WAF hoạt động thông qua một tập hợp các quy tắc thường được gọi là chính sách (policies). Các chính sách này nhằm mục đích bảo vệ khỏi các lỗ hổng trong ứng dụng bằng cách lọc ra các lưu lượng độc hại. Giá trị của WAF một phần đến từ tốc độ và việc sửa đổi chính sách có thể thực hiện dễ dàng, cho phép phản ứng nhanh hơn với các vectơ tấn công khác nhau; trong một cuộc tấn công DDoS, giới hạn tốc độ (rate limiting) có thể được thực hiện nhanh chóng bằng cách sửa đổi các chính sách WAF. Các sản phẩm WAF thương mại như Tường lửa ứng dụng web của Cloudflare bảo vệ hàng triệu ứng dụng web khỏi các cuộc tấn công mỗi ngày.

(Tổng hợp từ bài viết What is a Firewall? của Cloudflare)

Leave a Comment