피드로 돌아가기
Dev.toSecurity
원문 읽기
CSV export 경계면의 특수문자 필터링을 통한 Formula Injection 원천 차단
CSV injection: the export button that runs code on someone else's machine
AI 요약
Context
사용자가 입력한 텍스트 데이터가 Spreadsheet 소프트웨어에서 수식으로 해석되어 실행되는 CSV Injection 취약점 발생. 데이터베이스 저장 단계의 검증만으로는 스프레드시트 앱의 수식 해석 엔진으로 인한 런타임 실행 위험을 방지하기 어려운 구조적 한계 존재.
Technical Solution
- Input Validation 단계가 아닌 CSV 파일 생성 시점의 Output Sanitization 전략 채택
- Spreadsheet 앱의 수식 시작 기호인 '=', '+', '-', '@', Tab, Carriage Return 식별 로직 구현
- 식별된 특수문자 앞에 Single Quote(')를 추가하여 Spreadsheet 엔진이 데이터를 강제적으로 Plain Text로 처리하도록 유도
- Database 계층의 데이터 변조를 방지하기 위해 CSV Export 경계면에서만 선택적으로 적용하는 격리 설계
- 내부 관리자 권한을 가진 스태프의 세션 탈취 및 원격 명령 실행(DDE) 가능성을 차단하는 보안 레이어 구축
실천 포인트
- 사용자 입력값이 포함된 모든 CSV Export 기능의 첫 번째 문자 검사 로직 확인 - 데이터베이스 저장 값이 아닌 출력 시점의 컨텍스트에 맞는 Sanitization 적용 여부 검토 - 내부 관리자용 툴이라도 외부 입력값이 포함된다면 Zero Trust 원칙에 따라 보안 필터 적용