숨겨진 볼륨을 생성하는 도구인 Shufflecake

셔플 케이크

Shufflecake는 스토리지 장치에 숨겨진 볼륨을 여러 개 생성할 수 있는 Linux용 도구로, 포렌식 검사에서도 이러한 볼륨의 존재를 증명하기가 매우 어렵습니다.

보안 감사 회사인 쿠델스키 시큐리티(Kudelski Security)는 기존 파티션의 사용 가능한 여유 공간에 무작위로 생성된 잔여 데이터와 구별하기 어려운 숨겨진 파일 시스템을 생성할 수 있는 셔플케이크(Shufflecake) 툴셋을 출시했습니다 . 이러한 파일 시스템은 접근 키를 모르면 포렌식 분석 중에도 존재 여부를 입증하기 어렵도록 설계되었습니다.

이 프로젝트는 기밀 데이터를 숨기는 데 있어 Truecrypt 및 Veracrypt보다 더 발전된 솔루션을 표방하며 , Linux 플랫폼을 기본적으로 지원하고 장치에 최대 15개의 숨겨진 파티션을 중첩하여 존재 여부를 파악하기 어렵게 만들 수 있습니다.

사용자가 원하는 대로 생성된 숨겨진 파티션은 ext4, xfs 또는 btrfs와 같은 원하는 파일 시스템으로 포맷할 수 있습니다 . 각 파티션은 고유한 잠금 해제 키를 가진 독립적인 가상 블록 장치로 처리됩니다.

흔적을 감추기 위해 "그럴듯한 부인"이라는 행동 모델이 제안되었습니다. 기본적으로 중요한 데이터는 덜 중요한 데이터가 포함된 암호화된 섹션 내부에 추가 계층으로 숨겨져 일종의 숨겨진 계층 구조를 형성합니다. 압박을 받는 상황에서 기기 소유자는 암호화된 섹션의 키를 공개할 수 있지만, 그 안에 다른 섹션(최대 15단계까지 중첩)을 숨길 수 있어 존재 여부를 파악하고 증명하기 어렵게 만듭니다.

Shufflecake와 커널 모듈은 Debian 및 Ubuntu의 5.13 및 5.15 커널 버전에서만 테스트되었습니다 (Ubuntu 22.04도 지원됩니다). 이 프로젝트는 아직 작동 가능한 프로토타입 이므로 민감한 데이터를 저장하는 데 사용해서는 안 된다는 점에 유의해야 합니다 .

향후에는 성능, 안정성 및 보안을 위한 추가 최적화를 수행하고 Shufflecake 파티션에서 부팅할 수 있는 기능을 제공할 계획입니다.

셔플케이크 소개

암호화된 세그먼트들을 저장 장치의 임의 위치에 배치하여 각 파티션을 구성함으로써 은닉이 이루어집니다 . 각 세그먼트는 파티션에 추가 저장 공간이 필요할 때 동적으로 생성됩니다. 분석을 어렵게 하기 위해 서로 다른 섹션의 슬라이스들을 뒤섞어 배치합니다.

Shufflecake 섹션은 ​​인접한 영역에 연결되지 않으며 모든 섹션의 일부가 함께 혼합됩니다. 사용된 부분과 여유 부분에 대한 정보는 암호화된 헤더가 참조하는 각 섹션에 첨부된 위치 맵에 저장됩니다. 카드와 헤더는 암호화되며 패스키를 모르면 무작위 데이터와 구별할 수 없습니다.

헤더는 슬롯으로 나뉘며 , 각 슬롯은 자체 섹션과 관련 섹터를 정의합니다. 헤더의 슬롯은 계층적으로 쌓여 있고 재귀적으로 연결되어 있습니다. 현재 슬롯에는 계층 구조에서 이전(덜 숨겨진) 섹션의 매개변수를 복호화하는 키가 포함되어 있어, 단일 암호로 선택된 항목과 연결된 모든 덜 숨겨진 섹션을 복호화할 수 있습니다. 각 덜 숨겨진 섹션은 중첩된 섹션의 일부를 자유롭게 사용할 수 있는 공간으로 취급합니다.

기본적으로 모든 중첩된 Shufflecake 파티션은 최상위 파티션과 동일한 표시 크기를 갖습니다 . 예를 들어 1GB 장치에 세 개의 파티션을 사용하는 경우 각 파티션은 시스템에서 1GB 파티션으로 표시되며, 사용 가능한 전체 디스크 공간은 모든 파티션이 공유합니다. 저장된 데이터의 총량이 실제 장치 크기를 초과하면 I/O 오류가 발생하기 시작합니다.

열리지 않은 하위 섹션은 공간 할당에 참여하지 않습니다. 즉, 상위 섹션을 채우려고 시도하면 하위 섹션의 데이터가 덮어쓰여지지만, 오류가 발생하기 전에 해당 섹션에 배치할 수 있는 데이터 크기를 분석하는 방식으로는 하위 섹션의 존재를 알 수 없습니다 (상위 섹션에는 변경 불가능한 데이터가 포함되어 있다고 가정합니다). 데이터는 무작위로 사용되거나 개별적으로 사용되는 일이 없으며, 일반적인 작업은 항상 가장 최근에 접근한 하위 섹션을 대상으로 수행됩니다. 스키마 자체는 데이터 손실을 감수하더라도 데이터의 존재를 비밀로 유지하는 것이 가장 중요하다는 것을 의미합니다.

Shufflecake 구현은 상대적으로 높은 성능을 제공 하지만, 오버헤드 비용 때문에 LUKS 서브시스템 기반 디스크 암호화 방식의 절반 수준에 불과합니다. 또한 Shufflecake를 사용하면 서비스 데이터 저장을 위해 추가적인 RAM과 디스크 공간이 필요합니다. 메모리 비용은 파티션당 약 60MB , 디스크 공간 사용량은 전체 파티션 크기의 약 1%로 추산됩니다. 이와 유사하게 사용되는 WORAM 기법은 5배에서 200배까지 속도를 저하시키고 사용 가능한 디스크 공간을 75% 손실하는 결과를 초래합니다.

유틸리티(shufflecake-userland) 및 Linux 커널 모듈(dm-sflc)에 대한 코드는 C로 작성되고 GPLv3 라이선스에 따라 배포되므로 기본 Linux 커널에 게시된 커널 모듈을 포함할 수 없습니다. 커널이 배송되는 GPLv2 라이센스에 따라.

더 자세한 내용을 알고 싶으시면 다음 링크에서 확인하실 수 있습니다.


Google에서 선호하는 검색 엔진으로 추가