안전한 파일 저장
Enterprise, Enterprise Advanced 플랜에서 사용할 수 있습니다.
이 문서는 iOS 및 Android용 Mattermost 모바일 앱의 파일 저장에 적용되는 보안 조치를 설명합니다. 애플리케이션 컨테이너 안에서 파일이 어떻게 저장·접근·보호되는지 다루며, 모바일 기기의 민감한 데이터와 관련된 우려 사항을 짚습니다. 목표는 권한이 있는 담당자만 해당 데이터를 열람·접근·공유할 수 있도록 하고, 권한 없는 대상에게 노출되지 않게 하며, 서드파티 애플리케이션으로부터 격리하는 것입니다.
Mattermost는 iOS와 Android 양쪽의 견고한 샌드박싱 메커니즘을 활용해 애플리케이션 컨테이너 내부의 캐시 폴더에 파일을 안전하게 저장하며, 권한 없는 서드파티 앱으로부터 격리합니다. 사용자가 시작하는 동작(다운로드, 공유, 링크 복사)은 서버 측 권한으로 통제되므로, 관리자는 HIPAA 규제 정보와 같은 민감한 데이터에 대한 접근을 권한이 있는 담당자로만 제한할 수 있습니다.
파일 저장과 앱 샌드박스 보안
Mattermost 모바일 앱을 통해 업로드하거나 접근한 파일은 앱의 캐시 폴더에 저장되며, 이 폴더는 앱의 전용 저장 컨테이너 안에 있습니다. 이 저장 위치는 각 플랫폼의 샌드박싱 모델로 격리됩니다.
iOS – 앱 샌드박스
- 샌드박싱 및 저장:
iOS는 컨테이너화된 파일 시스템과 엄격한 프로세스 격리에 기반한 엄정한 샌드박싱 모델을 사용합니다. 각 앱은 자체 샌드박스 안에서 동작하며, 홈 디렉터리는 설치 시 무작위로 할당됩니다. 따라서 Mattermost 앱의 캐시 폴더에 저장된 파일은 사용자가 명시적으로 공유하지 않는 한 해당 앱에서만 접근할 수 있습니다.
- 안전한 파일 열람:
- 이미지·동영상이 아닌 파일은
QLPreviewController같은 안전한 프레임워크로 렌더링됩니다. 이 컨트롤러는 앱 샌드박스 안에서 파일 미리보기를 표시하므로 원본 파일 데이터가 외부 프로세스에 노출되지 않습니다. - 지원되는 이미지·동영상 파일은 앱 안에서 바로 미리보기가 제공되며, 파일은 안전한 샌드박스 내부의 앱 캐시 폴더로 내려받아집니다. 지원되지 않는 이미지·동영상 형식의 경우, Mattermost 모바일 앱은 다른 파일 형식과 마찬가지로
QLPreviewController프레임워크를 사용합니다. QLPreviewController에서도 지원되지 않는 형식이면서 서버에서 모바일 다운로드가 활성화되어 있다면, 사용자는 원하는 위치로 파일을 내려받을 수 있습니다. 다만 모바일 다운로드가 비활성화되어 있으면 이러한 파일은 사용자가 이용할 수 없습니다.
- 이미지·동영상이 아닌 파일은
- 공식 참고 자료:
Android – 범위 지정 저장소
- 샌드박싱 및 저장:
Android는 각 앱에 고유한 Linux 사용자 ID와 전용 프라이빗 디렉터리를 할당하는 범위 지정 저장소(scoped storage)를 사용합니다. 이 모델은 명시적 권한 없이는 다른 애플리케이션이 앱의 캐시에 접근하지 못하도록 막습니다. 따라서 기기가 루팅되었거나 사용자가 명시적으로 데이터를 공유하지 않는 한, Mattermost 앱의 파일은 다른 앱에서 접근할 수 없습니다.
- 안전한 파일 열람:
- 사용자가 이미지·동영상이 아닌 파일을 열람하려고 하면 Mattermost는
Intent.ACTION_VIEW를 사용해 파일을 엽니다. 이 인텐트는 사용자가 명시적으로 동작을 실행한 경우에만 렌더링을 외부 앱에 위임하며, 파일 자체는 Mattermost의 캐시 폴더에 안전하게 저장된 상태로 유지됩니다. - 이미지·동영상이 아닌 파일 열람은 서버에서 모바일 다운로드가 활성화된 경우에만 가능합니다.
- 지원되는 형식의 이미지·동영상 파일은 앱 안에서 바로 미리보기가 제공되며, 파일은 안전한 샌드박스 내부의 앱 캐시 폴더로 내려받아집니다. 지원되지 않는 이미지·동영상 형식의 경우, Mattermost 모바일 앱은 다른 파일 형식과 마찬가지로
Intent.ACTION_VIEW를 사용해 외부 애플리케이션으로 파일을 엽니다.
- 사용자가 이미지·동영상이 아닌 파일을 열람하려고 하면 Mattermost는
- 공식 참고 자료:
또한 두 플랫폼 모두 저장 공간이 부족하거나 사용자가 로그아웃할 때 등 캐시 데이터를 자동으로 정리할 수 있어, 민감한 정보가 기기에 남을 위험을 줄여 줍니다.
외부 애플리케이션에 대한 파일 처리 구분
- 파일 미리보기:
파일 미리보기는 위의 iOS·Android "안전한 파일 열람" 섹션에서 설명한 보안 열람 방식을 따릅니다. 미리보기 이전의 모든 파일은 Mattermost 앱 샌드박스의 캐시 폴더에 저장됩니다. 지원되는 형식의 이미지와 동영상은 Mattermost 모바일 앱 안에서 바로 미리보기가 제공됩니다. 이미지·동영상이 아닌 파일은 iOS에서는 앱 안에서 미리보기가 제공되지만, Android에서는 외부 애플리케이션으로 넘겨지며 원본 데이터는 앱 캐시에 안전하게 저장된 상태로 유지됩니다. 이미지·동영상이 아닌 파일의 미리보기는 서버 측에서 모바일 다운로드가 활성화된 경우에만 가능합니다.
- 파일 다운로드:
- 사용자가 파일 다운로드를 시작하면 파일은 먼저 Mattermost의 프라이빗 캐시 디렉터리에 저장됩니다. 이후 플랫폼별 공유 방식을 통해 다른 위치에 저장할지 즉시 묻습니다.
- iOS 기기의 경우:
- 내장 샌드박싱 덕분에, 사용자가 시스템의 파일 공유 메커니즘으로 명시적으로 공유하거나 저장하지 않는 한 내려받은 파일에 다른 앱이 접근할 수 없습니다. 다운로드가 완료되면 파일이 갤러리에 나타납니다.
- 서버에서 다운로드 설정이 활성화되어 있으면 사용자는 두 가지 선택지를 갖습니다.
- 파일 다운로드: 파일 앱이 열리며, iCloud를 포함해 허용된 모든 위치에 파일을 저장할 수 있습니다.
- 파일 공유: 네이티브 공유 시트가 실행되어 호환되는 다른 애플리케이션과 파일을 공유할 수 있습니다.
- Android 기기에서는 앱이 시스템 파일 선택기를 사용합니다. 최종 사용자는 원하는 저장 위치를 선택할 수 있습니다. 저장한 뒤에는 선택한 위치와 기기의 파일 공유 권한에 따라 다른 앱에서도 파일에 접근할 수 있습니다.
파일 접근 옵션
서버 구성에 따라 사용자는 Mattermost 모바일 앱에서 파일을 직접 내려받거나, 공유하거나, 공개 링크를 복사할 수 있습니다. 이러한 동작은 항상 사용자가 시작하므로, 민감한 데이터는 명시적인 동의가 있을 때만 노출됩니다.
또한 관리자는 민감한 콘텐츠가 승인된 채널 안에 머무르도록 모바일 파일 업로드와 다운로드를 제한할 수 있습니다. 모바일 파일 다운로드를 비활성화하면 앱에서는 이미지와 동영상 미리보기만 허용됩니다. 다만 Mattermost 서버에서 일반 파일 공유가 활성화되어 있다면 모바일 브라우저를 통한 파일 작업은 여전히 가능합니다.
민감한 데이터를 위한 계층 방어 전략
Mattermost는 민감한 정보와 HIPAA 규제 정보 같은 민감한 데이터를 권한 있는 담당자만 접근·공유할 수 있도록 보호하도록 설계되었습니다. 안전한 모바일 앱 기능과 강력한 서버 측 통제를 결합해, 데이터 노출 위험을 최소화하는 계층 방어를 제공합니다.
핵심 방어 축
- 견고한 인증: Mattermost는 SSO(예: SAML, LDAP, OpenID Connect) 또는 전통적인 사용자 이름/비밀번호 로그인을 통한 사용자 인증을 요구합니다. 이 인증은 서버 측 ID 통제로 관리되므로 검증된 사용자만 앱과 데이터에 접근할 수 있습니다. 자세한 내용은 Mattermost 보안 개요를 참고하세요.
- 서버 측 접근 통제: 관리자는 시스템 콘솔에서 정책을 적용해 파일 다운로드, 공유, 공개 링크 생성을 제한할 수 있습니다. 현재 정책은 서버 수준에서 적용됩니다. 자세한 내용은 구성 설정 - File Sharing and Downloads를 참고하세요.
- 샌드박스 격리: 앞서 설명한 대로 Mattermost 모바일 앱은 샌드박스 환경에 파일을 저장합니다. 이 격리 덕분에 기기를 공유하거나 기기가 침해되더라도, 사용자의 명시적 동작 없이는 다른 앱이 캐시된 파일에 접근할 수 없습니다.
- 통제된 파일 미리보기: 파일 미리보기(iOS의
QLPreviewController또는 Android의 open intent)는 애플리케이션의 통제된 환경 안에서 이루어지거나, 민감한 데이터를 샌드박스 밖으로 복제하지 않은 채 OS가 승인한 앱에 위임됩니다. - OS 수준 암호화: 캐시 폴더의 파일은 기본적으로 암호화되지 않은 상태로 저장되지만, OS 수준 암호화(iOS File Data Protection 및 Android Full Disk Encryption)로 저장 시 보호됩니다.
엄격한 인증, 서버 측 통제, 샌드박스 격리, 안전한 파일 처리를 결합함으로써 Mattermost는 민감한 데이터가 권한 있는 사용자에게만 머무르도록 하며, 접근과 공유는 서버 정책, 플랫폼 보안 기능, 사용자의 명시적 동의로 엄격하게 통제됩니다.
파일 격리 검증 테스트 절차
아래 플레이북은 민감한 데이터가 있을 수 있는 Mattermost 앱의 프라이빗 캐시 폴더에 저장된 파일에 권한 없는 서드파티 애플리케이션이 접근할 수 없음을 확인하기 위한 것입니다. 이 테스트는 Downloads/ 같은 공개 디렉터리는 접근할 수 있는 반면, 권한 있는 사용자가 명시적으로 공유하지 않는 한 Mattermost의 프라이빗 캐시는 격리된 상태로 유지된다는 점을 보여주도록 설계되었습니다.
- 준비
- Android의 경우:
- PDF 열람을 위해 Adobe Acrobat Reader를 설치합니다.
- 파일 관리자로 Files by Google을 설치합니다.
- 시스템 브라우저로 Google Chrome을 설치합니다.
- iOS의 경우:
- (App Store에서) Adobe Acrobat Reader를 설치합니다.
- 내장 파일 앱을 사용합니다.
- 기본 브라우저로 Safari를 사용합니다.
- 이 단계에는 어떤 PDF 뷰어, 파일 관리자, 브라우저를 사용해도 됩니다.
- Android의 경우:
- 대조 테스트: 공개 디렉터리 접근 확인
- Android:
- Files by Google을 엽니다.
- 알려진 공개 디렉터리(예:
Downloads/)로 이동합니다. - 해당 위치의 파일이 보이고 열 수 있는지 확인합니다.
- iOS:
- 파일 앱을 엽니다.
- 접근 가능한 디렉터리(예: iCloud Drive 또는 "나의 iPhone"의 공개 폴더)로 이동합니다.
- 해당 파일에 접근할 수 있는지 확인합니다.
이 단계는 허용된 디렉터리에는 접근할 수 있음을 보여 주며, 비교 기준을 설정합니다.
- Android:
- Mattermost의 프라이빗 캐시에 대한 무단 접근 시도
- Android:
- Files by Google에서 디렉터리 구조를 탐색해 Mattermost 애플리케이션의 파일을 찾아봅니다.
- Mattermost 앱의 프라이빗 캐시 폴더 같은 프라이빗 디렉터리에 접근할 수 없음을 확인합니다.
- iOS:
- 파일 앱을 엽니다.
- "나의 iPhone/iPad" 아래에 Mattermost 앱의 프라이빗 캐시 폴더가 나타나지 않음을 확인합니다.
- Android:
- Mattermost 프라이빗 캐시의 특정 파일에 대한 무단 접근 시도
- Android:
- Files by Google의 검색 기능으로 Mattermost 캐시에 있는 알려진 파일 이름을 검색합니다.
- 해당 파일이 검색 결과에 나타나지 않음을 확인합니다.
- iOS:
- 파일 앱의 검색 기능으로 Mattermost 캐시의 특정 파일 이름을 찾아봅니다.
- 해당 파일이 검색 결과에 나타나지 않음을 확인합니다.
- Android:
- 내려받은 파일에 대한 정상 접근 시도
- Android:
- 서버에서 모바일 다운로드가 활성화되어 있는지 확인합니다.
- Mattermost 모바일 앱으로 파일을 내려받습니다.
- Files by Google 앱을 열어 내려받은 파일이 보이고 정상적으로 열리는지 확인합니다.
- iOS:
- 서버에서 모바일 다운로드가 활성화되어 있는지 확인합니다.
- Mattermost 모바일 앱으로 파일을 내려받습니다.
- iOS 파일 앱을 열어 내려받은 파일이 나타나고 정상적으로 열리는지 확인합니다.
- Android:
- 여러 앱과 기기에서 반복
위 단계는 Google과 iOS의 파일 앱을 사용합니다. 프라이빗 캐시 폴더가 모든 조건에서 접근 불가능한 상태로 유지되는지 확인하려면, 제안된 각 앱을 서로 다른 기기와 OS 버전(Android와 iOS 모두)에서 사용해 이 테스트를 반복하세요.
테스트 수행 및 결과
Mattermost는 위 플레이북을 수행했으며, 정상 동작 중과 앱을 강제 종료하거나 비정상 종료시킨 뒤 모두에서 숨김 파일 스캔을 포함해 다음과 같은 결과를 확인했습니다.
- 테스트 기기: iPhone 12, iOS 18.4, Android 11
- 사용한 앱: Adobe Reader, Google Files app, Android 기본 Files 앱, iOS 파일 앱, Files Media Manager, Hidden Files Finder, Hidden Files Finder & Recover
- 결과: 서드파티 파일 브라우저와 복구 도구는 Mattermost 앱의 캐시 폴더나 그 내용에 일관되게 접근하지 못했습니다. 권한 있는 사용자가 Mattermost의 통제된 기능을 통해 파일을 명시적으로 내려받거나 공유한 경우에만 접근이 가능했습니다.
- 결론: 파일은 앱 컨테이너 안에 격리된 상태로 유지되며, 플랫폼 보안 지침을 준수하고 무단 접근으로부터 보호됩니다.
문서화된 테스트 절차는 앱의 파일 저장소가 권한 없는 서드파티 애플리케이션으로부터 접근 불가능한 상태를 유지함으로써 견고한 보안 태세를 유지하고 있음을 확인해 줍니다. 강력한 인증과 네이티브 OS 암호화가 결합되어, Mattermost 모바일 앱은 모바일 기기의 민감한 데이터를 권한 있는 사용자에게만 한정하면서 핵심적인 접근 통제와 위험 완화 요구 사항을 충족하는 견고한 체계를 제공합니다.