피드로 돌아가기
Dev.toSecurity
원문 읽기
외부 입력 데이터 검증 부재로 인한 RCE 및 Path Traversal 취약점 해결
AppleScript Injection and Directory Traversal — Security Bugs I Fixed in My Own Apps
AI 요약
Context
ADB 출력값 및 파일 경로를 신뢰하여 쉘 명령어로 직접 전달하거나 파일 시스템에 접근하는 구조 설계. 외부 입력값이 런타임에 시스템 명령어로 해석되거나 베이스 디렉토리를 벗어날 수 있는 보안 설계 결함 존재.
Technical Solution
- 쉘 인터프리터를 통한 명령어 실행 방식을 Argument Array 전달 방식으로 변경하여 AppleScript Injection 원천 차단
canonicalize()함수를 통한 절대 경로 정규화 및starts_with()검증으로 Directory Traversal 공격 방지symlink_metadata()를 활용한 심볼릭 링크 탐지 및 동기화 대상 제외 로직 구현을 통한 임의 위치 쓰기 공격 차단- 외부 입력값에 대한 엄격한 Sanitization 적용 및 쉘 문자열 보간(Interpolation) 제거로 Execution Context 분리
실천 포인트
- 외부 시스템(ADB, API 등)에서 수신한 데이터를 쉘 명령어의 인자로 사용할 때 Argument Array 방식 채택 여부 확인 - 파일 시스템 접근 시 정규화된 경로(Canonical Path)가 지정된 Root 디렉토리 내에 존재하는지 검증하는 로직 추가 - 파일 동기화 및 복사 로직 구현 시 Symlink 처리 정책 수립 및 비정상적인 링크 참조 차단 여부 검토