[정보보안기사 PART 06] 애플리케이션 보안 - 각종 애플리케이션 보안위협 및 대응책


Section 39 각종 애플리케이션 보안위협 및 대응책

 

1. 각종 애플리케이션 보안위협 및 대응책

 

1) 좀비와 봇(Bot)

 감염된 시스템의 CPU와 네트워크 자원을 공격자 자신의 용도로 사용하는 종류

 이렇게 감염된 시스템을 봇, 좀비 혹은 drone이라고 부른다.

 

봇의 사용 예

 분산 DDoS 공격

 Spamming 공격

 새로운 악성코드의 번식

 광고 add-on 및 Browser Helper Object(BHO)의 설치

 IRC 채팅공격

 

2) 살라미 공격

 많은 사람들로부터 눈치 채지 못할 정도의 적은 금액을 빼내는 컴퓨터 사기수법

 

3) 데이터 디들링(Data Diddling)

 원시정보 자체를 변조 및 위조해 끼워 넣거나 바꿔치기하는 수법으로, 디스크 속에 대체할 자료를 만들어 두었다가 데이터를 추가하는 수법

 

4) 이블 트윈 공격(Evil Twin Attack)

 소셜 엔지니어링(사용자를 속이는) 공격 기법

 

 

 

2. 자바 보안

 

1) 자바(Java) 보안

 클래스 로더(Class loader)

   자바 런타임 환경에서 클래스를 로드, 업로드한다.

   언제, 어떻게 클래스를 자바 실행환경에 추가할지 결정한다.

   자바 실행환경의 중요 부분이 가짜 클래스로 바꿔치기 되지 않도록 보호하는 기능이 있다.

 

 바이트코드 검사기(Verifier = Interpreter)

   타입 안정성 보장, 메모리 경계 체크를 수행

   Java VM상에서 바이트코드를 실행하기 전에 다양한 수준에서 바이트 검사를 수행

   악의성 검사 : 바이트코드가 접근제한을 침해하거나 잘못된 타입의 정보를 사용하는 객체에 접근하는 등 악성코드를 포함하고 있는지 검사한다.

 

 보안관리자(Security manager)

   악의적인 기능으로부터 시스템 보호한다.

   애플릿이 사용자 인터페이스를 사용하는 방식을 제한한다.

   위험한 연산이 발생하지 않는지 검사하는 싱글 자바 오브젝트가 존재한다.

 

2) 모바일 코드(mobile code)

 여러 종류의 플랫폼 집단에 변형되지 않은 채로 옮겨져 동일한 의미로 실행될 수 있는 프로그램

 원격 시스템에서 로컬 시스템으로 옮겨지고 사용자의 구체적 명령 없이 로컬 시스템에서 실행된다.

 모바일 코드는 사용자 워크스테이션으로 전송하는 바이러스, 웹, 트로이목마의 메커니즘처럼 작동한다.

 

 

 

 

 

 

*출처:[알기사] 2019 정보보안기사&산업기사

*해당 블로그는 개인적인 공부와 정보 공유를 위해 만들었습니다.

[정보보안기사 PART 06] 애플리케이션 보안 - 침해사고 대응(디지털 포렌식)


Section 38 침해사고 대응(디지털 포렌식)

 

1. 해킹

 

(1) 해킹의 개요

1) 해킹의 정의

 어떠한 의도이든 상관없이 다른 컴퓨터에 침입하는 모든 행위

 전산망을 통하여 타인의 컴퓨터 시스템에 액세스 권한 없이 무단 침입하여 부당행위를 하는 것

 

2) 해커의 정의

 기술 개발에 정열을 쏟는 고급 기술자를 가리키며 선진국에선 사이버 범죄자인 cracker완느 엄격하게 구분하여 사용

 

 

 

2. 침해사고 대응과 포렌식

 

(1) 컴퓨터 침해 대응팀

1) CERT(Computer Emergency Response Team) 개요

 해킹과 바이러스에 대항하는 보안기술을 개발하고 서비스하는 컴퓨터 응급 대응센터

 보안상의 허점과 부정이용 사고들에 대한 경보와 사고처리 및 예방을 위한 정책 수립 등을 수행

 

2) CERT의 역할

 침해사고 예방/대응 기술연구 및 전파

 취약점 진단 및 조치, 모니터링, 교육 등 침해사고 예방 활동

 KrCERT/CC 등 외부 기관의 대응협력 활동

 침해사고 접수, 분석, 피해복구 등의 침해사고 대응 활동

 

3) 사고대응 7단계 절차

 1단계 사고 전 준비 과저

 2단계 사고 탐지

 3단계 초기 대응

 4단계 대응 전략 체계화

 5단계 사고 조사

 6단계 보고서 작성

 7단계 복구 및 해결

 

(2) 디지털 포렌식(Digital Forensics)

1) 개요

 다양한 디지털 장치에서 범인과 연관된 자료를 발견하고 분석하여 법적인 문제를 해결하는 작업

 

2) 포렌식의 기본 원칙

 포렌식을 통해서 증거를 획득하고, 이 증거가 법적인 효력을 가지려면 그 증거를 발견(Discovery)하고, 기록(Recording)하고, 획득(Collection)하고, 보관(Preservvation)하는 절차가 적절해야 한다.

 

기본원칙

 정당성의 원칙

 재현의 원칙

 신속성의 원칙

 연계 보관성의 원칙

 무결성의 원칙

 

3) 포렌식 수행 절차

 1단계 수사 준비

 2단계 증거 수집

 3단계 보관 및 이송

 4단계 조사 및 분석

 5단계 보고서 작성

 

4) 포렌식 기술

 디스크, 시스템, 네트워크, 인터넷, 모바일, 데이터베이스, 암호 포렌식 기술

 

5) 디지털 포렌식 도구

 - Encase

 - FTK(Forensic ToolKit)

 

(3) 증거(Evidence)

1) 증거 규칙(Rules of Evidence)

 증걸르 수집하고, 조사하고, 보존하고, 제시하는 것은 법적 절차이기 때문에 증거를 제시할 법원이 위치한 그 지역의 법을 따라야 한다.

 

2) 보호관리 사슬(Chain of Custody) = 증거 담당자 목록

 증거의 연속성을 가리키다. 즉, 수사관은 현장에서 수집된 증거가 법정에 제출될 때까지 거쳐간 경로, 그 증거를 다룬 모든 사람, 증거가 옮겨진 장소와 시간을 추적할 수 있어야 한다.

 증거 담당자 목록을 문서화하는 것은 증거 기록을 남기는 가장 중요한 목적의 하나이다.

 

3) 디지털 증거물 분석

 Timeline 분석 : 파일 생성, 변경, 접근, 삭제시간 등

 시그니처 분석 : 의도적으로 파일 확장자를 변경해 놓은 파일을 간단히 파악

 Hash 분석 : 시스템 내의 파일이 변경되었는가를 확인, 기존에 알려진 파일과 같은 파일이 존재하는가를 확인

 로그 분석 : 웹 브라우저 로그, 메일 로그, FTP 로그 등

 프로세스 분석 : 현재 수행되고 있는 프로세스의 메모리 내용을 조사, 의심되는 실행 파일 조사

 

4) 사라지기 쉬운 데이터 보존

 

5) 디지털 증거보존

 

(4) 디지털 증거 복구

1) 삭제된 데이터 복구

2) 감춰진 데이터 찾기

 

(5) 데이터 복구 기법 피하기(Data Sanitization)

1) 디스크 덮어쓰기

2) 소자(Degaussing)

3) 물리적으로 디스크 파괴

 

 

 

 

 

*출처:[알기사] 2019 정보보안기사&산업기사

*해당 블로그는 개인적인 공부와 정보 공유를 위해 만들었습니다.

[정보보안기사 PART 06] 애플리케이션 보안 - 전자상거래 보안


Section 37 전자상거래 보안

 

1. 전자상거래 개요

 

1) 전자상거래(Electronic Commerce) 개념

 광의적 개념 : 전자상거래 주체인 정부, 기업, 개인 간의 전자정보를 통하여 이루어지는 상거래 전반을 의미하고, 광고, 수, 발주, 개발, 구매, 결제 등 모든 경제활동을 포함하며, 인터넷 전자상거래뿐 아니라 EDI, CALS도 포함된다.

 협의적 개념 : 일반 소비자를 대상으로 인터넷이나 통신망을 이용한 상품관련 정보 제공, 협상, 주문, 납품, 대금지불, 자금이체 등을 통해 마케팅, 판매활동을 수해아는 것을 말한다.

 

 

 

2. 전자상거래의 정보 보호

 

(1) 개요

1) 기본 개념

 전자상거래를 위한 다양한 서비스가 등장하고 있으나, 기밀성, 메시지 인증, 구매자 및 판매자 인증, 송수신 부인방지 등과 같은 사용자 거래정보 위협에 대한 완벽한 대책수립이 없는 실정

 

2) 전자상거래의 보안 공격 유형

 - 인증에 대한 공격

 - 송,수신 부인 공격

 - 기밀성, 무결성에 대한 공격

 

3) 전자상거래 보안 요구사항

 네트워크상에서 상대방 및 자신에 대한 신분 확인 수단이 필요

 거래 사실의 공증을 보장할 수 있는 신뢰할 만한 제3자의 중재가 필요

 전자지불 방식의 안전성을 보장하기 위한 방법 확보

 

(2) 전자화폐

1) 개요

 디지털 데이터 기반의 사회에서 가상공간의 동전/지폐의 역할을 수행하는 디지털 데이터로 구성된 화폐

 은행, 상점, 구매자로 구성

 구매자 - 은행 간에 이루어지는 발행 단계

 발행 단계에서 받은 전자화폐로 물건을 사고 상점에 전자화폐를 지불하는 지불 단계

 구매자로부터 받은 전자화폐를 은행에 제출하여 상점의 계좌로 자금 이체를 시켜주는 결제 단계

 

2) 전자화폐의 요구조건

 - 디지털 정보화

 - 재사용 불가능성

 - 익명성

 - 오프라인성

 - 양도성

 - 분할이용 가능성

 - 부정 사용자의 익명성 취소

 - 이중사용 방지

 

(3) 전자지불 시스템

1) 개요

 은행, 고객, 상점, 인증기관

 

2) 전자지불 시스템의 종류

 기술적인 분류

   신용카드 이용한 지불

   전자화폐를 이용한 지불

   계좌이체를 이용한 지불

   모바일을 이용한 지불

 

3) 전자지불 시스템의 정보보호 요구사항

 - 위조불가능

 - 부인방지

 - 누명명제

 - 무결성/인증

 - 프라이버시/익명성

 

 

 

3. SET(Secure Electronic Transaction)

 

1) 개요

 신용카드회사인 비자와 마스터카드가 합동으로 개발

 인터넷상에서 신용카드를 이용한 상품구매 시 안전한 대금결제과정 처리를 위해 RSA 암호화와 인증기술 이용

 가장 두 가지 기술 이용(전자봉투, 이중 서명)

 

2) SET 참여주체

 카드 소지자, 발행사, 가맹점, 지불 은행, 지불 게이트웨이, 인증기관

 

3) 이중서명 프로토콜

 카드 사용자가 구매정보와 지불정보를 각각 해시한 후, 두 해시값을 합한뒤 다시 해시한다. 그리고 최종 해시값을 카드 사용자의 개인키로 암호화(서명)한다. 그러면 이중 서명값이 생성

 이중서명의 목적은 상점이 카드 사용자의 계좌번호와 같은 지불정보를 모르게 하는 동시에 상점에 대금을 지불하는 은행은 카드 사용자가 상점에서 산 물건을 모르지만 상점이 요구한 결제 대금이 정확한지 확인할 수 있게 하는 것

 

4) SET의 장단점

- 장점

   전자거래의 사기를 방지

   기존의 신용카드 기반을 그대로 활용

   SSL의 단점(상인에게 지불정보 노출)을 해결한다.

 

- 단점

   암호 프로토콜이 너무 복잡하다.

   RSA 동작은 프로토콜의 속도를 크게 저하시킨다.

   카드 소지자에게 전자지갑 소프트웨어를 요구한다.

   상점에 소프트웨어를 요구한다.

   지불 게이트웨이에 거래를 전자적으로 처리하기 위한 별도의 하드웨어와 소프트웨어를 요구한다.

 

 

 

4. 전자상거래 응용 보안

 

1) e-business를 위한 ebXML 보안

 인터넷 표준 브라우저만으로 장소에 구애 없이 어디서나 전자상거래를 할 수 있으며 저렴한 구현 비용, 개방된 네트워크로 전자거래 교환을 위한 국제 표준을 제공

 

2) e-business를 위한 ebXML

 - 구성요소

   비즈니스 프로세스

   핵심 컴포넌트

   등록저장소

   거래당사자

   전송, 교환 및 패키징

 

- 사용 효과

   재활용성

   비즈니스 프로세스 활용

 

3) 무선플랫폼에서의 전자상거래 보안

WPKI(Wireless Public Key Infrastructure)

 WAP에서 서버와 클라이언트 간의 인증을 위한 무선 환경에 적합한 인증서를 발급, 운영, 관리하는 무선망의 공개키 기반 구조를 말한다.

 

WPKI 구성요소

- CA 서버 시스템 : 인증서 발급, 관리

- RA 서버 시스템 : 인증서 발급, 관리 요청 중계

- Client 시스템 : 인증서 발급, 관리 요청

- Directory 서버 시스템 : CA가 발행한 인증서 정보를 저장, 관리

 

 

 

 

 

*출처:[알기사] 2019 정보보안기사&산업기사

*해당 블로그는 개인적인 공부와 정보 공유를 위해 만들었습니다.

[정보보안기사 PART 06] 애플리케이션 보안 - 데이터베이스 보안


Section 36 데이터베이스 기본 개념

 

1. 데이터베이스 기본 개념

 

1) 데이터베이스(Database) 정의

 - 통합된 데이터(integrated data)

 - 저장된 데이터(stored data)

 - 운영 데이터(operational data)

 - 공용 데이터(shared data)

 

2) 키의 유형

 - 후보키(Candidate Key)

 - 슈퍼키(Super Key)

 - 기본키(Primary Key)

 - 대체키(Alternate Key)

 - 외래키(Foreign Key)

 

3) 무결성의 종류

 - 키 무결성(key integrity)

 - 개체 무결성(entity integrity)

 - 참조 무결성(referential integrity)

 

4) 트랜잭션(Transaction)

 하나의 논리적 기능을 수행하기 위한 작업의 단위

 한꺼번에 모두 수행되어야 할 일련의 데이터베이스 연산

 병행 제어 및 회복 작업의 논리적 단위

 원자성, 일관성, 격리성, 영속성 성질을 가진다.

 

 

 

2. 데이터베이스 보안 요구사항

 

(1) 데이터베이스 보안

1) 개요

  DB에 저장되어 있는 데이터에 대한 인가되지 않은 접근, 의도적인 데이터 변경이나 파괴 및 데이터의 일관성을 저해하는 우발적인 사고 등으로부터 데이터 혹은 데이터베이스를 보호하는 것

 

(2) 보안 위협

1) 데이터베이스 보안 위협

 - 애그리게이션(Aggregation, 집성)

 - 추론(inference)

 

(3) 보안 요구사항

 부적절한 접근 방지

 추론 방지

 무결성 보장

 운영적 무결성 보장

 의미적 무결성 보장

 감사 기능

 사용자 인증

 기밀성 보장

 

 

 

3. 데이터베이스 보안 통제

 

(1) 데이터베이스 보안제어

 - 흐름제어

 - 추론제어

 - 접근제어

 

(2) DBMS 보안 통제

 - SQL 기반의 접근 통제(GRANT/REVOKE 접근 통제)

 - 뷰(View) 기반의 접근통제

 - DBMS 보안 점검 사항

   디폴트 계정, 패스워드 변경

   DB 패스워드 규칙 강화

   DBA 권한의 제한

   보안 패치 적용

 

(4) 데이터베이스 보안

1) 데이터베이스 보안과 다중 수준 보안

 

 

 

4. 웹서버 보안

 

(1) 클라우드 컴퓨팅(Cloud computing)

1) 정의

 어디서나 존재하며 편리하고 공유된 컴퓨팅 자원풀이며, 설정이 가능하고 네트워크 접근 요청에 즉시 응답하는 모델

 가용성을 증대시키고 5가지 핵심적인 특성과 3가지 서비스 모델과 4가지 배치 모델로 구성

 

2) 3가지 서비스 모델

 - Software as a service(SaaS)

 - Platform as a service(PaaS)

 - Infrastructure as a service(IaaS)

 

(2) 클라우드 보안 서비스

1) 정의

 점차적으로 서비스 제공자에게 제시하는 보안 서비스 패키지를 의미하고 있다. 그렇게 하면 보안책임을 기업에서 상당히 덜어낼 수 있고 보안 서비스 제공자가 그 책임을 지게 된다.

 

2) SecaaS 서비스 분류

 신원 및 접근관리(IAM, Identity and access management)

 웹 보안(Web security)

 이메일 보안(E-mail Security)

 

 

 

 

 

 

*출처:[알기사] 2019 정보보안기사&산업기사

*해당 블로그는 개인적인 공부와 정보 공유를 위해 만들었습니다.

[정보보안기사 PART 06] 애플리케이션 보안 - DHCP와 DNS 보안


Section 35 DHCP와 DNS 보안

 

1. 호스트 설정과 호스트 설정 프로토콜

 

1) 호스트 설정의 개념

 TCP/IP에 접속하는 각 컴퓨터는 자신의 IP 주소를 알 필요가 없다.

 다른 망과 통신하기 위해서는 아래와 같은 4가지 정보가 필요하다

 - 컴퓨터의 IP 주소

 - 컴퓨터의 해당 서브넷 마스크

 - 라우터의 IP 주소

 - 네임서버의 IP 주소

 

2) 호스트 설정 프로토콜 종류

- RARP

- BOOTP(Bootstrap)

- DHCP

 

 

 

2. DNS(Domain Name System)

 

(1) DNS의 필요성

 TCP/IP 프로토콜은 개체를 구분하기 위해서 인터넷에서 호스트 연결을 유일하게 식별하는 IP 주소를 사용

 그러나 사람들은 주소보다는 이름을 사용하고자 하는 경향이 있다. 그러므로 이름을 주소로 바꿔주고 주소를 이름으로 바꿔주는 시스템이 필요해졌다.

 

 

 

3. DNS 보안

 

(1) DNS 스푸핑(DNS Spoofing)

1) 개요

 희생자에게 전달되는 DNS 응답을 조작하거나 DNS 서버의 캐시정보를 조작하여 희생자가 의도하지 않은 주소로 접속하게 만드는 공격을 말한다.

 따라서 희생자 입장에서는 정상적인 URL로 접속하지만 실제로는 공격자가 만든 가짜 사이트로 접속하게 된다.

 

2) 스니핑(Sniffing) 기반의 DNS Spoofing 공격

 희생자가 DNS 질의를 수행하면 공격자가 이를 스니핑하고 있다가 정상 응답보다 빠르게 희생자에게 조작된 웹사이트 IP 정보를 담은 DNS 응답을 보내 정상 주소(URL)를 입력해도 조작된 주소로 접속하게 만드는 공격기법

 

3) DNS Cache Poisoning 공격

 DNS 서버의 캐시정보를 조작하는 공격

 

 

 

 

 

*출처:[알기사] 2019 정보보안기사&산업기사

*해당 블로그는 개인적인 공부와 정보 공유를 위해 만들었습니다.

[정보보안기사 PART 06] 애플리케이션 보안 - 웹 보안(Web Security)


Section 34 웹 보안(Web Security)

 

1. 웹 보안 개요

 

1) 웹 트래픽 보안 방법

 IP 보안(IPSec)을 사용

 IP 보안을 사용할 경우 장점은 종단 사용자의 응요엥 투명성을 제공해주고 범용 해결책을 제시

 필터링 기능을 가지고 있어서, 오직 선별된 트래픽에서만 IP 보안 처리를 하기 때문에 이에 대한 호버헤드만 추가된다.

 안전 소켓 계층(SSL)과 전송 계층 보안(TLS)이라고 알려진 그 후속 인터넷 표준

 

 

 

2. 월드와이드웹과 HTTP

 

(1) 하이퍼텍스트 전송 프로토콜(HTTP, Hypertext Transfer Protocol)

1) 개요

 웹에서 웹페이지를 가져오기 위해 어떻게 클라이언트-서버 프로그램이 작성될 수 있는지를 정의하는데 사용

 HTTP 클라이언트는 요청을 하고 HTTP 서버는 응답을 한다. 서버는 포트 80번을 사용하고 클라이언트는 임시 포트 번호 사용

 

2) 영속성

3) HTTP 트랜잭션

 

 

 

3. SSL/TLS

 

(1) SSL/TLS의 개요

1) 기본개념

 클라이언트/서버 환경에서 TCP 기반의 Application에 대한 종단간 보안서비스를 제공하기 위해 만들어진 전송계층 보안 프로토콜

 대칭키 암호, 공개키 암호, 일방향 해시함수, 메시지 인증코드, 의사 난수 생성기, 전자서명을 조합해서 안전한 통신 수행

 특정 암호 기술에 의존하지 않는다.

 

2) 클라이언트와 서버

 웹 브라우저는 앨리스의 컴퓨터상에서 동작하는 프로그램이고, 웹 서버는 밥 서점에 있는 컴퓨터상에서 동작하는 프로그램이다.

 

3) SSL/TLS상의 HTTP

통신 내용을 암호화해주는 프로토콜로 SSL 혹은 TLS를 이용한다.

 

4) SSL/TLS 보안 서비스

 기밀성 서비스

 클라이언트와 서버 상호 인증

 메시지 무결성 서비스

 

 

(2) TLS(Transport Layer Security) 프로토콜

1) 개요

 가정 널리 사용하는 보안 서비스 중의 하나가 전송 계층 보안

 TCP에 의존하는 프로토콜로 구현되는 일반용도 서비스

 

2) TLS 구조

 신뢰성 있는 종단간에 안전한 서비스를 제공하기 위해 TCP를 활용한다. TLS는 단일 프로토콜이 아니고 2계층에 걸친 프로토콜이다.

 Record 프로토콜은 운반자이며, 응용 계층으로부터 오는 데이터뿐만 아니라 TLS의 상위 프로토콜로붜 오는 메시지를 전송

 Handshake 프로토콜은 Record 프로토콜에 대한 보안 매개변수를 제공한다. 암호 집합을 설정하고 키와 보안 매개변수를 제공한다. 또한 필요하다면 클라이언트가 서버에 대해 그리고 서버가 클라이언트에 대해 인증

 ChagneCipherSpec 프로토콜은 암호학적 비밀을 신속하게 보내는 데 사용된다.

 Alert 프로토콜은 비정상 조건을 알리는데 사용된다.

 Heartbeat 프로토콜은 프로토콜 개체의 가용성을 모니터링 할 때 사용하는 프로토콜이다.

 

3) SSL/TLS 공격

- OpenSSL의 HeartBleed 취약성

- SSL 3.0의 취약성과 POODLE 공격

- FREAK 공격과 암호 수출 규제

- 완전 순방향 비밀성

 

(3) HTTPS와 S-HTTP

1) HTTPS

2) S-HTTP

 

 

4. 웹서버 보안

 

(1) IIS 보안 설정

1) 권한 설정

2) 관리자 페이지 접근통제

3) 메소드 제한

4) 헤더 정보 숨김

 

(2) Apache 보안설정

1) 서버 실행 계정 확인

2) httpd.conf 파일(아파치 설정 파일)

3) 검색엔진 정보 노출 취약점

 robots.txt 파일은 반드시 웹사이트의 최상위 주소에 저장

 

 

 

5. 웹(Web) 보안위협 및 대응책

 

(1) 웹 서비스 공격의 개요

1) 기본 개념

 크게 web 사용자 클라이언트의 취약점을 잉요한 사용자 컴퓨터 공격과 웹 서버의 취약점을 이용한 웹서버 공격으로 나뉘다.

 

2) OWASP TOP10 (2017년)

 A1-Injection

 A2-Broken Authentication

 A3-Sensitive Data Exposure

 A4-XML Extend Entities(XXE)

 A5-Broken Access Control

 A6-Security Misconfiguration

 A7-Cross Site Scripting(XSS)

 A8-Insecure Deserializtion

 A9-Using Componets with Known Vulnerabilities

 A10-Insufficient Logging & Monitoring

 

(2) 웹 보안위협 및 대응책

1) SQL Injection

 DB와 연동되어 있는 애플리케이션의 입력값을 조작하여 DBMS가 의도하지 않은 결과를 반환하도록 하는 공격기법

 

2) 사이트 간 스크립팅(CSS[XSS], Cross Site Scripting)

 웹 애플리케이션에서 사용자 입력값에 대한 필터링이 제대로 이루어지지 않을 경우, 공격자가 입력이 가능한 폼에 악의적인 스크립트를 삽입, 해당 스크립트가 희생자 측에서 동작하도록 하여 악의적인 행위를 수행하는 취약점

 사용자의 개인정보 및 쿠키정보 탈취, 악성코드 감염, 웹페이지 변조 등의 공격 수행

 악성 스크립트가 클라이언트에서 실행된다.

 

3) 사이트 간 요청 위조(CSRF[XSRF], Cross Site Request Forgery)

 웹 애플리케이션에서 정상적인 경롤르 통한 요청과 비정상적인 경로를 통한 요청을 서버가 구분하지 못할 경우, 공격자가 스크립트 구문을 이용하여 정상적인 사용자로 하여금 조작된 요청을 전송 하도록 하여, 게시판 설정 변경, 회원 정보 변경 등의 문제가 발생할 수 있는 취약점

사용자가 악성 스크립트를 서버에 요청한다

 

4) 직접 객체 참조

 파일, 디렉터리, 데이터베이스 키와 같이 내부적으로 구현된 객체에 대한 참조가 노출될 때 발생

 

- 디렉터리 탐색 공격(파일 다운로드 취약점)

- 파일 업로드 제한 부재

- 리버스 텔넷

 

5) 보안 설정 취약점

- 백업 및 임시 파일 존재

- 주석 관리 미흡

 

(3) 웹의 취약점 보안

1) 특수문자 필터링

2) 서버측 통제 작용

3) 지속적인 세션 관리

 

(4) 웹 방화벽(WAF, Web Application Firewall)

1) 개요

 웹 애플리케이션을 대상으로 시도되는 해킹을 차단해주는 보안장비

 SQL 인젝션, 크로스 사이트 스크립트(XSS) 등과 같은 웹 공격을 탐지하고 차단하는 기능이며, 직접적인 웹 공격 대응 이외에도 정보 유출 방지, 부정 로그인 방지, 웹사이트 위변조 방지 등으로 활용이 가능

 

2) 웹 방화벽 기능

 사용자 요청 검사

 콘텐츠 보호

 위장

 

 

 

 

 

*출처:[알기사] 2019 정보보안기사&산업기사

*해당 블로그는 개인적인 공부와 정보 공유를 위해 만들었습니다.

[정보보안기사 PART 06] 애플리케이션 보안 - 이메일 보안


Section 33 이메일 보안

 

1. 이메일 관련 프로토콜

 

(1) SMTP(Simple Mail Transfer Protocol)

1) 개요

 인터넷에서 MTA 클라이언트와 서버를 규정하는 공식적인 프로토콜은 단순 우편 전달 프로토콜이다.

 SMTP는 송신자와 송신자의 메일 서버 사이 그리고 두 메일 서버들 사이에서 총 두번 사용된다. 메일 서버와 수신자 사이에는 또 다른 프로토콜이 필요하다.

 메일 서버는 SMTP 서버를 가리킨다. UNIX에서 SMTP 서버 소프트웨어는 Sendmail이며, Microsoft는 Microsoft Exchange, 노벨(Novell)는 GroupWise가 SMTP 서버이다.

이메일을 암호화하여 이메일 전송을 보호하는 기능을 전혀 지원하고 있지 않다.

 

 

(2) 메시지 액세스 에이전트(POP와 IMAP)

1) POP3(Post Office Protocol 버전 3)

 TCP 포트 110으로 서버에 연결

 

2) IMAP4(Internet Mail Access Protocol 버전 4)

 TCP 143번 포트에서 IMAP4 클라이언트의 연결 요청 대기

 

 

 

2. 이메일 콘텐츠 보안을 위한 보안 기술

 

(1) PEM(Privacy Enhanced Mail)

1) 개요

 기밀성, 인증, 무결성, 부인방지 지원

 암호화된 정보, 전자서명, 암호화 방법 등의 내용을 본문에 텍스트 형식으로 전송

 이론 중심적, 사양 방대, 구현 복잡하여 많이 사용하지 않음

 

(2) PGP(Pretty Good Privacy)

1) 개요

 대표적인 이메일과 파일보호를 위해 암호화를 사용하는 암호시스템

 전자서명 이용하여 인증 제공, 대칭 블록암호를 이용해서 기밀성 제공, ZIP 알고리즘 이용하여 압축 제공

 

2) 키링

 PGP에서 사용하는 구조는 각 노드에서 한 쌍의 데이터 구조를 제공해야 한다. 하나는 노드가 소유한 공개키/개인키 쌍을 저장하기 위한 것이고, 다른 하나는 이 노드가 알고 있는 다른 사용자의 공개키를 저장하기 위한 것이다.

 

3) PGP 보안 서비스

 기밀성

 인증

 압축

 전자 우편 호환성

 분할 및 재결합

 

4) PGP 인증서

 OpenPGP에서 정해진 형식의 인증서와 X.509 호환용 인증서를 작성할 수 있다.

 공개키의 취소 증명서를 발행할 수 있다.

 

(3) S/MIME(Secure Multipurpose Internet Mail Extensions)

1) 개요

 PEM 구현 복잡성, PGP의 낮은 보안성과 기존 시스템과의 통합이 용이하지 않다는 점을 보완하기 위해 IETF의 작업 그룹에서 RSADSI의 기술을 기반으로 개발된 전자 우편 보안 시스템

 주고받는 메시지에 대해 송수신자에게 전자 우편 보안 서비스를 제공할 뿐만 아니라 MIME 객체를 전송할 수 있는 모든 프로토콜에서 보안 서비스 이용할 수 있게 한다.

 기밀성, 무결성, 사용자 인증, 송신 사실 부인 방지

 

2) MIME(Multipurpose Internet Mail Extensions)

 전자우편을 통하여 ASCII가 아닌 데이터가 송신될 수 있도록 허용하는 부가적인 프로토콜

 

3) S/MIME(Secure Multipurpose Internet Mail Extensions)

 

 

3. 스팸 메일 보안 대응 기술

 

1) 스팸 메일의 기술적 대응방안

메일 서버 수신 차단 : 콘텐츠 필터링, 송신자 필터링, 네트워크 레벨 필터링, 발송량 기준 차단, 시간대별 차단

메일 서버 보안 : 릴레이 스팸 방지, Anti-SPAM 솔루션 도입

메일 클라이언트 보안 : 콘텐츠 필터링, 송신자 필터링

 

2) 메일 서버 등록제 SPF(Sender Policy Framework)

 메일 헤더에 표시된 발성정보(IP)가 실제 메일을 발송한 서버(IP)와 일치하는지를 비교함으로써 발송자 정보의 위변조 여부를 파악할 수 있도록 하는 기술

 

3) 스팸 필터 솔루션

 메일 서버 앞단에 위치하여 프락시 메일 서버로서 동작하며, SMTP 프로토콜을 이용한 DoS 공격이나 폭탄 메일, 스팸 메일을 차단

 메일 헤더 필터링, 제목 필터링, 본문 필터링, 첨부파일 필터링

 

4) 스팸메일 방지 보안도구

 - Procmail

 - Sanitizer

 - Inflex

 - SpamAssassin

 

 

 

4. sendmail

1) 정의

 인터넷 전자 메일의 표준규약인 SMTP 프로토콜을 통해서 메일 서비스 기능 한다.

 메일 서버 간에 메일을 주고받는 역할을 한다

 

 

 

 

 

*출처:[알기사] 2019 정보보안기사&산업기사

*해당 블로그는 개인적인 공부와 정보 공유를 위해 만들었습니다.

[정보보안기사 PART 06] 애플리케이션 보안 - FTP 보안


Section 32 FTP 보안

 

1. 최신 보안 기술과 솔루션

 

(1) FTP(File Transfer Protocol)

1) 개요

 파일 전송 프로토콜(FTP, FIle Transfer Protocol)은 하나의 호스트에서 다른 호스트로 파일을 복사하기 위해 TCP/IP에 의해 제공되는 표준 기능이다.

 FTP는 호스트 간에 두 개의 연결을 설정한다는 점에서 다른 클라이언트 서버 응용들과 다르다. 하나의 연결은 데이터 전송을 위하여 사용되고, 또 다른 하나는 명령과 응답 등의 제어 정보를 위하여 사용한다. 이러한 제어와 데이터 전송의 분리는 FTP를 좀 더 효율적으로 사용할 수 있도록 만들어 준다.

 FTP는 두 개의 잘 알려진(well-known) TCP 포트를 사용한다. 포트 21번은 제어 연결을 위해 사용되고, 포트 20번은 데이터 연결을 위해 사용된다.

 

2) FTP 로그인 순서와 인증

 USER 명령을 통해 사용자명을 전송하여 어떤 사용자가 접근을 시도하는지를 확인한다. 그리고는 PASS 명령을 통해 사용자의 비밀번호를 전송한다.

 서버는 사용자 데이터베이스에서 사용자명과 비밀번호를 대조하여 접근을 시도하고 있는 사용자가 서버에 접근할 권한이 있는지를 확인한다.

 

3) FTP 연결

- 능동(Active) Mode (일반 연결)

 FTP 클라이언트의 기본 값으로 설정. 클라이언트에서 서버측 21번 포트로 접속하여 제어채널을 생성하고 데이터는 서버에서 클라이언트로 접속하여 데이터를 보내는 방식

 서버 21, 20번 포트 사용

 서버에서는 두 개의 포트만 열면 서비스 가능

 두 번째 connection은 서버에서 클라이언트로 접속

 클라이언트에 방화벽 설치 시 접속 불가

 

- 수동(Passive) Mode (수동 연결)

 클라이언트에서 서버측 21번 포트로 접속하여 제어채널을 생성하고 데이터 채널도 클라이언트에서 서버로 접속하여 데이터를 보내는 방식

 서버가 21, 1024번 이후 포트 사용

 데이터 전송을 위해 1024번 이후 포트 사용

 서버에서 클라이언트로 접속해야 하는 모순 해결을 위해 고안된 방식

 

(2) 익명 FTP

 

(3) TFTP(Trivial File Transfer Protocol)

1) 개요

 FTP의 기능을 전부 지원할 필요가 없거나 모두 지원하는 것이 비현실적인 경우 위해 사용

 UDP(69번 포트) 사용

 소프트웨어 패키지를 읽기 전용 메모리나 디스크 없는 워크스테이션에 설치할 때 주로 쓰인다.

 

특징

- 한정된 개수의 명령 : 파일을 보내고 받는 기능만 지원

- 한정된 데이터 표현 방식 : ASCII와 바이너리 지원

- 인증의 부족

 

2) 데이터 전송

 신뢰성 없는 UDP 서비스 사용

 파일은 데이터와 블록으로 나뉘고, 마지막 블록을 제외한 각 블록은 정확히 512바이트의 크기를 갖는다. 마지막 블록은 0에서 511바이트의 크기를 갖는다.

 연속적인 데이터 블록으로 파일을 전송하기 위하여 흐름 제어와 오류 제어 메커니즘을 생성해야 한다.

 

(4) NFS와 삼바

1) NFS(Network File System)

 TCP/IP 프로토콜을 사용하여 네트워크상에서 파일시스템을 운영할 수 있도록 해주는 프로토콜

 데이터의 보안과 무결성 보장

 인증된 네트워크 사용자가 공유된 네트워크 파일을 사용할 수 있는 방법 제공

 

2) 삼바(Samba)

 유닉스 계열 시스템과 윈도우 시스템 간에 파일 및 프린터 자원을 공유할 수 있는 기능 제고

 

 

 

2. FTP 보안 위협 및 대책

 

1) FTP 보안

 비밀번호는 평문(암호화되지 않음)으로 되어 있어, 공격자가 가로챙 사용할 수 있다.

 

2) SFTP(Secure File Transfer Protocol) 프로그램

 보안 파일 전송 프로토콜

 SSH 프로토콜의 일부분인 SFTP라 불리는 Unix 프로그램

 

3) TFTP 보안

 보안에 대한 고려가 없다.

 사용자 확인이나 비밀번호 없다. -> 파일 보호하기 위한 예방조치가 취해져야 한다.

 중요하지 않은 파일에만 접근할 수 있도록 제한

 TFTP가 필요한 경우 secure mode로 운영, chroot 기능을 이용

 

4) Bounce attack

 제어 채널과 데이터 채널을 다르게 사용하고 데이터 채널을 생성할 때 목적지를 확인하지 않는 FTP 설계의 구조적 취약점을 이용하는 공격

 능동모드에서 FTP 서버의 파일을 요청하면 클라이언트에서 파일을 받을 IP와 포트를 지정해서 전달해준다.(PORT 명령) 이때 IP와 포트를 요청항 클라이언트가 아닌 임의의 주소로 지정할 수 있는데 이러한 FTP 설계의 취약점을 이용하는 방식이다.

 

5) anonymous ftp 취약점

 보안 절차를 거치지 않은 익명의 사용자에게 FTP 서버로의 접근 허용

 익명 사용자가 서버에 쓰기 권한이 있을 때 악성 코드 생성 가능

 

보안대책

 보안상 심각한 취약점을 가지고 있기 때문에 반드시 사용해야하는 경우가 아니라면 서비스르 제거

 사용자의 루트 디렉터리, bin, etc, pub 디렉터리의 소유자와 퍼미션을 관리

 

6) FTP 접근 제어 설정

 - ftpuser 파일을 통한 접근 제어

 - TCP Wrapper를 통한 접근 제어

 

3. FTP 서비스 운영

 

1) proftpd 특징

- wu-ftpd의 대안으로 개발

- 매우 안정적이고 빠름

- xinetd / standalone 형태로 작동 가능

 

ftp 접속시 확인 설정

 /etc/passwd, /etc/shadow에 사용자 계정이 있는지 검사

 /etc/ftpusers에 사용자 id가 있으면 거부

 /etc/shell에 등록되지 않은 셸을 사용하는 유저는 접근 거부

 

2) vsftpd(Very Secure FTP Daemon)

 가상 IP별 별도의 환경 설정 기능

 가상 사용자 설정

 전송 대역폭 지정

 PAM 지원

 xferlog 표준 로그 파일보다 상세한 자체 로그 파일 형식 지원

 Standalone 방식과 inetd를 통한 운영 모두 지원

 IP별로 다른 환경 파일 지정 기능

 

 

 

 

 

*출처:[알기사] 2019 정보보안기사&산업기사

*해당 블로그는 개인적인 공부와 정보 공유를 위해 만들었습니다.

+ Recent posts