피드로 돌아가기
Dev.toSecurity
원문 읽기
C 언어 기초 분석을 통한 Memory Leak 및 Format String 취약점 식별
En Route to Becoming a Vulnerability Researcher Day 1: Writing my first C programs and learning why printf is a weapon
AI 요약
Context
Low-level 언어인 C의 메모리 관리 방식과 시스템 콜 작동 원리 분석. 표준 라이브러리 함수가 운영체제 커널과 상호작용하는 과정에서 발생하는 추상화 계층의 동작 이해 필요.
Technical Solution
- printf 함수 실행 시 내부적으로 write() system call을 호출하여 커널과 직접 통신하는 구조 파악
- strace 도구를 활용하여 단순 출력 프로그램 실행 시 30회 이상의 kernel operations가 발생하는 과정 검증
- Integer Truncation 특성으로 인해 정수 나눗셈 시 소수점이 제거되는 데이터 처리 메커니즘 분석
- Format Specifier 불일치로 인한 Stack 메모리 정보 노출 및 Format String Vulnerability 발생 원인 식별
- & 연산자를 통한 변수의 실제 Memory Address 접근 및 %p 포맷터를 이용한 포인터 값 출력 구조 확인
실천 포인트
1. 정수 나눗셈 수행 시 Integer Truncation으로 인한 데이터 손실 및 비즈니스 로직 오류 가능성 검토
2. 사용자 입력값이 포함된 문자열을 printf의 첫 번째 인자로 직접 전달하는 구조 배제
3. 시스템 콜 발생 횟수 최적화를 위한 표준 라이브러리 함수의 추상화 비용 분석