정보보안 - 실기 정리 노트

이보아·2024년 10월 10일

정보처리기사

목록 보기
8/16
post-thumbnail

SW 개발 보안 설계

정보보안

정보 및 정보 시스템을 무단 접근, 변경, 삭제 등으로부터 보호한다.

정보보안 요소 [20년 4회]

  • 기밀성(Confidentiality) : 인가된 사용자만 정보에 접근
  • 무결성(Integrity) : 인가된 사용자에 의해서만 정보 변경
  • 가용성 (Availablility) : 정보 자산에 언제든지 접근
  • 인증 (Authentication) : 사용자가 허가받은 사용자인지 확인
  • 부인방지 (Non-repudiation) : 정보 전송을 부인할 수 없도록 하는 것

AAA(Authentication Authorization Accounting) [21년 3회]

  • 인증(Authentication) : 사용자의 신원 확인
  • 권한부여(Authorization) : 권한과 서비스를 허용
  • 계정관리(Accounting) : 사용자의 자원 사용 정보를 수집

정보보안 거버넌스(Infomation Security Governace)

조직의 정보자산을 보호하고, 정보의 무결성, 기밀성, 가용성을 유지하기 위함

정보보안 가버넌스의 3요소

  • 데이터 무결성(Integrity of Data)
  • 서비스 연속성(Service Continuity)
  • 정보자산의 보호(Protection of Infomation Asset)

인증제도 [22년 1회]

1) ISMS(정보보호 관리체계 인증) (Information Security Mangment System)
2) PIMS(개인정보보호 관리체계) (Personal Information Mangment System)
3) ISMS-P(정보보호 및 개인정보보호 관리체계 인증)
4) ITSEC(Information Technology Security Evaluation Criteria)
5) CC(Common Criteria)

Secire SDLC(Software Development Life Cycle)

SDLC에 보안 강화 프로세스를 포함한 것

Secure SDLC 방법론

1) CLASP(Comprehensive, Lightweight Application Security Process)

  • SDLC 초기 단계에서 보안 강화를 위한 방법론
    2) MS-SDL
  • 마이크로소프트가 개발한 안전한 소프트웨어 개발을 위한 방법론
    3) Seven Touchpoints
  • 소프트웨어 보안이 모범사례를 SDLC에 통합한 방법론

시큐어 코딩(Secure Coding)

OWASP(The Open Web Application Security Project)

오픈소스 웹 애플리케이션 보안 프로젝트

시큐어 코딩 가이드

해킹 등 사이버 공격의 원인인 보안 취약점을 제거해 안전한 소프트웨어를 개발하는 SW 개발 기법

시큐어 코딩 가이드 항목

1) 입력 데이터 검증 및 표현

  • SQL Injection
  • XSS(크로스 사이트 스크립트)
  • 자원 삽입
  • 위험한 형식 파일 업로드
  • 명령 삽입
  • 메모리 버퍼 오버프로

2) 보안 기능

  • 적절한 인증 없이 중요기능 허용
  • 부적절한 인가
  • 취약한 암호화 알고리즘 사용
  • 하드코딩된 패스워드
  • 패스워드 평문 저장
  • 취약한 패스워드 허용

3) 시간 및 상태

  • 경쟁 조건
  • 종료되지 않는 반복문 또는 재귀 함수

4) 에러 처리

  • 오류 메세지 정보 노출
  • 오류 상황 대응 부재
  • 부적절한 예외 처리

SW개발 보안 구현

암호 알고리즘

1) 평문(Paintext) : 해독 가능한 형태의 메시지
2) 암호문(Cipertext): 해독 불가능한 형태의 메세지
3) 암호화(Encryption): 평문을 암호문으로 변환하는 과정
4) 복호화(Decryption) : 암호문을 평문으로 변환하는 과정
5) 전자서명: 인터넷상에서 본인임을 증명하기 위해 서명을 하는 수단
6) 양방향 암호화 : 평문 <-> 암호화
7) 단방향 암호화 : 평문 <-> 암호화

⭐대칭키 암호(Symmetric key) [21년 2회, 21년 3회, 22년 2회]

암호화와 복호화에 동일한 키를 사용하는 암호화 빙식

블록암호 알고리즘

알고리즘블록 크기키 길이특징
DES64비트56비트오래된 알고리즘, 안전성 문제로 사용 감소
3-DES64비트112/168비트2개의 키,DES의 개선판, 세 번 암호화 (암호 -> 복호 -> 암호)
AES128비트128/192/256비트DES 한계 극복 미국, 현재 가장 많이 사용되는 알고리즘
SKIPJACK64비트80비트미국 정부의 비밀 암호 알고리즘
IDEA64비트128비트스위스, 강력한 보안성, 오래된 알고리즘
SEED128비트128비트한국에서 개발된 블록 암호
ARIA128비트128/192/256비트한국의 표준 암호 알고리즘
LEA128비트128/192/256비트경량 블록 암호, IoT에 적합

스트림암호 알고리즘

알고리즘특징
LFSR선형 피드백 시프트 레지스터를 사용, 빠르고 간단한 구현
RC4고속 스트림 암호, 키 스트림 생성 방식, 다양한 프로토콜에서 사용
A5GSM 통신에서 사용되는 스트림 암호, 64비트 키 사용

⭐ 비대칭키 암호

암호화와 복호화에 서로 다른 키를 사용하는 방식

키의 종류

  • 공개키(Public Key) : 대중에게 공개된 키
  • 개인키(Private Key): 개인이 관리하는 비밀 키
구분알고리즘 이름특징
소인수 분해RSA가장 대표적인 공개키 암호 알고리즘 (두 개의 큰 소수의 곱 기반)
Rabin소인수 분해 문제에 기반하며, 암호화와 서명에 사용 가능, RSA보다 빠르다.
이산 대수DSA미국 전자서명 표준, 디지털 서명 생성에 최적화된 알고리즘
Diffie-Hellman키 관리 센터 없이 공개키를 전달하는 데 사용
ElGamal같은 평문으로부터 다른 암호문 생성이 가능한 암호 알고리즘
타원 곡선ECC타원 곡선상의 이산대수 문제를 이용한 암호화 방식

전자서명

인증서 형태로 발급되는 자신만의 디지털 인감 도장이며 안전한 디지털 서명

단방향 암호화

해시를 이용한 암호화 과정

해시 함수 특성

특성설명
역상 저항성주어진 해시 값을 가지고 원래 입력 값을 찾기 어려움
제2 역상 저항성주어진 해시 값에 대해 동일한 해시 값을 생성하는 다른 입력 값을 찾기 어려움
충돌 저항성두 개의 서로 다른 입력 값이 동일한 해시 값을 생성하는 것을 찾기 어려움

해시 함수 종류

해시 함수 종류출력 길이특징
MD5128비트빠른 속도를 가진 해시 함수, 충돌 취약성 문제로 보안에 적합하지 않음 [20년 1회]
SHA160비트안전한 해시 알고리즘, 다양한 변형(SHA-1, SHA-2 등) 존재 미국 (NTS)에의해 개발됨
HAS-160160비트SHA-1을 기반으로 한 해시 함수, 보안 강도가 중간 정도, 한국에서 개발함

암호화적 해시 함수의 결점

결점설명
무차별 대입 공격 (Brute Force Attack)모든 가능한 입력 값을 시도하여 해시 값을 찾는 공격 방식
레인보우 테이블 공격 (Rainbow Table Attack)미리 계산된 해시 값과 입력 값의 쌍을 사용하여 해시 값을 역추적하는 공격 방식

Rainbow Table 공격

보완 방법설명
키 스트레칭입력 키를 여러 번 해시하여 키의 강도를 높이고, 공격자가 키를 추측하기 어렵게 만듦
솔팅입력 값에 랜덤한 데이터를 추가하여 해시 값을 생성, Rainbow Table 공격 저항력을 강화

전자 우편 보안 프로토콜

프로토콜/기술설명
PGP이메일과 파일의 암호화 및 디지털 서명을 위한 프로그램 (Phill Wimmermann 개발)
PEM메시지 내용 보호
S/MIMEMIME에 전자서명과 암호화 추가
DKIM메일 발신자 인증, 발신 정보 위장 방지

코드 오류

코드의 유형

코드 오류 유형설명
순차 코드데이터를 순차적으로 표현하는 코드
블록 코드코드화 할 대상이 갖는 공통 특징을 줌심으로 항목들을 분류
10진 코드10진수를 표현하는 코드
그룹 분류 코드데이터를 그룹으로 나누어 표현하는 코드
연상 코드코드 대상의 명칭과 관계있는 문자, 숫자, 약어를 사용
표의 숫자 코드코드화 대상 항목을 중량, 면적, 용량 등을 사용
합성 코드여러 코드(두개 이상)를 조합하여 표현하는 방식

코드의 오류 발생 형태

코드 오류 발생 형태설명
생략 오류 (Omission Error)필요한 코드가 누락된 경우, 한자리 빼놓고 기록
필사 오류 (Transcription Error)잘못된 문자를( 한자리 잘못 기록) 그대로 복사한 경우
전위 오류 (Permutation Error)코드의 순서가 잘못된 경우
이중 오류 (Duplication Error)동일한 코드가 두 번 표현된 경우
추가 오류 (Addition Error)불필요한 코드가 추가된 경우
임의 오류 (Random Error)예기치 않은 코드가 삽입된 경우

인증과 접근통제

인증

로그인을 요청한 사용자의 정보를 확인하고 접근 권한을 검증하는 보안 절차

인증 유형

인증 유형설명
지식 기반 인증사용자가 알고 있는 정보를 기반으로 인증 (예: 비밀번호)
소유 기반 인증사용자가 소유하고 있는 물리적 장치를 기반으로 인증 (예: 스마트 카드, OTP 생성기)
생체 기반 인증사용자의 생체 정보를 기반으로 인증 (예: 지문, 얼굴 인식)
위치 기반 인증사용자의 위치 정보를 기반으로 인증 (예: 특정 지역에서만 접근 허용)
행동(행위) 기반 인증사용자의 행동 패턴을 기반으로 인증 (예: 타이핑 속도, 마우스 이동)

인가

인증된 사용자에게 권한을 부여하는 과정

인증방식[22년 3회 기출, 24년 1회 기출]

인증 방식설명
계정 정보 요청 헤더인증 정보를 요청 헤더에 포함하여 전송하는 방식
Cookie 방식서버가 클라이언트에 쿠키를 저장하고 이를 통해 인증 상태를 유지하는 방식
Session 방식서버에서 세션 ID를 생성하고 클라이언트에 전달하여 인증 상태를 관리하는 방식
토큰 기반 인증인증 후 발급된 토큰을 사용하여 접근을 제어하는 방식 (예: JWT, JSON Web Token)
OAuth제3자 인증을 통해 자원에 대한 접근을 제어하는 방식 (이용자의 웹서비스에 대한 제한된 접근 권한 부여)
SSO (Single Sign-On)한 번의 로그인으로 여러 서비스에 접근할 수 있도록 하는 방식
커버로스Kerberos 프로토콜을 이용한 인증 방식으로, 티켓을 사용하여 인증을 수행
아이핀 (i-PIN)개인 식별 번호를 통해 온라인 서비스에서 인증을 수행하는 방식

접근 통제

정당한 사용자에게 권한을 부여하고, 그 외의 사용자는 접근을 거부하는 것

접근 통제 과정

1) 식별(Identification) : ID를 확인하는 과정
2) 인증(Authentication) : 패스워드가 정확한지 확인
3) 인가(Authorization) : 권한을 부여

⭐접근 통제 정책

정책MACDACRBAC
권한 부여시스템데이터 소유자중앙관리자
접근 결정보안등급(Label)신분(Identity)역할(Role)
정책 변경고정적(변경 어려움)변경 용이변경 용이
장점안정적, 중앙 집중적구현 용이, 유연함관리 용이

접근 통제 모델

접근 통제 모델설명
벨-라파둘라 모델(Bell-LaPadula Model)기밀성 유지에 중점을 두고, 높은 기밀성 레벨의 정보로부터 낮은 레벨의 사용자가 접근하는 것을 방지.
비바 모델(Biba Model)무결성 유지에 중점을 두고, 낮은 무결성 레벨의 정보로부터 높은 레벨의 사용자가 접근하는 것을 방지.
클락-월슨 모델(Clark-Wilson Model)무결성을 보장하기 위해 인증된 트랜잭션을 사용하며, 비즈니스 규칙을 기반으로 접근을 제어.
만리장성 모델(Chinese Wall Model)데이터의 무결성을 보호하기 위해 사용자가 특정 데이터에 접근할 수 있는지를 결정하는 방식.

시스템 보안 구현

보안 취약점

정보시스템에 불법적인 사용자의 접근을 허용할 수 있는 위협

보안 취약점 점검 분휴

1) 관리적 관점
2) 기술적 관점
3) 물리적 관점

보안관제

24시간 정보자산을 지키기 위해 전달되는 패킷을 관측한다. 실제 침해사고 시 CERT팀이 대응한다.

통합 로그 분석 장비

  • ESM (Enterprise Security Mangement)
  • SIEM (Security Information & Event Mangement)

보안 운영체제(Secure-OS), 신뢰성 운영체제(Trusted OS)

컴퓨터 운영체제의 커널에 보안 기능을 추가한 것

보안 솔루션 [22년 3회 출제]

방화벽(Firewall)

네트워크와 인터넷 간의 정보 전송을 제어하여 침입을 차단하는 시스템

웹 방화벽(Web Firewall)

  • 웹 기반 공격을 방어하기 위한 웹서버 특화 방화벽으로, SQL 삽입 공격, XSS 등을 방어
  • 종류: WebKnigt, ModSecurity 등

칩입 탐지 시스템(IDS, Intrusion Detection System)

  • 비정상적인 사용, 오용, 남용 등을 실시간으로 탐지하는 시스템

  • 침입 방지 방식에 따른 분류

    • 오용탐지 : 미리 입력해 둔 공격 패턴 이용
    • 이상탐지 : 평균적인 시스템의 상태를 기준

방화벽 시스템 구축 유형

구축 유형설명
스크리닝 라우터패킷 필터링을 통해 트래픽을 제어하는 라우터 (IP, TCP, UDP 헤더 분석)
베스천 호스트외부와 내부 네트워크 사이의 중재자 역할 (접근 제어, 프록시 기능 , 인증 , 로깅 등 수행)
듀얼 홈드 호스트2개의 네트워크 인터페이스를 갖춘 호스트
스크린드 호스트패킷 필터 라우터와 베스천 호스트 조합
스크린드 서브넷두 개의 스크리닝 라우터와 한 개의 베스천 호스트

보안 프로토콜

SSH(Secure Shell Protocol)

원격 호스테에 접속하기 위한 보안 프로토콜, 22번 포트

SSL(Secure Socket Layer) HTTPS = SSL

웹 브라우저의 웹 서버 간 안전한 데이터 전송을 위한 프로토콜 , 443 포트 사용한다.

TLS(Transport Layer Security)

전송 계층 보안을 위해 개발된 프로토콜

IPSec [21년 2회]

IP계층(네트워크 계층)을 안전하게 보호하기 위한 기법

동작 모드

  • 전송 모드(Transport Mode): IP 페킷이 페이로드(Payload)만을 보호
  • 터널 모드(Tunneling Mode): IP 패킷 전체를 보호

프로토콜

  • AH(Authentication Header) : 인증 + 무결성
  • ESP(Encapsulating Security Payload): 인증 + 무결성 + 기밀성
  • IKE(Internet Key Exchange) : 키 교환 프로토콜

S-HTTP(Secure HTTP)

  • 웹상에서 네트워크 트래픽을 암호화하기 위한 방법이다

RedSec

  • RADIUS 데이터를 전송 제어 프로토콜(TCP)이나 전송 계층 보안(TLS)을 이용하여 전송하기 위한 프로토콜

고가용성(HA, High Availability)

서버, 네트워크, 프로그램 등의 정보 시스템이 오랜 기간 동안 지속적으로 정상 운영될 수 있는 능력


서비스 공격 유형

DoS(Denial of Service) 공격

대상 시스템이 정상적인 서비스를 수행하지 못하도록 만드는 공격

Dos 공격 유형

공격 유형설명
Smurf AttackICMP 패킷을 이용해 네트워크 장비를 반사하여 공격
Ping of Death큰 크기의 ICMP 패킷을 보내 시스템을 충돌시키는 공격
Land Attack [20년 1회]동일한 IP 주소와 포트를 이용해 패킷을 전송하여 시스템을 마비
Teardrop Attack잘못된 패킷 조각을 보내 시스템의 메모리를 소모시키는 공격
SYN FloodingTCP 연결 설정 과정에서 SYN 패킷을 과도하게 보내 서비스 중단
UDP FloodingUDP 패킷을 대량으로 보내 대역폭을 소모시키는 공격
Ping FloodingICMP Echo Request를 대량으로 보내 서비스 중단

DDoS(Distributed Denial of Service attack) 공격

분산된 다수의 좀비 PC를 이용하여 공격 대상 시스템의 서비스를 마비시키는 형태

DDoS 공격 구성

  • 공격자(Attacker)
  • 명령 제어 (C&C Command and Control)
  • 좀비(Zombie) PC
  • 공격 대상(Target)

DDoS 공격 순서

  • 권한획득
  • 공격 대상 파악
  • 취약 시스템 리스트 확인
  • 시스템 침투 및 Exploit 설치
  • 공격 시작

DDoS 공격 툴의 종류

  • 트리누(Trinoo) : UDP 데이터 패킷을 사용하여 대량의 트래픽을 생성
  • TFN(Tribal Flood Network) : 다양한 공격 기법을 지원
  • 슈타첼드라트(Stacheldrht) : 트리누와 TFN의 특징을 결합

기타 해킹 기법

해킹 기법설명
바이러스스스로를 복제하여 다른 파일에 감염시키는 악성 코드
네트워크를 통해 스스로 복제하여 전파되는 악성 코드
트로이 목마유용한 프로그램으로 가장하지만 악성 코드를 포함
루트킷시스템에 몰래 설치되어 권한을 상승시키고 숨기는 소프트웨어
XSS (교차 사이트 스크립팅)웹 페이지에 악성 스크립트를 삽입하여 사용자 정보를 탈취
SQL injection데이터베이스 쿼리에 악성 코드를 삽입하여 정보 탈취
피싱신뢰할 수 있는 기관으로 가장하여 개인 정보를 탈취
랜섬웨어파일을 암호화하여 금전을 요구하는 악성 소프트웨어
스니핑네트워크 트래픽을 몰래 감청하여 정보를 수집하는 기법
패스워드 크래킹암호를 해독하여 시스템에 접근하는 기법
포트 스캐닝열린 포트를 탐색하여 취약점을 찾는 기법
세션 하이재킹사용자의 세션을 가로채어 불법적으로 접근하는 기법
버퍼 오버플로우메모리 버퍼의 경계를 초과하여 데이터를 덮어쓰는 공격
ARP 스푸핑ARP 프로토콜을 이용해 네트워크에서 패킷을 가로채는 기법
드로퍼다른 악성 코드를 설치하기 위해 사용되는 프로그램
MITM (중간자 공격)통신 중간에서 데이터를 가로채거나 변조하는 공격
코드 인젝션악성 코드를 삽입하여 시스템을 조작하는 기법
DDoS 공격여러 시스템에서 동시에 공격하여 서비스 중단
QshingQR 코드로 악성 링크 유도 또는 악성 코드 설치
Nucking특정 IP 주소에 대량 패킷 전송
스파이웨어사용자 동의 없이 정보 수집
사회공학인간 심리 이용 공격
Evil Twin Attack가짜 WiFI API 공격
CSRF사용자 의도와 무관한 행위 강요
Backdoor정상 인증 없이 시스템 접근
블루투스 공격Bulebug(연결 취약) / BlueSnarf(장비 접근) / BluePrinting(장비 탐색), Blueacking(익명 메세지)
Honeypot공격자 유인 시스템
인포데믹스잘못된 정보 확산
다크데이터분석되지 않은 대량 데이터
킬 스위치정보기기 데이터 원격 삭제
트러스트존중요 정보 보호 위한 독립 보안 구역
profile
매일매일 틀깨기

0개의 댓글