wonder

정보보안 스터디 - 12주차 7일 - 방화벽 외부/내부 공격 차단 본문

Security/네트워크 보안

정보보안 스터디 - 12주차 7일 - 방화벽 외부/내부 공격 차단

wonder12 2023. 1. 5. 02:23

ettercap -T -M dhcp:192.168.20.20-30/255.255.255.0/192.168.20.50

피해자가 ip할당을 받습니다.

ipconfig /release

ipconfig /renew

☞ 방화벽 기본 설정

 

회사 인트라넷에서 일반 라우터만 가지고도 방화벽 구성이 충분히 가능합니다.

 

내부 > 외부

토토 등 불법 사이트 차단
ip access-list extended In-Filter
deny ip 192.168.20.0 0.0.0.255 host 불법사이트주소 log-input
deny ip 192.168.20.0 0.0.0.255 host 불법사이트주소 log-input

나머지는 허용
200 permit ip any any

int e0/1
ip access-group In-Filter in

 

 

외부 > 내부

회사 웹서버가 있기 때문에 웹, https, dns 제외하고는 모두 차단합니다.
ip access-list extended In-FW
permit tcp any host 192.168.168.20.200 eq 80
permit tcp any host 192.168.168.20.200 eq 443
permit udp any host 192.168.168.20.200 eq 53

200 deny ip any any

int e0/0
ip access-group In-FW in

ping이든 http접속이든 내부에서 나갔던 요청에 대한 응답은 허용해야합니다.

가능한방법은 RACL, CBAC 두가지가 있습니다. 나갈 때 상태메세지를 주고, 들어올떄 검증합니다.

CBAC을 주로 사용합니다.

 

 

Reflect ACL
ip access-list extended Out-FW
permit ip 192.168.20.0 0.0.0.255 any reflect RACL


ip access-list extended In-FW
40 evaluate RACL


int e0/0
in access-group Out-FW out
CBAC

ip inspect name CBAC tcp 
ip inspect name CBAC udp
ip inspect name CBAC icmp

int e0/0
ip inspect CBAC out

 

그리고 외부에서 일하는 근무자가 있을 수 있으니 허용시켜줘야합니다.

telnet으로 로그인해서 인증되는 ip만 허용시킵니다. 

NAC
conf t
username admin password cisco
username admin autocommand access-enable host timeout 10

line vty 0 4
 login local


ip access-list extended In-FW
40 permit tcp any host 192.168.100.1 eq 23
50 dynamic NAC permit ip any 192.168.20.0 0.0.0.255

 

 외부 공격자의 공격

이 때 가능한 공격은

열려있는 웹 포트로의 ip fragments 공격

hping3 -I eth0 192.168.20.200 -a 1.2.3.4 --flood -p 80 -d 64000

 

tcp syn 플러딩

hping3 -I eht0 --syn 192.168.20.200 -a 1.2.3.4 --flood -p 80

 

udp 플러딩

hping3 -I eht0 --udp 192.168.20.200 -a 1.2.3.4 --flood -p 53

 

이 있습니다.

 

대응 방안으로는

fragment로 보내면 차단하는 방법이있습니다.

ip access-list extended In-FW
5 deny ip any host 192.168.20.200 fragments

 

offset이 쌓이지 않습니다.

여기서 ip fragments는 프로토콜(tcp,udp,icmp) 차단에 상관없이 보낼 수 있습니다.

 

 

tcp syn 플러딩

tcp syn 플러딩은 

syn> 요청만 계속 보내서 

<ack syn 로 응답이 와도

rst > 로 응답 연결을 하지 않고 끊어버리기 때문에

응답 연결을 하지 않을 경우 차단해버릴 수 있습니다.

 

응답을 서버에까지 가지 않고 방화벽이 서버인것처럼 syn 패킷을 받아서 검증합니다.

30초동안 응답하지 않으면 ack+syn을 보내던 것을 rst을 보내어 안받는다는 신호를 줍니다.

그것을 intercept라고합니다.

 

access-list 110 permit tcp any host 192.168.20.200

ip tcp intercept list 110

ip tcp intercept mode intercept
ip tcp intercept connection timeout 30

 

 

udp 플러딩

QOS 패킷 송수신양을 조절 하여

일정량을 초과할경우 드랍합니다. 인터페이스에 직접 설정합니다.

 

access-list 120 permit udp any host 192.168.20.200

int e0/0

rate-limit input access-group 120 8000 1500 2000 conform-action transmit exceed-action drop

포트보안이 가장 중요한 핵심키워드입니다.

 

 

 

 내부 공격자의 공격

 

L2 스위치에 보안 설정을 하여 막습니다.

 

mac 플러딩 공격 

변조한 모두 다른 mac 주소를 스위치에 학습시켜 arp 테이블 최대갯수에 도달하도록 하고 부하를 일으킵니다.

최대갯수에 도달하면 다른 시스템에 영향을끼칩니다.

 

macof -i eth1 
이더넷 기반이라 스위치 까지 갑니다.

show mac address-table 
show mac address-table count
많은 mac이 학습되었습니다.


show memory statistics
show process cpu
부하 확인

 

대응방안

port-security 

해당 포트에 대해서만 제한할 수 있습니다.

지정된 mac말고는 변조한 mac을 보낼 수 없도록합니다.

SW
int e1/0
switchport mode access
switchport port-security
switchport port-security maximum 2
switchport port-security max-address 칼리
switchport port-security mac-address 칼리vmnet과 연결된 실제PC

swithcport port-security violation shutdown
show run int e1/0
show port-security int e1/0
show int e1/0
shutdown상태를 확인합니다.
show int status err-disabled
닫힌 이유까지 확인합니다.

int e1/0
sh
no sh
show int e1/0 > up 확인

만약 공격이 생겨 차단된다면 공격이 시도되었다고 알 수 있고

내부자의 공격인지, 악성파일을 다운받은 건지 시스템 점검을 합니다.

 

 

 

 BPDU 공격

BPDU는 스위치끼리 STP(spanning-tree) 작동에서 hello 메세지를 보내 부하를 일으키는 것입니다.

 

yersinia -G & > STP > bpdus (DOS)

show ip mac address-table
이것도 역시 mac이 학습되었습니다.

부하확인

 

대응방안

bpdu guard, port-security

bpdu가 들어오면 포트를 셧다운 시킵니다.

사실 스위치끼리 공유하는 메세지인데 시스템이 보낼일이 없기 때문입니다.

 

BPDU guard
int e1/0
spanning-tree bpduguard enable

 

 

 dhcp 작동원리

IP주소가 없는 클라이언트는 mac주소 밖에없기 때문에

브로드 캐스트로 서버에 discover 요청을 보낼 수 밖에 없습니다.

그러면 서버도 브로드캐스트로 dhcp정보를 전송합니다.

ack까지 받아와야 실제 ip를 할당 받을 수 있습니다.

 

 

 dhcp 스푸핑

dhcp서버가 있음에도 불구하고 

공격자가 dhcp서버라고 속이는 offer 메세지를 계속 보내면

피해자가 ip주소를 받아올 때 공격자가 주는 정보를 받아옵니다. ip대역은 제대로 주지만 게이트웨이를 본인으로 해서 주고,  dns서버를 본인으로 하는 변조가 가능합니다.

결국 게이트웨이를 속이면 외부로 접속할 때 패킷이 공격자를 거치기 때문에 확인이 가능합니다.

그리고 dns서버를 속이면 정상적인 도메인으로 요청을 하더라도 악성 사이트로 리다이렉트가 가능합니다.

 

ettercap -T -M dhcp:192.168.20.20-30/255.255.255.0/192.168.20.50
피해자가 ip할당을 받습니다.
ipconfig /release
ipconfig /renew

mac주소를 변조해서 보내는 거이므로
show mac address-table 로 확인합니다.

 

 

 

 dhcp 플러딩

공격자가 dhcp discover 요청을 계속해서 보냅니다.

~.255 주소인 브로드 캐스트로 보내기 떄문에 네트워크내의 모든 시스템에 부하가 갑니다.  

yersinia -G & > dhcp > sending discover


mac주소를 변조해서 보내는 거이므로
show mac address-table 로 확인합니다.

 

 

dhcp spoofing, flooding 대응방안

 > dhcp snooping binding

지정된 mac주소에 대해서만 offer 메세지를 줄 수 있도록 제한합니다.

 

실제 dhcp서버와, 게이트웨이 인터페이스에 대해서만

offer메세지가 들어오도록 해두고

이외의 변조된 mac 주소에서 offer메세지이든 discover요청이든

mac변조가 일정량 이상 들어오면 알림을 보내고 shutdown합니다.

 

port보안을 해서 mac 주소가 오면 shutdown해도 상관없습니다.

ip dhcp snooping
ip dhcp snooping vlan 1
no ip dhcp snooping information option

int range  e0/0, e0/2
ip dhcp snooping trust

int range e0/1, e0/3, e1/0
ip dhcp snooping limit rate 50

 

스푸핑> show ip dhcp snooping statistics 
드랍확인
show int e1/0
show int status err-disabled

 

 

show ip dhcp snooping binding
dhcp snooping 설정을 해놓으면
스위치에서 할당받은 mac에대한 정보를 확인할 수 있습니다.


 dhcp 할당 정보가 필요한 이유

arp spoofing 대응방안
> Dynamic ARP Inspection
공격자가 보내는 arp 응답의 mac주소가 실제 mac주소랑 다를 때 차단합니다.

이 때,
네트워크 주소를 할당받은 클라이어트가 많을 때 
 설정에 많은 클라이언트를 일일이 등록하기에는 어렵기 때문에 
binding에서 참조해옵니다.

ip arp inspection vlan 1

arp access-list STATIC
permit ip host 192.168.20.50 mac host 맥주소
permit ip host 192.168.20.100 mac host 맥주소
permit ip host 192.168.20.200 mac host 맥주소
permit ip host 192.168.20.201 mac host 맥주소

ip arp inspection filter STATIC vlan 1

int e1/0
ip arp inspection limit none
arp 스푸핑> show ip arp inspection statistics 
드랍확인

 

 

 

 

 dchp starvation  ip 고갈 공격

실제 dhcp 서버가 할당할 수 있는 ip대역을 모두 받아온다면 고갈되어 실제 피해자는 사용하지못할 것입니다.

모두 다른 mac주소를 만들어서 요청을 보낸다면 모두가 할당 받아올 수 있습니다.

dhcpx -A -D 192.168.20.200  
서로 다른 mac주소로 할당 받아옵니다.

 

실제 클라이언트에서 받아오지 못하면 168.254.~ 로 ip주소가 뜹니다. 

 

서로다른 mac주소이지만 discover 메세지를 많이 보내서 부하를 일으키는 것도아니고
discover 요청 메세지를 보내 할당받아오는 것은 못막기 때문에
dhcp snooping 방법으로는 공격을 막기가 어렵습니다.


그래서 따로 port-security 를 사용하여 mac 변조를 막습니다.
mac을 정의하고 설정된 mac만 허용합니다.
그게 아니라 변조되면 shutdown합니다.

 

 

 

 

 

 

 

 

 

 

 

Comments