외부 CSV의 메모가 수식으로 실행될 수 있나: 파일 열기 전 확인
발행
외부에서 받은 거래 CSV는 확장자가 단순한 텍스트처럼 보여도, 엑셀 같은 프로그램에서 열면 셀 내용이 수식으로 해석될 수 있다. 메모 칸이 글자라는 이유만으로 안전하다고 가정하지 않는다. 데이터를 읽는 목적과 계산식을 실행하는 목적을 구별해야 한다.
메모와 수식의 경계
OWASP는 신뢰할 수 없는 입력이 CSV에 들어가고, 스프레드시트가 이를 수식으로 해석하는 문제를 CSV 또는 수식 주입이라고 설명한다. 등호로 시작하는 값이 대표적이며 프로그램과 환경에 따라 다른 시작 문자도 주의 대상이다. 단순한 예로 =1+2는 사람이 적은 설명처럼 보일 수 있지만 수식으로 인식되면 결과값으로 표시될 수 있다. 공격을 재현할 필요 없이 데이터가 해석되는 방식을 이해하는 예다.
거래 메모, 업체명, 주소 부가 설명처럼 외부 입력이 들어가는 열을 계산식 열과 분리한다. 파일을 바로 더블클릭하기 전에 출처와 배포 경로를 확인하고, 원본을 보존한 상태에서 신뢰할 수 있는 텍스트 미리보기나 가져오기 도구로 내용을 살핀다. 스프레드시트로 가져올 때는 필요한 열을 텍스트로 취급하는지 확인한다.
따옴표 하나가 만능 해결책은 아니다
CSV의 구분자 때문에 열이 밀리지 않도록 하는 인용 규칙과 수식 실행을 막는 처리는 목적이 다르다. OWASP는 일부 이스케이프 방식이 엑셀에서 저장 후 다시 열 때 유지되지 않을 수 있으며, 모든 프로그램과 후속 처리에 공통으로 안전한 한 가지 변환은 없다고 설명한다. 앞에 문자를 붙이면 분석용 원값 자체가 달라질 수도 있다.
따라서 사람이 볼 파일과 프로그램이 읽을 원자료의 용도를 나눈다. 외부에 배포할 파일이라면 사용 예정 프로그램에서 첫 열기뿐 아니라 저장·재열기 후의 상태도 검증한다. 조직의 데이터 처리 절차가 있다면 그 방식으로 처리하고 보안 경고를 무조건 해제하는 방법을 안내하지 않는다.
의심스러운 셀이 있다면 원문과 발견 위치를 별도로 남기고 해당 행을 실행해 의미를 알아내려 하지 않는다. 셀의 표시 결과가 정상이라는 사실만으로 원래 입력이 안전하다고 판단하지 않는 것이 핵심이다. 부동산 자료 분석에서는 금액의 정확성뿐 아니라 자료를 여는 과정도 검증 범위에 들어간다.
출처와 확인일
- OWASP CSV Injection — 확인일 2026-10-16