들어가며1편에서는 감염된 USB 드라이브의 최초 동작 방식부터, 1차 로더인 u364204.dll이 EDR 제품의 API 후킹을 어떻게 원천 우회하는지까지를 다뤘습니다. PEB 직접 워킹, 해시 기반 API 리졸빙, Direct Syscall의 조합이 얼마나 정교하게 설계된 구조인지 확인할 수 있었습니다. 2편에서는 1차 로더가 최종적으로 시스템에 무엇을 설치하는지, 그리고 설치된 각 컴포넌트가 구체적으로 어떤 역할을 수행하는지를 순서대로 분석합니다. 아울러 왜 단순한 파일 삭제만으로는 이 악성코드를 완전히 제거할 수 없는지, 그 구조적 이유도 함께 살펴봅니다. 분석 대상이 된 악성코드는 AhnLab ASEC이 2025년 2월부터 추적 중인 PrintMiner 계열, Mandiant가 DIRTYBULK ..
전체 글
하고싶은 걸 하는 개발일기 겸 일상일기들어가며얼마 전 지인에게서 PC를 사용하다가 시스템이 갑자기 둔해지고 이상한 동작을 보인다며 연락이 왔습니다.USB를 꽂고 나면 탐색기에서 파일이 하나도 보이지않는데, 용량은 가득 차있는 기이한 상태라고 했습니다. 첫 설명만 듣고는 전형적인 USB 웜 감염 증상이라고 판단했습니다. 파일을 숨김 처리해두는 구형 VBS 웜 계열이겠거니 하고가볍게 생각했던 것이 솔직한 심정이었습니다. 흥미로워 분석해 볼 겸 파일을 수거해 분석을 시작하고 나서 생각이 완전히 바뀌었습니다.단순한 파일 은닉 웜이 아니었습니다. 커널 드라이버 취약점을 직접 익스플로잇하고, EDR 제품의 API 후킹을 우회하며, C&C 서버와의 통신이 이미 완료된 상태였습니다. 며칠에 걸쳐 전체 파일을 분석한 기록을 두 편에 나눠 정리합니다. 1편에..
들어가며지난 1편에서는 치트 엔진을 활용해 플레이어 데이터를 읽어올 수 있는 오프셋과 3D 좌표 변환의 핵심인 ViewMatrix를 메모리에서 직접 찾아내는 과정을 다루었습니다.이번 2편에서는 앞서 확보한 데이터를 바탕으로, 실제 C++ DLL을 제작하여 게임 프로세스 내부에 인젝션(Injection)하고, DirectX 9 렌더링 파이프라인을 후킹하여 화면에 ESP(위치 추적) 박스를 그리는 전체 과정을 구현해 보겠습니다. 이전 포스팅 보러가기https://imoracle.tistory.com/81 [CS:S] ESP 월핵 / 에임봇 개발기 - 1편: 엔티티리스트 탐색과 오프셋들어가며게임 클라이언트 해킹 연구는 단순한 메모리 변조를 넘어, 운영체제의 메모리 관리 구조, 3D 렌더링 파이프라인, 그리고 ..
들어가며게임 클라이언트 해킹 연구는 단순한 메모리 변조를 넘어, 운영체제의 메모리 관리 구조, 3D 렌더링 파이프라인, 그리고 어셈블리 역공학 등을 아우르는 종합적인 기술의 집약체입니다. '게임 핵의 역사'를 되짚어보면 초기 유저 모드에서의 단순한 메모리 읽기/쓰기에서 시작해, 현재는 커널 레벨이나 하이퍼바이저 단에서 안티치트와 창과 방패의 싸움을 벌이는 수준까지 발전했습니다. 이전에 본 게임(CS:S)을 대상으로 DirectX(D3D) Hooking을 수행하여, 모델의 Stride 값을 기반으로 색상을 입히는 Chams(월핵의 일종)를 구현해 본 적이 있습니다. 하지만 Stride 방식은 렌더링되는 폴리곤의 고유값에만 의존해 객체를 식별하기 때문에, 모델이 겹치거나 특정 환경 요소와 혼동될 때 필연적으..
들어가며프로그래머로 살다 보면 "이거 내가 만들면 더 잘 만들겠는데" 싶은 순간이 있습니다. 연차 관리 시스템 DayOFF는 그 충동에서 시작됐습니다. 주변에서 연차 관리를 엑셀로 하는 걸 보면서 항상 불편함을 느꼈습니다. 수식이 잘못 설계되어 있어도 아무도 모르고, 누군가 실수로 셀을 건드리면 데이터가 날아가고, 매년 새해가 되면 파일을 새로 복사해서 써야 하는 상황. HR 담당자가 연차 계산 실수로 노동부에 신고 당하는 일도 심심치 않게 일어납니다."근로기준법대로 정확하게, 실무에서 바로 쓸 수 있는 연차관리 프로그램을 직접 만들자." 그렇게 DayOFF 개발이 시작됐습니다. 1편에서는 연차 계산 엔진과 버그 수정을, 2편에서는 라이센스 시스템과 보안을 다뤘습니다. 1편 보러가기https://imor..
들어가며프로그래머로 살다 보면 "이거 내가 만들면 더 잘 만들겠는데" 싶은 순간이 있습니다. 연차 관리 시스템 DayOFF는 그 충동에서 시작됐습니다. 주변에서 연차 관리를 엑셀로 하는 걸 보면서 항상 불편함을 느꼈습니다. 수식이 잘못 설계되어 있어도 아무도 모르고, 누군가 실수로 셀을 건드리면 데이터가 날아가고, 매년 새해가 되면 파일을 새로 복사해서 써야 하는 상황. HR 담당자가 연차 계산 실수로 노동부에 신고 당하는 일도 심심치 않게 일어납니다."근로기준법대로 정확하게, 실무에서 바로 쓸 수 있는 연차관리 프로그램을 직접 만들자." 그렇게 DayOFF 개발이 시작됐습니다. 지난 1편에서는 DayOFF의 탄생 배경과 연차 계산 엔진 구현, 그리고 개발하면서 발견한 버그들을 다뤘습니다. 1편 보러가기..
들어가며프로그래머로 살다 보면 "이거 내가 만들면 더 잘 만들겠는데" 싶은 순간이 있습니다. 연차 관리 시스템 DayOFF는 그 충동에서 시작됐습니다. 주변에서 연차 관리를 엑셀로 하는 걸 보면서 항상 불편함을 느꼈습니다. 수식이 잘못 설계되어 있어도 아무도 모르고, 누군가 실수로 셀을 건드리면 데이터가 날아가고, 매년 새해가 되면 파일을 새로 복사해서 써야 하는 상황. HR 담당자가 연차 계산 실수로 노동부에 신고 당하는 일도 심심치 않게 일어납니다."근로기준법대로 정확하게, 실무에서 바로 쓸 수 있는 연차관리 프로그램을 직접 만들자." 그렇게 DayOFF 개발이 시작됐습니다. 왜 직접 만들었나시중 프로그램의 문제점시중에 연차관리 프로그램이 없는 건 아닙니다. 상용 ERP 솔루션도 있고, 각종 엑셀 템..
들어가며이 글은 상용 DLP(Data Loss Prevention) 프로그램의 핵심 기능을 분석하고, 윈도우 커널 드라이버 기반으로 직접 구현해보는 시리즈입니다.지난 글에서는 Minifilter를 확장하여 '민감정보 패턴 검사'와 '파일 첨부 차단' 기능을 구현하는 과정, 그리고 그 과정에서 마주친 Office 파일(.xlsx) 검사의 딜레마를 어떻게 해결했는지 다루어 보았습니다. 이번 글에서는 DLP 시스템의 핵심 기능 중 하나인 파일 암호화 구현 과정을 다룹니다. 파일을 특정 '보안 폴더'에 넣으면 자동으로 AES-256 방식으로 암호화되어 전용 확장자(.siyul)로 저장되고, 더블클릭 시 패스워드를 입력하면 원래 프로그램으로 열리는 명시적 암호화(Explicit Encryption) 구조를 만들어..
들어가며이 글은 상용 DLP(Data Loss Prevention) 프로그램의 핵심 기능을 분석하고, 윈도우 커널 드라이버 기반으로 직접 구현해보는 시리즈입니다.지난 글에서는 네트워크 필터(WFP)의 한계와 유저모드 클립보드 차단을 다루었습니다. 이번 편에서는 다시 커널로 돌아가서, Minifilter를 확장하여 '민감정보 패턴 검사'와 '파일 첨부 차단' 기능을 구현하는 과정, 그리고 그 과정에서 마주친 Office 파일(.xlsx) 검사의 딜레마를 어떻게 해결했는지 공유합니다.그리고 파일 첨부를 차단하는 기능을 구현하는 과정에 대해 서술합니다. 이전 글 보러가기https://imoracle.tistory.com/75 [DLP 개발기] 4. WFP DNS 차단의 한계와 유저모드 클립보드 제어들어가며이 ..
들어가며이 글은 상용 DLP(Data Loss Prevention) 프로그램의 동작 원리를 분석하고, 윈도우 커널 드라이버 기반의 보안 솔루션을 직접 구현해보는 시리즈입니다.지난 글에서는 WPF 트레이 앱 통신과 매체/파일 제어(USB & Minifilter)를 다뤘습니다. 이번 편에서는 네트워크 보안의 핵심인 WFP(Windows Filtering Platform) 기반 웹사이트 차단 시도와 일상적인 정보 유출 경로인 클립보드 차단 구현 과정을 공유합니다. 이전 글 보러가기https://imoracle.tistory.com/74 [DLP 개발기] 3. WPF 트레이 앱 통신과 커널 레벨 매체/파일 제어 (USB & Minifilter)들어가며이 글은 오피스키퍼 등 상용 DLP(Data Loss Prev..
들어가며이 글은 상용 DLP(Data Loss Prevention) 프로그램의 동작 원리를 분석하고, 윈도우 커널 드라이버 기반의 보안 솔루션을 직접 구현해보는 시리즈입니다.지난 2편에서는 커널 드라이버의 IOCTL 통신, 소프트웨어 실행 차단, 그리고 E2E 파이프라인 구축 과정을 다뤘습니다.이번 글에서는 사용자에게 동작 상태를 보여줄 WPF 트레이 앱을 만들고, 본격적인 매체 제어인 USB 차단과 Minifilter 기반 파일 확장자 차단을 구현해 봅니다. 이전 편 보러가기https://imoracle.tistory.com/73 [DLP 개발기] 2. 커널 드라이버와 IOCTL, 그리고 E2E 파이프라인 구축들어가며지난 1편에서 설계한 아키텍처를 바탕으로, 이번 편에서는 실제로 데이터가 흐르고 동작하..
들어가며지난 1편에서 설계한 아키텍처를 바탕으로, 이번 편에서는 실제로 데이터가 흐르고 동작하는 E2E(End-to-End) 파이프라인을 완성해 보겠습니다. 목표는 심플합니다. "관리자 웹에서 정책을 변경하면, 30초 안에 커널 드라이버까지 도달해 실제 차단이 이루어지게 만든다." 이전편 보러가기https://imoracle.tistory.com/72 [DLP 개발기] 1. 커널 드라이버 기반 보안 시스템, OpenGuard 시작하기들어가며 다양한 기업용 PC 보안 솔루션을 접하다 보면 자연스레 호기심이 생깁니다. "이거 대체 어떻게 구현한 거지?" 사실 오래전, DLP 보안 솔루션 전문 기업에 입사 지원을 했다가 서류에서 탈imoracle.tistory.com 다음편 보러가기https://imoracl..
