일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 워게임
- 웹해킹
- 웹
- Webhaking
- 리버싱
- 시스템
- 알고리즘
- 소프트웨어
- System
- webhacking
- XSS
- bee-box
- hacking
- 드림핵
- CodeEngn
- 순서도
- 소프트웨어보안
- 네트워크
- ftz
- TCP
- reversing
- network
- dreamhack
- 모의해킹
- 네트워크보안
- 해킹
- Web
- 비박스
- 시스템해킹
- WarGame
- Today
- Total
Without a Break
Firewall 본문
Firewall
- 신뢰하지 않는 외부 네트워크 접근/공격으로부터 내부를 보호
- 공격에 대해 각 호스트를 업그레이드/교체하기 보다 방화벽이라는 솔루션을 통해 시스템 전체의 기본적인 방어를 제공
- 로깅을 통한 보안 관리, 추적 등에 용이
정의
1. 방화벽이 유일한 통로가 되어야 함
2. 인증된 트래픽만 통과
3. 공격에 대한 방어
Capabilites
접근 제어
- 방화벽의 가장 기본적이고 중요한 기능
- 통과시킬 접근과 차단할 접근을 관리자가 명시하면 방화벽 실행
- 구현 방법에 따라 패킷 필터링 방식과 프록시 방식으로 나뉨
로깅과 감사 추적
- 모니터링을 위한 location 제공
- 로깅: 방화벽을 통과하는 패킷 및 연결에 대한 정보나 관리자의 설정 변경 정보를 저장
- 감사 추적: 시스템 내에 저장된 로그를 이용해 허용되지 않은 접속 시도, 연결 등 확인
인증
- 메세지 인증: 전송되는 메세지에 대한 신뢰성 보장
- 사용자 인증: 패스워드 같은 단순 인증부터 OTP, 토큰 기반 등의 높은 수준 인증까지 가능
- 클라이언트 인증: 특수한 접속을 요구하는 호스트 자체가 정당한 접속 호스트인지 확인
데이터 암호화
- 방화벽에서 다른 방화벽까지 전송되는 데이터를 암호화해서 보냄 (VPN 이용)
한계
- 바이러스 차단 불가
- 방화벽은 패킷의 데이터 내용 자체는 검사하지 않기 때문
- 내부 공격 차단 불가
- 경계에 대한 보안 정책을 수행할 뿐 내부 공격자에게 보안 정책을 적용할 수 없음
- 노트북, 포터블 저장기기 등이 외부에서 감염되어 내부에서 사용될 경우
- 자신을 통하지 않은 통신에 대한 제어 불가
- 새로운 형태의 공격 차단 불가
- 방화벽을 우회하는 공격은 방어 불가
정책
User control : 액세스를 시도하는 사용자의 역할에 따라 데이터에 대한 액세스를 제어한다.
- 방화벽 경계 내의 사용자에게 적용
Service control : 호스트에서 제공하는 서비스 유형별로 액세스를 제어
- 네트워크 주소, 연결 프로토콜 및 포트 번호를 기준으로 적용
Direction control : 요청이 시작되고 방화벽을 통과할 수 있는 방향을 결정
- 트래픽이 "inbound"인지 또는 그 반대인 "outbound"인지 여부를 알려줌
동작
- Accepted
- Denied
- Rejected: Denied와 비슷하지만, ICMP 패킷을 통해 source 제공
- Ingress filtering: incoming traffic 검사
- Egressing filtering: outgoing traffic 검사
Type
① Packet Filter Firewall : 로깅하지 않아서 SYN Flooding 공격 막지 못함
- 응용 데이터의 payload 안봄
- forward/discard 패킷 표시
- 존재하는 stream이나 트래픽의 패킷을 신경쓰지 않음
- ACL (Access Contorl Lists)
- 장점: 처리 속도 빠름, 기존 응용에 연동이 쉬움, 비용이 쌈
- 단점: TCP/IP 구조적 취약점, 데이터 공격 차단 불가능, 헤더 조작 가능
② Stateful Firewall : 허용된 IP 주소라도 time out 후(연결이 끝난 후)에 오면 차단
- 종료될때까지 모든 연결 모니터링으로 추적
- 연결 상태 테이블 유지
- stateless/stateful 패킷 필터
- 장점: 보안 우수, 새 서비스 적용 용이
- 단점: 구축이 복잡해 저장 공간이 많이 필요, 비용이 많이 듦, 관리가 필요
③ Application Proxy Firewall : 패킷의 허용/거부 결정을 위해서 헤더뿐만 아니라 응용 계층도 봄
- 응용 계층까지 보기 때문에, 각 응용에 SW 방화벽이 필요
- 클라이언트의 연결이 프록시에서 종료되면, 프록시에서 대상 호스트로 별도의 연결이 시작된다.
- 입출력 제어, 응응/서비스에서 오가는 접근 제어
- 장점: 데이터 검사 기능이 있어 보안성이 우수, 로깅 및 감사기능 강화, 인증 기능 가능, 부가 기능 구현 용이
- 단점: 처리 속도 느림, 새 서비스는 새 프록시를 추가해야함 => 유연성 부족
④ Circuit-level Proxy Firewall : 응용 계층까지 보지 않고 소켓 전송까지만 봄
- 필터링은 세션 계층이나 그 아래 계층의 기반
- 프록시는 egress 필터링을 피하는데 사용됨.
- 소스 IP 주소 숨겨짐 => Anonymizing Proxy
- 장점: 단순, 서비스의 유연성이 우수, 서비스별로 프록시가 필요하지 않음
- 단점: 응용 서비스의 접근 통제 로그 기록이 제공되지 않음
Locating Firewall
- 보통의 운영체제에서의 독립 기기의 방화벽 기반
- 사전 구성된 보안 어플라이언스로 제공
Types of Firewall Basing
① Bastion Host
- 네트워크의 중요한 강점
- 여러 application/circuit level 게이트웨이 호스트
- 각 프록시는 기능, 호스트 액세스를 제한 가능하고 독립적, 비제한적
- 필수 서비스만 제공하는 안전한 운영체제 실행
- 프록시나 호스트에 접근하는 사용자는 접근권한이 필요
② Host-based
- 특정 호스트에 맞춤형 필터 제공
- 내/외부 공격 막음
- 조직 방화벽 추가 보호 계층
③ Network Device Firewall
- 추가적인 보호 기능 제공
- 필터링 속도 빠름
- 라우팅 펌웨어만으로는 접근제어가 어려워 Bastion 호스트와 함께 사용
④ Virtual Firewall
- 공통 물리적 하드웨어를 공유하는 가상화된 서버,라우터,스위치 등등
⑤ DMZ Network : 비무장 영역
⑥ Distributed Firewall Configuration : 분산된 방화벽 배열
More on Firewall
침입 탐지 시스템 (IDS)
- deep 패킷 검사
- 여러 패킷 간 상관 관계 검사
- 포트 스캐닝, 네트워크 매핑, DoS 공격 등등
침입 방지 시스템(IPS)
- 트래픽 차단할 수 있는 인라인 호스트/네트워크 기반 IDS
- IDS 기능 방화벽에 추가
- 방화벽처럼 트래픽 block 가능
- IDS 알고리즘 사용
통합 위험 관리(UTM)
- 여러 보안 기능이 한 박스에 통합
Evading Firewall
SSH Tunneling
터널링 : 데이터 스트림을 인터넷 상에서 가상의 파이프로 전달시키는 기술
- 패킷 내 터널링 대상을 캡슐화시켜 목적지로 전송
- 암호화 기법 적용이 일반적
- 두 노드(또는 네트워크) 간에 가상의 링크를 형성
- 오버레이 네트워크 구성 가능
방화벽 피하기 => Local port forwarding
- Host A의 SSH 클라이언트가 사용자 지정 로컬 포트를 검사 → 응용 클라이언트가 이 포트로 접속 시 SSH 클라이언트가 데이터를 Host B의 SSH 서버에 전송 → 다시 SSH 서버가 응용 서버로 전송
Dynamic Port Forwarding
- SSH로 설정한 Dynamic port forwarding은 SOCKS 프록시 설정
- SSH는 TCP 데이터를 터널로 기계한테 전송
Using VPN
- 네트워크 내부의 컴퓨터와 외부의 컴퓨터 사이에 터널 생성
- 터널 트래픽은 암호화 => 방화벽은 터널 내부를 보지 못하고 필터링도 불가능
- 원격의 두 지점을 내부 네트워크처럼 이용 (오버레이 네트워크)
'Network > 네트워크보안과프로그래밍' 카테고리의 다른 글
Attacks on the TCP protocol (0) | 2022.11.21 |
---|---|
BSD Sockets API-based Network Programming (0) | 2022.11.06 |
TCP Connection Establishment and Termination (0) | 2022.10.07 |
TCP: Transmission Control Protocol (0) | 2022.09.30 |
UDP: User Datagram Protocol (0) | 2022.09.30 |