침입 탐지 시스템(IDS; Intrusion Detection System)
- 컴퓨터나 네트워크의 이벤트들을 모니터링하여 침입발생 여부를 탐지하고 대응
- 로컬 네트워크나 호스트에 위치하여 자원의 무결성, 기밀성, 가용성 저해 행위 탐지
- IDS 실행단계
(1) 데이터 수집(Raw Data Collection): 탐지대상으로부터 생성되는 감사 데이터 수집
(2) 데이터 가공 및 축약(Data Reduction and Filtering): 침입 판정 가능하도록 전환
(3) 침입분석 및 탐지: 핵심 단계이며, 비정상적 행위 탐지 기술과 오용 탐지 기술
(4) 보고 및 대응(Reporting and Response): 침입 판정 시 대응, 보안관리자에게 보고
IDS 분류 방법
1. 탐지방법
(1) 지식 기반/오용 침입 탐지
- 특정 공격 분석결과를 바탕으로 패턴 설정, 패턴(시그니처)와 비교하여 일치하면 침입 판정
- 오탐률(False Positive) 낮음, 전문 시스템(추론, 지식베이스) 이용, 트로이목마, 백도어 탐지
- 새로운 공격탐지를 위해 지속적 갱신 필요, 패턴 없는 공격 탐지 불가, 속도 문제
(2) 행위 기반/비정상행위 침입 탐지
- 사용자 행동양식을 분석하여 정상 행동과 비교해 이상함, 급격한 변화가 발견되면 침입 판정
정량적/통계적 분석, 형태 관찰, 프로파일 기반 이상 여부(I/O 사용량, 로그인 횟수, 패킷량)
- 인공지능 알고리즘 스스로 판단하여 패턴 업데이트 불필요, 새로운 공격탐지 가능
- 오탐률(False Positive) 높음, 정상과 비정상 구분을 위한 임계치 설정 어려움
2. 대응방법
(1) 수동적 대응: 침입 탐지 시 별도 대응 없이 관리자에게 경보
(2) 능동적 대응: 침입 탐지 시 스스로 대응을 수행하여 공격을 막거나 방어
3. 데이터 수집원
(1) 네트워크 기반 IDS(NIDS)
- NIDS는 감지기를 이용, 필요 소프트웨어가 설치된 컴퓨터나 어플라이언스 장비
네트워크 세그먼트 당 하나의 감지기만 설치하면 되므로 설치 용이
- 무차별 모드(promiscuous mode)에서 동작하는 네트워크 인터페이스(NIC)에 설치되어 있다.
네트워크에서 실행되어 개발서버 성능저하 없음, 여러 유형 침입 탐지, 해커 IDS 공격방어
- 모든 네트워크 트래픽 모니터링, 분석하지만 자신에게 향하는 트래픽 관찰 불가 - HIDS 필요
- 네트워크 패킷이 암호화 전송 시 탐지 불가, 트래픽 증가 시 문제 야기, 오탐률 높음
(2) 호스트 기반 IDS(HIDS)
- 개인의 워크스테이션 또는 서버에 설치되어 비정상적이거나 변칙적인 행동 탐지
서버에 직접 설치되므로 네트워크 환경과 무관
- 사용자들로 하여금 시스템 파일 관리, 설정값 재설정, 위험에 노출되지 않도록 이용
- 기록되는 다양한 로그를 통해 정확한 침입 방지 가능, 트로이목마, 백도어, 내부자 공격 탐지
- 해커에 의한 로그 변조 가능성, DoS에 무력화 가능, 호스트 성능에 의존적, 리소스 사용
* NIDS는 네트워크 트래픽을 분석 - HIDS는 컴퓨터 자체를 제한
4. 탐지시점
(1) 사후분석 시스템: 수집된 감사 데이터를 정해진 시간에 분석하여 침입 즉시 대응 불가
(2) 실시간 탐지 시스템: 실시간 정보수집과 동시에 감사 데이터 발생, 침입 탐지와 대비책 실행
* 침입 탐지 중
1. 오탐(False Positive): 정상 사용을 공격으로 판단(옳다고 잘못 판단)
2. 미탐(False Negative): 공격을 정상 사용으로 판단(틀리다고 잘못 판단)
* 스텔스 모드 탐지 시스템: IDS 호스트에 네트워크 감시용, 관리용 인터페이스
네트워크 감시용 인터페이스는 외부로 패킷을 보내지 않음(외부에서 인지 못함)
IDS의 장단점
- 장점: 침입차단시스템보다 적극적인 방어, 내부 사용자 탐지 및 방어, 근원지 추적 가능
- 단점: 관리와 운영 어려움, 새로운 침입에 취약, 근본적 해결책 안됨
False Positive가 많이 발생하면 공격 분별 어려움, 수동적, 새로운 공격탐지에 한계
침입 방지 시스템(IPS; Intrusion Prevention System)
- 다양한 보안기술을 이용하여 침입 전에 막고, 유해 트래픽을 차단하는 능동형 보안 솔루션
- IDS는 탐지적이고 사후에 조치한다면, IPS는 예방적이고 사전에 조치를 취하는 기술
- IDS가 구축된 영역에는 다수의 호스트 기반 IPS와 네트워크 기반 IPS 장비가 있다.
IPS 분류방법
1. 공격 패턴 인지 방식
(1) Signature Based IPS: 침입방지 패턴 DB 기반, 공격에 시그니처를 정의하여 매칭되면 차단
새로운 공격의 경우 시그니처 리스트가 업데이트되지 않아 차단 불가하지만, 오탐 가능성 적음
IDS와 기본적으로 동일한 형태의 인지 방식이며 대부분의 IPS가 채택하는 방식
(2) Heuristics Based IPS: Anomaly Detection/Prevention 방식
알려지지 않은 공격에도 수집, 축적되는 정보를 이용하여 오탐을 줄이고 대처하는 방식
2. 구성 형태
(1) Network IPS(NIPS): 방지능력, 속도를 위해 In-Line 위치, 독립된 솔루션 기반 제품
세션 기반 탐지 지원, 다양한 방지 방법(시그니처, Protocol Anomaly, Action)을 이용
실시간 패턴 처리, 오탐 최소화, 변형 공격과 오용 공격의 탐지, 실시간 반응 기술 사용
- 하드웨어 기반, 호스트 독립적, 고성능
(2) Host IPS(HIPS): 기존 호스트 운영 서버 상 소프트웨어 기반 IPS
Kernel Dependant: 커널과 함께 동작하여 이벤트를 가로채 처리, 접근제어 포함 Secure OS
Kernel Independent: 커널과 독립적으로 시그니처와 행동 기반 분석, 규칙 위배 이벤트 필터링
- 소프트웨어 기반, 호스트 종속적
침입 차단 시스템, 방화벽(Firewall)
방화벽의 기능
1. 패킷 필터링: ACL을 생성해 두고 패킷 헤더 정보를 바탕으로 트래픽 제어
2. 사용자 인증: 방화벽은 내부 네트워크 접속 시 반드시 통과하므로 인증에 적합
3. 로깅 및 감사추적: 모든 접근이 방화벽을 통과할 때 접속정보 등 유용한 통계를 제공
4. NAT(Network Address Translation): 방화벽 내부 시스템의 IP가 외부에 공개되지 않도록하여
방화벽 내부 네트워크 구성 은닉 및 다양한 네트워크 구성이 가능하도록 효율성 제공
방화벽의 장단점
- 장점: 취약 서비스 보호, 호스트 시스템 접근제어, 로그와 통계, 내부 네트워크에 일관된 정책
- 단점: 제한된 서비스 제공, 우회 트래픽 제어 불가, 악의적 내부 사용자 곤란, 새로운 공격 곤란
방화벽 기술
1. NAT(Network Address Translation)
- 라우터에 의해 적은 숫자의 유효 IP로 많은 시스템이 인터넷에 접속할 수 있게 하는 서비스
외부에서 내부 네트워크로 직접적인 접근이 불가능하게 되므로 네트워크 보안 효과
2. 패킷 필터링
- 일정한 규칙에 의해 선택적으로 네트워크의 흐름을 조절, 패킷에 대한 차단과 통과 규칙
사용 목적에 맞는 패킷을 미리 규칙으로 규정해야함, 라우터나 독립적 호스트로도 구현
3. 경계 네트워크(Perimeter Network)
- 외부 네트워크와 보호 대상 네트워크 사이에 존재하면서 경계를 구분하는 네트워크, DMZ
내부와 외부 네트워크를 분리하고 내부 시스템의 안정성을 높이는 역할을 수행
4. 프록시
- 네트워크 프로그램의 일종, 서버와 클라이언트 간 특정 서비스를 중계
클라이언트: 서비스를 프록시 서버에 요청 - 서버: 요청에 따라 외부 네트워크 연결 중계
5. 베스천 호스트(Bastion Host)
- 침입 차단 소프트웨어가 설치되어, 내부와 외부 네트워크 간 게이트웨이 역할 수행, 보안 기능
내부 네트워크 사용자들의 주요 접속점, 인터넷에 노출되므로 불필요 명령, 파일은 삭제 필요
주로 웹 서비스나 파일 전송 서비스에 대한 프록시 역할, 인증, 로그기능 담당
방화벽 유형
1. 패킷 필터링 방화벽
- 필터링을 위해 IP, 포트 목록을 작성하여 목록을 기반으로 3, 4계층의 차단 필터링, ACL 이용
- 확장 가능, 높은 성능, 응용 프로그램 독립적, 헤더 조사 안함, 낮은 보안, 연결상태 추적 안함
2. 상태 기반 검사 방화벽(Stateful Inspection)
- 패킷 필터링과 달리 각 패킷이 종료될 때까지 패킷 전달 정보를 기억
일정시간 내 송수신 패킷을 모두 검사, 특정 수신을 요청한 송신 패킷이 적절한지 확인할 경우
방화벽을 통과, 방화벽이 상태정보 테이블을 유지하도록 요구, 3, 4계층에서 동작
3. 프록시 방화벽
- 메시지가 목적지로 전달되기 전에 가로채고 검사
- 보호되는 네트워크와 보호되지 않는 네트워크 사이에 위치하여 양방향 연결 형성
외부와 대화하는 유일한 시스템, 외부 컴퓨터가 내부 컴퓨터로 직접 접근할 수 없도록 보장
- 가능한 경우 응용 프로그램 계층까지 전체적으로 패킷 정보검사, 패킷 필터링보다 높은 보안
- 트래픽 성능 저하, 응용 프로그램 기반 프록시 방화벽은 확장성, 성능 문제, 기능상 단점 존재
(1) 응용 프로그램 수준 프록시 방화벽
- 패킷 전체를 검사하고 패킷 내 문맥에 기반하여 접근결정을 내림, 프로토콜과 명령어 구분
- 응용 프로그램 프록시는 하나의 서비스나 프로토콜을 위해 동작, 서비스마다 필요
(2) 회선 수준 프록시 방화벽
- 클라이언트와 서버 사이에 회선을 생성시키고 세션 계층의 보호방법을 제공
- 주소, 포트, 프로토콜 유형에 따라 접근권한을 결정하는 패킷 필터와 유사하게 동작
패킷의 페이로드 데이터보다는 패킷 헤더 데이터를 검사, 패킷 내 컨텐츠는 확인 불가
- 비표준포트로 우회하는 접근에 대해서는 방어 불가
- SOCKS: 회선 수준 프록시 게이트웨이, 내부에서 외부 서버 접근할 때 침입 차단 기능
(3) 커널 프록시 방화벽
- 패킷이 커널 프록시 방화벽에 도착하면 새로운 가상 네트워크 스택이 생성되는데
이것은 수신된 패킷을 검사하는데 필요한 프로토콜 프록시로만 구성되어 있다.
- 모든 조사와 진행이 커널에서 이루어지고 응용 프로그램 계층까지 전달할 필요가 없어서
응용 프로그램 레벨 방화벽보다 좋은 성능을 가짐
- 내부와 외부 사이의 연결은 중개인에 차단될 수 있고, 송신지 주소를 바꾸어 NAT 수행 가능
* 네트워크 계층: 패킷 필터링 방화벽, 상태기반 감시 방화벽
전송 계층: 회선 수준 프록시 방화벽
응용 프로그램 계층: 응용 프로그램 수준 프록시 방화벽
4. 개인 방화벽
- 네트워크에서 오는 원하지 않는 트래픽을 차단하기 위한 애플리케이션 프로그램
- 일반 방화벽의 작업을 보완, 개인 DSL, 케이블 모뎀 연결 같은 방화벽 없는 경우 대책
방화벽 구조
1. 스크리닝 라우터 구조(Screening Router)
- 라우터를 이용해 패킷을 필터링하여 내부 서버 접근을 통제
연결 요청에 따라 패킷 헤더를 분석하여 송수신지 주소, 포트, 제어필드 분석 후
패킷 필터링 규칙에 의해 트래픽의 통과 또는 차단 여부를 판별한다.
- 구조가 간단하고 장비 추가비용이 없음,
- 라우터에 복잡한 필터링 필요, 인증 불가, 내부구조 숨기기 어려움, 1개 장애물: 방어 약함
2. 이중 네트워크 호스트 구조(Dual-Homed Host Architecture)
- 두 개의 인터페이스를 가지는 장비, 각각 내부와 외부 네트워크 연결, 라우팅 기능 없음
- Dual-Homed 게이트웨이가 베스천호스트 기능, 네트워크들의 데이터 공유를 도와주어서
여러 개의 네트워크가 동시에 통신할 수 있도록 지원하는 변환기 역할
- 네트워크의 모든 패킷에 대해 검사 및 필터링하므로 소규모 네트워크에 적합
- 기록정보 생성, 방화벽 관리가 용이하며 내부 네트워크를 숨길 수 있음
- 사용자 정보 입력 필요, 베스천 호스트가 손상되거나 유출되면 취약
3. 스크린드 호스트 게이트웨이 구조(Screened Host Gateway)
- 스크리닝 라우터와 이중 네트워크 게이트웨이를 결합한 형태로
내부 네트워크 베스천 호스트와 외부 네트워크 사이에 스크리닝 라우터를 설치하여 구성
- 한 포트를 외부 네트워크에 연결, 다른 포트는 내부 네트워크에 연결하는 구조
- 네트워크 계층(스크리닝 라우터)과 응용 계층(베스천 호스트)에서 방어하므로
2단계 방어가 가능, 기본 필터보다 필터링 규칙이 단순하며 방어의 깊이가 개선
- 베스천 호스트 침해 시 보안에 취약, 해커나 악의의 내부자에 의해 스크린라우터의
라우팅 테이블이 변경되면 외부 트래픽이 베스천 호스트 없이 내부 네트워크로 침입
4. 스크린드 서브넷 구조(Screened Subnet)
- 스크리닝 라우터들 사이에 이중 네트워크 게이트웨이가 위치하는 구조
인터넷과 내부 네트워크 사이에 DMZ라는 네트워크 완충지역 서브넷을 운영
- 공격자가 내부 접근권한 획득 전에 세 개의 장비가 유기적으로 협력하여 동작, 강력한 보안
- DMZ 보안층을 가지고 있어 안전, 모듈러와 유연, 높은 방어 깊이
- 설치 관리가 어렵고, 구축비용이 높음, 서비스 속도가 느려짐
방화벽 운영 정책과 추가 기능
1. Deny All: 모든 트래픽을 차단하고, 특정 트래픽만 선별적으로 허용, 중요 서버 접속 등
2. Permit All: 모든 트래픽을 허용하고, 특정 트래픽만 선별적으로 차단, 내부망 > 외부 차단 등
방화벽의 한계점
- 방화벽은 내부 시스템이 직접 노출되지 않도록 위험지역 축소, 외부 노출 서비스 방어 어려움
- 네트워크 트래픽 필터링이므로 허용된 트래픽에 해킹 코드가 있어도 차단하거나 감지 못함
- 방화벽을 통과하지 않는 트래픽은 제어가 불가
VPN(Virtual Private Network)
- 공중 네트워크를 이용하여 사설 네트워크가 요구하는 서비스를 제공
- 공중 네트워크를 경유하여 데이터가 전송되어도 외부로부터 안전하게 보호되도록
주소 및 라우터 체계의 비공개, 데이터 암호화, 사용자 인증 및 접근권한 제한
- ISP가 제공하는 인터넷 망을 이용하여 구축하므로 장비와 회선비용 절감 가능
- IPSec, MPLS 등으로 VPN 구축 가능, 위치와 상관없이 ISP의 POP로 접속가능
- 명확한 표준 없음, 암호화 기술 노출 및 정책적 보안 부족, LAN에 비해 성능 부족
VPN 구현 기술
1. 터널링
- VPN 내 두 호스트 간 가상경로를 설정하여 투명한 통신 서비스를 제공
- 인터넷과 같은 안전하지 않은 네트워크에서 전용선과 같은 강력한 보안 제공
2. 암호화 및 인증
- 정보의 기밀성을 제공하기 위해 VPN에서는 대칭키 암호를 사용
암호화 대칭키는 공개키 암호방식을 통한 키 교환을 통해 공유
- 메시지 인증은 MAC 또는 해시함수를 이용하여 맞는 출처에서 온 사실, 변경 여부를 확인
- 사용자 인증은 VPN 접속요구 시 신원을 확인하는 프로세스이며 보안 서버에서 인증 후 허가
3. 접근제어
- 필터링은 접근제어를 결정할 수 있지만 암호화하지 않은 IP 패킷에서만 가능하다.
VPN 구성형태 분류
1. Intranet VPN
- 기업 내부 또는 지사까지 VPN을 통해 연결, TCP/IP 기반으로 인터넷과 동일한 장비와
응용 프로그램을 사용할 수 있으며, 방화벽 및 ID, PW 입력하여 접속하는 보안 서비스
2. Extranet VPN
- 밀접한 관계가 있는 고객사나 협력업체에게 Intranet을 이용할 수 있도록 확장한 개념
기업 간 원활한 데이터 교환을 목적으로 사용, 자사 - 고객 - 협력업체를 VPN으로 구성
3. Remote Access VPN
- 재택근무자, 원격 접속자는 무선 및 전화접속으로 ISP의 NAS(Network Access Server) 접속
- 접속경로는 PSTN, ISDN, xDSL 등, NAS는 사용자 접속 인증과 터널링 기능을 수행
- 가장 중요한 요소는 보안, 사용자의 접속 장소와 시간을 알 수 없으므로 철저한 보안 필요
VPN 구성
1. 터널링
- 송수신자 간 전송로에 외부 침입을 막기 위해 일종의 파이프를 구성, 보안 기능 지원
- 터널링되는 데이터를 페이로드(Payload)라고 부르며 내용은 터널링 구간에서 변경되지 않음
2. 2계층 터널링 프로토콜
- 사용자와 접속하고자 하는 위치의 LAN을 연결, Client-to-LAN, Remote Access VPN에 사용
- 사용자 측에서 다이얼 업을 이용하여 접속할 때 ID, PW 인증절차를 거쳐 터널링을 시작
- 2계층 터널링 프로토콜의 터널 구성방법은 클라이언트 개시 VPN과 NAS 개시 VPN이 있다.
(1) 클라이언트 개시 VPN(Client-Initiated VPN)
- PC 등 사용자 장비에 VPN 지원 소프트웨어 설치 필요, 소규모 네트워크 사용
인증절차 이후 NAS는 터널링 프로토콜에 관여하지 않음(터널링 설정할 때 미관여)
- 접속절차: 사용자는 NAS로 접속 - ID, PW 인증 - 목적지 게이트웨이와 VPN 터널링
(2) NAS 개시 VPN(NAS-Initiated VPN)
- PC 등 사용자 장비에 별도 장치 및 소프트웨어 불필요
- NAS가 인증 및 터널링 설정에 책임(NAS 복잡, 하나의 터널에 다중접속 지원으로 효율적)
- NAS에 VPN 기능 추가 필요
- 접속절차: NAS로 접속 - 인증 - VPN 터널링
(3) PPTP(Point-to-Point Tunneling Protocol)
- IP, IPX, NetBEUI(IBM) 페이로드를 암호화하고 IP헤더로 캡슐화하여 전송
- 서버가 MS 윈도우 NT 서버로 제약, 사용자는 별도의 PPTP 지원 소프트웨어 필요
하나의 터널에 하나의 접속, 헤더 압축, 터널 인증 미지원
(4) L2F(Layer 2 Forwarding Protocol)
- NAS 개시 VPN형, 전송 계층 프로토콜로 UDP를 사용
(5) L2TP(Layer 2 Tunneling Protocol)
- PPTP와 L2F를 결합, 호환성 좋음, 터널 인증 기능하지만 패킷 인증, 암호화, 키 관리 미지원
IPSec ESP를 이용하여 보안기능을 제공, 인터넷, X.25, Frame Relay, ATM 지원, UDP 사용
- 하나의 터널에 다수 접속가능, 헤더 압축 지원, 터널 인증 지원
3. 3계층 터널링 프로토콜
- IPSec과 MPLS로 대표, 주로 LAN-to-LAN VPN에 이용, 주체는 LAN 단위 네트워크
- 네트워크 관리자는 원격 노드나 CPE(Customer Premises Equipment)에 소프트웨어 불필요
- IPSec: IP 계층 보안을 위해 IETF가 제안, VPN 구현에 널리 사용
AH(Authentication Header)와 ESP(Encapsulation Security)를 통해 인증, 무결성, 기밀성 제공
ISAKMP/IKE(Internet Security Association and Key Management Protocol
/Internet Key Exchange)에서는 AH/ESP에 필요한 보안 협상과 키 관리를 담당
- IPSec의 두 가지 모드
(1) 전송모드: IP 페이로드를 암호화하여 IP 헤더로 캡슐화
(2) 터널모드: IP 패킷을 모두 암호화하여 전송
- IPSec의 헤더
(1) AH: 데이터와 순서번호 보유, 송신자 확인, 메시지 미수정 보장, 암호화 기능 없음
(2) ESP: IP 페이로드를 암호화하여 데이터 기밀성 제공, 제 3자에 데이터 노출 차단
구분 |
전송 |
터널 |
AH |
IP헤더와 IP페이로드 사이 AH/ESP 헤더 삽입하여 전송 |
IP헤더와 IP페이로드로 새로운 IP 헤더와 AH/ESP 헤더로 캡슐화하여 전송 |
데이터 원본 인증, 무결성: MD5/SHA 이용 재생공격에 대한 보호: 순서번호 삽입 |
||
전송 계층 이상 프로토콜에 대한 인증만 수행 |
전체 IP패킷에 대한 인증 새로운 IP헤더 오버헤드 |
|
ESP |
데이터 기밀성, 원본 인증, 무결성, 재생공격 방지 |
|
IP페이로드를 ESP헤더와 트레일러로 캡슐화, 암호화 |
IP헤더까지 포함한 원본 패킷을 새로운 IP패킷의 페이로드로 삽입하여 원본 패킷 자체를 암호화 |
4. 인증
- 데이터 변형 여부하는 데이터 인증, 송신자 접근권한 부여하는 사용자 인증 등
- Remote Access VPN은 초기 VPN 접근 시 보안서버로부터 인증절차 필요
- Peer-Peer 방식, Client-Server 방식
(1) Peer-Peer 방식
- 독립적인 2개의 호스트 간 요청과 응답을 통해 사용자 인증을 수행하는 방식, PKI, IPSec
- PAP(Password Authentication Protocol)과 CHAP(Challenge Handshake Authentication P)
- PAP는 2-way handshaking 방식으로 인증 요청 호스트에서 사용자 ID, PW를
일반 텍스트 형태로 전달하므로 인증 정보의 외부 노출에 취약하다.
- CHAP는 3-way handshaking 방식으로 인증 서버가 호스트에 challenge 메시지를 보내면
호스트는 보안을 위해 해시함수 계산 값을 보내고 인증 서버는 값이 일치하면 인증
- Peer-Peer 방식은 호스트 사용자 별로 차별화된 네트워크 접근권한이 불가한 단점
(2) Client-Server 방식
- 보안관리에 더 편리하고 유연한 방식으로 TACACS, RADIUS가 있음, L2TP
- TACACS(Terminal Access Controller Access-Control System)는 인증에 필요한
사용자 ID, PW, PIN, 암호키를 인증서버 DB에서 관리하며 클라이언트 인증 요청 처리
사용자와 서버 사이에 전달되는 모든 데이터는 일반 텍스트 형태
TACACS+에서 MD(Message-Digest), 해시함수를 추가, 멀티프로토콜 로그인 지원
- RADIUS(Remote Access Dial-In User Service)는 사용자 인증 외에 연결 관리를 위해
NAS와 연동하여 인증 시스템을 구성, NAS는 접속 제공 서버와 동시에 RADIUS 클라이언트
TACACS와 마찬가지로 인증서버에서 인증에 관련된 정보를 단일 DB 형태로 관리
사용자 암호의 안전한 송수신을 위해 비밀키 암호화 방식을 사용
- Client-Server 방식은 PAP과 CAHP 인증 지원 및 Proxy 서버역할도 지원함으로써
Peer-Peer 방식에 비해 더 유연하고 신뢰성 있는 인증 기능을 제공
네트워크 보안 동향
- 역추적(traceback)은 해커의 실제 위치를 실시간으로 추적하는 기술
TCP connection traceback, connection traceback, IP packet trace back, packet traceback
호스트 기반 연결 역추적 기술, 네트워크 기반 연결 역추적 기술
1. ESM(Enterprise Security Management)
- 기업과 기관의 보안 정책을 반영, 다양한 보안 시스템을 관리하여 조직의 보안 목적 실현
- 각종 네트워크 보안제품 인터페이스를 표준화하여 중앙 통합 관리, 침입 종합대응, 모니터링
- 통합 관제, 운영을 통한 비용 절감, 보안정책 통합 관리를 통한 일관성, 보안 관리 효율성
- 크로스 플랫폼(Cross Platform) 기반의 오픈 아키텍처로 유연성과 상호 운영성 및
개별 보안 솔루션과 ESM의 연계 및 통제를 위한 에이전트 기반의 클라이언트 통제
2. NAC(Network Access Control)
- 네트워크에 접속하는 접속 단말의 보안성을 검증하여 보안성을 강제화하고 접속을 통제
파일 관련 프로토콜
1. FTP(File Transfer Protocol)
- 파일 전송 프로토콜은 한 호스트에서 다른 호스트로 파일을 복사하는 TCP/IP 표준 기능이다.
- 다른 클라이언트 서버와 달리 두 개의 연결을 사용, 데이터 전송, 명령과 응답 제어 정보 분리
- 두 개의 Well-Known TCP 포트 사용한다. 포트 20은 데이터 연결, 포트 21은 제어 연결
(1) 데이터 연결: 20번 또는 1024 이후 포트 사용, 파일 전송 때 설정 및 해제된다.
(2) 제어 연결: 21번 포트 사용, 클라이언트 명령과 서버의 응답을 위한 연결, 연결 상태 유지
(1) FTP 능동(Active) Mode: 일반적으로 기본 값, 클라이언트에서 서버의 21번 포트로 접속
제어 채널을 생성하고, 서버에서 클라이언트로 접속하여 데이터를 보내는 방식이다.
클라이언트에 방화벽이 설치되어 외부 접속을 허용하지 않으면 FTP 접속은 되지만(제어 채널)
이후 데이터 채널 연결이 불가능하여 파일을 받을 수 없는 문제가 생길 수 있다.
- 서버가 20, 21번 포트 사용, 두 개의 포트만 열면 서비스 가능, 클라이언트 방화벽 접속불가
(2) FTP 수동(Passive) Mode: 클라이언트에서 서버측 21번 포트로 접속, 제어 채널하고,
'데이터 채널도 클라이언트에서 서버'로 접속하여 데이터를 보내는 방식이다.
- 서버가 21번, 1024 이후 포트 사용, 데이터 전송에 1024 이후 포트 사용,
1024 이후 모든 포트 오픈, 보안 위해 서버에서 Passive 모드로 사용 포트 제한
- 포트 정의 1. PORT 명령을 통해 클라이언트가 임시 포트 번호를 선택하고 수동적 설정으로
서버에게 보낼 수 있다. 서버는 그 포트 번호를 사용하고 능동적 설정을 사용한다.
- 포트 정의 2. PASV 명령을 통해 클라이언트가 서버에게 먼저 포트를 선택하도록 요청
서버는 그 포트로 수동적 설정을 하고 응답에 그 포트 번호를 전송한다.
2. TFTP(Trivial File Transfer Protocol)
- 읽기 전용 메모리나 디스크 없는 워크스테이션에 설치될 수 있을 정도로 간단
- 기본적인 IP와 UDP만을 필요로 함, 보안 기능 없음, 파일 읽기와 쓰기 가능
- TFTP는 UDP 서비스를 사용한다. 연결 설정과 종료를 제공하지 않으므로
각 데이터 블록을 독립적인 사용자 데이터그램으로 캡슐화하여 전송한다.
또한, 흐름제어와 오류제어 기능이 없으므로 해당 메커니즘을 생성해야 한다.
- 마법사의 초보 버그(Sorcerer's apprentice bug): ACK 메시지가 유실되지 않고
지연될 경우 데이터 블록과 응답이 두 번 송수신되게 된다.
3. NFS(Network File System)
- TCP/IP를 이용하여 네트워크에서 파일 시스템을 운영할 수 있는 프로토콜
- 데이터 보안과 무결성을 보장하면서 인증된 사용자가 파일을 사용할 수 있도록 제공
- 클라이언트마다 프로그램을 설치할 필요가 없으므로 관리면에서 효율적
- 서버 공유자원 접근에 트래픽이 많이 발생하기 때문에 속도가 느린 단점
4. 삼바(Samba)
- SMB(Server Message Block) 프로토콜을 사용하여 파일, 프린터 자원 공유 기능 제공
FTP 보안 위협 및 대책
1. FTP 보안
- FTP는 보안 이슈화 전에 설계, 비밀번호가 평문이므로 공격자가 가로챌 수 있다.
- 데이터 전송 연결도 평문, 보안을 위해 FTP 응용 계층 - TCP 계층 사이 보안 소켓 계층 추가
이러한 경우 FTP를 SSL-FTP
2. SFTP 프로그램
- SSH 클라이언트와 SSH 서버 사이 보안 연결 시, 연결을 사용할 수 있는 응용 프로그램 SFTP
- SFTP는 SSH 응용 요소의 일부이다. 쌍방향 프로그램이며 파일 전송에 인터페이스 명령 이용
3. TFTP 보안
- TFTP는 보안에 대한 고려가 없다. 사용자 확인과 비밀번호도 없다.
- TFTP가 중요하지 않은 파일만 허용, 라우터 보안을 구현하여 특정 호스트만 접근하도록 제한
4. Bounce Attack
- 익명 FTP 서버를 이용하여, FTP 서버 경유 및 호스트 스캔, FTP PORT 명령 이용
- FTP 서버를 통해 임의 네트워크 접속을 릴레이, 네트워크를 포트 스캐닝
5. Anonymous FTP 취약점
- 보안 절차 없는 익명 사용자에게 FTP 서버 접근 허용, 익명 쓰기 권한 획득 시 악성코드 생성
- 보안대책: Anonymous 사용자의 루트, bin, etc, pub 디렉터리 소유자와 퍼미션 관리
$root/etc/passwd 파일에서 anonymous ftp에 불필요한 항목 제거
메일 보안
이메일 관련 프로토콜
1. SMTP(Simple Mail Transfer Protocol)
- 송신자-메일 서버, 송신자 메일 서버-수신자 메일 서버 두 곳에서 사용된다.
- 수신자 메일 서버 - 수신자 사이에 또 다른 프로토콜이 필요하다.
- SMTP 단지 명령과 응답들이 어떻게 송신되고 수신되는지 규정한다.
네트워크는 실제 구현을 위해 자유롭게 소프트웨어 패키지를 선택할 수 있다.
- 클라이언트가 Well-Known 포트 25번에 TCP 연결 생성, SMTP 서버는 연결 단계 시작
연결 단계에서 서버는 코드 220을 보내 클라이언트의 준비 상태 확인, 안됐다면 코드 421 전송
클라이언트는 이름을 사용한 HELO 메시지를 보내어 자신이 누군인지 알린다.
서버는 코드 250(요청 메시지 완료) 또는 상황에 맞는 코드를 보내어 응답한다.
메시지 전송 후 연결 종료 시 클라이언트는 QUIT 명령을 송신, 서버는 코드 221 등 코드 응답
2. 메시지 액세스 에이전트(POP, IMAP)
- SMTP는 메시지를 클라이언트로부터 서버로 밀어내는(Push) 프로토콜이다.
- 서버로부터 클라이언트로 메시지를 당겨오는(Pull) 프로토콜에 POP, IMAP 사용
- 두 가지 프로토콜 사용 가능, POP3(Post Office Protocol 3), IMAP4(Internet Mail Access P)
(1) POP3
- POP은 간단하지만 기능상의 제약이 존재한다. 클라이언트, 서버에 프로그램이 설치
- 메일 서버 편지함으로부터 전자우편 다운로드 클라이언트에서 시작한다.
TCP 포트 110번으로 서버와 연결, 편지함 액세스를 위해 사용자 이름과 PW를 송신한다.
(2) IMAP4
- POP3와 비슷하지만 더 많은 기능을 갖는다.
- 다운로드 전 헤더 검사, 특정 문자열로 내용 검색, 부분 다운로드, 편지함 생성, 삭제, 변경,
전자우편 저장을 위해 폴더 내 편지함들을 체계적으로 생성할 수 있다.
3. MIME(Multipurpose Internet Mail Extensions)
- 전자우편을 통해 ASCII가 아닌 데이터가 송신될 수 있도록 허용하는 부가적 프로토콜
- ASCII가 아닌 데이터를 NVT ASCII 데이터로 변환하고, 이를 클라이언트 MTA로 배달
수신측의 메시지는 원래 데이터로 역 변환된다.
4. 웹 기반 전자우편
- 송신자 - 송신자 메일서버 - 수신자 메일서버까지의 과정은 SMTP를 사용한다.
- 그러나 수신 서버(웹 서버)로부터 수신자의 브라우저까지는 POP3, IMAP4 대신 HTTP 사용
- 수신자가 메일을 읽을 필요가 있을 때 웹사이트로 요청 HTTP 메시지를 송신한다.
- 송신자가 HTTP 트랜잭션을 이용해 웹 서버로 메시지를 보내는 방법도 가능하다.
이메일 콘텐츠 보안 기술
1. PEM(Privacy Enhanced Mail)
- IETF에서 인터넷 드래프트로 채택한 기밀성, 무결성, 부인방지, 인증을 지원하는 이메일 보안
- 전자메일 프로토콜을 이용하여 암호화된 정보, 전자서명, 암호화 방법 등을 텍스트 형식 전송
- 이론 중심적이며 사양이 방대하여 구현의 복잡성으로 인해 많이 사용되지 않는다.
2. PGP(Pretty Good Privacy)
- 필립 짐머만이 독자적으로 개발하고 무료로 공개한 기밀성, 무결성, 부인방지, 인증 메일 보안
- 여러 기종에서 사용 가능, 알고리즘의 높은 보안성, 개인의 작품으로 넓은 활용 분야
- 기밀성, 송신 부인 방지, 메시지 인증, 사용자 인증을 제공하지만, 수신 부인 방지 미지원
항목 |
PEM |
PGP |
개발자 |
IETF |
필립 짐머만 |
키 인증 방식 |
중앙집중 키 인증 |
분산화 키 인증 |
특징 |
인터넷 표준 익명 메시지 불허용 구현의 어려움 높은 보안성(군사, 금융) 이론 중심 많이 사용되지 않음 |
응용 프로그램 익명 메시지 허용 구현의 용이성 PEM보다 낮은 보안성 현실 사용 중심 많이 사용되고 있음 |
3. S/MIME(Secure Multipurpose Internet Mail Extensions)
- MIME를 전자서명과 암호화 기술을 이용하여 암호화, 무결성, 송신자 부인 방지, 인증 보안
- 송수신 측이 직접 상대방을 상호 인증, 공인 인증서를 맞교환, 상위 인증기관(CA) 체인 이용
스팸메일 유형
- 전송 방식 Incoming SPAM: 자신의 메일 서버로 전송, Relay SPAM: 중계 메일 서버로 전송
스팸메일 대응 방안
1. 메일 서버 등록제 SPF(Sender Policy Framework)
- 메일 헤더에 표시된 발송정보(IP)가 실제 메일 발송 서버(IP)와 일치하는지 비교
2. 스팸메일 방지 보안도구
(1) Procmail: 메일 필터링
(2) Sanitizer: 필터링, 매크로 검사, Score 기능, 감염 메시지 보관 장소 설정
(3) Inflex: 메일 서버에서 로컬이나 외부로 나가는 메일에 대한 정책으로 필터링(첨부파일만)
(4) SpamAssasin: 헤더 내용, 화이트/블랙 리스트, 실시간 블랙 리스트(RBL) 필터링
웹 보안
1. WWW(World Wide Web)
- 분산 클라이언트 서버 서비스, 브라우저를 사용하는 클라이언트가 서버를 이용, 서비스 받음
- 하이퍼텍스트는 다른 문서를 참조하는 문서, 하이퍼미디어는 다른 미디어를 포함한 문서 참조
- URL(Uniform Resource Locator): 인터넷 정보를 지정하는 표준, 프로토콜-호스트-포트-경로
2. 웹 문서
(1) 정적 문서: 서버에서 생성되어 저장된 고정 내용 문서, 클라이언트는 복사본만을 얻음
- HTML, XML, XSL, XHTML
(2) 동적 문서: 브라우저가 문서를 요청할 때마다 서버에 의해 생성, 요청마다 달라질 수 있음
- 공통 게이트웨이 인터페이스(CGI; Common Gateway Interface): 동적 문서 생성과 처리
- 고정 부분은 HTML, 동적 부분은 PHP, JSP, Asp, ColdFusion(HTML + SQL)
(3) 액티브 문서: 클라이언트 사이트에서 수행될 프로그램, 스크립트
- 자바 애플릿: 고급 프로그래밍 언어와 실행 환경, 액티브 문서 작성, 수행 라이브러리 조합
애플릿은 서버에서 자바로 작성된 프로그램, 문서는 바이트 코드(바이너리) 형태
- 자바 스크립트: 스크립트 개념이 액티브 문서를 위해 사용, 액티브가 작다면 스크립트로 작성
스크립트는 소스 코드로써 바이너리 형태가 아니다. 자바 스크립트는 최고급 스크립트 언어
3. HTTP(Hypertext Transfer Protocol)
- 단지 하나의 TCP 연결로 제어 연결 없이, 데이터만 클라이언트와 서버 사이에 전송된다.
- HTTP 메시지는 사람이 읽을 목적이 아님, HTTP 서버-클라이언트에 의해 읽히고 해석된다.
SMTP 메시지는 저장된 후 전달되지만, HTTP 메시지는 즉시 전달된다.
SSL/TLS
- SSL(Secure Socket Layer)/TLS(Transport Layer Security)는 가장 많이 이용되는 암호 통신
(1) SSL 보안 서비스: 기밀성, 메시지 무결성, 클라이언트-서버 상호 인증
(2) TLS 프로토콜 = TLS 레코드 프로토콜 + TLS 핸드쉐이크 프로토콜
- 하단의 TLS 레코드 프로토콜이 암호화 처리, 상단의 TLS 핸드쉐이크 프로토콜이 이외 처리
TLS 핸드쉐이크 프로토콜은 핸드쉐이크, 암호 사양 변경, 경고, 애플리켕션 데이터로 구성
1. 다음 중 침입탐지시스템의 정의이다. 침입탐지시스템의 내용 중 틀린 것은?
[보기]
※ 허가받지 않은 접근이나 해킹시도를 감지하여, 시스템 또는 망 관리자에게 통보해 주고 필요한 대응을 취하도록 하는 시스템
※ 암호화 패킷에 대해서는 침입탐지 불가능
※ 패킷의 데이터 부분까지 분석
1. 침입탐지 처리 : 이벤트 정보와 프로파일이나 공격관련 규칙을 비교하여 침입탐지 수행
2. 정보 가공 : 침입탐지시스템이나 침입대응 시스템에서 이용하기 편리하도록 정보를 가공하여 보관
3. 비정상 행위 탐지 : 알려진 취약점을 기반으로 탐지 규칙을 작성하여 침입행위를 판단
4. 침입보고 : 탐지된 행위에 대하여 보안 관리자 등에게 침입탐지를 알림
2. IDS 동작원리에 대한 설명 중 옳은 것은?
1. 오용탐지 기반 침입탐지 기법의 경우 이미 구축된 정상적인 사용자의 시스템 이용패턴을 기반으로 침입탐지여부를 판정한다.
2. 비정상행위 기반은 일정기간의 학습단계에서 구축된 사용자의 비정상행위 프로파일을 기반으로 침입여부를 판정한다.
3. H-IDS의 단점은 OS별 개발이 이루어져야 하는점, 시스템 부하가 증가되는 점, 암호화된 트래픽 분석이 불가능하다는 점이 있다.
4. N-IDS 장점은 외부로부터 공격탐지에 유리하다는점, 실시간 침입탐지가 가능하다는 점, 기존의 서버에 설정변경이 필요없다는 점 등이 있다.
3. 방화벽이 제공하는 제어 중 다음 지문을 설명하는 제어는?
[보기] 특정 서비스를 어떻게 사용할지 제어한다.
예를 들어 전자메일을 필터링 하거나 외부에서 시도하는 접근에 대해 웹서버의 일부정보에만 접근하도록 제한을 한다.
1. 서비스제어
2. 목적지 제어
3. 행동 제어
4. 사용자 제어
4. 대규모의 트래픽이 발생하는 네트워크에 설치되어 있는 네트워크 기반 시스템에서 차단하기에 가장 어려운 것은?
1. 특정 IP 주소 대역으로부터의 패킷
2. 특정 TCP 포트에 대한 접근 패킷
3. 바이러스 등의 악성코드를 포함하는 파일
4. 특정 키워드를 포함하는 전자우편 메시지
5. VPN 설명 중 맞는것을 고르자.
가. 터널링 기술은 VPN의 기본이 되는 기술로 터미널이 형성되는 양 호스트 사이에 전송되는 패킷을 추가 헤더 값으로 캡슐화 하는 기술이다.
나. 데이터 암호화 기술은 터널이 형성된 한 쪽 호스트에서 데이터를 암호화해서 보내면 반대편 호스트에서 암호화 데이터를 복호화하여 원본 데이터를 확인하게 된다.
다. VPN은 데이터의 출처 즉 출발지 IP가 확실한지에 대한 인증기술을 제공하고, 내부 자원에 대해서 허가 받지 않은 사용자의 접속을 차단하는 접근제어 기능을 제공한다.
라. VPN 구현에 가장 널리 사용되는 터널링 프로토콜에는 PPP, SSL, SSH 등이 있다.
6. Port 20, 21이 분리되어 있는 것을 이용하여 명령 채널을 통해 파일 전송을 요청한 클라이언트와 데이터 전송채널을 통해 실제 파일전송을 받는 클라이언트가 분리 될 수 있는 취약성이 존재한다. 이 FTP취약점을 이용해 가능한 공격은?
1. Brute Force
2. Bounce
3. Anonymous
4. Sniffing
7. PGP(Pretty Good Privacy) 설명중 옳지 않은것은?
1. 신뢰성의 확인은 각 사람 자신들의 믿음을 통해 전달하는 키 관리 방식
2. PKI 표준과 일치하는 키 관리 체계
3. 공개키 링의 각 키 인증서는 믿음의 유효성과 신뢰성 등급표현
4. 개별적인 획득 및 사용이 용이
8. S/MIME 에서 제공하는 보안 서비스와 보안 메커니즘에 사용되는 암호 알고리즘을 나타낸것이다. 잘못 짝지어진것은?
1. 송신부인 - DSA
2. 사용자인증 - CAST
3. 메시지 기밀성 - 3DES
4. 메시지 무결성 - SHA -1
9. 전자우편 보안시스템의 문제점인 PEM 구현의 복잡성, PGP의 낮은 보안성과 기본 시스템과의 통합이 용이하지 않다는 점을 보완하기 위해 IETF이ㅡ 작업 그룹에서 RSADSI의 기술을 기반으로 개발한 전자우편 보안시스템은?
1. POP3
2. IMAP
3. S/MIME
4. SMTP
10. 다음지문에서 의미하는 메시지는?
[보기] SSL 프로토콜의 응용들은 대부분 서버를 인증할 필요가 없다. 그러나 서버를 인증할 필요가 있는 경우, 서버는 클라이언트에게 ServerKeyExchange대신, 서버의 인증서를 보내기 위해 이 메시지를 사용한다.
1. ChangeCipherSpec
2. ServerHello
3. CertificateRequest
4. Certificate
보너스문제
다음 웹 보안공격 방지에 대한 설명을 나열한 것이다. 어떤 공격을 방지하는것인가?
[보기]
가. 세션관리에 관한 모든 정보를 서버 측에서 저장 관리하게 서버사이드 세션을 사용하도록 구현한다.
나. SMS 인증과 같은 2차인증을 이용하도록 구현한다.
다. 사용자 PC에 저장되는 안전하지 않은 정보는 암호화하여 변조를 방지한다.
1. 파일 업로드 공격방지 방법
2. 쿠키/세션 위조 공격방지 방법
3. SQL Injection 공격방지 방법
4. 파일 다운로드 공격방지 방법
○ IDS / IPS
-IDS(Intrusion Detection System) : 외부 침입에 대한 정보를 수집 및 분석하여 침입을 탐지하고 관리자에게 알리고 대응하는 시스템. 처음에는 네트워크 공격의 증거를 찾기위해 사용됬지만 점차 허니팟 개념으로 확장되고 있다. 또한 IDS는 사후 분석시스템으로 즉각 대응이 약하다.
-장점 : 침입차단시스템에 비해 적극적인 방어가능. 특히 내부 사용자의 오남용 탐지 및 방어가 가능하며 근원지 추적 가능
-단점 : 대규모 적용 어렵다. (관리 및 운영에 한계) 근본적인 보안 사고의 해결책은 아니다.
-탐지방법에 의한 분류
-1) 규칙 기반(오용 탐지, Misuse Detection)
: 시스템로그, 네트워크 입력정보, 알려진 침입방법 등 비정상적인 행위 패턴 정보를 정해두고 패턴에 매칭되는 정보를 침입이라고 판단
-특징 : 새로운 공격 탐지를 위해 패턴 갱신 필요. 신기술에 약하다.
-2) 통계적 변형 탐지(비정상 침입탐지, anomaly detection)
: 정상적인 패턴을 수집하여, 패턴에 벗어나는 경우를 침입으로 판단
-특징 : 규칙 기반에 비해 관리가 용이하고, 신기술에 강하다. 침입을 탐지하는데 시간이 걸린다. 종류로는 신경망 모델이 있다.
-대응방법
-네트워크 수집원에 의한 분류
-1) NIDS
: 패킷 헤더, 데이터 및 트래픽 등을 분석해 침입 여부 판단. 즉 시스템 감사자료가 아닌 네트워크 정보로 침입을 탐지.(Promiscuous mode 사용)
-장점 : 감시 영역이 네트워크 영역이며, IP 주소를 갖지 않으므로 존재 사실을 외부로 부터 숨길 수 있다.
-단점 : 패킷이 암호화 될 경우 침입 탐지가 어렵다. 트래픽 양 많아지면 성능 문제 발생.(False Positive 높다)
-2) HIDS
: 서버에 직접 설치되어 네트워크 환경과는 별개로 OS에서 부가적으로 설치된다.(컴퓨터 자체 기준)
: 기록되는 로그를 통해 호스트에 대한 침투를 탐지한다
-단점 : 오직 자신(컴퓨터)가 공격당하는 것에 한해 탐지 가능(OS기반이므로 호스트 성능에 부하 발생)
-탐지 시점에 따른 분류
- 허니팟(Honeypot)
: 방화벽이나 IDS 처럼 보안 문제를 해결하는 역할은 아니다. 잠재적 공격자에 대한 알림 기능, 보안 전략의 결점 파악 등 전반벅인 보안 메커니즘 향상에 사용됨.
(인터넷에서 보이게하면서 공격자들로부터 침해를 일부러 당하게 하여 그들의 행동, 공격기법, 목적등을 분석하는 역할.)
- 장점: 고의적으로 취약점을 내포하고 있어, 취약점에 대한 패키가 발표되지 않은 시점(Zero-day)에 발생하는 공격을 사전에 탐지할 수 있는 예방기술.
- 단점: 일반 포트를 사용하므로 네트워크 전반에 걸친 탐지를 못함. (허니팟이 노출되면 우회 당할 수 있음)
-스노트(snort)
: 네트워크 상에서 실시간 트래픽분석과 패킷 로깅을 수행하는 가벼운 침입 탐지 시스템이다.
: 버퍼 오버플로우나 스텔스 스캔 등 다양한 공격 탐지를 발견하며 팝업 메시지 같은 경보를 사용한다.
: 보안 커뮤니티를 통해 지속적으로 업데이트 되고 사용자가 직접 룰을 작성해서 추가할 수 있어서 최신공격에 대한 적응에 빨리 대처 가능
- 룰 헤더 예시
[action] [protocol] [source ip] [source port] [direction] [destination ip] [destination port]
alert tcp 192.168.0.70/24? any → 192.168.0.31 80
- False Positive(긍정오류)와 false negative(부정오류)
정상이용자의 이용 패턴과 침입자의 이용 패턴이 겹쳐지는 부분이 있음.
침입자의 행동 패턴을 넓게하면 많은 침입자를 찾을수는 있지만 정상적 사용자를 침입자로 오인하는 False Positive가 높아짐.
반대로 침입자의 행동패턴을 좁게하면 침입자를 정상적 사용자로 오인하는 False Negative가 높아짐.
-IPS특징
: 공격자의 침입 전 실시간으로 침입을 차단하며, IDS 기능을 일부 포함하면서 대처도 가능한 시스템.(IDS가 사후조치라면 IPS는 사전조치)
: IDS와 방화벽을 합친 것으로 볼 수 있으며, 패킷 하나하나 검사하여 침입으로 판단되면 해당 패킷을 실시간으로 폐기한다.
-동작 및 종류
-1) HIPS : 서버에 탑재되는 SW기반 IPS. 커널과 함께 동작하거나 커널에 독립적으로 동작하면서 시그니처 기반 또는 휴리스틱 기반 알고리즘 이용
-2) NIPS : HW기반으로 호스트에 독립적이며, 다양한 종류의 알고리즘 사용가능(실시간 패킷처리, 변경된 공격 탐지 기술 실시간 반응 기술 사용 가능)
-F/W 와 IPS,IDS 비교
:
○침입차단시스템(F/W)
: 침입차단 시스템(ACL :Access Control List)을 통해 트래픽에 대한 보안 정책을 설정.
-기능 : 접근제어, 로깅, 인증(사용자, 메시지인증), 암호화(데이터를 암호화해서 보낸다. 보통 VPN사용)
-유형 및 구조(4가지)
-1) 패킷 필터링 방화벽 : Rule 기반으로 ACL사용. 별도의 장비를 통해 적용가능( IP, 라우터 입력된 인터페이스, port를 통해 필터링)
-장점 : 단순, 빠름, 확장성, 성능 굿. 응용프로그램에 독립적
-단점 : 패킷 헤더정보만으로 필터링하므로 특정 어플리케이션의 취약점을 이용한 공격은 못막는다. 출발지와 목적지 정보 우회가능.(보안허점)
-2) 스테이트풀(statefull, 상태기반) 패킷 검사 방화벽 : 패킷 정보를 이용해 TCP 연결에 대한 정보를 기록한다.(TCP 순서번호를 추척해 세션하이재킹 필터링 가능)
: 방화벽은 누가 누구에게 어떤것을 헀는지 상태정보 테이블을 관리하며, 이 점을 제외하고 패킷 필터링과 같은 방식이다(네트워크와 전송계층에서 동작하며, 데이터링크 계층에서 받은 패킷을 접근제어 정책에 의해 상태 테이블에 정보를 남기고 접근 여부 결정)
-장점 : 패킷 필터링에 비해 조금 더 보안성이 좋다
-단점 : 상태 정보를 테이블에 저장하는데 DDoS 공격으로 테이블이 오버플로우되는 취약점 존재
-3) NAT(Network Address Translation, 네트워크 주소 변환, 공유기의 기능)
: 사설 주소와 범용주소를 매핑하며, 외부에서 내부 직접 접근 불가한 방식
- Static NAT : 사설 IP 하나당 공인 IP 하나 매칭
-Dynamic NAT : 공인 IP를 그룹으로 만들어 가져다 사용
-PAT : 포트번호를 이용해 적은 공인 IP주소에 사설 IP 주소를 연결 할당함.
-4) Proxy 방화벽
: 네트워크에 들어오고 나가는 패킷 안의 모든 정보를 검사함. 외부 사용자가 서버에 접근하면 프록시 서버가 응답함.
- Application Level Proxy 방화벽
: 어플리케이션 계층에서 침입차단 기능을 제공함.(어플리케이션 사용자 인증하며 시스템을 보호한다. 유연성이 높지만 비용이 많이 듬)
- Circuit Level 방화벽
: SOCKS 프록시 접속 프로토콜을 사용하여 채널을 만들고, 내부 네트워크의 호스트를 보호함.(전송계층에서 동작하므로 각각 별도의 서버가 필요없다)
-침입차단 시스템 배치
-1) Bastion Host 배치 : 침입차단 SW가 설치되어 내외부 네트워크 사이에서 게이트웨이 역할을 하는 시스템
-2) Host-based 방화벽 : 서버내에 SW로 설치되어 패킷 필터링, 침입차단 등을 수행
-3) Personal 방화벽 : 가정용, 인트라넷용에 적용 가능
-침입차단 시스템 구성
-1) Screening Route 구조 : 외부 네트워크와 내부 네트워크 사이의 경계에 위치
: 라우터에서 패킷 IP, 포트를 필터링하여 방화벽 역할을 함.
-장점 : 구조가 간단, 추가비용 필요없음
-단점 : 세부적 규칙 적용이 어렵고, 많은 규칙을 사용하기 어렵다(방어 깊이가 약함)
-2) Single Homed Host 구조 : Bastion Host 라고 생각하면 된다.(접근제어, 프록시, 로깅 등 방화벽의 가장 기본적인 기능 수행)
-단점 : 방화벽 손상되면 위협이 크다
-3) Dual Homed Host 구조 : 두 개의 인터페이스를 가지는 장비를 이용하여 하나는 외부, 하나는 내부를 연결(두개의 NIC를 이용해 트래픽 관리)
-장점 : 로깅, 관리, 유지보수가 쉽고, 내부 네트워크를 감출 수 있다
-단점 : 로그인 정보 유출이나 bastion host 손상시 피해가 크다
-4) Screened Host Gateway 구조 : 스크리닝라우터와 듀얼홈게이트웨이를 조합한 구조(1차가 스크리닝 라우터에서 패킷필터링. 2차가 Bastion Host로서 Dual Homed gateway가 2차 방어함)
-단점 : Bastion Host가 침입당하면 보안에 취약
-5) Screened Subnet 구조 : 외부 네트워크와 내부 네트워크 사이에 Subnet(DMZ라고함) 이라는 완충지대를 만듬
: 외부에서 이용하는 시스템을 보호해야할때 DMZ에 배치하며 보통 웹사이트, 이메일 서버, DNS서버가 위치하며, DB서버는 내부에 설치
-장점 : 보안성이 높고, 다양한 보안 정책 구현이 가능하다
-단점 : 설치 및 관리가 어렵고, 비용이 비싸며, 서비스 속도가 느려짐
- 웹 방화벽
: 일반적인 방화벽은 네트워크의 패킷이 정상이고 올바른 것인지를 판단하며, 웹 방화벽은 패킷이 아닌 사용자의 URL이 정상이고 올바른 요청인지를 판단 함.
(OSI 7 Layer에서 일반 방화벽은 패킷이 돌아다니게 되는 L3, L4(네트워크 및 전송 계층) 레벨에서 동작하고, 웹 방화벽은 HTTP와 HTTPS 요청이 있는 L7 레벨(응용 계층)에서 동작 함)
- 주요기능 1) HTTP의 Request/Response 메시지 내용을 분석
- 주요기능 2) URL 단위의 탐지 기능.(예: 웹 페이지에서 서비스를 제공할 URL을 설정하면, 등록된 URL 외의 다른 URL에서의 요청은 거부시킴)
- 주요기능 3) URL에서 악의적인 공격 패턴(XSS, SQL Injection, OS Command Injection 등)을 검출해 내는 문자열 비교정책 기능.
- 주요기능 4) 파일 업로드 제어기능과 파일 검사기능. 즉, 사용자들이 웹 서버로 업로드하는 파일에 대해 파일의 종류에 따라 업로드를 허용 또는 차단.
○ VPN
-정의 : 공중 네트워크를 마치 전용회선처럼 사용할 수 있게 해주는 네트워크(데이터 암호화 및 사용자 인증하고 사용자 액세스 권한 제한 제공)
(공중망을 이용해서 필요시에만 전용선과 같이 사용)
-특징 : 사용자 필요에 따라 자체적인 보안네트워크 구축 가능(IPSec , TLS/SSL)
-장점 : ISP 들이 제공하는 인터넷 망 이용. IPSec, MPLS(Multi Protocol Label Switching) 이용.
-단점 : ISP마다 다른 표준 채택해서 연동문제 발생, 보안성 미약
-VPN 구현 기술
-1) 터널링 : VPN내 두 호스트간에 가상경로를 이용해 투명한 통신서비스 제공
-2) 암호화 및 인증 : 정보의 기밀성 제공위해 대칭키 사용, 공개키 암호방식 사용.(사용자 인증은 VPN 접속 요구시 신원 확인하는 보안서버의 인증을 받아야 접속허가가 됨)
-3) 접근제어 : 암호화하지 않은 IP 패킷 정보에서만 필터링 수행 가능(암호화된 패킷에는 적용 불가능)
-4) VPN 기능 : 데이터 기밀성, 무결성, 근원인증(송신자 확인하는 인증), 접근 통제
-VPN 분류
-1) Intranet VPN
: 기업내부 인터넷과 동일한 통신장비 이며 응용프로그램을 사용할 수 있고 방화벽과 ID, 암호를 이용해서 접속
-2) Extranet VPN
: 고객사와 협력업체들에게 intranet 이용할 수 있게 확장한 것(기업간 원활한 데이터 교환 목적)
-3) Remote Access VPN
: 원격접속자는 무선 및 전화접속을 이용해 ISP의 NAS에 접속
-VPN 구성(4가지)
-1) 터널링 : 송수신자 사이 파이프를 이용한다. 파이프는 터널링을 지원하는 프로토콜을 사용해서 구현하고 사설망과 같은 보안 기능 제공.(터널링 데이터를 페이로드라 한다)
-2) 2계층 터널링 프로토콜 : 주로 사용자와 접속하고자 하는 위치의 LAN연결. (사용자측에서 인증절차 후 터널링 시작)
(1) 클라이언트 개시 VPN(Client-Initiated VPN)
- PC 등 사용자 장비에 VPN 지원 소프트웨어 설치
- 소규모 네트워크
- 인증절차 이후 NAS는 터널링 프로토콜에 관여하지 않음
- NAS는 ISP 에서 관리, 해당 사용자가 유효한 사용자인지 판단하는 인증 기능 (ID, 패스워드)
- 해당 목적지의 게이트웨이와 VPN 터널링 설정(?NAS 관여안함)
(2) NAS 개시 VPN(NAS-Initiated VPN)
- 개인 PC에 별도 장치 및 소프트웨어 불필요
- NAS가 인증절차, VPN 터널링에 책임짐
- 하나의 터널에 다중접속 지원하므로 클라이언트 개시 VPN 보다 효율적인 네트워크 관리 가능
(3) PPTP(Point-to-Point Tunneling Protocol)
- IP, IPX 또는 NetBEUI 페이로드 암호화, IP해더 캡슐화해서 전송
?- PPP에 기초하며 두대 컴퓨터가 직렬 인터페이스 이용해서 통신할 때 사용, 전화선을 통해 서버에 연결하는 PC에 자주 사용되었음
(4) L2F(Layer 2 Forwarding Protocol)
?- 시스코사에서 제안된 프로토콜
- NAS 개시 VPN형이라서 사용자는 별도 SW 필요없음
- 하나의 터널에 여러개 연결 지원해서 다자간에 통신 가능
?- 전송 프로토콜로 TCP가 아닌 UDP 사용
(5) L2TP(Layer 2 Tunneling Protocol)
?- PPTP 와 L2F 결합한 방법
?- 다양한 상위 로컬 네트워크 프로토콜 사용 가능
?- PPTP와 L2TP 모두 2계층에서 동작
-3) 3계층 터널링 프로토콜
(1) IPSec
?- IPSec과 MPLS로 대표해서 주로 LAN-to-LAN VPN에 이용됨
?- LAN-to-LAN VPN은 주로 기업 본사와 지사 사이 네트워크를 말함
- 데이터 링크 계층과 독립적
- 우수한 보안성
- 전송모드 : IP 페이로드 암호화해서 IP 헤더로 캡슐화
- 터널모드 : IP 패킷 모두 암호화해서 전송
- AH : 데이터의 순서번호 보유, 데이터가 송신되는 동안 수정되지 않음을 보장, 암호화 기능 없음
- ESP : IP 페이로드 암호화, 기밀성 제공?
-4) 인증
(1) 데이터 인증 : ?MD5, SHA-1 등과 같은 해시 알고리즘 이용하는 방법
? (2) 사용자 인증 : VPN 에서 필수적 항목
? - peer-peer 방식
-- PAP(Password Authentication Protocol) : PPP 연결시 사용되는 인증 프로토콜, 인증을 위한 정보가 암호화되지 않아서 안전하지 않고 재전송 공격이나 과도한 반복요청에 대한 처리 과정 없음
-- CHAP(Challenge Handshake Authentication Protocol) : PAP와 같은 용도에서 PPP 연결인증과정 보안을 위해 보안요소 강화시킨 프로토콜
?
- client~server 방식
-- RADIUS : 외부에서 회사 네트워크로 접속하는 사용자 인증, 회사가 중앙 DB 내에 사용자 프로필 유지하고 있음, 모든 원격지 서버 공유
-- TACACS(Terminal Access Controller Access-Control System) : 인증에 필요한 사용자 ID, 암호, PIN 암호키를 서버에서 DB형태로 관리
○네트워크 보안동향
-역추적 시스템 : 해킹을 시도하는 해커의 실제 위치를 실시간으로 추적하는기술.
- tcp 연결 역추적 : 호스트 기반 / 네트워크 기반
- ip 패킷 역추적
-ESM : 기업과 기관의 보안 정책 반영 / 중앙 통합관리, 침입 종합대응, 통합 모니터링 가능한 지능형 보안관리 시스템
-1) 통합로그 관리
-2) 이벤트 필터링
-3) 실시간 통합 모니터링 경보, 상황전파
-4) 로그 분석 및 의사결정지원
-5) 긴급대응
-6) 리포팅
-NAC : 접속 단말의 보안성 검증해서 보안성 강제화, 접속 통제할 수 있는 보안 인프라.(내부 네트워크 접속 전 보안정책에 준수했는지 필터링하여 접속통제)
-MAC주소 기반으로 접근제어 및 인증(등록된 사용자는 접속가능 이를 위해 에어전트 시스템 설치 필요)
-장점 : ip충돌문제 해결과 공격대상 시스템 로그를 통해 공격자 쉽게 찾아낼 수 있다.
-SIEM : 로그 분석해서 이상 징후 파악 후 결과를 경영진에게 보고할 수 있도록 해주는 시스템(이벤트로그 실시간 수집/분석) 또한, 침해 공격로그에 대한 포렌식과 컴플라이언스 또는 법적 조사를 위해 리포팅
-APT (지능형 지속 위협) : 특정대상을 겨냥해서 다양한 공격을 사용하여 장기간 지속적으로 공격하는 것(제로데이와 같은 취약점을 이용한 공격)
(1) 워터링 홀(watering hole) 공격
- 사자가 먹이를 습격하기 위해 물웅덩이(워터링 홀) 근처에서 매복하고 있는 형상 빗댐.
- 공격자는 사전에 공격대상이 주로 방문하는 웹사이트 정보 사전에 파악하고 제로데이 취약점 이용해서 해당 사이트에 악성코드 심어둠.
?
(2) 스피어 피싱(Spear phishing) 공격
- ?작살로 찍기. -> 특정인을 표적으로 함
- 신뢰할 만한 발신인이 보낸 것처럼 위장해서 악성코드 첨부한 메일 보내거나 악성 웹사이트로 유도함.
######################################################
○ FTP
1. 제어연결 : 클라이언트에서 서버로의 명령과 서버의 응답 연결
- 21번 포트 사용
- 전체 FTP 세션 동안 계속 연결 상태 유지
2. 데이터 연결 : 파일이 전송될 때 생성되는 데이터 연결
- 20번 OR 1024번 이후 포트 사용
- 각각 파일 전송때마다 설정되며 전송 완료시 폐쇄
3. 능동모드
- 많이 사용함, 클라이언트가 서버에게 어떤 포트로 데이터를 전송할지 알려주는 방식(클라이언트가 원하는 포트 사용)
1) 클라이언트가 서버의 Command Port(21번)로 데이터전송을 위해 사용할 포트를 알려줌
2) 서버가 Command Port(21번)에서 클라이언트로 ACK 신호를 보냄
3) 서버가 Data Port(20번)에서 클라이언트가 알려준 포트로 연결을 시도
4) 클라이언트가 서버의 Data Port(20번)로 ACK 신호를 보냄
- 클라이언트는 1024 이상의 임의의 포트를 사용
- 3)에서 서버가 클라이언트로 연결시도한다는 점에서 문제점이 발생(방화벽 등에 막힐 수 있음) → 수동모드의 사용
4. 수동모드
- 방화벽과 같은 보안솔루션 때문에 방화벽을 통해 FTP를 사용해야하는 문제점을 해결
- 서버가 클라이언트로 데이터를 보내고자하는 포트를 정함
1) 클라이언트가 서버의 Command Port(21번)로 Passive Mode로 접속하겠다고 알림
2) 서버가 Command Port(21번)에서 클라이언트에게 데이터전송을 위해 사용할포트 알림
3) 클라이언트가 서버가 알려준 포트로 연결을 시도
4) 서버가 클라이언트로 ACK신호를 보냄
- 클라이언트는 1024 이상의 임의의 포트를 사용
- 서버가 1024 이상의 포트를 열어둬야 된다는 점에서 보안적 문제점 있음
→ PORT : 클라이언트가 포트 선택
→ PASV : 서버가 포트 선택
5. Anonymous FTP(익명 FTP)
- 사용자들이 할당받은 ID 없이도 FTP 서버에 접근하고 서비스를 이용할 수 있게 해줌
- FTP 서버에 접속 후, 사용자 아이디에는 Anonymous, 패스워드에는 아무내용 넣어도 상관없으나 자신의 이메일적는게 예의
6. TFTP(Trivial FTP)
- FTP보다 간단하고 최소한의 기능만 제공해주는 프로토콜
- FTP는 TCP를 이용하는반면, TFTP는 UDP를 사용함
- 디렉토리나 파일의 목록을 보는 명령이 없기에, 파일명을 모르는 사용자는 해당 파일 다운받지못함 (Brute Force Attack 등으로 가능하긴 함)
- 인증절차가 없기에, 설정이 잘못되어 있으면 누구나 파일에 접근이 가능
- Unix/Linux에서 사용자 별로 FTP Server에 접근 제어를 하려면 /etc/ftpusers에 등록함(등록되면 접근이 거부됨)
- Windows에서는 FTP Server를 만드려면 IIS가 설치되어야 함
7. FTP 공격 유형
- ftp가 비밀번호 요구하지만 이 비밀번호는 평문으로 되어 있어서 가로채기 쉬움
- 보안을 위해 ftp 응용계층과 tcp 계층사이에 보안소켓계층(SSL) 추가(SSL-FTP=FTPS)
○ SFTP : SSH 프로토콜의 일부분(클라이언트와 서버 사이에 보안연결시 사용)
(1) TFTP 보안
- 보안 고려 안함.
- 중요하지 않은 파일들에만 접근할 수 있도록 제한하는 것
- TFTP 서버 근처에 라우터 보안설정해서 특정한 호스트들만 서버에 접근할 수 있게 하기
(2) Bounce attack
- FTP 서버가 데이터를 전송할 때, 목적지를 검사하지 않는 설계상의 문제점을 이용한 공격
- 공격자가 FTP 서버를 거쳐 간접적으로 임의의 호스트에 접근하거나 존재 여부를 파악가능
- 포트 스캐닝에 쓰일 수 있음
(3) 대응 방법
- FTP의 설계상의 문제이므로, 원래 규약을 어느정도 제한하는 방법
- 공격에 사용되는 FTP 서버는 주로 Anonymous FTP 서버이기에, 꼭 필요한 경우가 아니면 Anonymous FTP는 사용 X
- FTP 서버에 접속가능한 IP주소를 필터링 / 익명 사용자는 파일 업로드 못하도록 제한
(4) anonymous FTP 취약점
- $root/etc/passwd 파일에서 anonymous ftp의 불필요한 항목 제거
- 비활성화 : 셀부분에 /bin/false, /sbin/nologin
- FTP 서비스
(1) proftpd
- /etc/passwd, /etc/shadow에 사용자 계정이 있는지 검사
- /etc/ftpusers에 사용자 id가 있으면 거부(허용X)
- proftpd 설정파일 옵션
- maxclients : 최대 접속 허용
- timeoutidleftp : 접속후 아무런 데이터 전송이 없는 idle 상태
- timeoutsession 일정시간 후에는 무조건 접속 종료
(2) vsftpd(vey secure ftp daemon)
- PAM 지원
- xferlog 표준 로그파일보다 상세한 자체로그파일형식 지원
- standalone, inetd를 통한 운영 모두 지원
- /etc/vsftpd/ftpusers : PAM에서 사용하는 ftp 접속제한자 리스트 파일(접속 불가능)
- /var/log/xferlog : FTP 업로드 및 다운로드 기록하는 로그 파일
○ 이메일 보안
1. mail 서비스 운영
- MUA(Mail User Agent) : 사용자가 메일을 송수신하기 위해 사용하는 프로그램
- MTA(Mail Transfer Agent) : MUA로부터 전달받은 메일을 다른 MTA로 전송하는 서버프로그램(목적지는 수신자의 MTA)
- MTA는 SMTP(TCP 25)를 이용해 다른 MTA로 메일을 전달함(SMTP 서버라고도 함)
- MDA(Mail Delivery Agent) : 최종 MTA에 도착한 후, 수신된 메일을 사용자의 메일함에 저장하는 프로그램(POP과 IMAP방식)
- MRA(Mail Retrieval Agent) : MDA가 저장한 메일을 MUA로 가져오는 프로그램
- POP3(Post Office Protocol 3, TCP 110)
- 기본적으로 MRA가 가져간 메일은 서버에서 삭제됨
- 추가적인 옵션을 통해, 삭제를 안되게 할 수 있음
- 선택적으로 메일을 가져올 수 X
- IMAP(Internet Message Access Protocol, TCP 143)
- POP3와 유사한 역할을 하지만, 더 많은 기능을 제공
- 기본적으로 MRA가 메일을 가져가도 서버에 계속 존재
- 메일의 제목 / 본문의 일부 등의 내용만 볼 수 있음
- 메일함이 폴더 형태로 구성되어 있어서, 모바일 장치에서도 사용하기 편함
- MIME(Multipurpose Internet Mail Extensions)
- 이메일을 위한 인터넷 표준 포맷
- STMP가 7bit ASCII 문자만을 지원하기에, 그 외 형태의 데이터는 제대로 전송되지 X
- 8bit 이상의 코드를 가지는 문자나 파일들은, 이메일 프로그램이나 서버에서 자동으로 MIME형식으로 변환해 전달
2. SMTP 명령
- HELLO:challenger.ate.fhda.edu → 클라이언트가 자신이 누구인지 알리기 위해 사용
- MAIL FROM:furtherme@challenger.ate.fhda.edu → 송신자가 누구인지.
- RCPT TO:furtherme@naver.com → 수신자가 누구인지
- VRFY:furtherme@naver.com → 수신자 주소 조회
3. 이메일 콘텐츠 보안
(1) PEM(Privacy Enhanced Mail)
- IETF가 개발한 인터넷 표준안으로 PGP보다 보안 능력이 뛰어남
- 전송하기 전 자동으로 암호화하여 전송 도중 스니핑당해도 내용 확인 불가능
- 중앙집중식 키 인증 방식으로 널리 사용되기 어려움
(2) PGP(Pretty Good Privacy)
- MIME 포맷에 암호화, 전자서명 추가
- 전자메일에 기밀성 / 메시지 무결성 / 사용자 인증 / 송신 부인방지 제공(수신 부인방지X)
1) 키링 : 각 노드에서 한 쌍의 데이터 구조 제공해야 함
하나는 노드가 소유한 공개키/개인키 쌍 저장, 다른 하나는 노드가 알고 있는 다른 사용자의 공개키 저장용
2) PGP 알고리즘
[1] 디지털 서명 : RSA/SHA
- 메시지 해시한 후 이 메시지 다이제스트를 송신자 개인키로 DSS나 RSA로 암호화
[2] 메시지 암호화 : IDEA, 3DES, Diffie-hellman, RSA
- 대칭키로 메시지 암호화(IDEA, 3DES)
- 수신자 공개키로 세션키 암호화(Diffie-hellman, RSA)하고 메시지에 첨부
[3] 압축
- 서명 후에 ZIP이용해서 메시지 압축하고 암호화함
[4] 전자메일 호환성
- 암호화된 메시지를 기수-64(radix-64)변환 이용해서 ASCII 문자열로 변환
3) PGP 인증서
- X.509 인증서 : 루트에 있는 CA 기관 전적으로 신뢰(인증기관에서 인증서까지 단일경로)
- PGP 인증서 : CA들이 필요없음, 링에 속해있으면 누구라도 인증서에 서명가능
- 신뢰에 대한 계층구조 존재안함(트리도 없음)
- 인증기관에서 인증서까지 신뢰라인에 다중경로 존재
(3) S/MIME(Secure Multipurpose Internet Mail Extensions)
- MIME데이터에 전자서명+암호화
- 기밀성, 무결성 제공
- 명문-서명 데이터(Clear-signed data) : 디지털서명만 base64로 부호화하고 내용은 부호화 안해서 S/MIME 기능갖춘 수신자만 볼 수 있음
- 서명된 데이터(Signed data) : 메시지 다이제스트를 서명자 개인키로 암호화해서 디지털 서명 생성, base64로 서명, 내용 모두 부호화
- 동봉된 데이터(enveloped data) : 기밀성 제공
- 서명되고 동봉된 데이터(signed and enveloped data)
- 다이제스트된 데이터(digested data) : 무결성 제공
* 인증서 처리
- X.509 공개키 인증서 사용
- 베리사인인증서 : 다른 응용프로그램과 호환되도록 하는 CA서비스 제공(X.509 인증서발행)
4. 스팸메일
- 메일서버 수신차단 : 송신자IP, 메일주소, URL 포함한 스팸발신처 블랙리스트 관리
(1) SPF(Sender Policy Framework)
- 이메일 발송자 서버를 DNS에 미리 등록, 수신자 서버에 도착하면 스팸메일 차단
(2) 스팸필터
- 메일서버 앞단에 위치하여 프록시 메일서버로서 동작
- SMTP 프로토콜을 이용한 DoS공격, 폭탄메일, 스팸메일 차단.
(3) 스팸메일 방지 보안도구
- procmail, sanitizer, inflex, spamassassin
5. 기타 이메일 보안 대응
(1) 메일 밤(mail bomb) 대응 방안
- 일종의 DoS, DDoS 공격이므로 anti-DoS 기반의 전용 DoS공격 차단솔루션으로 방어
(2) 이메일 바이러스 대응
- 메일 서버 측면의 anti-virus, anti-spyware 전용 보안솔루션 도입하여 서버쪽에서 바이러스 체크 기능 통해 차단
6. sendmail : SMTP 프로토콜 통해서 메일 서버 간에 메일 주고받는 역할
- /var/spool/mqueue : sandmail 큐 디렉터리(메일을 일시저장)
- /etc/mail/access : 릴레이 제한 및 설정파일
- RELAY : RELAY 허용, 호스트에서 지정된 메일의 수신,발신 허용
- REJECT : RELAY 허용 X
- DISCARD : 메일 받은 후 폐기, 폐기통보하지않음
- OK : 조건없이 허용(RELAY)
- /etc/mail/sendmail.cf 파일 설정
- maxmessagesize = 발송메일의 최대크기 제한설정
- M = 한번에 받을 수 있는 수신메일 최대 크기 설정
- maxhopcount : 최대 홉수 제한 = 최종 수신서버 갈때까지 거치는 메일서버개수
○ 웹보안 : tcp/ip와 http 프로토콜이 보안서비스 제공하지 않아서 웹 보안에 대한 위협이 있음
1. 웹문서
- 정적문서 : 서버에서 생성되어 저장된 고정내용문서
- 동적문서 : 브라우저가 문서 요청할때마다 웹서버에 의해 생성, 문서의 고정부분은 html로 작성, 변화분은 스크립트로 작성(php, jsp, asp 등→ 서버 사이트 스크립트)
- 액티브 문서 : 클라이언트 사이트에서 수행될 프로그램(자바 애플릿, 자바스크립트)
2. HTTP(Hypertext Transfer Protocol)
(1) 클라이언트의 요청메시지 → 요청라인 ~ 헤더라인 ~ blank ~ body
요청라인에는 메소드(method), URL, 프로토콜 버전 들어감
* 요청라인의 ‘메소드’
- GET 방식 : 주소입력란에 데이터가 표시되서 보안취약함
- POST 방식 : HTTP 헤더 영역이 아닌 바디 영역에 소켓이용해서 데이터 전송, 웹페이지 변경하거나 내용 추가해서 서버에 전송할 때 사용
- PUT : 몸체(body)에 콘텐츠 덧붙여서 서버에 저장(POST와 비슷)
- OPTIONS : 시스템에서 지원하는 메소드 종류 확인 가능
- CONNECT : 웹서버에 프록시 기능 요청
(2) 서버의 응답메시지 → 상태라인 ~ 헤더라인 ~ blank ~ body
* 상태라인의 'status code'
- 200번대 [성공]
-- 200 : 요청 성공
-- 201 : put메소드에 의해 원격 서버에 파일이 정상적으로 생성됨
- 300번대 [재지정, redirection]
-- 300 : 요청된 URL이 여러개 데이터 명시
-- 301 : 브라우저 요청을 다른 URL로 항시 전달, URL정보는 location 헤더에 나타남
-- 302 : 브라우저 요청을 임시 URL로 바꾸고 location헤더에 임시 변경한 URL 적임, 클라이언트가 다시 같은 요청하면 기존 URL로 돌아감
- 400번대 [클라이언트 오류]
-- 400 : bad request, 요청메시지의 문법오류
-- 403 : forbidden, 클라이언트 요청에 대해 접근차단
-- 404 : not found, 클라이언트가 서버에 요청한 자료가 존재하지 않음
- 500번대 [서버 오류]
-- 500 : internal server error, 메시지 손상과 같은 오류 발생
(3) 프록시 서버
- 최신요청에 대한 응답들의 복사본 갖고 있는 컴퓨터(클라이언트 쪽에 설치)
- http 클라이언트는 프록시 서버로 요청 보내고 프록시 서버는 캐시 검사
- 캐시에 저장되어있지 않으면 대응 서버로 요청 보냄
(4) http 보안
- HTTPS : SSL위에 수행되는 HTTP → 웹브라우저와 웹서버 간의 안전통신 구현
- 443번 포트 사용, SSL호출함
- 기밀성, 무결성, 클라이언트와 서버 인증 제공
- 스니핑은 어렵지만 사용자 입력값에 대한 검증은 하지 못함
cf. SHTTP : 기존 HTTP에 보안요소 첨가 개선한 것.
3. SSL/TLS(Secure Socket Layer, Transport Layer Security)
- 암호화프로토콜, 특정 암호기술에 의존하지 않음
- http 뿐만 아니라 다른 프로토콜도 가능 ftps://
- URL은 https://로 시작.
(1) SSL
- 기밀성(DES, RC4 대칭키 사용)
- 클라이언트와 서버 상호인증
(RSA 비대칭키 사용, DSS 전자서명알고리즘, X.509 공개키인증서)
- 메시지 무결성 : 해시 알고리즘 사용(MAC을 메시지에 포함)
- 부인방지 없음
1) handshake 프로토콜 : 서버와 클라이언트 사이 인증
- 1단계 : client_hello, server_hello
- 2단계 : 서버인증(certificate, server_key_exchange, certificate_request, server_hello_done)
- 3단계 : 클라이언트인증(certificate, client_key_exchange, certificate_verify)
- 4단계 : change_ciphers_spec, finished(클라이언트, 서버 각각)
2) changecipherspec 프로토콜
- 계류상태를 현재상태에 복사, 암호도구(cipher suites)를 갱신하는 것
3) alert 프로토콜
- SSL 관련 경고 할 때 사용
4) record 프로토콜
- 대칭키 암호 사용해서 메시지 암호화하고 통신하는 부분
- handshake, changecipherspec, alert 프로토콜, 응용계층에서 오는 메시지를 전달
(2) TLS (전송계층보안) : SSL을 인터넷 표준버전이 되도록 만든 IETF표준, SSL 레코드 형식과 동일.
4. 웹 보안위협
(1) OWASP TOP10(2013년)
- A1 Injection
- A2 인증 및 세션 관리 취약점
- A3 XSS
- A4 취약한 직접 객체 참조
- A5 보안 설정 오류
- A6 민감한 데이터노출
- A7 기능 수준의 접근통제 누락
- A8 CSRF(크로스 사이트 요청 변조)
- A9 알려진 취약점 있는 컴포넌트 사용
- A10 검증되지 않은 리다이렉트 및 포워드
(2) SQL injection
- 입력값에 대해 필터링 없어서 발생
- 공격자가 url 입력란에 SQL문 삽입해서 DB 정보 열람, 조작할 수 있는 취약점
- ‘ , “ , space, --, # 등의 특수문자와 SQL 명령어 필터링
- MS-SQL, ORACLE에서는 --가 주석
- 대응책 : SQL 서버의 에러 메시지 표시하지 않게하기, 일반 사용자 권한으로 시스템 저장 프로시저에 접근 불허
(3) XSS(CSS, Cross Site Scripting)
- 클라이언트 상에서 스크립트 실행됨
- <,>,&,",“ 같이 스크립트 생성에 사용되는 문자열을 <, > 등으로 변경해서 실행안되도록 함
(4) CSRF(Cross Site Request Forgery, 사이트 간 요청 변조)
- 공격타켓이 서버. 서버에서 스크립트 실행됨
- 요청 변조란 공격자가 입력한 스크립트를 웹사이트 방문자가 실행함으로써 방문자의 권한으로 스크립트가 실행되도록 만드는 방식
- 대응책
-- GET보단 POST 방식 사용
-- 입력화면 폼과 해당 입력을 처리하는 프로그램 사이에 토큰을 사용해서 공격자의 직접적인 URL 사용이 동작하지 않도록 처리.
-- 사용자 세션검증과 재인증 유도
(5) 보안설정 취약점
- 디렉터리 리스팅(directory listing) : 웹서버의 특정 디렉터리의 파일과 목록이 모두 나열되는 것
- 백업 및 임시파일 존재 : login.asp.bak 이런 형태로 남으므로 삭제해야 함
- 주석 관리 미흡
(6) 쿠키 위조
- 상태정보들은 세션에 저장(서버측)
- 상태 유지하기 위해 필요한 정보는 쿠키에 저장(클라이언트 측)
(7) 웹의 취약점 보완
- 특수문자 필터링
- CSS 기반 언어는 웹 프록시를 통해 웹브라우저로 전달되는 과정에서 변조될 수 있어서 CSS기반 언어로 필터링하면 쉽게 공격자가 조작할 수 있음
- 필터링은 SSS(Server Side Script)로 수행
(8) 지속적인 세션 관리 - 세션 인증 로직을 표준화시키기
'TBD9 > TBD12' 카테고리의 다른 글
[스크랩]네트워크 보안 (0) | 2018.12.03 |
---|