정보보안기사 2023년 6월 필기 기출 관련 개념 정리
ipconfig 명령어
* /displaydns: DNS Cache Table 조회
* /flushdns : DNS cache 초기화
* /renew : IP 주소 갱신
* /release : IP 주소 반환
umask
umask는 유닉스(Unix)나 리눅스(Linux) 시스템에서 새 파일이나 디렉터리가 생성될 때 기본적으로 설정되는 권한을 제한하는 값이에요.
기본 개념
- umask는 **"user file creation mask"**의 줄임말이에요.
- 새로 파일이나 폴더를 만들 때, 기본 권한에서 umask 값을 빼서 실제 권한을 결정해요.
기본 권한
- 파일: 기본 권한은 666 (rw-rw-rw-)
- 디렉터리: 기본 권한은 777 (rwxrwxrwx)
- (실제로는 보안상 파일에 실행 권한은 기본 부여되지 않아요.)
예시
- 022는 "다른 사람은 쓰기 금지"라는 의미예요.
- 새 파일은 666 - 022 = 644 → rw-r--r--
- 새 디렉토리는 777 - 022 = 755 → rwxr-xr-x
사용 방법
* 현재 umask 값 확인: umask
* umask 값 설정: umask 027
lsof
lsof는 리눅스나 유닉스 계열 시스템에서 열려 있는 파일(open file) 정보를 보여주는 명령어예요.
기본 개념
lsof는 List Open Files의 줄임말이에요.
리눅스에서 모든 것은 파일로 취급돼요:
- 일반 파일
- 디렉터리
- 소켓
- 파이프
- 네트워크 연결 등
그래서 lsof를 쓰면 어떤 프로세스가 어떤 파일(또는 포트, 소켓 등)을 열고 있는지를 알 수 있어요.
기본 사용법
유용한 옵션들
lsof -i | 네트워크 연결 정보 보기 (TCP, UDP 등) |
lsof -i :80 | 80번 포트를 사용하는 프로세스 보기 |
lsof -iTCP -sTCP:LISTEN | 현재 리슨(listen) 중인 TCP 포트 보기 |
lsof /path/to/file | 특정 파일을 열고 있는 프로세스 보기 |
lsof -p PID | 특정 PID가 열고 있는 파일 보기 |
lsof -u username | 특정 사용자가 연 파일 보기 |
예시
→ 3000번 포트를 사용 중인 프로세스 확인 (웹 서버 같은 경우 유용)
→ syslog 파일을 사용 중인 프로세스 보기
→ 3000번 포트를 점유 중인 프로세스를 강제 종료
setuid, setgid
setuid(Set User ID)와 setgid(Set Group ID)는 리눅스나 유닉스에서 파일 실행 시 권한을 일시적으로 바꾸는 특수한 퍼미션(권한)이에요.
1. setuid (Set User ID on execution)
- 실행 파일에 setuid 권한이 설정되면, 그 파일을 실행하는 사람이 누구든 간에, 파일 소유자의 권한으로 실행돼요.
- 주로 root 권한이 필요한 작업을 일반 사용자도 실행할 수 있게 할 때 사용돼요.
예시:
passwd 명령어는 일반 사용자도 자기 비밀번호를 바꿀 수 있지만, 실제로는 시스템 파일(/etc/shadow)을 수정해야 해요.
이건 루트 권한이 있어야 가능한데, passwd 파일이 setuid 되어 있어서 root 권한으로 실행돼요.
권한 표시:
-rwsr-xr-x ← 여기서 s는 setuid (소유자 실행 위치에 있음)
2. setgid (Set Group ID on execution or directory)
- 실행 파일에 적용:
실행하는 사람이 누구든 간에, 그 파일의 그룹 권한으로 실행돼요. - 디렉토리에 적용:
그 디렉토리에 파일을 만들면, 자동으로 그 디렉토리의 그룹이 소유 그룹으로 설정돼요.
팀 프로젝트에서 같은 그룹으로 파일을 공유할 때 유용해요.
권한 표시:
- 파일: -rwxr-sr-x ← 그룹 실행 위치에 s
- 디렉토리: drwxr-sr-x
설정 방법
setuid 설정: chmod u+s filename
setgid 설정:chmod g+s filename
권한 제거는 chmod u-s 또는 chmod g-s로 해요.
chmod 4자리 숫자에서:
- 첫 번째 자리 → 특수 권한 (setuid, setgid, sticky bit)
- 뒤의 세 자리 → 일반적인 rwx 권한 (owner, group, other)
특수 권한은 이렇게 계산돼:
4 | setuid |
2 | setgid |
1 | sticky bit |
그래서 예를 들어:
- 4777 → setuid(4) + 일반 권한 777 (rwxrwxrwx)
- 2775 → setgid(2) + rwxrwxr-x
- 1777 → sticky bit + rwxrwxrwx (보통 /tmp 디렉토리에 설정됨)
예시: chmod 4777 filename 을 했을 때
- 파일에 setuid가 걸림
- 일반 권한은 777 (모두 읽기/쓰기/실행 가능)
- 최종 권한 표시는:
- -rwsrwxrwx
여기서 rws는 owner 부분에서 실행권한(x)이 s로 바뀐 것, 즉 setuid가 설정된 거야.
참고로
4755 | setuid + 755 | -rwsr-xr-x |
2755 | setgid + 755 | -rwxr-sr-x |
1755 | sticky + 755 | -rwxr-xr-t |
777 | 모두 풀 권한 | -rwxrwxrwx |
ls -l 명령어로 보면 특수 권한이 적용된 부분은 x 대신 s 또는 t로 표시돼.
(실행 권한이 없는데 특수 비트만 있으면 대문자 S나 T로 표시돼서, 뭔가 이상하게 설정된 걸 알려줘.)
PAM 모듈 타입 4가지
PAM(Pluggable Authentication Modules)은 리눅스/유닉스에서 인증(Authentication) 관련 동작을 모듈화해서 처리하는 시스템이에요.
PAM 설정 파일에는 모듈 타입 4가지가 사용되며, 각각 인증 과정의 다른 단계를 담당해요.
PAM 모듈 타입 4가지
- auth
- 사용자 인증을 담당
- 비밀번호 확인, 지문 인식, 인증 토큰 요청 등
- 예: 로그인 시 사용자 이름과 비밀번호 확인
- account
- 계정의 유효성 검사
- 계정이 잠겼는지, 사용 기간이 만료됐는지, 로그인 가능한 시간인지 등을 검사
- 인증은 되었더라도, 계정 상태에 따라 거부될 수 있음
- password
- 비밀번호 변경 처리
- 사용자가 비밀번호를 변경할 때 사용됨
- 예: passwd 명령 실행 시
- session
- 세션 시작/종료 시 작업 처리
- 로그인/로그아웃 시 필요한 작업 실행 (예: 로그 남기기, 리소스 마운트, 홈 디렉터리 준비 등)
- 예: 로그인하면 자동으로 특정 디렉터리를 마운트하거나 로그 기록 남기기
휘발성 데이터와 비휘발성 데이터
휘발성 데이터 (Volatile Data)
- 정의: 전원이 꺼지면 사라지는 데이터
- 예시:
- RAM(메모리)에 존재하는 정보
- 실행 중인 프로세스 목록
- 네트워크 연결 상태 (TCP/UDP 세션)
- 현재 로그인 사용자 정보
- 캐시된 암호 / 키 / 임시 파일
- 시스템 시간, 커널 모듈, 드라이버 정보 등
비휘발성 데이터 (Non-Volatile Data)
- 정의: 전원이 꺼져도 보존되는 데이터
- 예시:
- 하드디스크(HDD/SSD) 파일
- 로그 파일 (시스템 로그, 접근 로그 등)
- 레지스트리 (Windows)
- 사용자 계정, 파일 시스템 메타데이터
- 이메일, 문서, 이미지 등 저장된 자료
레인보우 테이블, 크리덴셜 스터핑
레인보우 테이블 (Rainbow Table)
- 정의: 해시값을 빠르게 역산(복호화)하기 위해 미리 계산된 해시값-원문 쌍을 저장해놓은 표예요.
- 사용 목적:
해시된 비밀번호를 빠르게 찾아내기 위해 사용함.
예: 해시값 5f4dcc3b5aa765d61d8327deb882cf99 → 'password' - 동작 방식:
- 공격자가 미리 다양한 문자열의 해시값을 계산해 저장
- 시스템에서 유출된 해시값을 표에서 찾아 원래 비밀번호를 알아냄
- 한계와 방어 방법:
- Salt 기법을 쓰면 효과 급감 (같은 비밀번호여도 다른 해시가 됨)
- 길고 복잡한 비밀번호도 레인보우 테이블을 무력화시킴
- 최신 시스템은 대부분 Salt와 함께 해시를 사용
크리덴셜 스터핑 (Credential Stuffing)
- 정의:
이미 유출된 ID/비밀번호 조합(크리덴셜)을 다른 웹사이트에 자동으로 입력해 로그인하는 공격 방식 - 예시:
어떤 사용자의 계정정보(email: user@example.com / pw: qwer1234)가 A 사이트에서 유출되었다면, 공격자는 이 정보를 B, C, D 사이트에 자동으로 입력해 계정 탈취를 시도함 - 왜 잘 통하냐면:
많은 사용자가 같은 비밀번호를 여러 사이트에서 재사용하기 때문 - 방어 방법:
- 2단계 인증(2FA)
- 비밀번호 재사용 금지
- 로그인 시도 횟수 제한, CAPTCHA
- 크리덴셜 스터핑 탐지 시스템 (예: 행동 분석)
비교 요약
목적 | 해시값을 복호화해서 비번 알아냄 | 유출된 ID/PW로 다른 사이트 로그인 시도 |
주로 대상 | 해시된 비밀번호 | 평문 계정 정보 (이미 유출된) |
특징 | 사전 계산 필요, Salt에 약함 | 자동화 쉬움, 비번 재사용에 강함 |
시큐어 코딩 함수
취약한 함수 | 안전한 함수 |
strcat | strncat |
strcpy | strncpy |
gets, scan | fgets, fscanf |
vscsnf, vsscanf | vfscanf |
sprintf, vsprintf | snprintf, vsnprintf |
윈도우 공유폴더 관련 명령어
* 공유폴더 목록보기: net-share
* 새 공유 폴더: net share 공유이름-폴더경로 /grant:사용자, 권한
* 공유 폴더 삭제: net share 공유이름 /delete
* 공유 폴더 연결: net use Z: \\서버이름\공유폴더 이
* 연결 끊기: net use Z: /delete
리눅스 로그파일 관련 명령어
로그 관련 명령어와 주로 참조하는 파일(또는 데이터베이스)을 같이 정리해볼게.
last | 로그인 성공 기록 출력 | /var/log/wtmp |
lastb | 로그인 실패 기록 출력 | /var/log/btmp |
who | 현재 로그인 사용자 확인 | /var/run/utmp |
w | 로그인 사용자와 활동 정보 출력 | /var/run/utmp, /proc |
faillog | 로그인 실패 시도 횟수 확인 | /var/log/faillog |
utmpdump | utmp, wtmp 파일 덤프 | /var/run/utmp, /var/log/wtmp |
journalctl | systemd 기반 로그 조회 | systemd 저널 저장소 (/run/log/journal/) |
ausearch | SELinux 감사 로그 검색 | /var/log/audit/audit.log |
각 파일 의미
- wtmp: 로그인 및 로그아웃 기록 저장
- btmp: 로그인 실패 기록 저장
- utmp: 현재 로그인 상태 저장
- faillog: 로그인 실패 횟수 기록
- audit.log: SELinux나 감사 로그
보안 도구
* Snort: 네트워크 탐지 툴
* Nmap: 포트 스캐닝 도구
* Tcpdump: 스니핑도구
* Tcp wrapper: 방화벽 도구(서버단 접속통제)
도구명 | 역할 | 주요기능 | 사용목적 | 특징 |
Snort | 네트워크 침입 탐지 시스템(IDS) | 실시간 패킷 분석, 공격 탐지, 알림 | 네트워크 공격 탐지 및 모니터링 | 룰 기반, 널리 사용됨 |
Suricata | IDS/IPS | 고성능 멀티스레드 패킷 분석, 프로토콜 탐지 | Snort 대체 또는 보완용 IDS/IPS | Snort 룰 호환, 멀티코어 최적화 |
Nmap | 네트워크 스캐너 | 포트 스캔, 서비스 및 OS 탐지 | 네트워크 조사 및 취약점 점검 | 다양한 스캔 옵션, 스크립트 지원 |
Wireshark | 패킷 분석 도구 | 실시간 패킷 캡처 및 상세 분석 | 네트워크 문제 해결, 트래픽 분석 | GUI 기반, 프로토콜 분석 강력 |
Bro (Zeek) | 네트워크 모니터링 및 분석 플랫폼 | 트래픽 로그 생성, 이상행위 탐지 | 네트워크 보안 모니터링 및 포렌식 | 스크립트 기반 유연한 분석 가능 |
tcpdump | 패킷 캡처 및 분석 도구 | 커맨드라인 기반 패킷 캡처 및 필터링 | 빠른 트래픽 검사 및 문제 진단 | 경량, 스크립트와 조합해 활용 가능 |
OpenVAS | 취약점 스캐너 | 네트워크 및 호스트 취약점 자동 탐지 | 보안 취약점 진단 및 관리 | 광범위한 취약점 DB, 보고서 기능 |
SNMP
SNMP 기본 개념
- 목적: 네트워크 장비(라우터, 스위치, 서버, 프린터 등)의 상태 정보를 수집하고 제어
- 동작 방식:
- 관리자(Manager): 네트워크를 모니터링하는 중앙 시스템
- 에이전트(Agent): 네트워크 장비에 내장된 SNMP 소프트웨어, 상태 데이터를 제공
- 구성요소:
- MIB(Management Information Base): 관리 가능한 데이터의 구조화된 집합
- OID(Object Identifier): 각 데이터 항목을 고유하게 식별하는 번호 체계
SNMP 버전
- SNMPv1: 최초 버전, 보안 기능 미흡
- SNMPv2c: 성능 향상, 여전히 보안 취약
- SNMPv3: 보안 강화 (인증, 암호화 지원)
SNMP 주요 명령어
- snmpget: 특정 OID에 해당하는 정보를 요청
예) snmpget -v2c -c public 192.168.1.1 sysDescr.0 - snmpwalk: 특정 OID부터 하위 OID 전체 정보를 순차적으로 요청
예) snmpwalk -v2c -c public 192.168.1.1 system - snmpset: 장비 설정 값을 변경할 때 사용 (보안상 제한적)
예) snmpset -v2c -c private 192.168.1.1 sysContact.0 s "admin@example.com" - snmptrap: 비동기 이벤트(트랩)를 관리 시스템으로 전송할 때 사용
tracert, ping
항목 | ping | tracert/traceroute |
기능 | 대상 연결 여부 및 응답 시간 확인 | 목적지까지 경로 추적 및 각 구간 지연 시간 확인 |
출력 내용 | 응답 시간(RTT), 패킷 손실률 | 경유 라우터 IP 목록, 각 구간 응답 시간 |
사용 목적 | 네트워크 연결 상태 간단 점검 | 네트워크 경로 분석 및 문제 구간 파악 |
프로토콜 | ICMP Echo Request / Reply | ICMP 또는 UDP 패킷 (운영체제에 따라 다름), TTL 기반 |
운영체제별 차이 | Windows, Linux 모두 지원 | Windows: tracert, Linux: traceroute |
무선 LAN 프로토콜
프로토콜 | 의미 | 동작방식 | 요약 | 주 사용 분야 및 특징 |
CSMA/CD | Carrier Sense Multiple Access with Collision Detection | 충돌 감지 후 재전송. 송신 전 채널 감시, 충돌 나면 백오프 후 재시도 | 유선 LAN (예: 이더넷) | 무선 환경에 부적합 (충돌 감지 어려움) |
CSMA/CA | Carrier Sense Multiple Access with Collision Avoidance | 충돌 회피 방식. RTS/CTS 사용으로 사전 예약하며 충돌 방지 | 무선 LAN (Wi-Fi 등) | 무선 전용, 충돌 발생 가능성 줄임 |
FDMA | Frequency Division Multiple Access | 주파수 대역을 나누어 사용자별로 고정된 채널 할당 | 셀룰러 통신 (1세대 등) | 주파수 자원 분할, 고정적 |
CDMA | Code Division Multiple Access | 사용자마다 고유 코드로 데이터 전송. 동일 주파수에서 다중 사용자 가능 | 셀룰러 통신 (2G~3G 등) | 높은 보안성, 간섭에 강함, 복잡한 수신기 필요 |
Snort Rule
alert tcp any any -> any 23 (msg "test":content; "anonymous"; depth 14; sid 10001;)
오용탐지와 이상탐지
구분 오용탐지 (Misuse Detection) 이상탐지 (Anomaly Detection)
구분 | 오용 탐지(Misuse Detection) | 이상 탐지(Anomaly Detection) |
탐지 기준 | 알려진 공격 패턴(시그니처) 기반 | 정상 행위의 기준에서 벗어나는 이상 행위 탐지 |
장점 | - 오탐률 낮음- 명확한 공격 탐지 가능 | - 알려지지 않은 공격(제로데이)도 탐지 가능 |
단점 | - 새로운 공격(제로데이)에 취약- 시그니처 지속적 업데이트 필요 | - 오탐률이 높을 수 있음- 정상/비정상 기준 설정이 어려움 |
예시 도구 | Snort, Suricata 등 시그니처 기반 IDS | 머신러닝 기반 IDS, 통계적 이상탐지 시스템 |
적합한 환경 | 이미 잘 알려진 공격에 대비하는 환경 | 새로운 위협이나 내부자 이상 행위 탐지 목적의 환경 |
Snort를 이용한 LAND Attack 탐지룰
alert ip any any -> any any (msg:"Land Attck"; sameip;)
SNMP로 발생할 수 있는 공격 및 방지 방법
SNMP는 네트워크 장비를 관리하는 데 유용하지만, 잘못 설정되면 여러 가지 보안 공격에 악용될 수 있다. 아래에 SNMP로 인한 주요 공격 유형들을 정리하였다.
공격 유형 | 설명 | 원인 또는 취약점 |
정보 수집 공격 | 공격자가 SNMP를 통해 장비 이름, OS, 인터페이스 상태 등 민감 정보 수집 | community string이 public처럼 기본값으로 설정된 경우 |
SNMP Enumeration | 장비 내부 정보나 네트워크 구조를 추출하여 공격 준비 단계로 활용 | SNMP 읽기 권한 과도 부여, MIB 정보 유출 |
Brute Force Attack | SNMP community string을 무차별 대입하여 접근 권한 획득 | 인증 없는 SNMPv1, v2c 사용 |
DDoS 증폭 공격 | 작은 요청으로 큰 응답을 유도하여 제3자에게 대량의 트래픽 유발 | SNMP가 UDP 기반이라 IP 스푸핑과 함께 악용됨 |
설정 변경 공격 (snmpset) | 장비의 설정을 변경하거나 비활성화시키는 공격 | set 권한 있는 community string 노출 시 위험 |
서비스 거부(Denial of Service) | SNMP 요청을 대량으로 보내 장비 과부하 유도 또는 다운 | 필터링 부재, 비정상 트래픽 처리 미흡 |
방지 방법 요약
- SNMP v3 사용 (암호화 및 인증 제공)
- 불필요한 SNMP 비활성화
- community string은 기본값 변경 및 복잡하게 설정
- snmpwalk, snmpget 접근을 ACL 등으로 제한
- 방화벽에서 SNMP 포트(161/udp, 162/udp) 제한
SMTP 명령어 절차
메일 발송 절차: EHLO -> MAIL -> RCPT -> DATA -> QUIT
인증절차 : EHLO -> AUTH -> MAIL -> RCPT -> DATA -> QUIT
무선LAN 보안 프로토콜
보안 방식 | 정식 명칭 | 설명 |
WEP | Wired Equivalent Privacy | 가장 오래된 보안 방식, 약한 암호화 사용 (RC4) → 현재는 취약 |
WPA | Wi-Fi Protected Access | WEP의 단기 대체. 개선된 보안 (TKIP 사용) |
WPA2 | Wi-Fi Protected Access 2 | 강력한 보안. AES 기반 암호화, 현재 가장 널리 사용됨 |
WPA3 | Wi-Fi Protected Access 3 | 최신 보안 표준. 더 강한 암호화와 브루트포스 공격 방어 강화 |
보안 도구
항목 설명 관계/기능 사용 운영체제 (주로)
항목 | 설명 | 관계/기능 | 사용 운영체제(주로) |
netfilter | 리눅스 커널에 내장된 패킷 처리 프레임워크 | 기반 시스템 | Linux (커널 2.4 이상) |
iptables | netfilter를 제어하는 명령어 도구 | 고급 방화벽 설정 도구 | Linux 전용 |
ufw | iptables의 간편한 인터페이스 (초보자용) | 간단한 방화벽 관리 | Ubuntu, Debian 계열 |
iptables에서 목적지 포트가 10~20인 것을 차단하는 명령어는?
--dport 10:20
발신자 포트가 10~20인 것을 차단
--sport 10:20
Tripwire
시스템 무결성 검사 도구로, 시스템 내 중요 파일이 변조되었는지 감시하는 보안 솔루션
주요 기능
무결성 검사 | 파일의 해시값, 권한, 크기 등을 저장해두고 이후 변경 여부 탐지 |
변조 탐지 | 루트킷, 악성코드, 관리자 몰래 변경된 설정 파일 등을 감지 |
보고서 생성 | 변경된 파일 목록과 변경 내용 요약 보고서 출력 |
자동화 스케줄링 | 주기적으로 검사 수행 가능 (cron 등과 연동) |
감시하는 것들
- /etc/passwd, /etc/shadow
- /boot, /bin, /sbin 디렉터리
- 웹 서버 파일, 설정 파일, 로그 파일 등
기본 명령어 예시 (리눅스)
- tripwire --init → 기준 데이터베이스 생성
- tripwire --check → 현재 상태 검사
- tripwire --update → 검사 결과로 데이터베이스 갱신
Slow DoS 종류
공격 유형 전송 대상 공격 방식 서버에 미치는 영향 주요 타깃 서버
공격 유형 | 전송 대상 | 공격 방식 | 서버에 미치는 영향 | 주요 타깃 서버 |
Slow HTTP Header DoS(Slowloris) | HTTP 헤더 | HTTP 요청 헤더를 천천히 나눠서 전송 | 서버가 연결을 오래 유지해야 해서 소켓 고갈 | Apache, 일부 Nginx |
Slow HTTP POST DoS(ex. R.U.D.Y) | POST Body | Content-Length를 매우 길게 설정 후, 본문을 천천히 전송 | 요청 처리 대기 상태 유지 → 메모리/스레드 고갈 | Apache, PHP 기반 웹 |
Slow HTTP Read DoS(Slow Read) | 서버 응답 | 클라이언트가 수신 윈도우 크기를 매우 작게 설정 | 서버가 데이터를 매우 느리게 전송하게 됨 | Windows IIS 등 |
URL 스푸핑, 호모그래프 공격
구분 | URL 스푸핑 | 호모그래프 공격 |
공격 방법 | 비슷한 문자 또는 IP를 사용해 주소를 속임 | 시각적으로 유사한 유니코드 문자를 사용해 주소를 위장 |
공격 대상 | 웹사이트 URL, 이메일 링크 등 | 주로 도메인 이름(URL) |
공격 난이도 | 상대적으로 쉬움 | 문자셋 지식 필요, 다소 복잡 |
방어 방법 | URL 직접 확인, 링크 주의 | Punycode 인코딩 확인, 브라우저 차단 기능 사용 |
이메일 보안
PGP (Pretty Good Privacy)
- 개념: 개인 대 개인(P2P) 암호화 방식의 이메일 보안 프로토콜
- 기능: 이메일 내용 암호화, 서명, 인증
- 키 관리: 분산된 웹형식 신뢰 모델 (웹 오브 트러스트)
- 파일 형식: 자체 형식 (예: .asc 텍스트)
- 사용 분야: 개인 사용자 중심, 자유롭게 공개키 배포
- 특징: 공개키를 직접 주고받거나 공개 서버에 올려서 사용
PEM (Privacy Enhanced Mail)
- 개념: 이메일 보안 표준으로 제안되었으나, 현재는 인증서 및 암호화 데이터 포맷으로 주로 사용
- 기능: 인증서, 키, 암호화 데이터 저장 형식 (Base64 인코딩된 ASCII)
- 파일 형식: .pem, .crt, .key 등 (-----BEGIN CERTIFICATE----- …)
- 키 관리: X.509 인증서 기반
- 사용 분야: TLS/SSL 인증서 저장, 암호화 키 관리에 널리 사용
- 특징: 이메일 보안 외에도 다양한 보안 시스템에서 표준 형식
S/MIME (Secure/Multipurpose Internet Mail Extensions)
- 개념: 이메일 메시지 암호화와 서명을 위한 표준 프로토콜
- 기능: 메시지 암호화, 디지털 서명, 인증
- 키 관리: X.509 기반 인증서 중심 (공인 인증서 활용)
- 파일 형식: MIME 메시지 내부에 암호화/서명 포함 (.p7m, .p7s)
- 사용 분야: 기업 및 조직 이메일 보안에 널리 사용
- 특징: 메일 클라이언트(Outlook, Apple Mail 등)에서 기본 지원
요약 비교표
구분 | PGP | PEM | S/MIME |
주 목적 | 이메일 암호화 및 서명 | 인증서, 키, 암호화 데이터 저장 | 이메일 암호화 및 서명 |
키 관리 | 웹 오브 트러스트 | X.509 인증서 | X.509 인증서 |
주요 사용처 | 개인 사용자 이메일 보안 | TLS/SSL 인증서, 키 저장 | 기업용 이메일 보안 |
파일 형식 | .asc (텍스트 기반) | .pem, .crt, .key (Base64) | .p7m, .p7s (MIME 메시지 내) |
표준화 상태 | 비표준, 독립적으로 발전 | 표준 파일 포맷 | IETF 표준 이메일 보안 프로토콜 |
공격 종류
NTP 증폭 공격: monlist 라는 NTP 서버 명령어 악용
ICMP FLood: ICMP Echo request를 Boradcast해서 목적지의 IP주소를 피해자의 IP로
HTTP Flood: HTTP GET or POST 발생
DrDoS: 대량의 SYN 전송 후, 응답의 SYN+ACK를 피해자에게 전송
FTP Bounce Attack
네트워크를 포트 스캐닝하고 Fake 메일을 발송하는 공격
FTP
목적 | 네트워크 상에서 파일 전송을 위한 표준 프로토콜 |
기본 포트 | 제어용 포트: 21번 (명령어 송수신) |
데이터 전송용 포트: 20번 (액티브 모드에서 서버가 클라이언트로 연결) | |
통신 방식 | 클라이언트-서버 구조, 명령어와 데이터는 별도 채널로 전송 |
데이터 전송 모드 | - 액티브 모드(Active Mode): 서버가 클라이언트 지정 포트로 데이터 연결- 패시브 모드(Passive Mode): 클라이언트가 서버 지정 포트로 데이터 연결 |
인증 방식 | 사용자명과 비밀번호를 이용한 인증 (기본적으로 평문 전송) |
전송 방식 | 텍스트 및 바이너리 파일 전송 지원 |
보안 | 기본 FTP는 암호화되지 않아 평문 통신, 보안 취약SFTP, FTPS로 보안 강화 가능 |
명령어 예시 | USER, PASS, LIST, RETR, STOR, QUIT 등 |
응용 분야 | 웹 서버 파일 관리, 시스템 백업, 대용량 파일 전송 등 |
단점 | 방화벽 및 NAT 환경에서 설정이 까다로움, 기본 FTP는 보안 취약점 존재 |
- 액티브 모드:
- 클라이언트가 제어 채널(포트 21)로 서버에 접속
- 서버가 클라이언트가 지정한 임의의 포트(1024 이상)로 데이터 전송용 연결을 시도
- 서버의 데이터 전송 포트는 20번
- 방화벽 때문에 클라이언트 쪽에서 연결이 막히는 경우가 많음
- 패시브 모드:
- 클라이언트가 제어 채널(포트 21)로 서버에 접속
- 서버가 임의로 1024 이상의 포트 중 하나를 열고, 그 포트 번호를 클라이언트에 알려줌
- 클라이언트는 그 포트로 직접 데이터 연결을 시도
- 클라이언트 → 서버 방향으로 연결하므로 방화벽 통과가 더 쉬움
Log4j
- 역할: 애플리케이션 동작 중 발생하는 로그(정보, 경고, 오류 등)를 효과적으로 기록하고 관리
- 특징:
- 다양한 로그 레벨 지원 (TRACE, DEBUG, INFO, WARN, ERROR, FATAL)
- 로그 출력 형식과 대상(파일, 콘솔, 원격 서버 등) 설정 가능
- 유연한 설정 파일(XML, JSON, YAML, 프로퍼티 등) 지원
- 성능이 뛰어나고 확장성 높음
왜 유명해졌나? (2021년 보안 이슈)
- Log4Shell 취약점 (CVE-2021-44228)
- 2021년 말에 발견된 심각한 원격 코드 실행(Remote Code Execution, RCE) 취약점
- 악의적 사용자가 로그 메시지에 특수한 JNDI(Java Naming and Directory Interface) 호출을 삽입해 서버에서 임의 코드 실행 가능
- 전 세계 수많은 서비스가 영향을 받음, 보안 대책이 시급했음
DRM
DRM(Digital Rights Management)**은 디지털 콘텐츠의 저작권 보호 및 불법 복제 방지를 위한 기술
항목 | 설명 |
정의 | 디지털 콘텐츠의 저작권 보호를 위해 접근, 복사, 배포, 편집 등을 제어하는 기술 |
목적 | 콘텐츠 불법 복제 및 무단 유통 방지, 정당한 사용자만 콘텐츠 이용 가능하게 함 |
대상 | 음악, 영화, eBook, 소프트웨어, 문서 등 디지털 파일 전반 |
동작 방식 | 콘텐츠를 암호화하고, 허가된 사용자에게만 복호화 권한을 부여 |
구성 요소 | 콘텐츠 암호화, 키 관리, 라이선스 발급, 사용자 인증 등 |
예시 | - Netflix의 스트리밍 제한- eBook 복사 방지- 워터마킹 삽입 |
* packager: 보호 대상 디지털 콘텐츠 암호화 + 각 정보를 하나의 시큐어 컨테이너로 패키징
* Secure Container: 메타 데이터와 시큐어 컨테이너의 포맷 구조
* 클리어링 하우스: 글로벌 유통망
* 템퍼링 방지 기술: 소스레벨에 스크램블 코드 삽입 -> 크래킹 차단
이메일 보안 및 스팸 필터링 도구
항목 | 설명 |
SPF (Sender Policy Framework) | 이메일 발송자가 속한 도메인이 보낼 수 있는 IP 주소 목록을 DNS에 등록하여, 스푸핑 방지에 사용됨. 수신 메일 서버는 이 정보를 확인해 발신자 위조 여부 판단 |
RBL (Real-time Blackhole List) | 스팸 발송 이력이 있는 IP 주소 목록을 유지하는 블랙리스트 데이터베이스. 수신 서버는 발신자의 IP가 여기에 있는지 확인해 스팸 여부 판단 |
SpamAssassin | 오픈소스 기반 스팸 필터링 시스템. 다양한 규칙(내용 분석, 헤더 검사, RBL 조회 등)을 종합 평가하여 점수를 매기고 일정 기준 이상이면 스팸으로 처리 |
Inflex | 안티바이러스 및 스팸 필터링을 수행하는 메일 필터로, MIME 기반의 이메일을 검사해 악성 첨부파일, 스팸 등을 탐지. 주로 이메일 게이트웨이에서 사용됨 |
DKIM (DomainKeys Identified Mail) | 이메일에 전자 서명을 추가해서, 도메인이 위조되지 않았고 내용이 변조되지 않았음을 수신자가 검증할 수 있게 해줌 |
DMARC (Domain-based Message Authentication, Reporting and Conformance) | SPF와 DKIM 결과를 종합적으로 판단해, 수신자가 위조 메일에 대해 어떤 조치를 취할지 결정할 수 있도록 도와줌 |
ClamAV | 이메일에 포함된 악성 코드(바이러스, 트로이목마 등)를 탐지하는 오픈소스 안티바이러스 엔진 |
Amavis (A Mail Virus Scanner) | 메일 서버에서 SpamAssassin, ClamAV 등을 연동해서 이메일을 필터링하는 중계 시스템 |
Postscreen | Postfix 메일 서버에 포함된 기능으로, 연결 단계에서 이미 의심스러운 발신자를 차단해 서버 자원 낭비를 줄임 |
Greylisting | 낯선 발신자에 대해 처음엔 일부러 메일 수신을 지연시켜 정상 메일 서버는 재시도하게 하고, 봇은 포기하게 만드는 스팸 방지 기법 |
Bayesian 필터링 | 스팸/정상 메일의 단어 분포를 학습해서 확률적으로 스팸 여부를 판단하는 기계학습 기법 |
MailScanner | 다양한 안티바이러스 및 스팸 필터와 연동되어 이메일을 검사하는 통합형 이메일 보안 게이트웨이 도구 |
CC 인증
CC 인증(Common Criteria)**과 ISO/IEC 15408은 정보보안 제품의 국제 인증 및 평가 기준을 말한다.
* CCRA 가입국 간의 정ㅈ보보호 제품에 대한 상호 인증
TCSEC과 ITSEC의 단점을 보완하고자 세계 각국에서 사용되는 다양한 평가 지침이 포함됨.
항목 | 설명 |
CC 인증 | Common Criteria 인증. 정보보안 제품이 일정한 보안 요구사항을 만족하는지를 평가하고 인증하는 국제적 보안 인증 체계 |
ISO/IEC 15408 | Common Criteria의 국제 표준 이름. 즉, CC 인증은 ISO/IEC 15408 표준에 따라 이루어짐 |
목표 | 정보보안 제품(방화벽, OS, DBMS 등)의 보안 기능과 보증 수준을 객관적이고 체계적으로 평가 |
구성 요소 | - 보호 프로파일(PP: Protection Profile)- 보안 타깃(ST: Security Target)- 평가 보증 수준(EAL: Evaluation Assurance Level) |
EAL 수준 | EAL1~EAL7까지 있으며, 숫자가 높을수록 평가 심사가 엄격하고 신뢰성 높음 |
적용 제품 예시 | 방화벽, 운영체제, 암호 모듈, 스마트카드 운영체제, 보안 게이트웨이 등 |
CC인증의 용어 정리
용어 | 설명 |
앨리먼트 | 컴포넌트를 구성하는 분할할 수 없는 보안요구사항의 최소 단위 |
컴포넌트 | 보호 프로파일, 보안 목표명세서에 포함될 수 있는 보안요구사항의 가장 작은 선택 단위로 앨리먼트의 모음 |
패밀리 | 같은 보안목적을 가지지만 제약사항이나 보안강도가 다른 컴포넌트의 모음 |
클래스 | 같은 보안목적을 가지는 패밀리의 모음 |
보호 프로파일(PP) | 구현에 독립적인 요구사항의 집합 * TOE 요구사항을 표현하는데 적합한지 확인 |
보안목표 명세서(ST) | 보안 요구사항과 구현명세의 집합 * PP요구사항 충족여부를 확인 |
TOE(Target Of Evaluation) | ST에 명세된 보안 요구사항 충족여부를 확인 |
평가보증등급(EAL) | 공통평가기준에 정의된 보증수준을 가지는 보증 컴포넌트로 이루어진 패키지 |
개인정보 관리 이해
ISMS-P는 한국인터넷진흥원에서 인증을 부여하는 것으로 정보통신서비스를 제공하는 정보통신 제공자에 대한 인증이다. ISMS은 정보통신망법(정보통신망 이용촉진 및 정보보호 등에 관한 법률)을 근거로 하고 정보통신 제공자에 대한 인증이다.
* ISMS-P는 2단계 인증으로 구성됨.
1단계: 기존 ISMS 인증 대상 기업이 수행해야 하는 것으로 ISMS 인증
2단계: ISMS 인증을 받은 기업이 개인정보 부분에 대해서 추가적인 통제항목을 이행하면 받을 수 있는 인증인 ISMS-P
정보보호 및 개인정보보호 관리체계 의무 인증은 정보통신서비스 제공자 중에서
1. 정보통신망서비스를 제공하는 자(ISP)
2. 집적정보통신시설 사업자(IDC)
3. 연간 매출액 또는 이용자 수 등이 대통령령으로 정하는 기준에 해당하는 자
4. 연간 매출액 기준으로 1,500억 이상인 기업 중에서 의료법상의 상급종합병원과 재학생 수가 1만 이상인 고등교육법 상의 학교
* 자율신청: 기업이 정보보호 관리체계를 구축, 운영하고 인증 취득을 희망하는 경우, 자율적인 신청을 통한 인증 심사 가능
* 의무신청: 기업 스스로 의무대상 여부를 판단하여 ISMS를 구축하고 인증을 취득하는 것이 원칙
ISMS-P 인증 위원회: 한국인터넷진흥원, 금융보안원
ISMS-P 심사기관: 한국정보통신진흥협회, 한국정보통신기술협회, 개인정보보호협회
위험관리 구성
구성요소 | 설명 |
위험 | 위협, 취약점을 이용하여 자산에 손실, 피해를 가져올 가능성 |
위협 | 자산에 악영향을 줄 수 있는 사건 및 행위 자산에 손실을 초래할 수 있는 원치 않는 사건의 잠재적인 원인 또는 행위자 (손실=영향과 결과로 표현, 발생 가능성=위협) |
취약점 | 위협이 발생하기 위한 조건이나 상황 어느정도 피해가 발생할 수있는지를 취약점, 노출정도, 효과 |
자산 | 조직이 보호해야할 대상(자산 그룹핑: 유사자산은 동일한 취약점) |
접근 방식에 따른 위험분석 기법
위험분석 기법 | 설명 |
기준선 접근법 | * 모든 시스템에 대해 보호의 기준 수준을 정하고 이를 달성하기 위해 일련의 보호 대책을 선택 * 시간 및 비용이 적고 모든 조직에서 기본적으로 필요한 보호 대책 선택이 가능 * 조직의 특성을 고려하지 않기 때문에, 조직 내에 부서별로 적정 보안 수준보다도 높게 혹은 낮게 보안 통제를 적용 |
전문가 판단 | * 정형화된 방법을 사용하지 않고 전문가의 지식과 경험에 따라서 위험을 분석 * 비용적인면에서 작은 조직에 효과적이며, 구조화된 접근 방법이 없으므로 위험을 제대로 평가하기 어렵고 보호 대책의 선택 및 소요비용을 합리적으로 도출하기 어려움. * 계속적으로 반복되는 보안관리 및 보안감시, 사후관리로 제한됨 |
상세위험분석 | * 자산의 가치를 측정하고 자산에 대한 위협 정도와 취약점을 분석하여 위험 정도를 결정 * 조직 내에 적절한 보안 수준 마련 가능 * 전문적인 지식과 노력이 많이 소요됨. * 정성적 분석 기법과 정량적 분석 기법이 존재함 |
복합적 접근법 | * 먼저 조직 활동에 대한 필수적이고 위험이 높은 시스템을 식별하고 이러한 시스템은 상세위험분석 기법을 적용 * 그렇지 않은 시스템은 기준선 접근법 등을 적용 * 보안 전략을 빠르게 구축할 수 있고, 상대적으로 시간과 노력을 효율적으로 활용 가능 * 두 가지 방법의 적용대상을 명확하게 설정하지 못함으로써 자원 낭비가 발생할 가능성이 있음 |
정량적 위험분석 & 정성적 위험분석
구분 | 정량적 위험분석 | 정성적 위험분석 |
개념 | ALE(연간기대손실)=SLE(위험발생확률)XARO(손실크기)를 통해 기대 위험가치 분석 | * 손실 크기를 화폐가치로 표현하기 어려움 * 위험 크기는 기술변수로 표현(척도 : 점수) |
기법 유형 | 수학공식 접근법, 확률분포 추정법, 확률 지배, 몬테카를로 시뮬레이션, 과거 자료 분석법 | 델파이법, 시나리오법, 순위결정법, 질문서법, 전문가 감정, 기준선법 |
장점 | * 비용/가치 분석, 예산 계획, 자료 분석에 용이 * 수리적 계산으로 논리적이고 객관적인 정보를 얻을 수 있음. |
* 금액화하기 어려운 정보의 평가 기능 * 분석시간이 짧고 이해가 쉬움 |
단점 | * 분석시간, 노력, 비용이 큼 * 정확한 정량화 수치를 얻기 어려움 |
* 평가 결과가 주관적임 * 비용효과 분석이 쉽지 않음 |
* SLE: Single Loss Expectancy
* ARO: Annualized Rate of Occurrence
* ALE: Annualized Loss Expectancy
재해 복구 시스템의 종류
사이트 | 목표 복구 | 장점 | 단점 |
Mirror | 0~수 분 | *1차와 동일, 동기화 가능 *Active, Active 서버로 구성 |
고비용, 상시 검토 |
Hot | 24시간 내 | * 고가용성, 데이터 최신성 * Active, Standby 서버로 구성 |
DB 복구 필요 |
Warm | 수 일~수 주 내 | 핫사이트로 전환이 용이 | 시스템 확보 필요 |
Cold | 수 주~수 개월 재 | 저렴, 데이터만 백업 | 시간이 가장 오래 걸림 |
가명처리 특례 조항
* 데이터 3법: 데이터를 이용 활성화 하기 위해 아래 3가지 법을 하나도 통합한 것
관련 법률 | 설명 | 가이드 |
개인정보보호법 | * 일반법으로 개인정보를 취급하는 사업자 및 개인에 관한 법률 * 개인정보 수집, 동의, 이용 및 제공, 파기에 관한 사항 |
개인정보 안전성 확보 조치 |
정보통신망법 | 특별법으로 정보통신 서비스 제공자에 관한 법률 | |
신용정보법 | 금융권(은행, 보험, 증권)에 관련한 개인신용정보와 개인정보에 관한 사항 | 금융권 상시평가 항목 |