Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
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
Archives
Today
Total
관리 메뉴

브래의 슬기로운 코딩 생활

정보보안 중간고사 정리 본문

3-1/정보보안

정보보안 중간고사 정리

김브래 2024. 4. 19. 16:37

클라우드 컴퓨팅이란?

인터넷 ‘너머’에 존재하는 클라우드 사업자의 컴퓨터에서 처리하는 서비스

클라우드 서비스 모델

- SaaS (Software as a Service)

- PaaS (Platform as a Service)

- IaaS (Infrastructure as a Service)

클라우드 이용 모델

퍼블릭 클라우드
프라이빗 클라우드
커뮤니티 클라우드
하이브리드 클라우드

온프레미스(on-premise)

회사 내에 자체적으로 데이터 센터를 보유하고 시스템 구축에서 운용까지 직접 수행하는 형태

퍼블릭 클라우드(Public Cloud)

▪ 클라우드 사업자가 시스템을 구축
▪ 인터넷 등을 통해 불특정 다수에게 서비스 제공
▪ 데이터 센터를 보유하지 않아 초기 투자 부담 적음

프라이빗 클라우드(Private Cloud)

▪ 클라우드 서비스 제공자가 기업의 전용 데이터 센터 환경 구축 제공
▪ 보안 용이, 독자적인 기능이나 서비스 추가 쉬움
▪ 공공기관 및 금융기관에서 많이 사용

비용 비교

▪ 온프레미스 시스템 - 초기 도입 비용 비쌈
▪ 클라우드 - 서버 자원을 유연하게 사용해 비용 최적화, 인건비 최소화

 

▪ But, 조건에 따라 온프레미스가 저렴할 수 있음

- 장기간 이용시 / 대규모 시스템 구축/운용시

마이그레이션

데이터나 소프트웨어를 한시스템에서 다른시스템으로 이동하는것

싱글 사인온(SSO)을 통한 ID 연계

인증 받은 ID는 여러 개의 클라우드 사용 가능

클라우드(IaaS/PaaS) 제공 대표 서비스

▪ 가상서버
➢ 물리적 서버의 CPU, 메모리, 스토리지 같은 하드웨어 자원을 소프트웨어로 논리적으로나누어 사용
➢ 가상 CPU의 성능과 메모리 용량을 사용 용도와 시스템 규모에 맞게 선택

 

▪ 로드 밸런서
➢ 가상 서버를 이중화 하거나 부하 분산

 

▪ 오토스케일링
➢ 접속량 및 통신량에따라 가상 서버의 개수를 자동으로 늘리거나줄임

 

▪ 스토리지
➢ 데이터, 콘텐츠 아카이브(보관), 백업(보호), 파일 서버의 사용, 시스템의 재해대책(Disaster Recovery) 등 

다양한 용도로 사용

베어메탈(Bare Metal) 서버

▪ 하나의 물리적 하드웨어에 하나의 서버가 설치되는 것
▪ 높은 성능이 필요한 경우 사용

오토스케일링(Auto Scaling)

▪ 부하에 따라 컴퓨팅 자원(CPU, 메모리, 네트워크 등)을 유연하게 증감시키는 기능
➢ 시시각각 변하는 부하에 즉각 대응 및 효율적 운영
➢ 서비스 성능 및 가용성 보장
➢ 초기 구축 시 서버 사양을 적게 시작하여 비용 절감

 

▪ 동작 방식
➢ 스케일 업/다운 : 서버의 CPU, 메모리 등을 업그레이드, 다운그레이드방식(예) DB
➢ 스케일 인/아웃 : 동일 규격 서버의 수량을 증감하여 부하 분산하는 방식

재해 대책(Disaster Recovery, DR)

천재지변, 테러 등으로 서비스 중단 시 데이터를 보존하고 자동 복구하는 대책

클라우드 관리 플랫폼(CMP)

▪ 필요성
➢ 서버의 이용 증가
➢ 여러 개의 클라우드 서비스 이용
➢ 서버 환경 구축의 자동화
➢ 여러 클라우드의 통합 관리


▪ 주요 관리 기능
➢ 구성 관리 : 서버, 네트워크 등의 구성 및 관리 기능
➢ 성능 관리 : 시스템 및 서버 환경의 CPU, 메모리 등 모니터링
➢ 운영 관리 : 정기적인 작업(백업, 리소스 모니터링 등)을 운영, 관리
➢ 멀티 클라우드 관리 : 클라우드 서비스 별 통합 관리
➢ 사용자 관리 : 소속 및 직위에 따른 접근 권한 설정

가상화

➢ 하드웨어 리소스(CPU, 메모리, 스토리지)를논리적으로 다루는 기술
➢ 서버 가상화, 네트워크 가상화, 스토리지 가상화

서버 가상화 장점

➢ 물리 서버 하나의 라소스를여러 개의 서버 환경으로 할당 → 각각 OS 및 app 실행
➢ 물리 서버 수를 줄여 공간 절약 및 비용 절감
➢ 가상 서버 중 하나가 장애(바이러스등)가 발생하더라도다른 가상 서버에 영향 X

서버 가상화 기술

- 하이버바이저 형

- 호스트 OS형

- 컨테이너 형

컨테이너 기술

▪ 애플리케이션의 실행 영역을 여러 개로 나누어 사용
➢ 각 컨테이너는독립적으로 애플리케이션 실행 가능
➢ 호스트 OS 입장에서는하나의 프로세스(실행중인 프로그램)

▪ 대표 컨테이너 타입 가상화 소프트웨어 = Docker
▪ 컨테이너 타입 가상화 소프트웨어 운영 관리 도구 = Kubernetes(K8S)

하이퍼바이저 형

장점
- 가상 서버마다 OS 선택 가능
- 가상 서버들이 완전히 분리
- 하나의 가상 서버가 사이버 공격을 받아도 다른 가상 서버에게 피해가 미치지 못함

단점
- 가상 서버마다 OS가 필요하므로 CPU, 메모리, 스토리지 등의 하드웨어 리소스 사용량 많음
- 가상 서버의 부팅 시간이 많이 걸림

컨테이너 형

장점
- 다른 컨테이너에 복사하거나 마이그레이션하기 쉽다
- 가상화 환경 위에서 별도의 OS를 동작시킬 필요가 없어 하드웨어 리소스 적고 부팅이 빠름

 

단점
- 호스트 OS와 컨테이너는 커널을 공유(Linux 커널에서 window 컨테이너 동작 불가능)
- 한 컨테이너가 사이버 공격을 받으면 다른 컨테이너도 위험에 노출

네트워크 가상화 기술

▪ VLAN(Virtual LAN)
➢ 하나의 물리적인 네트워크를 여러 개의 논리적인 네트워크로 분할하는 기술

▪ VPN(Virtual Private Network)
➢ 가상으로 전용선과 같은 사설망을 연결하는 기술

▪ NFV(Network Functions Virtualization)
➢ 네트워크 기능을 소프트웨어 구현하여 가상 서버 위에 구축하는 기술

SDN(Software Defined Networking)

➢ 통신의 전송기능과 제어 기능을 분리
➢ 제어 기능을 컨트롤러에 할당하고 데이터의 흐름을 소프트웨어로 정의함
➢ 네트워크 가동 상황/운영에 맞추어 소프트웨어로 유연하게 데이터 전송 경로를 변경

엣지 컴퓨팅

▪ 서버를 말단 디바이스에 가까운 영역에 분산 배치하여 데이터를 처리

서버리스 아키텍처

▪ 마이크로 서비스 아키텍처(MSA)
➢ 하나의 애플리케이션을 작은 서비스의 집합체로구축하며, API로연계

▪ 서버리스 아키텍처
➢ MSA로 구성된 각 컴포넌트를 조합하고, 클라우드 사업자가 모두 관리하는 경우
사용자는 서버의 존재를 의식하지않은 상태에서 애플리케이션을 동작할 수 있음

 

▪ FaaS(Function as a Service)

➢ 이벤트에 따라 동작하는 함수로 구성
➢ 비용은 함수 호출 횟수, 걸리는 시간에 따라 청구

 

▪ BaaS(Backend as a Service)

➢ 백엔드 개발에 필요한 여러 기능을 API로 제공하는 서비스

마이크로 서비스 아키텍처(MSA)

▪ 기존의 한계
➢ 전체 시스템 구조 파악 문제
➢ 부분 장애가 전체 서비스의 장애로 이어짐


▪ MSA의 장점
➢ 배포: 서비스 별 개별 배포 가능
➢ 확장성: 특정 서비스에 대해 Scale-out 가능
➢ 장애 해결: 부분 장애에 대해 격리해서 확장 되지 않음


▪ MSA의 단점
➢ 서비스가 분리되어 있어 테스트 등 복잡도 증가
➢ 데이터가 분산되어 있어 조회 및 관리 어려움

CSP(Cloud Service Provider)

➢ 클라우드 인프라 제공
➢ 자체 데이터 센터에서 가상화한 서버, 네트워크, 스토리지 등을 제공

MSP(Managed Service Provider)

➢ CSP와 고객을 연결하는 역할
➢ 클라우드 도입에 필요한 컨설팅, 아키텍처 구축, 모니터링, 보안 등 제공

프로비저닝

▪ 사용자가 요청한 IT 자원을 사용할 수 있는 상태로 준비하는 것

탄력적 컴퓨팅

▪ 변화하는 요구사항을 충족하도록 컴퓨터 자원을 신속히 확장/축소하는 기능

데브옵스(DevOps)

▪ 목표 : 개발/운영의 협업으로 빠른 소프트웨어릴리즈 및 서비스 제공, 이슈 해결 등
▪ 소프트웨어의 개발(Dev)와 운영(Ops) 연계하는 방법론

데브옵스 실천법

➢ 지속적인 통합(CI) 
▪ 개발자들이 자주(하루 한번이상) 코드를 공유 리포지토리에 병합하는 프로세스.


➢ 지속적인 배포(CD)
▪ 개발된 소프트웨어를 자동으로 프로덕션 환경으로 배포하는 프로세스.


➢ 자동화
▪ 테스트, 배포, 모니터링 등과 같은 반복적인 작업을 자동화하여 시간 절약 및 오류를 줄임


➢ 협업과 공유
▪ 개발자와 운영팀 간의 긴밀한 협업과 서로의 작업에 대해 이해하여 전체 소프트웨어 개발, 배포 프로세스 개선

클라우드 네이티브

▪ 클라우드 환경에서 가장 효과적으로 동작하는 애플리케이션 개발 및 운영 방식

 

▪ 주요기술
➢ 마이크로서비스아키텍처(MSA)
➢ 컨테이너 기술
➢ 데브옵스(DevOps) 
➢ 지속적인 통합과 지속적인배포(CI/CD)

IAM(Identity and Access Management)

▪ 사용자가 누구인지, 어떤 권한을 갖는지, 어떤 리소스에 접근할 수 있는지 관리

 

▪ 인증요소
➢ 사용자가 아는 것 : ID+PW와같이 사용자만 알고 있는 것
➢ 사용자가 갖고 있는 것: 물리적 토큰(전자 열쇠, USB, 스마트폰 등)
➢ 사용자 자신: 신체 속성(지문, 망막 등)


OSI 7계층

▪ 통신 프로토콜(Protocol)
➢네트워크를 통해 데이터를 주고받는 과정에 대한 약속
➢OSI 7계층 모델은 통신 프로토콜을 7개의 세부 프로토콜로 나누어 설명

전송 계층의 상하 관계의 특성

➢상위 계층 (5계층, L5)은 하위 계층 (4계층, L4)이 하는 일에 관여하지 않음

전송 계층의 상하 관계

➢5계층(L5)의1개 메시지 → 2개의 4계층(L4) 세그먼트(Segment)로 쪼개짐

▪ 세그먼트: 4계층에서 다루는 데이터의 단위
▪ 페이로드(Payload): 상위 계층의 데이터

 

➢캡슐화(Encapsulation): 하위 계층에서 상위 계층의 페이로드에헤더 정보를 붙이는 것
▪ 4계층의 헤더: 흐름 제어를 위한 정보 포함
▪ 데이터의 오류 검출, 만약 오류가 있다고 판단되면 재전송 요청

전송 계층의 대표적인 예: TCP vs. UDP

➢TCP(Transmission Control Protocol)
➢UDP(User Datagram Protocol)
➢전송 계층에서 하는 역할인 흐름 제어를 TCP만 하고 UDP에서는하지 않음

3계층: 네트워크 계층(Network Layer)

➢라우팅(Routing)을 처리하는 계층

▪ 라우팅: 데이터를 전달할 때 어떤 경로로 데이터를 보낼지 경로를 선택하는 것

 

➢3계층의 캡슐화
▪ 세그먼트(4계층의데이터)에 라우팅과 관련된 헤더정보가 추가
▪ 패킷(Packet): 3계층의 데이터단위

 

➢패킷의 헤더: 최적의 경로 선택를 위한 기초 자료 저장
▪ 각 노드사이의전송 속도를 저장


➢기존에 구해진 경로 상의 노드가 고장이 발생 → 대체 경로를 찾아서 전송
▪ 네트워크계층의 대표적인 예: IP(Internet Protocol) 프로토콜

2계층: 데이터 링크 계층(Data Link Layer)

➢단말 사이의 신뢰성 있는 전송을 보장하는계층


➢포인트 투 포인트(Point-to-Point) 간 신뢰성을 보장하는 계층
▪ 에러를 검출하는 기법: 패리티 검사 (Parity Check) 등의 기법이 사용


➢2계층(L2)에서의 데이터 캡슐화
▪ 프레임(Frame): 2계층에서 전달하는 데이터의 단위
▪ 3계층의 페이로드인 패킷 앞·뒤에 헤더와 테일을 덧붙임


➢2계층의 예: 이더넷(Ethernet), 토큰 링(Token Ring) 등

TCP 프로토콜의 이해

➢TCP는 연결 지향적(Connection-oriented) 인 프로토콜
▪ 송신자와 수신자가 통신을 시작되면 둘 사이에 연결 (Connection)이 맺어지고 통신이 끝날 때까지 연결이 지속됨

 

➢TCP의 시작 과정: 3-way Handshaking
▪ (1) 송신자: 연결을 맺자고 요청하는 SYN(Synchronize, 동기화) 패킷 보냄
▪ (2) 수신자: 송신자 요청을 승인하는 SYN+ACK(Acknowledge, 수락) 패킷 보냄
▪ (3) 송신자: 수신자의 승인 패킷을 확인했다는 의미로 ACK 패킷 보냄
▪ 이러한 3단계를 거치면 연결 생성(Established) 상태가 됨

 

➢실제 메시지가 오고 가는 과정: 2-way 방식
▪ 흐름 제어(Flow Control) : 수신자의 ACK 패킷을 송신자가 일정 시간 못 받은 경우

송신자는 수신자에게 다시 메시지를 재전송
▪ TCP 헤더 정보를 이용, 슬라이딩 윈도우(Sliding Window) 기법으로 처리

➢TCP의 종료 과정: 4-way

(1) 송신자: 수신자에게 연결을 끊고자 FIN(Finish, 종료) 패킷 보냄
(2)(3) 수신자: ACK 패킷과 FIN 패킷을 각각 보냄
▪ 종료 요청에 대한 확인과 동시에 자신도 연결 종료를 요청하는 것

(4) 송신자: 수신자의 종료 패킷에 대한 확인으로 ACK 패킷 보냄
▪ 이렇게 연결이 끊어지게 되면 연결이 닫힘 상태(Closed)로변경됨

TCP의 포트(Port)

➢대표적으로많이 사용되는TCP 포트
▪ 20, 21 – FTP, 원격 파일 전송을 위한 목적
▪ 22 – SSH, 암호화된 원격 접속을 위한 목적
▪ 23 – 텔넷(Telnet), 원격 접속을 위한 목적
▪ 53 - DNS(Domain Name System), URL의 도메인 주소에서 IP 주소를 얻어올 때
▪ 80 - HTTP, 웹 접속을 위한 목적
▪ 110 - POP3(Post Office Protocol), 이메일 서버로부터 메일을 읽어올 때 사용
▪ 443 – HTTPS, 암호화된 웹 접속을 위한 목적

스니핑(Sniffing)

▪ sniff는 ‘냄새를 맡다’ 혹은 ‘코를 킁킁거리다’라는 뜻
▪ 네트워크 보안에서는 송신자와 수신자가 주고받는 데이터를 중간에서 도청하는 것

스니핑 기법 1: 허브 환경에서의 스니핑

➢허브: 더미 허브(Dummy Hub) 또는 수동 허브
▪ 입력으로 전달받은 패킷을 나머지 모든 포트로 단순히 전달
▪ 운영체제상 ‘다른 PC로 전달되는 패킷’을 무시
▪ 자신의 MAC 주소가 아닌 패킷들은 필터링


➢네트워크 카드: 무차별 모드(Promiscuous Mode)로 설정
▪ 나의 MAC 주소가 아닌 패킷도 전달받는 모드
→ 허브 환경에서 스니핑 가능

스니핑 기법 2: 스위치 환경에서의 스니핑

➢스위치(Switch)
▪ MAC 주소 정보를 이용하여 패킷을 해당 목적지로만 전달 → 무차별 모드로 셋팅해도 스니핑이 불가능

 

➢모니터링 포트 (Monitoring Port) 를 이용한 스니핑
▪ 모니터링 포트: 스위치를 통과하는 모든 패킷의 내용을 전달하는 포트
▪ 물리적으로 스위치에 접근 가능 → 모니터링 포트를 통해 스니핑 가능

 

➢스위치 재밍을 이용한 스니핑
▪ 재밍(Jamming): 전파 방해
▪ 매핑 테이블의 최대 저장 개수보다 더 많은 정보가 추가
→ 브로드캐스팅(Broadcasting) 모드로 동작
▪ 매핑 테이블(Mapping Table): IP 주소를 MAC 주소로 변환하기 위해 내부적으로 관리하는 테이블 (arp /a 로 확인)
▪ 브로드캐스팅 모드: 자신이 전달받은 모든 패킷을 연결된 모든 단말기에 전달
▪ 스위치 재밍 공격을 통해 스위치가 마치 더미 허브처럼 동작하게 되기 때문에 통신 속도가 느려짐

 

➢스푸핑 공격 기법을 이용
▪ 스푸핑(Spoofing) 기법: 공격자가 마치 자신이 수신자인 것처럼 ‘위장’
▪ 능동적 공격의 한 가지 방법

스니핑 방지 대책

➢암호화: 스니핑에 대한 가장 효과적인 대처 방안

 ARP 스푸핑

➢공격자가 공격 대상자의 MAC 주소를 가로채는 공격

➢ARP(Address Resolution Protocol)
▪ IP주소를 MAC 주소(하드웨어 주소)로 변환하는 역할

IP 스푸핑

➢IP 스푸핑(IP Address Spoofing): 공격자의 IP 주소를 다른 IP 주소로 속이는 공격 방법
➢핵심: 자신이 보내는 메시지 안의 IP 주소를 변조

ICMP 스푸핑

➢ICMP(The Internet Control Message Protocol): 네트워크상에 현재 오류가 없는지 진단하거나

제어하는 목적으로 사용되는프로토콜


➢ICMP의 사용 목적 1: 네트워크 진단
▪ 네트워크 연결 여부 확인: ping 또는 traceroute


➢ICMP의 사용 목적 2: 네트워크 흐름 통제

DNS 스푸핑

➢DNS(Domain Name Service, 도메인 네임 서비스): 접속하려는 URL 주소 이름으로 IP 주소를 구하는 서비스

서비스 거부 공격

▪ DoS 공격과 DDoS 공격 유형


▪서비스 거부 공격은 명백한 범법 행위


▪왜 서비스 거부 공격을 할까?
➢공격자가 자신의 능력을 자랑하기위해서
➢경쟁사의 서비스를방해하기 위해서: 반사 이익이 목적
➢서비스 중단을 빌미로 서비스 제공자를 협박하여돈을 갈취

웹의 구성

➢통신 프로토콜: HTTP(HyperText Transfer Protocol)

 

➢콘텐트: 하이퍼텍스트문서들
▪ 링크(Link, Hyperlink 혹은 참조)를 통해 다른 문서로 접근할 수 있는 문서

➢주소 체계: URL(Uniform Resource Locator)

HTTP 요청 메시지

➢GET 메소드의 구성


➢POST 메소드의 구성

➢구성요소 1: 메소드(Method) - 서버가 수행해야 할 동작 정의

HTTP 의 특징

➢HTTP는 비연결지향(Connectionless) 프로토콜
▪ 클라이언트가 요청을 서버에 보내면 서버는 클라이언트에게 요청에 맞는 응답을 보내고 접속을 끊는다
▪ 성능상 비효율적

➢HTTP는 상태 정보 유지안함(Stateless) 프로토콜
▪ ‘상태 정보’를 저장해야 할 경우에 대한 대안: 쿠키와 세션

HTTP 의 특징

➢쿠키(Cookie): 클라이언트에 저장되는 키와 값이 들어있는 작은 데이터 파일
▪ 클라이언트의 상태 정보를 로컬에 저장했다가 참조
▪ 이름, 값, 경로 정보뿐 아니라 만료 날짜(쿠키 저장기간)가 설정됨

 

➢세션(Session): 서버는 일정 시간 동안 같은 클라이언트로부터 전달되는 요청들을 하나의 그룹으로보고,

하나의 세션으로 식별함

HTML 및 스크립트

➢입력 파라미터의 전달
▪ GET 메소드 사용: 보안적으로 권장되지 않음
▪ 요청 파라미터가 요청 URI에 포함 → 사용자에게 노출


▪ POST 메소드 사용: 보안적으로 우수
▪ 파라미터 정보가 요청 바디(Body)에 포함 → 사용자에게 노출되지 않음

웹 취약점 스캐너

➢웹 사이트의 취약점을 점검해주는 프로그램
➢점검 대상이 되는 웹 사이트의 문제점에 대한 해결 방안을 제시

SQL 인젝션

➢데이터베이스와 관련된 보안 취약점:

사용자가 입력하는입력 값에 대한 유효성을 검증하지 않고 그대로 사용할 때 발생 가능

웹 취약점 및 보안 대책

중요 정보 평문 저장/전송과 취약한 암호화 알고리즘 사용
➢인터넷 등과 같은 통신 채널을 통해서 민감한 정보 전송 → 반드시 암호화해서전송(SSL/TLS)

대표적인 웹 서버

▪ 아파치(Apache) 웹 서버
▪ 제조사: 비영리 단체인 아파치 소프트웨어 재단


▪ IIS(Internet Information Services)
▪ 제조사: 마이크로소프트 사