You are on page 1of 38

LỜI NÓI ĐẦU

Ngày nay khoa học công nghệ phát triển mạnh mẽ ở trình độ cao cả về chiều
rộng lẫn chiều sâu. Nhu cầu ứng dụng công nghệ cao vào phát triển mọi mặt của
đời sống trên phạm vi toàn cầu ngày càng trở nên gay gắt. Chúng ta cần cập nhật
những thành tựu mới về khoa học kĩ thuật hiện đại. Từ đó nhu cầu trao đổi thông
tin không chỉ dừng lại trong phạm vi nhỏ (trong công ty, cơ quan, tổ chức, đoàn
thể…) mà còn mở rộng trong một quốc gia, thậm trí là trên toàn cầu. Mọi người
đa phần trao đổi với nhau thông qua Internet. Kết nối vào Internet, sử dụng và khai
thác là việc làm quen thuộc của mỗi chúng ta. Nhưng phải làm sao để việc trao đổi
thông tin vẫn đảm bảo được tính an toàn.

Hiện nay, đảm bảo an toàn trong kết nối với môi trường Internet là vấn đề mà cả
thế giới quan tâm. Nhiều giải pháp đã được đề xuất. Một trong các giải pháp hữu
hiệu nhất đó chính là Firewall – tường lửa. Vì vậy, nhóm tôi xin chọn đề tài
“Firewall và các kiến trúc” để làm báo cáo.

Mục đích của đề tài :

- Tổng quan về An toàn thông tin trên mạng.

- Cung cấp các kiến thức đầy đủ, chi tiết về tường lửa và giới thiệu các kiến thức
có liên quan

- Cung cấp những hiểu biết về an toàn thông tin, về chức năng, cấu tạo, các dạng
tường lửa.

- Cách sử dụng tường lửa một cách thành thạo nhằm đảm bảo được an toàn thông
tin khi kết nối với môi trường Internet.
CHƯƠNG 1. TỔNG QUAN VỀ AN NINH MẠNG
I. Thông tin về tấn công mạng
1.1. Khái niệm

Tấn công mạng hay còn gọi là chiến tranh trên không gian mạng. Có thể hiểu tấn
công mạng là hình thức tấn công xâm nhập vào một hệ thống mạng máy tính, cơ sở
dữ liệu, hạ tầng mạng, website, thiết bị của một cá nhân hoặc một tổ chức nào đó.
Cụm từ “Tấn công mạng” có 2 nghĩa hiểu:
+ Hiểu theo cách tích cực (positive way): Tấn công mạng (penetration testing) là
phương pháp Hacker mũ trắng xâm nhập vào một hệ thống mạng, thiết bị, website
để tìm ra những lỗ hổng, các nguy cơ tấn công nhằm bảo vệ cá nhân hoặc tổ chức.
+ Hiểu theo cách tiêu cực (negative way): Tấn công mạng (network attack) là hình
thức, kỹ thuật Hacker mũ đen tấn công vào một hệ thống để thay đổi đối tượng hoặc
tống tiền.
Tóm lại, một cuộc tấn công không gian mạng có thể nhằm vào cá nhân, doanh
nghiệp, quốc gia, xâm nhập vào trong hệ thống, cơ sở hạ tầng mạng, thiết bị, con
người dưới nhiều các khác nhau và mục tiêu khác nhau.
1.2. Đối tượng bị tấn công
Đối tượng bị tấn công có thể là cá nhân, doanh nghiệp, tổ chức hoặc nhà nước.
Hacker sẽ tiếp cận thông qua mạng nội bộ (gồm máy tính, thiết bị, con người). Trong
yếu tố con người, hacker có thể tiếp cận thông qua thiết bị mobile, mạng xã hội, ứng
dụng phần mềm.
1.3. Mục đích của tấn công mạng
– Tích cực: Tìm ra những lỗ hổng bảo mật, những nguy cơ tấn công mạng cho cá
nhân và tổ chức từ đó chỉ ra các giải pháp phòng chống, ngăn chặn sự đe dọa từ tin
tặc.
– Tiêu cực: Phá hoại, lừa đảo tống tiền, mua vui, đe dọa nạn nhân.
Ví dụ 1: Trong cùng một hệ thống mạng LAN (mạng nội bộ), tin tặc có thể xâm nhập
vào hệ thống của công ty. Hacker đó sẽ đóng vai như một người dùng thật trong hệ
thống, sau đó tiến hành xâm nhập vào tệp chứa tài liệu bí mật của công ty về tài
chính. Tin tặc có thể rút sạch số tiền đó, hoặc thay đối các con số, ẩn file…
Ví dụ 2: Một học sinh lớp 9 tấn công vào các website sân bay Việt Nam với mục
đích mua vui.
Ví dụ 3: Vụ mã độc WannaCry tấn công hàng loạt các doanh nghiệp Việt Nam và
đòi tiền chuộc.
Ví dụ 4: Kẻ tấn công có thể đột nhập vào máy tính của bạn thông qua phần mềm
gián điệp để nghe lén tin nhắn, hoặc xóa file dữ liệu nào đó.
II. Các hình thức tấn công mạng phổ biến
2.1. Tấn công từ chối dịch vụ

 DoS (Denial of Services Attack)


DoS (Denial of Services Attack) hay còn gọi là “Tấn Công Từ Chối Dịch Vụ” là
một dạng tấn công mà người thực hiện có thể dùng để khiến cho một hệ thống không
thể sử dụng được hoặc làm chậm hệ thống lại, khiến nó không thể phục vụ cho những
người dùng truy cập vào dịch vụ của server. Nguyên lý hoạt động cơ bản của nó là
làm quá tải tài nguyên của hệ thống làm cho server không thể đáp ứng các yêu cầu
từ các máy Client và Server sẽ nhanh chóng bị ngừng hoạt động hoặc reboot. Mục
tiêu của DoS Attack không phải để chiếm quyền truy cập vào máy tính, dữ liệu hay
kiểm soát 1 hệ thống mà là để ngăn cản những người dùng (User) sử dụng dịch vụ
đó. Kẻ tấn công có thể cố thực hiện những việc sau:

Làm ngập lụt mạng, sẽ làm nghẽn việc lưu thông trong mạng.

Làm gián đoạn kết nối giữa 2 máy tính,sẽ ngăn cản việc truy cập, sử dụng dịch vụ
của server.
Ngăn chặn 1 cá nhân nào đó truy cập, sử dụng dịch vụ của server.

Làm gián đoạn việc cung cấp dịch vụ đến một hệ thống hay một user nào đó.

 DDOS (Distributed Denial of Service)

DDOS (Distributed Denial of Service) là một dạng tấn công từ nhiều máy tính
tới một đích, nó gây ra từ chối các yêu cầu hợp lệ của các user bình thường. Bằng
cách tạo ra những gói tin cực nhiều đến một đích cụ thể, nó có thể gây tình trạng
tương tự như hệ thống bị shutdown. Nó được tấn công từ một hệ thống các máy tính
cực lớn trên Internet, và thường dựa vào các dịch vụ có sẵn trên các máy tính trong
mạng botnet.

Các dịch vụ tấn công được điều khiển từ những "primary victim" trong khi các
máy tính bị chiếm quyền sử dụng trong mạng Bot được sử dụng để tấn công thường
được gọi là "secondary victims". Là dạng tấn công rất khó có thể phát hiện bởi tấn
công này được sinh ra từ nhiều địa chỉ IP trên Internet. Nếu một địa chỉ IP tấn công
một công ty, nó có thể được chặn bởi Firewall. Nếu nó từ 30.000 địa chỉ IP khác, thì
điều này là vô cùng khó khăn. Thủ phạm có thể gây nhiều ảnh hưởng bởi tấn công
từ chối dịch vụ DoS, và điều này càng nguy hiểm hơn khi chúng sử dụng một hệ
thống mạng Bot trên internet thực hiện tấn công DoS và đó được gọi là tấn công
DDoS.

2.2. Tấn công bằng phần mềm độc hại

3 Hình thức tấn công mạng thông qua phần mềm độc hại chủ yếu là:
– Email phishings: Tin tặc thường lừa đảo người dùng bằng cách tạo ra những thông
điệp để thu hút sự tò mò của nhân. Nhưng thực chất, những tệp này sẽ chứa các phần
mềm độc hại và phát tán ngay sau khi người dùng tải về máy.
– Tấn công bằng website độc hại (malicious websites): Với cách thức này, kẻ tấn
công thường tạo một trang web giả mạo có giao diện y hệt với giao diện của website
gốc. Sau khi nạn nhân truy cập vào địa chỉ website đó, phần mềm độc hại sẽ từ từ
thâm nhập vào hệ thống của họ. Điển hình cho ví dụ này là các vụ giả mạo website
ngân hàng, website ngành hàng không vừa xảy ra trong năm 2016 – 2017.
– Tấn công bằng quảng cáo chứa mã độc (Malvertising): Đối với một số kẻ tấn công
thông minh, chúng sẽ tận dụng mạng lưới các quảng cáo để gắn mã độc vào đó. Khi
click vào quảng cáo độc hại này, người dùng sẽ bị điều hướng tới một website khác
có chứa phần mềm độc hại. Nguy hiểm hơn, trong một số trường hợp người dùng
không click vào quảng cáo cũng có thể bị tấn công.
2.3. Tấn công bằng cách giả mạo địa chỉ IP (IP spoofing)
Việc giả mạo địa chỉ IP có thể được thực hiện thông qua việc sử dụng khả năng
dẫn đường trực tiếp (source-routing). Với cách tấn công này, kẻ tấn công gửi các gói
tin IP tới mạng bên trong với một địa chỉ IP giả mạo (thông thường là địa chỉ của
một mạng hoặc một máy được coi là an toàn đối với mạng bên trong), đồng thời chỉ
rõ đường dẫn mà các gói tin IP phải gửi đi.
III. Các giải pháp chống tấn công mạng điển hình

3.1 Mã hóa các thông tin mật

Việc mã hóa các thông báo có các vai trò sau:

- Nó dùng để che dấu thông tin mật được đặt trong hệ thống. Như chúng ta đã
biết, các kênh truyền thông vật lý luôn bị tấn công bởi sự nghe trộm và xuyên tạc
thông báo. Theo truyền thống, việc trao đổi thư từ bằng mật mã

được dùng trong các hoạt động quân sự, tình báo. Điều này dựa trên nguyên tắc là
một thông báo được mã hóa với một khóa mã xác định và chỉ có thể được giải mã
bởi người biết khóa ngược tương ứng.

- Nó được dùng để hỗ trợ cho cơ chế truyền thông xác thực giữa các cặp người
dùng hợp pháp mà ta gọi là người ủy nhiệm (Principal). Một người ủy nhiệm sau khi
giải mã thành công một thông báo bằng cách dùng một khóa dịch xác định có thể
thừa nhận rằng thông báo được xác thực nếu nó chứa một vài giá trị mong muốn. Từ
đó người nhận có thể suy ra rằng người gửi của thông báo có khóa mã tương ứng.
Như vậy nếu ác khóa được giữ bí mật thì việc giả mã thành công sẽ xác thực thông
báo đến từ một người gửi xác định.

- Nó được dùng để cài đặt một cơ chế chữ kí số. Chữ kí số có vai trò quan
trọng như một chữ kí thông thường trong việc xác nhận với một thành viên thứ ba
rằng một thông báo là một bản sao không bị thay đổi của một thông báo được tạo
bởi người ủy nhiệm đặc biệt. Khả năng để cung cấp một chữ kí số dựa trên nguyên
tắc : có những việc chỉ có người ủy nhiệm là người gửi thực sự mới có thể làm còn
những người khác thì không thể. Điều này có thể đạt được bằng việc đòi hỏi một
thành viên thứ 3 tin cậy mà anh ta có bằng chứng định danh của người yêu cầu để
mã thông báo hoặc để mã một dạng ngắn của thông báo được gọi là digest tương tự
như một checksum. Thông báo hoặc digest được mã đóng vai trò như một chữ kí đi
kèm với thông báo.

3.2. Cơ chế xác thực

Trong các hệ thống nhiều người dùng tập trung các cơ chế xác thực

thường là đơn giản. Định danh của người dùng có thể được xác thực bởi việc

kiểm tra mật khẩu của mỗi phiên giao dịch. Cách tiếp cận này dựa vào cơ chế

quản lí tài nguyên hệt thống của nhân hệ điều hành. Nó chặn tất cả các phiên

giao dịch mới bằng cách giả mạo người khác.

Trong các mạng máy tính, việc xác thực là biện pháp mà nhờ nó các định

danh của các máy chủ và các máy khách hàng được xác minh là đáng tin cậy.
Cơ chế được dùng để đạt điều này là dựa trên quyền sở hữu các khóa mã. Từ

thực tế rằng chỉ một người ủy nhiệm mới có quyền sở hữu khóa bí mật, chúng ta suy
ra rằng người ủy nhiệm chính là người có định danh mà nó đòi hỏi. Việc

sở hữu một mật khẩu bí mật cũng được dùng để xác nhận định danh của người

sở hữu. Các dịch vụ xác thực dựa vào việc dùng mật mã có độ an toàn cao

Dịch vụ phân phối khóa có chức năng tạo, lưu giữ và phân phối tất cả các khóa

mật mà cần thiết cho tất cả người dùng trên mạng.

3.3. Sử dụng các chương trình chống virut và tường lửa (Firewall)

Sử dụng những chương trình chống virus, Trojan… Mỗi khi bạn tắt máy,
trojan cũng tắt và nó sẽ khởi động lại ngay khi máy đang load windows. Nó không
tự dưng chạy mà nó phải sửa file win.ini, system.ini hay lưu vào trong registry. Vì
thế bạn phải luôn luôn kiểm tra những file này. Nhiều trojan không thể dấu được khi
bạn nhấn Ctrl+Alt+Del, lâu lâu thử nhấn 3 phím này và kiểm tra xem có gì lạ không.

Sử dụng những chương trình scan port xem máy mình có mở cổng nào lạ không, nếu
nó không nằm trong những cổng thông thường hay nằm trong những cổng liệt kê
trên thì bạn biết chắc rằng máy bạn đã bị nhiễm trojan.

Không download file từ những nguồn không rõ hay nhận mail của người lạ, sử dụng
một số chương trình có thể quan sát máy của bạn và lập firewall như lockdown, log
monitor, PrcView...

Tường lửa (firewall) kiểm soát dữ liệu ra vào máy tính của bạn và cảnh báo
những hành vi đáng ngờ; là công cụ bảo vệ máy tính chống lại sự xâm nhập bất hợp
pháp bằng cách quản lý toàn bộ các cổng của máy tính khi kết nối với môi trường
bên ngoài (mạng Lan, Internet...). Tường lửa có sẵn trong Windows XP chỉ giám sát
được dòng dữ liệu vào máy tính chứ không kiểm soát được dòng dữ liệu ra khỏi máy
tính. Người dùng gia đình thường ít có kinh nghiệm về bảo mật và virus, tường lửa
sẽ không phát huy tác dụng vì người dùng không thể xử lý các cảnh báo. Hơn nữa,
việc cài đặt tường lửa sẽ làm cho máy tính hoạt động chậm đi.

CHƯƠNG 2. FIREWALL

I. Khái niệm về tường lửa (Firewall)

Tường lửa (Firewall) hiểu một cách chung nhất, là cơ cấu để bảo vệ một mạng
máy tính chống lại sự truy nhập bất hợp pháp từ các (mạng) máy tính khác. Firewall
bao gồm các cơ cấu nhằm:

• Ngăn chặn truy nhập bất hợp pháp.

• Cho phép truy nhập sau khi đó kiểm tra tính xác thực của thực thể yêu cầu
truy nhập.

Trên thực tế, Firewall được thể hiện rất khác nhau: bằng phần mềm hoặc phần
cứng chuyên dùng, sử dụng một máy tính hoặc một mạng các máy tính … Theo
William Cheswick và Steven Beilovin thì bức tường lửa có thể được xác định như
là một tập hợp các cấu kiện đặt giữa hai mạng.

Nhìn chung tường lửa có những thuộc tính sau :

- Thông tin giao lưu được theo hai chiều.

- Chỉ những thông tin thoả mãn nhu cầu bảo vệ cục bộ mới được đi qua.

- Bản thân bức tường lửa không đòi hỏi quá trình thâm nhập.

1.1. Firewall làm được những gì

Nhìn chung, Firewall có thể bảo vệ hệ thống máy tính chống lại những kẻ đột
nhập qua khả năng ngăn chặn những phiên làm việc từ xa (remote login).
Ngăn chặn thông tin từ bên ngoài (Internet) vào trong mạng được bảo vệ,
trong khi cho phép người sử dụng hợp pháp được truy nhập tự do mạng bên ngoài.

Firewall còn là một điểm quan trọng trong chính sách kiểm soát truy nhập. Nó
là “cửa khẩu” duy nhất nối mạng được bảo vệ với bên ngoài, do đó có thể ghi nhận
mọi cuộc trao đổi thông tin, điểm xuất phát và đích, thời gian, … Firewall có thể
phục vụ như một công cụ theo dõi các cuộc tấn công với ý đồ xấu từ bên ngoài nhằm
dự báo khả năng bị tấn công trước khi cuộc tấn công xẩy ra.

1.2. Firewall không làm được những gì

Firewall không đủ thông minh như con người để có thể đọc hiểu từng loại
thông tin và phân tích nội dung tốt hay xấu của nó. Firewall chỉ có thể ngăn chặn
sự xâm nhập của những nguồn thông tin không mong muốn nhưng phải xác định
rõ các thông số địa chỉ.

Firewall không thể ngăn chặn một cuộc tấn công nếu cuộc tấn công này
không “đi qua” nó. Một cách cụ thể, Firewall không thể chống lại một cuộc tấn
công từ một đường dial–up, hoặc sự dò rỉ thông tin do dữ liệu bị sao chép bất hợp
pháp lên đĩa mềm.

Firewall cũng không thể chống lại các cuộc tấn công bằng dữ liệu (data–
drivent attack). Khi có một số chương trình được chuyển theo thư điện tử, vượt qua
Firewall vào trong mạng được bảo vệ và bắt đầu hoạt động ở đây.

Firewall không thể làm nhiệm vụ rà quét virus trên các dữ liệu được chuyển qua
nó, do tốc độ làm việc, sự xuất hiện liên tục của các virus mới và do có rất nhiều
cách để mã hóa dữ liệu, thoát khỏi khả năng kiểm soát của Firewall (một Ví Dụ là
các virus máy tính)

Tuy nhiên, Firewall vẫn là giải pháp hữu hiệu được áp dụng rộng rãi.

II. Các thành phần của firewall và cơ chế hoạt động


Một Firewall chuẩn bao gồm một hay nhiều các thành phần sau đây:

• Bộ lọc gói (Packet–Filter)


• Cổng ứng dụng (Application–level Gateway hay Proxy Server)
• Cổng mạch (Circuite level Gateway)
2.1. Bộ lọc gói

2.1.1 Nguyên lý hoạt động

Khi nói đến việc lưu thông dữ liệu giữa các mạng với nhau thông qua Firewall
thì điều đó có nghĩa rằng Firewall hoạt động chặt chẽ với giao thức TCI/IP. Vì
giao thức này làm việc theo thuật toán chia nhỏ các dữ liệu nhận được từ các ứng
dụng trên mạng, hay nói chính xác hơn là các dịch vụ chạy trên các giao thức (Telnet,
SMTP, DNS, SMNP, NFS ...) thành các gói dữ liệu (data pakets) rồi gán cho các
paket này những địa chỉ để có thể nhận dạng, tái lập lại ở đích cần gửi đến, do đó
các loại Firewall cũng liên quan rất nhiều đến các Packet và những con số địa chỉ
của chúng.

Bộ lọc gói cho phép hay từ chối mỗi Packet mà nó nhận được. Nó kiểm tra toàn
bộ đoạn dữ liệu để quyết định xem đoạn dữ liệu đó có thoả mãn một trong số các
luật lệ của lọc gói hay không. Các luật lệ lọc gói này là dựa trên các thông tin ở đầu
mỗi Packet (Packet Header ), dùng để cho phép truyền các Packet đó ở trên mạng.
Đó là:

• Địa chỉ IP nơi xuất phát ( IP Source address)

• Địa chỉ IP nơi nhận (IP Destination address)

• Những thủ tục truyền tin (TCP, UDP, ICMP, IP tunnel)

• Cổng TCP/UDP nơi xuất phát (TCP/UDP source port)

• Cổng TCP/UDP nơi nhận (TCP/UDP destination port)


• Dạng thông báo ICMP (ICMP message type)

• Giao diện Packet đến (Incomming interface of Packet)

• Giao diện Packet đi (Outcomming interface of Packet)

Nếu luật lệ lọc gói được thoả mãn thì Packet được chuyển qua Firewall. Nếu
không Packet sẽ bị bỏ đi. Nhờ vậy mà Firewall có thể ngăn cản được các kết nối vào
các máy chủ hoặc mạng nào đó được xác định, hoặc khoá việc truy cập vào hệ thống
mạng nội bộ từ những địa chỉ không cho phép. Hơn nữa, việc kiểm soát các cổng
làm cho Firewall có khả năng chỉ cho phép một số loại kết nối nhất định vào các
loại máy chủ nào đó, hoặc chỉ có những dịch vụ nào đó (Telnet, SMTP, FTP...)
được phép mới chạy được trên hệ thống mạng cục bộ.

2.1.2. Ưu điểm và hạn chế của hệ thông firewall sử dụng bộ lọc gói

Ưu điểm:

• Đa số các hệ thống Firewall đều sử dụng bộ lọc gói. Một trong những ưu điểm
của phương pháp dùng bộ lọc gói là chi phí thấp vì cơ chế lọc gói đã được bao gồm
trong mỗi phần mềm Router.

• Ngoài ra, bộ lọc gói là trong suốt đối với người sử dụng và các ứng dụng, vì
vậy nó không yêu cầu sự huấn luyện đặc biệt nào cả.

Hạn chế:

• Việc định nghĩa các chế độ lọc gói là một việc khá phức tạp; nó đòi hỏi người
quản trị mạng cần có hiểu biết chi tiết về các dịch vụ Internet, các dạng Packet
Header, và các giá trị cụ thể mà họ có thể nhận trên mỗi trường. Khi đòi hỏi vể sự
lọc càng lớn, các luật lệ về lọc càng trở nên dài và phức tạp, rất khó để quản lý và
điều khiển.
• Do làm việc dựa trên Header của các Packet, rõ ràng là bộ lọc gói không kiểm
soát được nội dung thông tin của Packet. Các Packet chuyển qua vẫn có thể mang
theo những hành động với ý đồ ăn cắp thông tin hay phá hoại của kẻ xấu.

2.2. Cổng ứng dụng (Application – Lever Gateway)


2.2.1. Nguyên lý hoạt động

Đây là một loại Firewall được thiết kế để tăng cường chức năng kiểm soát các
loại dịch vụ, giao thức được cho phép truy cập vào hệ thống mạng. Cơ chế hoạt
động của nó dựa trên cách thức gọi là Proxy Service (dịch vụ đại diện). Proxy
Service là các bộ code đặc biệt cài đặt trên cổng ra (gateway) cho từng ứng dụng.
Nếu người quản trị mạng không cài đặt Proxy code cho một ứng dụng nào đó, dịch
vụ tương ứng sẽ không được cung cấp và do đó không thể chuyển thông tin qua
Firewall. Ngoài ra, Proxy code có thể được định cấu hình để hỗ trợ chỉ một số đặc
điểm trong ứng dụng mà ngưòi quản trị mạng cho là chấp nhận được trong khi từ
chối những đặc điểm khác.

Một cổng ứng dụng thường được coi như là một pháo đài (Bastion Host), bởi vì
nó được thiết kế đặt biệt để chống lại sự tấn công từ bên ngoài. Những biện pháp
đảm bảo an ninh của một Bastion Host là:

 Bastion Host luôn chạy các version an toàn (secure version) của các phần mềm
hệ thống (Operating system). Các version an toàn này được thiết kế chuyên cho mục
đích chống lại sự tấn công vào hệ điều hành (Operating System), cũng như là đảm
bảo sự tích hợp Firewall.

 Chỉ những dịch vụ mà người quản trị mạng cho là cần thiết mới được cài đặt
trên Bastion Host, đơn giản chỉ vì nếu một dịch vụ không được cài đặt, nó không thể
bị tấn công. Thông thường, chỉ một số giới hạn các ứng dụng cho các dịch vụ Telnet,
DNS, FTP, SMTP và xác thực user là được cài đặt trên Bastion Host.
 Bastion Host có thể yêu cầu nhiều mức độ xác thực khác nhau, Ví Dụ như
user password hay smart card.

• Mỗi Proxy được đặt cấu hình để cho phép truy nhập chỉ một sồ các máy chủ
nhất định. Điều này có nghĩa rằng bộ lệnh và đặc điểm thiết lập cho mỗi Proxy chỉ
đúng với một số máy chủ trên toàn hệ thống.

• Mỗi Proxy duy trì một quyển nhật ký ghi chép lại toàn bộ chi tiết của giao
thông qua nó, mỗi sự kết nối, khoảng thời gian kết nối. Nhật ký này rất có ích trong
việc tìm theo dấu vết hay ngăn chặn kẻ phá hoại.

• Mỗi Proxy đều độc lập với các proxies khác trên Bastion Host. Điều này cho
phép dễ dàng quá trình cài đặt một Proxy mới, hay tháo gỡ môt Proxy đang có vấn
để.

2.2.2. Ưu điểm và hạn chế


Ưu điểm:
• Cho phép người quản trị mạng hoàn toàn điều khiển được từng dịch vụ
trên mạng, bởi vì ứng dụng Proxy hạn chế bộ lệnh và quyết định những
máy chủ nào có thể truy nhập được bởi các dịch vụ.
• Cho phép người quản trị mạng hoàn toàn điều khiển được những dịch
vụ nào cho phép, bởi vì sự vắng mặt của các Proxy cho các dịch vụ tương
ứng có nghĩa là các dịch vụ ấy bị khoá.
• Cổng ứng dụng cho phép kiểm tra độ xác thực rất tốt, và nó có nhật ký
ghi chép lại thông tin về truy nhập hệ thống.

• Luật lệ filltering (lọc) cho cổng ứng dụng là dễ dàng cấu hình và kiểm tra hơn
so với bộ lọc gói.

Hạn chế:
• Yêu cầu các users biến đổi (modify) thao tác, hoặc modify phần mềm
đã cài đặt trên máy Client cho truy nhập vào các dịch vụ Proxy. Ví Dụ,
Telnet truy nhập qua cổng ứng dụng đòi hỏi hai bước để nối với máy chủ
chứ không phải là một bước thôi. Tuy nhiên, cũng đã có một số phần mềm
Client cho phép ứng dụng trên cổng ứng dụng là trong suốt, bằng cách cho
phép user chỉ ra máy đích chứ không phải cổng ứng dụng trên lệnh Telnet.
2.3. Cổng vòng

Kết nối qua cổng vòng(Circuit–Level Gateway)


Cổng vòng là một chức năng đặc biệt có thể thực hiện đươc bởi một cổng
ứng dụng. Cổng vòng đơn giản chỉ chuyển tiếp (relay) các kết nối TCP mà
không thực hiện bất kỳ một hành động xử lý hay lọc gói nào.
Hình trên minh hoạ một hành động sử dụng nối Telnet qua cổng vòng.
Cổng vòng đơn giản chuyển tiếp kết nối Telnet qua Firewall mà không
thực hiện một sự kiểm tra, lọc hay điều khiển các thủ tục Telnet nào. Cổng
vòng làm việc như một sợi dây, sao chép các byte giữa kết nối bên trong
(inside connection) và các kết nối bên ngoài (outside connection). Tuy
nhiên, vì sự kết nối này xuất hiện từ hệ thống Firewall, nó che dấu thông
tin về mạng nội bộ.
Cổng vòng thường được sử dụng cho những kết nối ra ngoài, nơi mà các
nhà quản trị mạng thật sự tin tưởng những người dùng bên trong. Ưu điểm
lớn nhất là một Bastion Host có thể được cấu hình như là một hỗn hợp
cung cấp cổng ứng dụng cho những kết nối đến, và cổng vòng cho các kết
nối đi. Điều này làm cho hệ thống bức tường lửa dễ dàng sử dụng cho
những người trong mạng nội bộ muốn trực tiếp truy nhập tới các dịch vụ
Internet, trong khi vẫn cung cấp chức năng bức tường lửa để bảo vệ mạng
nội bộ từ những sự tấn công bên ngoài.

CHƯƠNG III. Hệ thống phát hiện xâm nhập (IDS) và chống xâm nhập (IPS)

I. Hệ thống phát hiện xâm nhập (IDS)

1.1. Khái niệm

Hệ thống phát hiện xâm nhập – IDS là một hệ thống giám sát lưu lượng mạng
nhằm phát hiện hiện tượng bất thường, các hoạt động trái xâm nhập phép và hệ
thống. IDS có thể phân biệt được những tấn công từ bên trong (nội bộ) hay tấn
công từ bên ngoài (từ các tin tặc).

IDS phát hiện dựa trên các dấu hiệu đặc biệt về các nguy cơ đã biết (giống như
cách các phần mềm diệt virus dựa vào các dấu hiệu đặc biệt để phát hiện và diệt
virus) hay dựa trên so sánh lưu thông mạng hiện tại với baseline (thông số đo đạt
chuẩn của hệ thống có thể chấp nhận được ngay tại thời điểm hiện tại) để tìm ra
các dấu hiệu khác thường.

Tính năng quan trọng nhất của hệ thống phát hiện xâm nhập – IDS là:

 Giám sát lưu lượng mạng và các hoạt động khả nghi.
 Cảnh báo về tình trạng mạng cho hệ thống và nhà quản trị.
 Kết hợp với các hệ thống giám sát, tường lửa, diệt virus tạo thành một hệ
thống bảo mật hoàn chỉnh.

1.2. Phân loại IDS


 NIDS: hệ thống phát hện xâm nhập mạng. Hệ thống sẽ tập hợp gói tin để
phân tích sâu bên trong mà không làm thay đổi cấu trúc gói tin. NIDS có thể
là phần mềm triển khai trên server hoặc dạng thiết bị tích hợp appliance.
 HIDS: hệ thống phát hiện xâm nhập host. Theo dõi các hoạt động bất
thường trên các host riêng biệt. HIDS được cài đặt trực tiếp trên các máy
(host) cần theo dõi.

Mỗi thành phần tham gia trong kiến trúc mạng đều có chức năng, điểm mạnh, điểm
yếu khác nhau. Sử dụng, khai thác đúng mục đích sẽ đem lại hiệu quả cao. IDS là
một trong những thành phần quan trọng trong các giải pháp bảo vệ hệ thống. Khi
triển khai có thể giúp hệ thống:

 Theo dõi các hoạt động bất thường đối với hệ thống.
 Xác định ai đang tác động đến hệ thống và cách thức như thế nào.
 Các hoạt động xâm nhập xảy ra tại vị trí nào trong cấu trúc mạng.

1.3. Hệ thống luật của IDS

Tập luật là thành phần quan trọng nhất của một hệ thống phát hiện xâm nhập.
Đây là tập sẽ định ra dấu hiệu (mẫu) để so sánh, đói chiếu với dữ liệu ở đầu vào.
Thông thường, tập luật bao gồm rất nhiều luật, mỗi luật sẽ gồm 2 thành phần cơ
bản: Rule Header và Rule Options.

Rule header bao gồm các thông tin sau:

 Rule Action: Cho biết các hoạt động sẽ được thực thi khi “khớp” luật
(alert, log, pass, active, dynamic, drop…).
 Protocol: Cho biết giao thức sẽ kiểm tra (TCP, UDP, ICMP, IP…)
 IP address: Cho biết thông tin về địa chỉ ip.
 Port number: Cho biết thông tin về cổng.
 Direction: Cho biết hướng của dữ liệu mà được so khớp.

Rule options chia làm 4 danh mục:


 General: cung cấp thông tin chung về luật (msg, reference, rev,
classtype…).
 Payload: Tìm kiếm nội dung payload của gói tin (content, offset, depth,
distance, within…).
 Non-payload: Tìm kiếm nội dung non-payload của gói tin (ttl, ack, tos, id,
dsize…).
 Post-detection: cung cấp các phương pháp thực thi kế tiếp(logto, session,
tag…).

Ví dụ: Rule snort phát hiện quét SYN FIN đối với hệ thống đích:

II. Hệ thống ngăn ngừa xâm nhập IPS


2.1. Khái niệm

IPS (Intrusion Prevention Systems – Hệ thống ngăn ngừa xâm nhập) là hệ


thống theo dõi, ngăn ngừa kịp thời các hoạt động xâm nhập không mong
muốn.

Chức năng chính của IPS là xác định các hoạt động nguy hại, lưu giữ các thông tin
này. Sau đó kết hợp với firewall để dừng ngay các hoạt động này, và cuối cùng đưa
ra các báo cáo chi tiết về các hoạt động xâm nhập trái phép trên.

Hệ thống IPS được xem là trường hợp mở rộng của hệ thống IDS, cách thức hoạt
động cũng như đặc điểm của 2 hệ thống này tương tự nhau. Điểm khác nhau duy
nhất là hệ thống IPS ngoài khả năng theo dõi, giám sát thì còn có chức năng ngăn
chặn kịp thời các hoạt động nguy hại đối với hệ thống. Hệ thống IPS sử dụng tập
luật tương tự như hệ thống IDS.

Tính năng quan trọng nhất của hệ thống ngăn ngừa xâm nhập – IPS là:

 Theo dõi các hoạt động bất thường đối với hệ thống.
 Xác định ai đang tác động đến hệ thống và cách thức như thế nào, các hoạt
động xâm nhập xảy ra tại vị trí nào trong cấu trúc mạng.
 Tương tác với hệ thống firewall để ngăn chặn kip thời các hoạt động thâm
nhập hệ thống.

2.2. Phân loại IPS

 Hệ thống ngăn ngừa xâm nhập mạng (NIPS – Network-based Intrusion


Prevention) thường được triển khai trước hoặc sau firewall.

Khi triển khai IPS trước firewall là có thể bảo vệ được toàn bộ hệ thống bên
trong kể cả firewall, vùng DMZ. Có thể giảm thiểu nguy cơ bị tấn công từ
chối dịch vụ đồi với firewall.

Khi triển khai IPS sau firewall có thể phòng tránh được một số kiểu tấn công
thông qua khai thác điểm yếu trên các thiết bị di động sử dụng VPN để kết
nối vào bên trong.

 Hệ thống ngăn ngừa xâm nhập host (HIPS – Host-based Intrusion


Prevention) thường được triển khai với mục đích phát hiện và ngăn chặn kịp
thời các hoạt động thâm nhập trên các host.

Để có thể ngăn chặn ngay các tấn công, HIPS sử dụng công nghệ tương tự
như các giải pháp antivirus.

Ngoài khả năng phát hiện ngăn ngừa các hoạt động thâm nhập, HIPS còn có
khả năng phát hiện sự thay đổi các tập tin cấu hình.

CHƯƠNG 4: CÁC BÀI THỰC HÀNH

I. Bài thực hành số 1: Cài đặt và thiết lập cấu hình Firewall
Bài này yêu cầu sử dụng firewall IP Fire trên Linux để thiết lập một tường lửa cho mạng
Intranet của công ty theo sơ đồ bên trên. Vùng DMZ (orange) chứa các máy chủ cần có thể
truy nhập từ ngoài Internet, vùng Wifi (blue) cho phép các trạm di động kết nối vạo hệ
thống mạng. Vùng Intranet (green) là cùng làm việc nội bộ của công ty. Cuối cùng, firewall
có một kết nối với Internet (red). Các bước thực hiện như sau:

 Chuẩn bị cài đặt firewall


 Cài đặt và thiết lập cấu hình IPFire
 Bắt đầu làm việc với IPFire qua giao diện Web
 Mở cổng ssh để kết nối từ một trạm vùng green

Bước 1: Chuẩn bị cài đặt Firewall

Để cài đặt firewall IPFire lên một máy Linux làm Gateway cho mạng Intranet,
phương pháp đơn giản nhất là download file ISO-image trên trang web IPFire và
cài đặt nó như một hệ điều hành của máy Gateway. Phương pháp này thực hiện cài
đặt và cấu hình firewall IPFire trước, sau đó tùy theo nhu cầu quản trị mà admin có
thể bổ sung thêm các công cụ phần mềm cần thiết vào firewall để phục vụ công
việc quản trị mạng hoặc cấu hình các tính năng của router. Trường hợp Gateway đã
tồn tại và cần bổ sung thêm firewall IPFire, cần download bản cài đặt rpm phù hợp
với hệ điều hành Gateway hoặc build IPFire từ các file nguồn IPFire. Ở đây ra sử
dụng cách thứ nhất. File ISO-image sau khi được download về cần được gán vào
đĩa CDROM của máy ảo (thiết lập trong mục Storage):

Tiếp theo, thiết lập Optical là thứ tự khởi động đầu tiên cho máy ảo (mục System).
Điều này cho phép khi khởi động máy ảo, nó sẽ tìm đến đĩa ISO-image IPFire để
khởi động và từ đó bắt đầu các bước cài đặt IPFire vào hệ điều hành máy Gateway.
Theo thiết kế kiến trúc mạng, firewall IPFire sử dụng 4 kết nối mạng để kết nối 4
vùng khác nhau (gọi là các vùng red, orange, blue và green). Cần thiết lập 4 card
mạng cho máy ảo Gateway. Sau đó khởi động máy ảo để bắt đầu cài đặt và thiết
lập cấu hình IPFire.

Bước 2: Cài đặt và thiết lập cấu hình IPFire

Khi khởi động máy Gateway lần đầu tiên từ đĩa ISO-image IPFire, các bước cài đặt và
cấu hình được lần lượt được hiển thị. Thực hiện đúng theo các chỉ dẫn trên màn hình và
tham khảo các bước cài đặt ở đây: http://wiki.ipfire.org/en/installation/step5. Lưu ý khi
lựa chọn cấu hình mạng cần lựa chọn đủ 4 kết nối (red, orange, blue và green) và thiết lập
địa chỉ IP cho các kết nối đúng theo sơ đồ thiết kế mạng. Kết quả thiết lập cấu hình mạng
như sau:
Ngoài ra, firewall IPFire kết nối ra Internet thông qua một router Rx có địa chỉ
203.162.5.1 nên default gateway của firewall này là 203.162.5.1:

Bước 3: Bắt đầu làm việc với IPFire qua giao diện Web

IPFire sau khi khởi động mặc định sẽ cho phép kết nối từ một trạm trong vùng green để
thực hiện thiết lập các thông số cấu hình. Đứng trên trạm 192.168.1.5, mở web browser
và kết nối vào IPFire theo địa chỉ https://192.168.1.1:444. Sau khi xác thực user admin
(password được thiết lập khi cài đặt IPFire), giao diện web của IPFire như sau:
Có thể kiểm tra các thông số kết nối với 4 vùng red, orange, blue và green bằng cách chọn
mục Network trên giao diện web:

Các thông số này có thể được thiết lập lại bằng cách thực hiện lệnh setup trong console của
IPFire:

[root@ipfire ~]# setup


Bước 4: Mở cổng ssh để kết nối từ một trạm vùng
green
Mặc định, IPFire cấm kết nối ssh và chỉ cho phép một kết nối duy nhất là giao diện Web.
Trong nhiều trường hợp, cần thực hiện các lệnh trực tiếp trên console của IPFire thay vì
qua giao diện web (ví dụ như khi thay đổi địa chỉ IP cho các kết nối mạng red, orangem
blue hay green). Vào giao diện web, mục System/SSH Access, và thiết lập cho phép SSH
Access. Lưu ý rằng vì lý do an ninh, cổng truy nhập ssh của IPFire được thiết lập mặc định
là 222. Có thể đổi ssh về cổng chuẩn 22 bằng cách lựa chọn “SSH port set to 22”.
Sau khi thiết lập cho phép ssh, kiểm tra lại hệ thống ssh đã thông bằng một kết nối ssh từ
máy trạm 192.168.1.15.

II. Bài thực hành số 2: Thiết lập rule cho các vùng orange, green và blue

Mặc định, IPFire thiết lập các qui tắc cho phép/cấm kết nối giữa các mạng như sau:
Có thể thấy rằng tất cả các truy nhập từ Internet (vùng red) vào các vùng phía trong
firewall (green, blue và orange) đều bị cấm (Closed). Để cho phép một truy nhập, cần thiết
lập luật “port forwarding” tương ứng. Ngược lại, các truy nhập từ cùng nội bộ (green)
hoặc DMZ (orange) ra Internet đều được phép (Open). Dựa trên bảng qui tắc trên, cần
tạo ra các luật (firewall rule) để cấm hoặc cho phép các kết nối mạng.

Bước 1: Kiểm tra kết nối giữa các vùng

Có thể sử dụng lệnh ping hoặc iperf3 để kiểm tra kết nối giữa các vùng. Ví dụ, có thể ping
từ một trạm cùng green hoặc orange đến một trạm ngoài Interent và thấy thành công.
Nếu ping từ green sang orange hoặc ngược lại, từ orange sang blue cũng thành công:

Ngược lại, nếu ping từ một trạm ngoài Internet vào trạm orange hoặc green thì thấy
thất bại:

Bước 2: Kiểm tra kết nối đi ra Internet với cơ chế NAT

Mặc định IPFire cho phép các kết nối từ bên trong firewall (vùng green, orange và blue)
ra Internet. Hơn nữa, cơ chế để một trạm nội bộ kết nối ra Internet là sử dụng NAT.
Điều này có thể được kiểm tra như sau. Trên một trạm Internet (giả sử có địa chỉ
205.192.25.17), chạy iperf3 chế độ server ở cổng TCP 5100:
Trên một trạm nội bộ thuộc vùng green (giả sử có địa chỉ 192.168.1.15), chạy iperf3 chế
độ client để kết nối đến server iperf3 bên ngoài Internet. Kết quả kết nối thành công:

Về phía server iperf3, kết quả kết nối từ client cũng được thể hiện:
So sánh thông tin log của iperf3 phía client và server thấy cơ chế NAT được thể hiện như
sau:

 Client chạy trên máy 192.168.1.15, cổng TCP 36854 để kết nối đến server
205.192.25.17 tại cổng TCP 5100.
 Server nhận được kết nối của client từ địa chỉ 203.162.5.11. Như vậy, server nhận
kết nối từ client theo địa chỉ IP mặt ngoài (kết nối red) của IPFire, không phải từ địa
chỉ IP nội bộ của client (là 192.168.1.15).
 Thông tin các kết nối trên có thể được xem trong IPFire (menu Status/Connections).
Nhìn vào danh sách các kết nối này, có thể thấy cơ chế NAT được thể hiện trong
cột “Source IP: Port” theo dạng 192.168.1.15 > 203.162.5.11. Tương ứng với kết
nối này, cột “Dest. IP; Port” cho thấy thông tin trên iperf3 server (203.192.25.17:
5100).

Bước 3: Thiết lập cho phép kết nối từ Internet vào vùng DMZ

DMZ là vùng chứa các máy chủ dịch vụ như Web, FTP, Mail, v.v.. mà cho phép các trạm
ngoài Internet kết nối đến. Giả sử máy chủ Web của công ty được cài đặt tại địa chỉ
192.168.2.3 (là một địa chỉ thuộc vùng orange), luật port forwarding được thiết lập như
sau:
Firewall Rules

Sử dụng iperf3 để giả lập Web server trên máy 192.168.2.3 và cũng cùng iperf3 giả lập
web client trên máy ngoài Internet (địa chỉ 205.192.25.17). Kết quả là sau khi có luật
port forwarding, máy ngoài Internet đã truy nhập được đến cổng 80 (web) của máy
trong DMZ zone (orange) thông qua địa chỉ mặt ngoài của firewall.
Ngoài cổng 80 này, các truy nhập khác đều bị cấm:

Có thể thấy cơ chế Port Forwarding được thể hiện trong các connections trên IPFire:
III. Bài thực hành 3: Xây dựng hệ thống IDS với Snort

Snort là một ứng dụng IDS mã nguồn mở, hoạt động trên nhiều hệ điều hành trong đó có
Linux và Windows. Bài này thực hiện cài đặt và vận hành Snort như một IDS chế độ
network-based và host-based. Các bước thực hiện như sau:

 Bước 1: Cài đặt Snort.


 Bước 2: Vận hành Snort chế độ IDS.
 Bước 3: Tạo luật đơn giản cảnh báo truy nhập từ bên ngoài.
 Bước 4: Cảnh báo truy nhập từ bên trong đến một nội dung nhạy cảm.
 Bước 5: Cảnh báo quét cổng (port scan) với preprocessor sfportscan.

Bước 1: Cài đặt Snort

Cài đặt các thư viện phần mềm cần thiết:

Thực hiện các bước download mã nguồn, dịch mã nguồn và cài đặt tiếp theo như hướng
dẫn trên trang chủ Snort:
Sau khi cài đặt thành công, Snort có thể hoạt động ở 3 chế độ:

 Package sniffer: hiển thị thông tin header các gói tin
 Package log: ghi lại các thông tin vào file log để xử lý sau này
 IDS: phân tích các gói tin hoặc các luồng TCP, thực hiện các chức năng IDS theo
cơ chế signature-based.

Kiểm tra Snort hoạt động ở chế độ package sniffer với tham số -dev. Trong khi chạy Snort
ở chế độ này, thực hiện ping đến Google, ta sẽ thấy Snort bắt được các gói tin ICMP Echo
và Reply rồi hiển thị thông tin các gói tin này lên màn hình.
Tạo thư mục log /var/log/snort và chạy Snort vận hành ở chế độ package log. Trong khi
chạy Snort chế độ package log, cũng thực hiện ping đến Google. Kết quả là trong thư
mục /var/log/snort xuất hiện file log của Snort ghi lại các gói tin đã bắt được:

Lưu ý rằng file log được ghi lại ở dạng nhị phân, theo cấu trúc các gói tin. Có thể dụng
lệnh file để kiểm tra cấu trúc của file nhị phân này:
Để đọc file này, cần sử dụng phần mềm tcpdump. Có thể thấy kết quả hiển thị các gói
tin ban đầu là dịch vụ ARP để xác định địa chỉ MAC từ địa chỉ IP khi trạm làm việc cần
gửi gói tin ra Gateway. Tiếp theo là các gói tin dịch vụ DNS để xác định địa chỉ IP của
Google. Cuối cùng là các gói tin ICMP Echo và Reply của lệnh ping:

Bước 2: Vận hành Snort chế độ IDS

Trong chế độ này, Snort thực hiện kiểm soát các gói tin và thực hiện các phản ứng theo
các luật được khai báo trước. Các file cấu hình của Snort được đặt trong thư
mục /etc/snort. Cần copy tất cả các file cấu hình mặc định trong thư mục cài đặt (snort-
2.9.8.3/etc) vào thư mục này:

File cấu hình để vận hành Snort chế độ IDS là /etc/snort/snort.conf. Cần sửa đổi một số
thông số như sau:

 HOME_NET: đây là mạng hoặc máy trạm mà Snort sẽ bảo vệ (tùy theo chế độ hoạt
động là network-based hay host-based). Trong bước này, ta sử dụng Snort để bảo
vệ một máy chủ Web thuộc vùng DMZ (xem hình vẽ trong bài thực hành số 1) có
địa chỉ IP là 192.168.2.10.
 EXTERNAL_NET: là vùng bên ngoài, không cần được giám sát. Nó sẽ là tất cả các
mạng & các máy trạm mà không thuộc HOME_NET.
 RULE_PATH: thư mục chứa các luật xử lý gói tin. Thiết lập giá trị để thư mục này
là /etc/snort/rules.
 Tạm thời ta chưa sử dụng các chức năng nhúng modul động (dynamic) trong Snort
nên comment tham sô dynamicdetection.
 Tạm thời ta sẽ tự thiết lập các rule cho Snort mà không dùng các rule có sẵn. Vì vậy
khai báo include file chứa rule (/etc/snort/rules/myrules.rules) và comment tất cả
các lênh include các rule có sẵn.
 Khai báo thư mục chứa các danh sách white (các trạm an toàn) và black (các trạm
nghi vấn) cũng là thư mục RULE_PATH.

Sau khi thiết lập các thông số, file cấu hình snort.conf có dạng sau:

Khi khởi động Snort, mặc định nó cần đọc các file white_list.rules và black_list.rules để
xử lý các trạm thuộc danh sách white và black. Tạm thời ta chưa xử lý gì đặc biệt đối
với các trạm white và black nên tạo 2 file rỗng tương ứng. Tương tự, file myrules.rules
cũng chưa được định nghĩa luật nào:
Sau khi chuẩn bị các file cấu hình làm việc, chạy Snort chế độ IDS với yêu cầu bắt gói tin
trên kết nối mạng eth2. Nếu thành công, Snort bắt đầu thực hiện bắt gói tin bằng dòng
thông báo “Commencing packet processing (pid=23464)”:

Bước 3: Luật đơn giản cảnh báo truy cập từ bên ngoài

Snort đã vận hành ở chế độ IDS thành công. Bước tiếp theo là khai báo các luật xử lý cho
Snort. Ta bắt đầu với luật đơn giản nhất - phát hiện các truy cập từ bên ngoài
với ssh hoặc ping.
a) Phát hiện truy cập ssh
Giả sử cần cảnh báo khi xuất hiện truy nhập ssh từ một máy ở xa vào HOME_NET. Luật
được thiết lập trong file myrules.rules như sau:

You might also like