Yozzang의 해킹일기 💻
article thumbnail
728x90

해당 포스트는 정보보안기사 필기시험을 대비하기 위해 작성한 필기본이다.


## Active 모드와 Passive 모드

### Active 모드

  • 서버가 21, 20번 포트 사용.
  • 서버에서는 두 개의 포트만 열면 서비스 가능.
  • 두 번째 connection은 서버에서 클라이언트로 접속.
  • 클라이언트에 방화벽 설치시 접속 불가.

### Passive 모드

  • 서버가 21, 1024 이후 포트 사용.
  • 데이터 전송 위해 1024번 이후 포트 사용.
  • 서버에서 클라이언트로 접속해야 하는 모순 해결 위해 고안된 방식.
  • 서버에서는 21번 포트와 1024번 이후의 모든 포트 오픈.
  • 보안 위해 서버에서 passive모드로 사용할 포트 제한.

*** PEM, PGP, S/MIME 비교

항목 PEM PGP S/MIME
개발자 IETF Phil Zimmermann RSA Data Security Inc
특징 - 중앙집중화된 키 인증
- 인터넷 표준(안)
- 구현의 어려움
- 높은 보안성(군사용, 금융계 등)
- 이론 중심
- 많이 사용되지 않음
- 분산화된 키 인증
- 응용 프로그램
- 구현의 용이성
- 일반 용도의 보안성
- 실세계 사용 중심
- 현재 많이 사용
- MIME 기반
- 다양한 상용 툴킷
- X.509 인증서 지원

## PGP가 제공하는 기능

  • 기밀성 : 송신자가 생성한 일회용 세션키로 CAST-128, IDEA, 3DES를 이용해서 메시지 암호화. 수신자의 공개키로 RSA를 이용해서 세션키를 암호화하고 메시지에 첨부.
  • 인증 : 해시 알고리즘을 이용해서 메시지 다이제스트를 생성. 메시지 다이제스트는 송신자의 개인키로 DSS나 RSA를 이용 암호화. 그리고 메시지에 첨부.
  • 압축 : ZIP으로 메시지 압축.
  • 전자 우편 호환성 : Radix-64 변환을 이용해 ASCII 부호로 변환.
  • 분할 및 재결합 : 최대 메시지 사이즈 제한으로 인한 데이터의 분할 및 재결합.

 ## S/MIME 서비스

  • 전자 서명 : SHA-256으로 메시지 해시 코드를 생성한다.
  • 메시지 암호화 : 송신자가 생성한 일회용 세션키를 이용해 CBC 모드의 AES-128로 메시지를 암호화한다.
  • 압축 : 메시지를 압축하여 저장하거나 전송한다.
  • 이메일 호환성 : 이메일 응용이 투명하도록 암호화된 메시지를 Base64로 변환하여 ASCII 스트링으로 만든다.

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

### 메일 서버 수신 차단

  • 콘텐츠 필터링 : 메일의 헤더 정보, 제목, 메시지 내용의 특정 단어 및 문장 패턴을 검색하여 차단.
  • 송신자 필터링 : 송신자 IP, 송신자 메일주소, 송신자의 URL 등의 정보를 포함한 스팸 발신처 블랙리스트를 관리하여 차단.
  • 네트워크 레벨 필터링 : 패킷 필터링.
  • 발송량 기준 차단 : 기준 시간 동안에 특정 용량 이상의 메일 수신 시 이후 수신 메일의 차단.
  • 시간대별 차단 : 업무 시간에는 업무용 송신 메일 이외의 외부 메일 차단.

### 메일 서버 보안

  • 릴레이 스팸 방지 : 액세스 DB를 통한 송신자별 어용 거부, 릴레이 허용 여부 설정 가능.
  • Anti-SPAM 솔루션 도입 : 별도의 스팸 차단 전용 보안 솔루션을 도입하여 운영.

### 메일 클라이언트 보안

  • 콘텐츠 필터링 : 특정 단어가 포함된 필터링 규칙을 적용.
  • 송신자 필터링 : 수신 거부 등 별도의 블랙리스트 관리를 통해 향후 메일 수신 시 차단.

*** 스크립트 언어의 분류와 특징

구분 서버 스크립트 언어 사용자 스크립트 언어
종류 - PHP, ASP, JSP 등 다양 - 자바스크립트, VBscript가 대표적
특징 - 서버에서 프로그램 처리
- 취약점이 서버에게 직접 영향을 줌
- 사용자 시스템에서 프로그램 처리
- 취약점이 개인 시스템에 영향을 줌
장점 - 데이터베이스와 연동이 쉬움
- 서버 내에 있는 파일에 접근이 용이
- 서버에 부하를 주지 않음
단점 - 서버에 부하를 줌 - 기능이 제한적임

## HTTP 메시지에 사용하는 지시자

  • GET : URL에 해당하는 자료를 제공해 줄 것을 요청한다.
  • HEAD : 서버 응답시에 응답 메시지 바디를 제외하고 헤더부만 응답해주는 메소드로 요청 자원에 대한 처리는 서버에서 이루어지지만 그 결과로 헤더값만을 전송한다.
  • POST : 클라이언트에서 웹서버로 데이터를 전송할 때 사용하는 방법.
  • PUT : 헤더 및 몸체를 포함하여 몸체에 콘텐츠 내용을 덧붙여 원격지 서버에 지정한 컨텐츠를 저장하기 위한 목적으로 사용한다.
  • DELETE : 클라이언트가 권한이 있다면 서버에서 웹페이지를 제거하는 것을 허용한다.
  • TRACE : 디버깅에 사용된다.
  • OPTIONS : 시스템에서 지원되는 메소드 종류를 확인할 수 있다.
  • CONNECT : 서버에 프락시 기능을 요청할 때 사용된다.

## SSL/TLS 보안 서비스

  • 기밀성 서비스 : DES, RC4와 같은 대칭키 암호화 알고리즘을 사용하여 제공되며, 이때 사용되는 비밀키는 Handshake Protocol을 통해 생성된다.
  • 클라이언트와 서버 상호 인증 : 연결 설정 과정에서 서로 간에 신뢰할 수 있도록 인증을 사용하는데, 인증에는 RSA와 같은 비대칭키 암호 알고리즘, DSS와 같은 전자서명 알고리즘과 X.509 공개키 인증서가 사용된다.
  • 메시지 무결성 서비스 : 안전한 해키 알고리즘을 사용해서 메시지 인증코드를 만들어 메시지에 포함시키기 때문에 신뢰성 있는 통신이 가능하다.

## SSL/TLS 프로토콜

  • Handshake 프로토콜 : Record 프로토콜에 대한 보안 매개변수를 제공하며 암호 집합을 설정하고 키와 보안 매개변수를 제공.
  • Record 프로토콜 : 응용 계층으로부터 오는 데이터뿐만 아니라 TLS의 상위 프로토콜로부터 오는 메시지를 전송.
  • ChangeCipherSpec 프로토콜 : 암호학적 비밀을 신속하게 보내는 데 사용.
  • Alert 프로토콜 : 비정상 조건을 알리는데 사용.
  • Heartbeat 프로토콜 : 프로토콜 개체의 가용성을 모니터링 할 때 사용하는 프로토콜.

### 핸드셰이크 프로토콜 동작

  1. 보안 기능 수집 : 프로토콜 버전, 세션ID, 암호조합, 압축 방법, 초기 랜덤넘버를 포함한다.
  2. 서버가 필요하다고 생각되면 인증서, 키 교환을 보내고, 인증서를 요청한다.
  3. 클라이언트는 요청된 인증서를 보낸다(요청이 있었을 경우). 클라이언트는 키 교환을 보낸다. 클라이언트는 인증서에 대한 확인을 보낼 수도 있다.
  4. 암호 조합을 교환하고 해드셰이크 프로토콜을 종료한다.

*** 기존 방화벽 vs 웹방화벽

구분 웹 방화벽 기존 방화벽
목적 유해 HTTP의 차단 유해 포트의 차단
동작 레벨 애플리케이션 레이어(7계층) 네트워크 레이어(3~4계층)
동작 방식 규칙+애플리케이션 로직 일련의 규칙에 의해 동작

## 소프트웨어 보안약점 유형

  • 입력데이터 검증 및 표현 : 프로그램 입력값에 대한 검증 누락 또는 부적절한 검증, 데이터의 잘못된 형식지정으로 인해 발생할 수 있는 보안약점. (SQL 인젝션, XPath 인젝션)
  • 보안 기능 : 보안기능(인증, 접근제어, 기밀성, 암호화, 권한관리)을 적절하지 않게 구현 시 발생할 수 있는 보안약점. (부적절한 인가, 취약한 암호화 알고리즘 사용)
  • 시간 및 상태 : 동시 또는 거의 동시 수행을 지원하는 병렬시스템, 하나 이상의 프로세스가 동작하는 환경에서 시간 및 상태를 부적절하게 관리하여 발생할 수 있는 보안약점. (종료되지 않은 반복문 재귀함수)
  • 에러처리 : 에러를 처리하지 않거나, 불충분하게 처리하여 에러정보에 중요정보가 포함될 때 발생할 수 있는 보안약점. (오류메시지를 통한 정보노출, 오류 상황 대응 부재)
  • 코드오류 : 타입변환 오류, 자원의 부적절한 반환 등과 같이 개발자가 범할 수 있는 코딩오류로 인해 유발되는 보안약점. (Null Pointer 역참조, 초기화되지 않은 변수 사용)
  • 캡슐화 : 중요한 데이터 또는 기능성을 불충분하게 캡슐화하였을 때 인가되지 않은 사용자에게 데이터 노출이 가능해지는 보안약점. (잘못된 세션에 의한 데이터 정보노출, 시스템 데이터 정보노출)
  • API 오용 : 의도된 사용에 반하는 방법으로 API를 사용하거나, 보안에 취약한 API를 사용하여 발생할 수 있는 보안약점. (취약한 API 사용)

## 호스트 설정 프로토콜 종류

  • RARP : 부팅된 컴퓨터의 IP주소를 제공하기 위해 만들어짐.
  • BOOTP(Bootstrap) : 4가지 항목(컴퓨터의 IP 주소, 컴퓨터의 해당 서브넷 마스크, 라우터의 IP 주소, 네임서버의 IP 주소)을 모두 제공하기 위해 RARP 프로토콜에 관한 모든 제약을 제거.
  • DHCP : 부팅한 컴퓨터나 디스크가 없는 컴퓨터에게 4가지 정보를 제공하기 위해 설계된 클라이언트/서버 프로토콜.

*** DHCP의 장단점

장점 단점
- 네트워크 설계 변경이 자유롭다.
- DHCP 서버에서만 네트워크 정보를 변경해주면 되므로 네트워크 구성변경이 용이.
- 실제로 호스트를 사용하는 경우에만 IP가 할당되기 때문에 IP 절약 가능.
- 사용자가 TCP/IP 설정을 따로 해주지 않아도 되므로 관리 용이.
- DHCP 클라이언트는 부팅 시 브로드캐스트 방식으로 트래픽을 전송하므로 네트워크의 성능저하를 발생시킴.
- 호스트 전원만 켜 있어도 IP 할당됨.
- 호스트 전원을 꺼도 임대기간까지 해당 IP는 다른 단말에 할당되지 못하기 때문에 IP주소 낭비 발생 가능.
- 호스트 수가 많아지면 서버의 과부하가 발생.

*** DHCP의 보안(공격유형)

구분 특징 방어대책
기밀성 - DNS서버의 응답 메시지 도청 - DNS 메시지 비밀성 보장 -> 암호화
무결성 - DNS 서버의 응답 변경 or 위조
- Redirect 현상 발생
- 메시지 송신자 인증
- 메시지 완전 무결성 사용
가용성 - DNS 서버 붕괴 or 대량 트래픽 공격(flooding) - DoS 공격 방지책 사용

*** DNS 위협 요인들과 대응책

구분 설명
보안
위협
DNS 스푸핑(DNS Spoofing) 질의한 도메인 이름에 대해 잘못된 인터넷 프로토콜(IP)을 응답으로 보내 이용자가 잘못된 사이트에 접속하도록 하는 공격
DNS 캐시 포이즌 공격(DNS Cache Poisoning Attack) 도메인 네임 시스템 프로토콜 자체의 취약점으로 DNS 캐시에 저장된 쿼리 정보를 위변조하는 것
대응책 DNSSEC(DNS Security) 메시지 송신자 인증과 디지털 서명이라는 보안 서비스를 사용해 메시지 완전 무결성을 제공

## 데이터베이스 보안 위협

  • 애그리게이션(Aggregation, 집성) : 개별적인 여러 소스로부터 민감하지 않은 정보를 수집, 조합하여 민감한 정보를 생성.
  • 추론(Inference) : 보통의 일반적인 데이터로부터 비밀정보를 획득할 수 있는 가능성을 의미.

## 데이터베이스 보안제어

  • 흐름제어 : 보다 낮은 보호수준의 객체로 이동하는 것을 검사하여 접근가능한 객체간의 정보흐름을 조정하는 것.
  • 추론제어 : 간접적인 데이터 노출로부터 데이터를 보호하기 위한 것.
  • 접근제어 : 시스템 객체에 대한 모든 직접적 접근이 보호정책에서 세운 모드(mode)와 규칙에 따라 상호 배타적이게 하는 것.

## DBMS 통제

  • 뷰(View) 기반의 접근통제 : 하나 이상의 기본 테이블로부터 유도되어 만들어지는 가상테이블. 뷰는 데이터의 논리적 독립성을 제공하며, 자료에 대한 접근제어로 보안을 제공.
  • GRANT/REVOKE 접근 통제 : SQL 제어의 권한부여 명령을 이용. 통상 DBA가 가져서 DBA권한이라 하는데, 다른 사용자들의 권한을 부여하거나 회수할 때 사용.

## 기본적인 보안 취약점 점검

  • 디폴트 계정 패스워드 변경 : DBMS 엔진이 설치되고 적용된 디폴트 계정을 해커들의 손쉬운 공격 수단으로 악용되므로 반드시 패스워드를 변경하거나 계정을 삭제함.
  • DB 패스워드 규칙 강화 : 디폴트 계정이나 일반 계정을 생성할 때는 패스워드 규칙을 강화하여 손쉽게 크래킹되지 않도록 해야 함.
  • DBA 권한의 제한 : 일반 계정이 DBA 권한을 부여받지 않도록 주의해야 함.
  • 보안 패치 적용 : 제품별로 발표된 보안 패치를 적용하여 취약점을 제거해야 함.

## SET 참여주체

  • 사용자(Cardholder) : 지불카드를 사용하여 인터넷에서 상품, 서비스를 구해하는 자.
  • 가상 상점(Merchant) : 인터넷상에서 카드소지자에게 상품, 서시브를 제공하는 자.
  • 카드 발급사(Issuer) : 카드소지자의 계좌 개설, 지불카드를 발행하는 금융기관.
  • 지불처리 은행(Acquier) : 상점과 계좌를 개설한 금융기관.
  • 지불 게이트웨이(Payment Gateway) : 지불처리 은행 또는 제삼자에 의해 운영되는 장치로서 상점이 요청한 카드소지자의 지급정보를 이용하여 해당 금융기관에 승인 및 결제를 요청하는 기존의 카드 지불 네트워크로의 통로.
  • 인증기관(CA, Certification Authority) : SET 참여자에게 공개키 인증서를 발행하는 기관.

*** SET의 장단점

장점 단점
- 전자거래의 사기를 방지한다.
- 기존의 신용카드 기반을 그대로 활용한다.
- SSL의 단점을 해결한다.
- 암호 프로토콜이 너무 복잡하다.
- RSA 동작은 프로토콜의 속도를 크게 저하시킨다.
- 카드 소지자에게 전자지갑 소프트웨어를 요구한다.
- 상점에 소프트웨어를 요구한다.
- 지불 게이트웨이에 거래를 전자적으로 처리하기 위한 별도의 하드웨어와 소프트웨어를 요구한다.

## 포렌식의 기본 원칙

  • 정당성의 원칙 : 모든 증거를 적법한 절차를 거쳐서 획득한 것이어야 하며, 위법한 절차를 거쳐 획득한 증거는 증거 능력이 없음.
  • 재현의 원칙 : 법정에 증거를 제출하려면 똑같은 환경에서 같은 결과가 나오도록 재현할 수 있어야 함.
  • 신속성의 원칙 : 컴퓨터 내부의 정보는 휘발성을 가진 것이 많기 때문에 신속하게 이뤄져야 함.
  • 연계 보관성의 원칙 : 증거는 획득되고 난 뒤 이송/분석/보관/법정 제출이라는 일련의 과정이 명확해야 하며, 이러한 과정에 대한 추적이 가능해야 함(Chain of Custody).
  • 무결성의 원칙 : 수집된 정보는 연계 보관성을 만족시켜야 하고, 각 단계를 거치는 과정에서 위조 및 변조되어서는 안 됨.

## 사고대응 7단계

  1. 사고 전 준비 과정 : 사고가 발생하기 전 침해사고 대응팀과 조직적인 대응을 준비.
  2. 사고 탐지 : 정보보호 및 네트워크 장비에 의한 이상 징후 탐지. 관리자에 의한 침해 사고의 식별.
  3. 초기 대응 : 초기 조사 수행, 사고 정황에 대한 기본적인 세부사항 기록.
  4. 대응 전략 체계화 : 초기 조사 결과를 참고하여 소송이 필요한 사항인지를 결정하여 사고 조사 과정에 수사기관 공조 여부를 판단.
  5. 사고 조사 : 데이터 수집 및 분석을 통하여 수행. 언제, 누가, 어떻게 사고가 일어났는지, 피해 확산 및 사고 재발을 어떻게 방지할 것인지를 결정.
  6. 보고서 작성 : 의사 결정자가 쉽게 이해할 수 있는 형태로 사고에 대한 정확한 보고서를 작성.
  7. 해결 : 차기 유사 공격을 식별 및 예방하기 위한 보안 정책의 수립, 절차 변경, 사건의 기록, 장기 보안 정책 수립, 기술 수정 계획수립 등을 결정.

## 분석대상에 따른 사이버 포렌식 기술

  • 디스크 포렌식 기술 : 물리적 저장장치인 하드디스크, 플로피디스크, CD, DVD 등 보조기억장치에서 증거를 수집하고 분석하는 기술.
  • 시스템 포렌식 기술 : 운영체제, 응용 프로그램 및 프로세스 등을 분석하여 증거를 확보하는 기술.
  • 네트워크 포렌식 기술 : 네트워크로 전송되는 데이터나 암호 등을 특정 도구를 이용하여 가로채거나, 서버에 저장된 로그파일에 접근하여 분석하거나, 에러로그/네트워크 형태 등을 조사하여 단서를 찾아내는 기술.
  • 인터넷 포렌식 기술 : 웹(WWW), FTP, USENET 등 인터넷 응용 프로토콜을 사용하는 분야에서 증거를 수집하는 기술.
  • 모바일 포렌식 기술 : 휴대폰, PDA, 전자수첩, 휴대용 메모리카드, USB 저장 장치 등 휴대용 전자기기에서 필요한 정보를 입수하여 분석하는 기술.
  • 데이터베이스 포렌식 기술 : 데이터베이스로부터 데이터를 추출 분석하여 증거를 수집하는 기술.
  • 암호 포렌식 기술 : 문서나 시스템에서 암호를 찾아내어 암호화 문서를 복호화하는 기술.

## 각종 애플리케이션 공격 유형 정리

  • 악성 Bot : 악성 IRC봇 중의 하나이며 윈도우 시스템의 쉬운 비밀번호 설정, 윈도우 취약점, 공유폴더, 기타 다른 웜 바이러스가 사용하는 백도어를 이용하여 전파.
  • 논리폭탄 : 논리적인 조건이 이루어지면 루틴에 삽입된 명령을 실행.
  • 살라미 공격 : 많은 사람들로부터 눈치 채지 못할 정도의 적은 금액을 빼내는 컴퓨터 사기수법.
  • 데이터 디들링(Data Diddling) : 원시정보 자체를 변조 및 위조해 끼워 넣거나 바꿔치기하는 수법.
  • 메모리 재사용(Memory Reuse, OBject Reuse) : 잔여정보가 남아 다른 프로세스가 이를 읽을 수 있을 경우, 보안상 문제가 발생.
  • 모바일 코드 : 웹의 기능을 확장하기 위해 사용자가 요구하면 자동으로 다운로드되어 실행되는 방식의 프로그램.
  • TOC/TOU(Time Of Check/Time Of Use) : 시스템의 보안기능이 변수의 내용을 검사하는 시간과 해당 변수가 실제로 사용되는 시간 사이에 발생하는 공격.
  • 이블 트윈 공격(Evil Twin Attack) : Wi-Fi 무선 네트워크에서 공격자가 rogue AP를 이용하여 중간에 사용자의 정보를 가로채 사용자인 것처럼 속여서 행동하는 공격에서 나온 것.

'Certificate > 정보보안기사' 카테고리의 다른 글

정보보호 관리 및 법규  (0) 2022.08.04
네트워크 보안  (0) 2022.07.29
시스템 보안  (0) 2022.07.26
접근통제  (0) 2022.07.25
암호학  (0) 2022.07.24
profile

Yozzang의 해킹일기 💻

@요짱

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!