보안 코딩 기법: 안전한 파일 삭제 방법

컴퓨터 시스템에서 파일을 삭제하는 것은 까다로운 일입니다. 누구나 한 번쯤 실수로 파일을 삭제했다가 휴지통에서 다시 복구하며 안도했던 경험이 있을 것입니다.
컴퓨터 시스템의 데이터는 비트의 연속으로 표현됩니다. 따라서 시스템은 어떤 비트가 어떤 파일을 나타내는지 파악하기 위해 파일 시스템 내에서 일종의 장부 기록을 관리해야 합니다. 이 정보에는 파일 크기, 마지막 수정 시간, 소유자, 접근 권한 등이 포함되며, 이러한 기록 데이터는 파일 내용과는 별도로 저장됩니다.
일반적으로 파일을 삭제해도 해당 파일을 나타내는 비트에는 아무런 변화가 없습니다. 다만 시스템이 해당 저장 공간을 무의미한 것으로 간주하고 재사용할 수 있도록 장부 기록만 변경될 뿐입니다. 다른 파일이 해당 위치에 저장되어 비트가 덮어쓰여지기 전까지는 삭제된 데이터를 복구할 수 있는 경우가 많습니다. 이는 파일 삭제 속도를 높여줄 뿐만 아니라, 실수로 삭제한 파일을 되살릴 수 있는 유용한 기능이기도 합니다.
하지만 이러한 방식에는 단점도 있습니다. 컴퓨터 시스템의 애플리케이션이 민감한 정보를 처리할 때 해당 데이터를 파일 시스템 어딘가에 저장하게 됩니다. 정보가 더 이상 필요 없게 되어 데이터를 삭제하더라도, 별도의 조치를 취하지 않으면 개발자의 의도와 달리 데이터가 여전히 복구 가능한 상태로 남아 있을 수 있습니다.
데이터를 완전히 삭제하는 가장 쉬운 방법은 파일 내용을 무작위 데이터로 덮어쓰는 것입니다(때로는 여러 번 반복하기도 합니다). 거트만(Gutmann) 방식과 같이 저장 장치 유형이나 파일 시스템에 따라 다양한 보안 파일 삭제 방법이 존재합니다. 하지만 일상적인 애플리케이션 사용 환경에서는 이러한 방법이 다소 과할 수 있으므로 직접 데이터를 덮어쓰는 것만으로도 충분합니다.
단, 주의가 필요합니다! 모두 0으로 채우거나 엔트로피가 낮은 데이터를 사용하지 마십시오. 많은 파일 시스템이 이러한 희소 파일을 최적화하는 과정에서 원본 내용의 일부를 남겨둘 수 있습니다. 파일을 삭제하기 전에 보안상 안전한 무작위 데이터를 생성하여 전체 파일 내용을 덮어쓰는 것을 권장합니다.
데이터 잔류 현상은 어떤 방식으로든 삭제된 데이터가 물리적 형태로 남아 있는 것을 의미합니다. 저장 매체를 삭제한 후에도 물리적 특성이 남아 있어 데이터를 복구할 수 있는 경우가 있습니다.
배포 전 AI 기반 개발 거버넌스 확보
AI 기반 위험을 측정하고, 커밋 시점에 보안 코딩 정책을 적용하며, SDLC 전반에 걸쳐 안전한 소프트웨어 제공 속도를 높이세요.
더 많은 블로그 살펴보기
보안 코딩, AI 거버넌스, 소프트웨어 리스크 관리에 관한 전문가 콘텐츠를 확인해 보세요.
%252520%252520(3).avif)
Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Security as culture: How Blue Prism cultivates world-class secure developers
Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed
배포 전 AI 기반 개발 보안 확보
소프트웨어 개발 수명 주기 전반에서 개발자 리스크를 파악하고, 정책을 시행하며, 취약점을 예방하세요.



.avif)