[C언어] Data Conversion Tool - RawVera

 

 

◎ Timestamp 탭이 하는 일

  • RawVera의 Timestamp 탭은 포렌식에서 자주 마주치는 날짜·시간 데이터를 서로 다른 형식으로 바꿔 주는 변환기입니다. 
  • 이미지에서 보이듯이 위쪽은 날짜 문자열을 다양한 타임스탬프로 Encode하는 영역이고, 아래쪽은 숫자·16진수·텍스트로 들어온 값을 다시 날짜로 풀어 보는 Decode to Date 영역입니다. 
  • 단순 변환기처럼 보이지만, 실제로는 Windows Filetime, Unix time, Apple 계열 시간, GPS, Chromium, OLE Automation, Twitter Snowflake, UUID 타임스탬프까지 폭넓게 다룹니다.

 

◎ 입력 방식과 화면 구성

  • 이 탭의 장점은 입력 형식이 매우 다양하다는 점입니다. 
  • 상단 Date Input에는 yyyy-MM-dd HH:mm:ss.ff 같은 패턴을 기준으로 문자열을 넣을 수 있고, Pattern 드롭다운에서 자리수와 표기 방식을 바꿀 수 있습니다. 
  • 하단에서는 Value Input Format으로 숫자형, 16진수 little-endian, 16진수 big-endian, 텍스트, Base64를 고를 수 있으며, Value Text Input 칸에 직접 값을 넣으면 됩니다. 
  • 즉, 사람이 읽는 시간을 기계가 쓰는 값으로도, 반대로 포렌식 덤프 속 값도 바로 다룰 수 있습니다.

 

◎ 엔코딩 기능 살펴보기

  • 상단의 Encode 기능은 현재 시간이나 직접 입력한 날짜를 여러 타입으로 바꾸는 역할을 합니다. 
  • 코드에서는 gStartupTime과 정밀 프랙션 값을 이용해 날짜를 조립하고, 패턴에 따라 yyyy-MM-dd, yyyy-MM-dd HH:mm, yyyy-MM-dd HH:mm:ss, 초 이하 소수점 자리수까지 확장한 형식을 생성합니다. 
  • 또한 요일 표기, AM/PM 표기, T 구분자 형식, .NET 스타일 타임스탬프까지 만들어 줄 수 있어 보고서용 문자열 생성에도 유용합니다.

 

◎ 시간대 처리와 정밀도

  • 프랙션 처리도 꽤 세밀합니다. 코드에서는 100ns 단위의 정밀 시간을 기준으로 소수점 자릿수를 2자리부터 7자리까지 잘라 보여 주거나, 필요한 경우 반올림한 결과를 생성합니다. 
  • 이 때문에 단순히 초만 보는 것이 아니라 밀리초, 마이크로초 수준까지 고려한 날짜 표현이 가능합니다. 
  • 실제 로그에서 2026-06-21 18:37:46.08처럼 짧은 소수점이 필요한 경우에도 맞게 대응합니다.

 

◎ 실무 활용 포인트

  • 중간의 Time Zone 옵션은 이 탭의 실무 가치를 크게 올려 줍니다. 
  • 상단 Encode 쪽과 하단 Decode 쪽 모두에서 Time Zone Adjustment를 선택할 수 있고, No TimeZone Adjustment뿐 아니라 지역 시간대나 UTC 기준 해석을 맞춰 볼 수 있습니다. 
  • 코드에서는 로컬 타임존 오프셋을 계산해 UTC와 지역 시각을 바꾸고, 출력 샘플에도 그 영향이 반영됩니다. 
  • 시간대가 섞인 로그를 다룰 때 이 기능이 없으면 해석이 틀어지기 쉬운데, 이 탭은 그 부분을 꽤 신경 쓴 편입니다.

 

 

◎ 디코딩 기능 살펴보기

  • 하단 Decode to Date 영역은 포렌식 실무에서 특히 자주 쓰이실 만합니다. 
  • Windows Filetime, Unix seconds, Unix milliseconds, Unix microseconds, Apple Absolute Time, Apple HFS/HFS+, Chromium microseconds/milliseconds/seconds, GPS System Time, GPS Time, Microsoft Ticks, Nokia Series 30, OLE Automation, WebKit WallTime 같은 값들을 날짜로 되돌립니다. 
  • 숫자 입력만 넣어도 후보 포맷을 추정하고, 결과를 여러 형식으로 나열해 주는 방식이라 “이 값이 뭘 의미하는지” 빠르게 확인하기 좋습니다.

 

◎ 지원 포맷과 특수 형식

 - 특수 포맷 판별 기능도 눈여겨볼 부분입니다. 

  • 코드에는 입력값의 범위, 길이, 문자 패턴을 보고 자동으로 별도 형식을 추정하는 로직이 들어 있습니다. 
  • 예를 들어 아주 큰 정수는 Twitter Snowflake로, 1601년 기준 범위에 맞는 값은 Windows Filetime으로, 1970년 전후나 이후 범위는 Unix time 계열로, 특정 길이의 16진수 값은 UUID timestamp나 SYSTEMTIME, MS-DOS 형식, BCD 형식으로 분류합니다. 
  • 즉, 사용자가 정확한 타입을 모르는 상태에서도 후보를 좁히는 데 도움이 됩니다.

 

 - 16진수 입력은 little-endian과 big-endian을 모두 지원합니다.

  • 코드에는 바이트 순서를 뒤집어 읽는 함수와 64비트·32비트 읽기 로직이 따로 있고, 포맷별로 LE와 BE 결과를 각각 출력합니다.
  • 예를 들어 같은 8바이트 값이라도 Windows Filetime LE와 BE, Chromium LE와 BE, Unix seconds LE와 BE처럼 서로 다른 해석 결과를 비교할 수 있습니다.
  • 덕분에 메모리 덤프나 네트워크 페이로드처럼 엔디안이 헷갈리기 쉬운 데이터에 강합니다.

 

 - 텍스트 입력도 단순 문자열만 보는 것이 아닙니다.

  • 코드에서는 Google URL EI 파라미터, Gmail MIME Boundary, Seagate Date Code, Windows Filetime을 텍스트 형태로 해석하는 루틴을 따로 둡니다.
  • 예를 들어 Base64처럼 보이는 짧은 문자열이나, 하이픈이 들어간 UUID 형태 문자열, 혹은 특정 규칙의 5자리 날짜 코드까지 자동 판별합니다.
  • 실제 악성코드 분석이나 로그 분석에서 “숫자처럼 보이지만 사실은 다른 코드”를 만나는 경우에 유용합니다.

 

◎ 정렬, 판별, 보조 로직

 - 또 하나의 실용 포인트는 결과 정리 방식입니다. 

  • 코드에서는 결과 라인을 비교·정렬하는 로직이 있고, 라벨에서 공통 접미사나 분류어를 제거해 비교하기 쉽게 만듭니다. 
  • 그래서 출력창에 쌓이는 다양한 포맷 결과를 보기 좋게 정렬할 수 있고, 같은 계열의 결과를 나란히 비교하기가 쉬워집니다. 
  • 단일 변환 결과를 보여 주는 도구가 아니라, 여러 후보를 한 번에 놓고 보는 분석 도구에 가깝습니다.

 

 - 상단 Output Sample과 하단 결과 영역은 사용자를 배려한 구조입니다.

  • Encode를 실행하면 바로 예시 문자열이 바뀌고, Decode를 실행하면 숫자나 원시 값이 사람이 읽을 수 있는 날짜로 풀립니다.
  • 코드에서는 입력 예시를 패턴에 맞춰 자동 생성하기 때문에, 현재 선택한 포맷이 어떤 모양인지 바로 감을 잡을 수 있습니다.
  • 초보자도 실수 없이 포맷을 익히기 좋고, 숙련자도 빠르게 값 변환을 반복할 수 있습니다.

 

◎ 마무리

  • 정리하면 RawVera Timestamp 탭은 날짜 문자열 입력, 패턴 선택, 엔코딩, 디코딩, 시간대 보정, 소수점 정밀도 처리, 숫자/16진수/텍스트/Base64 입력, 엔디안 변환, 특수 포맷 자동 판별, 결과 정렬, 샘플 출력까지 갖춘 포렌식용 시간 변환기입니다. 
  • 단순한 날짜 계산기가 아니라, 여러 로그와 덤프에서 섞여 들어오는 시간 값을 빠르게 해석하고 서로 다른 형식으로 대응시키는 실전 도구라고 보시면 됩니다.

 

 

 

반응형

[C언어] Data Conversion Tool - RawVera

 

 

◎ Sigma 탭이 하는 일

  • RawVera의 Sigma 탭은 이벤트 로그와 일반 로그를 Sigma 규칙으로 빠르게 검증하고, 결과를 탐지 목록과 시각화 포맷으로까지 이어 주는 분석용 작업 공간입니다. 
  • 이미지에서 보이듯이 상단에는 Log file/folder path, Sigma Rule path, Python path, sigma-cli path가 있고, 그 아래에는 Start, Stop, Clear, Navigator Export, Rule Converter, Rule Editor 버튼이 정리되어 있습니다.
  •  즉, 입력 경로 지정부터 규칙 편집, 실행, 결과 내보내기까지 한 탭에서 끝내는 구조입니다.

 

◎ 입력 경로와 환경 설정

  • 이 탭의 첫 번째 특징은 입력 소스가 매우 넓다는 점입니다. 
  • 로그 파일 하나만 넣는 것이 아니라 폴더 단위도 받을 수 있고, EVTX를 별도 버튼으로 불러오는 흐름도 지원합니다. 
  • 코드에는 EVTX를 현재 PC에서 수집하거나, 특정 폴더의 EVTX를 XML로 변환하거나, EVTX 파일 자체를 복사하는 모드가 모두 들어 있습니다. 
  • 덕분에 분석자는 원본 로그가 어디에 있든 같은 화면에서 다룰 수 있습니다.

 

◎ 분석 시작과 중지 흐름

 - 분석을 시작하기 전에는 Python 경로와 sigma-cli 경로를 제대로 잡아 두는 것이 중요합니다. 

  • 이미지처럼 Python path와 sigma-cli path가 별도 칸으로 나뉘어 있고, 오른쪽의 Auto Detect 버튼으로 sigma-cli 위치를 자동으로 찾을 수 있습니다. 
  • 코드에서는 python -m pip show sigma-cli 결과를 이용해 설치 위치를 찾고, 필요하면 sigma.exe 위치도 따라 찾아갑니다. 
  • 환경 구성이 복잡해도 이 버튼 하나로 출발점을 잡기 쉬운 편입니다.

 

 - Start 버튼을 누르면 내부적으로 분석 스레드가 돌아가면서 로그와 규칙을 읽고 매칭을 수행합니다.

  • 코드에서는 실행 중 상태를 따로 관리하고, Stop 버튼으로 중단할 수 있게 되어 있습니다.
  • 분석이 시작되면 결과 리스트는 초기화되고, 진행 상태는 Progress와 Status 영역에 표시됩니다.
  • 실무에서는 긴 로그 파일을 돌릴 때 중지 제어가 꽤 중요한데, 이 탭은 그 점을 잘 챙기고 있습니다.

 

 - 이 탭의 핵심은 Sigma 규칙 적용입니다.

  • Sigma Rule path에는 단일 규칙 파일뿐 아니라 폴더도 지정할 수 있고, 분석 시 그 경로 아래 규칙들을 읽어 들입니다.
  • 코드에서는 YAML 규칙을 파싱해 title, id, level, description, detection 조건을 추출하고, 필드 조건은 contains, endswith, startswith, exact, all-of 방식으로 비교합니다.
  • 즉, 단순 문자열 검색이 아니라 Sigma의 구조를 그대로 따라가는 분석에 가깝습니다.

 

◎ 규칙 변환기와 규칙 편집기

  • 규칙 편집 기능도 매우 중요합니다. 
  • Rule Editor 버튼을 누르면 별도의 편집 창이 열리고, 리치 에디트 기반으로 Sigma YAML을 직접 수정할 수 있습니다. 
  • 코드에서는 자동완성처럼 동작하는 목록도 제공하고, 저장 전에 필수 필드를 검사합니다.
  •  title, id, status, logsource, detection, tags, references, falsepositives 같은 항목이 비어 있으면 경고가 뜨며, 저장 여부를 선택적으로 제어할 수 있습니다. 
  • 초보자도 규칙 문법을 덜 헷갈리게 만들어 둔 점이 좋습니다.

 

 

◎ 시그마 CLI 자동 탐지와 실무 팁

  • Rule Converter 기능은 시그마 생태계를 다른 SIEM 문법으로 옮길 때 유용합니다. 
  • 이미지에서 보이듯이 Rule Converter 버튼이 따로 있고, 코드에서는 sigma-cli를 이용해 backend별로 규칙을 변환합니다. 
  • converter 창에서는 backend 선택과 pipeline 선택이 가능하며, 어떤 백엔드를 사용할 수 있는지 자동으로 탐지합니다. 
  • 즉, Sigma 룰을 원본 그대로 보는 데서 끝나지 않고 Splunk, Elastic, Kusto 같은 대상 문법으로 내려보낼 수 있는 흐름입니다.

 

◎ 결과 목록과 필터 기능

 - 결과 표는 탐지 분석의 중심입니다. 

  • 컬럼은 Timestamp, Technique ID, EventID, Severity, Rule Name, Hostname, Description으로 구성되며, 탐지 결과가 행 단위로 쌓입니다. 
  • 리스트뷰는 가상 모드로 동작해 대량 결과에도 비교적 안정적이고, 정렬도 지원합니다. 
  • Timestamp는 필요 시 로컬 시간으로 변환되고, Description은 원문 요약을 바탕으로 표시되므로 수백 건 이상의 결과도 읽기 편합니다.

 

 - Severity Filter는 실제 업무에서 특히 자주 쓰일 기능입니다.

  • All, Critical, High, Medium, Low 라디오 버튼으로 심각도만 골라 볼 수 있고, 필터를 바꾸면 목록이 다시 재구성됩니다.
  • 코드에서는 severity 값을 기준으로 뷰 인덱스를 다시 만들며, 제목 표시줄과 상태 메시지에도 현재 필터 결과가 반영됩니다.
  • 빠르게 위험도가 높은 이벤트만 추릴 때 매우 편리합니다.

 

 - 헤더 필터도 강력합니다.

  • 각 컬럼에는 텍스트 필터를 걸 수 있고, exact 매칭과 부분 문자열 매칭을 구분해서 적용할 수 있습니다.
  • 예를 들어 특정 Hostname, Rule Name, EventID, Technique ID만 보고 싶을 때 컬럼 단위로 좁힐 수 있으므로, 결과가 많을수록 더 빛나는 기능입니다.
  • 단순 정렬보다 한 단계 더 세밀하게 결과를 다루게 해 준다는 점이 장점입니다.

 

◎ Navigator, JSON·CSV 내보내기

 - Navigator Export는 MITRE ATT&CK Navigator와 바로 연결되는 출력입니다. 

  • 코드에서는 detection result를 JSON으로 저장해 Technique ID별 점수와 색상을 넣고, 중복 Technique ID는 자동으로 한 번만 반영합니다. 
  • Severity에 따라 critical, high, medium, low를 각각 다른 점수와 색으로 바꾸기 때문에, 결과를 맵 형태로 시각화하기 좋습니다. 
  • 분석 후 바로 공격 기법 맵을 만들고 싶을 때 아주 실용적입니다.

 

 - CSV Export도 현장형 기능입니다.

  • UTF-8 BOM이 붙은 CSV로 저장되며, Timestamp, Technique ID, EventID, Severity, Rule Name, Hostname, Description 순서로 정리됩니다.
  • Excel에서 바로 열기 쉽게 되어 있고, 현재 필터가 적용된 상태의 목록만 뽑아낼 수 있습니다.
  • 즉, 전체 결과를 보관하는 용도뿐 아니라 보고서용 정리에도 적합합니다.

 

◎ EVTX 가져오기 기능

 - Get EVTX 버튼은 이 탭을 더 강하게 만들어 주는 기능입니다. 

  • 코드에는 현재 PC에서 EVTX를 수집하는 모드, EVTX 폴더를 XML로 변환하는 모드, EVTX 파일을 복사하는 모드가 모두 구현되어 있습니다. 
  • 관리자 권한이 필요한 경우 상승을 유도하고, 작업이 끝나면 로그에 진행 상황과 저장 위치를 남깁니다. 
  • 외부에서 로그를 가져오는 것만이 아니라, 직접 확보하는 전처리 기능까지 연결한 셈입니다.

 

 - 화면 하단의 Analysis Log도 무시하면 안 됩니다.

  • 이 영역에는 규칙 로딩, sigma-cli 탐지, 변환 성공 여부, EVTX 수집 상태, 오류와 경고가 순서대로 기록됩니다.
  • 분석이 왜 멈췄는지, 어떤 경로가 빠졌는지, 어떤 규칙 파일이 문제인지 바로 확인할 수 있어 디버깅에 유리합니다.
  • 이런 로그가 있어야 탭 하나로 끝까지 분석 작업을 이어 가기 쉽습니다.

 

◎ 마무리

  • 정리하면 RawVera Sigma 탭은 로그/폴더 입력, Sigma 규칙 로딩, EVTX 수집 및 변환, sigma-cli 자동 탐지, Rule Editor, Rule Converter, 분석 실행/중지, 심각도 필터, 컬럼 필터, 결과 리스트, Analysis Log, Navigator JSON Export, CSV Export까지 갖춘 통합형 Sigma 분석 탭입니다. 
  • 단순 매칭 도구가 아니라, 규칙 작성부터 검증, 변환, 시각화, 보고서 저장까지 한 번에 묶은 실전용 구성이라고 보시면 됩니다.

 

 

 

반응형

[C언어] Data Conversion Tool - RawVera

 

 

◎ FakeDNS 탭이 하는 일

  • RawVera의 FakeDNS 탭은 단순한 DNS 서버가 아니라, 악성 도메인 유도와 관찰, 분석, 기록, 복구까지 함께 처리하는 실전형 도구입니다. 
  • 이미지에서 보이듯 상단에는 Start, Stop, Clear, Apply Rules와 File, Rules, Analysis, Tools, Settings 메뉴가 있고, 중앙에는 도메인·응답·PID·Tag를 보여 주는 목록과 하단 상세 로그 창이 배치되어 있습니다. 
  • 즉, DNS 요청을 받아 응답하는 동시에 “왜 이 도메인이 들어왔는지”를 함께 분석하는 구조입니다.

 

◎ 시작과 중지, 실시간 캡처 흐름

  • 이 탭의 기본 동작은 매우 분명합니다. 
  • Start를 누르면 로컬에서 UDP DNS 리스너가 올라가고, Stop으로 종료하며, Clear로 현재 목록과 상세 내용을 정리합니다. 
  • 코드에서는 실행 상태를 별도 스레드로 처리하고, 상태바에는 쿼리 수와 suspicious 수, 그리고 현재 모드가 표시됩니다. 
  • 상단의 Apply Rules는 체크박스 형태로 제공되어, 로드한 규칙을 실제 응답 처리에 적용할지 바로 제어할 수 있습니다.

 

◎ 규칙 적용과 파일 관리

 - FakeDNS의 가장 중요한 기능은 규칙 기반 응답 생성입니다. 

  • 규칙은 패턴, 응답값, QType, Action, Priority, Enabled로 구성되며, NXDOMAIN, FAKE, PROXY 같은 동작을 지정할 수 있습니다. 
  • 예를 들어 특정 도메인 패턴은 127.0.0.1이나 지정 IP로 돌려주고, 어떤 규칙은 아예 NXDOMAIN으로 막으며, 또 어떤 규칙은 상위 DNS로 넘기는 프록시 모드로 처리할 수 있습니다. 
  • 이 구조 덕분에 분석자는 실제 감염 체인의 통신 패턴을 안전하게 관찰할 수 있습니다.

 

 - QType 지원도 꽤 넓습니다.

  • 코드에서는 A, AAAA, CNAME, SOA, PTR, MX, TXT, NS, ANY 등을 다루며, 각 타입에 맞는 응답 레코드를 직접 생성합니다.
  • A는 IPv4, AAAA는 IPv6 루프백, MX는 localhost, TXT는 고정 문자열, PTR은 fakedns.local 같은 방식으로 응답을 구성합니다.
  • 단순히 “가짜 IP를 반환한다” 수준이 아니라, DNS 레코드 형식 자체를 맞춰 응답하기 때문에 테스트와 유도 분석에 쓰기 좋습니다.

 

◎ 분석 메뉴와 고급 기능

  • 상단의 Apply Rules 체크와 함께, Rules 메뉴는 FakeDNS의 운영 중심이라고 보셔도 됩니다. 
  • Rule Loading으로 파일에서 규칙을 불러오고, Rule Editor에서 새 규칙을 추가하거나 수정하며, Save Rule로 현재 규칙을 저장할 수 있습니다. 
  • 코드상 규칙 파일은 INI 형식으로 저장되며, Count와 각 Rule 섹션에 Pattern, Response, QType, Action, Priority, Enabled가 기록됩니다. 
  • 여러 분석 세션에서 동일한 룰셋을 재사용하기 쉬운 구조입니다.

 

◎ 설정 창에서 조절할 수 있는 것들

  • Settings 메뉴에서는 DNS 서비스 동작에 필요한 핵심 값을 조절할 수 있습니다. 
  • Listen Port를 바꿀 수 있고, Upstream DNS Proxy를 켜서 외부 DNS 서버로 넘길 수도 있으며, Upstream Server와 Timeout도 설정 가능합니다. 
  • Log Path를 지정하면 세션 로그 저장 위치가 정해지고, Auto Save Session과 Interval로 자동 저장 주기를 조절할 수 있습니다. 
  • PCAP Capture를 켜면 DNS 패킷 자체를 pcap으로 저장할 수 있고, Log Format은 Plain Text, JSONL, Both 중에서 선택 가능합니다.

 

◎ 로그, 헥스 덤프, 상태표시

 - 로그 저장 방식은 실무 친화적입니다. 

  • 코드에서는 .log, .jsonl, .pcap 파일을 세션 단위로 생성하며, 세션 이름에는 날짜와 시각이 들어갑니다. 
  • Plain Text는 사람이 읽기 좋고, JSONL은 후속 파이프라인 처리에 편하며, PCAP은 패킷 재분석이 필요할 때 유용합니다. 
  • 즉, 단순히 화면만 보는 것이 아니라 증적과 재검토까지 고려한 설계입니다.

 

 - 도메인 목록 표시는 이 탭의 핵심 시각화입니다.

  • 컬럼은 No, Time, Domain, Type, Response, PID, Tag로 구성되며, 들어온 요청마다 한 줄씩 쌓입니다.
  • Tag에는 NXDOMAIN, FAKE, PROXY, SINK, DGA?, C2? 같은 판단 결과가 들어가고, PID도 있으면 함께 표시됩니다.
  • 그래서 감염 의심 호스트가 어떤 도메인에 접근했는지, 어떤 타입의 요청이었는지, 어떤 방식으로 처리되었는지 한눈에 보실 수 있습니다.

 

 - 하단의 상세 창은 선택한 항목의 원시 패킷과 헥스 덤프를 보여 줍니다.

  • 코드에서는 선택된 항목의 raw DNS 패킷이 있으면 hex dump로 출력하고, 없으면 간단한 안내 문구를 보여 줍니다.
  • 덕분에 상단 리스트에서 이상 징후를 찾은 뒤, 바로 아래에서 패킷 레벨까지 내려가 확인할 수 있습니다.
  • 분석 흐름이 화면 안에서 끊기지 않는 점이 장점입니다.

 

 - Tools 메뉴는 단순 부가 기능이 아니라 분석 보조 기능 묶음에 가깝습니다.

  • FakeDNS는 여기서 Baseline, DGA Analysis, C2 Detection, Fake Service Mapping을 제공합니다.
  • Baseline은 이전과 이후의 캡처를 비교하는 방식으로 쓰이며, DGA Analysis는 도메인 엔트로피와 길이를 계산해 랜덤성 높은 도메인을 찾습니다.
  • C2 Detection은 별도 목록으로 의심 도메인을 모아 보고, Fake Service Mapping은 도메인에 대해 응답 IP와 포트를 매핑하는 테스트용 화면을 띄웁니다.

 

◎ DGA·C2·Baseline·Fake Service

 - DGA 분석은 실제로 꽤 유용합니다. 

  • 코드에서는 문자열 엔트로피를 계산하고, 길이와 숫자/하이픈 비율까지 함께 봐서 High, Medium, Normal처럼 점수를 나눕니다. 
  • 엔트로피가 높고 길이가 긴 무작위형 도메인은 DGA 가능성으로 분류되며, 결과가 리스트로 정리됩니다. 
  • 악성코드가 생성하는 랜덤 도메인을 빠르게 골라내야 할 때 특히 도움이 됩니다.

 

 - C2 탐지 쪽은 규칙 기반 판단과 통계적 판단이 함께 들어갑니다.

  • NXDOMAIN 반복, FAKE 응답, PROXY 패턴, 그리고 엔트로피가 높은 도메인을 묶어 suspicious로 처리할 수 있도록 구성되어 있습니다.
  • 또한 결과 행의 색상도 다르게 표시되어, 위험도가 높거나 DGA로 추정되는 항목은 목록에서 바로 눈에 들어오게 만들어 둔 점이 좋습니다.

 

 - Baseline 기능은 비교 분석용으로 이해하시면 됩니다.

  • 시작 전과 후의 목록 수를 기억해 두고, 이후 새로 추가된 항목을 살펴보는 형태입니다.
  • 코드에는 Before, After, Diff를 별도 창에서 확인하고 파일로 저장하는 흐름도 보입니다. 정적인 룰 매칭만으로는 놓칠 수 있는 “새로 생긴 이상 트래픽”을 찾는 데 적합합니다.

 

 - Fake Service Mapping은 테스트 환경에서 상당히 쓸모가 있습니다.

  • 특정 도메인을 어떤 IP와 포트로 응답할지 직접 지정할 수 있어, 악성코드가 특정 서비스에 접속한다고 가정한 상황을 안전하게 재현하기 좋습니다.
  • 분석자가 샘플 동작을 유도하거나, 특정 응답 조건에서만 달라지는 로직을 확인할 때 활용도가 높습니다.

 

◎ HOSTS·DNS·캐시 처리

  • 실제로 운영할 때 중요한 부분도 잘 갖춰져 있습니다. 
  • Start 전에 로깅 경로가 없거나 권한이 부족하면 경고를 띄우고, 관리자 권한이 필요하면 UAC 상승을 유도합니다. 
  • 시작 후에는 HOSTS 파일 블록 영역을 삽입해 로컬 DNS 효과를 보강하고, Stop 시에는 HOSTS 복원, DNS 복구, 캐시 플러시까지 함께 수행합니다. 
  • 즉, 분석 후 환경 원복까지 고려한 구조입니다.

 

◎ 마무리

  • 정리하면 FakeDNS 탭은 DNS 리스너 실행, 규칙 적용, 응답 조작, 파일 저장, 세션 로그, pcap 캡처, 설정 관리, 헥스 덤프, Baseline, DGA Analysis, C2 Detection, Fake Service Mapping, HOSTS 수정, DNS 복구, 캐시 플러시를 모두 포함한 통합 분석 탭입니다. 
  • 단순한 “가짜 DNS”가 아니라, 악성 도메인 분석과 유도 응답, 증적 저장, 사후 복구까지 연결된 실전형 기능이라고 보시면 됩니다.

 

 

 

반응형

[C언어] Data Conversion Tool - RawVera

 


◎ Vol 탭이 맡는 역할

  • RawVera의 Vol 탭은 메모리 포렌식 작업을 한곳에 모아 놓은 실전형 도구입니다. 
  • 단순히 vol.py를 실행하는 수준이 아니라, Python 경로 설정, Volatility 2·3 설치 보조, 플러그인 목록 구성, 심볼 파일 관리, 덤프 파일 지정, 결과 확인과 내보내기까지 한 화면에서 이어집니다. 
  • 이미지에서도 보이듯이 상단에는 Python 경로와 Volatility 스크립트 경로를 입력하는 칸이 있고, 가운데에는 버전 선택과 OS 선택, 하단에는 플러그인과 옵션, 결과 리스트가 배치되어 있습니다.

 

◎ Python·Volatility 경로 설정

  • 이 탭의 첫 번째 핵심은 실행 환경을 자동으로 갖추도록 돕는 점입니다. 
  • Volatility 2용 Python 2 경로와 Volatility 3용 Python 3 경로를 각각 따로 지정할 수 있고, 옆의 Install 및 Install 2 버튼으로 설치 절차를 안내받을 수 있습니다. 
  • 코드에서는 Python 실행 파일을 찾거나, 설치 프로그램을 관리자 권한으로 실행하거나, 필요한 경우 파이썬 라이브러리까지 추가로 설치하는 흐름을 지원합니다. 
  • 즉, 분석만 하는 도구가 아니라 사전 준비까지 보조해 주는 탭입니다.

 

◎ Volatility 2와 3의 차이

 - Volatility 2와 Volatility 3는 선택 방식부터 다릅니다. 

  • 버전 콤보에서 Volatility 2 또는 Volatility 3를 고르면, 내부적으로 관련 캐시와 UI가 바뀌고, 플러그인 목록과 심볼/프로파일 처리 방식도 달라집니다. 
  • Volatility 2는 주로 profile 기반으로 운영되고, Volatility 3는 symbol file 기반으로 움직입니다. 
  • 그래서 같은 메모리 덤프라도 어떤 버전을 쓰느냐에 따라 준비물이 달라지는데, 이 탭은 그 차이를 UI로 명확하게 분리해 줍니다.

 

 - OS 선택도 중요합니다.

  • Windows, Linux, macOS 중 하나를 선택하면 그에 맞는 플러그인과 심볼 조건이 반영됩니다.
  • 코드에서는 Windows용 프로파일, Linux 및 macOS용 심볼 구조를 따로 관리하며, macOS 플러그인에는 자동 옵션을 붙여 주는 보조 로직도 들어 있습니다.
  • 덕분에 사용자는 분석 대상 OS에 맞춰 불필요한 실수를 줄일 수 있습니다.

 

◎ 메모리 덤프 확보와 파일 지정

  • 메모리 덤프 파일 지정은 이 탭의 기본 출발점입니다.
  • 화면에는 Memory dump file 입력칸과 Browse 버튼, 그리고 실제 덤프를 생성하는 Dump 버튼이 있습니다.
  • 코드상으로는 winpmem 계열 도구를 통해 메모리 확보를 진행할 수 있고, 저장 경로와 파일명도 자동으로 구성됩니다.
  • 이미 확보된 .raw, .mem, .dmp, .vmem, .bin 파일을 직접 넣어 분석할 수도 있어, 라이브 획득과 사후 분석을 모두 포괄합니다.

 

 

◎ 심볼·프로파일 관리 기능

 - Volatility 2에서는 프로파일 선택이 핵심입니다. 

  • 탭에는 Symbol/Profile 콤보가 있고, 별도의 Fetch Profile 기능으로 vol.py --info 결과를 읽어 프로파일 목록을 채우는 구조가 들어 있습니다.
  • 코드에서는 Windows, Linux, macOS에 따라 profile 후보를 다르게 가져오며, 필요한 경우 프로파일이 없다는 메시지도 명확히 보여 줍니다.
  • 이 덕분에 사용자는 수동으로 프로파일을 기억하지 않아도 되고, 바로 맞는 값으로 분석을 시작하기 쉬워집니다.

 

 - Volatility 3에서는 심볼 파일 관리가 중심입니다. 

  • Symbol/Profile 영역에 심볼 파일을 지정할 수 있고, Browse 버튼으로 .json이나 .zip 형태의 심볼을 선택하거나, 심볼 파일을 다른 폴더로 복사해 재배치할 수도 있습니다.
  • 코드에서는 volatility3/symbols/os 아래 구조를 탐색해 심볼 후보를 찾고, 필요하면 캐시를 무효화해 최신 목록을 다시 불러옵니다.
  • 즉, Volatility 3의 복잡한 심볼 환경을 UI로 간단히 다룰 수 있게 만든 셈입니다.

 

◎ 플러그인 선택과 옵션 자동화

 - 플러그인 선택 기능도 꽤 강합니다. 

  • Plugin 콤보에는 현재 OS와 버전에 맞는 플러그인이 동적으로 채워지고, 선택한 플러그인에 따라 권장 옵션도 자동으로 안내됩니다.
  • 예를 들어 regexscan, yarascan, dumpfiles, strings, printkey 같은 플러그인에는 추가 옵션 예시가 바뀌고, macOS 계열 플러그인에는 pslist-method allproc 같은 자동 값이 들어갑니다.
  • 초보자 입장에서는 플러그인 사용법을 익히는 데 도움이 되고, 숙련자 입장에서는 매번 긴 옵션을 입력하는 수고를 줄여 줍니다.

 

 - 추가 옵션 입력칸은 사실상 분석 명령의 자유 입력 영역입니다. 

  • 여기에는 --pid 1234, --output-file out.txt 같은 인자를 직접 넣을 수 있고, 특정 플러그인에 맞는 세부 옵션도 넣을 수 있습니다. 
  • 코드에서는 플러그인명에 따라 큐브 힌트처럼 예시 문구를 바꿔 주기 때문에, 지금 어떤 옵션이 필요한지 바로 감을 잡기 좋습니다. 
  • 분석 자동화와 수동 조정 사이의 균형을 잘 맞춘 부분입니다.

 

◎ 실행, 중지, 로그, 결과표시

 - 실행 버튼을 누르면 분석은 별도 스레드에서 돌아갑니다. 

  • UI는 멈추지 않도록 설계되어 있고, 진행 중에는 상태 표시와 로그 창이 업데이트됩니다. 
  • 내부적으로는 실행 결과를 한 번에 쌓지 않고 배치 단위로 받아와 목록에 추가하는 방식이라, 결과가 많아도 비교적 안정적으로 표시됩니다. 
  • 중지 버튼도 따로 있어, 분석이 길어질 경우 즉시 멈출 수 있습니다.

 

 - 결과 화면은 리스트뷰 형태로 출력됩니다.

  • 코드에서는 열 이름을 플러그인 결과에 맞춰 동적으로 바꾸고, Children, PID, PPID, ImageFileName, Offset, Path, CommandLine, Module, Symbol, Timestamp, Hash 등 다양한 필드를 폭넓게 다룹니다.
  • 즉, 플러그인마다 결과 형식이 달라도 같은 탭 안에서 표 형태로 정리해 볼 수 있습니다.
  • 메모리 분석에서 가장 중요한 것은 결국 “많은 결과를 어떻게 읽기 쉽게 정리하느냐”인데, 이 부분을 꽤 잘 처리합니다.

 

 - 로그 창도 함께 제공됩니다.

  • 분석 중에는 진행 상황, 설치 안내, 경고, 오류 메시지가 로그에 쌓이고, 상황에 따라 상태 텍스트도 바뀝니다.
  • 예를 들어 경로가 빠졌을 때는 어떤 경로를 먼저 지정해야 하는지 알려 주고, 설치 시간이 길어지면 타임아웃 경고도 띄웁니다.
  • 실제 현장에서는 이런 안내가 있어야 막히지 않고 다음 단계로 넘어가기 쉽습니다.

 

◎ 내보내기와 정리 기능

 - 내보내기 기능도 유용합니다. 

  • 결과 리스트는 TSV나 CSV 형식으로 저장할 수 있어, 나중에 엑셀이나 다른 분석 도구로 넘기기 좋습니다. 
  • 코드에서는 현재 표시 중인 열과 행을 기준으로 UTF-8 저장을 수행하므로, 현장에서 바로 보고서를 만들거나 증적 파일을 남기기에 적합합니다. 
  • 분석 결과를 일회성으로 보는 것이 아니라, 후속 작업으로 연결할 수 있게 해 준다는 점이 장점입니다.

 

 - Clear 버튼은 단순 초기화 이상의 의미가 있습니다.

  • 현재 결과를 비우고, 로그도 정리하고, 임시 파일도 함께 정리합니다.
  • 코드에는 VolTmp라는 임시 저장 구조가 있어 플러그인별 결과를 .dat/.idx 형태로 관리하고, 필요 없어진 파일은 삭제하는 정리 로직도 들어 있습니다.
  • 여러 번 연속 분석을 하더라도 이전 결과가 뒤섞이지 않도록 설계한 부분입니다.

 

 - 설치 보조 기능도 빼놓을 수 없습니다.

  • Volatility 2용 Python 2와 VCForPython27, Volatility 3용 Python 3와 필요한 .whl 라이브러리 설치를 도와 주며, 경로를 찾을 수 없을 때는 Browse 버튼으로 직접 지정하게 합니다.
  • 코드상으로는 pip, pefile, pycryptodome, yara-python, capstone 같은 패키지 설치 흐름까지 챙기고 있어, 환경 구축에 서툰 사용자도 비교적 수월하게 시작할 수 있습니다.

 

◎ 마무리

  • 정리하면 RawVera Vol 탭은 Python 경로 설정, Volatility 2·3 설치 보조, 메모리 덤프 지정, OS 선택, 프로파일/심볼 관리, 플러그인 선택, 추가 옵션 입력, 실행/중지, 결과 리스트 표시, 로그 기록, TSV/CSV 내보내기, 임시파일 정리까지 포함한 메모리 분석 통합 탭입니다. 
  • 단순 실행기가 아니라 분석 환경 구축부터 결과 정리까지 한 번에 연결해 주는 실전 도구라고 보시면 가장 정확합니다.

 

 

 

 

 

반응형

[C언어] Data Conversion Tool - RawVera

 

 

◎ Log Analyzer 탭의 역할

  • RawVera의 Log Analyzer 탭은 단순히 로그를 보여주는 창이 아니라, PCAP와 여러 형식의 로그를 읽고 분석하는 통합형 작업 공간입니다. 
  • 이미지에서도 보이듯이 왼쪽에는 패킷/로그 목록과 분석 결과가 있고, 오른쪽에는 Open File, Network Analysis, Web Packet Analysis, Snort/YARA 규칙 불러오기와 매칭 버튼이 따로 정리되어 있습니다. 
  • 즉, 파일을 열고, 패턴을 찾고, 의심 트래픽을 분류하는 흐름을 한 화면에서 처리할 수 있게 만든 구조입니다.

 

◎ 파일 열기와 지원 포맷

  • 가장 먼저 눈에 들어오는 것은 지원 포맷의 넓이입니다. 
  • 코드는 PCAP뿐 아니라 일반 로그, 웹 로그, CSV, JSON, W3C IIS 로그까지 다룹니다. 
  • 파일을 열면 포맷을 자동 판별하거나, 필요한 경우 구분자와 컬럼 구조를 분석해 목록 뷰를 다시 구성합니다. 
  • 덕분에 같은 탭 안에서 네트워크 패킷과 웹 접근 로그를 모두 분석할 수 있습니다.

 

◎ 패킷/로그 목록 화면 이해하기

 - 상단의 Open File 버튼은 분석의 출발점입니다. 

  • 파일을 선택하면 내부적으로 형식을 감지하고, 목록의 컬럼 구성이 바뀌며, 아래쪽에는 결과와 상세 패널이 준비됩니다. 
  • PCAP인 경우에는 패킷 리스트가 중심이 되고, 웹 로그나 일반 로그인 경우에는 행 단위 데이터가 표시됩니다. 
  • 화면 상단의 경로 표시와 오른쪽 분석 버튼들이 이 흐름을 자연스럽게 이어 줍니다.

 

 - 기본 리스트는 No., Time, Source, SPort, Destination, DPort 같은 전형적인 네트워크 정보로 채워집니다.

  • 코드에서는 각 레코드를 순회하며 소스 IP, 목적지 IP, 포트, 프로토콜, 페이로드 길이 등을 넣고, 행을 클릭하면 상세 내용이나 페이로드를 확인할 수 있게 설계되어 있습니다.
  • 하단에 Analysis Results와 Payload 탭이 따로 있어, 탐지 결과와 원문 내용을 분리해서 보는 방식도 지원합니다.

 

 - 이 탭의 핵심 기능 중 하나는 Network Analysis입니다.

  • 이 기능은 패킷 전체를 훑으면서 프로토콜 통계를 계산하고, TCP SYN/RST/FIN 분포, UDP/ICMP 비율, 총 바이트 수, HTTP 패킷 수, suspicious 패킷 수, beacon 패킷 수 등을 집계합니다.
  • 단순 통계만 보여 주는 것이 아니라, 소스 IP와 목적지 IP, 목적지 포트의 상위 항목도 추려 주기 때문에 어떤 호스트가 트래픽의 중심인지 빠르게 파악할 수 있습니다.

 

◎ 네트워크 분석 기능

  • 네트워크 분석은 포트 스캔 탐지에도 강합니다. 
  • 코드에서는 특정 소스가 여러 목적지 포트로 접근하는지, 연속된 포트를 쓸어가는지, 짧은 시간에 과도한 연결을 만드는지, 또는 ICMP Unreachable이 과도한지 등을 조합해 포트 스캔 가능성을 판단합니다. 
  • 수평 스캔과 순차 스캔, 랜덤/버스트성 접근까지 구분하려고 하는 점이 실무적으로 꽤 유용합니다.

 

◎ 웹 패킷 분석과 탐지 기능

  • 웹 패킷 분석은 이 탭의 또 다른 중심축입니다. 
  • PCAP에서 HTTP 요청만 뽑아내어 URI, 헤더, 바디까지 포함한 전체 페이로드를 대상으로 분석하며, HTTP 메서드 통계도 따로 계산합니다. 
  • GET, POST, PUT, DELETE, 그 외 요청을 구분하고, 웹 공격 탐지 결과를 요약해서 보여 줍니다. 
  • 또한 TLS 애플리케이션 데이터나 명백한 HTTP 응답은 불필요한 오탐을 줄이기 위해 건너뛰는 구조를 갖고 있습니다.

 

◎ Snort·YARA 규칙 매칭

 - Snort와 YARA 규칙 연동도 매우 중요합니다. 

  • 오른쪽 패널에서 Open Snort Rules와 Open YARA Rules로 규칙 파일을 불러온 뒤, 각각 Snort Rule Match와 Yara Rule Match를 실행할 수 있습니다. 
  • 코드는 규칙이 없을 때는 실행을 막고 안내 문구를 띄우며, 규칙이 있으면 각 패킷 또는 로그 행에 대해 매칭을 수행합니다. 
  • 그 결과는 분석 결과 창에 요약되고, 일치한 항목은 suspicious로 표시됩니다.

 

 - Snort 매칭은 PCAP와 로그 모두를 대상으로 동작합니다.

  • PCAP에서는 실제 payload를 기준으로 룰을 검사하고, 로그에서는 추출된 URI나 전체 row를 기준으로 검사를 수행합니다.
  • 룰의 proto가 tcp, udp, icmp, http, any인지에 따라 대상이 달라지고, 메시지와 classtype도 함께 결과에 반영됩니다.
  • 즉, Snort 규칙을 실제 로그 분석 파이프라인에 붙여 놓은 형태라고 보시면 됩니다.

 

 - YARA는 웹 공격 패턴 탐지에 특히 잘 맞습니다.

  • 코드에서는 URI, headers, body를 포함한 웹 페이로드를 대상으로 문자열 패턴을 검사하고, HTTP 요청 위주로 탐지를 진행합니다.
  • 규칙이 match되면 해당 패킷이나 행이 suspicious로 표시되며, 설명 문자열과 함께 결과에 기록됩니다.
  • Snort와 YARA를 둘 다 붙일 수 있기 때문에, 한쪽에서 놓친 신호를 다른 쪽이 보완하는 식의 운영도 가능합니다.

 

◎ 필터와 검색, 결과 보기

 - 필터 버튼은 실제 업무에서 자주 쓰일 만합니다.

  • View All로 전체를 다시 보고, Suspicious packets only로 의심 항목만 추리고, Show HTTP only나 Show DNS only로 프로토콜별 분리도 가능합니다.
  • 분석 결과가 너무 많아졌을 때 핵심만 빠르게 좁혀 보는 용도이며, 이미 탐지된 패킷을 기준으로 재검토할 때 특히 편합니다. Clear 버튼은 현재 필터와 결과를 정리하는 초기화 역할을 합니다

 

 - 검색 기능도 잘 갖춰져 있습니다. 

  • 상단의 Search 입력창에는 정규식 또는 표현식 형태의 조건을 넣을 수 있고, 리스트 내 항목을 빠르게 좁힐 수 있습니다. 
  • 예를 들어 src_ip, dst_ip, 포트, 상태코드, URI 같은 조건을 조합해 관심 트래픽만 필터링할 수 있습니다. 
  • 이미 분석한 뒤에도 다시 특정 세션만 재확인하기 좋습니다.

 

 - 결과창 아래의 패킷/페이로드 상세 영역도 실용적입니다.

  • 목록에서 행을 클릭하면 해당 레코드의 세부 정보와 payload를 따로 확인할 수 있고, 검색 결과 탭에서는 탐지 요약과 매칭된 항목의 내용을 함께 볼 수 있습니다.
  • 코드상으로는 결과 탭에서 Ctrl+A 전체 선택이 가능하도록 되어 있고, 일부 편집/복사 흐름도 고려되어 있습니다.

 

◎ 실무 활용 포인트

  • 이 탭의 장점은 분석 흐름이 끊기지 않는다는 점입니다. 
  • 파일 열기, 목록 확인, 규칙 불러오기, 분석 실행, 의심 항목 필터링, 상세 확인까지 모두 같은 화면에서 이어집니다. 
  • 그래서 보안 관제, 포렌식, 트래픽 조사, 규칙 검증 같은 작업에서 별도의 도구를 여러 개 오갈 필요가 줄어듭니다. 
  • 특히 웹 로그와 PCAP, Snort와 YARA를 함께 다루는 구조는 꽤 강력합니다.

 

◎ 마무리

  • 정리하면 RawVera Log Analyzer는 PCAP·로그·웹로그·JSON·CSV·W3C IIS 로그 지원, 패킷 목록 표시, 네트워크 통계, 포트 스캔 탐지, 웹 패킷 분석, Snort/YARA 룰 매칭, 결과 필터링, 페이로드 확인까지 포함한 통합 분석 탭입니다. 
  • 단순한 뷰어가 아니라 탐지와 분류, 검증까지 엮어 놓은 실전형 분석 도구라고 보시면 가장 정확합니다.

 

 

 

 

반응형

[C언어] Data Conversion Tool - RawVera

 


◎ Log Tail 탭이 필요한 이유

  • 로그를 오래 보다 보면 필요한 기능은 생각보다 단순합니다. 
  • 마지막 몇 줄만 빠르게 보고 싶고, 두 로그 파일의 차이만 바로 확인하고 싶고, 필요하면 파일을 여러 조각으로 나눠 보관하고 싶습니다. 
  • RawVera의 Log Tail / Diff / Split 탭은 이런 요구를 한 화면에 모아 둔 기능으로, 대용량 로그 확인과 비교, 분할 저장을 모두 처리할 수 있게 설계되어 있습니다.

 

◎ 화면 구성과 기본 동작

  • 이미지 기준으로 화면은 상단의 파일 경로 입력부, 그 아래 옵션 영역, 검색 영역, 그리고 하단의 큰 로그 표시창으로 구성됩니다. 
  • 상단에는 Log File 입력칸과 파일 선택 버튼이 있고, 옆에 Diff와 Split 버튼이 배치되어 있습니다. 
  • 옵션 영역에서는 Top과 Bottom 표시 방식, 표시 줄 수, Auto-renew 1초 갱신을 조절할 수 있으며, 검색창에는 원하는 문자열을 넣고 Search를 실행할 수 있습니다.

 

◎ 단일 로그 열기와 Tail 보기

 - 이 탭의 기본 모드는 Tail 보기입니다. 

  • 즉, 로그 파일 전체를 다 보여주는 것이 아니라 위쪽부터 볼지, 아래쪽부터 볼지를 정하고, 그중에서 몇 줄만 가져와 표시하는 방식입니다. 
  • 코드에서는 최대 20줄까지 허용하고, 기본값은 10줄로 설정되어 있습니다. 
  • 실무에서는 최근 몇 줄만 보는 경우가 많기 때문에, 이런 구조가 꽤 실용적입니다.

 

 - Top과 Bottom 선택은 단순한 방향 차이 이상입니다.

  • Top은 파일 앞부분부터 지정 줄 수만큼 보여주고, Bottom은 파일 끝부분 기준으로 최근 줄을 보여줍니다.
  • 예를 들어 에러가 막 발생한 직후라면 Bottom이 유리하고, 초기 설정값이나 시작 배너를 확인하려면 Top이 유리합니다.
  • 같은 파일이라도 목적에 따라 바로 전환할 수 있어 탐색 속도가 빠릅니다.

 

◎ Diff 모드의 핵심 기능

 - Diff 모드는 이 탭의 가장 강력한 기능 중 하나입니다. 

  • 버튼을 누르면 왼쪽과 오른쪽에 두 로그 파일 경로가 생기고, 각각을 불러와 비교합니다. 
  • 차이 나는 줄은 노란색으로 강조되며, 동일한 줄은 일반 색으로 유지됩니다. 
  • 즉, 패치 전후 로그, 서로 다른 서버 로그, 배포 전후 이벤트를 한눈에 비교할 수 있습니다.

 

 - 코드상 Diff는 라인 인덱스를 먼저 만들어 두는 방식입니다.

  • 파일을 메모리 맵으로 읽고, 줄 단위 오프셋과 길이, 해시값을 계산한 뒤 비교합니다.
  • 해시가 있으면 대용량 파일에서도 비교 속도를 높일 수 있고, 해시가 없을 때는 실제 문자열 비교로 확인합니다.
  • 이 방식 덕분에 단순 텍스트 비교보다 빠르고 안정적으로 차이를 찾습니다.

 

 - Diff 화면에서는 두 패널의 스크롤도 함께 맞춰집니다.

  • 왼쪽이나 오른쪽을 스크롤하면 반대쪽도 같은 위치로 따라가도록 되어 있어서, 같은 지점의 차이를 연속적으로 확인하기 좋습니다.
  • 비교 중에 검색을 해도 현재 위치를 기준으로 하이라이트가 유지되므로, 변경 구간과 관심 구간을 동시에 추적할 수 있습니다.

 

 

 

◎ 검색, 하이라이트, 자동 갱신

 - 검색창은 일반 검색과 함께 vi 스타일 명령도 지원합니다. 

  • 코드에서는 s 명령을 통해 문자열 치환을 실행할 수 있고, g와 i 플래그도 지원합니다. 
  • 예를 들어 줄바꿈 제거 후 특정 문자열을 일괄 치환하는 식의 작업을 간단히 처리할 수 있습니다. 
  • 로그를 단순 감상하는 수준을 넘어, 빠르게 정리하고 가공하는 기능까지 들어 있는 셈입니다.

 

 - 검색 기능도 단순하지 않습니다.

  • Search 입력창에 문자열을 넣으면 하이라이트를 적용하고, 검색어가 비어 있으면 강조를 초기화합니다.
  • 코드에서는 대소문자 무시 검색도 처리하며, 검색 결과가 있으면 해당 위치로 스크롤을 이동시켜 바로 보이게 합니다.
  • 긴 로그에서 특정 IP, 에러 코드, 함수명, 사용자 ID를 찾을 때 유용합니다.

 

 - 자동 갱신 기능도 눈에 띕니다.

  • Auto-renew 1s를 체크하면 1초마다 파일 변경을 감시하고, 크기나 수정 시간이 바뀌면 내용을 다시 불러옵니다.
  • 코드에서는 파일 크기와 수정 시각을 저장해 두었다가 변경 여부를 확인한 뒤 다시 로드합니다.
  • 서버 로그나 실시간 수집 로그를 볼 때 특히 편리하며, 별도 새로고침을 누르지 않아도 변화가 반영됩니다.

 

 - 이 탭에는 Clear All 버튼도 있습니다.

  • 이 기능은 파일 경로, 오른쪽 비교 파일, 옵션, 검색어, 표시창 상태를 한 번에 초기화합니다.
  • 자동 갱신도 끄고, Diff 모드도 해제하며, 오른쪽 패널도 숨깁니다.
  • 여러 파일을 연속으로 분석할 때 이전 상태가 남아 헷갈리는 일을 줄여 주는 안전장치라고 보시면 됩니다.

 

◎ Split 기능과 저장 기능

 - Split 기능은 생각보다 실무적입니다. 

  • 하나의 큰 로그 파일을 사용자가 지정한 개수만큼 나눠서 저장할 수 있는데, 실제 라인 수를 계산한 뒤 각 조각에 몇 줄씩 배분할지 정해 파일을 생성합니다. 
  • 파일이 너무 짧으면 분할 개수를 자동으로 줄이고, 줄 수가 남지 않도록 나누는 방식이라 결과가 깔끔합니다.

 

 - 분할 저장 과정도 꽤 친절합니다.

  • 먼저 분할할 원본 파일을 고르고, 저장할 폴더를 지정한 뒤, 몇 개로 나눌지를 입력합니다.
  • 그 다음 원본의 줄 수를 계산하고 각 파트의 줄 수를 분배한 뒤, _01, _02 같은 접미사를 붙여 저장합니다.
  • 대용량 로그를 아카이브하거나, 팀원별로 나눠 전달할 때 유용합니다.

 

 - 저장 기능도 있습니다.

  • Diff 모드에서 오른쪽 패널은 편집 가능하도록 열리며, Save 버튼을 누르면 변경된 내용을 UTF-8 파일로 다시 기록합니다.
  • 저장 전에는 정말 덮어쓸지 묻는 확인창이 뜨므로 실수로 원본을 잃을 가능성을 줄여 줍니다.
  • 비교 결과를 수정한 뒤 바로 저장하는 용도로 쓰기 좋습니다.

 

 - UI 구성 측면에서도 꽤 세심합니다.

  • 로그 영역은 RichEdit로 만들어져 있어 긴 텍스트를 안정적으로 다룰 수 있고, 좌우 패널의 배경색과 강조 색도 구분됩니다.
  • 검색 하이라이트는 청록색 계열, Diff 하이라이트는 노란색 계열로 표시되어 눈에 잘 들어옵니다.
  • 긴 로그를 오래 들여다볼 때 시각적인 피로를 줄이는 데 도움이 됩니다.

 

◎ 실무에서 특히 유용한 활용 포인트

 - 실무적으로는 다음 상황에서 특히 유용합니다. 

  • 서버 장애 직후 마지막 에러 라인만 빨리 보고 싶을 때, 운영 전후 로그 차이를 비교하고 싶을 때, 대용량 로그를 여러 조각으로 나눠야 할 때, 그리고 특정 키워드만 빠르게 찾고 싶을 때입니다. 
  • 단일 보기, 비교 보기, 분할 저장을 모두 한 탭에서 처리하니, 별도 텍스트 에디터를 오갈 필요가 줄어듭니다.

 

◎ 마무리 정리

  • 정리하면 RawVera Log Tail / Diff / Split 탭은 로그 tail 확인, 자동 갱신, 검색 하이라이트, 양파일 차이 비교, vi 스타일 치환, 파일 분할 저장, 결과 저장을 한 번에 다루는 실전형 도구입니다. 
  • 단순히 “로그를 보는 창”이 아니라, 로그를 빠르게 읽고 비교하고 정리하는 작업대라고 보시면 이해가 가장 쉽습니다.

 

 

 

반응형

[C언어] Data Conversion Tool - RawVera

 

◎ Sig Test 탭이 필요한 이유

  • 시그니처 규칙을 만들거나 점검할 때 가장 답답한 순간은 “규칙은 맞는 것 같은데 실제로 걸리는지 확신이 없는 상황”입니다. 
  • RawVera의 Sig Test 탭은 바로 그 문제를 해결하기 위한 실전형 테스트 공간으로, Snort 2와 Snort 3 규칙을 입력해 보고, 서버/클라이언트 통신을 직접 일으키면서 매칭 여부를 확인할 수 있게 구성되어 있습니다. 
  • 단순 문자열 비교가 아니라 규칙 구조와 sticky buffer까지 고려하는 점이 특히 눈에 띕니다.

 

◎ 화면 구성과 기본 흐름

  • 이미지 기준으로 화면은 왼쪽의 서버 영역과 오른쪽의 클라이언트 영역으로 나뉘어 있고, 하단에는 전송용 입력창이 배치되어 있습니다. 
  • 상단에는 Snort 2 / Snort 3 선택 라디오 버튼과 Snort Rule 입력창이 있으며, 가운데에는 Server(Listening)과 Client(Connection) 그룹 박스가 크게 보입니다. 
  • 서버 쪽에는 포트 입력, Listen/Stop 버튼, 서버 로그가 있고, 클라이언트 쪽에는 서버 IP와 포트, Connect/Disconnect 버튼, 클라이언트 로그가 배치되어 있습니다.

 

◎ Snort 2와 Snort 3 선택 방식

  • 이 탭의 핵심은 Snort 버전 전환이 명확하다는 점입니다. 
  • 코드에서는 기본값을 Snort 3으로 두고 있으며, Snort 2와 Snort 3 라디오 버튼을 눌러 규칙 작성 방식을 바꿀 수 있습니다. 
  • Snort 2는 content modifier 중심으로 해석하고, Snort 3은 sticky buffer 개념을 적극 반영하는 구조입니다. 
  • 그래서 같은 규칙이라도 버전에 따라 문법을 다르게 써야 하는 상황을 바로 비교하면서 점검할 수 있습니다.

 

◎ 규칙 입력, 매칭 테스트, 로그 확인

 - 규칙 입력창은 단순 메모 입력칸이 아닙니다. 

  • 코드에서는 입력된 규칙을 파싱해서 content, pcre, distance, within, depth, offset 같은 옵션을 분해하고, nocase와 fastpattern도 별도로 처리합니다. 
  • 또 httpuri, httpmethod, httpheader, httpclientbody, httpcookie, filedata, pktdata, rawdata, emailbody, emailheader, dnsquery, sipheader, sslstate, sslversion, base64data 등 다양한 sticky buffer를 인식합니다. 
  • 즉, HTTP만 보는 도구가 아니라 여러 프로토콜 영역을 넓게 다루는 규칙 테스트기입니다.

 

 - 분석 흐름은 꽤 체계적입니다.

  • content는 최대 10개까지 파싱되며, 각 content 사이의 순서와 거리 조건을 반영해 실제 데이터 매칭을 검사합니다.
  • distance와 within은 이전 매치 기준으로 다음 검색 범위를 조정하고, depth와 offset은 검색 시작점과 길이 제한을 제어합니다.
  • 이 때문에 “룰은 맞는데 실제 페이로드에서는 왜 안 걸릴까” 같은 문제를 좁혀 보기 좋습니다.

 

 - PCRE도 지원합니다.

  • 코드에서는 pcre 패턴과 수식자를 분리해 저장하고, 기본적인 정규식 매칭까지 수행합니다.
  • 또한 \xHH 형태의 hex escape를 확장해서 실제 데이터와 비교하므로, 인코딩된 문자열을 포함한 패턴도 확인할 수 있습니다.
  • 단순 문자열 룰뿐 아니라 정규식 기반 탐지 룰까지 함께 검증할 수 있다는 점에서 활용 범위가 넓습니다.

 

 

◎ 서버 리스닝과 클라이언트 연결 기능

 - 서버 기능은 실전 테스트에 상당히 유용합니다. 

  • StartServer를 누르면 지정한 포트로 TCP 소켓을 열고 리스닝을 시작하며, 접속이 들어오면 서버 로그에 연결 상태가 기록됩니다. 
  • 수신 데이터는 버퍼 단위로 읽히고, 그 내용을 바로 규칙 매칭에 넣어 “Matching!” 여부를 표시합니다. 
  • Stop 버튼을 누르면 리스닝 소켓과 수락된 소켓을 닫고 서버 상태를 정리합니다.

 

 - 클라이언트 기능도 마찬가지로 분명합니다.

  • 서버 IP와 포트를 입력한 뒤 Connect를 누르면 TCP 연결을 만들고, 연결 성공 시 전송 버튼이 활성화됩니다.
  • 이후 Send 입력창에 넣은 텍스트를 UTF-8로 변환해 서버에 보내며, 수신 데이터는 클라이언트 로그에 그대로 출력됩니다.
  • Disconnect는 연결을 종료하고 내부 상태를 초기화합니다.
  • 이런 구조 덕분에 서버와 클라이언트를 한 프로그램 안에서 동시에 돌려보며 규칙 반응을 실험할 수 있습니다.

 

◎ 전송 기능과 디버깅 활용법

 - 화면 하단의 Send 입력창은 테스트용 페이로드를 넣는 곳입니다. 

  • 실제 규칙이 어떤 문자열에서 걸리는지 확인하려면, 여기서 HTTP 요청 문자열이나 임의의 탐지 대상 문자열을 직접 넣어 보내면 됩니다. 
  • 로그에는 전송/수신 내용이 남기 때문에, 어떤 데이터가 지나갔고 어떤 시점에 매칭됐는지를 추적하기 쉽습니다. 
  • 따라서 단순 데모가 아니라 룰 튜닝용 워크벤치로 쓰기 좋습니다.

 

 - 버튼별 역할도 깔끔합니다.

  • Server Listening 영역에는 Listen과 Stop, Clear Log가 있고, Client Connection 영역에는 Connect, Disconnect, Clear Log가 있습니다.
  • Snort Rule 입력창은 Ctrl+A로 전체 선택이 되도록 되어 있어 규칙을 빠르게 교체할 수 있습니다.
  • 그리고 Snort 2와 Snort 3 버튼을 누르면 예시 규칙도 자동으로 바뀌어서, 버전별 문법 차이를 바로 체감할 수 있습니다.

 

 - 예시 규칙 전환도 꽤 실용적입니다.

  • Snort 2 예시는 content와 httpmethod, httpuri 같은 전통적 modifier 조합을 보여 주고, Snort 3 예시는 sticky buffer를 전면에 둔 문법을 보여 줍니다.
  • 즉, 같은 탐지 의도를 버전별로 어떻게 써야 하는지 비교 학습하기 좋습니다.
  • 입문자 입장에서는 문법 차이를 익히는 데 도움이 되고, 실무자 입장에서는 룰 마이그레이션 검증에 도움이 됩니다.

 

 - 내부 구현을 보면 이 탭은 꽤 많은 보조 로직을 갖고 있습니다.

  • 단순 문자열 비교 외에도 대소문자 무시 옵션, OR 패턴 처리, 간단한 범위 반복, quote 처리, sticky buffer 적용, base64 관련 옵션 인식까지 포함합니다.
  • 즉, 화면은 단순하지만 실제로는 Snort 룰의 핵심 요소를 꽤 넓게 재현해 테스트하는 구조입니다.

 

◎ 실무에서 유용한 사용 포인트

  • 실무적으로는 다음 같은 상황에서 특히 유용합니다. 
  • 새로 만든 규칙이 실제로 데이터에 반응하는지 확인할 때, Snort 2와 3 사이 문법 차이를 검증할 때, 특정 sticky buffer 안에서만 content가 먹히는지 볼 때, 그리고 PCRE 기반 탐지가 기대한 대로 동작하는지 확인할 때입니다. 
  • 규칙 하나를 만들고 외부 장비에 올리기 전에, 로컬에서 먼저 검증해 볼 수 있다는 점이 가장 큰 장점입니다.

 

◎ 마무리 정리

  • 정리하면 RawVera Sig Test는 Snort 규칙 작성, 버전 비교, 서버/클라이언트 통신 테스트, 로그 확인, 패턴 매칭 검증을 한 번에 처리할 수 있는 탭입니다. 
  • 특히 Snort 2와 Snort 3의 문법 차이, sticky buffer 처리, distance/within/depth/offset, pcre, nocase, fastpattern 같은 핵심 옵션을 실제 데이터로 점검할 수 있어 룰 검증용으로 매우 유용합니다. 
  • 단순 테스트 창이 아니라, 보안 분석가가 규칙을 다듬는 과정 자체를 돕는 작업대라고 보시면 이해가 빠릅니다.

 

 

 

반응형

[C언어] Data Conversion Tool - RawVera

 

 

◎ Net Util 탭이 필요한 이유

  • 네트워크 분석을 하다 보면 IP 하나를 확인하는 일보다, 수십 개·수백 개 IP를 한꺼번에 분류해야 하는 일이 더 많습니다. 
  • RawVera의 Net Util 탭은 바로 그런 상황을 겨냥한 도구입니다. 
  • 단일 IP 질의부터 nslookup, Reverse DNS, Whois, 대량 CSV 조회, 그리고 Traceroute까지 한 화면에서 처리할 수 있어, IOC 검증이나 네트워크 기반 초기 분석에 매우 유용합니다.

 

◎ 화면 구성과 기본 흐름

 - 이미지 기준으로 화면은 왼쪽의 작업 영역과 오른쪽의 파일/실행 패널로 나뉘어 있습니다. 

  • 상단에는 검색 입력창이 있고 Reverse 체크박스와 Search 버튼이 배치되어 있으며, 그 아래에는 DNS 유형 선택, nslookup 버튼, DNS 서버 지정 옵션이 보입니다. 
  • 중간에는 ICMP, TCP, UDP 기반 Traceroute 옵션이 있고, 하단에는 IP 목록 결과를 표시하는 리스트와 상태 메시지가 있습니다. 
  • 오른쪽에는 MOFA CSV, IPv4 CSV, List of IPs 파일 입력창과 각종 실행 버튼이 따로 배치되어 있어 대량 작업에 초점이 맞춰져 있습니다.

 

 - 이 탭의 첫 번째 장점

  • 단일 IP 확인 흐름이 매우 직관적이라는 점입니다.
  • 검색창에 IP나 도메인을 넣고 실행하면, 필요에 따라 nslookup처럼 동작하거나 Reverse DNS를 확인할 수 있습니다.
  • 코드상으로는 검색값이 IPv4인지 먼저 판단하고, IP인 경우 PTR 조회를 추가로 수행하며, 결과를 사람이 읽기 쉬운 형식으로 정리합니다.
  • 즉, 단순 조회가 아니라 A, AAAA, PTR, MX, NS, SOA, TXT, CNAME, ANY 같은 DNS 레코드 유형을 구분해서 보여주는 구조입니다.

 

◎ 검색창, Reverse DNS, nslookup 기능

 - nslookup 기능은 생각보다 범위가 넓습니다. 

  • 도메인 이름에 대해 기본 A/AAAA 조회를 하거나, IP를 넣었을 때 PTR 역조회로 자동 전환할 수 있고, 사용자가 원하는 DNS 서버를 직접 지정할 수도 있습니다. 
  • 또한 코드에는 외부 DNS 서버를 직접 때리는 raw UDP 질의 기능도 있어, Windows 기본 API 결과뿐 아니라 사용자 지정 서버 기준 결과도 비교할 수 있습니다. 
  • 이런 구조는 DNS 우회, 스플리트 호라이즌, 내부/외부 응답 차이 확인에 유리합니다.

 

 - 결과 표시 방식도 실무형입니다.

  • Net Util은 nslookup 스타일, dig 스타일, host 스타일의 출력 포맷을 모두 흉내 내서 보여줍니다.
  • 예를 들어 nslookup에서는 Server, Non-authoritative answer, Nameserver, Mail exchanger 같은 형식으로 정리되고, dig에서는 QUESTION SECTION과 ANSWER SECTION 형태로 나타납니다.
  • host 출력도 따로 지원되어, 같은 질의 결과를 서로 다른 관점에서 보기가 좋습니다.
  • 분석 중 “같은 도메인인데 도구별로 표현이 왜 다른가”를 확인하는 데도 유용합니다.

 

◎ 대량 IP 조회와 CSV 기반 분석
 - 대량 IP 조회 기능은 이 탭의 핵심이라고 볼 수 있습니다. 

  • 오른쪽에서 MOFA CSV와 IPv4 CSV 경로를 지정한 뒤, List of IPs에 입력 파일을 불러오면 목록 전체를 한 번에 처리할 수 있습니다. 
  • 코드에서는 각 CSV의 형식을 검사하고, 국가명 테이블과 IPv4 범위 테이블을 로드한 뒤, IP별로 국가 코드와 국가명, Whois 정보를 매칭합니다. 
  • 즉, 단순히 DNS만 보는 도구가 아니라 IP 인텔리전스 정리 도구에 가깝습니다.

 

 - CSV 기반 데이터는 두 종류가 함께 쓰입니다.

  • MOFA CSV는 국가 코드와 국가명 매핑용이고, IPv4 CSV는 IP 범위와 국가 코드 매핑용입니다.
  • 코드에서는 파일 형식을 먼저 검사해 컬럼 수가 맞는지 확인하고, 국가명 파일과 IP 범위 파일을 각각 읽어 들인 뒤 정렬합니다.
  • 이후 입력된 IP 목록을 순회하면서 어떤 국가 범위에 속하는지 판정하고, 결과를 리스트뷰와 CSV 파일로 동시에 기록할 수 있습니다. 이 부분은 대량 IP 분류 작업에서 특히 강력합니다.

 

 

◎ Whois Query와 All Query 차이

  • Whois Query와 All Query는 비슷해 보이지만 목적이 다릅니다.
  • Whois Query는 주로 IP에 대해 국가 코드, 국가명, ISP/ASN 중심의 정보를 조회하는 기능이고, All Query는 여기에 Reverse DNS까지 더해 더 풍부한 결과를 만듭니다.
  • 코드상으로는 ip-api, ipinfo, freegeoip 같은 외부 API를 순차적으로 시도해 결과를 보완하며, 실패 시에도 기본값을 남겨 처리 흐름이 끊기지 않도록 설계되어 있습니다.

 

◎ Traceroute 기능과 옵션 해설

 - Traceroute 기능도 꽤 충실합니다. 

  • ICMP, TCP, UDP를 선택할 수 있고, TCP와 UDP는 포트 입력이 따로 제공됩니다. 
  • Fast Scan(-n), Low Delay(-z), Max Hop(-m), Timeout(-w), Queries(-q) 같은 옵션도 지원되어, 단순 경로 확인부터 더 세밀한 추적까지 조절 가능합니다. 
  • 즉, 일반적인 traceroute 도구처럼 보이지만, 실제로는 프로토콜과 반복 횟수, 지연, 홉 제한을 세세하게 조정할 수 있는 형태입니다.

 

◎ 실무에서 특히 유용한 활용 포인트

 - 실무적으로는 이런 점이 중요합니다. 

  • 어떤 IP는 국가 정보만 빠르게 확인하면 충분하지만, 어떤 IP는 Reverse DNS와 WhoIs 결과까지 봐야 실제 클라우드, VPN, 프록시, 호스팅 사업자 여부를 가늠할 수 있습니다. 
  • Net Util은 이 둘을 분리해 제공하므로, “빠른 정리”와 “상세 확인”을 상황에 맞게 나눠 쓸 수 있습니다. 또한 결과를 CSV로 저장할 수 있어 보고서나 엑셀 정리에 바로 연결됩니다.

 

  • 코드상 Traceroute는 Windows ICMP API와 소켓을 이용해 동작하며, 홉별 응답 시간을 모아 표시합니다.
  • 응답이 늦거나 없는 홉은 timeout으로 표시하고, fast scan이 꺼져 있으면 호스트명 확인까지 시도합니다.
  • 또한 인터페이스 선택 콤보박스가 있어 로컬 네트워크 환경에 따라 출발 인터페이스를 고를 수 있습니다.
  • 네트워크 경로가 여러 겹인 환경에서 원인 추적을 할 때 특히 실용적입니다.

 

 - 화면 오른쪽의 파일 연결 영역도 꽤 중요합니다.

  • MOFA CSV와 IPv4 CSV는 링크처럼 제공되어 관련 데이터 소스 페이지로 이동할 수 있게 되어 있고, List of IPs는 사용자가 직접 대상 리스트 파일을 넣는 구조입니다.
  • 이 때문에 Net Util은 “조회 버튼만 누르는 도구”가 아니라, 외부 기준 데이터와 사용자 대상 목록을 결합해 결과를 만드는 분석 워크벤치로 쓸 수 있습니다.

 

 - 조작 측면에서도 편의성이 좋습니다.

  • Search 입력창에 값을 넣고 Enter만 눌러도 빠르게 실행되며, 결과가 이미 있으면 목록 필터처럼 동작하고, 없으면 단일 IP Whois 조회로 넘어갑니다.
  • Clear 버튼은 입력과 결과를 한 번에 초기화하고, Start Query, Whois Query, All Query는 작업 범위를 명확히 분리해 줍니다.
  • 이런 구조 덕분에 초동 분석에서 실수할 여지가 적습니다.

 

◎ 마무리 정리

  • 정리하면 RawVera Net Util 탭은 DNS 조회, Reverse DNS, Whois, 대량 IP 분류, CSV 기반 국가 매핑, Traceroute를 한 번에 다루는 실전형 네트워크 분석 도구입니다. 
  • 단일 IP를 빠르게 확인하는 데도 좋고, 다수 IP를 보고서용으로 정리하는 데도 잘 맞습니다. 
  • 특히 보안 분석이나 침해사고 대응 과정에서 “이 IP가 어디 것인지, 어떤 사업자 계열인지, 경로가 어디서 꺾이는지”를 한 번에 보고 싶을 때 활용도가 큽니다.

 

 

 

반응형

[C언어] Data Conversion Tool - RawVera


 
◎ EML Analyzer 탭이 필요한 이유

  • 이메일은 공격자가 가장 자주 사용하는 침투 경로 중 하나입니다. 
  • 그래서 메일 파일을 빠르게 분해하고, 본문과 첨부파일과 헤더를 따로 확인할 수 있는 도구는 실무에서 매우 중요합니다. 
  • RawVera의 EML Analyzer 탭은 이런 요구를 꽤 잘 반영한 구성으로, .eml, .msg, .emlx 파일을 열어 메일 전체를 분석하고, 
  • 추가로 첨부파일·헤더·MIME·HTML·RTF·YARA 스캔까지 이어서 볼 수 있도록 설계되어 있습니다.

 
◎ 화면 구성과 기본 동작 방식
 - 화면구성

  • 화면을 보면 왼쪽은 결과 출력 영역, 오른쪽은 기능 버튼 영역으로 나뉘어 있습니다. 
  • 상단에는 파일 열기 버튼이 있고,
  • 그 아래로 Normal Mail View, Hex, Properties, Message Header, MIME, HTML, RTF, Attachments 같은 보기 모드가 세로로 정리되어 있습니다. 
  • 보안 섹션에는 Yara Rule Open과 Macro/Threat Scan이 따로 배치되어 있고, 
  • JSON Viewer와 XML Viewer도 별도 버튼으로 제공됩니다. 
  • 즉, 메일 분석에서 자주 필요한 확인 작업이 한 화면에 거의 다 모여 있습니다.

 
◎ 지원 포맷과 뷰 모드 전체 정리
 - 지원 포맷

  • 이 탭이 지원하는 포맷은 .eml, .msg, .emlx입니다. 
  • 코드에서는 메일을 열 때 확장자를 기준으로 유형을 구분하고, 
  • EML 계열은 RFC 형식으로 해석하며 MSG는 OLE 기반 바이너리 구조로 다룹니다.
  • 또한 본문 표시 방식도 Normal View와 Hex View를 함께 제공하므로, 사람이 읽는 형태와 바이트 단위 구조를 번갈아 확인할 수 있습니다.

 
- 가장 기본이 되는 기능은 Normal Mail View입니다.

  • 이 모드에서는 From, To, Subject, Date 같은 핵심 헤더를 추출하고, 메일 타입에 따라 간단한 요약 형식으로 보여줍니다. 
  • HTML 메일인 경우에는 브라우저 렌더링을 이용해 본문을 보기 좋게 표현할 수 있고, 텍스트 메일인 경우에는 추출된 본문을 그대로 읽을 수 있습니다. 
  • 분석 초반에는 이 모드만으로도 메일이 정상 메일인지, 미끼성인지, 변칙 구조인지 빠르게 가늠할 수 있습니다.

 
◎ 메일 헤더, MIME, HTML, RTF 분석 기능
 - Properties와 Message Header도 매우 유용합니다. 

  • Properties는 파일 경로, 파일 크기, Message-ID, From/To/Subject/Date, Content-Type, Encoding, MIME 파트 수를 한 번에 보여주며, 
  • Message Header는 원본 헤더 블록을 그대로 확인할 수 있게 해 줍니다. 
  • 이 기능은 메일의 메타데이터를 보고 발신 흐름이나 수신 구조를 파악할 때 특히 좋습니다. 
  • 정교한 피싱 메일은 헤더만 봐도 흔적이 남는 경우가 많기 때문에, 이 두 기능은 실제로 자주 쓰이게 됩니다.

 
 - MIME View는 이 탭의 핵심 기능 중 하나입니다.

  • 코드상에서는 MIME-Version, Content-Type, Content-Transfer-Encoding, boundary 값을 읽고, multipart 구조를 파악한 뒤 각 파트를 목록으로 정리합니다. 
  • 각 파트는 유형과 인코딩이 함께 표시되기 때문에, 본문이 text/plain인지 text/html인지, 첨부가 어느 파트에 숨겨져 있는지 한번에 파악하기 쉽습니다.
  • 특히 변형된 메일 구조나 중첩 multipart를 볼 때 유용합니다.

 
 - HTML과 RTF View도 단순 원문 출력이 아니라 해석을 돕는 방향으로 만들어져 있습니다.

  • HTML View는 HTML 소스를 렌더링하거나 원문으로 확인하는 용도로 사용할 수 있고, RTF View는 리치 텍스트를 원문 기준으로 확인하는 데 적합합니다. 
  • 메일 공격에서는 HTML 안에 스크립트처럼 보이는 요소, 외부 링크, 이미지 참조, 폼 위장 등이 섞이는 경우가 많기 때문에, 렌더링과 원문 확인을 오가며 보는 것이 중요합니다.

 

 
◎ 첨부파일 분석과 내부 뷰어 기능
 - 첨부파일 분석은 이 도구의 강점이 잘 드러나는 부분입니다. 

  • Attachments 버튼을 누르면 메일 안에 포함된 첨부파일을 추출해 보여주고, 파일 유형에 따라 다른 방식으로 해석합니다. 
  • 텍스트 계열은 바로 텍스트로 보고, RTF는 RTF 뷰로 확인하며, OOXML 문서인 docx·xlsx·pptx 계열은 별도 파싱 결과를 제공합니다. 
  • ZIP은 압축 구조를 따라가고, LNK는 Shell Link 분석을 수행하며, exe·com·scr·dll 계열은 Hex Dump 중심으로 보여줍니다. 
  • 즉, 첨부파일을 “그냥 내려받는 것”이 아니라 내용 기반으로 분해해서 보는 구조입니다.

 
 - 특히 LNK 분석은 실전성이 높습니다.

  • 코드에는 Shell Link 헤더, 플래그, ShowCmd, HotKey, LinkInfo, LocalBasePath 등을 해석하는 로직이 들어 있습니다. 
  • 피싱 메일에서 자주 쓰이는 바로가기 파일은 이름만 보면 일반 문서처럼 보이지만, 실제로는 실행 경로나 인자값이 숨어 있는 경우가 많습니다. 
  • 이런 파일을 단순 첨부가 아니라 구조적으로 뜯어보는 기능은 공격 분석에서 꽤 중요합니다.

 
◎ YARA 기반 매크로·위협 스캔
 - YARA 기반 매크로·위협 스캔도 주목할 만합니다. 

  • 오른쪽의 Yara Rule Open으로 규칙 파일을 불러오고 Macro/Threat Scan을 실행하면, 메일 본문과 MIME 파트, 첨부 내용에 대해 탐지 결과를 확인할 수 있습니다. 
  • 코드상으로는 YARA 룰의 description, risk, category, condition type, weight threshold를 읽고, 각 문자열 패턴을 평가해 점수 기반으로 위험도를 계산합니다. 
  • 단순 일치 여부가 아니라 위험 점수를 함께 보여주는 방식이라서, 우선순위 판단에 도움이 됩니다.

 
 - 이 스캔 기능은 단순 문자열 탐지보다 한 단계 더 실용적입니다.

  • 예를 들어 BEC, 매크로, PowerShell, cmd.exe, PDF, JS, LNK, LOLBins, C2 URL 같은 의심 요소를 룰로 관리하면, 메일 한 통 안에 숨어 있는 다중 신호를 빠르게 모을 수 있습니다. 
  • 코드에서도 “Macro/Threat scan: VBA, PowerShell, cmd.exe, PDF JS, LNK, LOLBins, C2 URLs”라는 방향성이 명확히 드러납니다.

 
◎ 헤더 스푸핑과 BEC 탐지 포인트
 - 헤더 스푸핑과 BEC 탐지 포인트도 별도로 챙겨져 있습니다. 

  • 메일의 From, Reply-To, Return-Path를 비교해 도메인이 다르면 경고를 내고, 발신자 표시와 실제 회신 주소가 다른 경우를 BEC 의심으로 표시합니다. 
  • 이 기능은 사람을 속이는 메일을 찾는 데 특히 유용합니다.
  •  공격자는 표시 이름은 정상처럼 보이게 해두고 회신 주소나 전달 경로를 바꿔 놓는 경우가 많기 때문에, 이 비교 로직은 작은 기능처럼 보여도 실무에서 효과가 큽니다.

 
◎ JSON, XML, LNK, Hex 뷰어와 실전 활용 팁
 - 부가적으로 JSON Viewer와 XML Viewer도 있습니다. 

  • 메일 내부에 구조화된 JSON이나 XML이 포함된 경우 별도 파일로 열어 내용을 확인할 수 있고, 결과는 들여쓰기와 계층 구조를 살려 읽기 쉽게 변환됩니다. 
  • 이런 기능은 첨부 자체보다도 메일 본문에 삽입된 설정값, 템플릿, API 응답, 추적 정보 등을 볼 때 유용합니다.

 
 - 마지막으로, 출력 복사 기능도 빼놓을 수 없습니다.

  • Copy 버튼은 현재 보여주는 결과를 클립보드에 복사해 바로 보고서나 메모에 활용할 수 있게 합니다. 
  • 메일 분석은 한 번 보고 끝나는 일이 아니라, 헤더·본문·첨부·스캔 결과를 조합해 기록하는 작업이 많기 때문에 복사 기능은 의외로 사용 빈도가 높습니다.

 
◎ 마무리

  • 정리하면 RawVera EML Analyzer 탭은 메일 파일 하나를 열었을 때 필요한 거의 모든 초동 분석 기능을 모아둔 실전형 탭입니다.
  • 원문 보기, 헤더 확인, MIME 구조 분석, 첨부파일 분해, HTML·RTF 확인, YARA 스캔, 헤더 스푸핑 탐지, JSON·XML·LNK 뷰어까지 이어지므로, 피싱 메일 분석이나 악성 첨부 식별 작업에 매우 잘 맞습니다. 
  • 단순한 메일 뷰어가 아니라 메일을 증거 단위로 분해해 보는 분석 도구라고 이해하시면 가장 정확합니다.

 
 
 

반응형

[C언어] Data Conversion Tool - RawVera

 


◎ 화면 구성

  • 이미지 기준으로 왼쪽은 입력/출력 영역, 오른쪽은 변환 버튼 모음입니다.
  • 입력창 위쪽에는 HASH 버튼과 파일 선택 아이콘이 있고, 가운데에는 변환용 텍스트 박스, 아래에는 결과 출력창이 배치되어 있습니다. 
  • 오른쪽 “Conversion Options” 패널은 각 변환을 버튼 한 번으로 실행하는 구조라서, 빠르게 결과를 확인하기 좋습니다.

 

◎ 지원 기능 전체

  • 코드상 변환 기능은 상당히 넓습니다. 
  • 기본 문자/숫자 변환으로는 Text to Hex, Hex to Text, Dec to Hex, Hex to Dec, Text to Dec, Dec to Text, Dec to Octal, Octal to Dec가 들어 있습니다.
  • 여기에 Text to UTF7, UTF7 to Text, Hex to UCS2, UCS2 to Hex, Text to Binary, Binary to Text까지 지원합니다.

 

  • 문자열 처리 쪽도 다양합니다. 
  • Escape와 Unescape, HTML Encode/Decode, Text to Base64, Base64 to Text, Hex to Base64, Base64 to Hex가 있고, URL 인코딩도 Text to URL, URL to Text로 제공합니다. 
  • 즉, 웹 공격 페이로드 분석이나 난독화 문자열 복원에 자주 필요한 기능이 한 번에 모여 있습니다.

 

  • 네트워크/바이너리 계열로는 IP to Dec, Dec to IP, IP to Hex, Hex to IP가 있고,
  • 문자셋 확인용으로 ASCII TABLE, ISO-8859-1, Win-1252, CP437 표도 볼 수 있습니다. 
  • 마지막으로 Copy Output to Clipboard, Copy Output to Input, Clear All 같은 작업 보조 버튼도 포함되어 있어 반복 테스트에 최적화되어 있습니다.

 

◎ 해시와 파일 분석

  • 이 탭의 강점은 단순 변환을 넘어 파일 식별까지 연결된다는 점입니다. 
  • 코드에서는 선택한 파일에 대해 MD5, SHA-256, SHA-512 해시를 계산하고, 
  • 파일 시그니처를 바탕으로 PDF, PNG, ZIP, RAR, ELF, PE, SQLite, HWP, EVTX, PCAP, WASM 등 매우 다양한 형식을 식별합니다.

 

  • 또한 파일에 따라 PE 분석도 수행합니다. 
  • 실행 파일의 엔트리포인트, 섹션 위치, 첫 바이트, 링커 버전, 서브시스템, 패커 흔적 등을 문자열로 정리해 보여주며, UPX, MPRESS, ASPack, Themida, VMProtect 같은 패커 시그니처도 일부 탐지합니다. 
  • 악성코드 분석이나 의심 파일 triage에서 꽤 실용적인 구성입니다.

 

◎ 실전 활용 팁

  • 가장 먼저 써볼 만한 흐름은 “입력 → 변환 → 결과 복사”입니다. 
  • 예를 들어 URL 인코딩된 문자열을 붙여 넣고 URL to Text를 누르면, 난독화된 파라미터를 바로 복원할 수 있습니다. 
  • 반대로 의심 문자열을 Hex나 Base64로 바꿔 비교하면, IOC나 페이로드 패턴을 찾기 쉬워집니다.
  • 파일 분석 쪽은 파일 선택 후 HASH를 누르는 방식이 핵심입니다. 
  • 해시값으로 중복 여부를 확인하고, 시그니처와 PE 정보를 함께 보면 “겉보기 확장자”와 “실제 형식”이 다른 경우도 빠르게 잡아낼 수 있습니다. 
  • 포렌식에서는 이런 1차 분류가 시간을 크게 줄여줍니다.

 

◎ 강점과 한계

 - 강점은

  • 기능 수가 많으면서도 UI가 복잡하지 않다는 점입니다. 
  • 특히 인코딩/디코딩, 해시, 시그니처, PE 분석이 한 화면에서 이어지므로, 분석 중간에 외부 사이트나 별도 툴로 이동할 필요가 적습니다.

 - 한계도 보입니다. 

  • 일부 기능은 입력 형식이 조금만 어긋나도 실패할 수 있고, 출력이 “복합 결과” 형태라서 초보자에게는 한 번에 와닿지 않을 수 있습니다. 
  • 그래도 이 프로그램의 성격 자체가 “쉽게 쓰는 범용 변환기”보다 “현장에서 빨리 확인하는 분석 보조도구”에 더 가깝기 때문에, 오히려 장점이 더 큽니다.

 

 

◎ 본문

  • 보안 분석을 하다 보면 문자열 하나, 인코딩 하나, 해시 하나를 확인하는 데도 여러 도구를 오가게 되는 경우가 많습니다. 
  • 그런 점에서 RawVera의 Converter 탭은 꽤 인상적인 구성입니다. 

 

  • 단순히 텍스트를 Hex로 바꾸는 수준이 아니라, Base64·URL·UTF 계열 변환은 물론이고 IP 변환, 파일 해시 계산, 파일 시그니처 식별, PE 분석까지 한 화면에서 이어서 처리할 수 있기 때문입니다. 
  • 즉, 이 탭은 “변환기”라기보다 분석 보조 허브에 가깝습니다.

 

 - 이미지에서 보이는 화면 구성도 실용적입니다. 

  • 왼쪽에는 입력창과 출력창이 크게 배치되어 있고, 오른쪽에는 변환 버튼이 기능별로 정리되어 있습니다. 
  • 상단에는 HASH 버튼과 파일 선택 아이콘이 있어 파일 기반 작업도 바로 시작할 수 있으며, 
  • 하단에는 출력 내용을 입력창으로 다시 보내거나 클립보드에 복사하는 버튼이 있어 반복 작업에 적합합니다. 
  • UI만 봐도 분석가가 실제로 자주 하는 흐름, 즉 “넣고-바꾸고-확인하고-다시 넣는” 과정을 잘 반영하고 있습니다.

 

 - 이 탭의 가장 큰 장점은 지원하는 변환 범위가 넓다는 점입니다. 

  • 일반적인 텍스트 변환부터 살펴보면 Text to Hex, Hex to Text, Dec to Hex, Hex to Dec, Text to Dec, Dec to Text 같은 기본 변환이 들어 있습니다. 
  • 여기에 Dec to Octal, Octal to Dec처럼 흔히 보기 어려운 변환도 포함되어 있어, 숫자 표현 방식이 섞인 데이터를 다룰 때 유용합니다. 

 

  • 또한 Text to UTF7, UTF7 to Text, Hex to UCS2, UCS2 to Hex도 제공되어, 인코딩 조작이나 복원 작업에도 대응할 수 있습니다.
  • 문자열 난독화나 웹 페이로드 분석에서 자주 쓰는 기능도 빠지지 않았습니다. 
  • Escape와 Unescape를 통해 이스케이프 문자열을 정리할 수 있고, HTML Encode와 Decode로 엔티티 처리된 문자열을 확인할 수 있습니다.
  • Base64 관련 기능도 매우 충실해서 Text to Base64, Base64 to Text, Hex to Base64, Base64 to Hex를 모두 지원합니다.
  • 이런 구성은 단순한 변환 편의성뿐 아니라, 악성 스크립트나 숨겨진 인코딩 문자열을 빠르게 복원하는 데 큰 도움이 됩니다.

 

 - 네트워크 주소 관련 기능도 실전적입니다. 

  • IP to Dec, Dec to IP, IP to Hex, Hex to IP가 들어 있어 IPv4 주소를 숫자나 16진수로 바꿔 확인할 수 있습니다. 
  • 침해사고 분석 중에는 로그에 남은 IP가 숫자형으로 표현되거나, 반대로 악성코드 내부에 IP가 정수형으로 들어가 있는 경우가 종종 있습니다. 
  • 이런 상황에서 변환 기능은 단순 편의 기능을 넘어 빠른 인텔리전스 확인 도구가 됩니다.

 

 - 추가로 ASCII TABLE, ISO-8859-1, Win-1252, CP437 같은 문자셋 표도 제공됩니다.

  • 이 부분은 겉보기에는 단순 조회 기능처럼 보이지만 실제로는 상당히 중요합니다. 
  • 예를 들어 손상된 로그, 오래된 파일 포맷, 해외 툴에서 생성된 문자열을 확인할 때 문자셋 차이 때문에 내용이 깨지는 경우가 많기 때문입니다. 
  • 이런 경우 문자셋 비교는 오탐을 줄이고, 원문 해석의 정확도를 높여줍니다.

 

 - 파일 관련 기능은 이 탭의 또 다른 핵심입니다.

  • 코드를 보면 파일 해시 계산은 MD5, SHA-256, SHA-512를 지원합니다. 
  • 해시 계산은 보안 분석에서 가장 기본적인 식별 수단 중 하나이므로, 이 기능만으로도 파일 중복 확인, 샘플 비교, 저장소 정리, IOC 대조가 가능합니다. 
  • 특히 해시를 바로 계산해 복사할 수 있다는 점은 실무에서 체감이 큽니다. 별도의 해시 도구를 여는 과정 없이 바로 다음 분석 단계로 넘어갈 수 있기 때문입니다.

 

 - 더 흥미로운 점은 파일 시그니처 식별 기능입니다.

  • 코드에는 PDF, PNG, JPEG, GIF, BMP, WEBP, TIFF, ICO, ZIP, RAR, 7Z, GZIP, XZ, TAR, SQLite, HWP, HWP5, EVTX, Prefetch, Registry Hive, PCAP, PCAPNG, WASM 등 매우 다양한 포맷의 시그니처가 들어 있습니다. 
  • 즉, 단순히 확장자를 보는 것이 아니라 실제 바이트 패턴으로 파일 유형을 판단할 수 있습니다. 
  • 이는 악성 파일이 정상 확장자를 가장하고 있을 때 특히 유용합니다.
  • 실무에서는 이 기능이 상당히 강력하게 작동합니다. 

 

  • 예를 들어 사용자가 받은 첨부파일이 .jpg로 끝나지만 실제로는 ZIP 구조를 가진 파일일 수 있습니다. 
  • 또는 로그 분석 중 EVTX, Registry Hive, Prefetch 같은 윈도우 아티팩트를 바로 확인해야 하는 상황이 있을 수 있습니다. 
  • 이때 시그니처 기반 판별은 파일의 실제 성격을 빠르게 드러내 주며, 후속 분석 방향을 정하는 데 도움을 줍니다. 
  • 포렌식 초동 분석에서 이런 1차 분류는 시간을 크게 절약해 줍니다.

 

 - PE 분석 요소도 눈여겨볼 만합니다. 

  • 코드상에는 실행 파일의 엔트리포인트, 섹션, PE 헤더, 패커 흔적 탐지와 관련된 로직이 포함되어 있습니다. 
  • 특히 UPX, MPRESS, ASPack, Themida, VMProtect 같은 패커명을 확인할 수 있는 부분은 악성코드 분석에서 매우 의미가 있습니다. 
  • 물론 이것만으로 패킹 여부를 단정할 수는 없지만, “압축/난독화된 샘플인지 먼저 가늠하는 단계”로는 충분히 활용할 수 있습니다. 
  • 정적 분석 전에 빠르게 샘플 성격을 추정하는 용도라고 보시면 이해가 쉽습니다.

 

  • 또 하나 인상적인 부분은 문자열 변환을 단순히 “보여주기”에 그치지 않고, 복합적인 처리를 염두에 두고 설계했다는 점입니다. 
  • 예를 들어 Text to Binary, Binary to Text가 지원되는데, 이 기능은 단순 학습용이 아니라 실제로 바이너리 문자열로 위장한 데이터나, 비트 단위로 표현된 값을 되돌릴 때 도움이 됩니다. 
  • Hex to Base64나 Base64 to Hex처럼 중간 표현을 오가게 하는 기능도 있어서, 인코딩이 여러 겹으로 적용된 문자열을 단계적으로 풀어내기 좋습니다.

 

 - 실제로 활용할 때는 다음처럼 접근하시면 좋습니다.

  • 첫째, 알 수 없는 문자열이 보이면 우선 Base64, Hex, URL, Escape 계열부터 확인합니다. 
  • 둘째, 숫자나 IP가 보이면 Dec, Hex, IP 변환을 사용해 의미를 재구성합니다. 
  • 셋째, 파일이 포함된 경우 해시를 계산하고 시그니처를 확인합니다. 
  • 넷째, 실행 파일이면 PE 분석 결과와 패커 탐지 여부를 함께 봅니다. 

 

 - 이렇게 단계별로 쓰면 

  • RawVera Converter 탭 하나만으로도 초동 분석의 상당 부분을 처리할 수 있습니다.
  • 이 도구가 특히 잘 맞는 사용자는 명확합니다. 
  • 악성 스크립트 분석을 자주 하시는 분, SIEM 경보에서 인코딩된 문자열을 빠르게 풀어야 하는 분, 포렌식 아티팩트를 초기에 분류해야 하는 분, 그리고 샘플 정리와 해시 비교를 반복하는 분석가에게 적합합니다. 
  • 특히 여러 개의 소도구를 매번 띄우는 과정이 번거로운 환경이라면, 이런 통합형 변환기는 작업 효율을 크게 높여 줍니다.

 

 - 정리하면

  • RawVera Converter 탭은 “문자열 변환기”라는 이름보다 훨씬 넓은 범위를 다루는 실전형 분석 도구입니다. 
  • 텍스트와 바이너리 변환, 인코딩 복원, IP 처리, 파일 해시, 시그니처 식별, PE 분석까지 한 번에 이어지므로, 보안 분석 초동 대응과 반복적인 수동 검증에 매우 유리합니다. 
  • 기능 수가 많지만 구조가 단순해서, 숙련자에게는 빠르고, 초보자에게는 학습용으로도 가치가 있습니다. 
  • 결국 이 탭의 핵심은 하나입니다. 분석에 필요한 기본 확인 작업을 한 곳에 모아, 속도와 정확도를 함께 끌어올리는 것입니다.

 

반응형

+ Recent posts