- Solaris (SPARC, X86, X64) 자료실 -

순간을 위해 평생을 준비하라.
기회란 언제나 예고 없이 찾아온다 항상 낚싯대를 던져 놓아라.
전혀 기대하지 않았던 곳에서 고기가 잡히리라.




Vote Reply Modify Forward Prev Next List

  작성자   : 조성환 [ ladmin ] 추천: 4704, 수정: 1, 조회: 15613, 줄수: 555, 분류: Etc.
Solairs System (OS) 보안
  
출처 : http://howtosolaris.com/



Solaris o/s 보안
 

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





이전: chkrootkit 설치 (컴파일) 및 사용 방법
다음: Solairsx86 10 3/05 or 1/06에서 single 부팅 방법
2007/04/19(02:32) from 59.30.129.220
CrazyWWWBoard 2000

Vote Reply Modify Forward Prev Next List

(c) Nobreak Technologies, Inc.