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_meansary.std(axis=0)와 함께 활용하여 평균 ± 표준편차 범위(신뢰 구간)를 벗어나는 데이터를 탐지하는 로직 구현.

3. 보안 관점 분석 (Security Insight)

  • 관점1 — SOC (보안 관제)

    • 적용방식: ndarray벡터화 연산을 사용하여 수백만 건의 네트워크 트래픽/시스템 로그를 수집 즉시 초고속으로 처리. 불리언 인덱싱을 통해 실시간 탐지 규칙을 적용하여 오탐을 줄이고 공격 패턴을 정확히 추출한다.
  • 관점2 — CERT (침해 사고 대응)

    • 적용방식: 악성 파일 크기, C2 서버 통신 횟수 등 포렌식/분석 데이터를 배열로 변환한 후, 통계 함수(percentile, std)를 이용해 **정상 분포를 벗어나는 이상치(Outlier)**를 신속하게 식별하여 악성 행위의 증거를 추적하는 데 활용.
  • 관점3 — 취약점/자동화 진단 (AI/ML 전처리)

    • 적용방식: 진단 데이터를 머신러닝 모델에 입력하기 위해 Numpy로 수치화 및 정형화한다. 브로드캐스팅을 활용하여 전체 데이터셋에 대해 일괄적으로 **정규화(Normalization)**를 수행함으로써 모델의 학습 효율과 탐지 정확도를 높인다.

4. 요약 (Summary)

  1. Numpy는 대규모 보안 로그/데이터고속으로 처리하는 AI 기반 탐지 시스템 구축의 가장 기본이 되는 라이브러리다.
  2. 벡터화 연산불리언 인덱싱은 대량 로그에서 복합 조건의 침해 지표(IOC)를 추출하는 탐지 규칙 구현의 핵심이다.
  3. 통계 함수는 로그 데이터의 정상 기준선을 정의하여 이상 탐지 임계치를 설정하는 데 직접 활용된다.