공격 유형
- 능동형(Active) vs 수동형(Passive) 공격
능동형 공격 : 시스템의 자원을 바꾸거나 영향을 미침
ex) 악성 파일 심기, 데이터 변경, 네트워크 방해, 서비스 거부
수동형 공격 : 시스템 자원에 영향을 미치지 않는 대신 정보를 알아내거나 이용
ex) 도청, 트래픽 분석과 같은 수동형 공격은 네트워크에 실질적인 해를 가하지는 않지만 해커는 도청 기법을 사용해 능동형 공격에 필요한 정보를 획득함
- 내부(Inside) vs 외부(Outside) 공격
보안 경계란 시스템이나 네트워크를 신뢰할 수 있는 부분과 그렇지 못한 부분으로 구분하는 개념
내부 공격 : 보안 경계 내부에서 시작해 허용되지 않은 형태로 자원에 접근하는 것으로 내부 직원에 의해 일어나는 경우가 많음
ex) 패스워드 훔치기, 산업 스파이, 단순한 오용
외부 공격 : 보안 경계 외부에서 허가되지 않은 사용자에 의해 시작되는 경우가 많음
ex) 원격 접근에 의해 이뤄지는 경우가 많음
- 로컬(Local) vs 원격(Remote) 공격
로컬 공격 : 네트워크 상에 존재하는 컴퓨터 계정을 이용하여 공격
원격 공격 : 네트워크 외부에서 공격하는 것
- 중간자 공격
공격자가 두 명의 유효한 사용자 사이에 끼어들어서 정보를 도청하거나 변조하는 형태의 공격
- 치고 빠지기 (Hit-and-Run) 공격 vs 지속(Persistent) 공격
치고 빠지기 공격은 : 짧은 시간 동안 시스템을 혼란에 빠뜨림
지속 공격 : 공격이 오랜 시간 지속됨
- 전수조사 공격
예 : 패스워드를 찾으려는 해커는 패스워드를 구성하는 모든 문자의 조합을 시도함으로써 해킹을 계속 시도
키 기반의 암호화
암호화의 역할 : Confidentiality(기밀성), Authenticity(신뢰성), Integrity(무결성)
-> Key를 이용한 암호화 기술로서 해결
대칭키 암호화 방식
- 암호화와 복호화키가 동일
- DES, 3DES 등의 프로토콜이 해당됨
대칭키 암호화 실습
VMware의 UbuntuServer 터미널 열기
암호화
echo 'this is the plain text' > p1.txt //평문 p1 생성
openssl enc -e -des3 -salt -in p1.txt -out cip.bin //암호화
enc -e -des3 : des3 방식으로 암호화
-in p1.txt -out cip.bin : p1.txt 파일의 암호화한 결과를 cip.bin 파일에 저장
복호화
openssl enc -d -des3 -in cip.bin -out p2.txt
enc -d -des3 : cip.bin 파일을 p2.txt 파일로 복호화
비대칭키 암호화 방식
- 암호화키와 복호화키가 다름
비대칭키 암호화 실습
VMware의 UbuntuServer 터미널 열기
개인키 생성
openssl genrsa -out private.pem 2048
RSA로 개인키 private.pem 생성
pirvate.pem 키는 2048bit 길이로 이 숫자가 높을수록 안전
공개키 생성
openssl rsa -in private.pem -out public.pem -outform PEM -pubout
개인키 private.pem에 대한 공개키 public.pem 생성
공개키를 자신에게 정보를 제공할 사람에게 전송
공개키로 암호화
echo 'coding everybody' > file.txt //평문 file.txt 생성
openssl rsautl -encrypt -inkey public.pem -pubin -in file.txt -out file.ssl
file.txt의 내용을 RSA 방식으로 암호화한 파일 file.ssl 생성
개인키로 복호화
openssl rsautl -decrypt -inkey private.pem -in file.ssl -out decrypt.txt
해시(Hash)
하나의 문자열을 이를 상징하는 짧은 길이의 값이나 키로 변환하는 것
보안에서는 해시를 무결성 확인을 위한 알고리즘으로 사용
해시 값을 통해 해시 되기 전의 값을 추측하는 것이 불가능
***암호화 알고리즘 : 복원 가능(양방향성 알고리즘)
해쉬 알고리즘 : 복원 불가능(단방향성 알고리즘)
Public Key Infrastructure
- 메시지의 암호화 및 전자서명을 제공하는 복합적인 보안 시스템 환경
- 공개 키를 효과적으로 운용하기 위해 정해진 만은 규격이나 선택사양
: 디지털 인증서 생성, 관리, 저장, 배분, 취소(폐지)
에 필요한 하드웨어, 소프트웨어, 사람 , 정책 및 절차라고 정의
Metaspolitable(Target)
파일 다운로드 : sourceforge.net/projects/metasploitable/
VMware 부팅전 세팅 -> 네트워크 어댑터 VMnet0
ID&Password :msfadmin
터미널 열기
Kali (Attacker)
파일 다운로드 : www.offensive-security.com/kali-linux-vm-vmware-virtualbox-image-download/
Kali Linux 64-bit Vmware(Kali Linux VMware 64-Bit (7z)) 다운로드
VMware 부팅전 세팅 -> 네트워크 어댑터 VMnet0
ID&Password :kali
네트워크 설정
시계 옆의 네모 아이콘 우클릭 > Edit Connections... > Ethernet Device eth 0 > IPv4 Settings 탭 이동 >Method : Manual, IP address 192.168.10.50 /24, 게이트웨이 192.168.10.2, DNS 192.168.10.2
터미널 열기
sudo su -
kali
vi /etc/apt/sources.list
deb-src http://http.kali.org/kali kali-rolling main 주석 제거
apt update
apt -y install dsniff
WinClient에서 Ping 테스트
Client 네트워크 설정은
IP : 192.168.10.40
서브넷마스크 : /24
기본 게이트웨이 : 192.168.10.2
DNS 서버 : 192.168.10.2
스니핑 (Sniffing)
개념
:네트워크 트래픽을 도청하는 과정
: 네트워크 상에서 자신이 아닌 상대방의 패킷 교환을 엿듣는 것
: 데이터를 도청, 수집해서 데이터를 분석
: 수동적 공격 (직접적인 피해를 발생시키지는 않음)
용도
: 네트워크 패킷을 모니터링해서 송신지와 수신지의 IP 주소를 획득
: 포트 번호를 식별하고 송수신되는 메시지를 확인
: 클라이언트에 전송된 패킷에 대해서 서버가 어떤 식으로 반응하는지 확인 가능
스니핑 - 모드
일반 모드
: 자신의 컴퓨터로 전송되는 패킷만 수신 받고 관련 없는 패킷은 삭제(drop)
프러미스큐어스 모드
: MAC 주소와 IP 주소에 관계없이 모든 패킷을 스니퍼에게 넘겨주는 것
: 리눅스나 유닉스 등의 운영체제에서는 랜 카드에 대한 모드 설정이 가능
: 윈도우에서는 스니핑을 위한 드라이버를 따로 설치 (wincap 또는 npcap)
바이패스 모드
: 패킷에 대한 분석까지 하드웨어로 구현되어있는 랜 카드
: 기가바이트(GByte) 단위의 백본 망에서 스니핑을 하기 위한 장비로 고가임
프러미스큐어스 모드로 변경
ifconfig eth0 promisc
ifconfig
Sniffer TCPDump
리눅스에서 가장 기본이 되는, 하지만 강력한 스니핑 툴
처음에는 네트워크 관리를 위해 개발되었기 때문에 관리자 느낌이 강함
TCP Dump로 획득한 증거 자료는 법적 효력이 있음
tcpdump -i eth0 -xX host 192.168.10.2
Sniffer Fragrouter(프래그 라우터)
스니핑을 보조해주는 툴로, 받은 패킷을 전달하는 역할
스니핑을 하거나 세션을 가로챘을 때 공격자에겍 온 패킷을 정상적으로 전달하려면 패킷 릴레이가 반드시 필요함
fragrouter
Sniffer DSniff(디스니프)
스니핑을 위한 다양한 툴이 패키지처럼 만들어진 것
알트보어와 함께 대표적인 스니핑 툴로 알려져 있음
암호화된 계정과 패스워드까지 읽어낼 수 있음
dsniff
허브 환경에서 스니핑
허브는 flooding 기반의 데이터 전송 장비
Normal 모드인 경우 MAC주소를 보고 패킷은 버려지기 떄문에 트래픽 오버헤드는 발생하지 않음
프로미스큐어스 모드로 변환 후 동작 시 버려지는 패킷 없이 스니핑 가능
스위칭 환경에서의 스니핑
스위치는 각 장비의 MAC 주소를 확인하여 포트에 할당
자신에게 향하지 않은 패킷 외에는 받아볼 수 없어 스니핑을 막게됨
SPAN(Switch Port Analyzer)/Port Mirroring 기능
: 스위치를 통과하는 모든 트래픽을 볼 수 있는 기능
: 송신 포트의 트래픽을 분석 장비 포트로 자동 복사해주는 기술
: 관리적인 목적으로 사용하지만 공격자가 물리적으로 해당 포트에 접근 가능
* 태핑(tagging 또는 Splitter(스플리터))
: 허브와 같이 포트를 모니터링하기 위한 장비
: SPAN의 비효율적 모니터링 어려움을 해결 하기 위한 기술
스위치 재밍(Switch Jamming)
: MAC address Flooding 또는 MACOF(MAC Overflow) 공격
: MAC 주소 테이블의 버퍼를 오버플로우시켯서 승위치의 허브화 공격
: 스위치의 Fail Open 정책을 이용한 공격
* Fail Open 정책 : 장애 발생 시 모든 트래픽 전송을 허용하는 정책 (가용성을 보안성보다 우선 시 하는 정책)
* Fail Close 정챌 : 장애 발생 시 모든 트래픽 전송을 차단하는 정책 (가용성보다는 보안성을 우선시 하는 정책)
스푸핑(Spoofing)
'속이다'는 의미
인터넷이나 로컬에서 존재하는 모든 연결에 스푸핑 가능
공격자가 자신을 공격 대상자에게 노출 시키지 않고 제 3의 사용자인것처럼 MAC 주소, IP 주소 등을 속이는 작업
정보를 얻어내기 위한 중간 단계의 기술로 사용하는 것 외에 시스템을 마비 시키는데 사용할 수 있음
ARP 스푸핑
MAC 주소를 속이는 것(2계층에서 작동해 공격 대상이 같은 랜에 있어야 함.)
- 클라이언트의 MAC 주소를 공격자가 자신의 MAC 주소로 변조
- ARP 테이블을 갱신하는 ARP 프로토콜의 취약점을 이용
- ARP 스푸핑 공격을 이용해 ARP 캐시 테이블의 공격 정보를 유지
- ARP 캐시 포이즈닝 : ARP 캐시 테이블 내용을 몰래 변경하는 작업
ARP 스푸핑 보안 대책
arp -a
현재 MAC 주소 테이블 확인
arp -s <IP주소> <MAC주소>
뒷부분에 PERMPermanet 또는 static이 있음
IP와 MAC 주소 값은 ARP 스푸핑 공격이 들어와도 변하지 않음
댓글