반응형
터널링
- 정의 : 인터넷의 특정 구간에 별도의 채널을 생성하여 데이터를 전송하는 기법
- 목적 : 암호화 채널을 통해 보안성을 높이기 위해
- 특징
- 캡슐화
- 원래 패킷을 터널링 프로토콜에 캡슐화하여 전송
- 원래 데이터는 변경되지 않고, 터널링 프로토콜로 보호됨
- 캡슐화
VPN (Virtual Private Network)
- 정의 : 터널링을 통해 전용회선을 가진것 처럼 동작하는 가상 네트워크 구축
- 특징
- 터널링 사용
- VPN 은 터널링 기술을 활용하여 암호화된 통신을 제공
ex) SSL, IPSec, PPTP 와 같은 프로토콜 사용
- VPN 은 터널링 기술을 활용하여 암호화된 통신을 제공
- 터널링 사용
- 응용
- 외부 접속 : 회사 네트워크에 안전하게 접속하거나, 회사 지점 간에 안전한 통신을 제공
- 우회 접속 : 해외 VPN 서버를 통해 제한된 사이트나 자원에 접근
- 접속 사이트 변경 및 통신 내용 보안
- 접속 사이트 변경 및 통신 내용 보안
- 왼쪽 그림 (클라이언트-서버 VPN)
- 개별 사용자가 VPN 서버를 통해 회사의 내부 네트워크에 안전하게 접근하는 구조이다.
- 오른쪽 그림(사이트-투-사이트 VPN)
- 두 사설 네트워크 간에 암호화된 터널을 설정하여 안전한 데이터 전송을 보장한다.
- 이 두 방식 모두 데이터를 암호화하여 안전하게 통신하며, 사용 목적에 따라 선택된다.
VPN 실습
SSH Tunneling 을 이용한 Web Proxy 구축
이 그림은 SSH Tunneling을 사용하여 데이터를 암호화된 터널을 통해 전송하는 과정을 보여준다.
- 동작 과정
- 브라우저 → SSH 클라이언트 (PuTTY) : 브라우저는 HTTP 요청을 생성하여 SSH 클라이언트로 전달.
- SSH 클라이언트 → AWS 서버 : SSH 클라이언트는 HTTP 요청을 암호화하여 AWS 서버로 전달. (SSH 터널링)
- AWS 서버 : AWS 서버는 HTTP 요청을 해독하고, 이를 웹사이트로 전달.
- 웹사이트 → AWS 서버 : 웹사이트는 요청에 대한 응답을 생성하여 AWS 서버로 반환.
- AWS 서버 → SSH 클라이언트 → 브라우저
- AWS 서버는 웹사이트 응답을 SSH 터널을 통해 클라이언트로 암호화된 형태로 전송.
- SSH 클라이언트는 이를 복호화한 후 브라우저로 전달.
- 실습 순서
- AWS 인스턴스 생성
- Putty SSH Tunnel 설정
- SSH 재접속
- 브라우저 Proxy 설정
- 브라우저로 웹사이트 접속
AWS 인스턴스 생성
- SSH 클라이언트 인증용 키 쌍
- 잘 보관해야 함 => test.ppk
- 서버 IP 주소 획득
- 터미널 실행
- Putty 에서 서버 주소 저장
- 클라이언트 개인키 지정
- 서버 공개키 fingerprint 확인
- 로그인
- login as : ubuntu 입력
- SSH 터널을 위한 필요 프로그램 설치
- sudo snap install root-framework
- Putty SSH 터널 설정
- 5000번 포트를 SSH 서버로 forwarding 하도록 설정
- SSH 재접속
- window console 에서 터널링 확인
- netstat -an
- 127.0.0.1 : 5000 listening 이 나오면 됨
- Proxy 설정
- 윈도우즈 인터넷 옵션에서 프록시 서버 활성화
- socket(C) : localhost : 5000
- 브라우저로 웹사이트 접속
- ip 주소가 AWS 콘솔 주소로 바뀜
MITM (Man In The Middle) 공격
- 정의
- 통신 중간에 끼어들어 통신 상대방인 것처럼 위장하여 데이터를 도청하거나 변조하는 공격
- 공격자는 중간에서 사용자와 서버 간의 모든 통신 내용을 볼 수 있으며, 심지어 데이터를 수정하거나 위조 가능
SSL MITM
- 정의
- SSL/TLS 를 사용하는 HTTPS 통신 환경에서 이루어지는 중간자 공격
- 공격자는 HTTPS 의 암호화 연결을 우회하거나 위조 인증서를 사용해 데이터를 가로챈다.
- 공격 과정
- 클라이언트 → 공격자 서버 (AWS로 위장):
- 클라이언트는 HTTPS를 통해 안전한 서버에 연결하려고 하지만, 공격자의 서버(AWS로 위장)와 먼저 연결됨
- 공격자는 위조된 HTTPS 인증서를 사용하여 자신이 신뢰할 수 있는 서버인 것처럼 속임
- 공격자 서버 → 웹사이트:
- 공격자는 클라이언트의 요청을 받아 실제 웹사이트로 전달.
- 웹사이트의 응답 데이터를 다시 클라이언트로 전달하지만, 중간에서 데이터를 열람하거나 수정할 수 있음.
- 클라이언트 → 공격자 서버 (AWS로 위장):
공격자 서버로 유도하는 방법
- ARP 스푸핑
- 정의 (Address Resolution Protocol)
- IP 주소를 MAC 주소로 매핑하기 위한 네트워크 프로토콜
- ARP 프로토콜의 취약점을 이용해 공격자가 클라이언트와 서버 사이의 트래픽을 중간에서 가로챔
- 공격자는 클라이언트가 자신을 서버로 인식하도록 ARP 테이블 변조
- 정의 (Address Resolution Protocol)
- DNS 스푸핑
- DNS 요청을 변조하여 공격자의 서버로 연결되도록 유도
- hosts 파일 변경
- 클라이언트 로컬 hosts 파일을 수정하여 특정 도메인이 공격자의 서버를 가리키도록 설정
ex) 192.168.1.100 www.example.com- 위와 같이 설정하면 클라이언트가 www.example.com 에 접근 시 공격자의 서버(IP : 192.168.1.100) 로 연결
- DNS 보다 먼저 참조하는 hosts 파일을 변경
- 클라이언트 로컬 hosts 파일을 수정하여 특정 도메인이 공격자의 서버를 가리키도록 설정
hosts 파일 변경으로 SSL MITM 실습
- 관리자 권한으로 메모장 실행
- C:\window\system32\drivers\etc\hosts 열기
- 자기 aws ip 주소 hosting.whois.co.kr
- 자기 aws ip 주소 member.whois.co.kr
- MITM 프로그램 설치 및 실행
- sudo apt install dsniff
- sudo webmitm
- 처음 실행 시 SSL 서버용 인증서 생성 (webmitm.crt)
- 키와 인증서 모두 포함
- 이후 실행 시 위 인증서 사용하여 웹서버처럼 동작
- 오류 발생, 키 길이 부족
- 처음 실행 시 SSL 서버용 인증서 생성 (webmitm.crt)
- CA 키 쌍 생성, 인증서 SS
- openssl 간략화 도구 설치
- sudo apt install easy-rsa
- 폴더 및 script 설치
- make-cadir ca
- pki 폴더 설치
- cd ca (이후 명령어는 다 ca 에서 진행)
- ./easyrsa init-pki
- CA 키 쌍 생성 및 인증서 (ca/pki/ca.crt)
- ./easyrsa build-ca nopass
- openssl 간략화 도구 설치
- 서버 인증서 생성
- 서버 키 쌍, 인증요청서 생성 : CN 은 자기 이니셜
- ./easyrsa gen-req 자기이름 nopass
- 서버 인증서 발행
- ./easyrsa sign-req server 자기이름
- 서버 키 쌍, 인증요청서 생성 : CN 은 자기 이니셜
- 인증서와 키 파일 내용 (PEM 부분) 을 webmitm.crt 의 PEM 부분에 overwrite 하기
- 키 : /ca/pki/private/자기이름.key
- 인증서: /ca/pki/issued/자기이름.crt
- sudo sh -c 'cat pki/private/자기이름.key > ../webmitm.crt'
- sudo sh -c 'awk '/-----BEGIN CERTIFICATE-----/,/-----END CERTIFICATE-----/' pki/issued/자기이름.crt >> ../webmitm.crt'
- sudo sh -c 로 하는 이유는 리다렉션(>, >>) 에 sudo 권한이 적용되지 않기 때문이다.
- awk 명령 : 특정부분 추출 가능
- MITM 실행 및 포트 열기
- sudo webmitm 실행
- sudo webmitm -dd : 더 많은 정보 출력
- AWS https 포트 개방
- sudo webmitm 실행
- 다시 접속하기
- SSL 서버 인증서 오류 2가지
- 신뢰하지 못하는 CA 가 발행
- CN domain name 과 다름
- CN 을 도메인 이름과 맞추고
- CA 인증서를 가져와서 trust list 에 넣은 후 사이트 접속하면, 인증서 신뢰됨
피싱, 파밍
- 사용자를 가짜 웹사이트로 유도하여 민감한 정보를 탈취하는 공격 방식
- 가짜 사이트를 만들어서 운용
- 하지만, MITM 은 진짜 사이트 중계
- MITM 은 relay 이기 때문에 모든 인증 수단을 중계할 수 있음
- 대응 방안은 지정 단말
- -> IP spoofing, MAC spoofing 에 의해 무력화됨
- MITM 은 relay 이기 때문에 모든 인증 수단을 중계할 수 있음
- 하지만, MITM 은 진짜 사이트 중계
반응형
'3학년 2학기 학사 > 네트워크 보안' 카테고리의 다른 글
[네트워크 보안] #14. 웹 보안 (1) | 2024.12.10 |
---|---|
[네트워크 보안] # 13. 파이어월 (0) | 2024.12.09 |
[네트워크 보안] # 12. 악성 코드 (1) | 2024.12.09 |
b[네트워크 보안] # 11. 이메일, S/MIME (0) | 2024.12.06 |
[네트워크 보안] #9. TLS, HTTPS, SSH (0) | 2024.12.04 |