질문이 있으십니까?

기본 컨텐츠 및 사용자가 직접 참여하여 만들어진 다양한 내용을 검색합니다.

첨부파일 저장 경로에 대한 보안모듈 적용  

문제점

그 동안 두 가지의 문제점이 있었습니다. 첨부 파일의 서버에 저장 경로가 암호화 되어 있지 않아 노출되는 문제와 더불어, UTF-8 특수언어에 인코딩문제가 간혹 발생할 수 있었습니다. 더불어, 동일폴더에 같은 파일의 이름이 존재한다면 (0)이런식으로 동일 파일명 뒤에 숫자를 강제적으로 붙히게 되어 있었습니다. 이 두가지는 보안적 문제와 사용자측면에서도 파일명의 변형이 문제가 되는 것입니다.
http://filesendmailxx.zioyou.com/files/mail_zioyou_com/shindalsoo@zioyou_com /%EA%B2%AC%EC%A0%81%EC%84%9C%280%29%2Exlsx
견적서.xls -> 견적서(0).xls -> 견적서(1).xls
  1. 첨부 파일의 서버 경로명이 보안적 요소가 없어 노출되는 문제가 발생합니다.
  2. 서버에 같은 폴더안에 동일 파일이 존재할 경우 파일명 뒤에 숫자를 붙혀 강제적으로 변형되었습니다.
  3. 파일 확장자가 노출되어 어떤 파일인지 보안에 노출됩니다.

개선사항

위 2가지를 근본적으로 해결하기 위해 첨부 파일의 저장 경로를 암호화 하였으며 동일한 파일이 같은 디렉토리에 존재하더라도 파일명의 훼손없이 그대로 유지하도록 조치하였습니다.
[ 그림. 암호화 알고리즘 적용한 결과 ]
위에 보시는 바와 같이 3가지 측면에서 보안 취약점을 조치하였습니다. 첨부파일의 경로를 사용자가 유추할 수 없도록 하였으며, 파일명도 마찬가지입니다. 더불어 암호화 알고리즘을 사용하여 어떤 뜻인지 모르게 처리하였습니다. 서버에서 실행가능하지 못하도록 파일명의 확장자도 무조건 인식할 수 없는 .file 형태로 물리적 저장을 합니다.
[ 그림. 물리적으로 서버에 저장된 파일의 모습 ]
서버에서 물리적으로 저장된 모습입니다. 만약, 서버에 악의적인 목적으로 접근하더라도 해당 파일명의 원본이 무엇인지 알 수 없도록 조치했습니다. 폴더명과 파일명 모두 그렇게 처리했습니다. 파일 확장자가 실행할 수 없는 .file 이기 때문에 서버상에서 실행될 수 없습니다.
  1. 디렉토리 폴더경로 암호화 처리
  2. 파일명 암호화 처리
  3. 파일 확장자를 .file로 만들어 실행될 수 없는 형식으로 저장
  4. 원본 파일명 끝에 숫자가 붙는 형식의 변형되지 않도록 조치

적용시점

위, 사항은 2018년 03월 31일 야간 23시에 적용됩니다.

댓글을 작성하세요

문서 이력