2022. 4. 20. 03:10ㆍ보안/빅데이터
빅데이터 구조적 관점 구분
정형 데이터 : 행과 열을 갖는 표준 데이터베이스와 관계형 스키마로 구성된 데이터
반정형 데이터 : 고정된 스키마를 갖지 않는 정형 데이터. 데이터에 레코드 및 필드 같은 구조를 갖기 위해 태그나 인덱스 포함
비정형 데이터 : 구조화 되지 않은 임의의 형식 (이미지, 동영상, 이메일, 문서 등)
빅데이터 특징
Volume(규모) : 빅데이터 분석 규모. 디지털 정보량의 기하급수적 증가
Variety(다양성) : 빅데이터 자원 유형. 정형 데이터 뿐만 아니라 비정형, 반정형 데이터 포함
Velocity(속도) : 빅데이터 수집,분석,활용 속도. 처리속도 가속화 요구
Veracity(신뢰성) : 빅데이터 수집 대상 데이터가 가지는 신뢰에 관련된 특징
Value(가치) : 빅데이터 수집 데이터를 통해 얻을 수 있는 가치
Validity(정확도) : 빅데이터 수집 대상 데이터가 가지는 유효성과 정확성, 규모 크더라도 정확한 분석 수행이 없다면 의미없음
Volatility(휘발성) : 빅데이터 수집 대상 데이터가 의미 있는 기간.
2020년 7대 사이버 공격 전망
일상 속으로 파고든 보안 취약점- IOT 대상으로 공격
랜섬웨어 – 기업으로 확대, 잠그고 돈 요구
취약한 가상통화 거래서 - 사칭 및 지갑 프로그램으로 위장한 악성코드 유포
문자, 이메일 속에 숨은 악성코드 ddos 등
지능형 표적공격 – 정상서비스를 활용한 악성코드 통신기법
모바일로 확대 – 특정 사용자만을 선별하여 감염된 악성코드를 선별 실행
융합서비스를 노리는 새로운 보안 위협의 등장 – 의료시스템 해킹
보안 빅데이터 분석 플랫폼
보안 데이터의 수집 저장, 검색, 분석 및 시각화까지 업무 프로세스를 수행하기 위해 다양한 솔루션의 연계 및 개발/운영이 가능한 환경이자 데이터와 사용자 간의 상호작용을 통해 지속적인 부가 가치 창출을 지원하는 서비스 기반.
보안성 검토(기획) - 인프라 구성, 개인정보 취급, s/w게발
보안요건 도출(설계, 구현) - 보안요건 도출, 보안 가이드 제공, 보안요건 교육
보안성 검토(검수) - 관리체계 보안성 점검, 인프라 장비 애플리케이션 소스코드 취약점 점검
플랫폼 효과
수집> 저장> 검색> 분석> 활용
빅데이터 생성
2. 빅데이터 수집
- 내부 데이터 수집 : 파일 시스템, 데이터 베이스 관리 시스템, 센서 등 정형 데이터
- 외부 데이터 수집 : 인터넷으로 연결 된 외부에서 비정형 데이터
3. 빅데이터 저장
- 분산 파일 시스템, NoSQL, 병렬 DBMS, 네트워크 구성 저장 시스템
4. 빅데이터 처리
- 일괄 처리, 실시간 처리, 프로그래밍 지원
5. 빅데이터 분석
- 텍스트 마이닝, 웹 마이닝, 오피니언 마이닝, 리얼리티 마이닝, 소셜 네트워크 분석. 분류
6. 빅데이터 활용
7. 빅데이터 표현(시각화)
하둡(Haddop)
HDFS(Hadoop Distributed File System)라는 데이터 저장소와 맵리듀스(MapReduce)라는 분석 시스템을 통해 분산 프로그래밍을 수행하는 프레임 워크
HDFS
네임노드(마스터)-메타데이터 관리, 데이터 노드 모니터링, 블록관리, 클라이언트 요청접수
데이터노드(슬레이브)
MapReduce
맵(map) : 흩어져 있는 데이터를 연관성 있는 데이터들로 분류하는 작업(key, value의 형태)를 의미
리듀스(Reduce) : Map에서 출력된 데이터를 중복 데이터를 제거하고 원하는 데이터를 추출하는 작업.
Shuffling : 같은 key를 가지는 데이터끼리 분류
하둡에서 파일 읽기
어플리케이션이 HDFS에 요청
클라이언트는 네임 노드에 요청된 파일이 어떤 블록에 저장되어 있는지 확인
메타데이터를 통해 파일이 저장된 블록 리스트 반환.
클라이언트는 데이터 노드에 접근, 조회 요청
요청된 블록 전송
클라이언트를 어플리케이션에 전달
예시
대문자로 바꾸는
Let map(k, v) = emit (k.toUpper(), v.toUpper())
철자 분리
Let map(k, v) = foreach char c in v: emit (k , c)
스플렁크
로그를 수집하고 사용자가 원하는 결과를 추출하는 대용량 로그수집 분석 시스템
기능
- 다양한 이기종 데이터 소스로부터 제약 없는 수집
- 하루 수백 TB 수집까지 횡적 확장
- 강력한 검색 기능
- 내장 UI 컴포넌트를 활용한 쉽고 빠른 대시보드 제작
- 실시간 감시 및 알람
- 다양한 App 생태계 및 커뮤니티
search header 최종 단말 성격의 구성 요소, 검색된 경과화면을 통합하여 제공
indexer 검색된 결과 화면을 통하여 사용자에게 제공
deployment 로컬 및 분산 인스턴스 관리
forwarder 데이터를 수집하는 구성요소
다양한 App 생태계 제공
주로 서버 콘솔 환셩에서의 설정 파일 수정 및 적용을 통해 플랫폼 구축 잡업을 수행
로그 데이터를 남기며 통계적이고 시각적이다.
단일 서버 환경
복수 서버 환경
- 서버 한 대가 하나의 역할을 독립적으로 수행할 수 있도록 한 대의 서버에서 하나의 스플렁크 인스턴스가 설치되도록 구성
스플렁크 인스턴스는 각각의 라이선스 정책을 동기화하고 정상적으로 동작하도록 하기위해 마스터 역할 인스턴스 설정
클러스터링 기반 분산 처리 환경
- 복수서버 환경 구성을 확장해 인덱서 서버와 검색헤드 서버의 클러스터링을 적용할 수 있음
클러스터 마스터 노드 설정
스플렁크 데이터 검색 설정은 최소 3대 이상의 스플렁크 검색 헤드 서버가 필요하고 검색 헤드 클러스터링의 주요 특징은 수평 확장 지원, 고가용성, 서비스중단 최소화가 있다.
Splunk 데이터 검색
- 키워드 검색, 이벤트 추이 검색, 정규표현식 활용 고급 검색
- 검색 명령어
dedup - 검색 결과에서 중복 제거 <dedup 필드 1, 필드 2 ...>
sort – 필드를 지정해 필드 값을 기준으로 정렬 <sort ( + | - ) 필드 1, 필드 2>
stats – 각종 통계 함수를 이용해 데이터를 계산 <stats
dc(X) : X 필드의 중복을 제거한 개수를 반환
list(X) : X 필드의 목록으로 만들어 반환
values(X) : X 필드의 중복을 제거한 목록을 반환
eval – 검색 결과 값의 변환, 검증을 수행하며 함수 실행 결과 값을 반환하는 형식 <eval [반환값 지정변수] = 함수()>
case – 여러 개의 조건을 검증할 때 사용. <case(X,“Y”, ...> (두 개 인자가 한 그룹으로 동작)
cidmatch – IP 주소가 네트워크 범위에 존재하는지 확인, 참 or 거짓 반환 <cidmatch(“네트워크 범위”,IP 주소)>
if - <if(X,Y,Z)> X가 참이면 Y를 실행, X가 거짓이면 Z를 실행
like - <like(필드,“문자열 or 정규표현식”) 필드에서 “ ” 안의 내용을 찾아줌. 와일드카드 * 대신 % 사용
match – 정확히 일치하는지 비교, 정확히 같으면 참 아니면 거짓을 반환 (대소문자 구분 X)
bin – 시간을 묶음 처리하는 기능. (ex : _time span=1mon = _time을 한달 기준으로 묶어라)
7대 방어전략
정찰- 목표와 표적 조사/ 식별/ 선정
무기화- 코드제작은 자동화 도구 이용, 사이버 무기 준비
침투- 전달은 사이버 무기 유포
탈취- 사이버 무기의 작동 촉발 악용
설치- 악성 프로그램 설치
원격제어- 원격조작 채널 구축
목표달성- 정보수집 시스템 파괴
사이버 킬 체인
- APT에 대응하기 위해 공격자의 공격을 단계별로 구분해서 공격자 행동을 이해하기 쉽게 제시된 방어전략
정찰
- 이메일, 크롤링, 사회공학 기법 <-> 방화벽 필터링, 허니팟, 베스천호스트
무기화
- Drive by Download, 스피어 피싱 등 <-> IDS/IPS, NIPS/NIDS, SIEM, 호스트 분석
침투(전달)
- Drive by Download, 스피어 피싱 등 <-> Proxy Filter, 이메일 분석
탈취(악용)
- 이버무기 작동, 취약점 이용 공격 <-> HIDS, OS 패치 업데이트, 안티바이러스 등
설치
- Trojan 설치, 원격 백도어 이용 <-> HIDS, chroot jail, Secure OS
명령 및 제어(원격제어)
- 시스템 권한 획득, 명령어 전달/제어 <-> FireWall ACL, SIEM, FDS
목표달성
- 시스템 파괴, 데이터 유출 <-> Audit Log, 허위 데이터 전송
보안 빅데이터 분석 플랫폼 구축
Phase 1. 사전 준비작업
Why – 왜 플랫폼을 구축하는가?
What – 구축하고자 하는 플랫폼은 무엇이고 어떤 것으로 구성할 것인가?
플랫폼 기본 요소 정의(서버, OS, H/W 등)
How – 구축 목표를 달성하기 위해 구성 요소별로 어떻게 플랫폼을 구축해 나갈 것인가?
구성 요소별 플랫폼 구현 방안 수립(서버는 어떤 제품에 어느 정도의 사양을 가진..)
Phase 2. 플랫폼 인프라 구성
- 구성 기준 정의
IT담당자가 요청하는 구축요건을 중심으로 구성 기준 정의. 서버 대수, OS 종류와 설치 버전 등
- 스플렁크 인스턴스 설치
정의된 기준에 맞게 스플렁크 솔루션을 설치 작업 수행, 설치 대상에 따른 설정 방법, 이에 대한 사전/사후 작업 명시
- 주요구성별 설정 적용
기본 구성 상태로 인스턴스 동작하도록 설정, 수행 역할에 맞게 동작하도록 하려면 인스턴스별 conf 파일 값 변경
- 주요 구성 변경 요건 별 설정 변경 가이드
불가피한 사유로 사전 정의한 구성 기준을 변경해야하는 상황이 발생할 수 있음. 주로 발생하는 변경 상황에 대해 정의,
각 상황별 설정 변경 및 정상 여부 점검 가이드 제시
Phase 3. 플랫폼 콘텐츠 구현 및 적용
- 플랫폼에 사용할 각종 콘텐츠를 구현해 탑재
데이터 검색, 데이터 분석, 시나리오 구현 및 적용, 대시보드 구현 및 활용, 콘텐츠 강화를 위한 툴과 팁
Phase 4. 스플렁크 앱 기반 플랫폼 확장
- 스플렁크 솔루션은 고유의 앱 생태계를 가짐
Phase 5. 구축 후 운영 환경 최적화
- 플랫폼 구축 후 참여 요소간의 상호 작용 고려. 플랫폼 운영 담당자의 지속적 모니터링과 정상 상태 유지 노력 필요.
- 플랫폼 운영 현황 점검 항목 정의, 정상 여부 확인 및 비정상 항목 조치, 플랫폼 구성 요소별 운영 효율성 강화 가이드 작성
필드명과 정의
추출 필드명 | 필드 정의 | 예시 |
Protocol | 데이터의 프로토콜 종류 | tcp |
src_ip | 출발지 ip | 192.168.42.104 |
src_port | 출발지 port | 756 |
dest_ip | 도착지 ip | 203.133.152.21 |
dest_port | 도착지 port | 421 |
status | 네트워크 통신상태 | established |
pid | 프로세스 고유번호 | 21880 |