질문
https://github.com/n30v364/wanted-preonboarding-information-security-june
GitHub - n30v364/wanted-preonboarding-information-security-june
Contribute to n30v364/wanted-preonboarding-information-security-june development by creating an account on GitHub.
github.com
1 시스템 보안의 기본 원리는 무엇인가요?
2 시스템 취약점을 어떻게 식별하나요?
3 리눅스 시스템에서 덤프 파일을 생성하는 방법에는 무엇이 있는지 설명하세요.
4 서버 취약점 점검을 한다고 했을 때, 가장 먼저 무엇을 어떻게 할 건가요?
5 DB 트랜잭션이 무엇인지 설명하세요.
6 랜섬웨어에 감염됐을 때 대처법은 무엇인가요?
7 ARP 스푸핑에 대해 설명해주세요.
8 피싱, 스미싱, 파밍 세 개의 특징과 차이점은 무엇인가요?
9 APT 공격이 무엇인지 간략하게 설명해주세요.
10 SQL 인젝션 공격이란 무엇이며, 이를 방지하기 위한 스크립트 언어의 역할은 무엇인가요?
11 MySQL에서 max_connections 설정 방법을 설명하세요.
12 HTTP Method와 각각이 사용되는 경우에 대해서 설명해주세요.
13 대칭키, 비대칭키 암호화 방식에 대해 설명해주세요.
14 클라우드 보안과 전통적인 IT 보안의 주요 차이점은 무엇인가요?
15 클라우드 보안 사고 대응 계획에는 어떤 요소가 포함되어야 하나요?
답안
1 시스템 보안의 기본 원리는 무엇인가요?
시스템 보안의 기본 원리 = 기밀성, 무결성, 가용성으로 구성된 CIA 삼각형에 기반
기밀성(Confidentiality): 정보가 권한 있는 사용자에게만 접근 가능하도록 보장함. 정보를 보호하기 위해 암호화가 자주 사용됨. > 소극적인 공격(엿보기)을 방어하기 위함
무결성(Integrity): 정보가 정확하고 완전하게 유지되어야 하며, 허가 받지 않은 방식으로 변경될 수 없음. 데이터 무결성을 보장하기 위해 해시 알고리즘과 디지털 서명이 사용됨. > 적극적인 공격(데이터 변조, 위조)을 방어하기 위함
가용성(Availability): 사용자가 필요할 때 데이터와 시스템 자원을 사용할 수 있어야하는 것. 이는 하드웨어 실패를 관리하고 서비스 거부 공격으로부터 보호하는 방법을 포함. > 적극적인 공격(데이터 파괴)을 방어하기 위함
2 시스템 취약점을 어떻게 식별하나요?
1. 자동화된 도구 사용
2. 수동 테스트
두 가지를 조합해서 식별함.
1> 자동화된 취약점 스캐너: Nessus나 Qualys와 같은 도구가 네트워크와 시스템을 빠르게 스캔하여 알려진 취약점을 찾아냄.
2> 펜테스팅: 악의적인 해커의 시각을 모방하여 시스템을 테스트함으로써 취약점을 식별함.
2> 보안 감사: 보안 전문가가 시스템의 보안 설정과 정책을 검토하고, 취약점을 식별함.
3 리눅스 시스템에서 덤프 파일을 생성하는 방법에는 무엇이 있는지 설명하세요.
1. Core dump 생성 방법
2. tcpdump 생성 방법
3 그외 ( dump 명령어, dd 명령어, gcore 명령어)
1. Core dump 생성 방법
core dump 파일 : 프로그램이 비정상적으로 종료 될때 생성되는 덤프파일
ex> 프로그램이 세그멘테이션 오류가 발생할때 생성됨.
1-1 > Core Dump 설정 (Core Dump 활성화)
ulimit 명령어를 사용하여 core dump를 활성화 가능.
ulimit: 셸 내에서 사용할 수 있는 자원 제한을 설정하는 명령어
현재 셸 세션에서 core dump 파일 크기 제한을 확인하려면 다음 명령어를 사용함.
ultimit -c
만일 core dump 파일 크기가 '0'이면 core dump가 비활성화 상태인 것이므로 활성화 명령어 실행
ultimit -c unlimited
1-2> Core Dump 파일 생성
프로그램이 비정상적으로 종료될 때 생성되는데 그러면 어디에 저장되나?
일반적으로 /proc/sys/kernel/core_pattern에 정의된 경로에서 저장되나 현재 작업 디렉토리 속 core이라는 파일명으로 저장될 수 있음.
core dump 파일의 위치와 이름을 변경하려면?
echo "/tmp/core.%e.%p" | sudo tee /proc/sys/kernel/core_pattern
c 언어 프로그램에서 core dump를 일부러 생성하기 위한 세그멘테이션 오류 발생 코드
#include <stdio.h>
int main() {
int *p = NULL;
*p = 42; // 세그멘테이션 오류 발생
return 0;
}
2. tcpdump 생성 방법
tcpdump: 네트워크 인터페이스에서 패킷을 캡처하여 분석하는 도구
네트워크 트래픽 덤프 파일 생성 가능.
2-1> tcpdump 설치
대부분 리눅스에는 tcpdump가 설치되어 있지만 만일 설치되지 않았을 경우 다음과 같이 설치 가능
sudo apt-get install tcpdump # Debian/Ubuntu 계열
sudo yum install tcpdump # Red Hat/CentOS 계열
2-2> 특정 네트워크 트래픽 캡처 및 저장
sudo tcpdump -i eth0 -w /path/to/output.pcap
여기서는 eth0 네트워크 인터페이스의 패킷을 캡처함.
2-3> 특정 트래픽만 캡처하기 위한 필터링 옵션
sudo tcpdump -i eth0 port 80 -w /path/to/output.pcap
특정 트래픽만 캡쳐하기 위한 필터링 옵션 사용.
해당 코드는 eth0 네트워크 이너페이스의 패킷 중 tcp 포트 80번의 트래픽만 캡쳐함.
2-4> 모든 인터페이스에서 트래픽 캡쳐하는 것
sudo tcpdump -i any -w /path/to/output.pcap
모든 인터페이스에서 트래픽을 캡처하고 output.pcap 파일로 저장됨.
3 그외 ( dump 명령어, dd 명령어, gcore 명령어)
dump 명령어: 파일 시스템을 백업하는 데 사용되며, 주로 전체 백업(-0)과 증분 백업(-1 등) 옵션이 존재.
dd 명령어: 데이터의 원시 복사에 사용됩니다. 예를 들어, dd if=/dev/sdX of=/path/to/dumpfile bs=64K와 같이 사용함.
gcore 명령어: 실행 중인 프로세스의 메모리 덤프를 생성합니다. gcore <pid> 형식으로 사용함.
4 서버 취약점 점검을 한다고 했을 때, 가장 먼저 무엇을 어떻게 할 건가요?
1. 목표 설정 및 범위 정의
목표 설정: 점검의 목적과 범위를 명확히 정의합니다.
- 점검 대상 서버: 어떤 서버들이 점검 대상인지 명확히 합니다.
- 점검 범위: 운영 체제, 네트워크, 애플리케이션, 데이터베이스 등 점검할 영역을 정의합니다.
- 보안 요구사항: 규제 준수 여부, 정책 준수 여부 등을 고려합니다.
2. 정보 수집
서버 및 네트워크 환경에 대한 정보를 수집합니다.
- 시스템 정보: 운영 체제, 커널 버전, 설치된 소프트웨어 및 서비스 목록을 수집합니다.
- 네트워크 구성: IP 주소, 서브넷, 라우터, 방화벽 설정 등을 파악합니다.
- 서비스 및 애플리케이션 정보: 실행 중인 서비스, 애플리케이션, 포트 번호 등을 수집합니다.
uname -a # 시스템 정보
ifconfig # 네트워크 인터페이스 정보
netstat -tuln # 열려있는 포트 및 서비스 확인
dpkg -l # 설치된 패키지 목록 (Debian/Ubuntu)
rpm -qa # 설치된 패키지 목록 (Red Hat/CentOS)
3. 취약점 스캔
자동화된 도구를 사용하여 초기 취약점 스캔을 수행합니다.
- 취약점 스캐너 사용: Nessus, OpenVAS, Qualys와 같은 도구를 사용하여 네트워크와 시스템을 스캔합니다.
- 결과 분석: 스캔 결과를 분석하여 잠재적인 취약점을 식별합니다.
# Nessus를 예로 들어 스캔 시작
# 웹 인터페이스에서 스캔 설정 및 실행
4. 결과 분석 및 위험 평가
스캔 결과를 바탕으로 식별된 취약점을 분석하고, 그 심각도를 평가함..
- 취약점 분석: 각 취약점의 세부 정보를 검토하고, 실제 위험을 평가.
- 위험 평가: 취약점의 영향력과 발생 가능성을 기준으로 위험 수준을 평가.
- 우선 순위 결정: 고위험 취약점을 우선적으로 해결하기 위한 계획을 세움.
5. 수동 점검 및 추가 분석
자동화 도구로 발견하지 못한 취약점을 수동으로 점검합니다.
- 로그 파일 검토: /var/log 디렉토리에 있는 시스템 로그, 애플리케이션 로그 등을 검토.
- 설정 파일 검토: 주요 서비스의 설정 파일(예: /etc/ssh/sshd_config, /etc/apache2/apache2.conf)을 점검하여 보안 설정이 적절한지 확인.
- 권한 및 접근 제어 확인: 파일 시스템의 권한 설정, 사용자 및 그룹 권한을 점검.
6. 보안 패치 및 구성 변경
식별된 취약점을 해결하기 위해 보안 패치를 적용하고 구성 변경을 수행합니다.
- 소프트웨어 업데이트: 운영 체제 및 설치된 소프트웨어를 최신 버전으로 업데이트합니다.
- 보안 패치 적용: 알려진 취약점에 대한 보안 패치를 적용합니다.
- 구성 변경: 불필요한 서비스 비활성화, 강력한 암호 정책 설정, 방화벽 규칙 강화 등 보안 강화를 위한 설정 변경을 수행합니다.
sudo apt-get update && sudo apt-get upgrade # Debian/Ubuntu
sudo yum update # Red Hat/CentOS
7. 재스캔 및 검증
패치와 구성 변경 후, 다시 스캔을 수행하여 취약점이 해결되었는지 검증함.
- 재스캔 수행: 초기 스캔과 동일한 범위로 다시 스캔을 실행.
- 검증 및 확인: 취약점이 해결되었는지, 새로운 취약점이 없는지 확인
8. 문서화 및 보고
점검 과정을 문서화하고, 결과를 보고함.
- 점검 보고서 작성: 취약점 목록, 위험 평가, 해결 조치, 재스캔 결과 등을 포함한 상세 보고서를 작성함.
- 관리자에게 보고: 보고서를 관리자에게 제출하고, 필요한 경우 추가 설명 및 협의를 진행함.
9. 보안 정책 강화 및 교육
장기적인 보안 강화를 위해 보안 정책을 강화하고, 관련 직원들을 교육함.
- 보안 정책 개선: 취약점 점검 결과를 반영하여 보안 정책을 강화함.
- 직원 교육: 보안 인식 교육을 통해 직원들의 보안 의식을 향상시킴..
5 DB 트랜잭션이 무엇인지 설명하세요.
DB 트랜잭션 : 데이터베이스의 상태를 변화시키는 일련의 작업 단위로 ACID 특성을 가지며 데이터의 무결성과 일관성을 보장함.
1. Atomicity(원자성)
트랜잭션의 모든 작업이 완료되거나 아무것도 수행되지 않아야함.
2. Consistency(일관성)
트랜잭션이 완료된 후 데이터베이스가 일관된 상태를 유지해야함.
3. Isolation(격리성)
동시에 실행되는 트랜잭션들이 서로 영향을 미치지 않아야함.
4. Durability(지속성)
트랜잭션이 완룔된 후 그 결과가 영구적으로 반영되어야함.
6 랜섬웨어에 감염됐을 때 대처법은 무엇인가요?
1. 감염된 시스템 격리
- 네트워크 연결 차단: 감염된 시스템을 네트워크에서 즉시 분리하여 랜섬웨어가 다른 시스템으로 확산되는 것을 방지함.
- 와이파이 및 블루투스 비활성화: 무선 연결을 차단하여 추가적인 확산 경로를 막음.
2. 초기 대응 및 평가
- 랜섬 노트 분석: 랜섬웨어가 남긴 메시지를 확인하여 감염된 파일과 요구사항을 파악.(그러나 지불하지 않는 것이 일반적인 권고사항)
- 변종 식별: 랜섬웨어 변종을 식별하기 위해 보안 소프트웨어나 온라인 도구(예: ID Ransomware)를 사용.
3. 악성 코드 제거
- 안전 모드 부팅: 안전 모드로 부팅하여 랜섬웨어가 실행되지 않도록 함.
- 안티바이러스 및 안티멀웨어 소프트웨어 사용: 최신 보안 소프트웨어로 전체 시스템을 스캔하여 랜섬웨어를 제거.
4. 데이터 복구
- 백업 데이터 복원: 최근 백업 데이터를 사용하여 감염된 시스템을 복구합니다. 백업이 있는 경우, 복구 전에 백업 데이터를 검사하여 감염 여부를 확인.
- 복구 도구 사용: 특정 랜섬웨어 변종에 대한 복구 도구를 사용하여 파일을 복구. 예를들어 No More Ransom 프로젝트에서 제공하는 도구를 사용할 수 있음.
5. 시스템 재설치 및 설정 복구
- 운영 체제 재설치: 시스템이 심각하게 손상된 경우, 운영 체제를 재설치하는 것이 안전할 수 있음.
- 보안 패치 적용: 운영 체제와 소프트웨어의 최신 보안 패치를 적용하여 취약점을 해결.
6. 사고 보고 및 법적 대응
- 내부 보고: IT 부서나 보안 팀에 즉시 보고하여 추가 조치를 논의.
- 법적 기관에 신고: 해당 지역의 사이버 범죄 대응 기관(예: KISA, FBI, Europol)에 신고하여 법적 지원을 받음.
7. 예방 조치 강화
- 보안 정책 강화: 랜섬웨어 감염 원인을 분석하고, 재발 방지를 위한 보안 정책을 강화함.
- 직원 교육: 랜섬웨어 예방 및 대응에 대한 교육을 통해 직원들의 보안 인식을 높임.
- 정기적인 백업: 데이터의 정기적인 백업을 통해 데이터 손실에 대비함. 백업은 오프라인 또는 클라우드에 보관하고, 주기적으로 복구 테스트를 수행.
- 보안 소프트웨어 업데이트: 모든 시스템에 최신 안티바이러스 및 안티멀웨어 소프트웨어를 설치하고 업데이트함.
- 네트워크 보안 강화: 네트워크에 방화벽, 침입 탐지 시스템(IDS), 침입 방지 시스템(IPS)을 설치하여 악성 트래픽을 차단함.
예시 조치:
감염된 시스템 격리:
# 네트워크 인터페이스 비활성화
sudo ifconfig eth0 down
안전 모드 부팅 및 스캔:
# 안전 모드에서 부팅 후 안티바이러스 실행 (예시)
sudo apt-get install clamav
sudo freshclam
sudo clamscan -r /home
백업 데이터 복원:
# 백업 데이터 복원 명령어 (예시)
rsync -av /backup/ /restore/
7 ARP 스푸핑에 대해 설명해주세요.
https://langeasy.tistory.com/89#ARP%C2%A0-1
[TCP/IP 계층] 인터넷 계층(IP 프로토콜, ARP)
예전에 HTTP 프로토콜에 대해서 학습하고 기록으로 남기고 싶어서 포스팅 해놓았는데 오늘은 인터넷 계층인 IP 프로토콜에 대해서 정리해보겠다. 그전에 다시한번 프로토콜에 대해서 한 번 더 짚
langeasy.tistory.com
-> ARP 관련 정보를 정리해놨습니다.
ARP란?
참조하는 IP 주소를 실제 주소인 MAC 주소로 변환하는 것.
스푸핑이란?
사전적 의미: '속이다'(spoof)
직접적으로 시스템에 침입을 시도하지 않고
피해자가 공격자의 악의적인 시도에 의한 잘못된 정보, 혹은 연결을 신뢰하게끔 만드는 일련의 기법들을 의미함.
즉, 스푸핑은 속임을 공격을 총칭함.
ARP 스푸핑
ARP + 스푸핑 = ARP 변환을 속이는 공격
공격자가 네트워크 내에서 자신의 MAC 주소를 다른 장치의 IP 주소에 매핑하여 데이터를 가로채는 공격.
공격 과정
1. 가짜 ARP 응답 전송:
공격자가 가짜 ARP 응답을 네트워크에 전송하여 자신의 MAC 주소를 공격하려는 장치의 IP 주소에 매핑.
2. 트래픽 가로채기:
다른 장치들이 이 잘못된 정보를 기반으로 통신하게 만들어 트래픽을 가로채고 분석.
3. 데이터 유출 및 변조:
가로챈 데이터를 분석하거나 변조하여 악의적인 활동 수행.
8 피싱, 스미싱, 파밍 세 개의 특징과 차이점은 무엇인가요?
1. 피싱(Phishing = Private Data + Fishing) : 개인정보를 빼내는 해킹 기법
이메일과 같은 수신자가 신뢰할 만한 근원지로 속여 개인정보를 빼내는 기법.
악성링크나 첨부된 파일 등으로 빼낼 수도 있고
사용자가 직접 자신들의 개인정보를 입력하도록 유도해 빼내는 방법이 존재.
2. 스미싱(Smishing = SMS + Phishing) : 문자메시지를 이용한 피싱 기법
피싱의 한 종류인 스미싱은 문자메시지로 수신자를 속여 개인정보를 빼내는 기법.
주로 택배나 무료쿠폰 등과 같이 사용자가 실제로 사용하거나 혹할만한 근원지로 위장해
링크를 클릭하도록 유도함.
링크를 누르게 되면 사용자의 휴대폰에 악성코드가 설치되어 소액 결제가 진행되거나 개인정보/금융정보 등을 빼감.
3. 파밍(Pharming) : 사용자의 PC를 조작하는 해킹 기법
공식적으로 운영되고 있는 도메인 자체를 중간에서 탈취해
사용자를 속이는 기법으로 피싱에서 더 발전한 사기 방법임.
악성코드에 감연된 사용자의 PC는 사용자가 정상적인 도메인 주소를 입력해도
중간에서 가로채는 공격자의 파밍사이트로 연결시켜 사용자가 속게 되고 개인정보를 의심없이 입력하게 됨.
9 APT 공격이 무엇인지 간략하게 설명해주세요.
APT(Advanced Persistent Threat) 공격 : 특정 표적을 대상으로 장기간에 걸쳐 지속적이고 정교하게 수행되는 사이버 공격을 의미
APT 공격의 특징
1. 정교한 기술 사용: APT 공격은 보통 고급 기술과 전문 지식을 활용하여 시스템을 침투하고, 특별히 개발된 악성 코드나 공격 기법을 사용함.
2. 잠복성: APT 공격은 공격자가 시스템에 장기간에 걸쳐 잠복하면서 목표를 추적하고 정보를 수집함. 이러한 공격은 종종 감지하기 어려움.
3. 고도화된 위협: APT 공격은 일반적인 사이버 공격과 달리 고도화된 위협으로서, 보안 시스템을 우회하고 탐지를 피하기 위해 다양한 기법을 사용함.
4. 정보 유출 또는 손상: APT 공격의 목표는 종종 기업, 정부 기관, 군사 시설 등의 중요 정보를 유출하거나 시스템을 손상시키는 것.
APT 공격은 보통 전문적인 해커 그룹, 국가 주도의 사이버 전투 단체, 혹은 기업 내부의 해커들이 수행함.이러한 공격은 일반적인 사이버 범죄와는 구별되는 더욱 정교한 방법과 목적을 가지고 있음. APT 공격은 보안 전문가들에게 매우 큰 위협이 될 수 있으며, 예방 및 대응에 대한 철저한 계획이 필요함.
10 SQL 인젝션 공격이란 무엇이며, 이를 방지하기 위한 스크립트 언어의 역할은 무엇인가요?
SQL 인젝션 공격: 공격자가 웹 애플리케이션의 입력 필드를 통해 악의적인 SQL 구문을 주입하여 데이터베이스를 조작하거나 민감한 정보를 탈취하는 공격
웹 애플리케이션에서 사용자 입력을 제대로 검증하지 않아서 발생하는 보안 취약점
예> 로그인 폼에 ' OR '1'='1' 같은 SQL 코드를 삽입하여 인증을 우회해 사용자의 계정 정보를 탈취하거나 관리자 권한을 얻을 수 있음.
방지하기 위한 스크립트 언어의 역할
1. 입력값 검증(Input Validation):
사용자가 입력한 데이터를 철저히 검증하여 악의적인 코드를 걸러냄.
2. 준비된 문(Prepared Statements):
SQL 쿼리를 미리 컴파일하고, 입력값을 쿼리와 분리하여 처리함으로써 SQL 코드 주입을 방지함.
3. ORM(Object-Relational Mapping):
데이터베이스와의 상호 작용을 객체 지향적으로 처리하여 직접적인 SQL 쿼리 작성을 최소화함.
11 MySQL에서 max_connections 설정 방법을 설명하세요.
일시적인 방법
show variables like 'max_connections';
set global max_connections = 200;
151개에서 200개로 변경된 것을 확인할 수 있음.
그러나 mysql을 재시작 시키면 다시 기존의 151개로 되어있는 것을 확인 가능함.
영구적인 방법
mysql에서의 설정 파일(my.ini 또는 my.cnf)에서 [mysqld] 섹션에 있는 max_connections 값을 추가하거나 수정함.
[mysqld]
max_connections = 200
리눅스 명령어
nano나 vi, vim 등을 이용해서 수정하기
sudo nano /etc/mysql/my.cnf
윈도우
윈도우에서는 리눅스처럼 수정할 수 있는 명령어는 따로 없고, 파일을 그대로 열어서 수정하고 저장하거나
정 cmd창으로 해결하고 싶다면,
notepad 'my.ini가 있는 경로'\my.ini
로 쳐서 직접 메모창을 켜서 수정하면 됨.
12 HTTP Method와 각각이 사용되는 경우에 대해서 설명해주세요.
조회
GET
용도: 서버에서 데이터를 가져올 때 사용합니다.
예시: /api/products에 GET 요청을 보내면 제품 목록을 반환합니다.
특징: 서버의 상태를 변경하지 않으며, 안전하고 멱등적입니다. 즉, 여러 번 호출해도 결과가 동일합니다 (FreeCodeCamp)
HEAD
용도: GET과 유사하지만, 응답 본문을 제외한 헤더만을 요청할 때 사용.
예시: /api/products에 HEAD 요청을 보내면 제품 목록의 헤더 정보만 반환됨.
특징: 주로 리소스의 메타데이터를 확인하는 데 사용되며, GET보다 빠름.
생성
POST
용도: 서버에 새로운 리소스를 생성할 때 사용합니다.
예시: /api/products에 제품 정보를 포함한 POST 요청을 보내면 새로운 제품이 생성됩니다.
특징: 서버 상태를 변경하며, 멱등적이지 않습니다. 같은 요청을 여러 번 보내면 여러 개의 리소스가 생성될 수 있습니다
업데이트
PUT
용도: 기존 리소스를 전체적으로 업데이트할 때 사용.
예시: /api/products/1에 PUT 요청을 보내면 ID가 1인 제품의 모든 정보를 업데이트..
특징: 멱등적이며, 여러 번 호출해도 동일한 결과를 제공.
PATCH
용도: 기존 리소스의 일부를 업데이트할 때 사용.
예시: /api/products/1에 가격 정보만 포함한 PATCH 요청을 보내면 ID가 1인 제품의 가격만 업데이트..
특징: PUT과 달리 리소스의 일부분만 변경하며, 더 효율적이고 구체적인 업데이트가 가능.
삭제
DELETE
용도: 서버에서 리소스를 삭제할 때 사용.
예시: /api/products/1에 DELETE 요청을 보내면 ID가 1인 제품이 삭제됨.
특징: 멱등적이며, 같은 요청을 여러 번 보내도 리소스가 이미 삭제된 상태라면 동일한 결과를 제공함.
OPTIONS
용도: 대상 리소스에 대해 사용할 수 있는 통신 옵션(HTTP 메서드)을 확인할 때 사용.
예시: /api/products에 OPTIONS 요청을 보내면 이 엔드포인트에서 지원하는 HTTP 메서드를 반환함.
CONNECT
용도: 대상 리소스에 대한 터널을 설정할 때 사용합니다. 주로 SSL 터널링을 위해 사용.
TRACE
용도: 받은 요청을 그대로 반환하여 네트워크 경로를 따라 요청이 변경되지 않았는지 확인할 때 사용.
13 대칭키, 비대칭키 암호화 방식에 대해 설명해주세요.
대칭키 암호화
암호화와 복호화에 동일한 키를 사용하는 방식.
빠른 속도가 장점이지만, 키가 하나이므로 안전하게 공유하는 것이 어려움.
대표적인 대칭키: AES, DES
비대칭키 암호화
공개키와 비공개키라는 두 개의 키를 사용하는 방식.
공개키로 암호화하고 대응하는 비공개키로 복호화를 하며 값이 다른 키기 때문에 비대칭키 암호화라고 함.
키 종류가 2개이므로 키 관리가 용이하지만, 대칭키에 비해 속도가 느림.
대표적인 비대칭키: RSA
14 클라우드 보안과 전통적인 IT 보안의 주요 차이점은 무엇인가요?
1. 책임 분담 모델
2. 보안 경계 및 접근 제어
3. 자동화 및 관리 도구
4. 비용 관리
5. 스케일링 및 확장성
6. 가용성 및 복구
1. 책임 분담 모델
- 클라우드 보안: 클라우드 서비스 제공업체와 클라우드 사용자가 보안 책임을 분담함. == 공유 책임 모델(Shared Responsibility Model). 클라우드 제공업체는 인프라의 보안을 책임지고, 사용자는 데이터 및 애플리케이션의 보안을 책임집니다.
- IaaS(Infrastructure as a Service): 물리적 하드웨어, 네트워크, 스토리지의 보안은 클라우드 제공업체의 책임이며, 운영 체제, 애플리케이션, 데이터의 보안은 사용자의 책임임.
- PaaS(Platform as a Service): 클라우드 제공업체는 IaaS 수준의 보안 책임 외에도 플랫폼 서비스의 보안을 책임지고, 사용자는 애플리케이션 및 데이터의 보안을 책임짐.
- SaaS(Software as a Service): 클라우드 제공업체는 모든 인프라와 애플리케이션의 보안을 책임지며, 사용자는 데이터와 사용자 접근 제어의 보안을 책임짐.
- 전통적인 IT 보안: 모든 보안 책임이 조직 내부에 있음. 하드웨어, 소프트웨어, 네트워크, 데이터 등 모든 계층의 보안을 자체적으로 관리 필요.
2. 보안 경계 및 접근 제어
- 클라우드 보안: 클라우드 환경은 인터넷을 통해 접근할 수 있기 때문에 강력한 접근 제어와 인증이 필수적임. 이를 위해 다단계 인증(MFA), 가상 사설망(VPN), 암호화된 연결 등을 사용함. 또한, 클라우드 제공업체는 고객 데이터의 물리적 위치를 명확히 하는 정책을 제공함.
- 전통적인 IT 보안: 보안 경계는 주로 물리적인 네트워크 경계로 구성됨. 방화벽, 내부 네트워크 분할, 물리적 접근 제어 등을 통해 보안을 유지함. 네트워크 내에서의 보안은 상대적으로 덜 강조될 수 있습니다.
3. 자동화 및 관리 도구
- 클라우드 보안: 클라우드 환경에서는 자동화 도구와 관리 콘솔을 사용하여 보안을 모니터링하고 유지함.. 클라우드 제공업체는 다양한 보안 서비스를 제공하며, 예를 들어 AWS의 AWS Shield, Azure의 Security Center 등이 존재. 또한, 자동화된 보안 업데이트 및 패치 관리가 가능하여 보안 유지가 용이함.
- 전통적인 IT 보안: 보안 관리와 모니터링은 주로 수동으로 이루어지며, 각 시스템에 대한 개별적인 보안 업데이트와 패치 관리가 필요함. 이러한 수동 작업은 인적 오류의 가능성을 높이고, 보안 유지에 많은 시간을 소요할 수 있음.
4. 비용 관리
- 클라우드 보안: 클라우드 보안 비용은 사용한 리소스에 따라 유연하게 조정됨. 이는 보안 비용이 운영비로 처리되며, 필요에 따라 보안 서비스의 규모를 조정할 수 있음을 의미함.
- 전통적인 IT 보안: 보안 비용은 주로 초기 자본 지출(CapEx)로 처리되며 매우 큼. 하드웨어 및 소프트웨어의 구매, 설치, 유지보수에 고정 비용이 발생함. 보안 인프라의 확장 및 축소가 클라우드에 비해 덜 유연함.
5. 스케일링 및 확장성
- 클라우드 보안: 클라우드 환경에서는 보안 솔루션의 스케일링이 쉽고 빠름. 클라우드 제공업체의 인프라를 활용하여 필요한 만큼 자원을 할당할 수 있으며, 트래픽 증가에 따라 보안 솔루션도 자동으로 확장될 수 있음.
- 전통적인 IT 보안: 스케일링이 제한적이며, 새로운 하드웨어나 소프트웨어를 추가하기 위해 시간과 비용이 많이 소요됨. 또한, 물리적 인프라의 한계로 인해 확장성이 떨어질 수 있음.
6. 가용성 및 복구
- 클라우드 보안: 클라우드 서비스는 고가용성과 재해 복구를 위한 다양한 기능을 제공함. (데이터 백업, 장애 조치, 지리적 분산 등이 포함) 클라우드 제공업체는 데이터 센터의 가용성을 보장하는 SLA(서비스 수준 협약)를 제공함.
- 전통적인 IT 보안: 가용성 및 복구 계획은 조직 내부에서 수립하고 관리해야 하며, 고가용성과 재해 복구를 구현하기 위해 추가적인 자원과 노력이 필요함. 이로 인해 비용과 관리 복잡성이 증가할 수 있음.
15 클라우드 보안 사고 대응 계획에는 어떤 요소가 포함되어야 하나요?
1. 사고 대응 정책 및 절차
- 정책 문서화: 사고 대응의 전반적인 정책과 지침을 명확히 문서화함. 여기에는 사고의 정의, 대응 범위, 책임 분담 등이 포함됨.
- 절차 수립: 보안 사고의 식별, 대응, 복구 및 사후 분석을 위한 상세한 절차를 수립함.
2. 사고 대응 팀 구성 및 역할 정의
- 사고 대응 팀 구성: 보안 사고 대응을 담당할 팀을 구성함. ( IT, 보안, 법무, 커뮤니케이션, 경영진 등 다양한 부서의 인원으로 구성됨.)
- 역할 및 책임 정의: 각 팀원의 역할과 책임을 명확히 정의하여 사고 발생 시 신속하게 대응할 수 있도록 함.
3. 사고 식별 및 초기 대응
- 사고 모니터링 및 감지: 클라우드 환경을 지속적으로 모니터링하여 보안 사고를 신속히 감지할 수 있는 시스템을 구축함. 예를 들어, 클라우드 제공업체의 보안 모니터링 도구(AWS CloudWatch, Azure Security Center 등)를 활용할 수 있음.
- 초기 대응 절차: 사고 감지 후 초기 대응 절차를 수립함. 이는 사고의 범위 파악, 영향을 받는 자산 식별, 추가 피해 방지 조치 등을 포함함.
4. 사고 대응 및 복구
- 대응 계획 실행: 사고 대응 계획에 따라 신속히 조치를 취함. 여기에는 영향을 받은 시스템의 격리, 침해 원인 분석, 침해 요소 제거 등이 포함됨.
- 복구 계획 수립 및 실행: 시스템을 정상 상태로 복구하기 위한 계획을 수립하고 실행함. 데이터 백업 복원, 시스템 재설치, 패치 적용 등이 포함됨.
5. 커뮤니케이션 계획
- 내부 커뮤니케이션: 사고 발생 시 내부 이해관계자(경영진, 직원 등)에게 신속하고 정확한 정보를 전달하는 절차를 수립함.
- 외부 커뮤니케이션: 고객, 파트너, 규제 기관 등 외부 이해관계자에게 사고 상황을 알리고, 필요한 정보를 제공하는 절차를 마련함.
6. 법적 및 규제 대응
- 법적 고려사항: 사고 대응 중 법적 요구사항을 준수하기 위해 법무팀과 협력함. 이는 데이터 유출, 개인정보 보호법 위반 등과 관련된 법적 이슈를 다룸.
- 규제 준수: 해당 규제 기관에 사고를 보고하고, 필요한 조치를 취함. 이는 GDPR, HIPAA 등 관련 규제를 준수하는 것을 포함.
7. 사고 기록 및 분석
- 사고 기록: 사고 발생 시 모든 대응 활동과 관련 정보를 상세히 기록. (사고의 원인, 대응 조치, 복구 상태 등을 포함.)
- 사고 분석: 사고 후 원인을 분석하고, 이를 통해 취약점을 식별하며, 향후 예방 조치를 마련함..
8. 사후 검토 및 개선
- 사후 검토 회의: 사고 대응이 완료된 후, 사후 검토 회의를 통해 대응 과정의 효과성을 평가하고, 개선점을 도출함.
- 계획 업데이트: 사후 검토 결과를 반영하여 사고 대응 계획을 업데이트하고, 필요한 경우 보안 정책을 강화.
9. 교육 및 훈련
- 정기 교육: 사고 대응 팀 및 관련 직원에게 정기적인 교육을 실시하여 보안 사고 대응 능력을 향상시킴.
- 모의 훈련: 정기적으로 모의 훈련을 실시하여 사고 대응 절차를 점검하고, 실제 상황에서의 대응 능력을 강화.
10. 기술적 대응 도구
- 보안 정보 및 이벤트 관리(SIEM): SIEM 시스템을 통해 로그 및 이벤트 데이터를 중앙에서 수집, 분석하여 사고를 실시간으로 감지하고 대응.
- 사이버 위협 인텔리전스: 최신 위협 정보를 활용하여 사고 대응 전략을 지속적으로 업데이트.
'BackEnd' 카테고리의 다른 글
백엔드 신입 개발자가 되기 위해 쌓아야할 역량은? (자료구조/ 알고리즘/ 코딩테스트) (0) | 2023.07.04 |
---|---|
백엔드 공부 계획 (0) | 2023.06.26 |
어떤 백엔드 개발자가 되고싶은가? (0) | 2023.06.23 |
Front-End(프론트엔드)와 Back-End(백엔드)란? feat.웹 서비스, 웹 프로그래밍 (0) | 2023.06.11 |