게시 날짜 : 9, 2025
로컬 스토리지가 책임이 되는 경우: 저장 데이터 보안이 중요한 이유
최근 몇 년 동안 보안 연구 및 실제 사고에서 반복적으로 나타나는 문제가 있습니다. 바로 앱이 민감한 정보를 로컬 저장소에 안전하지 않게 저장하는 것입니다. 개발자들은 HTTPS나 TLS와 같은 프로토콜을 통해 전송 중인 데이터를 보호하는 것을 우선시하는 경우가 많지만, 기기에 저장된 데이터 역시 공격자에게는 마찬가지로 중요합니다. 도난당한 토큰, 데이터베이스 또는 일반 텍스트 파일은 가로채기된 비밀번호만큼이나 큰 피해를 입힐 수 있습니다.
실제 사건으로부터 얻은 교훈
여러 유명 사례는 로컬 스토리지의 실수로 인해 침해와 남용이 발생하는 방식을 보여줍니다.
- 초기 2010에서는, WhatsApp은 암호화되지 않은 SQLite 데이터베이스에 전체 채팅 기록을 저장했습니다. 안드로이드 기기에서. 이러한 데이터는 SD 카드에 저장되었기 때문에 저장 권한이 있는 앱이나 맬웨어가 개인 대화에 접근하여 유출될 수 있었습니다.
- 몇 년 후인 2017년, 연구원들은 Slack의 Electron 기반 데스크톱 클라이언트가 로컬 파일 시스템에 인증 토큰을 일반 텍스트로 저장한다는 사실을 발견했습니다. 로컬 공격자나 해당 컴퓨터에서 실행 중인 악성코드는 이 토큰을 복사하여 Slack 계정을 탈취할 수 있었습니다. 2021년에도 이 문제의 변형은 여전히 악용될 수 있습니다..
- 2021년에 WhatsApp이 암호화된 자료를 외부 저장소에 저장한다는 소식이 다시 화제가 되고 있습니다..
- 2022년, 보안 회사인 Microsoft Teams가 조사를 받게 되었습니다. Vectra AI는 앱이 디스크에 일반 텍스트 인증 토큰을 저장했다고 밝혔습니다.즉, 로컬 액세스 권한이 있는 공격자는 쉽게 사용자를 사칭할 수 있다는 의미입니다.
이러한 사고는 민감한 데이터가 로컬 저장소에 보호되지 않은 채로 방치될 때 발생하는 위험을 잘 보여줍니다. 즉, 장치 자체가 체인의 약한 고리가 되는 것입니다.
공격자가 로컬 스토리지를 악용하는 방법
로컬 스토리지 공격에 대한 위협 모델은 일반적으로 몇 가지 시나리오로 나뉩니다.
- 악성 소프트웨어나 사기성 앱은 비밀을 찾기 위해 로컬 파일, 데이터베이스 또는 캐시를 검색할 수 있으며, 도난당하거나 분실된 장치에 물리적으로 접근할 수 있는 공격자는 법의학적 분석을 수행하여 파일을 추출할 수 있습니다.
- iTunes나 adb 추출과 같은 안전하지 않은 백업도 오프라인 데이터 도난의 원인이 됩니다.
- 이전 버전의 Android에서는 공유 저장소 권한이 있었기 때문에 외부 저장소에 액세스할 수 있는 하나의 앱이 다른 앱의 데이터를 자유롭게 읽을 수 있었습니다.
이러한 각 시나리오에서 공격자는 네트워크 암호화를 해독할 필요가 없습니다. 이미 복호화되어 저장된 내용만 가져가면 됩니다.
루팅 및 탈옥된 기기는 또 다른 위험을 가중시킵니다. Google, 개발자 검증 프로세스 더욱 강화 검증되지 않은 앱의 설치를 거부하기 시작하면서 루트킷이 널리 사용되는 우회 수단이 될 것으로 예상됩니다. 하지만 안타깝게도 이는 기기의 수정 사항을 악용하여 내장된 보안 제한을 우회하는 맬웨어와 스파이웨어의 등장을 의미합니다. 맬웨어는 결함이 있는 루트킷을 악용하여 높은 권한을 획득하여 저장 공간을 스캔하고, 기밀 정보를 훔치고, 애플리케이션을 손쉽게 변조할 수 있습니다. 2015년에는 KeyRaider 맬웨어는 탈옥된 iOS 기기에서 앱 키체인 처리가 제대로 되지 않는 것을 악용했습니다.이로 인해 200,000만 명이 넘는 사용자의 Apple 계정 정보가 유출되었습니다. 따라서 루팅과 탈옥은 진화하는 모바일 생태계에서 데이터 유출을 위한 매력적인 공격 수단으로 남을 가능성이 높습니다.
저장 데이터에 대한 강력한 방어 구축
이것이 바로 저장 데이터 암호화가 매우 중요한 이유입니다. 민감한 파일과 데이터베이스를 보호하면 로컬 저장소에 접근하더라도 적절한 키가 없으면 내용을 이해할 수 없게 됩니다.
개발자는 다음과 같은 몇 가지 모범 사례를 적용하여 위험을 완화할 수 있습니다.
- 민감한 파일은 일반 텍스트로 남겨두는 것보다 강력한 암호화 라이브러리를 사용하여 암호화하는 것이 좋습니다.
- 구조화된 데이터의 경우 SQLite 확장과 같은 암호화된 데이터베이스 솔루션을 고려해야 합니다.
- 개발자는 보안 비밀과 토큰에 사용되는 보안 저장 API(Android 키스토어, iOS 키체인, Windows DPAPI)를 활용해야 합니다. 토큰의 수명 또한 중요한 역할을 합니다. 수명이 짧고 갱신 가능한 토큰은 훨씬 더 중요합니다. safe손상되면 장기간의 접근을 허용할 수 있는 장수명 접근 방식보다 더 좋습니다.
- 조직에서는 디스크 암호화 및 보안 잠금 화면과 같은 장치 수준의 보호를 장려해야 하며, 이를 통해 로컬 공격에 대한 장벽을 강화해야 합니다.
개발자가 모든 위협 벡터를 제어할 수는 없지만, 앱이 저장 데이터를 처리하는 방식은 제어할 수 있습니다. 안전하지 않은 로컬 스토리지는 흔하고 쉽게 악용될 수 있는 공격 영역이라는 사실은 역사적으로 여러 차례 입증되었으며, 공격자들은 이 사실을 잘 알고 있습니다. 저장 데이터 보안을 우선시하고 강력한 파일 암호화 전략을 구현함으로써, 조직은 도난당한 기기나 손상된 앱 환경이 신원 도용, 대화 내용 유출 또는 계정 탈취로 이어질 가능성을 크게 줄일 수 있습니다.
암호화를 더욱 강화하세요
표준 플랫폼 API를 넘어서고자 하는 팀의 경우 곧 출시될 다음 솔루션과 같은 솔루션이 필요합니다. Digital.ai 화이트박스 암호화 에이전트는 매우 간단한 API와 기존 앱과의 원활한 통합을 통해 고급 화이트박스 암호화 라이브러리에 대한 액세스를 제공함으로써 이 프로세스를 단순화할 수 있습니다.
사용 편의성 외에도, Digital.ai White-box 암호화 에이전트는 또한 다음과 같은 암호화 오용의 일반적인 위험을 완화하는 데 도움이 됩니다. 애플리케이션에 직접 하드코딩된 비밀추출하기 매우 어려운 화이트박스 키 구현에 의존하고 일반적인 함정을 방지하도록 설계된 API를 제공함으로써, Digital.ai 화이트박스 암호화 에이전트를 사용하면 개발자는 워크플로우를 불필요하게 복잡하게 만들지 않고도 강력한 암호화 방식을 도입할 수 있습니다. 난독화 및 변조 방지 솔루션과 함께 사용하면 공격자의 보안 수준을 더욱 높이고 손상된 환경에서 데이터 노출 가능성을 줄일 수 있습니다.
맺음말
사용자 기기의 데이터를 보호하는 것은 네트워크를 통해 전송되는 동일한 데이터를 보호하는 것만큼 중요합니다. 강력한 암호화를 적용하고, 안전한 스토리지 API를 활용하고, 계층화된 기기 수준 보안을 도입함으로써 개발자는 도난당한 기기나 손상된 애플리케이션으로 인해 자격 증명 노출, 계정 탈취 또는 민감 정보 유출 위험이 크게 감소할 수 있습니다. 이러한 보안 관행을 우선시하면 로컬 스토리지가 단순한 취약한 연결 고리에서 벗어나 애플리케이션 보안의 강력한 구성 요소로 거듭날 수 있습니다.
당신은 또한 좋아할 거라
사이버 복원력법 준수 및 Application Security
사이버 복원력법(Cyber Resilience Act)을 도입하려는 대부분의 조직은 다음과 같은 분야에 투자하고 있습니다…