'솔라리스'에 해당되는 글 1건

  1. 2007.08.01 Solaris 보안
OS/SOLARIS2007. 8. 1. 22:16
반응형

Solaris  보안

 

1. o/s 설치

1-1 초기 install의 중요성

- 보안과 app의 호환성을 위해 최신의 o/s patch설치를 권장합니다.

- o/s update를 하는 것 보다는 새로 install하는 것이 낫다.

- 설치시에는 항상 정품 o/s를 사용한다.

- o/s 파티션은 분할 하여 설치하는 것을 권장합니다.

 

2.  openboot PROM 보안

Command security – PROM 레벨에서 eeprom변경이나 명령어를 실행할 수 없습니다.

Full security – command security와 같은 기능을 하며 추가적으로 password없이는 booting이 되지 않습니다.

2-1 설정방법

# eeprom security-mode=full

Changing PROM password:

New password:

Retype new password:

è     설정 해제시 ‘security-mode=none’ 값으로 변경

 2-2 passwd 변경 방법

# eeprom security-password=

Changing PROM password:

New password:

Retype new password:

è     반드시 “=” 를 하셔야 합니다.

 

- 주의 -

만약 PROM password를 분실 하면 EEPROM을 교체해야 합니다. 신중히 사용하기를 권장합니다.

만약 시스템을 리부팅 했을 때 부팅이 안된다면 openboot PROM의 보안 파라미터값을 확인하십시요. root권한을 취득한 해커에 의해 이 값은 언제든지 변경될 수 있습니다.

 

3. 파일시스템 보안

3-1 setUID setGID

- 실행 권한을 가진 파일이나 프로그램들은 일반적으로 해당 퍼미션을 가진 user에 의해서만 실행됩니다.

그러나 setUID로 설정된 프로그램은 해당 프로그램의 퍼미션으로 실행되기 때문에 해킹에 자주 이용되는 부분입니다. 만약 어떤 해커에 의해 format이라는 root권한의 실행 파일이 setUID가 설정된다면 해커는 해당 시스템의 disk의 정보를 삭제 할 수 있게 됩니다. 또한 setUID를 이용해 보이지 않는 path backdoor를 숨겨 언제든 시스템으로 침입을 시도할 수 있습니다.

따라서 해킹이 의심되는 시스템은 반드시 setUID설정 파일들을 먼저 확인해야 합니다.

# find / -type f \( -perm -u+s -o -perm -g+s \) -ls

시스템의 모든 setUID setGID를 검색하여 보여줍니다.

 

3-2 마운트 옵션

- 앞에서 언급한 되로 setUID는 해커들이 가장 즐겨 사용하는 해킹방법중 하나입니다.

이러한 해킹파일(프로그램)들은 파일시스템의 어딘가에 존재하여 언제든 시스템을 손상 시킬 수 있습니다. 따라서 이러한 상황을 미연해 방지 할 필요가 있습니다.

파일시스템 마운트 옵션중에 nosuid라는 옵션으로 이러한 문제를 해결 할 수 있습니다.

파일시스템에 nosuid옵션이 설정되면 그 해당 파일시스템에는 suid가 설정되어도 무시됩니다.

 

/dev/dsk/c0t3d0s0 /dev/rdsk/c0t3d0s0  /     ufs 1 no -

/dev/dsk/c0t3d0s4 /dev/rdsk/c0t3d0s4  /usr  ufs 1 no ro

/dev/dsk/c0t3d0s5 /dev/rdsk/c0t3d0s5  /var  ufs 1 no nosuid

/dev/dsk/c0t3d0s6 /dev/rdsk/c0t3d0s6  /opt  ufs 2 yes nosuid

è     /, /usr‘nosuid’ 옵션이 적용되지 않습니다.

4. vold(volume management) 보안

- cdrom, floppy vold데몬에 의해 자동으로 마운트됩니다. 또한, 어떤 user에 의해서도 실행권한이 주워집니다. vold데몬에 의해 관리되는 파일시스템에 대한 nosuid옵션 설정을 권장합니다.

# /etc/rmmount.conf

mount hsfs -o nosuid

mount ufs -o nosuid

è     Solaris7 이상의 버전에서는 default로 옵션이 정의 되어있습니다.

cdrom마운트 후 mount명령어로 확인하십시요.

 

5. user계정 보안

- o/s가 설치 되면 기본적으로 시스템은 특정 user(uucp,smmp)를 생성합니다.

보안을 위해 불필요한 user들은 삭제하기를 권장합니다.

5-1 계정에 대한 보안설정

# passmgmt -d smmsp

è     /etc/passwd, /etc/shadow에서 smmp에 대한 entry를 삭제합니다.

# passwd -l uucp

è     uucp계정에 lock을 설정합니다.

 

6. cron,at 보안

- 미래의 어떤 시점에 jobs을 실행 시킬 수 있는 명령어가 cron,at 입니다.

이러한 명령어의 접근 권한은 /usr/lib/cron 디렉토리에서 관리가 됩니다.

어떤 user가 위 명령어를 실행하려 할 때 시스템은 cron.allow파일을 가장먼저 확인하여 등록되어 있으면 실행권한이 주어지고 없으면, cron.deny파일을 확인하여 등록되어 있으면 권한이 거부되고 없으면 허용됩니다.

모든 user cron사용을 방지하기 위해서는 cron.allow파일을 생성합니다.

따라서 cron,at이 해킹에 이용되는 것을 최소화 하기위해 cron.allow를 생성하여 필요한 user만 등록하기를 권장합니다.

# touch /usr/lib/cron/cron.allow

è     기본적으로 생성되지 않음

 

7. rc.d(init스크립트)의 서비스 관리

디렉토리

관련 서비스

/etc/rcS.d

/etc/rc0.d

/etc/rc1.d

/etc/rc2.d  

/etc/rc3.d

/etc/rc4.d

/etc/rc5.d  

/etc/rc6.d  

single user

shutdown

start

multi-user

multi-user (default)

multi-user (unused)

shutdown and power off

shutdown and reboot

 

7-1

보안상 취약한 서비스 목록

서비스

내용

포트/protocol

RPC           

rpc/rwalld/sun/format_string

111/tcp

RPC           

rpc/cmsd/running

111/tcp

RPC           

rpc/tooltalk/running

111/tcp

RPC            

rpc/sadmind/running

111/tcp

SMTP          

smtp/sendmail/dns_map_txt_record/bof                           

25/tcp

SMTP          

smtp/sendmail/addr_fields/bof

25/tcp

SMTP          

smtp/sendmail/prescan/typeconv_bof                              

25/tcp

SMTP          

smtp/sendmail/prescan/ruleset_bof                              

25/tcp             

RPC           

rpc/solaris_sadmind/remote_exec                                

32772/udp          

RPC           

rpc/solaris_snmpXdmid/running                                  

32779/tcp          

SNMP          

snmp/solaris_mibiisa/running                                   

32790/udp          

RPC    

rexec/anycommands                                              

512/tcp             

RPC

rexec/anycommands                                              

512/tcp            

RPC

rlogin/loginto

513/tcp            

RPC

rsh/anycommands                                                

514/tcp            

LPD           

lpd/solaris/bof                                                

515/tcp            

RPC           

rpc/rwalld/sun/format_string                                   

111/tcp            

RPC           

rpc/cmsd/running                                                

111/tcp            

RPC           

rpc/tooltalk/running                                           

111/tcp            

RPC           

rpc/sadmind/running                                            

111/tcp            

SMTP           

smtp/sendmail/dns_map_txt_record/bof                           

25/tcp             

SMTP          

smtp/sendmail/addr_fields/bof                                  

25/tcp             

SMTP          

smtp/sendmail/prescan/typeconv_bof                              

25/tcp             

SMTP          

smtp/sendmail/prescan/ruleset_bof                              

25/tcp             

RPC           

rpc/solaris_sadmind/remote_exec                                

32773/udp          

RPC            

rpc/solaris_snmpXdmid/running                                  

32779/tcp          

SNMP          

snmp/solaris_mibiisa/running

32780/udp          

RPC

rexec/anycommands

512/tcp            

RPC

rlogin/loginto

513/tcp            

LPD            

lpd/solaris/bof

515/tcp            

X11           

X11/CDE/dtspcd_running

6112/tcp           

X11           

xfsd/solaris/running

7100/tcp           

 

7-2 일반적인 서비스 보안 설정

- 위의 표에서와 같이 RPC, SMTP, X11, SNMP, LP등의 서비스는 보안상 취약점을 가지고 있어 해당 포트를 disable 해 놓는 것이 바람직 합니다.

 

- 해결 방법( 사용자 환경에 따라 달라 질 수 있습니다.)

1. # cp /etc/inet/inetd.conf{,.old}

2. # vi /etc/inet/inetd.cnof

telnet, ftp제외한 모든 네트웍 서비스를 주석처리 or 삭제

3. # /etc/rc2.d , /etc/rc3.d의 해당 서비스 스크립트 move

()- # mv S71rpc{,.old}

 

8. log 파일

8-1 시스템 log파일

/var/adm/message – 중요한 시스템 log 기록합니다.

/var/log/syslog - mail관련 log 기록합니다.

/var/log/authlog – 인증과 관련된 log를 기록합니다. Default /etc/syslog.conf파일에 주석처리 되어 있습니다.

 

8-2 application log 파일

/var/adm/sulog

/var/adm/vold.log

/var/adm/wtmpx

/var/cron/log

 

/usr/bin/su 에 의한 log파일

/usr/sbin/vold 에 의한 log파일

/usr/bin/login 에 의한 log파일 (last에 의해 보여집니다.)

/usr/sbin/cron 에 의한 log파일

 

 

 

8-3 기타

- /etc/issue

로그인시 터미널에 보여지는 메시지 보통 경고 메시지 입력할 때 사용합니다.

- /etc/motd

/etc/issue파일과 비슷한 용도의 파일입니다. 보통 두 파일중 어떤 것을 사용해도 무관 합니다만, 이 파일은 default로 생성되지 않습니다.

- /etc/default/login

 

9. 네트워크 서비스

9-1 Telnet

아시는 바와같이 telnet은 네트웍을 통해 원격지 시스템으로 접속을 하기 위한 protocol입니다.

그러나 telnet id password가 네트웍을 통할 때 어떠한 암호화 인증을 거치지 않기 때문에 해킹이나 네트웍 스니핑에 이용될 수 있습니다. 따라서 부득이 하게 telnet을 사용하셔야 한다면, tcpwrapper나 암호화 인증 알고리즘을 사용하는 ssh를 사용할 것을 적극 권장합니다.

 

9-1 Remote Access Services(rsh, rlogin, rcp)

이러한 서비스는 시스템보안에 가장 취약한 약점을 가지고 있습니다. 대부분의 critical한 사이트는 상기 서비스를 사용하지 않고 있습니다.

 

9-2 Remote Execution Service(rexec)

네트웍을 통해 인증 과정없이 명령어를 실행할 수 있습니다.

Telnet과 마찬가지로 암호하 되지 않아서 해킹이나 스니핑에 이용될 수있습니다.

보통 /etc/inetd.conf 파일에서 삭제 됩니다.

 

9-3 inetd 서비스

- /etc/inet/inetd.conf파일의 network 서비스 목록

In.tnamed

DARAP 네임서버 protocol을 지원합니다.

In.uucpd

네트웍상의 Uucp connections을 지원합니다.

In.fingerd

로컬시스템의 계정정보를 제공합니다.

Systat

Ps –ef의 출력과 함께 시스템에 연결되어 있는 계정정보 제공

Netstat

현재 network에 연결되어 있는 서비스 목록을 제공합니다.

Time

현재의 날짜와 시간을 동기화 시켜주는 서비스 입니다. xntp를 사용할 것을 권장합니다.

Echo

input되는 데이터 스트림을 추적해주는 서비스

Discard

input되는 데이터 스트림을 처리하는 서비스

Chargen

연속적인 문자 스트림을 발생시키는 서비스

è     상기 서비스는 /etc/inet/inetd.conf파일에서 제거 시키기를 권장합니다.

 

10. rpc 서비스

10-1. /etc/inet/inetd.conf파일의 rpc 서비스 목록

 testsvc

 sadmind

 rquotad

 rpc.rusersd

 rpc.sprayd

 rpc.rwalld

 rpc.rstatd

rpc.rexd

ufsd

 kcms.server

 fs

 cachefsd

 kerbd

 in.lpd

 dtspcd

xaudio

 rpc.cmsd

rpc.ttdbserver

 

10-2. /etc/rc2.d/S71rpc 스크립트의 rpc서비스

 rpcbind : CDE를 사용한다면 enable 되어 있어야 한다.

 keyserv

 rpc.nisd

 nis_cachemgr

 rpc.nispasswdd

 

10-3. /etc/rc3.d/S15nfs.server 스크립트의 rpc서비스

 rpc.bootparamd

 

10-4 서비스 제거

- 상기 rpc서비스들은 보안상 대부분 제거하는 것을 권장합니다.

- /etc/inet/ient.conf : 해당 서비스 목록을 찾어 주석처리 후 inetd데몬을 다시 시작한다.

- /etc/rc2.d/S71rpc, /etc/rc3.d/S15nfs.server : 파일 이름을 remove시킨다. Nfs server를 사용한다면 S15nfs.server 스크립트는 remove시켜서는 안된다.

 

10-5 네트웍 서비스 banner

- telnet,ftp접속시 시스템의 기본 정보를 출력하지 않게 하기 위한 방법

/etc/default/telnetd, /etc/default/ftpd 파일 편집

BANNER= ”Unlistend OS”

 

- sendmail 기본 정보 변경

/etc/mail/sendmail.cf

SmtpGreetingMessage=$j Sendmail $v/$Z; $b

변경 -> SmtpGreetingMessage=Mail Server Ready

반응형

'OS > SOLARIS' 카테고리의 다른 글

Solaris Resource Manager (SRM)  (0) 2007.08.02
dumpadm  (0) 2007.08.02
Solaris 설치 후 기본적인 설정  (0) 2007.07.25
Solaris,HP-UX 에서 패치  (0) 2007.07.20
SOLARIS PATCH ERROR CODE  (0) 2007.07.20
Posted by [PineTree]