2016. 12. 29.

2.9. SUID, SGID, Sticky bit 설정파일 점검

*SUID(Set User-ID)와 *SGID(Set Group-ID)가 설정된 파일은(특히, root 소유의 파일인
경우) 특정 명령어를 실행하여 root 권한 획득 및 정상서비스 장애를 발생시킬 수
있으며, 로컬 공격에 많이 이용되므로 보안상 철저한 관리가 필요함.
root 소유의 SUID 파일의 경우에는 꼭 필요한 파일을 제외하고는 SUID, SGID 속성을
제거해주고, 잘못 설정되어 보안 위협이 되고 있는지 주기적인 진단 및 관리가 요구됨.
*SUID(Set User-ID): 설정된 파일 실행 시, 특정 작업 수행을 위하여 일시적으로 파일 소유자의
권한을 얻게 됨.
*SGID(Set Group-ID): 설정된 파일 실행 시, 특정 작업 수행을 위하여 일시적으로 파일 소유 그룹의 권한을 얻게 됨.


위 명령어로 검색된 파일 중에 설정이 필요없는 파일은 위와 같다. 

/usr/bin/newgrp (guid)
- 새로운 그룹으로 로그인하는 명령어, 잘 사용하지 않음

/usr/bin/at (suid)
- at은 cron과 같이 반복적인 작업을 하고자 할때 사용, at 자체가 cron에 비해 보안 결함이 있고 잘 사용하지 않음

/usr/sbin/traceroute (suid)
- traceroute 는 네트워크 경로를 추적하는 명령어, 일반유저에게 telnet 이나 ssh 를 open 하지 않으면 권한을 줄 필요가 없다.

/sbin/unix_chkpwd (suid)
- 로컬 공격자는 다른 로컬 사용자들의 유효한 패스워드들을 얻기 위한 브루트 포스 공격들을 위행하기 위해 사용할 수 있다.

Continue reading

2016. 12. 28.

Netbios 프로토콜의 위험성 및 취약점 보안

1. NetBIOS 프로토콜에 따른 위험성

NetBIOS는 사용자가 따로 설정하지 않더라도
NetBIOS 는 사용자가 따로이 설정하지 않더라도 기본적으로 윈도우즈가 셋팅되면서 관련된 프로토콜들이 열려있기 때문에 보통 사용자들은 그 위험성은 물론 바이러스 전파의 경로가 된다는 사실조차 인지하지 못하고 있으나 실정 이 NetBIOS는 앞에서 살펴본 바와 같이 열려 있는 자체 만으로도 해커로부터 목록화를 비롯하여 현존하는 전반적인 모든 크래킹의 주요 통로로 사용되고 있습니다.

(ex,
Win32/Welchia.worm.12800 (원격제어 및 좀비 프로세스를 위한 웜 바이러스)
> RPC DCOM 취약점 이용시 C클래스 대역의 IP를 증가시키며, TCP/135 포트를 향해 공격시도
> 워크스테이션 서비스 취약점 이용시 랜덤한 IP를 대상으로 TCP/445 포트를 향해 공격시도
)


2. NetBIOS 프로토콜상의 취약점 보안 (NT 기준)

보안에 있어 최선은 NetBIOS와 관련된 일체의 포트를 영구히 막아 두는 것이 가장 안전하지만 네트워크 상에서 파일시스템이나 프린트를 공유하기 위해서 NetBIOS가 필요 할 수 있습니다. 이때 만약 윈도우 NT시스템이 인터넷에 직접 연결되어 있을 경우 공격자가 쉽게 파일시스템을 사용할 수 있으므로 NetBIOS에 대한 접근통제가 필요하며 다음의 두가지 방법을 고려해 볼 수 있습니다.

1) 라우터나 침입 차단시스템에서 접근을 통제
외부에서 윈도우 NT 시스템으로의 모든 NetBIOS 트래픽을 차단하기 위하여 135/UDP, 137/UDP(NetBIOS name), 138/UDP(NetBIOS name) 139/TCP(NetBIOS ssesion) 포트로의 접속을 차단합니다.

윈도우 NT 서버 한대에 대해서만 접근통제를 하기 위해서는 위에서 살펴본 "서버 접근통제"를 이용할 수도 있지만 내부 네트워크 내에 많은 윈도우 시스템이 존재하고 있으므로 외부에서 내부 윈도우 시스템에 대한 접근을 일괄적으로 적용하기 위해서는 라우터나 침입차단 시스템에서 통제할 필요가 있습니다.

다음은 시스코 라우터라고 가정하고 다음과 같이 정책을 수립할 수 있습니다.

interface xy
ip access-group 101 in
access-list 101 deny udp any host NT_IP _ADDRESS eq 135
access-list 101 deny udp any host NT_IP _ADDRESS eq 137
access-list 101 deny udp any host NT_IP _ADDRESS eq 138
access-list 101 deny udp any host NT_IP _ADDRESS eq 139
(ex, udp로 접근하는 모든 호스트가 목적지 135로 경유하는 것을 차단하는 내용)


2) 네트워크 제어판을 이용하여 TCP/IP 와 NetBIOS 간의 바인딩(binding) 제거
바인딩이 제거되면 TCP/IP 거치게 되는 파일 공유 서비스는 제공되지 않고 당연히 인터넷에서의 공유자원에 대한 접근시도도 불가능하게 됩니다. 이러한 NetBIOS 서비스는 라우터를 거치지 않은 내부 네트워크에서는 여전히 가능합니다.
개인적으로는 이들 두가지 방법 중 외부 네트워크에서 연결되는 게이트웨이 즉, 라우터나 침입차단시스템에서 모든 Netbios 트래픽을 원천적으로 차단하는 것이 좀더 안전하고 내부 네트워크에서 공유자원을 사용하는데도 별다른 제약사항이 없어 권고할 만하다고 생각됩니다.

Continue reading

2016. 12. 5.

[47] NFS 접근통제

취약점 개요
: NFS 사용 시 허가된 사용자만 접속할 수 있도록 접근제한 설정을 하여야 함. 접근제한 설정이 적절하게 이루어지지 않을 경우 비인가자의 root권한 획득이 가능하며, 해당 공유 시스템에 원격으로 마운트하여 중요 파일을 변조하거나 유출할 위험이 있음.

** 공유폴더의 사용권한 관리
폴더나 볼륨과 같은 공유 리소스에 대한 사용 권한은 해당 리소스의 로컬 NTFS 권한 및 공유 리소스에 액세스하는 데 사용하는 프로토콜에 의해 결정된다.

    • SMB(서버 메시지 블록) 프로토콜 : SMB 기반 액세스 제어(Windows 기반 파일 시스템용)는 개별 사용자 및 그룹에 사용 권한을 부여하여 구현된다.
    • NFS(네트워크 파일 시스템) 프로토콜 : NFS 기반 액세스 제어(UNIX 기반 파일 시스템용)는 네트워크 이름을 사용해서 특정 클라이언트 컴퓨터 및 그룹에 사용 권한을 부여하여 구현된다.


판단 기준 :
양호 - NFS 서비스를 사용하지 않거나, 사용 시 everyone 공유를 제한한 경우
취약 - NFS 서비스를 사용하고 있고, everyone 공유를 제한하지 않는 경우

조치 방법
사용하지 않는다면 NFS 서비스 중지, 사용할 경우 everyone 공유 제한



NFS 데몬 구동 여부 확인 및 NFS 데몬 중지

[유닉스의 경우]
   ps -ef | grep nfsd
   kill -9 pid

[솔라리스 5.10 이상]
   svcs -a | grep -i nfs
   svcadm disable svc:/network/nfs/server:default


NFS 서비스가 사용되고 있을때, everyone 공유가 제한되어 있는지 확인

[유닉스의 경우]
1) everyone 으로 시스템이 마운트 되어 있는지 확인
# showmount -e hostname

2) /etc/export 파일에서 접근 통제 설정 여부 확인

#cat /etc/exports
- 취약한 설정 예 : var/www/img *(ro,all_squash)
- 양호한 설정 예 : /data 172.27.0.0/16(rw,no_root_squash)

3) everyone 마운트 제거
# umount [파일시스템명]

[솔라리스의 경우]

#cat /etc/dfs/dfstab
취약한 설정 예 : share -F nfs -o rw /export/home/test
양호한 설정 예 : share -F nfs -o rw=client1:client2 /export/home/test



Continue reading

[67] 로그온 시 경고 메시지 제공

리눅스 시스템의 배너는 issue.net과 motd 두 가지로 분류된다.

/etc/issue.net : ssh 접속 후 패스워드를 입력하기 전에 표시되는 메시지.
/etc/motd : ssh 접속 후 패스워드 입력 후 인증이 완료되어 정상적으로 로그인 했을 경우 표시되는 메시지.


1. "etc/issue.net" 을 통한 설정

- /etc/issue.net 파일에 메세지를 작성하고 저장한다.

- /etc/ssh/sshd_config 파일을 열고 설정을 변경한다.
Banner /etc/issue.net
- ssh 데몬을 재시작한다.
/etc/rc.d/init.d/sshd restart

2. "/etc/motd"를 통한 설정

- vi /etc/motd 파일 실행 후 수정







Continue reading

SSH Secure Shell - Encountered 1 errors during the transfer

<이슈>
: SSH Secure Shell 에서 파일을 전송할 때 "Encountered 1 errors during the transfer." 창이 뜸.


<해결책>
1. 전송할 혹은 전송받을 파일의 전체 경로에서 "(" 나 ")" 가 포함되어 있는지 확인한다. 만약 포함되어 있다면 수정하도록 함.

2. 그래도 안되면, Operation -> File Transfer Mode -> Binary 로 설정


Continue reading

2016. 11. 30.

[63] SAM 파일 접근 통제 설정

[63] SAM 파일 접근 통제 설정

명령어 : cacls C:\Windows\system32\config\SAM

결과 : C:\Windows\system32\config\SAM NT AUTHORITY\SYSTEM:F
                               BUILTIN\Administrators:F

해석 :     N    없음/ R   읽기/ W  쓰기 / C  바꾸기(쓰기) / F  모든 권한
-> SAM 파일의 권한은 SYSTEM 과 Administroator  계정이 연결되어 있는데 모든 권한(F)가 부여되어 있다.

Continue reading

2016. 10. 6.

[1.14] 사용자 쉘 점검

로그인이 필요 없는 계정을 이용해 시스템에 접근하여 사용자의 명령어를 해석하고 악용할 가능성이 있으므로, /bin/false 쉘을 부여애 로그인을 금지함

판단 기준
양호 : 로그인이 필요하지 않은 계정에 /bin/false(nologin) 쉘이 부여되어 있는 경우
취약 : 로그인이 필요하지 않은 계정에 /bin/false(nologin) 쉘이 부여되지 않은 경우

조치방법
로그인이 필요하지 않은 계정에 대해 /bin/false(nologin) 쉘 부여

** bin/false 와 /sbin/nologin 의 차이

/bin/false
: 로긴을 허용하지만 쉘과 ssh 터널 그리고 홈디렉터리를 제공하지 않는다.
주로 메일만 사용가능한 계정을 만들때 사용한다.

예) adduser -M -s /bin/false User_id (-M은 홈디렉토리를 만들지 않는다.)

/sbin/nologin
: 완전히 로그인을 허용하지 않고 계정을 이용할 수 없다는 정책적 메시지만을 답한다.
주로 데몬 계정의 쉘로써 많이 사용함





참고 사이트
- http://hanbyoru.tistory.com/72
- http://mrain7.egloos.com/2725507

** 다양한 리눅스 계정과 이에 대한 설명
root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin = 로컬 프린트 서버 sync:x:5:0:sync:/sbin:/bin/sync = 원격지 서버 동기화 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown = soft 시스템 종료 halt:x:7:0:halt:/sbin:/sbin/halt = 강제시스템 종료 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin = 메일 서비스 계정 news:x:9:13:news:/etc/news:/sbin/nologin uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin = 유닉스 시스템간 파일을 복사 할 수 있는 프로토콜 operator:x:11:0:operator:/root:/sbin/nologin = 설정에 따라 다르지만 /etc/syslog.conf 에 대해서 daemon.err operator라고 표기가 되어 있다면 데몬 관련 에러를 operator계정을 이용해서 출력하라는 의미다. games:x:12:100:games:/usr/games:/sbin/nologin gopher:x:13:30:gopher:/var/gopher:/sbin/nologin = 웹(www)가 나오기전 대표적인 서비스중 하나 gopher사이트 접속후 잘정리된 메뉴를 이용해서 웹서핑을 즐기도록 한 서비스 ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin = ftp사용시 필요 nobody:x:99:99:Nobody:/:/sbin/nologin = 익명 연결(웹 서비스등 누구나 연결이 가능해야 되는 서비스가 있는 경우 필요) dbus:x:81:81:System message bus:/:/sbin/nologin = 시스템 메세지 vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin = 가상메모리 생성시 계정 rpm:x:37:37::/var/lib/rpm:/sbin/nologin = 레드헷 패키지 매니저 haldaemon:x:68:68:HAL daemon:/:/sbin/nologin = 디바이스 장치 인식을 위한 데몬 ident:x:98:98::/home/ident:/sbin/nologin inetd에서 구동되는 데몬 netdump:x:34:34:Network Crash Dump user:/var/crash:/bin/bash = 네트워크 오류를 파일로 저장하는 계정 nscd:x:28:28:NSCD Daemon:/:/sbin/nologin = 네임서비스에 대한 캐쉬기능 제공 sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin = 보안쉘 계정 rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin = 원격 호출에 관한 데몬 mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin = 메일큐 smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin = sendmail관련으로 메일을 보낼때 root가 아닌 smmsp로 보내게 된다 rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin pcap:x:77:77::/var/arpwatch:/sbin/nologin = 패킷 캡쳐 관련 라이브러리 계정 apache:x:48:48:Apache:/var/www:/sbin/nologin = httpd 사용 squid:x:23:23::/var/spool/squid:/sbin/nologin = 프록시 서버 webalizer:x:67:67:Webalizer:/var/www/usage:/sbin/nologin = 웹로그 분석 프로그램 xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin = 저널링 파일 시스템 ntp:x:38:38::/etc/ntp:/sbin/nologin = 컴퓨터간 시간을 동기화 시켜주기 위하여 만들어진 Network Time Protocol 이다. gdm:x:42:42::/var/gdm:/sbin/nologin = x-window사용 pegasus:x:66:65:tog-pegasus OpenPegasus WBEM/CIM services:/var/lib/Pegasus:/sbin/nologin = System Center Operation Manager가 이기종 환경을 관리할 수 있도록 확장(window에서 linux등의 이기종 환경에 대해 Cross-Platform Extension을 제공 htt:x:100:103:IIIMF Htt:/usr/lib/im:/sbin/nologin = 한국어 일본어 중국어에 대한 입력 방식 named:x:25:25:Named:/var/named:/sbin/nologin = 도메인 서버사용시 사용하는 계정 pvm:x:24:24::/usr/share/pvm3:/bin/bash = 병렬 컴퓨팅(클러스터링 관련 계정)

Continue reading

Popular Posts

Recent Posts

Powered by Blogger.