2025.11.03 (Day 6) [Numpy 기초 및 벡터화 연산]
1. 핵심 개념 정리 (Concepts)
- 핵심1 —
ndarray(N-차원 배열): 인공지능/머신러닝(ML) 기반 보안 모델의 데이터 처리 기본 단위. 모든 요소의 자료형이 동일하므로, 정형화된 대규모 보안 로그/패킷 데이터를 고속으로 처리하고 계산하는 데 필수적이다. - 핵심2 — 벡터화 연산 (Vectorization): 반복문 없이 배열 전체에 대해 산술/비교 연산을 빠르게 수행하는 기법. 대량의 로그 데이터에 대해 일괄적으로 가중치 부여나 조건부 필터링을 수행하는 탐지 엔진의 효율을 극대화한다.
- 핵심3 — 인덱싱/슬라이싱/팬시 인덱싱: 배열에서 원하는 데이터(특정 행/열, 복합 조건에 맞는 값)를 선택적으로 추출하는 기능. 이상 탐지 시 특정 로그 필드만 분리하거나 조건에 맞는 공격 IP 리스트를 분리하여 조사하는 데 사용된다.
- 핵심4 — 브로드캐스팅 (Broadcasting): 크기가 다른 배열 간에도 자동으로 확장하여 연산을 가능하게 하는 규칙. **기준값(스칼라 또는 1차원 배열)**을 대규모 로그 배열에 일괄 적용하여 임계치 검사나 정규화를 효율적으로 수행한다.
2. 실습 코드 & 응용 (Practice & Code)
import numpy as np
# 핵심 패턴 1: 불리언 인덱싱 (복합 조건 필터링)
ary = np.arange(1, 21)
# 3의 배수이고(AND) 4로 나누어 1이 남는 값들만 필터링
dulda = ary[(ary % 3 == 0) & (ary % 4 == 1)]
print(dulda) # [9]
- 사용 맥락: 복합 조건 탐지 규칙 적용. (예:
(로그인_실패_5회_이상) & (국가_IP_차단_리스트_포함)인 계정만 추출함) - 확장 아이디어: 필터링된
dulda배열을 경고(Alert) 리스트로 활용하고, 해당 인덱스의 로그 원본을 조회하는 로직을 추가.
# 핵심 패턴 2: 배열 변형 및 통계 함수 (Feature 추출 및 임계치 설정)
ary = np.random.randint(0, 1000000, (5, 6)) # 5행 6열 랜덤 데이터 (로그 수치 가정)
col_means = ary.mean(axis=0) # 각 열(필드)의 평균값 계산 (정상 기준선)
col_means_row = col_means.reshape(1, -1) # 1행으로 변형하여
ary_with_mean = np.vstack((ary, col_means_row)) # 원본 배열에 행(기준선)으로 추가
- 사용 맥락: 정상 행위 기준선(Baseline) 설정. 각 로그 필드(열)의 평균을 계산하여, 이 기준을 벗어나는 값에 대해 이상 탐지 임계치를 설정할 때.
- 확장 아이디어:
col_means를ary.std(axis=0)와 함께 활용하여 평균 ± 표준편차 범위(신뢰 구간)를 벗어나는 데이터를 탐지하는 로직 구현.
3. 보안 관점 분석 (Security Insight)
관점1 — SOC (보안 관제)
- 적용방식:
ndarray와 벡터화 연산을 사용하여 수백만 건의 네트워크 트래픽/시스템 로그를 수집 즉시 초고속으로 처리. 불리언 인덱싱을 통해 실시간 탐지 규칙을 적용하여 오탐을 줄이고 공격 패턴을 정확히 추출한다.
- 적용방식:
관점2 — CERT (침해 사고 대응)
- 적용방식: 악성 파일 크기, C2 서버 통신 횟수 등 포렌식/분석 데이터를 배열로 변환한 후, 통계 함수(
percentile,std)를 이용해 **정상 분포를 벗어나는 이상치(Outlier)**를 신속하게 식별하여 악성 행위의 증거를 추적하는 데 활용.
- 적용방식: 악성 파일 크기, C2 서버 통신 횟수 등 포렌식/분석 데이터를 배열로 변환한 후, 통계 함수(
관점3 — 취약점/자동화 진단 (AI/ML 전처리)
- 적용방식: 진단 데이터를 머신러닝 모델에 입력하기 위해 Numpy로 수치화 및 정형화한다. 브로드캐스팅을 활용하여 전체 데이터셋에 대해 일괄적으로 **정규화(Normalization)**를 수행함으로써 모델의 학습 효율과 탐지 정확도를 높인다.
4. 요약 (Summary)
- Numpy는 대규모 보안 로그/데이터를 고속으로 처리하는 AI 기반 탐지 시스템 구축의 가장 기본이 되는 라이브러리다.
- 벡터화 연산과 불리언 인덱싱은 대량 로그에서 복합 조건의 침해 지표(IOC)를 추출하는 탐지 규칙 구현의 핵심이다.
- 통계 함수는 로그 데이터의 정상 기준선을 정의하여 이상 탐지 임계치를 설정하는 데 직접 활용된다.