소소의 키조개 관자 그린빈. 맛있다. 구운 레몬을 키조개로 착각해서 호되게 당했다.
- 블록체인
- 개요
- 정의
- 기술적 특성
- 탈중앙화 — 참여자들이 검증과 승인 및 합의 등의 활동을 통해 장부를 만들고 관리
- 투명성
- 블록은 생성되자마자 모든 참여자에게 공유됨 → 누구나 블록의 거래 기록을 볼 수 있음
- 참여자의 실명 알 수 없음 → 익명성
- 불변성 — 블록 생성 시 이전 블록의 해시 이용
- 가용성 — 데이터가 모든 참여자의 PC에 분산 저장
- 블록체인 기반 기술
- 분산 네트워크
- 분산 합의 제도 — 거래를 블록체인에 포함시키기 위해 거래 승인
- 암호 기술
- 공개키 암호와 전자서명 — 거래 시 생성되는 전자서명을 검증하여 거래 내역이 변경되지 않았음을 입증하는 데 ECDSA 전자서명 알고리즘 이용
- 익명성
- 익명의 공개키를 계좌 정보로 이용 — 누가 누구에게 얼마를 보냈는지 알 수 있음
- 당사자 정보가 연결되어 있지 않아 소유자에 대한 정보를 알 수 없음
- 전자서명 — 거래 정보의 무결성 보장
- 해시함수 — 블록 정보가 변경되지 않음을 증명하고 새로운 블록을 찾기 위한 넌스값을 찾는 데 이용(SHA-2)
- 채굴: 해시함수에 이전 블록의 해시값, 거래 내역, 넌스값을 넣어 특정 조건을 만족하는 결과값이 나오도록 넌스값을 유추하는 과정
- 거래내역 입증 간소화 — 거래 내역의 해시값을 누적하는 머클 트리 구조의 루트 해시를 가짐으로써 값 변경 시 루트 해시값이 변경되어 변조 유무 판단 가능
- 이중 거래 방지
- The Longest Chain Wins — 중복 지출에 의해 블록체인이 포크될 경우, 다음 블록을 먼저 생성하여 한쪽의 길이가 길어지는 체인을 옳은 것으로 간주
- 합의 기법
- 작업 증명(PoW)
- 비트코인을 창시한 사토시 나카모토가 제안한합의 알고리즘
- 새로 만든 블록을 앞 블록에 연결하는 데 필요한 해시를 만들고, 해시 연결성을 검증하여 데이터 위변조 확인
- 지분 증명(PoS)
- PoW의 에너지 낭비 문제 해결
- 컴퓨팅 파워가 아닌 자신이 가진 가상통화의 양에 따라 블록을 생성하고 추가적으로 발행되는 코인을 받음
- 퀸텀, 네오 등
- 블록체인 작동 원리
- 개요
- 채굴 노드는 블록 주기마다 트랜잭션을 모아 목록을 만들고, 그 트랜잭션 목록의 머클 루트 해시값을 계산. 이전 블록 헤더의 해시값과 그 블록 생성 시점을 나타내는 타임 스탬프 값도 구함
- 이전 블록 헤더의 해시값, 현 블록의 트랜잭션의 머클 루트 해시값에 더해 넌스 값을 조정하면 그 해시 결과값이 특정값보다 작은 값이 되는 넌스값을 구함 → 작업 증명
- 블록 헤더 구조
- Version — 블록 버전 숫자
- Previous block hash — 이전 블록헤더에 sha256 해시함수를 2번 적용한 해시값
- Merkle hash root — 현재 블록에 포함된 거래 정보의 거래 해시를 2진 트리 형태로 구성할 때, 트리의 루트에 위치하는 해시값
- Timestamp — 블록 생성 시간, 1970년 1월 1일 이후의 초 단위 시간
- Bits — 블록 작업 증명 알고리즘에 대한 난이도 목표
- Nonce — 특정 목표값보다 낮은 값을 구하기 위한 카운터
- 블록체인 종류
- 퍼블릭 — 비트코인, 이더리움
- 프라이빗 — 코다(금융), 하이퍼레저(범용)
- 블록체인 보안 위협 요소
- 프라이버시 문제 — 잊혀질 권리 행사 불가능, 데이터에 대한 통제권 상실
- 키 도난 및 분실
- 가용성 저하
- IoT
- 개요
- 정의
- 정보통신기술 기반으로 실제 세계와 가상 세계의 다양한 사물을 연결하여 서비스를 제공하기 위한 서비스 기반 시설
- 센싱 기술, 유무선 통신 및 네트워크 인프라 기술, 사물 인터넷 인터페이스 기술, 사물 인터넷을 통한 서비스 기술
- IoT 활용 사례
- 스마트홈 분야 — HVAC(실내 및 자동차 환경 조절 시스템 기술)
- 의료 분야
- 교통 분야
- 환경/재난 분야
- 제조 분야
- 건설 분야
- 에너지 분야
- AMI: 스마트 미터에서 측정한 데이터를 원격 검침기를 통해 측정하여 전력 사용 분석을 자동으로 진행하는 기술
- IoT 구성요소별 암호 알고리즘
- 디바이스 — 대칭키 암호화, 공개키 암호화를 이용하여 보안 요구사항 만족
- 통신 및 네트워크
- 무선 통신 프로토콜 — ZigBee, Bluetooth, 6LoWPAN, Z-Wave, IEEE802.15.4, LoRA Wi-Fi 등
- 6LoWPAN — IPv6를 사용하는 통신으로 기밀성을 제공하기 위해 MTU에 대한 암호화 기법으로 AES128을 사용할 수 있고, IPSec을 이용하여 기밀성 및 무결성 보장
- Z-Wave
- 홈 자동화를 목적으로 개발된 무선 통신
- 900HZ 사용, 100kbps 통신 속도
- Zigbee와 X10 프로토콜에 기반하는 AES 암호 알고리즘 사용 권장
- LoRA
- 기밀성을 위해 FRM Payload에 대해 AES128 사용 권장
- 무결성을 위해 RFC4493에서 제시된 AES-CMAC 사용
- 경량 프토토콜
- CoAP
- HTTP와 유사한 REST 프로토콜(구성요소의 위치가 아닌 데이터 속성 기반으로 주소를 구성하고 접근하는 방식)
- GET/POST/PUT/DELETE를 제공
- UDP 상에서 통신
- 유니캐스트에 대한 보안만 제공
- DTLS에 기반, AES, ECC, 해시함수 사용
- MQTT
- publication/subscription으로 구성된 경량 메시징 프로토콜
- TCP 사용(센서 네트워크를 위한 MQTT-SN은 UDP)
- SSL 사용
- DDS — 높은 QoS를 보장하면서 데이터를 전송하기 위한 프로토콜
- JTAC(Joint Test Action Group) — 디지털 회로에서 특정 노드의 디지털 입출력을 위해 직렬 통신 방식으로 출력 데이터를 전송하거나 입력 데이터를 수신하는 방식
- Mirai — 인터넷에 연결된 기기들을 감염시켜 봇넷을 만든 후, DDoS 공격
- 클라우드 보안
- 클라우드 컴퓨팅 개요
- 정의 — 정보통신 자원을 이용자의 요구에 따라 유동적으로 이용할 수 있도록 하는 정보 처리 체계
- 구축형 환경 vs 클라우드 환경
- 서비스 모델 — 형태에 따른 분류
- SasS
- PaaS
- IaaS
- 배치 모델 — 구현 방식에 따른 분류
- 프라이빗 클라우드
- 퍼블릭 클라우드
- 하이브리드 클라우드
- 클라우드 컴퓨팅 기술
- 가상화 기술
- 개요
- 단일 물리 IT 자원을 논리적인 다수의 IT 자원으로 나누어 동시에 각 자원을 사용할 수 있도록 하는 기술
- 하이퍼바이저
- 가상머신과 하드웨어 사이에 위치하여 다수의 가상머신이 각각의 운영체제가 구동될 수 있도록 논리적으로 독립된 가상머신 환경 제공
- 하드웨어 자원을 각 가상머신에 논리적으로 분할 할당 및 스케줄링
- 가상화 종류 — 데스크톱, 애플리케이션, 스토리지, 서버, 네트워크(대상 및 범위에 따라)
- 컨테이너 기술
- 가상화 기술 — 가상머신마다 OS가 설치되어 오버헤드 발생. 운영체제 및 커널 버전을 고려해 개발 환경 구축
- 컨테이너 — 리눅스 커널 기능 cgroup과 namespace를 통해 서로 다른 애플리케이션 프로세스별로 공간 격리
- cgroup — 프로세스의 CPU, 메모리 등의 지원 사용을 제어하고 격리
- namespace — 하나의 시스템에서 수행되지만 각각 별개의 독립된 공간인 것처럼 격리된 환경 제공
- 게스트 OS를 설치할 필요 없음 → 오버헤드 적음, 설치 빠름
- SecaaS(security as a Service)
- 정의 — 서비스 제공자가 제공하는 보안 서비스 패키지
- 서비스 종류
- 신원 및 접근 관리(IAM) — 개체 신원을 검증하고 확인된 신원에 근거하여 정확한 수준의 접근 권한 부여
- 웹 보안 — 소프트웨어/기기 설치를 통해 현장에서 제공하거나 CP(Cloud Provider)로 가는 웹 트래픽을 프록시로 보내거나 재지정하는 방식의 클라우드를 통한 실시간 보호
- 이메일 보안 — 이메일 통제, 피싱, 악성코드 첨부로부터 이메일 보호. 제한적 기업 정책 사용이나 스팸 예방 등의 기업 정책 실행
- 랜섬웨어
- 개요
- 정의
- 특징
- 주요 랜섬웨어 — 워너크라이, 로키, 크립트XXX,, 케르베르(CERBER), 크립토락커, 테슬라크립트 등
- 크립토락커 — 문서 암호화
- 코브터 — 화면 잠금
- 일반 악성코드와 랜섬웨어 차이점
- 랜섬웨어 공격 및 대응
- 절차
- 감염 경로와 증상
- 개요
- 이메일 유포 → 웜, 해킹
- 감염 방식 — 취약한 웹사이트 이용, 사회공학적 기법 활용, 보안 설정이 미흡한 유무선 네트워크 악용, 해킹을 통해 직접 침투 및 실행 등
- 감염 증상 — 파일 암호화, 화면 잠금, 부트 영역 암호화
- 가상통화화 토르 네트워크(가상 회선을 만들고 암호 통신을 적용함으로써 익명성을 보장하는 소프트웨어)
- 주요 감염 경로
- 신뢰할 수 없는 사이트
- 스팸 메일 및 스피어 피싱
- 파일 공유 사이트
- SNS
- 랜섬웨어 피해 예방 5대 수칙
- 모든 소프트웨어는 최신 버전
- 백신 소프트웨어 설치
- 이메일, 링크 주의
- 파일 공유 사이트 등에서 다운로드 및 실행 주의
- 중요 자료 클라우드 등에 정기적 백업
- APT(Advanced Persistent Threat, 지능형 지속 위협)
- 개요
- 기본 개념 — 특정 대상을 겨냥해 다양한 공격 기법을 이용하여 장기간 지속적으로 공격하는 것. 제로데이 공격과 같이 기존에 알려지지 않은 취약점 이용
- APT 공격과 기존 공격 차이점
- 맞춤형 공격
- 낮고 느리고 지속적인 공격
- 구체적인 공격 목표
- 공격 단계
- 선행 조사 후 침투
- 기업 정보 검색
- 악성코드 유포로 기밀 정보 수집
- 정보 유출
- 주요 침투 기법
- 스피어 피싱 공격 — 목표지향적인 피싱 공격
- drive-by-download attack
- 목표 대상이 방문할 가능성이 높은 사이트를 침해한 뒤, 접속 즉시 악성코드가 다운로드되도록 하는 공격
- 다중 확산 메커니즘과 페이로드를 포함한 악성 소프트웨어
- 접근 후 더 많은 공격 도구 추가
- Watering Hole 공격
- 둘 차이 애매해서 인터넷 찾아봄
- DBD — 불특정 다수
- 워터링 홀 — 특정 타깃 대상
- USB 메모리 스틱을 이용한 기법 — 사전에 USB 메모리에 악성코드를 삽입, 특정 타깃의 이동 동선 상에 이를 방치한 후 누군가 이를 가져가서 PC에 연결하는 순간 감염되게 하는 방식
- 기타 최신 보안 주제들
- 사이버 킬 체인
- 개요
- 침입 타격 순환 체계(Intrusion Kill Chain) — APT 방어에 대한 기준을 정립하고 어떻게 대항할지 구상
- 공격 행위 각 단계 중 하나만 차단돼도 실패
- 각 단계에 따라 선제적, 체계적 대응 → 신속히 복구, 사전 방어 조치, 분석 자료 제공
- 록히드마틴사 사이버 킬 체인 모델
- 정찰
- 무기화 — 익스플로잇과 백도어를 결합하여 페이로드에 삽입
- 전달 — 무기화된 파일을 시스템에 유포
- 취약점 악용
- 설치
- 명령 및 제어
- 목표 실행
- 공급망 공격(Supply Chain Attack)
- 공급망의 정의 — 일반적으로 제품이나 서비스가 공급자로부터 소비자에게 전달되기까지의 조직, 사람, 정보, 자원 등에 대한 시스템
- 공급망 공격
- 개요
- 공급망에 침투하여 S/W나 H/W 변조
- 방식
- 빌드/업데이트 인프라 변조
- 인증서나 개발 계정 유출을 통한 변조
- 하드웨어나 펌웨어 변조
- 악성코드에 감염되어 있는 제품 판매
- 대응 방안
- S/W 공급 업체의 대응 방안
- 개발자 PC 및 빌드/업데이트 서버의 관리 강화
- SDLC 가이드라인에 따른 S/W 업데이트
- Software Development Life Cycle
- 업데이트 채널은 SSL 암호화 사용
- 모든 바이너리는 코드 사인으로 서명하여 무결성 검증
- 공급망 공격에 대한 이해 및 취약 부분 점검
- 기업/기관의 대응 방안
- 가시성 확보
- EDR — 앤드포인트에서 침입 흔적을 찾아 공격을 차단하고 공격 가능성 감소시킴
- 최신 패치 적용
- 지속적인 보안 교육
- Nimda — 22분만에 인터넷에 가장 넓게 확산된 악성 바이러스. 윈도우 서버를 사용하는 PC를 대상으로 파일을 통해 서버 감염
- Stuxnet — SCADA의 제어 소프트웨어에 침투하여 시스템을 마비시킬 목적으로 제작된 악성코드. 산업 기반 시설에 사용되는 제어 시스템에 침투하여 오동작 유도
- SCADA(Supervisory Control ANd Data, 원격 정보 수집 및 제어 시스템) — 원격지에 설치된 단말에서 데이터를 수집하고 중앙 감시 센터에 전송하여 현장 상황을 온라인으로 감시 제어하는 시스템
- 슬래머 웜 — 다양한 인터넷 호스트에 DoS 실시. 10분에 75000대
- RPC(원격 절차 호출)
- 분산 처리 시스템에서 다른 컴퓨터에 동작하고 있는 프로그램의 절차를 직접 불러내는 것
- 두 머신의 프로그램 사이에서 직접 통신 가능하게 함
- NFS(네트워크 파일 시스템), NCS(Network Computing System) 등 분산 처리 기능을 실현하는 소프트웨어에서 사용
- 다양한 취약점 존재로 서비스 중단 권고 — 비인가자의 root 권한 획득 및 침해사고 발생 가능성
- XML-RPC
- 프로토콜 일종. 인코딩은 XML, 전송은 HTTP
- XML 기반의 분산 시스템 통신 방법
- RPC 호출에 대해 XML 형태로 매개변수나 리턴값 반환
- SSHD(Solid State Hybrid Drive)
- SSD와 HDD의 특징을 더한 저장 장치
- 데이터 저장은 HDD에 하고 플래시 메모리를 캐시로 이용하며, 캐싱된 데이터를 읽을 때는 SSD와 동등한 속도
- 오버레이 네트워크 — 물리 네트워크 위에 성립되는 가상의 네트워크
- 다크넷 — 자주 비표준적인 통신 규약과 포트를 사용하는 특정 소프트웨어, 설정, 허가가 있어야 접속 가능한 오버레이 네트워크. 일반 검색 엔진에서 검색되지 않음
- 다크웹은 딥웹보다 접근이 더 어려움