마이크로소프트의 타임 트래블 디버거: TTD 심층 분석

2025-03-13
마이크로소프트의 타임 트래블 디버거: TTD 심층 분석

마이크로소프트의 Time Travel Debugging(TTD)은 강력한 사용자 모드 기록 및 재생 프레임워크로, 개발자는 마치 타임라인을 이동하는 것처럼 프로그램을 디버깅할 수 있습니다. DLL을 삽입하여 프로세스 실행의 모든 상태를 캡처하고 .trace 파일에 저장합니다. 핵심은 Nirvana 런타임 엔진으로, CPU 명령어를 에뮬레이트하여 세밀한 제어를 제공합니다. 부동 소수점 연산, 메모리 모델, 주변 장치 에뮬레이션, 자체 수정 코드와 같은 과제에도 Nirvana는 동적 바이너리 변환 및 코드 캐싱 기술을 사용하여 효율성과 정확성을 보장합니다. 이 문서에서는 TTD를 사용하여 난독화된 32비트 PE 파일을 디버깅하는 중 발생한 버그에 대해 설명하고, TTD 추적 파일 자체를 디버깅에 사용하는 이점을 강조합니다.

더 보기
개발 코드 재생

Go 코드 난독화: 상태 머신 기반 동적 데이터 복호화 접근 방식

2025-03-06
Go 코드 난독화: 상태 머신 기반 동적 데이터 복호화 접근 방식

이 Go 코드는 상태 머신과 무작위 인덱스를 사용한 동적 데이터 복호화를 통해 고급 코드 난독화 기법을 구현합니다. 데이터는 무작위로 청크로 분할되고, 무작위 인덱스 시퀀스가 복호화 순서를 제어합니다. 상태 종속 복호화 키를 사용하여 각 청크를 순차적으로 복호화하고, 최종적으로 원래 데이터를 재구성합니다. 이러한 접근 방식은 리버스 엔지니어링의 어려움을 크게 증가시켜 코드 보안을 효과적으로 보호합니다.

더 보기

러시아 해커, Signal의 '연결된 기기' 기능 악용해 피싱 공격

2025-02-19
러시아 해커, Signal의 '연결된 기기' 기능 악용해 피싱 공격

러시아 연계 해커들이 Signal의 '연결된 기기' 기능을 악용하여 대규모 피싱 공격을 수행하고 있습니다. 공격자들은 그룹 초대나 보안 알림 등 정상적인 Signal 리소스로 위장한 악성 QR 코드를 생성합니다. 이 코드를 스캔하면 피해자의 계정이 공격자가 제어하는 Signal 인스턴스에 연결되어 대화 내용을 실시간으로 도청할 수 있습니다. APT44 등의 그룹이 사용하는 이 기법은 우크라이나 군 관계자를 표적으로 삼고 있습니다. 은밀한 성격과 효과적인 방어 수단의 부족으로 인해 장기간 동안 탐지되지 않고 지속될 수 있는 고위험, 저시그니처 공격입니다.

더 보기

BigQuery의 새로운 파이프 쿼리 구문: 읽기 쉽고, 작성하기 쉽고, 유지 관리하기 쉬움

2025-02-13
BigQuery의 새로운 파이프 쿼리 구문: 읽기 쉽고, 작성하기 쉽고, 유지 관리하기 쉬움

Google BigQuery는 선형 구조를 사용하여 SQL 쿼리 작성 및 유지 관리를 간소화하는 새로운 파이프 쿼리 구문을 도입했습니다. 이 구문을 사용하면 SELECT, 집계, GROUP BY, JOIN, WHERE 등의 연산자를 임의의 순서로 원하는 만큼 적용할 수 있으므로 쿼리 로직이 더욱 명확하고 이해하기 쉬워집니다. 표준 SQL의 엄격한 절 순서, 복잡한 쿼리에서 CTE 또는 중첩된 하위 쿼리가 필요한 문제 등을 해결하며, 데이터 조작의 유연성을 높이기 위해 EXTEND, SET, DROP, RENAME 등의 새로운 파이프 연산자가 도입되었습니다.

더 보기

ScatterBrain 분석: Shadowpad의 정교한 난독화 컴파일러 심층 분석

2025-02-02
ScatterBrain 분석: Shadowpad의 정교한 난독화 컴파일러 심층 분석

카스퍼스키가 처음 발견한 악성코드 패밀리인 POISONPLUG.SHADOW(Shadowpad)는 탐지를 회피하기 위해 사용자 정의 난독화 컴파일러인 ScatterBrain을 사용합니다. Google의 위협 인텔리전스 그룹(GTIG)과 FLARE 팀은 협력하여 ScatterBrain의 리버스 엔지니어링을 수행하고 독립 실행형 정적 디옵퓨스케이터를 만들었습니다. 이 디옵퓨스케이터는 ScatterBrain의 세 가지 보호 모드(선택적, 완전, 완전 "헤더 없음")를 처리하여 제어 흐름 그래프 난독화, 명령어 변이, 가져오기 테이블 보호를 무효화합니다. 이 연구는 Shadowpad와 같은 정교한 악성코드의 분석 및 대응 능력을 크게 향상시킵니다.

더 보기

gRPC vs REST: 적절한 API 설계 모델 선택

2025-01-23
gRPC vs REST: 적절한 API 설계 모델 선택

이 글에서는 주요 두 가지 API 설계 모델인 gRPC와 REST, 그리고 OpenAPI의 역할을 자세히 다룹니다. RPC 모델을 기반으로 하는 gRPC는 데이터 세부 정보를 숨기는 반면, HTTP를 기반으로 하는 REST는 리소스 중심입니다. 많은 API는 두 모델의 장점을 효과적으로 결합하여 엔티티 중심 접근 방식을 사용하지만, gRPC로 구현됩니다. 이 글에서는 API에 HTTP를 사용하는 세 가지 방법인 REST, gRPC, OpenAPI를 비교하고 각각의 장단점을 설명하며, 최종적으로 특정 요구 사항에 따라 최적의 접근 방식을 선택할 것을 제안합니다. gRPC는 뛰어난 성능을 제공하지만 특수 소프트웨어가 필요합니다. OpenAPI는 유연하지만 설계가 복잡합니다. REST는 간단하고 직관적이지만 덜 사용됩니다. 선택 시에는 프로젝트 요구 사항, 팀의 기술 스택, 유지 관리 용이성을 고려해야 합니다.

더 보기
개발 API 설계