'태그를 입력해 주세요.'에 해당되는 글 1건

  1. 2012.10.26 audit설정을 통한 리눅스 파일 보안강화 1
보안vs해킹2012. 10. 26. 06:36

개요

시스템 관리자로써 관심있는 사항은 “어떻게 사용자들의 읽고 쓰는 것을 관리할 수 있을까? 어떻게 시스템의 무결성을 보장할 것인가?” 하는 점이다.

해결책은 2.6 커널의 audit시스템을 이용하는 것이다. 대부분의 리눅스에는 auditd 데몬이 깔려서 나오고 이는 사용자들의 디스크 액세스를 관리하게 된다. /etc/audit.rules를 통해 설정이 되고 audit.rules에서 로그의 경로나 다른 세팅을 바꿔줄 수 있다. 기본설정값으로 충분히 사용가능하기도 하다.

설치 및 실행

설치와 실행을 위해서 몇가지 필요한 툴이 있다.

auditctl: 커널의 audit시스템을 관리하고 상태, 추가, 삽입과 같은 시스템을 관리하고 특정파일에 대한 모니터링을 실시한다.

ausearch: 서치를 실행한다.

aureport: audit시스템의 리포트에 사용된다.

기본적으로 audit을 2.6 커널에 설치되어 있지만 그렇지 않다면 다음과 같이 설치해준다.

# yum install audit

그리고 서비스를 실행해보자

# /etc/init.d/auditd start

설치가 끝났다면 기능들을 설정해 보겠다. 우선 /etc/passwd 폴더의 변경을 검열하고 싶다면 아래와 같이 설정한다.

# auditctl -w /etc/passwd -p war -k password-file

위에서 –p war는 권한을 설정하는 것이고 w-write, x-execute, a-append 그리고 r-read의 권한을 부여하게 된다.

즉 위의 명령어를 통해 여러분은 쓰기, 추가, 읽기와 관련된 사항에 대한 로그를 받게 된다.

결과값 검색

누가 접근을 했고 어떤 변경을 하였는지는 다음의 명령어를 통해 알 수 있다.

# ausearch -f /etc/passwd

이에 대한 결과값은 아래와 같이 나오게 된다.

type=PATH msg=audit(03/16/2007 14:52:59.985:55) : name=/etc/passwd flags=follow,open inode=23087346 dev=08:02 mode=file,644 ouid=root ogid=root rdev=00:00
type=CWD msg=audit(03/16/2007 14:52:59.985:55) : cwd=/webroot/home/lighttpd
type=FS_INODE msg=audit(03/16/2007 14:52:59.985:55) : inode=23087346 inode_uid=root inode_gid=root inode_dev=08:02 inode_rdev=00:00
type=FS_WATCH msg=audit(03/16/2007 14:52:59.985:55) : watch_inode=23087346 watch=passwd filterkey=password-file perm=read,write,append perm_mask=read
type=SYSCALL msg=audit(03/16/2007 14:52:59.985:55) : arch=x86_64 syscall=open success=yes exit=3 a0=7fbffffcb4 a1=0 a2=2 a3=6171d0 items=1 pid=12551 auid=unknown(4294967295) uid=lighttpd gid=lighttpd euid=lighttpd suid=lighttpd fsuid=lighttpd egid=lighttpd sgid=lighttpd fsgid=lighttpd comm=grep exe=/bin/grep

audit(03/16/2007 14:52:59:985:55)는 시간을 나타내고 uid=lighttpd gid=lighttpd는 사용자와 속한 그룹을 보여준다. -i옵션을 통해 수치를 문자로 변환할 수도 있다. exe=”/bin/grep”는 /etc/passwd에 접근하기 위해 해당명령어를 사용했다는 것을 보여주고 perm_mask=read 해당 파일을 읽었다는 뜻이다.

그러므로 위의 검색결과를 통해 lighttpd그룹의 lighttpd사용자가 grep명령어를 통해 passwd파일을 읽었음을 알 수 있다.

다른 유용한 기능

특정 시간을 검색하는 방법은 아래와 같다.

# ausearch -ts today -k password-file 

# ausearch -ts 3/12/07 -k password-file

특정한 행동에 대한 검색도 가능하다.

# ausearch -ts today -k password-file -x rm 
    
# ausearch -ts 3/12/07 -k password-file -x rm

어떠한 사용자가 접근했는지에 대한 검색도 가능하다.

# ausearch -ts today -k password-file -x rm -ui 506 
    
# ausearch -k password-file -ui 506
Posted by 구텐모르겐