분석 · 관제핵심 · 14분 읽기
보안 프로젝트를 검증하는 증거와 지표
구축 완료는 프로그램이 실행되는 상태를 넘어야 한다. 정상 기능·탐지 효과·유실·복구를 같은 시험 기록에서 확인한다.
개념부터 찾아보기
정의·역할·동작 원리를 독립 페이지에서 확인하세요. 본문의 밑줄 용어에도 설명이 있습니다.
이 노트에서 설명할 수 있게 되는 것
- 기대 결과가 있는 시험 표본을 관찰 경로 전체에 연결한다.
- 혼동행렬의 분모를 밝히고 탐지율·정밀도를 계산한다.
- 수집·저장·경보 지연과 누락·중복을 별도로 검증한다.
01개념과 구성 요소
- 검증 주장서비스 시작·규칙 로드·경보 생성·차단·저장·조회는 각각 필요한 증거가 다르다.
- 시험 구성대상 기능·입력·사전 상태·기대 결과·관찰 위치를 명시한다.
- 범위양성·음성·경계·실패 조건과 정상 기능을 함께 비교하며 미실행 계획을 성공 결과로 쓰지 않는다.
02수정의 효과를 재현 가능한 증거로 확인하는 순서
- 주장과 기대값 정의어떤 입력에서 어떤 상태·출력·거부가 나와야 하는지 먼저 정한다.
- 조건 고정버전·설정·인증 문맥·PCAP 또는 시험 자료를 기록해 변경 전후 비교가 가능하게 한다.
- 입력과 단계별 관찰Source→해석·검증→Sink 경로에서 입력 수·파싱 결과·경보·저장값을 각각 수집한다.
- 대조군·경계 시험정상 자료와 변형 자료, 누락·분할·중복·실패 조건을 비교해 우연한 성공을 구분한다.
- 수정 후 회귀 확인원래 결함뿐 아니라 정상 기능과 다른 권한·상태 조합도 재시험한다.
- 결론의 범위 기록관찰한 지표의 분모와 입력 범위를 명시하고 확인된 결과·남은 위험·미검증 조건을 나눈다.
03검증 대상은 도구 실행이 아니라 주장이다
- 주장의 단계서비스 시작·규칙 로드·특정 입력의 경보·실제 통신 차단은 서로 다른 검증 주장이다. 각 주장은 필요한 증거가 다르다.
- 단일 화면의 한계설치 완료 화면 하나로 수집·탐지·차단·저장·검색이 모두 성공했다고 말할 수 없다.
- 시험 조건시험 문서는 입력과 환경을 고정하고 예상 결과를 먼저 적는다. 도구 버전, 규칙 revision, 설정 hash, 입력 PCAP 또는 가상 로그가 있으면 같은 조건을 다시 만들 수 있다.
- 입력 고정같은 이름의 규칙도 변경되었을 수 있으므로 이름만 기록하는 것보다 바이트와 버전을 함께 남긴다.
04Source→Decode→Validation→Sink
- 입력 경로외부 입력은 decode·정규화·검증··업무 로직을 거쳐 ·OS command·파일·HTML 같은 sink에 도달한다. “특수문자를 넣었더니 에러가 났다”보다 어떤 처리 경계가 깨졌는지 설명하는 가설이다.
- Baseline정상 baseline을 먼저 기록하면 오류 상태를 원래 앱 동작과 구분할 수 있다. 하나의 입력 값만 바꾸고 응답·상태·로그를 비교하면 변화의 원인이 좁혀진다.
- 무해한 대조실제 비밀이나 운영 자료를 꺼내는 대신 가상 계정·교육 marker로 같은 경계를 입증할 수 있다.
05정적·동적·수동·자동의 두 축
- 정적·동적정적은 실행하지 않고 코드·바이너리·설정을 분석하는 것, 동적은 실행 중의 동작을 관찰하는 것이다. 수동·자동은 수행 방식이다.
- 수동·자동사람이 요청을 보내 보는 것은 수동 동적 시험이고 자동 코드 분석은 자동 정적 시험이므로 서로 같은 축으로 분류하지 않는다.
- 도구 역할CVE 조회는 공개 취약점 정보와 제품 조건을 대조하는 일이며 그 자체가 코드 정적 분석은 아니다. ·웹 스캐너·로그 분석기의 이름만으로 어느 범위를 검증했는지 알 수 없다.
- 실제 실행 범위실제 옵션·입력·대상 기능과 처리한 결과가 시험 범위를 정의한다.
06양성·음성·경계 표본
- 양성·음성Positive 표본은 기대한 조건을 만족하는 입력, negative 표본은 비슷하지만 만족하지 않는 정상 입력이다. 은 길이·빈 값·대소문자·구분자·시간 임계값처럼 파서와 규칙의 경계를 시험한다.
- 한 번의 탐지규칙 한 번의 경보만 보지 않고 모두 예상 결과와 비교해야 오탐과 미탐을 구분한다.
- URI 대조군예를 들어 /training-marker를 찾는 규칙은 해당 URI에 경보를 내고 정상 경로에는 내지 않아야 한다. 같은 문자열이 User-Agent에만 있을 때 URI 규칙이 반응하면 검사 버퍼 가정이 잘못된 것이다.
- 분할 조건입력 바이트가 세그먼트로 나뉜 PCAP은 재조립 조건까지 시험한다.
LEARN THROUGH PRACTICE
탐지 배치도와 혼동행렬로 시험의 정답 만들기
센서가 볼 수 있는 경로를 먼저 정하고, 양성·과 독립 정답을 사용해 탐지와 차단을 평가한다.
실습 구성과 전제
- 승인된 격리망의 테스트 클라이언트·보호 서버·센서를 사용한다. 외부 시스템을 시험 대상으로 삼지 않는다.
- 아래 혼동행렬 계산의 건수는 설명용 가상값이다. 배치도에 그려진 장비들이 실제로 해당 정확도를 달성했다는 뜻이 아니다.
센서가 보는 경로와 막을 수 있는 경로를 표시하기
- 배치도에서 클라이언트부터 보호 서버까지 실제 데이터가 지나는 링크를 추적한다. 인라인 는 통과 경로에 있지만 미러 포트의 는 복사된 패킷을 관찰할 뿐이다.
- 의 경보 유무와 서버 요청 도달 여부는 따로 측정한다. 둘을 같은 지표로 합치면 탐지는 했으나 차단하지 않은 경우를 잘못 성공 또는 실패로 분류하게 된다.
원본 크기로 보기 ↗- 그림은 Kali, 라우터, IPS-pfSense, 스위치와 DVWA·WebGoat 서버의 연결을 보여 준다. 시험 요청의 경로를 따라갈 수 있다.
- IDS-Snort3는 별도 센서로 표시되어 있다. 장비 이름만 보고 IPS와 같은 인라인 차단 위치라고 가정하지 않는다.
확인 기준센서 입력에서 시험 표식이 관찰되는지 먼저 확인한다. 입력 자체가 없으면 규칙 성능을 평가하기 전에 배치·미러링 문제부터 해결한다.
실제 정답과 도구의 예측을 교차시키기
- 양성은 평가할 사건이 실제로 존재하는 표본, 음성은 존재하지 않는 표본으로 정의한다. 경보가 나왔다는 이유만으로 그 표본을 양성으로 바꾸면 순환 평가가 된다.
- 격리 PCAP의 시험 번호·예상 사건 여부를 별도 목록으로 만들고, 탐지 결과는 rule SID와 시각으로 그 목록에 대응시킨다. 도구 출력과 정답 목록을 독립적으로 보관한다.
원본 크기로 보기 ↗- 행은 실제 Positive·Negative, 열은 예측 Positive·Negative로 나뉘며 TP·FN·FP·TN이 교차 위치에 놓인다.
- 실제 Positive인데 예측 Negative인 칸이 FN이다. 탐지되지 않은 공격을 정상 음성 TN으로 세면 재현율이 부풀려진다.
확인 기준모든 시험 번호가 네 칸 중 정확히 하나에 들어가야 한다. 경보가 여러 개 발생한 한 사건을 여러 으로 중복 집계하지 않는다.
가상 수치를 계산하고 임계값 수정의 부작용 비교하기
- 가상 양성 10건 중 8건 탐지, 음성 10건 중 1건 오탐이면 TP=8, FN=2, FP=1, TN=9다. 정밀도는 8/9, 재현율은 8/10, 오탐률은 1/10으로 분모가 다르다.
- 탐지 임계값을 낮춘 뒤에는 같은 정답 집합뿐 아니라 따로 남긴 검증 표본도 시험한다. 재현율이 높아져도 정상 작업에 경보가 늘거나 차단 지연이 생길 수 있다.
text가상 표본 20건 TP 8 + FN 2 = 실제 양성 10 FP 1 + TN 9 = 실제 음성 10 정밀도 8/9 ≈ 88.9% 재현율 8/10 = 80% 오탐률 1/10 = 10%화면의 혼동행렬 구조에 가상 건수를 넣은 계산 예. 실측 결과가 아니다.
확인 기준변경 전후에 정답 집합·시간 범위·센서 손실률을 동일하게 기록한다. 수치가 좋아졌다는 결론에는 어느 분모와 조건인지 함께 적는다.
실습에서 확인한 동작 원리
- 관측 위치가 잘못되면 규칙 정확도 평가도 의미가 없어진다.
- 정확도 하나보다 정밀도·재현율·오탐률과 탐지/차단 구분이 실제 운영 영향을 잘 설명한다.
07문법 검사와 데이터 경로 시험
- 문법 검사 -T나 -T는 설정·룰을 파싱할 수 있는지 검사한다. logtest는 decoder와 rule 판단을 검증한다.
- 저장까지의 경로 config test는 파이프라인 구성을 확인한다. 이 검사를 통과해도 실제 인터페이스·파일·전송·권한·대시보드의 연결이 자동 검증되지는 않는다.
- 고정 자료저장된 PCAP과 비식별 로그 샘플은 입력을 재현하는 좋은 수단이다. 이후 작은 live 입력으로 센서 위치와 source 파일의 읽기, 중앙 전송, 최종 문서까지 같은 시험 ID가 이동하는지 연결하면 어느 단계의 성공인지 분명해진다.
08ALPACA 전송의 실패 조건
- 전송 경계프로젝트 설계는 queue·배치·재연결·offset 복구를 포함한다. 정상 전송 한 번 외에도 헤더가 나뉘어 도착함, 두 프레임이 합쳐 도착함, payload 중간 EOF, 길이와 count 불일치, 재전송 중복, 회전 직전 기록 등을 생각해야 한다.
- 정상 실패 조건이들은 ·파일이 실제로 제공하는 경계와 앱이 가정한 경계의 차이를 시험한다.
- 기대 결과각 시험은 수신 레코드 수·순번·원본 hash·저장 결과를 대조한다. “재연결 성공”은 연결 상태이고 “모든 이벤트가 중복 없이 저장됨”은 자료 상태다.
- 손실·중복 기준서로 다른 합격 조건을 하나로 묶지 않아야 복구 기능의 한계를 알 수 있다.
09관측량과 지표의 분모
- 지표 종류패킷 입력 수·drop·경보 수·원본 이벤트 수·정규화 성공 수·저장 성공 수는 다른 단계의 수량이다. 수집100건 중 파싱90건과 저장90건이라면 저장 계층의 성공률100%만 표시하면 앞 단계10건 손실이 숨겨진다.
- 단계별 분모각 단계의 입력·출력·실패·중복을 분리한다.
- 시간 지표성능 수치도 입력 분포·크기·시간·하드웨어·설정이 있어야 비교할 수 있다. 프로젝트의6패킷 timestamp 비교는 소수 표본 정확성이고 처리량 시험이 아니다.
- 표본과 일반화큰 숫자 하나보다 지연 분포와 가장 오래 기다린 항목, 큐 상한 초과 정책을 설명할 수 있어야 한다.
원리 심화
10파이프라인 검증의 보존식과 독립 정답
- 모집단 고정입력 ID 집합·정상/거부 기대값·재전송 목록을 시험 전에 정한다. 시스템 출력으로 정답 집합을 다시 만들지 않는다.
- 결과 분류저장·거부·중복 제거·대기·설명되지 않은 누락을 서로 겹치지 않는 결과로 구분하면 총개수의 이동을 추적할 수 있다.
- 개수와 내용건수 보존이 맞아도 필드가 잘리거나 다른 이벤트로 바뀔 수 있다. ID·길이·선택 필드·해시 등 의미 있는 내용을 대조한다.
- 경계 조건길이 0·최대 허용·최대+1, 완전 프레임·부분 프레임·연결 종료처럼 실제 분기가 갈리는 입력을 선택한다.
- 검증 주장문법 통과·기능 정확성·복구·성능·운영 적합성은 서로 다른 주장이다. 한 시험의 결과를 모든 주장에 적용하지 않는다.
예제로 추적
11가상 103건 수신의 보존식 계산
- 원본 집합고유 원본 100건 중 98건은 유효하고 2건은 형식 오류라고 가정한다. 유효한 원본 세 건을 한 번씩 추가 재전송한다.
- 수신 총량원본 100+재전송 3=103건이다. 고유 ID 수 100과 전달 횟수 103은 다른 지표다.
- 예상 결과정상 고유 저장 98건·중복 제거 3건·형식 거부 2건이면 98+3+2=103으로 분류가 맞는다.
- 불일치 사례저장 97·중복 3·거부 2만 보이면 합계 102다. 대기 중 1건인지 손실 1건인지 ID별 상태로 좁혀야 한다.
- 내용 대조98건이라는 총계가 맞아도 예상 ID 하나가 빠지고 다른 ID가 중복 저장될 수 있다. 집합 차이와 필드 내용까지 비교한다.
검증·예외
12시험이 통과했는데 운영에서 깨지는 이유
- 입력 편향짧은 ASCII 정상 표본만 시험했다면 ·최대 크기·부분 전송 경계는 검증되지 않았다. 실제 파서의 분기 조건을 기준으로 표본을 고른다.
- 실패 시점종료를 항상 안전한 지점에서만 재현하면 checkpoint·ACK 사이의 경쟁 구간을 놓친다. 상태 전환 전후를 구분한다.
- 시간 비교처리시간 평균만 보면 긴 꼬리·적체를 놓칠 수 있다. 표본 수·측정 구간·상위 지연·미완료 건수를 함께 남긴다.
- 환경 범위도구 버전·OS·권한·디스크·네트워크 조건을 보존한다. 다른 환경에서 같은 결과가 나오는지는 별도 재현의 대상이다.
13수정 후 원래 기능도 다시 시험한다
- 수정 효과취약한 입력이 거부되는 것과 정상 기능이 유지되는 것은 별개다. prepared query로 바꾼 뒤 정상 따옴표가 든 이름을 조회할 수 있는지, 소유권 검사 뒤 본인 자료는 계속 열리는지, 규칙 뒤 정상 form이 막히지 않는지를 같이 비교한다.
- 정상 회귀기존 문자열 한 개를 막았지만 위험한 API가 남아 있다면 근본 수정으로 단정하지 않는다. 미해결·부분 해결·해결·위험 수용은 기술 관찰과 운영 판단을 구분한 상태다.
- 재현 기록재시험 결과에는 수정 버전·배포 범위·새 증거·남은 제약이 있어야 한다.
14증거와 설명 가능한 역량
- 역량 설명좋은 실습 결과는 화면과 함께 “어떤 입력이 어느 구성요소를 거쳐 어떤 필드를 만들었고, 왜 이 규칙이 일치했는가”를 설명한다. 원본·정규화 값·규칙 revision·결과 사이를 연결할 수 있으면 도구 화면을 넘어 동작 원리를 이해했다는 근거가 된다.
- 실습 증거 구분시험 계획과 실제 실행 결과를 구분한다. 확보한 PCAP·로그·설정과 미실행 후속 시험을 나누어 기록하면 발표·면접·에서도 경험 범위를 정확히 설명할 수 있다.
설명과 함께 보는 보조 도식
처리 과정
표본 ID를 따라 검증하는 경로
기대 결과와 실제 증거를 비교하는 모식도다. 시험의 관찰 지점과 중복 제거 단위가 명확해야 한다.
01시험 표본ID와 기대 결과를 가진다.
02관찰·탐지 센서입력 도달과 규칙 판정을 기록한다.
03수집기전달·실패·재시도를 기록한다.
04중앙 저장조회 가능한 결과와 저장 시각을 가진다.
05판정 비교표본별 기대 결과와 실제 결과를 대조한다.
01
관찰 지점 도달 확인
표본이 센서에 보였는지 먼저 확인한다.
- 단위
- 고유 표본 ID
전체 단계를 한 번에 읽기
- 01
관찰 지점 도달 확인
표본이 센서에 보였는지 먼저 확인한다.
- 단위
- 고유 표본 ID
- 02
경보 전달
판정 시각과 전달 결과를 연결한다.
- 03
저장 결과 확인
전송 성공과 조회 가능한 저장 결과를 구분한다.
- 04
기대 결과와 대조
하나의 표본에 중복 경보가 있어도 성공 표본은 한 번 집계한다.
- 지표
- TP·FP·FN·TN
- 별도 기록
- 누락·중복·구간별 지연
학습 확인
이해했는지 확인하기
- 요청·패킷·경보·서버 로그를 같은 시험 ID로 연결한다.
- 정상 대조군과 탐지·누락·중복·지연의 분모를 기록한다.
- 수정 후 재시험과 복구 검증 결과를 근거로 완료를 판단한다.