Dự án chung cư quận hoàng mai, chung cư tam trinh nổi bật.

Chuyên cung cấp tài liệu


Trang web GiangVien.Net cung cấp các tài liệu cho sinh viên
Đếm Web miễn phí
Từ khóa cần tìm:

Chống xâm nhập bất hợp pháp Linux

Thứ năm - 25/09/2008 00:49

CuÌ€ng với sưÌ£ phát triển của các hêÌ£ thống chaÌ£y Linux trên internet, ngươÌ€i ta đã vaÌ€ đang tiÌ€m ra ngaÌ€y caÌ€ng nhiêÌ€u lỗ hổng bảo mâÌ£t của các phâÌ€n mêÌ€m miễn phí trên các hêÌ£ thống naÌ€y. HiêÌ£n có rất nhiêÌ€u kiểu tấn công, xâm nhâÌ£p hêÌ£ thống Linux như: tấn công gây traÌ€n bôÌ£ đêÌ£m (Buffer Over Flow), tấn công kiểu tưÌ€ chối các diÌ£ch vuÌ£ (Denial of Services), tấn công dưÌ£a vaÌ€o cửa sau (Back door)... MôÌ£t khi kẻ tấn công chiếm đươÌ£c quyêÌ€n ˜root™ (taÌ€i khoản ngươÌ€i duÌ€ng có quyêÌ€n cao nhất trên hêÌ£ thống), toaÌ€n bôÌ£ hêÌ£ thống đó biÌ£ đăÌ£t dưới quyêÌ€n điêÌ€u khiển của kẻ xâm nhâÌ£p. VâÌ£y các nhaÌ€ quản triÌ£ phải laÌ€m giÌ€ để bảo vêÌ£ hêÌ£ thống của miÌ€nh? LaÌ€m sao ngăn chăÌ£n đươÌ£c ngươÌ€i duÌ€ng có quyêÌ€n root phá hoaÌ£i các thaÌ€nh phâÌ€n quan troÌ£ng của hêÌ£ thống?

HêÌ£ thống Linux thông thươÌ€ng có môÌ£t số nhươÌ£c điểm sau:

NgươÌ€i chiếm đươÌ£c quyêÌ€n root sẽ có quyêÌ€n quyết điÌ£nh số phâÌ£n tất cả các thaÌ€nh phâÌ€n của hêÌ£ thống: chấm dứt các tiến triÌ€nh (kill), xoá bỏ bất cứ tâÌ£p tin naÌ€o, thay đổi bất cứ tâÌ£p tin cấu hiÌ€nh naÌ€o. Với ngươÌ€i quản triÌ£ hêÌ£ thống thưÌ£c sưÌ£ thiÌ€ điêÌ€u đó laÌ€ câÌ€n thiết, nhưng với kẻ xâm nhâÌ£p thiÌ€ điêÌ€u naÌ€y vô vuÌ€ng nguy hiểm.

Các tâÌ£p tin quan troÌ£ng của hêÌ£ thống không đươÌ£c bảo vêÌ£ chống truy nhâÌ£p (đoÌ£c/ghi) bất hơÌ£p pháp. Những tâÌ£p tin cưÌ£c kyÌ€ quan troÌ£ng trên hêÌ£ thống như init, login... hay các tâÌ£p tin cấu hiÌ€nh, thiết lâÌ£p tươÌ€ng lửa, thiết lâÌ£p vêÌ€ thông tin maÌ£ng (IP, network, routting, name server...), biÌ£ thay đổi thiÌ€ không thể lươÌ€ng trước đươÌ£c hâÌ£u quả.

Các tiến triÌ€nh không đươÌ£c bảo vêÌ£. Trên các máy chủ Linux, có rất nhiêÌ€u tiến triÌ€nh quan troÌ£ng phải đươÌ£c chaÌ£y thươÌ€ng trưÌ£c để phuÌ£c vuÌ£ khách haÌ€ng: Tiến triÌ€nh httpd thưÌ£c hiêÌ£n chức năng của web server, tiến triÌ€nh ftpd cung cấp truy câÌ£p tâÌ£p tin theo giao thức FTP, tiến triÌ€nh named thưÌ£c hiêÌ£n diÌ£ch vuÌ£ giải nghĩa tên/điÌ£a chỉ máy tính (Domain Name Service)... Nếu ngươÌ€i duÌ€ng có quyêÌ€n thích hơÌ£p (quyêÌ€n root chẳng haÌ£n), hoÌ£ có thể chấm dứt các tiến triÌ€nh bất cứ lúc naÌ€o (ví duÌ£: killall httpd), điêÌ€u naÌ€y gây ảnh hưởng vô cuÌ€ng lớn đối với các hêÌ£ thống phuÌ£c vuÌ£ nhiêÌ€u ngươÌ€i duÌ€ng như máy chủ web, máy chủ thư điêÌ£n tử (mail server), máy chủ giải nghĩa tên (Name Server)...

Các nhươÌ£c điểm trên laÌ€ do Linux thưÌ€a hưởng kiến trúc, thiết kế cơ bản tưÌ€ hêÌ£ thống UNIX. Rất may, nhơÌ€ lơÌ£i ích của phâÌ€n mêÌ€m mã nguôÌ€n mở, ngươÌ€i ta đã nhanh chóng khắc phuÌ£c nhươÌ£c điểm naÌ€y băÌ€ng cách thay đổi trong mã nguôÌ€n của nhân (kernel) Linux, tích hơÌ£p vaÌ€o đó các tính năng mới vaÌ€ cung cấp môÌ£t số công cuÌ£ quản triÌ£, đươÌ£c đăÌ£t tên laÌ€ LIDS (Linux Intrusion Detection System). Mã nguôÌ€n của LIDS vaÌ€ các taÌ€i liêÌ£u có liên quan có taÌ£i website
http://www.lids.org.

MăÌ£c duÌ€ cho đến nay Linus Torvard vaÌ€ những ngươÌ€i có trách nhiêÌ£m duy triÌ€ sưÌ£ phát triển của nhân Linux vẫn chưa chính thức quyết điÌ£nh tích hơÌ£p các tính năng mới vaÌ€o phiên bản Linux kernel hiêÌ£n taÌ£i, nhưng LIDS đã đươÌ£c môÌ£t số nhaÌ€ phân phối Linux chính thức sử duÌ£ng trong sản phẩm của miÌ€nh, điển hiÌ€nh laÌ€ EnGarde (
http://www.engardelinux.com).

Các ThaÌ€nh PhâÌ€n VaÌ€ Tính Năng Của Lids

LIDS bao gôÌ€m:

- MôÌ£t phâÌ€n mã đươÌ£c tích hơÌ£p trong Linux kernel, đươÌ£c patch vaÌ€o mã nguôÌ€n của kernel

- Công cuÌ£ quản triÌ£ có tên laÌ€ lidsadm (LIDS Admin Tool) cuÌ€ng môÌ£t số tâÌ£p tin cấu hiÌ€nh trong thư muÌ£c /etc/lids/ duÌ€ng để thiết lâÌ£p, thay đổi cấu hiÌ€nh của LIDS.

LIDS cho phép ngươÌ€i quản triÌ£ hêÌ£ thống:

- Bảo vêÌ£ các tâÌ£p tin, thư muÌ£c trên hêÌ£ thống (không phuÌ£ thuôÌ£c vaÌ€o kiểu hêÌ£ thống tâÌ£p tin chứa tâÌ£p tin/thư muÌ£c đó laÌ€ ext2, ext3 hay vfat..) khỏi sưÌ£ truy câÌ£p bất hơÌ£p pháp, kể cả ngươÌ€i sử duÌ£ng có quyêÌ€n root.

- Bảo vêÌ£ các tiến triÌ€nh không biÌ£ chấm dứt (kill) bởi các tiến triÌ€nh khác do bất cứ ngươÌ€i duÌ€ng naÌ€o thưÌ£c hiêÌ£n.

- Kiểm soát vaÌ€ ngăn chăÌ£n các thao tác vaÌ€o ra mức thấp do các chương triÌ€nh không mong muốn thưÌ£c hiêÌ£n.

CaÌ€i ĐăÌ£t Lids

Khi tải vêÌ€ mã nguôÌ€n LIDS, baÌ£n phải choÌ£n phiên bản phuÌ€ hơÌ£p với phiên bản của Linux kernel. Ví duÌ£, với kernel-2.4.18 baÌ£n phải tải vêÌ€ phiên bản LIDS có phâÌ€n version laÌ€ 2.4.18. LIDS đươÌ£c phát triển dưÌ£a trên các bản Linux kernel chính thức tưÌ€
http://www.kernel.org.

Tích hơÌ£p LIDS vaÌ€o mã nguôÌ€n của Linux kernel:

Tải vêÌ€ mã nguôÌ€n của LIDS vaÌ€ Linux kernel. Nên để mã nguôÌ€n của Linux Kernel taÌ£i thư muÌ£c /usr/src/linux để các chương triÌ€nh khác có thể truy câÌ£p đến. Giải nén LIDS (taÌ£i môÌ£t thư muÌ£c khác), baÌ£n sẽ thấy trong đó có môÌ£t tâÌ£p tin có đuôi laÌ€ .patch, chép tâÌ£p tin naÌ€y vaÌ€o thư muÌ£c /usr/src/linux vaÌ€ chuyển vaÌ€o thư muÌ£c chứa mã nguôÌ€n Linux kernel để tiến haÌ€nh patch vaÌ€ biên diÌ£ch laÌ£i.

#cd /usr/src/linux

#patch -p1 < lids_version-kernel_version.patch

(lids_version laÌ€ phiên bản của LIDS, kernel_version laÌ€ phiên bản của Linux kernel)

Cấu hiÌ€nh các tính năng của kernel:

#make menuconfig hoăÌ£c make config (make xconfig nếu baÌ£n đang ở trong môi trươÌ€ng X Window)

Nhớ bâÌ£t các tuyÌ€ choÌ£n:

<*>Prompt for development and/or incomplete code/drivers

<*>Sysctl support

<*>Linux Intrusion Detection System support (EXPERIMENTAL) (NEW).

Biên diÌ£ch kernel:

#make dep

#make bzImage

#make modules

#make modules_install

Quá triÌ€nh biên diÌ£ch diễn ra nhanh hay châÌ£m phuÌ£ thuôÌ£c vaÌ€o cấu hiÌ€nh máy tính, phiên bản của kernel vaÌ€ các tuyÌ€ choÌ£n maÌ€ baÌ£n choÌ£n khi cấu hiÌ€nh kernel.

CaÌ€i đăÌ£t kernel mới:

Sau khi quá triÌ€nh trên kết thúc, chép tâÌ£p tin bzImage trong thư muÌ£c /usr/src/linux/boot/arch/i386 (nếu CPU laÌ€ Intel) vaÌ€o thư muÌ£c /boot vaÌ€ có thể đổi tên, ví duÌ£ như secu_kernel.

Nếu duÌ€ng lilo để khởi đôÌ£ng hêÌ£ thống, baÌ£n phải soaÌ£n laÌ£i tâÌ£p tin /etc/lilo.conf vaÌ€ thêm môÌ£t muÌ£c mới như sau:

image=/boot/secu_kernel

label=secu

read-only

root=/dev/hda2

(/dev/hda2 laÌ€ phân vuÌ€ng chứa thư muÌ£c gốc / , baÌ£n thay nó băÌ€ng tên phân vuÌ€ng gốc của baÌ£n, nếu không biết phân vuÌ€ng gốc, gõ lêÌ£nh mount không tham số, baÌ£n sẽ nhâÌ£n đươÌ£c danh sách các phân vuÌ€ng đang đươÌ£c kết gán, trong đó có cả phân vuÌ€ng gốc).

Sau đó thưÌ£c hiêÌ£n lêÌ£nh /sbin/lilo để câÌ£p nhâÌ£t muÌ£c mới đó.

Biên diÌ£ch các công cuÌ£ quản triÌ£ của LIDS:

Chuyển vaÌ€o thư muÌ£c chứa mã nguôÌ€n của LIDS, thưÌ£c hiêÌ£n cấu hiÌ€nh, biên diÌ£ch vaÌ€ caÌ€i đăÌ£t LIDS.

#configure

#make

#make install

Thông thươÌ€ng lidsadm đươÌ£c caÌ€i đăÌ£t vaÌ€o thư muÌ£c /sbin, các tâÌ£p tin cấu hiÌ€nh đươÌ£c caÌ€i đăÌ£t trong thư muÌ£c /etc/lids. BaÌ£n có thể thay đổi các tâÌ£p tin cấu hiÌ€nh naÌ€y vaÌ€ thưÌ£c hiêÌ£n lêÌ£nh:

#lidsadm -U để câÌ£p nhâÌ£t sưÌ£ thay đổi đó.

Khởi đôÌ£ng laÌ£i hêÌ£ thống với kernel mới (secu_kernel) băÌ€ng cách choÌ£n secu taÌ£i dấu nhắc lilo.

Sử DuÌ£ng Lids

Bảo vêÌ£ hêÌ£ thống:

Sau khi hêÌ£ thống khởi đôÌ£ng xong, baÌ£n kích hoaÌ£t chế đôÌ£ bảo vêÌ£ của LIDS băÌ€ng lêÌ£nh

#lidsadm -I

Để lêÌ£nh trên đươÌ£c thưÌ£c hiêÌ£n mỗi khi khởi đôÌ£ng hêÌ£ thống, baÌ£n có thể thêm lêÌ£nh đó vaÌ€o tâÌ£p tin /etc/rc.d/rc.local hoăÌ£c tâÌ£p tin naÌ€o đó tương tưÌ£ trên bản Linux của baÌ£n.

Thay đổi chế đôÌ£:

Sau khi hêÌ£ thống đươÌ£c bảo vêÌ£, nếu baÌ£n câÌ€n chuyển sang chế đôÌ£ thông thươÌ€ng để thay đổi các tâÌ£p tin cấu hiÌ€nh, các tâÌ£p tin đươÌ£c bảo vêÌ£, baÌ£n duÌ€ng lênh:

# /sbin/lidsadm -S ” -LIDS

Sau đó kích hoaÌ£t laÌ£i hêÌ£ thống bảo vêÌ£:

# /sbin/lidsadm -S ” +LIDS

Nếu baÌ£n thay đổi các tâÌ£p tin cấu hiÌ€nh của lids, sử duÌ£ng lêÌ£nh sau để naÌ£p các thông tin đó vaÌ€o vuÌ€ng bôÌ£ nhớ của kernel:

# /sbin/lidsadm -S ” +RELOAD_CONF

Các tâÌ£p tin cấu hiÌ€nh của LIDS:

- lids.conf: điÌ£nh nghĩa các đối tươÌ£ng đươÌ£c bảo vêÌ£ vaÌ€ haÌ€nh đôÌ£ng bảo vêÌ£ maÌ€ LIDS câÌ€n thưÌ£c hiêÌ£n; có thể thêm, bớt các đối tươÌ£ng băÌ€ng lidsadm.

- lids.cap: chứa các tính năng đươÌ£c lids sử duÌ£ng; baÌ£n có thể thêm, bớt các tính năng băÌ€ng cách đăÌ£t dấu + hoăÌ£c - trước tên các tính năng đó.

- lids.net: điÌ£nh nghĩa cách thức maÌ€ LIDS sẽ gửi email cho baÌ£n khi có sưÌ£ kiêÌ£n giÌ€ đó xảy ra trên hêÌ£ thống maÌ€ baÌ£n câÌ€n quan tâm, nó chứa tên mail server, điÌ£a chỉ của baÌ£n, tiêu đêÌ€ của bức thư... TâÌ£p tin naÌ€y câÌ€n có khi baÌ£n biên diÌ£ch kernel với tuyÌ€ choÌ£n câÌ€u hiÌ€nh laÌ€ Send security alerts through network.

- lids.pw: chứa mâÌ£t khẩu của nhaÌ€ quản triÌ£, duÌ€ng để kích hoaÌ£t lêÌ£nh lidsadm. TâÌ£p tin naÌ€y câÌ€n có khi baÌ£n biên diÌ£ch kernel với tuÌ€y choÌ£n Allow switching LIDS protections.

Sử duÌ£ng lêÌ£nh lidsadm -P để thay đổi passwd của lidsadm.

Bảo vêÌ£ tâÌ£p tin/thư muÌ£c:

LêÌ£nh sau cho phép bảo vêÌ£ môÌ£t tâÌ£p tin, thư muÌ£c naÌ€o đó, ví duÌ£ tâÌ£p tin /etc/lilo.conf, không cho ai biết sưÌ£ có măÌ£t của nó trên hêÌ£ thống, kể cả root:

# lidsadm -A -o /etc/lilo.conf -j DENY

CâÌ£p nhâÌ£t laÌ£i cấu hiÌ€nh băÌ€ng lêÌ£nh:

# /sbin/lidsadm -S ” +RELOAD_CONF

BaÌ£n sẽ không thể thấy tâÌ£p tin /etc/lilo:


#cat /etc/lilo.conf

cat: /etc/lilo.conf: No such file or directory

NgoaÌ€i tuyÌ€ choÌ£n DENY, baÌ£n có thể thay vaÌ€o đó các tuyÌ€ choÌ£n bảo vêÌ£ khác như:

READ: Chỉ đươÌ£c đoÌ£c

WRITE: Có thể đoÌ£c, ghi

APPEND: Chỉ có thể thêm vaÌ€o các dữ liêÌ£u mới ở cuối tâÌ£p tin (có ích với các tâÌ£p tin log như /var/log/message ,/var/log/secure...)

Cho phép môÌ£t tâÌ£p tin, thư muÌ£c naÌ€o đó đươÌ£c môÌ£t chương triÌ€nh naÌ€o đó đoÌ£c hoăÌ£c ghi:

Ví duÌ£: BaÌ£n cấm tất cả các đối tươÌ£ng khác đoÌ£c/ghi thư muÌ£c /var/www/html viÌ€ nó laÌ€ thư muÌ£c chứa các taÌ€i liêÌ£u web quan troÌ£ng. Nhưng nó câÌ€n đươÌ£c web server sử duÌ£ng để cung cấp các thông tin cho moÌ£i ngươÌ€i:

(Cấm tất cả moÌ£i ngươÌ€i đoÌ£c/ghi)

# lidsadm -A -o /home/httpd -j DENY

(Cho phép web server đoÌ£c)

# lidsadm -A -s /usr/sbin/httpd -o /var/www/html -j READ


Bảo vêÌ£ các tiến triÌ€nh:

Các tiến triÌ€nh laÌ€ tiến triÌ€nh con của init có thể đươÌ£c bảo vêÌ£ khỏi biÌ£ kill với tuyÌ€ choÌ£n: -29:CAP_INIT_KILL trong tâÌ£p tin /etc/lids/lids.cap

NgoaÌ€i ra, baÌ£n có thể giấu môÌ£t tiến triÌ€nh naÌ€o đó khi chaÌ£y băÌ€ng lêÌ£nh:



#lidsadm -A -s <đươÌ€ng dẫn tới chương triÌ€nh> -t -o CAP_HIDDEN -j INHERIT


Ví duÌ£, che giấu tiến triÌ€nh httpd:

#lidsadm -A -s /usr/sbin/httpd -t -o CAP_HIDDEN -j INHERIT


Các tiến triÌ€nh đươÌ£c giấu sẽ không thể nhiÌ€n thấy đươÌ£c băÌ€ng lêÌ£nh ps hoăÌ£c biÌ£ lưu laÌ£i taÌ£i tâÌ£p tin naÌ€o đó trong thư muÌ£c /proc.

NgoaÌ€i ra coÌ€n nhiêÌ€u tính năng hữu ích nữa đươÌ£c thiết lâÌ£p trong /etc/lids/lids.cap để bảo vêÌ£ các thao tác vaÌ€o ra cấp thấp, thay đổi cấu hiÌ€nh maÌ£ng... BaÌ£n nên xem chi tiết trong phiên bản LIDS của miÌ€nh.

Phát hiêÌ£n kẻ xâm nhâÌ£p vaÌ€ thông báo cho ngươÌ€i quản triÌ£:

Kẻ xâm nhâÌ£p có thể biÌ£ phát hiêÌ£n bởi môÌ£t trong các haÌ€nh đôÌ£ng sau:

- Sử duÌ£ng công cuÌ£ quét cổng như nmap, satan, super scan...

- Sử duÌ£ng thao tác vaÌ€o ra cấp thấp với các cổng truy nhâÌ£p...

- ThưÌ£c hiêÌ£n thao tác trái phép với các đối tươÌ£ng đã đươÌ£c LIDS bảo vêÌ£...

Các haÌ€nh đôÌ£ng trên sẽ đươÌ£c ghi laÌ£i trong hêÌ£ thống thông qua các tâÌ£p tin log, LIDS coÌ€n cho phép gửi các thông báo trên tới ngươÌ€i quản triÌ£ thông qua email (khai báo trong tâÌ£p tin /etc/lids/lids.net)

Nếu kẻ xâm nhâÌ£p chiếm đươÌ£c truy nhâÌ£p mức console, LIDS sẽ chấm dứt hoaÌ£t đôÌ£ng của phiên laÌ€m viêÌ£c đó.

LơÌ€i Kết

Công cuÌ£ bảo mâÌ£t tốt nhất vẫn chỉ laÌ€ công cuÌ£ vaÌ€ nó có thể biÌ£ bẻ gẫy bởi môÌ£t hacker naÌ€o đó. Không có môÌ£t bức tươÌ€ng lửa naÌ€o laÌ€ an toaÌ€n mãi mãi trên internet, không có môÌ£t hêÌ£ thống naÌ€o laÌ€ bất khả mãi mãi xâm phaÌ£m... ViêÌ£c lâÌ£p chính sách bảo mâÌ£t tốt vaÌ€ có quy triÌ€nh giám sát, theo dõi chăÌ£t chẽ của con ngươÌ€i vẫn laÌ€ điêÌ€u quan troÌ£ng hơn cả.

Tác giả bài viết: Quang Tùng - GiangVien.Net

Tổng số điểm của bài viết là: 0 trong 0 đánh giá
Click để đánh giá bài viết
Comment addGửi bình luận của bạn
Mã chống spamThay mới

Những tin mới hơn

Những tin cũ hơn

 
(Chú ý: Website đang trong giai đoạn hoạt động thử nghiệm, đang định xin giấy phép MXH của Bộ TT & TT)
Lên đầu trang