λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
λ³΄μ•ˆ/취약점 뢄석

ν΄λΌμš°λ“œ 취약점 점검 κ°€μ΄λ“œ - Xenserver, νŒŒμΌμ‹œμŠ€ν…œ

by - 였트 - 2022. 12. 28.

Xenserver

κ°€. 계정 관리 7개 ν•­λͺ©

λ‚˜. 파일 μ‹œμŠ€ν…œ 12개 ν•­λͺ© <- μ •λ³΄λ³΄μ•ˆκΈ°μ‚¬μ—μ„œ 자주 좜제(SUID)

λ‹€. λ„€νŠΈμ›Œν¬ μ„œλΉ„μŠ€ 및 μ£Όμš” μ‘μš© μ„€μ • 5개 ν•­λͺ©

라. ν•˜μ΄νΌλ°”μ΄μ € μ •μ±… μ„€μ • 3개 ν•­λͺ© <- XenServer의 νŠΉμ§•μ΄ λ‚˜νƒ€λ‚¨

마. 패치 및 λ‘œκ·Έκ΄€λ¦¬ 6개 ν•­λͺ©

-> 총 5개 μ˜μ—­μ—μ„œ 33개 ν•­λͺ©μœΌλ‘œ ꡬ성


νŒŒμΌμ‹œμŠ€ν…œ

XE-08. μ‚¬μš©μž UMASK(User Mask) μ„€μ •

μ‹œμŠ€ν…œ λ‚΄μ—μ„œ μœ μ €κ°€ μƒˆλ‘œμ΄ μƒμ„±ν•˜λŠ” 파일의 μ ‘κ·Ό κΆŒν•œμ€ UMASK에 따라 달라짐 (취약도 ν•˜)

UMASK 값은 022(rw-r--r--) λ˜λŠ” 027 ꢌμž₯

/etc/pam.d/su νŒŒμΌμ„ μ•„λž˜μ™€ 같이 μ„€μ •ν•˜μ—¬ 진단

# umask

# cat /etc/profile | grep -i "umask"

UMASK λ³€κ²½ν•˜λŠ” 법(/etc/pam.d/su νŒŒμΌμ„ μ•„λž˜μ™€ 같이 μ„€μ •ν•˜μ—¬ umask 022 ν–‰ μΆ”κ°€)

# umask 022

# vi /etc/profile

 

XE-09. SUID(Set User-ID), SGID(Set Group-ID)

SUID, SGIDκ°€ μ„€μ •λœ 파일의 경우 특히 root μ†Œμœ μ˜ 파일인 경우 λ²„νΌμ˜€λ²„ν”Œλ‘œμš° 곡격과 둜컬 곡격에 많이 μ‚¬μš©λ¨ (취약도 ν•˜)

(SUID, SGIDλž€? λ£¨νŠΈκ°€ μ•„λ‹Œ μ‚¬μš©μžλ“€μ΄ 잠깐 루트의 μ‚¬μš©κΆŒν•œμ„ μ¨μ„œ ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•  λ•Œ μ£ΌλŠ” κΆŒν•œ μ„€μ •)

SUID, SGID 검색 (μ •λ³΄λ³΄μ•ˆκΈ°μ‚¬ μ€€λΉ„ μ‹œ μ€‘μš”)

# find / -user root -type f  \(-perm -400 -o -perm -2000 \) -exec ls -lg {} \;

chmod -s [파일λͺ…] 으둜 λΆˆν•„μš”ν•œ SUID, SGID 제거

 

XE-10. xsconsole 파일 κΆŒν•œ μ„€μ •

xsconsole νŒŒμΌμ— λŒ€ν•œ μ ‘κ·ΌκΆŒν•œ μ œν•œν•˜κ³  μžˆλŠ”μ§€ 점검 (취약도 상)

/usr/bin/xsconsole 파일의 μ ‘κ·ΌκΆŒν•œ 확인

# ls -al /usr/bin/xsconsole

xsconsole 파일 μ†Œμœ μžλ₯Ό root둜 λ³€κ²½ # chown root /usr/bin/xsconsole

xsconsole νŒŒμΌμ— νƒ€μ‚¬μš©μž κΆŒν•œ(3자의 κΆŒν•œ)을 제거 # chmod o-w /usr/bin/xsconsole

 

XE-11. Crontab 파일 κΆŒν•œ μ„€μ • 및 관리

(Cronμ΄λž€? μž‘μ—… μŠ€μΌ€μ€„λ§ κΈ°λŠ₯을 μ œκ³΅ν•˜λŠ” ν”„λ‘œκ·Έλž¨, νŠΉμ •μ‹œκ°„μ— νŠΉμ •μž‘μ—…μ„ μžλ™μœΌλ‘œ μˆ˜ν–‰ν•˜λ„λ‘ ν•˜λŠ” ν”„λ‘œκ·Έλž¨)

일반 μ‚¬μš©μžκ°€ cron κ΄€λ ¨ νŒŒμΌμ— μ•…μ˜μ μœΌλ‘œ μ ‘κ·Ό κΆŒν•œμ„ μ œν•œν•˜λŠ”μ§€ 점검 (취약도 ν•˜)

- Crontab κ΄€λ ¨ 파일의 μ†Œμœ μž 및 κΆŒν•œ 확인

# ls -al /etc/crontab

μ•„λž˜ 파일의 μ†Œμœ μž 및 κΆŒν•œ 확인 ν•„μš”(/etc/crontab, /etc/cron.daily/* λ“±λ“±..)

- Crontab μ˜ˆμ•½ μ‹€ν–‰ 파일 μ†Œμœ μž 및 κΆŒν•œ 확인 (μ •λ³΄λ³΄μ•ˆκΈ°μ‚¬ μ‹€κΈ° 문제 유의)

# crontab -l

# ls -al /backup/OS_backup.sh

# ls -al /opt/sfm/vacuum

 

XE-12. /etc/profile 파일 κΆŒν•œ μ„€μ •

(/etc/profile νŒŒμΌμ΄λž€? λ‘œκ·ΈμΈν•˜λŠ” λͺ¨λ“  μ‚¬μš©μžλ“€μ˜ κΈ°λ³Έ μ‚¬μš© ν™˜κ²½ 섀정을 μœ„ν•œ 둜그인 슀크립트둜써 μ€‘μš”)

μ‚¬μš©μž μ„€μ •νŒŒμΌμΈ /etc/profile νŒŒμΌμ— λŒ€ν•œ μ ‘κ·Ό μ œν•œν•˜κ³  μžˆλŠ”μ§€ 점검 (취약도 쀑)

/etc/profile 파일의 μ†Œμœ μž 및 κΆŒν•œ 확인 # ls -al /etc/profile

파일 μ†Œμœ μž λ³€κ²½ # chown root /etc/profile

타 μ‚¬μš©μž μ“°κΈ° κΆŒν•œ 제거 # chmod o-w /etc/profile

 

XE-13. /etc/hosts 파일 κΆŒν•œ μ„€μ •

(/etc/hosts νŒŒμΌμ΄λž€? 파밍(DNS)κ³Ό κ΄€λ ¨, IP address와 Host name을 λ§€ν•‘ν•˜λŠ”λ° μ‚¬μš©)

-> μ·¨μ•½ν•œ 이유? 정상적인 DNSλ₯Ό μš°νšŒν•˜μ—¬ μ•…μ„±μ‚¬μ΄νŠΈλ‘œμ˜ 접속을 μœ λ„ν•˜λŠ” 파밍(Pharming) κ³΅κ²© λ“±μ— μ•…μš©

ν˜ΈμŠ€νŠΈλ„€μž„ λ“±λ‘νŒŒμΌμΈ /etc/hosts νŒŒμΌμ— λŒ€ν•œ μ ‘κ·Ό μ œν•œν•˜κ³  μžˆλŠ”μ§€ 점검 (취약도 쀑)

진단방법, μ‘°μΉ˜λ°©λ²•μ€ XE-12와 동일

 

XE-14. /etc/issue 파일 κΆŒν•œ μ„€μ •

터미널 μ„€μ •κ³Ό κ΄€λ ¨λœ /etc/issue νŒŒμΌμ— λŒ€ν•œ μ ‘κ·Ό μ œν•œν•˜κ³  μžˆλŠ”μ§€ 점검 (취약도 쀑)

진단방법, μ‘°μΉ˜λ°©λ²•μ€ XE-12와 동일

 

XE-15. μ‚¬μš©μž ν™ˆ 디렉터리 및 파일 관리

각각의 μ‚¬μš©μžμ˜ ν™ˆ 디렉터리 λ‚΄μ˜ νŒŒμΌμ„ μΈκ°€λ˜μ§€ μ•Šμ€ μ‚¬μš©μžκ°€ μ ‘κ·Όν•˜μ—¬ λ³€μ‘°ν•˜μ˜€λŠ”μ§€ 점검 (취약도 ν•˜)

/etc/passwd νŒŒμΌμ—μ„œ μ‚¬μš©μž ν™ˆ 디렉터리 확인 -> cd [μ‚¬μš©μž ν™ˆ 디렉터리] -> ls -al [μ‚¬μš©μž ν™ˆ 디렉터리]

# chmod o-w [ν™ˆ 디렉터리 경둜] [파일λͺ…] 으둜 νƒ€μ‚¬μš©μž μ“°κΈ° κΆŒν•œ 제거

 

XE-16. μ£Όμš” 디렉터리 파일 κΆŒν•œ μ„€μ •

μ£Όμš” 디렉터리 파일 κΆŒν•œμ΄ 적절히 μ„€μ •λ˜μ–΄ μžˆλŠ”μ§€ 점검 (취약도 쀑)

# ls -ldb /usr/bin/xsconsole /usr/lib/xsconsole /opt /sbin /etc/ /bin /usr/bin/ /usr/sbin/

진단방법, μ‘°μΉ˜λ°©λ²•μ€ XE-12와 동일

 

XE-17. PATH ν™˜κ²½λ³€μˆ˜ μ„€μ •

root κ³„μ •μ˜ PATH ν™˜κ²½λ³€μˆ˜μ— "." (ν˜„μž¬ 디렉터리 지칭)κ°€ ν¬ν•¨λ˜μ–΄ 있으면, root κ³„μ •μ˜ μΈκ°€μžλ‘œ 인해 λΉ„μ˜λ„μ μœΌλ‘œ ν˜„μž¬ 디렉터리에 μœ„μΉ˜ν•˜κ³  μžˆλŠ” λͺ…λ Ήμ–΄κ°€ 싀행될 수 있음 (취약도 쀑)

PATH μ„€μ • 확인 # echo $PATH -> λ§Œμ•½ μ·¨μ•½ν•˜λ‹€λ©΄ "." 제거 ν•„μš”

 

XE-18. /etc/service 파일 κΆŒν•œ μ„€μ •

Service νŒŒμΌμ„ κ΄€λ¦¬μž μ•„λ‹Œ μ‚¬μš©μžκ°€ μ ‘κ·Ό 및 λ³€κ²½ κ°€λŠ₯ν•˜λ‹€λ©΄ 정상적인 μ„œλΉ„μŠ€λ₯Ό μ œν•œν•˜κ±°λ‚˜ ν—ˆμš©λ˜μ§€ μ•Šμ€ μ„œλΉ„μŠ€λ₯Ό μ‹€ν–‰μ‹œμΌœ 침해사고 μœ„ν—˜ 쑴재 (취약도 쀑)

진단방법, μ‘°μΉ˜λ°©λ²•μ€ XE-12와 동일

 

XE-19. λΆ€νŒ…μŠ€ν¬λ¦½νŠΈ 파일 κΆŒν•œ μ„€μ •

OSμƒμ—μ„œ μ‚¬μš©ν•˜λŠ” 기타 μ€‘μš”νŒŒμΌμ— λŒ€ν•΄ 점검 (취약도 상)

# ls -al /opt/*/*

진단방법, μ‘°μΉ˜λ°©λ²•μ€ XE-12와 동일


μ°Έκ³  κ°•μ˜ : https://www.youtube.com/watch?v=0nylQNl3Uvw&list=PLrBkRTfN1goPrjzIcBYZUWoBxhdc5P3zm&index=3