CVE
- Common Vulnerabilities and Exposures
- 공개적으로 알려진 보안 취약점에 대한 공통 식별자 목록
- 생성 규칙: CVE-[해당 취약점 리포팅 연도]-[일련번호]
- 동일한 취약점에 대해 해커와 보안업체간 다르게 사용해온 명칭을 표준화한 목록이며, 미국의 비영리기관인 MITRE의 테스트를 거쳐 호환성이 충족된 보안제품과 서비스에 한해 등록이 가능
CWE
- Common Weakness Enumeration
- 소프트웨어 취약점 목록으로 소스코드 취약점 정의
CVSS
- Common Vulnerability Scoring System
- 공통 취약점 등급 시스템
- MITRE에서 발표하였으며, 취약점과 연동하여 점수 계산할 수 있는 사이트는 NIST에서 관리하고 있는 NVD에서 제공됨
- CVE의 요소 중 하나
사이버 킬체인
- APT를 대비하기 위한 대책으로 록히드마틴사가 정식 명칭을 특허로 등록
- 정찰 > 무기화 > 전달 > 공격 > 설치 > 명령 및 제어 > 목표 장악
ATT&CK Framework
- Adversarial Tactics, Techniques, and Common Knowledge
- MITRE에서 실제 공격 사례를 바탕으로 Cyber Kill Chain 단계를 자체적으로 개발하여 정리한 것
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 사용)
공급망 공격
- 소프트웨어 공급망에 침투하여 악성코드를 배포하는 공격으로, SW빌드 및 배포 과정에 악성코드를 삽입하여 선의의 소프트웨어를 통해 이용자들을 공격
[시스템 보안]
1. Linux
1) 디렉터리
- /proc: 현재 실행되고 있는 프로세스 정보 기록
2) 권한
- Set-UID(SUID): 권한이 부여된 파일을 실행하면 실행하는 동안 해당 파일의 소유자 권한으로 인식함
- Set-GID(SGID): 권한 실행하는 동안 해당 파일의 소유자 그룹 권한으로 인식한다
- Sticky-Bit: 디렉터리에만 적용되는 권한으로, 이 권한이 적용된 디렉터리엔 일반 사용자들이 자유롭게 파일 생성, 수정, 읽기 가능하다. 다만 파일 소유자나 root 외에는 삭제가 불가능함
- 권한 : r 읽기(4), w 쓰기(2), x 실행(1)
2-1) 접근권한 설명
- -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 외에는 삭제 불가능하다.
3) 환경파일
3-1) /etc/passwd
- 사용자 계정 아이디, 비밀번호 등 계정 정보 포함
- [계정명:비밀번호:UID:GID:주석:홈디렉터리:쉘]
3-2) /etc/shadow
- 암호화된 비밀번호, 정책 설정 정보 포함
- [계정명:비밀번호:마지막 변경일:최소사용일:최대사용일:만료경고일:유예기간:만료일]
- shadow 활성화/비활성화(pwconv/pwunconv)
> pwconv: /etc/passwd 방식을 /etc/shadow로 변환해줌
- 두번째 필드 분석 (예: $6$CWA90qcuqNsVFrEw$NvfCN4S1iJH...)
> 첫번째 $항은 해시암호 알고리즘 종류 -> $6 ($1 : MD5, $5 : SHA256, $6 : SHA512)
> 두번째 $항은 Salt 값 -> $CWA90qcuqNsVFrEw
> 세번째 $항은 암호화된 비밀번호 -> $NvfCN4S1iJHbRfgDGrzaFGOxVJ0jv0
> ! or !! : 계정에 비밀번호가 설정되어 있지 않아 잠가놓은 상태
> * : 이 계정을 통해서 아예 로그인을 할 수 없음을 의미
> 빈 값 : 비밀번호 없이 로그인을 할 수 있는 상태를 의미
3-3) /etc/login.defs
- 로그인 시 적용되는 기본 정보 구성 파일
- 최소 및 최대 비밀번호 길이, 비밀번호 만료 정책 및 계정 잠금 정책 설정 포함
- 비밀번호 정책 설정하는 파일은 login.defs로 이해하기(shadow는 비밀번호 정책을 확인하는 파일)
3-3) 로그파일
- utmp: 현재 로그인한 사용자 상태 정보 담고 있는 로그파일(who 명령어)
- wtmp: 사용자 로그인/로그아웃 정보 및 시스템 boot/shutdown 기록을 담고 있는 로그파일(last 명령어)
- btmp: 5번 이상 로그인에 실패했을 경우에 로그인 실패 정보를 담고 있는 로그파일(lastb 명령어)
- last log: 마지막으로 성공한 로그인 정보를 담고 있는 로그파일
3-4) logrotate.conf
- log 저장 및 관리 시 크기 커지는걸 방지하기 위해 분산시키는 명령어 설정 파일
- 옵션
> rotate [숫자]: log 파일이 [숫자] 이상이 되면 삭제
> maxage [숫자]: log 파일이 [숫자]일 이상이 되면 삭제
> size [숫자]: 지정된 용량보다 클 경우 rotate 실행
> create [권한] [유저] [그룹]: rotate 되는 로그파일 권한 지정, 예) create 644 root root
> compress: rotate되는 로그파일 압축
> dateext: 백업 파일 이름에 날짜 입력
> monthly, weekly, daily: 월, 주, 일 단위 rotate 실행
4) 기타 명령어
- strace: 특정 프로그램의 시스템 콜과 시그널을 추적하는 툴
> 예시 strace -e trace=open ps |more
- 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로 설정된 모든 파일 검색
2. Windows
1) BitLocker
- Windows 전용으로 제공되는 볼륨 암호화 기능
- TPM(신뢰할 수 있는 플랫폼 모듈)을 사용하며 AES-128 알고리즘을 사용
3. 익스플로잇 코드
- Shell Code : 어셈블리어/기계어로 구성되어 있는 익스플로잇 코드의 본체에 해당하는 프로그램
- 0x90 : NOP(No Operation)에 해당하는 x86 Hex code
- RET EIP ESP : ESP 레지스터에 있는 값을 EIP 레지스터로 옮기는 어셈블리 명령어
4. 데이터베이스
1) 데이터베이스 관련 공격
- 집성 공격: 낮은 보안등급의 정보조각을 조합하여 높은 등급의 정보 알아내는 것
- 추론 공격: 보안사항이 아닌 정보로 기밀번호를 유추하는 것
- 데이터 디들링: 입력값/출력값을 위변조하여 잘못된 결과가 나오도록 유도하는 것
2) 데이터베이스 보안 통제
- 접근통제: 사용자에 대한 인증 및 권한에 따라 정보 접근 허용
- 추론통제: 데이터 추론할 수 없도록 방지(질의 길이 제한 등)
- 흐름통제: 보안등급이 높은 객체에서 낮은 객체로의 정보흐름 제어
[네트워크 보안]
1. IPSec(IP Security)
1) 정의
- 네트워크 계층에서 데이터를 보호하는 프로토콜
- IP패킷을 암호화하고 인증하여 안전한 통신 채널을 제공하는 것이 목적
2) 모드
- IP의 내용(payload)만을 보호하는가, 또는 헤더까지 모두 보호하는가에 따라 모드가 나뉨
2-1) 전송 모드(Transport Mode)
- 종단 간 데이터 보호가 필요할 때 사용
- 전송 계층과 네트워크 계층 사이에 전달되는 payload를 보호함
- 전송 계층에서 IPSec 계층을 거쳐서 IPSec헤더가 붙고 이것이 payload 취급되서 네트워크 계층에서 IP헤더 붙어서 전달됨
2-2) 터널 모드(Tunnel Mode)
- 라우터간, 호스트와 라우터간 등 송수신자 양쪽 모두가 호스트는 아닌 경우에 사용됨
- IP헤더를 포함한 IP계층의 모든 것을 보호함
- 네트워크 계층에서 붙은 IP헤더까지를 payload 취급하여 IPSec헤더가 붙고 새로운 IP헤더 추가됨
3) 프로토콜
- IPSec은 두가지 보안 프로토콜을 제공
3-1) AH(Authentication Header)
- 발신지 호스트를 인증하고 IP패킷의 무결성을 보장
- 다만, AH는 인증과 무결성은 보장하지만 비밀은 보장하지 않음
3-2) ESP(Encapsulation Security Payload)
- 페이로드 전체를 보호하여 인증, 무결성, 기밀성 제공
4) 기능 [기무인재접]
- 기밀성(ESP 대칭키 암호화): 암호화된 트래픽을 통해 데이터 노출 방지
- 무결성(AH 메시지 인증 코드 MAC): 메시지 위변조되지 않음을 보장
- 인증(AH 메시지 인증 코드 MAC): 정상 사용자로부터 송신된 데이터임을 보장
- 재전송 공격 방지(보안 연관 순서번호): 순서번호를 유지하여 재전송 공격 방지
- 접근제어(보안정책): 패킷의 허용, 폐기 보호 등 적용
5) IPSec VPN의 주요 구성요소
- AH: IP패킷에 무결성 및 인증 제공
- ESP: IP패킷 무결성, 인증 제공하고 암호화하여 기밀성 제공
- SA: 두 IPSec 장치 간 통신을 보호하는데 사용되는 보안 매개변수 집합
- IKE: 키 관리 프로토콜로서, UDP 500포트 사용
- SPD: 보안 정책 데이터베이스, 보호할 트래픽과 보호 방법을 결정
6) 전송 예시
- AH는 전송되는 필드와 인증되는 필드 동일, 암호화 기능 없음
- ESP는 전송, 암호화, 인증 필드가 다름
- TCP 헤더와 데이터를 합쳐서 IP Payload로 이해하기
6-1) AH 전송모드
- 기본: [IP 헤더] [TCP 헤더] [데이터]
- 전송시: [IP 헤더] [AH 헤더] [TCP 헤더] [데이터]
- 암호화 기능 없음
- 인증되는 필드: [IP 헤더] [AH 헤더] [TCP 헤더] [데이터]
6-2) AH 터널모드
- 기본: [IP 헤더] [TCP 헤더] [데이터]
- 전송시: [New IP 헤더] [AH 헤더] [IP헤더] [TCP헤더] [데이터]
- 암호화 기능 없음
- 인증되는 필드: [New IP 헤더] [AH 헤더] [IP헤더] [TCP헤더] [데이터]
6-3) ESP 전송모드
- 기본: [IP 헤더] [TCP 헤더] [데이터]
- 전송시: [IP 헤더] [ESP 헤더] [TCP 헤더] [데이터] [ESP Trailer] [ESP Auth]
- 암호화되는 필드: [TCP 헤더] [데이터] [ESP Trailer]
- 인증되는 필드: [ESP 헤더] [TCP 헤더] [데이터] [ESP Trailer]
6-4) ESP 터널모드
- 기본: [IP 헤더] [TCP 헤더] [데이터]
- 전송 시: [New IP 헤더] [ESP헤더] [IP헤더] [TCP헤더] [데이터] [ESP Trailer] [ESP Auth]
- 암호화되는 필드: [IP 헤더] [TCP 헤더] [데이터] [ESP Trailer]
- 인증되는 필드: [ESP헤더] [IP헤더] [TCP헤더] [데이터] [ESP Trailer]
2. SSL/TLS
1) 정의
- 기밀성, 무결성, 인증 기능을 제공하는 웹 브라우저 보안 프로토콜
- 전송 계층 위에 TLS 계층을따로 두어 동작함
- TLS 사용하는 애플리케이션 프로토콜은 끝에 S가 붙게됨(HTTP > HTTPS)
- SSL과 TLS의 차이는 버전과 암호화 알고리즘을 처리하는 방식에 있다.
1-1) 보안 제공 방법
- 사용자가 SSL로 보호되는 웹 사이트 접속하면 브라우저와 웹 사이트 서버는 SSL 핸드쉐이크를 통해 보안 연결 협상
- 세션 키 합의함으로서 전송되는 데이터 암호화하고 무결성 보장하는 보안 채널 제공
1-2) TLS 키 교환 프로세스
- 클라이언트가 암호화 알고리즘 및 매개변수 목록을 서버로 전송
- 서버는 클라이언트가 제공한 목록 중 암호화 알고리즘과 매개변수 선택하고 공개키와 디지털 인증서를 전송
- 클라이언트는 서버의 디지털 인증서 확인 후 임의의 암호화된 메시지 생성하여 서버로 전송
- 서버는 개인 키로 복호화하여 클라이언트와 서버 모두 고유한 세션키 생성 완료
2) 제로 라운드 트립 타임(0-RTT)
- TLS 1.3에 추가된 기능으로 세션키를 합의하는 핸드 셰이크 과정을 간소화하여 암호화 시간을 줄여주는 기능
3) DTLS
- Datagram Transport Layer Security
- UDP 기반으로 통신을 수행하는 경우 SSL/TLS와 유사한 보안 기능을 제공하는 프로토콜
4) POODLE 공격
- Padding Oracle On Downgraded Legacy Encryption
- TLS 연결을 SSL 3.0으로 낮춰 SSL 3.0 취약점을 이용하여 암호문을 해독하는 공격 기법
5) HeartBleed 취약점
- CVE-2014-0160
- 통신 구간 암호화를 위해 사용하는 OpenSSL 암호화 라이브러리의 하트비트(Heartbeat)라는 확장 모듈에서 클라이언트 요청 메시지를 처리할 때 데이터 길이 검증을 수행하지 않아 시스템 메모리에 저장된 64KB 크기의 데이터를 외부에서 아무런 제한 없이 탈취할 수 있는 취약점
- SSL 프로토콜의 취약점이며, OpenSSL 1.01f 이전 버전이 영향 받음
3. ARP(Address Resolution Protocol)
1) 정의
- 논리적인 주소(IP주소)를 물리적인 주소(MAC주소)로 변환하는 프로토콜
- 반대로 MAC주소를 IP주소로 변환하는 것은 RARP
2) 방법
- 목적지 IP주소는 알지만 MAC주소는 모를때, 목적지 MAC주소를 00:00:00:00:00:00으로 하고 패킷 목적지를 Broadcast(FF:FF:FF:FF:FF:FF)로 하여 네트워크 상 모든 노드한테 뿌려서 목적지 MAC주소를 획득
- 획득한 목적지 MAC주소를 ARP cache에 저장
3) ARP Spoofing
- 피해자의 MAC 주소로 위조
- 피해자의 IP로 전달되는 데이터를 중간에서 가로채는 공격
- 예) 서로 다른 IP가 같은 MAC주소를 가지고 있는 경우
- 대응방안: ARP cache 테이블 정보를 정적(static)으로 설정하여 ARP 프로토콜을 통한 변조 발생하지 않도록 함
> arp -s [게이트웨이 IP] [게이트웨이 MAC]
3-1) 방법
- 공격자가 피해자에게 자신의 MAC주소를 게이트웨이(서버 등)의 주소인 것처럼 속인다.
- 공격자가 게이트웨이에게 자신의 MAC주소를 피해자의 MAC주소인 것처럼 속인다.
- 공격자는 피해자 및 게이트웨이로부터 메시지를 받게 되고, 이를 정상적으로 보내주면 통신은 정상적으로 이루어지면서 공격자는 모든 메시지를 읽을 수 있다.
4) ARP Redirect 공격
- Gateway의 MAC주소로 위조
- 공격자가 피해자들에게 자신이 라우터라고 속여서 피해자들의 패킷이 자신에게 한번 거친 후 라우터로 가도록 하는 공격
4. SNMP(Simple Network Management Protocol)
1) 정의
- 네트워크에 있는 장비들을 관리하기 위한 프로토콜
2) Manager
- 162/UDP 사용
- Manager가 Agent에게 필요한 정보를 요청하는 역할
3) Agent
- 161/UDP 사용
- Agent가 Manager에게 주기적으로 보고(설치된 시스템의 정보나 네트워크 정보)
- Trap: 에이전트가 매니저에게 보고하는 과정
4) msgSecurityParameters 보안설정
- 재전송 공격 방지: msgAuthoritativeEngineID, msgAuthoritativeEngineBoots, msgAuthoritativeEngineTime
- 위장 공격 방지: msgUserName, msgAuthenticationParameters
- 기밀성: msgPrivacyParameters
5) 라우터에서 snmp 프로토콜 비활성화 명령어
- Router# configure terminal
- Router(config)# no snmp-server
5. 무선인터넷
1) 무선 인터넷 인증 방식
- PSK(Pre Shared Key): 별도의 인증서버 없는 소규모 망에서 사용되며, 초기 인증에 사용되는 PSK값을 이용해 4웨이 핸드쉐이킹 과정을 통해 무선AP와 무선단말기가 동일한 값 가지고 있는지 확인
- EAP(Extensible Authentication Protocol): 초기에는 PPP에서의 사용을 위해 개발되었으나 현재는 무선랜 표준인 IEEE 802.1x에서 사용자 인증 방법으로 사용되며, 어떤 링크에도 접속 가능함
2) 무선 인터넷 보안 기술
- WEP(Wired Equivalent Privacy): 초기 무선랜 보안 기술, RC4 알고리즘 사용
- WPA(Wifi Protection Access): EAP를 통해 인증을 수행하고 RC4-TKIP 알고리즘으로 암호화
- WPA2: EAP를 통해 인증을 수행하고 AES-CCMP 알고리즘으로 암호화 지원
6. Snort
1) 정의
- 실시간 트래픽 분석과 네트워크 패킷 처리가 가능한 오픈소스 IDS SW
- 리눅스에 Snort 설치 시 /etc/snort 디렉터리 밑에 설정 파일 등이 위치함
2) Snort Rule
- 크게 헤더(Header)와 바디(Body)로 구성됨
2-1) Header
- 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: 패킷 차단만 하고 로그 기록하지 않음
2-2) Body
- 패킷 검출을 위한 다양한 옵션 설정 가능
- msg: 룰 타이틀 명으로 이벤트 발생 시 로그에 기록되는 항목
- content: 패킷의 payload에서 검사할 문자열 지정
- nocase: payload 검사 시 대소문자 구분안함
- offset : payload에서 패턴 매칭할 시작 위치(0 부터 시작), offset 바이트만큼 띄우고 검사 시작
- depth : payload에서 패턴 매칭할 끝 위치(0+offset 시작), depth 바이트만큼 검사
- distance: 이전 검색 마친 위치에서 해당 숫자만큼 띄우고 검사 시작
3) Suricata
- 오픈소스 IDS/IPS로, 기존의 Snort의 장점을 수용하고, 대용량 트래픽을 실시간으로 처리하는데 특화된 소프트웨어
7. IPtables
1) 정의
- 리눅스 OS 방화벽
- 네트워크 방화벽과 동일하게 IP/Port 기반으로 패킷 차단/허용 가능
2) 구조
- iptables [테이블명] [체인명] [룰] [타겟]
2-1) 테이블 종류
- Filter: default, 패킷 필터링 담당
- Nat: IP 주소 변환 처리(SNAT, DNAT)
- Mangle: 성능 향상을 위한 TOS 설정
2-2) 체인 종류(Filter TABLE일 경우)
- INPUT: 외부에서 들어오는 패킷 담당
- OUTPUT: 외부로 나가는 패킷 담당
- FORWARD: 방화벽을 경유하여 외부에서 다른 시스템으로 전달되는 패킷
2-3) 룰
- 프로토콜: -p TCP, -p UDP
- SYN 플래그: --syn
- IP 주소: -s IP주소, -d IP주소
- Port 번호: --sport 포트번호, --dport 포트번호
2-4) 타겟
- -j: ACCEPT(허용), DROP(차단), REJECT(차단 후 ICMP 에러 전송), LOG(탐지 로그만 남김)
3) 명령어 예시
- service iptables stop #iptables 끄기
- service iptables start #iptables 켜기
4) 차단 룰 예시
- iptables -A INPUT -s 아이피 -j DROP
- iptables -A INPUT -p TCP --syn --dport 80 -m recent --update --seconds 2 --hitcount 30 --name SYN_DROP -j DROP
8. DOS
1) 정의
- 공격 대상 시스템이 정상적인 서비스를 할 수 없도록 만드는 공격
2) DDoS
- 여러 대의 컴퓨터를 동작시켜 특정 사이트나 시스템을 공격하여 정상적인 서비스를 할 수 없도록 하는 공격
- DoS는 공격자가 단일 컴퓨터를 통해 공격하는 경우, DDoS는 공격자가 물리적으로 분산된 다수의 컴퓨터(좀비 PC)를 이용하여 공격하는 형태
2-1) DRDoS
- 공격 원리: 공격자는 Source IP를 공격대상의 IP로 위조하여 다수의 반사서버로 요청을 보내고, 공격대상 서버는 반사서버로 부터 다수의 응답을 받아 서비스 장애
- 기존 DoS와의 차이점
> 출발지 IP가 위조되고, 반사서버를 통해 공격이 수행되므로 공격의 출처를 파악하기 어려움
> 다수의 좀비 PC를 동원하지 않더라도 대량의 공격 패킷을 만들어 낼수 있어 효율이 높음
3) Unicast RPF:
- 네트워크에서 IP Spoofing을 방지하는데 사용됨
- 패킷의 source IP를 라우팅 테이블과 비교하여 들어오는 패킷의 Source IP를 확인
4) 주요 공격
4-1) Smurf 공격
- DDoS 공격의 하나로, ICMP 특성을 이용한 공격
- 공격 대상자의 IP로 스푸핑된 IP를 Source로 하여 브로드캐스트 도메인으로 ICMP 메세지를 전송하는 공격
(ICMP Echo Request > Echo Reply)
- 대응방안: 패킷 필터링을 통해 Echo Reply message의 rate-limit 설정하여 한꺼번에 동일한 ICMP Echo Reply message 들어오는 것을 막기, 라우터에서 Direct Broadcast를 Disable 시키기
- 신뢰할 수 있는 네트워크 범위에 대해서만 ip direct broadcast 활성화하기
> (config)# access-list 100 permit udp [신뢰할 수 있는 네트워크 범위] any
> (config)# interface FastEthernet 0/0
> (config-if)# ip directed-broadcast 100
- ip direct broadcast 비활성화하기
> no ip directed-broadcast
4-2) LAND Attack
- Local Area Network Denial Attack
- DDoS 공격의 하나로, IP 스푸핑을 이용한 SYN 공격
- 출발지와 목적지의 IP 주소를 공격대상의 IP주소와 동일하게 설정하여 보내는 공격
- 대응방안: 네트워크로 유입되는 패킷 중 source IP가 내부 IP인 패킷 차단
4-3) Slow HTTP Post DOS 공격
- RUDY라고 불리는 공격 기법으로, 헤더 필드의 Content-Length를 비정상적으로 크게 설정한 후, 매우 작은 데이터를 천천히 웹 서버에 전송하여 연결 상태를 유지하여 웹 서버의 가용량을 침해하는 공격
- 예) HTTP Request 메시지 내 Content-Length는 매우 크나, 패킷 분석 도구(Wireshark Pachet)에서는 Length가 작게 보이는 경우
- 대응방안: Connection Timeout 설정, Read Timeout, 서버 방화벽 설정하여 동일한 소스 IP에서 동시 연결가능한 개수의 임계치를 설정하여 초과 시 차단
4-4) Slow HTTP Header DoS 공격
- HTTP 관련 공격 중 헤더의 CRLF(개행문자) 필드 부분을 조작함으로써 웹서버로 조작된 HTTP 헤더를 지속적으로 보내 서비스의 가용성을 떨어뜨리는 공격
- 예) 헤더 끝을 알리는 개행 문자열 \r\n\r\n (Hex: 0d 0a 0d 0a)을 포함하지 않고 전송
- 대응방안: 방화벽 등을 통해 동시 연결에 대한 임계치 설정
4-5) TCP SYN Flooding 공격
- DDoS 공격의 하나로, TCP 핸드쉐이크를 이용한 공격
- 다수의 SYN 패킷을 전송하여 다수의 SYN RECEIVED 상태를 발생시키는 공격
- 대응방안: SYN Cookie 설정, 방화벽을 통해 동일 클라이언트 IP에 대해 SYN 임계치 설정
4-6) TCP Connection Flooding 공격
- 다량의 SYN 패킷을 공격 대상에게 전송하여 다수의 ESTABLISHED 상태를 발생시키는 공격
- SYN Flooding은 해당 공격의 일종
4-7) UDP/ICMP Flooding 공격
- 공격자가 대량의 UDP/ICMP 패킷을 공격대상 서버로 전송하는 공격
4-8) HTTP Flooding 공격
- 공격자가 핸드쉐이크 후 HTTP GET 또는 POST 요청을 대량 반복 수행함으로서 이루어지는 공격
- 좀비 PC의 IP를 변조하지 않고, 적은 개수의 패킷으로 효과적인 공격 가능
4-9) SSDP DRDoS 공격
- UPnP 프로토콜을 이용하여 IoT 시스템 공격
- UPnP: 네트워크 장치들이 서로 연동될 수 있도록 하는 프로토콜
- SSDP: 네트워크 서비스나 정보 찾기 위하여 사용하는 네트워크 프로토콜
- Reflection 공격의 일종으로 1900번 포트를 사용하여 IoT 시스템을 공격하는 기법
- 대응방안: 방화벽을 통해 1900번 포트 트래픽 차단, 노출된 SSDP 장치가 있는지 확인
4-10) Hash DoS 공격
- 다수의 매개변수(&)를 이용하여 컴퓨팅 리소스를 고갈시키는 공격
4-11) SlowRead 공격
- Window Size를 줄여서 서버의 데이터를 적게 받는 공격
※ 혼동주의!! HTTP 응답 분할 공격은 DoS가 아님
> HTTP Request에 있는 파라미터가 HTTP Response의 응답헤더로 다시 전달되는 경우 파라미터 내 개행문자 CR(Carriage Return, %0D) 혹은 LF(Line Feed %0A)가 존재하면 HTTP 여러개로 나누어질 수 있음
> 응답 메시지에 악의적인 코드를 주입함으로써 XSS 및 캐시를 훼손하는 취약점
9. Port Scan
1) 정의
- 해당 호스트에서 어떤 포트가 열려있는지 확인하는 것
- 이를 통해 해당 네트워크가 사용하고 있는 시스템과 서비스 등을 알 수 있음
2) 종류
2-1) TCP Open Scan(=TCP Full Open Scan=TCP SYN/ACK Scan)
- 완전한 TCP 연결 맺어서 포트 활성화 여부 판단
- 신뢰성 있는 결과 얻지만 속도 느리고 로그 남음
- 포트 열려있는 경우: 공격자가 SYN 패킷 송신, 대상으로부터 SYN/ACK 패킷 수신, 공격자가 ACK 송신, 공격자가 RST/ACK 송신
- 포트 닫혀있는 경우: 공격자가 SYN 패킷 송신하면 대상으로부터 RST/ACK 패킷 받음
2-2) TCP SYN Scan(=TCP Half Open Scan)
- 세션을 완전히 연결하지 않고 포트 활성화 여부 판단(로그 안남김)
- 포트 열려있는 경우: 공격자가 SYN 패킷 송신, 대상으로부터 SYN/ACK 패킷 수신, 공격자가 RST 패킷 송신
- 포트 닫혀있는 경우: 공격자가 SYN패킷 보내면 대상으로부터 RST/ACK 패킷받음
- 응답이 없는 경우 포트 사용 중이나 보안장비 등에 의하여 필터링됨
2-3) TCP FIN/NULL/XMAS Scan
- TCP 헤더 조작하여 특수한 패킷 보내고 응답받아 포트 활성화 여부 판단(로그 안남김)
- 포트 열려있는 경우: 공격대상으로부터 응답 없음
- 포트 닫혀있는 경우: RST 패킷 받음
2-4) TCP ACK Scan
- 포트의 오픈 여부를 판단하는 것이 아닌, 방화벽과 같은 보안장비의 필터링을 확인하기 위함
- 필터링되고 있으면 응답이 없거나 ICMP 메시지 받고, 필터링 없다면 RST 응답 받음
3) UDP Scan
- 각 포트에 UDP 패킷을 보내고 응답 수신되면 포트 열린 것으로 간주, 다만 응답 수신되지 않는 경우 불확실하다.
- 대신 TCP 스캔보다 빠르다.
* SMTP(TCP 25), HTTPS(TCP 443), POP3(TCP 110)
10. VPN
1) 정의
- Public Network를 사설망처럼 사용할 수 있게 해주는 기술
2) 프로토콜
- 2계층: L2TP VPN, PPTP VPN
- 3계층: IPSec VPN
- 4계층: SSL VPN
2-1) L2F(Layer 2 Forwarding)
- CISCO사에서 개발한 터널링 프로토콜로 데이터 링크 계층에서 캡슐화를 지원
2-2) PPTP
- 마이크로소프트社와 3Com社 등 여러 회사가 공동개발한 터널링 프로토콜로 RFC 2637으로 표준화됨
2-3) L2TP
- 장점을 결합한 프로토콜로, 기밀성과 인증 기능의 부족으로 IPSec 프로토콜과 함께 사용되는 경우 많음
2-4) IPSec VPN
- 인터넷 계층에서 동작하는 대표적인 VPN 프로토콜
11. 기타
1) 패킷 필터링 방화벽
- Ingress 필터링: 라우터 외부에서 내부로 유입되는 패킷 필터링, 인터넷 상에서 사용되지 않는 IP 대역은 차단, 존재하지 않는 외부 IP 이용한 Spoofing 공격 차단
- Egress 필터링: 라우터 내부에서 외부로 나가는 패킷 필터링, source IP는 반드시 라우터와 같은 대역이어야 함
- stateful 방화벽: 동일한 출발지 IP주소, 포트번호, 목적지 IP주소, 포트번호 등을 갖는 패킷들의 상태 저장하고 그룹으로 필터링하여 정교하게 차단 가능
2) Tiny Fragment
- 공격자가 패킷을 소형 단편화하여 공격하는 것
- 쪼개진 패킷을 재조합하는 기능이 없는 방화벽에서는 탐지하거나 차단 불가
- 대응방안: 단편화된 패킷 재조합 기능있는 방화벽 사용
3) IDS
3-1) 탐지결과
- 오탐: 정상적인 행위를 이상행위로 판단하여 탐지하는 상황
- 미탐: 이상행위를 탐지하지 못하는 상황
3-2) 탐지기법
- 오용탐지
> 잘 알려져 있는 공격패턴을 룰로 등록하고, 패턴과 일치여부에 따라 침입여부를 판단하는 방식
> 등록된 공격패턴에 의하여 탐지되므로 오탐률 낮음
> 새로운 공격은 탐지 불가하며, 지속적으로 패턴 업데이트 필요
- 이상탐지(비정상행위 탐지)
> 정상행위와 이상행위 분석하고, 통계적 분석을 통하여 침입여부를 판단하는 방식
5) 스위칭 허브
- 패킷의 목적지 주소(MAC, IP, Port 등)를 확인하여, 목적지가 연결된 스위치의 포트로만 패킷을 전송하는 장치
- 패킷의 고속 전송, 로드 밸런싱, QoS 기능을 수행
- 동작 원리
> Leaning: 테이블에 정보 저장
> Flooding: 모르는 정보를 모든 호스트에 전달
> Forwarding: 알고있는 목적지로 정보 전달
> Filtering: 다른 목적지로 넘어가지 못하게 제어
> Aging: 오래된 정보 삭제
6) Wireshark
- 질의에 대한 응답 패킷만을 보기 위한 필터링 구문: dns.flags.response==1
- 질의만을 보기 위한 옵션: dns.flags.response==0
7) 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)
8) Promiscuous mode(무차별 모드)
- 네트워크 카드의 특정 인터페이스로 들어오는 모든 패킷을 수신하게 된다.
> ex) device eth0 entered Promiscuous mode : eth0 인터페이스로 들어오는 모든 패킷 수신
- 해당 모드 진입 시 패킷 스니핑 공격 가능
- 대응방안: 통신시 SSH, HTTPS와 같은 암호화 통신 사용
[애플리케이션 보안]
1. 웹 서버 설정
1) Apache 로그파일
- Access 로그: 웹 서버가 클라이언트 요청에 대해 반환한 응답에 대한 정보 기록
- Error 로그: 웹 서버에서 발생한 오류와 경고에 대한 정보 기록
- httpd.conf: 로그파일 경로 확인 가능한 파일
> Errorlog "/var/log/httpd/error_log"
2) 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 경로에 저장
3) 명령어
- LimitRequestBody: httpd.conf 파일에서 디렉터리에 업로드 가능한 최대 파일크기 제한하는 명령어
2. 웹 취약점
1) SQL Injection
- DB와 연결되어 있는 애플리케이션의 입력값을 조작하여 의도하지 않은 결과를 반환하도록 하는 공격 기법
- 대응방안: prepared statement
> 최초에 한번 쿼리를 분석해 최적화 수행 후 메모리에 저장해두고, 다음 요청부터는 저장된 결과를 재사용하여 쿼리를 수행하는 방식
> 사용자가 입력한 값이 SQL 쿼리가 아닌 매개 변수로 처리되기 때문에 SQL 인젝션 공격을 막을 수 있음
> 성능 측면 효율이 높고 SQL 인젝션 방지 가능
1-1) Error based SQL Injection
- SQL의 잘못된 문법이나 자료형 불일치 등에 의해 데이터베이스가 알려주는 오류 메시지에 의존하여 수행되는 공격 기법
1-2) UNION based SQL Injection
- 데이터베이스 오류 메시지를 표시하지 않을 경우 사용
- 기존 정상쿼리와 악성쿼리를 합집합으로 출력하여 정보 획득하는 기법
1-3) Blind based SQL Injection
- HTTP 응답이나 데이터베이스 오류 메시지를 표시하지 않는 경우 사용
- 요청이 참인지 거짓인지만 확인할 수 있을 때 사용
- 입력값 바꿔가면서 계속 시도하여야 함
2) XSS
- 게시판, 웹, 메일 등에 삽입된 악의적인 스크립트에 의해 쿠키 및 기타 개인정보를 특정 사이트로 전송시키는 공격 기법
- 대응방안: 사용자 입력 문자열에서 HTML 코드로 인식될 수 있는 특수문자(<,>,&,/,(,))를 일반문자로 치환하여 이스케이프 처리
3) Directory Indexing(Directory Listing)
- 특정 디렉터리에 초기 페이지(index.html, home.html 등)의 파일이 존재하지 않을 때 자동으로 디렉터리 리스트를 출력하는 취약점
- 대응방안: 디렉터리 인덱싱을 비활성화하도록 웹 서버 구성하여 방지 가능, Apache 웹 서버의 .htaccess 파일에 Options에서 Indexes 문구 삭제
4) 파일 업로드 공격
- 실행 가능한 스크립트 파일(jsp, php, sh)을 첨부하여 원격에서 제어하는 공격
- 웹쉘: 첨부되는 스크립트 파일
- 대응방안: .htaccess 파일 설정하기
> FilesMatch: 특정 확장자들을 deny하거나 allow 설정할 수 있는 지시자
> AddType: 특정 확장자들을 html로 해석되도록 만들 수 있는 지시자
5) Drive By Download
- 사용자가 접속한 웹페이지에서 팝업, ifram, 리다이렉트 등을 통해 사용자가 인식하지 못하게 악성코드 다운로드시키는 유형
6) Dropper
- 정상 애플리케이션인 것처럼 배포된 뒤 자신의 내부에 압축해서 가지고 있던 코드를 이용하여 새로운 악성코드를 생성하여 시스템을 감염
7) XXE(XML eXternal Entity) Injection
- XML 문서 안에서 외부의 개체를 참조하게 되는데 이때 외부 개체에 삽입된 악의적인 코드가 실행되어 데이터 유출, 서비스 거부 공격 등을 수행 가능
- 예시: <!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
7-1) DoS 공격
- 엔티티 참조를 반복하면서 메모리 고갈, 이로 인한 서비스 불가
- 예시: <!ENTITY lol "lol"><!ENTITY lol2 "&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;">
3. 웹 보안 방안
1) 쿠키 보안
- 서버에서 클라이언트 데이터를 저장하는 방법 중 하나
- 클라이언트(브라우저) 로컬에 저장되는 키와 값이 들어있는 작은 데이터 파일
- Secure: 쿠키 옵션 중 하나로, true이면 HTTPS 프로토콜을 이용하는 경우에만 쿠키 전송 가능, 전송 중 평문 쿠키 노출을 방지 가능
- HttpOnly: 쿠키 옵션 중 하나로, true이면 자바스크립트에서 쿠키 접근이 제한됨, 허용하면 XSS 공격에 취약하게 되므로 주의
- 예시 Set-Cookie: ID=redstone; Path=/; secure
> 클라이언트가 HTTPS 통신일 경우에만 해당 쿠키 전송함
2) 이메일 보안
- SPF(Send Policy Framework):
> 이메일 발송 도메인의 DNS에 txt레코드로 등록된 IP주소와 실제 메일의 송신 IP를 비교하여 메일 도메인의 정당성을 검증
> 일치하는 경우 정상 처리하고, 일치하지 않을 경우 차단하는 대표적인 이메일 스팸 차단 기술
- DKIM(DomainKeys Identified Mail):
> 메일 헤더가 변조되지 않았고 실제 해당 도메인에서 발송된 것을 확인 가능
> 이메일 서버의 개인키로 이메일 헤더를 전자서명하고, 메일 도메인서버의 txt레코드로 등록된 공개키로 검증하도록 함
- DMARC(Domain-based Message Authentication, Reporting and Conformance): SPF와 DKIM을 혼합한 기법
- PGP(Pretty Good Pricacy): 필 짐머만 독자 개발, PEM에 비해 보안성은 떨어지나 구현이 용이하고 무료로 배포되어 많이 사용됨
4. DNS(Domain Name System)
1) 정의
- 도메인을 IP로 변환하거나 IP를 도메인으로 변환하는 프로토콜
- /etc/hosts: DNS 정보를 담고 있는 파일
- 53/UDP(기본), 53/TCP(512Byte이상)
2) 목적
- 호스트 별칭: 하나 이상의 별명 가질 수 있음 ex) redstone.com과 www.redstone.com등
- 부하 분산: 같은 도메인에 대하여 여러 IP 지정 가능, 따라서 DNS서버는 IP 번갈아가면서 알려줄 수 있음
3) DNS 캐시
- 상위 DNS 서버에 질의하는 부하를 줄이기 위함
- TTL: DNS 서버 정보를 캐시에 보관하는 기간(통상 2일)
4) 윈도우 DNS 서버 설정 절차
- 영역 등록: 도메인 DNS서버를 등록하는 절차
- 호스트 등록: DNS서버에 서비스 정보 입력하는 절차
4-1) Zone 정보 동기화 방법(named.conf)
- allow-transfer { 슬레이브 서버 IP };
5) 공격
5-1) DNS Cache Poisoning 공격
- 사용자에게 전달되는 DNS 서버의 캐시 정보를 조작하여 의도치않은 사이트로 접속하게 만드는 공격
- 사용자가 사이트에 접속 시도(DNS 질의) > 공격자가 정상 응답보다 빠르게 희생자에게 조작된 DNS 응답을 보냄 > 캐시 DNS 서버에 조작된 주소 정보가 저장됨 > 먼저 수신한 응답 신뢰 특성으로 인해 이후 들어온 정상 응답 폐기 > 사용자는 조작된 주소 사이트로 접속
5-2) DNS 증폭 공격(Amplication)
- DNS 질의는 인증 절차가 없다는 점을 이용
- DNS 질의 트래픽은 요청량보다 DNS서버로부터의 응답량이 많다는 점을 이용
- 공격자가 중계DNS서버에 DNS 쿼리의 Type을 ANY로 변경한 후 출발지를 피해자 IP로 수정 > 중계DNS서버는 ANY요청에 따라 A, NS, CNAME 등 모든 정보 응답
- IP 기반 DNS 증폭 공격: IP Spoofing을 사용하여 출발지 IP를 피해자 IP로 위조한 후 다수의 DNS 질의 수행하는 공격
* ANY 또는 TXT 쿼리 타입 이용: 요청 패킷 크기보다 응답 패킷 크기가 크기 때문
5. FTP(File Transfer Protocol)
1) 정의
- 인터넷 기반 파일 전송 프로토콜
2) 동작 원리
- FTP 서비스 제공하는 서버와 접속하는 클라이언트 사이에 2개의 연결이 생성됨
- 21/TCP: 데이터 전송을 제어하기 위한 신고 주고 받기 위함
- 20/TCP: 실제 데이터 전송에 사용됨
3) 공격 유형
3-1) FTP Bounce 공격
- FTP 서버가 데이터 채널(20) 생성 시 목적지를 검사하지 않는 프로토콜 구조적 취약점 이용
- 익명 FTP 서버를 이용해 공격자가 Port 명령을 조작하여 공격 대상의 네트워크 및 포트 스캔, 거짓 메일, 데이터 전송 등이 가능
- 대응방안: FTP 서버 업데이트, 자료 전송할 때 1024번 포트보다 낮은 포트번호로 접속하지 않도록 설정
3-2) Anonymous FTP 공격
- anonymous 접속이 허용된 상태에서는 누구든지 anonymous 또는 ftp라는 이름으로 FTP 실행해 접근 가능. 이를 통해 악성코드 업로드 가능
- 판단방법: 21번 포트에서 탐지되었으며, 사용자명이 본래 계정이 아닌 경우
- 대응방안: anonymous FTP 불필요한 경우 비활성화
> userdel ftp
> userdel anonymous
> vsFTP인 경우, vi /etc/vsftpd.conf 들어가서 anonymous_enable=NO 설정하기
3-3) TFTP 공격
- 69/UDP 사용하고 인증절차 없기 때문에 접근제어 여부에 따라 임의로 디렉터리 및 파일 접근 가능
- 대응방안: TFTP 불필요한 경우 비활성화
4) SFTP
- 포트 22번 사용
- SSH 방식을 이용하여 안전하게 암호화된 구간에서 FTP 기능 이용
6. 기타
1) Pass the Hash 공격
- password에 대한 hash값을 사용하는 환경에서, hash값을 획득한 후 해당 값을 사용하여 인증을 통과하는 공격
- 즉, 원격 서버나 서비스에 접속할 때 사용자의 실제 password를 모르는 상태에서 hash값을 사용하여 접속 인증을 받는 공격 기법
- 윈도우의 LM(LAN Manager) 또는 LTLM 인증 프로토콜을 사용하는 서버나 서비스의 경우 Pass the Hash 공격이 가능함
- 주로 mimikatz 툴을 이용함
2) Credential Stuffing
- 무차별 대입 공격의 일종으로 공격자가 미리 확보해 놓은 로그인 자격 증명을 다른 계정에 무작위로 대입해 사용자 계정을 탈취하는 공격 방식
3) Robots.txt
- 웹 사이트에 로봇 에이전트(agent)가 접근하여 크롤링 하는 것을 제한하기 위한 파일의 파일명
4) DDE(Dynamic Data Exchange)
- MS Office 프로그램에 내장된 정상기능으로 프로그램 간 데이터를 공유하기 위해 사용
- 해당 기능을 활성화 시 악용될 수 있음
5) DGA(Domain Generation Algorithm)
- DDoS, APT 등 공격 수행 시 공격 대상 시스템에 설치된 악성코드가 C&C와 통신하는 과정에서 특정한 규칙에 따라 도메인명을 임의로 생성하는 알고리즘
- 보안장비의 탐지를 우회하기 위한 기법
6) Domain Shadowing
- 적법한 절차로 도메인을 소유하고 있는 도메인 관리자의 개인 정보를 탈취하여, 도메인 소유자 몰래 많은 서브도메인을 등록시켜 놓고 사용하는 기법
7) 모바일 딥링크
- 모바일 앱의 특정화면으로 바로 이동할 수 있도록 지원하는 기능
- 공격자에 의하여 악용되는 경우 앱내 민감한 개인정보(카드정보, 주소 등)가 노출될 수 있는 취약점 존재
8) 세션 하이재킹
- 공격 대상이 이미 시스템에 접속되어 세션이 연결되어 있는 상태를 가로채는 공격 기법
9) 서브도메인 하이재킹
- 클라우드 서비스 이용을 위해 서브 도메인에 CNAME 설정하여 사용 중, 서비스 이용을 중지 했지만 DNS의 CNAME 설정은 삭제하지 않아 공격자가 피싱 사이트로 악용하는 공격
- 대응방안: 미사용 도메인의 sub DNS 삭제
10) 웹 프록시(Web Proxy)
- 웹 서버를 대신하여 자신이 마치 웹 서버인 것처럼 동작을 대행해준다. 브라우저로부터 연결 요청에 대하여 대신 응답함
- 대표 툴: paros, burp suite 등
11) MySQL
- my.cnf: MySQL 설정파일
- skip-networking: 설정파일 내 옵션으로, 외부 네트워크 접근 차단(로컬에서만 접근 가능)
12) memcached 서버
- 데이터베이스 로드를 줄여 웹 애플리케이션 속도를 높이는데 사용되는 오픈소스 분산 메모리 캐싱 시스템
- 웹 애플리케이션의 임시 데이터 저장용 메모리로 이해하기
- 최근 Github의 memcached 서버가 DDoS 공격을 받음
[정보보안 일반 및 관리]
1. 정보보호 관리체계(ISMS)
1) 정의 [기무가/절수지]
- 정보자산의 기밀성·무결성·가용성을 보장하기 위한 절차와 과정을 체계적으로 수립, 문서화하고 지속적으로 관리·운영하는 체계
2) 관리과정 [정범위/구사]
- 정보보호 정책수립 > 범위설정 > 위험관리 > 구현 > 사후관리
* 정보보호정책 공식문서로 인증받기 위한 절차: 이해관계자 검토 > 최고경영자 승인 > 모든 임직원 및 관련자에게 이해하기 쉬운 형태로 전달 및 최신본 유지
3) 라이프사이클
- 계획단계(Plan): 조직의 종합적인 정책과 목표에 따른 결과 산출하기 위하여 위험관리 수행하고 정보보호 개선하기 위한 정책, 목표, 프로세스, 절차를 수립
- 실행단계(Do): 보안 정책, 통제, 프로세스, 절차를 구현하고 운영
- 검토단계(Check): 보안 정책, 목표에 대한 프로세스 성과를 평가하고, 그 결과를 경영진에게 보고하여 검토
- 조치단계(Act): 관리체계 지속적 개선을 달성하기 위해 검토 결과에 근거하여 시정 및 예방조치 실시
4) 관리체계 요구사항
- 관리체계 기반 마련
- 위험 관리
- 관리체계 운영
- 관리체계 점검 및 개선
5) 보호대책 요구사항
- 정책, 조직, 자산 관리
- 인적 보안
- 외부자 보안
- 물리 보안 : 보호구역 지정, 출입통제, 보호설비 운영, 반출입 기기 통제, 업무환경 보안
- 인증 및 권한관리
- 접근통제
- 암호화 적용
- 정보시스템 도입 및 개발 보안
- 시스템 및 서비스 운영관리
- 시스템 및 서비스 보안관리
- 사고 예방 및 대응
- 재해복구
6) 기관
- 정책기관: 과학기술정보통신부, 개인정보보호위원회
- 인증기관: 한국인터넷진흥원, 금융보안원
- 인증위원회: 인증심사 결과에 대한 심의 및 의결 수행 조직
2. 정보보안 거버넌스
1) 정의
- 정보의 무결성, 서비스의 연속성, 정보자산의 보호를 위한 것으로 기업 거버넌스의 부분집합으로서 전략적 방향을 제시하며 목적 달성, 적절한 위험관리, 조직 자산의 책임 있는 사용, 기업 보안 프로그램의 성공과 실패가 모니터링됨을 보장하는 것
2) 목적과 필요성
- 정보의 무결성, 서비스의 연속성, 정보 자산의 보호
- 정보보안 거버넌스는 이사회와 경영진의 책임
- 정보보호, 재해복구 등 관련 규정 준수
3) 절차
- 통제환경 > 위험평가 > 통제활동 > 정보 및 의사소통 > 실행계획수립
3. 위험관리
1) 절차 [식분평/대계주]
- 자산식별 > 위험분석(자산가치 평가, 중요도 평가, 기존 보안대책 평가, 취약성 평가) > 위험평가 > 정보보호 대책수립 > 정보보호 계획수립 > 주기적 검토
1-1) 자산 관련
- 자산 중요도 평가: CIA 측면에서 자산의 가치를 평가하여 중요도를 산정함으로써 정보보호의 우선순위를 결정할 수 있는 기준을 마련하기 위함
- 취약점: 공격자가 접근권한을 얻거나 악의적인 작업 수행하기 위해 악용할 수 있는 시스템 또는 응용프로그램의 약점
- 위협: 시스템이나 조직에 손실을 끼칠 수 있는 사건이나 행동
- 우려사항: 자산에 발생할 수 있는 위협과 취약성을 하나의 통합된 고려요소로 평가하도록 하고 이를 ‘우려사항’이라는 용어로 표현함
2) 위험관리계획
- 프로젝트에 대한 위험관리 활동을 어떻게 접근하고 계획할 것인지를 결정하는 프로세스, 선택된 통제 목적과 통제방안이 무엇인지와 선택한 이유 등을 문서로 정리한 것
3) 위험분석
- 자산, 위협, 취약점, 기존 보호대책 등을 분석하여 위험의 종류와 규모를 결정
3-1) 위험분석 접근법
- 베이스라인 접근법, 비정형 접근법, 상세 위험분석, 복합 접근법
3-2) 정량적 위험분석
- 노출계수(Exposure Factor): 자산에 대한 손실 가능성(%)
- SLE(Single Loss Expectancy): 한번의 사건으로 발생할 수 있는 손실액, 자산가치*노출계수
- ARO(Annual Rate of Occurrence): 연간 위험 발생 가능성(%)
- ALE(Annual Loss Expectancy): 연간 발생 가능한 손실액, SLE*ARO
- ROI(Return Of Investment): 투자 대비 수익, 수익*100/투자금 = (ALE - 투자 비용)/투자 비용 * 100
3-3) 정량적 위험분석 유형
- 과거자료 분석법, 수학공식법, 확률분포법, 점수법
3-4) 정성적 위험분석 유형
- 델파이법, 시나리오법, 순위결정법
- 퍼지행렬법: 자산, 위협, 보안체계 등 위험분석 요인들을 정성적 언어로 표현된 값을 사용하여 기대손실을 평가하는 방법
4) 위험평가
- 위험분석 결과를 바탕으로 대응여부와 우선순위 결정
4-1) 위험처리전략
- 위험수용: 위험 정도가 수용 가능한 수준이라 판단하고 프로세스 유지하거나 사업 추진
- 위험감소: 정보보호대책 효과(가치)는 보호대책 적용으로 감소한 ALE에서 대책 운영 비용을 뺀 금액으로 계산
> 정보보호대책 효과(가치) = 감소한 ALE - 보호대책 운영 비용
- 위험전가: 보험 가입 또는 외주 위탁
- 위험회피: 위험이 있는 프로세스나 사업을 축소 또는 포기하는 방향으로 추진
* DoA(Degree of Assurance) 수용 가능한 위험 수준
* 위험대응: 위험에 대응하여 자산을 보호하기 위한 물리적, 기술적, 관리적 대응책
4. 접근제어정책
1) DAC
- Discretionary Access Control(임의적 접근통제)
- 접근주체 신분 기반으로 권한 부여
- 특징: ACL 사용
2) MAC
- Mandatory Access Control(강제적 접근통제)
- 주체, 객체 등급 기반으로 권한 부여
- 주체의 레이블과 주체가 접근하고자 하는 객체의 레이블을 이용
- 특징: 규칙이 단순하여 관리가 용이
3) RBAC
- Rule-Based Access Control(역할기반 접근통제)
- 주체, 객체 역할 기반으로 권한 부여
- 비 임의적 접근통제 모델, 임무기반 접근통제 모델
- 특징: 최소권한 원칙, 직무분리 원칙 지켜짐, 효율적
5. 업무연속성계획(BCP)
1) 정의 [재위업보]
- 각종 재해, 재난으로부터 위기관리를 기반으로 업무 연속성을 보장하는 계획
2) 단계 [범사복복수]
- 범위설정 및 기획 > 사업영향평가 > 복구전략 개발 > 복구계획 수립 > 수행테스트 및 유지보수
3) 사업영향평가(BIA) [재중영최]
- 각종 재난, 재해로부터 정보시스템 중단을 가정하여 시간흐름에 따른 영향도 조사하여 복구우선순위를 정의하고, 업무를 재개하기 위한 최소 필요자원을 도출하는 절차
4) 재난복구계획(DRP)
- 재해, 재난 발생시 취할 행동절차를 미리 준비하는 계획
4-1) 재난복구서비스 종류
- 미러사이트: 주 센터와 동일한 수준으로 백업센터 구축하고, 액티브-액티브 상태로 실시간 동시 서비스 제공, 높은 비용 발생, 대신 백업이 빠르고 데이터 최신성이 보장됨
- 핫사이트: 동일한 수준으로 백업센터 구축하되, 액티브-스텐바이 상태로 수시간 내 가동, 데이터를 최신으로 유지
- 웜사이트: 디스크, 주변기기 등 부분적 설비만 보유, 수일~수주 내 가동
- 콜드사이트: 데이터만 원격지에 보관, 장소만 준비, 비용 가장 저렴하나 데이터 손실 가능, 필요한 자원 구하여 복구하는데 오랜 시간 소요
6. CC(Common Criteria) 인증
1) 개요
- 국가마다 서로 다른 정보보호제품 평가기준을 연동하고 평가결과를 상호 인증하기 위해 제정된 정보보안 평가기준
- ISO/IEC 15408에 등록된 국제 표준 정보보호제품 평가·인증제도
- 정책기관(과학기술정보통신부), 인증기관(IT보안인증사무국(ITSCC)), 평가기관(KISA, TTA 등)
- 보안성 낮은 EAL1부터 EAL7까지 있으며, EAL0은 부적합
2) 대표요소
- 보호프로파일(PP, Protection Profile): 보안솔루션의 기능 및 보증과 관련된 공통요구사항
- 보안목표명세서(ST, Security Target): PP에서 정의된 요구사항이 실제제품으로 평가되기 위한 기능명세서
- 평가대상(TOE, Target of Evaluation): 평가대상이 되는 제품 또는 시스템
- 평가보증등급(EAL): 보증요구와 관련된 컴포넌트의 집합으로 구성된 패키지의 일종
3) 예시 - (주)강아지에서 강IDS의 CC 인증을 받을 경우
PP: IDS제품군
ST: (주)강아지는 IDS제품군 PP의 요구사항 만족을 위해 기능과 특징, 동작구조를 기술한 강IDS에 대한 ST 작성
TOE: 강IDS
7. 침해사고 대응절차 [준탐초/전조보해]
- 사고 전 준비 과정 > 사고 탐지 > 초기 대응 > 대응전략 수립 > 사고 조사 > 보고서 작성 > 해결
8. 디지털 포렌식 5원칙 [정재신연무]
- 정당성 원칙: 증거가 적법절차에 의해 수집되어야 함
- 재현 원칙: 같은 조건과 상황에서 항상 같은 결과가 나와야 함
- 신속성 원칙: 전 과정이 신속하게 진행되어야 함(휘발성 데이터 등)
- 연계보관성 원칙: 증거 획득부터 법정 제출까지 각 단계별 담당자 및 절차가 명확히 해야 함
(증거획득 > 이송 > 분석 > 보관 > 법정제출)
- 무결성 원칙: 수집된 증거가 위변조가 없어야 함
9. 사이버 위협정보 경보단계
- 정상 > 관심 > 주의 > 경계 > 심각
10. 위험통제 [예탐교]
- 예방통제: 발생가능한 잠재적인 문제들을 식별하여 사전에 대응하기 위한 통제
- 탐지통제: 예방통제를 우회하여 발생하는 위협을 찾아내기 위한 통제
- 교정통제: 탐지통제에 따라 발견한 위협에 대처하거나 줄이는 통제
11. 기타
1) 침해사고
- 정상적인 보호ㆍ인증 절차를 우회하여 정보통신기반시설에 접근할 수 있도록 하는 프로그램이나 기술적 장치 등을 정보통신기반시설에 설치하는 방법으로 정보통신망 또는 이와 관련된 정보시스템을 공격하는 행위
2) 정보보호 사전점검
- 정보통신망의 구축 또는 정보통신서비스의 제공 이전에 계획 또는 설계 등의 과정에서 정보보호를 고려하여 필요한 조치를 하거나 계획을 마련하는 것
3) 정보보호 시스템
- 정보의 수집․저장․검색․송신․수신시 정보의 유출, 위․변조, 훼손 등을 방지하기 위한 하드웨어 및 소프트웨어 일체
4) 정보통신기반시설
- 국가안전보장ㆍ행정ㆍ국방ㆍ치안ㆍ금융ㆍ통신ㆍ운송ㆍ에너지 등의 업무와 관련된 전자적 제어ㆍ관리시스템
5) 정보공유분석센터(ISAC)
- 취약점 및 침해요인, 대응방안에 관한 정보 제공하며 침해사고 발생하는 경우 실시간 경보, 분석체계 운영
- 금융, 통신 등 분야별 정보통신기반시설을 보호하기 위하여 업무 수행
[법규]
1. 정보보호 관련 법령
- 개인정보 보호법
- 정보통신망 이용 촉진 및 정보보호등에 관한 법률
- 정보통신기반 보호법: 민간, 공공 시설을 불문하고 침해사고 등이 발생할 경우 국가안정보장과 경제사회에 미치는 피해규모 및 범위가 큰 시설의 보호에 대해 다루는 법률
- 위치정보의 보호 및 이용 등에 관한 법률
- 전자서명법
2. 개인정보 보호법
1) 개인정보 수집 가능한 경우
- 정보주체의 동의를 받은 경우
- 법률에 특별한 규정이 있거나 법령상 의무 준수하기 위하여 불가피한 경우
- 공공기관이 법령 등에서 정하는 업무 수행을 위하여 불가피한 경우
- 정보주체와의 계약 체결 및 이행을 위하여 불가피하게 필요한 경우
- 개인정보처리자의 정당한 이익을 달성하기 위하여 필요한 경우로서 명백히 정보주체의 권리보다 우선하는 경우
2) 개인정보 처리방침
2-1) 포함 항목
- 개인정보 처리 목적, 처리하려는 개인정보 항목, 처리 및 보유기간
- 개인정보의 파기절차 및 파기방법
- (해당되는 경우)위탁에 관한 사항, 제3자 제공에 관한 사항
- 정보주체의 권리, 의무, 행사방법에 관한 사항
- 개인정보 보호책임자 성명 또는 개인정보 보호업무를 하는 부서명, 연락처
- 개인정보의 안전성 확보조치에 관한 사항
- 인터넷 접속정보파일 등 개인정보를 자동으로 수집하는 장치의 설치, 운영, 거부에 관한 사항
2-2) 게재 방법
- 인터넷 홈페이지에 지속적으로 게재
- 사업장 등 보기 쉬운 장소에 게시
- 관보나 신문에 싣기
- 재화나 용역 제공하기 위하여 개인정보처리자와 정보주체가 작성한 계약서 등에 실어 정보주체에게 발급
3) 영상정보처리기기 안내문 포함 내용
- 설치 장소 및 목적
- 촬영 범위 및 시간
- 관리책임자 성명 및 연락처
- 그 밖에 대통령령으로 정하는 사항
3. 개인정보 기술적, 관리적 보호조치 기준
1) 개인정보취급자 비밀번호 작성규칙
- 비밀번호 복잡도 및 길이 충족(영문, 숫자, 특수 문자 중 2종류 이상 조합 시 10자리 이상, 3종류 이상 조합 시 8자리 이상의 길이로 구성)
- 유추하기 어려운 비밀번호 사용(연속적인 숫자나 생일, 전화번호 등 추측하기 쉬운 것은 사용하지 않기)
- 비밀번호 최대 사용기간 설정(반기별로 변경)
2) 개인정보처리시스템 접속기록
- 개인정보취급자의 계정, 접속일시, 접속장소, 수행업무 등(+ 처리한 정보주체 정보)