어렵당
8. 보안장비 본문
보안장비
침입탐지 시스템 snort
주요 기능 : 패킷 스니퍼(sniffer), 패킷 로거(logger), 네트워크 IDS/IPS 기능
: snort rule은 크게 헤더와 바디(옵션)부분으로 구성된다
: 패턴 매칭 방법으로 바이너리(binary) 비교 방법과 텍스트(text) 비교 방법이 있으며 텍스트 비교 방법은 바이너리 비교방법에 비해 속도가 느리지만 유연한 패턴 매칭을 제공
룰 헤더(header)
1. Rule Actions : 처리방식(8가지)
alert : 선택한 alert 방식을 이용해서 alert를 발생시키고 패킷을 로그에 남긴다
log : 패킷을 로그에 남긴다
pass : 패킷을 무시한다
activate : alert를 발생시키고, 대응하는 dynamic rule을 활성화한다
dynamic : activate rule에 의해 활성화 되고, log rule과 동일하게 동작한다
(activate/dynamic은 한쌍으로 alert와 동일해보이지만 옵션등에 차이가 있을 수 있다)
drop : 패킷을 차단하고 로그에 남긴다
reject : 패킷을 차단하고 로그에 남긴다. TCP일 경우 TCP Reset을 전송하고 UDP의 경우 ICMP port unreachable 메시지를 전송한다
sdrop : 패킷을 차단하지만 로그에 남기지 않는다
2. 프로토콜
3. 출발지/목적지 IP주소
4. 출발지/목적지 port
5. Direction Operatior : 방향 지시자
헤더 설정 예시)
- alert tcp any any -> 192.168.133.0/24 80
any -> 192.168.133.0/24 TCP/80 port로 통신하는 패킷이 발생했을때 alert를 발생시키고 패킷을 로그에 남긴다
- log tcp $EXTERNAL_NET any <> $HOME_NET 80
$EXTERNAL_NET : snort 설정파일(snort.conf)에 정의되어 있는 환경변수로 외부 네트워크를 의미(기본적으로 any)
$HOME_NET : snort 설정파일(snort.conf)에 정의되어 있는 환경변수로 내부 네트워크를 의미
내부대역과 외부대역이 양방향으로 TCP/80 통신하는 패킷은 로그에 남긴다
룰 바디(body)
* 헤더뒤에 ( ) 사이에 바디내용이 들어간다
msg : msg옵션에 기록된 내용이 alert 발생 시 이벤트 이름으로 사용된다
reference : rule과 관련된 외부 취약점 정보 참조 시 사용
sid : snort rule id로 사용
(99 이하:시스템에 예약된 sid, 100-100만이하 : snort에서 배포하는 룰셋 sid, 100만1 이상 : 사용자 정의 rule sid)
classtype : 공격유형과 우선순위를 정의
priority : rule의 우선순위에 대해 숫자로 표기(priority 지정 시 classtype의 기본 우선순위를 덮어쓴다)
rev : rule 버전정보로 수정횟수를 표기(수정을 할때마다 1씩 증가한다)
룰 바디(body) : 페이로드(payload) 범위 관련 옵션
content
: 페이로드에서 검사할 문자열을 지정
: content는 text 형식일 수도 있고 binary 형식(핵사값)일 수도 있으며 복합된 형식일 수도 있다
: text 형식 - content:"pattern"
: binary 형식 - content:|FF FF| (파이프 기호 사이에 헷가값으로 표현)
uricontent
: http URI 정보를 검사할 문자열을 지정
offset
: 페이로드에서 content 패턴을 검사할 시작위치
: 페이로드의 첫번째 바이트 위치가 0부터 시작(offset이 2면은 3번째 바이트부터 검사)
depth
: offset(시작위치)부터 몇 바이트까지 검사할 것인지 지정
distance
: 이전 content 패턴에 매치된 경우, 매치된 이후 바이트부터 몇 바이트 떨어진 위치에서 다음 content를 검사할 것인지 지정
within
: 이전 content 패턴에 매치된 경우, distance부터 몇 바이트 범위 내에서 다음 content를 검사할 것인지를 지정
nocase
: 페이로드 검사 시 대/소문자를 구분하지 않음
* 설정을 잘못할 경우 오탐(False Positive) 또는 미탐(False negative)이 발생할 수도 있어 주의가 필요
룰 바디(body) : 페이로드(payload) 정규표현식 관련 옵션
* pcre : 정규표현식을 사용한다는 의미로 /(슬래시) 기호 사이에 정규표현식을 입력
\(역슬래시) : 특수문자의 기능을 제거하는 이스케이프 문자
^ : ^다음에 오는 문자가 문자열의 시작을 의미
$ : $바로 앞에 있는 문자가 문자열의 끝을 의미
. : 임의의 문자 1개를 의미
[ ] : 집합 안에 지정한 문자들 중 하나와 일치(ex : [abc], [a-z], [0-9])
[^] : 집합 안에 지정한 문자들을 제외한 임의의 문자 하나와 일치(ex : [^0-9] 숫자를 제외한 임의의 문자 하나)
| : 앞에 오는 문자열과 뒤에 오는 문자열 중 하나와 일치
* : *앞에 오는 문자가 0회 이상 나타남(ex : he*llo -> hllo, hello, heello, heeello)(일반적인 any는 .* )
+ : +앞에 오는 문자가 1회 이상 나타남
? : ?앞에 오는 문자가 0회 또는 1회 나타남
{ } : {x} 앞에 오는 문자가 정확히 x회 나타남
룰 바디(body) : 페이로드(payload) HTTP 관련 옵션
http_method : http method부분을 검사
http_uri : http uri 부분을 검사
http_header : http header 부분을 검사
http_cookie : http cookie 부분을 검사
http_client_body : http post요청의 바디부분을 검사
http_stat_code : http 응답상태 코드 부분을 검사
http_stat_msg : http 응답상태 메시지 부분을 검사
룰 바디(body) : Event Threshold(이벤트 제한) 관련 옵션
* 형식 : threshold type <limit|threshold|both>, track <by_src|by_dst>, count <c>, seconds <s>
type
- limit : 매 s초 동안 c번째 이벤트까지 action을 수행한다
- threshold : 매 s초 동안 c번째 이벤트마다 action을 수행한다
- both : 매 s초 동안 c번째 이벤트 시 한번 action을 수행한다
track
- by_src : 출발지 IP를 기준으로 추적
- by_dst : 목적지 IP를 기준으로 추적
룰 바디(body) : 기타 옵션
flags
: S면 SYN 플래그를 의미
: SF면 SYN과 FIN만 설정된 패킷
: SF+면 SYN/FIN은 포함하고 다른 플래그도 설정될 수 있다
sameip
: 출발지와 목적지가 같은 IP를 탐지
비정상 패킷 탐지
비정상적인 패킷 : RFC 문서에 정의된 프로토콜 표준에 위배되는 패킷
공격자가 공격 또는 스캔을 위해 사용하는 이유
: 비정상적인 패킷을 제대로 처리하지 못하는 IDS/IPS 또는 firewall을 우회하기 위한 목적
: 시스템이 비정상적인 패킷을 제대로 처리하지 못하여 장애나 오류가 발생하도록 하기 위한 목적
비정상 IP패킷
- 인터넷 구간의 사설IP
10.0.0.0 ~ 10.255.255.255 (10.0.0.0/8)
172.16.0.0 ~ 172.31.255.255 (172.16.0.0/12)
192.168.0.0 ~ 192.168.255.255 (192.168.0.0/16)
- 출발지와 목적지가 동일한 IP(Land Attack)
비정상 TCP 패킷
- SYN_FIN 플래그 조합
: 가장 많이 알려진 비정상적인 플래그 조합으로 SYN과 FIN은 동시에 설정될 수 없는 플래그
: 구형의 IDS/IPS/방화벽 제품들이 이러한 플래그를 제대로 탐지하지 못하고 FIN플래그를 포함한 패킷을 허용하는 경우가 있고 일부 시스템에서는 이러한 플래그 패킷에 대해 로그를 남기지 않는 특성이 있어서 스캐닝 도구들이 SYN_FIN 패킷을 많이 사용함
: 변형으로 SYN_FIN 탐지를 우회하기 위해 SYN_FIN_RST 또는 SYN_FIN_PSH등도 사용될 수 있다
- 10.10.10.10:80 -> 10.10.10.20:80
: 일반적으로 클라이언트 출발지 포트는 1024 port 이상을 사용하는데 목적지포트와 동일한 80port 를 사용하고 있다.
: 이는 마치 클라이언트의 요청에 대한 응답패킷인 것처럼 위조하기 위한 목적이다
- FIN 플래그만 설정된 패킷
: 정상적인 연결 종료 패킷은 FIN_ACK 플래그 조합이다
: FIN 플래그만 설정될 경우 스텔스 스캐닝 기법중 FIN 스캔인것을 알 수 있다
- 플래그가 설정되지 않은 패킷(NULL 패킷)
: URG, ACK, PSH, RST, SYN, FIN이 모두 설정되지 않은 패킷은 NULL 스캔인것을 알 수 있다
-------------------------------------
침입 차단 시스템 iptables
- 상태 추적 기능 (Stateful Inspection 또는 Connection Tracking)
: 연결 상태를 추적하여 정보를 메모리(상태추적 테이블)에 기억하고 있다가 기존의 연결을 가장하여 접근할 경우 메모리에 저장된 상태목록과 비교하여 적합하면 통과하고 그렇지 않으면 거부하는 기능
: 연결 정보를 가지고 있는 모든 송수신 패킷을 기록하고 검사한다
- NAT 기능
- 패킷 레벨에서의 로깅 기능
- 확장 모듈을 통한 다양한 기능
* 형식 : iptables [테이블] [체인] [룰] [타겟]
(대소문자 구별)
테이블(Table) : iptables가 제공하는 기능을 의미하며 제공해주는 테이블에는 Filter, Nat, Mangle이 있다.
( 테이블을 명시하지 않으면 기본적으로 Filter 테이블을 의미한다 )
체인(Chain) : 패킷이 이동하는 경로를 의미한다.
INPUT chain : 방화벽을 최종 목적지로 하는 체인
OUTPUT chain : 방화벽을 최초 출발지로 하는 체인
FORWARD chain : 방화벽을 통과하는(경유하는) 채널을 의미, 방화벽을 별도의 서버로 구성해서 서비스 할때 사용
-L [체인] -n : 해당 체인에 등록된 룰 리스트를 확인한다(-n 옵션 : IP와 port를 숫자형식으로 출력한다)
-F [체인] : 해당 체인에 등록된 모든 룰 정보를 삭제한다
-P [체인] [ ACCEPT | DROP | REJECT ] : 해당 체인의 모든 룰에 매칭되지 않으면 적용할 기본 정책(default Policy)을 지정
-A [체인] : Appent 모드, 해당 체인의 제일 마지막에 룰을 추가한다
-I [체인] : Insert 모드, 해당 체인의 첫 행에 룰을 추가한다
-D [체인] : Delete 모드, 해당 룰을 삭제한다
룰(rule) : 패킷을 필터링 하기 위한 룰
-s [IP 또는 IP대역] : 출발지 IP를 명시한다
-d [IP 또는 IP대역] : 목적지 IP를 명시한다
--sport [포트번호] : 출발지 포트를 명시한다
--dport [포트번호] : 목적지 포트를 명시한다
--icmp-type [메시지타입] : 메시지 타입을 명시한다( ex : echo-request... 등)
--tcp-flags [검사할 플래그 리스트] [설정되어야 할 플래그 리스트]
ex) --tcp-flags SYN,FIN SYN,FIN -> SYN,FYN 의외에 다른 플래그가 있어도 SYN,FIN이 있으면 탐지
ex) --tcp-flags ALL SYN,FIN -> SYN, FYN만 설정된 경우 탐지, 다른 플래그가 같이 설정되어있으면 미탐지
--limit [n/second | n/minute | n/hour | n/day] : 초당/분당/시간당/하루당 매칭되는 제한건수를 지정한다
-m recent --[옵션] : 동적으로 출발지IP 목록을 생성하여 이를 기반으로 패킷을 제어하는 기능을 제고항 하는 모듈사용 )
( -m recent --name : 목록 이름을 지정 )
( -m recent --set : 목록에 새로운 '출발지IP / 타임스탬프 / TTL' 을 추가하고 이미 존재하면 업데이트 시킨다 )
( -m recent --rcheck : 해당 목록에 패킷의 출발지 IP가 있는지 체크한다 )
( -m recent --update : 해당 목록에 패킷의 출발지 IP가 있는지 체크하고 있으면 타임스탬프를 갱신한다 )
( -m recent --seconds : 타임스탬프가 지정한 초 범위 내에 있는지를 체크한다 )
( -m recent --hitcount : 지정한 초 범위 내에 hit count 이상으로 패킷이 발생했는지 체크한다 )
-m connlimit --connlimit-above [동시연결개수]
( -m connlimit : 확장 모듈 중 동시연결개수 설정을 사용한다는 의미 )
( --connlimit-above [최대연결개수] : 동일 출발지에 대한 동시연결개수 초과 시 뒤에 액션을 수행)
-m state --state [탐지할 상태]
( -m state : 확장 모듈 중 상태 추적 기능을 사용한다는 의미 )
( --state [탐지할 상태] : 탐지할 상태(NEW, ESTABLISHED, RELATED, INVALID) )
( NEW 상태 : 최초로 들어온 패킷의 상태, 상태추적 테이블에 연결정보를 가지고 있지 않은 패킷 )
( ESTABLISHED 상태 : 상태추적 테이블에 연결정보를 가지고 있는 패킷의 상태 )
( RELATED 상태 : 상태추적 테이블에 연관된 연결정보를 가지고 있는 패킷의 상태, ex:포트정보가 새롭게 추가되는 FTP )
( INVAILD 상태 : 어떤 상태에도 해당되지 않는 패킷 상태 )
* TCP 프로토콜 상태
(연결 요청) SYN -> NEW 상태
(연결 요청) SYN+ACK -> ESTABLISHED 상태
(연결 요청) ACK -> ESTABLISHED 상태
(연결 종료) FIN+ACK -> ESTABLISHED 상태
(연결 종료) ACK -> ESTABLISHED 상태
(연결 종료) FIN+ACK -> ESTABLISHED 상태
(연결 종료) ACK
* UDP 프로토콜 상태
: UDP는 패킷이 들어올 떄마다 임의의 시간동안 정보를 유지함으로써 이상태를 ESTABLISHED 상태로 본다
최초 들어온 UDP 패킷 -> NEW 상태
내부적인 TTL이 유지되는 동안은 -> ESTABLISHED 상태
타겟(target) : 룰에 매칭될 때 적용할 정책을 지정한다
-j ACCEPT : 해당 패킷을 허용한다
-j DROP : 해당 패킷을 차단 후 아무런 응답 메시지도 전송하지 않는다
-j REJECT : 해당 패킷을 차단한 후 ICMP 에러 메시지로 응답한다
-j LOG : 탐지 로그를 남긴다( /var/log/messages 에 남긴다 )
룰 설정 예시)
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-> ESTABLISHED과 RELATED 상태의 패킷에 대해서는 허용하고 룰을 가장 상단에 위치함으로써 이미 허용된(연결된) 상태의 패킷들에 대해 패턴 매칭 검사를 수행하지 않는 성능상의 장점을 준다
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
-> SYN패킷이 아닌 NEW 상태의 TCP 패킷은 DROP시킨다.(정상적인 TCP 패킷의 NEW 상태는 SYN밖에 없기 때문에 의외의 패킷은 모두 조작된 패킷이므로 차단한다)
iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 5 -j LOG --log-prefix "[CONNLIMIT]"
-> 목적지가 TCP/80 port인 SYN 패킷의 동일 출발지IP에 대한 동시 연결 개수가 5개 초과 시 [CONNLIMIT] 접두어를 사용하여 로그를 남긴다
iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 10 --connlimit-mask 24 -j DROP
-> 목적지가 TCP/80 port인 SYN 패킷의 동일 출발지IP대역(/24)에 대한 동시 연결 개수가 10개 초과 시 DROP 한다.
iptables -A INPUT -p tcp --tcp-flags ALL SYN,FIN -m limit --limit 6/minute -j LOG --log-prefix "[LIMIT]"
-> SYN과 FIN 플래그만 설정되어있는 TCP패킷을 분당 최대 6개까지만 [LIMIT]접두어를 사용해서 로그를 남긴다
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
-> SYN과 FIN 플래그가 같이 포함되어있는 TCP 패킷을 DROP 시킨다
iptables -A INPUT -m state --state NEW -p tcp --dport 22 -m recent --name SSH_DROP --set
-> 목적지가 TCP/22port인 NEW상태의 패킷의 목록명을 SSH_DROP으로 설정하고 목록에 '출발지IP / 타임스탬프 / TTL' 정보를 담는다
iptables -A INPUT -m state --state NEW -p tcp --dport 22 -m recent --name SSH_DROP --update --seconds 60 --hitcount 5 -J DROP
-> 목적지가 TCP/22port인 NEW상태의 패킷을 출발지IP를 기준으로 60초 이내에 5번 이상 연결요청이 들어오면 정보를 갱신시키고 이를 DROP시킨다
-------------------------------------
보안 솔루션 종류 및 특징
1. 무선침입방지시스템 WIPS(Wireless Intrusion Prevention System)
: 비인가 무선AP(rogue AP) 탐지 및 차단
2. 네트워크접근제어 NAC(Network Access Control)
: IP관리 시스템 + 네트워크 통제기능 강화
: 네트워크 제어 및 통제 기능을 통해 내부 네트워크가 보안 위협으로부터 안전한 단말기들로 이루어질 수 있도록 강제하는 역활(인가된 단말인지, 보안프로그램 설치여부 체크 등)
3. 통합보안시스템 UTM(Unified Threat Management)
: 방화벽, IDS/IPS, VPN, 안티바이러스, 웹/이메일 필터링 등 다양한 보안 기능을 하나의 장비로 통합하여 제공
4. 엔드포인트 탐지 및 대응 솔루션 EDR(Endpoint Detection and Response)
: 기존 패턴기반의 백신과 다르게 행위 기반으로 악성행위를 판단하여 실시간 분석 및 대응하여 피해확산을 방지
5. 스팸차단솔루션 Anti-Spam Solution
: 메일 서버앞단에 위치하여 프락시 메일 서버로 동작하며 스팸메일 차단 기능뿐만이 아니라 메일에 대한 바이러스 검사, 내부정보 유출방지 등의 확장 기능을 가지고 있다
6. 보안운영체제 Secure OS
: 운영체제에 보안기능이 통합된 보안 커널을 추가로 인식한 운영체제
7. 보안 USB
: 정보유출방지 등의 보안 기능을 갖춘 USB메모리
: 사용자 식별/인증, 데이터 암/복호화, 복제 방지, 분실 시 데이터 보호를 위한 삭제 기능을 갖추어야 한다
8. 디지털저작권관리 DRM(Digital Rights Managements)
: 디지털 컨텐츠 저작권을 보호하기 위해 저작권자가 배포한 자료나 하드웨어의 사용을 제어하고 이를 의도한 용도로만 사용하도록 제어하는데 사용되는 모든 기술
9. 정보유출방지 DLP(Data Loss Prevention)
: 내부 자료가 외부로 빠져나가는것을 탐지하고 차단하는 솔루션
: 메일,USB(이동식 저장매체),메신저,게시판,출력물 등 다양한 통로가 있는데 이러한 통로들을 통한 유출방지를 위해 정보의 흐름에 대한 모니터링과 실시간 차단기능을 제공한다
: (네트워크 DLP) - 내부에서 외부로 나가는 트래픽(이메일,메신저,웹게시판 등)을 모니터링하여 데이터 유출 감시 및 제어
: (엔드포인트 DLP) - 에이전트를 통해 데이터 유출 관련 이벤트(이동식 저장매체 저장,출력물)를 감시 및 제어
10. 전사적 보안관리 시스템 ESM (Enterprise Security Management)
: 보안관제 1세대 솔루션
: 다양한 보안장비의 탐지결과에 대한 상호연관 분석에 어려움이 있어서 나올 솔루션으로 다양한 보안장비로부터 발생하는 이벤트정보,로그 등을 단일 관제환경(ESM 솔루션)에서 수집 및 분석 대응이 가능한 시스템
(구성)
ESM 에이전트 : 보안장비에 설치되어 로그/이벤트 로그를 수집하여 ESM 매니저로 전달
ESM 매니저 : ESM 에이전트를 통해 수집된 데이터를 저장/분석하여 그 결과를 ESM 콘솔로 전달
ESM 콘솔 : EM 매니저로부터 전달된 정보를 시각적으로 관리자에게 전달, 리포팅 기능 제공, ESM 매니저와 콘솔 제어/통제 기능을 수행
11. SIEM (Security Information & Event Management)
: 보안관제 2세대 솔루션
: APT(지능형 장기간 지속적인) 같은 공격을 탐지/분석하기 위해서는 보안장비뿐만 아니라 서버,네트워크장비,어플리케이션 로그 등 다양한 IT장비로부터 정보수집이 요구되어 나온 솔루션이 SIEM 솔루션으로 로그들을 장기간 저장하고 빠른 검색(분석)이 가능하고 빅데이터 기반의 상관관계 분석을 통해 위협을 사전에 차단한다
: 데이터 통합(로그 수집/변환), 상관 관계 분석(로그 분류/분석), 관리자에게 알림, 대시보드 기능을 제공
: 많은 위협들을 분석 및 대응을 하기 위해서는 보안 담당자가 필요한데 한정된 보안 인력으로는 처리하는데 한계가 있다
12. SOAR (Security Orchestration, Automation and Response)
: 보안관제 3세대 솔루션
: 자동화된 분석과 대응환경을 만들어 보안 인력을 효율적으로 운영하고 분석의 정확도를 높이며 대응시간을 단축시킨다
(주요 기능)
SIRP (보안사고 대응 플랫폼) : 단순하고 반복적인 업무를 자동화
SOA (보안 오케스트레이션 및 자동화) : 다양한 IT/보안 시스템을 통합/자동화, SIRP에서 정의한 업무 프로세스 실행 지원TIP (위협 정보/인텔리전스 플랫폼) : 보안 위협을 판단하기 위해 내/외부 위협 정보(인텔리전스)를 활용하는 기능, 보안 분석가의 판단을 보조하는 역활
*사이버 위협 인텔리전스(CTI : Cyber Threat Intelligence)
: 위혐 정보를 수집/분석/활용하여 생성해내는 증거 기반 정보, 외부 위협 동향에대해 쉽게 파악할 수 있고 알려지지 않은 위협, APT같은 공격에도 효과적으로 대응할 수 있다
: SIEM, SOAR 등의 보안관제 솔루션에서 '사이버 위협 인텔리전스'와 연동하여 보안 위협의 분석 및 대응에 활용한다
13. 패치관리시스템 PMS (Patch Management System)
: 운영체제 어플리케이션 패치를 보안정책에 따라 자동으로 설치 및 업그레이드
14. 하드웨어보안모듈 HSM(Hardware Security Module)
: 암호화키/디지털키에 대한 안전한 저장/관리 및 고속의 암호화 처리를 수행할 수 있는 전용 하드웨어 장비
15. SSO (Single Sign On)
: 한번의 인증으로 여러 시스템에 접근할 수 있는 통합인증 솔루션
16. EAM (Extranet Access Management)
: SSO + 사용자별/그룹별 접근권한 통제
17. IAM (Identity and Access Management)
: 전사적으로 계정관리를 자동화해주는 솔루션
: 자동으로 사용자에게 적절한 권한이 부여된 계정을 생성 및 전달
* 퍼징(Fuzzing) : 소프트웨어 보안 테스트 기법으로 프로그램 실행 시 무작위 데이터를 입력하여 그 결과로 애플리케이션에 오류 등이 발생하면 보안 취약점이 존재할 가능성이 크다고 판단하는 테스트, 테스트 분야에 따라 웹퍼징, 네트워크 프로토콜 퍼징, 파일 포맷 퍼징, 메모리 퍼징 등으로 구분한다
-------------------------------------
네트워크 보안 장비
1. 디도스 차단 시스템 (Anti-DDoS System)
: 디도스 공격(특히 flooding 계열 공격)으로부터 다른 장비들을 보호하기 위해 네트워크 구성 상 가장 상단에 위치하는 보안장비
2. 방화벽
: 방화벽 룰셋에 따라 패킷필터링을 수행하는 보안장비
: 상태검사(Stateful Inspection) 기능을 대부분의 방화벽에서 지원하고 있다.
3. SSL 오프로드(Offload) 장비
: 최근 웹서비스들은 보안서버(SSL 서버)를 구축하여 HTTPS로 통신하기 때문에 보안장비에서 유해 트래픽을 탐지하고 차단하기 위해서는 암호화된 트래픽에 대한 가시성 확보가 필요하며 이를 SSL 오프로드(offload) 기능이라 한다
: 전용의 SSL-VA(Visibility Appliance) 장비 또는 L7-Switch 를 주로 사용한다
: SSL 오프로드 기능이란 SSL 서버(https 웹서버 등)를 대신해서 SSL 트래픽에 대한 모든 암/복호화 처리를 수행 하는것을 말한다. 이를 위해서는 SSL 오프로드 장비에 대상 서버의 "SSL 서버 인증서" 설치가 필요하다
4. 침입탐지시스템 IDS
: 사전에 등록한 알려진 공격패턴(시그니처), 임계치 등에 따라 공격을 탐지하는 보안 장비
: 일반적으로 인라인 모드가 아닌 미러링 모드로 설치한다
: 오용탐지(Misuse Detection) 방식 과 이상탐지(Anomaly Detection)방식으로 구분한다
: 탐지할 데이터 수집원에 따라 호스트 기반 IDS(HIDS)와 네트워크 기반 IDS(NIDS)로 구분한다
* 오용탐지(Misuse Detection) 방식 (지식기반 탐지)(시그니처 기반 탐지)
: 알려진 패턴을 기반으로 탐지하기 때문에 오탐률(False Positive)이 낮지만 새로운 공격에 대해서는 탐지가 불가능하기 때문에 미탐률(False Negative)이 높다
* 이상탐지(Anomaly Detection) 방식 (행위 기반 탐지)(통계 기반 탐지)
: 정량적인 또는 통계적인 분석을 통해 설정한 임계치 기반으로 탐지하는 방식
: 미탐률(False Negative) 이 낮지만 임계치 설정이 어렵기 때문에 오탐률(False Positive) 이 높다
* 호스트 기반 IDS(HIDS)
: 호스트에 설치되어 호스터 정보를 수집하여 탐지활동을 수행하는 IDS
: 단일 호스트에서 생성되는 로그를 주기적으로 분석/탐지하는 단일 호스트 기반 IDS 방식이 있고 여러 호스트에서 로그를 수집하여 분석/탐지하는 다중 호스트 기반 IDS가 있다
: 대표적인 오픈소스 HIDS로 파일시스템 무결성을 검사하는 트립와이어(tripwire)가 있다
* 네트워크 기반 IDS(NIDS)
: 네트워크 트래픽을 수집하여 탐지 활동을 수행하는 IDS
: 대표적인 오픈소스 NIDS로 snort와 snort의 단점을 보완한 수리카타(suricata)가 있다
5. 침입방지시스템 IPS(Intrusion Prevention System)
: 공격을 탐지하고 차단하기위해 인라인 모드로 설치된다
6. APT 대응 시스템(Anti-APT System)
: 가상머신 기반의 샌드박스(sandbox) 환경에서 해당 파일을 직접 실행하여 악성여부를 판단하는 보안장비
: 일반적으로 엔드포인트(사용자 단말)솔루션을 함께 제공하여 분석이 완료될 때 까지 파일 실행을 보류시키거나 악성 파일로 판단될 경우 파일 삭제 등의 기능을 수행한다
7. 네트워크 포렌식 장비(Network Forensic)
: 침해사고 분석 및 내부감사 등의 목적으로 활용되는 장비
: 설치된 네트워크 구간을 통과하는 모든 트래픽을 수집 및 분석
8. 웹방화벽 WAF(Web Application Firewall)
: 일반적인 네트워크 방화벽과 달리 웹 어플리케이션 공격에 대응하기 위해 웹 트래픽의 웹 컨텐츠를 분석하고 탐지 및 차단할 수 있는 기능을 가지고 있는 보안장비
: 난독화된 스크립트를 해제하여 분석할수 있는 기능, SQL인젝션/XSS 등 다양한 웹공격에서 사용되는 요청 파라미터 패턴을 분석할 수 있는 기능이 있다.
: 직접적인 웹 공격 대응 의외에도 정보유출방지, 부정 로그인 방지, 웹사이트 위변조 방지 등으로도 활용이 가능하다
: 대표적인 공개 웹방화벽에는 KISA의 캐슬(Castle), ATRONIX사의 WebKnight(IIS웹서버), TrushWave사의 ModSecurity(Apache, IIS 웹서버) 이 있다
-------------------------------------
* 베스턴 호스트(bastion host) : 침입 차단 소프트웨어가 설치되어 내부와 외부 네트워크 사이에서 일종의 게이트웨이 역활을 하는 호스트로 네트워크 보안에 가장 중요한 방화벽 호스트
침입차단시스템(방화벽) 구현 방식
- 패킷 필터링 방식
: 출발지/목적지 IP주소, 출발지/목적지 port번호, 프로토콜 등을 기반으로 방화벽 정책에 따라 패킷 필터링(허용/거부)을 수행하는 방식
- 상태 검사(Stateful Inspction) 방식
: 프로토콜별 연결 상태정보(세션정보)를 추적하여 방화벽 정책에 따라 패킷 필터링을 수행하는 방식으로 패킷필터링 방식에 상태 검사 기능이 추가된 형태
- 애플리케이션 게이트웨이 방식
: 응용 계층 서비스(HTTP,SSH 등)에 대한 중계 역활(프록시 역활)을 하면서 방화벽 정책에 따라 서비스 제어, 사용자 인증, 로깅 및 감사추적 등의 기능을 수행하는 방식
- 회선 게이트웨이 방식
: 전송 계층 트래픽(TCP,UDP 등)에 대한 중계 역활(프록시 역활)을 하면서 방화벽 정책에 따라 연결 제어, 로깅 및 감사추적 등의 기능을 수행하는 방식
침입차단시스템(방화벽) 구축 방식
- 스크리닝 라우터 방식
: 패킷 필터링 기능을 이용해 방화벽 기능을 함께 수행하는 라우터
- 듀얼 홈드 게이트웨이 방식
: 두 개의 네트워크 인터페이스가 설치된 베스천 호스트로 하나의 인터페이스는 외부 네트워크(인터넷)와 연결되고 다른 하나의 인터페이스는 내부 네트워크에 연결되어 내부와 외부 사이의 접근 제어를 수행한다
: 스크리닝 라우터 방식과는 달리 라우팅 기능은 존재하지 않음
- 스크린드 호스트 게이트웨이 방식
: 외부 스크리닝 라우터와 싱글/듀얼 홈드 게이트웨이를 조합하여 구성한 방식
: 외부 네트워크(인터넷)에서 내부 네트워크로 들어오는 트래픽은 일차로 스크리닝 라우터에서 필터링하고 이를 통과한 트래픽에 대해 이차로 싱글/듀얼 홈드 게이트웨이에서 필터링하는 방식이다.
- 스크린드 서브넷 게이트웨이 방식
: 외부 스크리닝 라우터와 내부 스크리닝 라우터 사이에 듀얼 홈드 게이트웨이를 조합하여 구성한 방식
: 외부 네트워크(인터넷)와 내부 네트워크 사이에 DMZ라는 네트워크 완충지역 역활을 하는 서브넷을 운영하는 방식
* 트러스트 존(Trustzone) : 암(ARM)사에서개발한 하드웨어 기반 보안기술로 하나의 하드웨어 장치에 분리된 두개의 환경을 제공하여 보안이 필요한 정보를 격리된 환경에서 안전하게 보호하는 기술
-------------------------------------
국가사이버안전센터(NCSC)에서 '국가사이버안전관리규정'에 따른 사이버 위기 경보 발령 단계
1. 정상 단계 : 정상적인 활동 단계
2. 관심 단계 : 해외 사이버 공격 피해가 확산하여 국내 유입이 우려되며 바이러스/해킹 피해 발생 가능성이 증가하는 단계
3. 주의 단계 : 침해사고가 일부기관에서 발생했거나 다수기관으로 확산할 가능성이 증가하고 보안태세 강화가 필요한단계
4. 경계 단계 : 침해사고가 다수기관에서 발생했거나 대규모 피해로 발전될 가능성이 증가하고 다수기관의 공조가 필요
5. 심각 단계 : 침해사고가 전국적으로 발생했거나 피해규모가 대규모인 사고가 발생한 상황, 국가적 차원에서 대처 필요
-------------------------------------
보안솔루션 취약점 점검
1. default 계정 변경
2. default 패스워드 변경
3. 계정별 권한 설정
4. 공유계정 사용을 권장하지 않고 사용해야할 경우 접근 이력을 관리하여 책임 추적성 확보필요
5. 미사용 계정 제거
6. 보안장비 원격 접속가능 IP 설정
7. http,telnet이 아닌 SSH/HTTPS 암호화 접속
8. 관리자 계정 세션 타임아웃 설정
-------------------------------------
시스템 점검 도구 (nessus/nikto)
: 시스템,네트워크,어플리케이션 등에 존재할수 있는 보안 취약점을 사전에 점검하는 도구
네서스(nessus)
: 미국 테너블사가 개발 및 배포: 시스템, 네트워크, 웹 어플리케이션 등이 알려진 취약점에 대한 점검을 수행
: 취약점의 내용과 해결방법을 상세하게 제공
: 클라이언트/서버 구조로 동작
닉토(nikto)
: 웹 취약점 점검 도구
: 취약한 CGI 파일을 스캔하는 기능이 매우 뛰어나다
-------------------------------------
무결성 점검 도구 (tripwire)
: 의심스러운 변화가 감지되면 이를 검사하고 복구하는 도구
트립와이어 (tripwire)
: 리눅스/유닉스 환경에서 파일시스템 무결성을 점검하는 대표적인 도구
: 지정한 파일과 디렉터리 해시값을 DB에 저장해놓고 만약 해시값의 변화가 생길경우 감지한다
-------------------------------------
루트킷(Rootkit) 점검 도구(chrootkit)
: 루트킷은 자신의 존재가 탐지되지 않도록 숨기면서 관리자 권한의 획득과 백도어 등의 기능을 수행하는 코드와 프로그램의 집합을 의미한다(주로 관리목적의 실행파일로 변조)
- chrootkit
: 옵션없이 실행할 경우 모든 파일의 결과를 보여준다(INFECTED가 표시될 경우 변조되었음을 의미): chrootkit -q : quite모드로 변조된 파일정보만 보여준다
(숨겨진 프로세스) hidden process 탐지 원리
: 일반적으로 루트킷은 숨기고자하는 프로세스가 출력되는 부분만 제거하고 출력하도록 ps프로그램을 만들어 정상적인 pc프로그램과 교체하는 방식으로 동작: 루트킷 탐지 프로그램(chrootkit)은 ps 실행결과와 /proc 디렉터리에 있는 프로세스 정보를 비교하여 /proc 디렉터리에는 있지만 ps 실행시 보이지 않는 프로세스를 hidden process로 탐지한다.(시차로 인한 오탐이 있을수 있기 때문에 직접 확인이 추가로 필요하다)
* /proc 파일시스템
: 리눅스/유닉스 커널이 메모리상에 사용하고 있는 모든 자원들에 대한 정보들을 파일 형식으로 보관하는 파일시스템
: 프로세스, 커널 파라미터 등에 대한 상태정보를 보관하며 매 부팅시마다 새롭게 생성된다
: 현재 실행중인 개별 프로세스의 PID를 의미하는 다수의 숫자형식의 디렉터리가 생성되어있다
/proc/<pid>/exe : 프로세스 실행파일명 및 경로를 확인할 수 있는 심볼릭 링크 파일( ls -l exe 로 확인)
/proc/<pid>/cmdline : 프로세스를 실행한 명령어 및 전달인자를 담고있는 파일(cat cmdline 으로 확인)
(만약 공격자가 흔적을 지우기위해 실행파일을 제거했을 경우 exe 파일을 복사(cp)하여 복구가 가능하다)
(복구명령 : cp /proc/<pid>/exe 복구할파일명 ex : cp /proc/12342/exe /tmp/backdoor )
- RPM(Redhat Package Manager) 명령을 이용한 변조파일 확인
rpm -qf 파일절대경로 : 해당 파일이 어느 패키지에 포함되어 있는지 확인
rpm -V 패키지 이름 : V옵션은 해당 패키지를 통해 설치된 파일의 무결성(변경여부)을 검사한다
(결과에 S 가 있다면 파일 크기가 변경됬다는 의미)(결과에 5 가 있다면 MD5 체크섬이 변경됬다는 의미)(결과에 T 가 있다면 파일 수정시간이 변경됬다는 의미)
* RPM 패키지 재설치를 통한 변조파일 복구
강제로 특정 패키지 재설치 명령 : rpm -Uvh --force /root/rpm/패키지명
( 만약 재설치 오류가 날경우 공격자가 실행파일을 삭제하지 못하도록 속성을 설정했을 확률이 높다 )
( lsattr /bin/ps 명령을 통해 파일 속석 정보를 확인했을때 i 가 있다면 i는 변경 불가능 속성으로 속성을 변경해야 한다 )
( chattr -i /bin/ps 명령을 통해(-i는 i속성을 제거하겠다는 뜻) i 속성을 제거할 수 있다 )(a는 삭제 불가능 속성)
( 주요 실행파일이 변조되었다는 것은 이미 해킹을 당하여 root권한의 탈취 및 루트킷 설치가 의심되는 상황이고 감염된 파일만 교체하는것은 임시방편으로 최선의 방법은 해당 시스템을 다시 설치하는 것이다)
* 파일 속성이란 퍼미션과는 다른 개념으로 특정 파일 자체에 대한 허가를 의미한다(변경불가, 삭제불가 등의 다양한 속성을 부여하여 관리할 수 있다
- strace 명령을 이용하여 변조된 파일 확인
: 파일(프로그램)의 시스템콜과 시그널을 추적하는데 사용하는 디버깅도구: strace 명령은 특정 프로그램에 대해 open 시스템콜을 추적해 출력하며 출력결과에 의해 변조된 프로그램이 정상적인 프로그램과 달리 특정 파일을 오픈하고 있는지 확인할 수 있다.
ps 프로그램 확인 명령 : strace -e trace=open ps
-------------------------------------
'학습 > 알기사 정보보안기사 정리' 카테고리의 다른 글
10. 정보보안 일반 (1) | 2024.10.27 |
---|---|
9. 침해사고 유형별 시나리오 및 취약점 (0) | 2024.10.23 |
7. 서버 보안 (1) | 2024.10.18 |
6. 애플리케이션 보안 (0) | 2024.10.13 |
5. 네트워크 보안 (1) | 2024.10.05 |