KIPS Tr. Comp. and Comm. Sys. Vol.4, No.9 pp.307~314 pissn: 2287-5891 디지털포렌식관점에서 SSD TRIM 명령의선별적복구 307 http://dx.doi.org/10.3745/ktccs.2015.4.9.307 Selective Recovery of the SSD TRIM Command in Digital Forensics Hwang Hyun Ho Park Dong Joo ABSTRACT Recently, market trends of auxiliary storage device HDD and SSD are interchangeable. In the future, the SSD is expected to be used more popular than HDD as an auxiliary storage device. The TRIM command technique has been proposed and used effectively due to the development of the SSD. The TRIM command techniques can be used to solve the problem of Freezing SSD that operating system cooperates with the SSD. The TRIM command techniques are performed in the idle time of the internal SSD that are actually deleted when a user deletes the data. However, in the point of view of computer forensics, the digital crime is increasing year by year due to lack of data recovery. Thus, this rate of arrest is insufficient. In this paper, I propose a solution that selectively manages data to delete based on advantage of the stability and the write speed of the TRIM command. Through experiments, It is verified by measuring the performance of the traditional method and selected method. Keywords : Digital Forensics, Freezing Solution, Solid State Drive, TRIM Command 디지털포렌식관점에서 SSD TRIM 명령의선별적복구 황현호 박동주 요 약 최근보조기억장치스토리지시장추세는 HDD와 SSD가혼용되어사용되고있다. 미래에는 HDD보다 SSD가보조기억장치역할로더욱많이사용될것으로예상되고있다. SSD 기술이발달하면서이를효율적으로사용하기위해 TRIM 명령기법이나오게되었다. TRIM 명령기법은과거 SSD의문제점인 Freezing 현상을해결하기위해나온명령으로운영체제와 SSD가협동하여작동한다. TRIM 명령기법은사용자가데이터를삭제하였을때 SSD 내부에서도실제로삭제하는기법으로유휴시간에수행한다. 하지만, 디지털포렌식관점에서본다면디지털범죄는매년급증하지만데이터미복구로인한검거율은미흡하다. 본논문에서는기존 TRIM 명령의장점인안정성 (Freezing Solution) 과쓰기속도를최대한지원하며선별적으로데이터를관리하여삭제하는기법을제안한다. 실험을통해기존기법과선별된기법의성능을측정하여검증한다. 키워드 : 디지털포렌식, 안정성, SSD, TRIM 명령 1. 서론 1) 최근디지털제품의사용량이급속히증가하여범죄와관련된정보들도디지털화되고있다. 기존에주로사용되었던보조기억장치인 HDD(Hard Disk Drive) 에서플래시메모리를사용하는 SSD(Solid State Drive) 보조기억장치로급격히변화되고있다. SSD는크기가작고가벼우며충격에강하고소비전력이낮다. 또한 HDD에비해빠른데이터접근성능을가진다. HDD는물리적한계때문에발전의폭이크지않으며한계에도달했다고평가된다. 반면 SSD는반도 준회원 : 숭실대학교컴퓨터학과석사 정회원 : 숭실대학교컴퓨터학부부교수 Manuscript Received : July 22, 2015 First Revision : August 31, 2015 Accepted : August 31, 2015 * Corresponding Author : Park Dong Joo(djpark@ssu.ac.kr) 체를이용하여데이터를저장하는것이특징이며물리적인한계가거의없기때문에최근지속적으로사용되고발전되고있다. 디지털포렌식 (Digital Forensic)[1] 은범죄수사에서적용되고있는과학적증거수집및분석기법의일종이다. 각종디지털데이터, 이메일접속기록, 통화기록등의정보를수집및분석하여핏자국, 지문, DNA 등범행과관련된증거를확보하는수사기법을말한다. 따라서실생활에서많이사용되는디지털제품이급증함에따라디지털범죄뿐만아니라일상범죄에서도중요증거를디지털제품에활용하여보관할수있는가능성이높아진다. 그결과 SSD에기록된데이터는디지털포렌식수사대상이될가능성이높다. SSD가비약적으로발전하면서효율적으로사용하기위해 TRIM 명령 [2] 기법을사용하고있다. TRIM 명령기법은과거 SSD의문제점인 Freezing 현상을해결하기위해나온
308 정보처리학회논문지 / 컴퓨터및통신시스템제 4 권제 9 호 (2015. 9) 명령으로, 운영체제와 SSD가협동하여작동한다. TRIM 명령기법은사용자가데이터를삭제하였을때 SSD 내부에서도실제로삭제하는기법으로, 기존방법은 TRIM 명령즉시데이터를삭제하는방식이었지만, 효율적으로사용하기위해즉시수행이아닌유휴시간 (Idle Time) 에수행한다. TRIM 명령기법은 TRIM 명령이적용되지않은 SSD보다논리적으로무효화된파일에페이지를정확하게소거연산을할수있으며, 쓰기전삭제문제점을회피할수있는장점이있다. 하지만디지털포렌식관점에서본다면 TRIM 명령기법은많은문제를초래할수있다. 우선, 기본적으로 TRIM 명령이기본 (Windows7 이후기본동작 ) 으로활성화되어있다면복구가불가능하다 [3]. 복구가불가능하다면디지털범죄가급증하는현시대에많은문제가발생하게된다. 디지털증거는정황증거만으론증거채택이어렵고확실한물증이있어야채택가능성이높다. 간단히예를들자면, 공공기업이나업체가불법행위의증거를기록해놓은자료를자신들이수사대상이라는것을알아차리고경찰이들이닥치기 30분전단순삭제 (Shift Delete, 또는휴지통비우기명령 ) 를하여도복구가불가능하다 [4]. 현재디지털범죄는급증하고있는추세이나검거율은현저히떨어지고있는상황이다. 데이터미복구로인한검거율감소도한몫하고있다. Table 1은공공데이터를기반으로하여서울중앙지방검찰청에서공개한컴퓨터범죄의죄명에따른기소현황이다. 전자문서관련죄와음란물유포에관한죄가가장많으며, 이를대상으로하여선별적으로데이터를관리한다면데이터미복구로인한검거율향상에상당한도움을줄수있다. 본논문에서는디지털포렌식관점에서 SSD TRIM 명령의선별적복구기법을제안한다. 공공데이터를기반으로하여선별적으로데이터를관리하고제안한기법으로데이터를선별한경우와특별한상황에대처하여사용하는경우를나누어성능을평가하고검증한다. 본논문의구성은다음과같다. 2절에서는 TRIM 명령에대한배경지식과기존 TRIM 명령에대한장점에대해기술한다. 3절에서는기존 TRIM 명령기법과제안한선별적 TRIM 명령기법에대해기술하고, 4절에서는실험과성능을평가한다. 마지막으로, 5절에서는결론및향후계획에대해기술한다. 2. 배경지식및관련연구 2.1 낸드플래시메모리 (NAND Flash Memory) 낸드플래시메모리는블록의크기에따라소블록 (Small Block) 구조와대블록 (Large Block) 구조로분류하고, 소블록과대블록은페이지수와크기가각각다른특성을가지고있다. 플래시메모리는블록 (Block), 페이지 (Page), 섹터 (Sector), 여유영역 (Spare Area) 으로구성된다. 한 Flash Array에는여러개의블록이있고, 한블록은다수의페이지로구성된다. 한페이지는데이터가기록되는섹터와페이지의메타정보가저장되는여유영역으로구성되어있다. 여유영역은 LBN(Logical Block Number), LSN(Logical Sector Number), ECN(Erase Count Number), ECC(Error Correction Code), 블록및페이지상태등여러가지유용한정보를저장할공간으로사용된다 [5]. 플래시메모리는하드디스크와동일한연산인읽기, 쓰기연산이외에소거연산이필요하다. 소거연산은덮어쓰기 (Overwrite) 가불가능한플래시메모리에서이전에기록한데이터를지우기위한것으로, 같은위치에데이터를쓰기위해선사전작업인쓰기전소거 (Erase-Before-Write) 연산을수행해야한다. 하지만기록된페이지를다시사용하기위해매번소거연산 [6] 을수행하게된다면플래시메모리에서는소거연산이읽기연산과쓰기연산에비해가장느리고읽기, 쓰기연산은페이지단위이지만소거연산은블록단위이기때문에 Freezing 현상이일어나게된다. Freezing 현상은데이터를기록하는작업과쓰기작업속도가 10배이상차이를보이는플래시메모리특성문제로, 사용중인장치가정지 (Freezing) 하는현상이다. 1) FTL(Flash Translation Layer) 플래시메모리는제자리덮어쓰기 (In-Place Update) 가되지않아소거연산을수행해야하는물리적인제약을가지고있다. 이러한제약을해결하기위해플래시메모리와파일시스템중간사이에 FTL계층을사용한다. FTL은파일시스템에서호출되는논리주소 (Logical Address) 를물리주소 (Physical Address) 로사상 (Mapping) 하는작업을한다. 사상정보는사상테이블에저장하고관리하며, 덮어쓰기연산 Table 1. Computer Crime
디지털포렌식관점에서 SSD TRIM 명령의선별적복구 309 Fig. 1. Internal Architecture of SSD 이일어날때마다사상테이블의정보를갱신한다. 또한다른자리덮어쓰기가일어나면새로덮어쓴데이터는유효데이터 (Valid Data) 로사상되고, 덮어쓰기이전데이터는무효데이터 (Invalid Data) 로사상되어플래시메모리에존재하게된다. FTL은파일시스템과플래시메모리사이에위치하는소프트웨어계층이다. 응용프로그램은파일시스템을통해데이터를사용할수있으며, 파일시스템은 FTL을통해서플래시메모리에쓰기및읽기동작을요청할수있다. FTL 은플래시메모리의특징으로인해여러저장장치관리기법을요구하고, 이를효율적으로구현하기위해계층적구조를가진다. 2) GarbageCollection & Wear-Leveling 가비지컬렉션 (Garbage Collection, GC)[7] 은플래시메모리에빈블록이없을경우가비지컬렉터가호출되어사용하지않는무효블록 (Invalid Block) 을수집하여관리한다. 유효블록 (Valid Block) 의페이지중에서유효데이터가기록된페이지를다른곳으로옮긴후해당블록을지움으로써무효데이터가차지하던공간을소거연산하는것이다. 가비지컬렉션작업을자주하면할수록블록소거연산이반복되므로파일시스템에서수행할연산이지연된다. 플래시메모리는블록당소거횟수가제한되어있으며, 만약특정블록에연산이자주수행되면특정블록은배드블록 (Bad Block) 이되어사용할수없다. 배드블록이되면플래시메모리의내구성이낮아진다는것을의미하기때문에데이터의신뢰성이낮아진다. 웨어레벨링 (Wear Leveling)[8] 은가비지컬렉션영역에서블록당소거횟수 (Erase Count Number, ECN) 가가장적은블록을선정하여수행한다. 즉, 플래시메모리의소거횟수를골고루분포하여플래시메모리의신뢰성과내구성을향상시킨다. 2.2 SSD의구조와특성 Fig. 1은 SSD의내부구조를도식화한것이다. 그림과같이다수의플래시메모리와그외 4가지요소들로구성되어있다. SSD는 FTL을포함한펌웨어 (Firmware) 를수행하기위한 ARM Processor, Host로부터들어온데이터및 Host 로보낼데이터를저장할 DRAM 버퍼, 플래시메모리를제어하기위한낸드컨트롤러 (NAND Controller), Host와의 Interface를위한 SATA 또는 PCIe Host Controller로구성 된다. Host Controller는상위파일시스템에서보낸요청들을 SSD로전달하거나 SSD에서 Host로데이터를전달하는역할을하며, 낸드컨트롤러는 SSD 내부소프트웨어가보낸요청의정보를받아플래시메모리에읽기 / 쓰기 / 소거연산을직접수행한다. 낸드컨트롤러에직접연결된버스는다수의플래시메모리칩에의해공유되고있으며여기에서각버스를채널이라한다. 하나의칩은다시독립적으로읽기 / 쓰기 / 소거연산이가능한 Way로나눈다. Way는다시페이지크기의레지스터를갖고있는 Bank(Plain) 로나누어진다. 만약하나의 Way가 2개이상의 Bank를포함하는경우, Bank에포함된페이지크기의레지스터를이용하여 2개이상의 Bank에서동시에동일한연산이가능하다. 하나의 Bank는수백 수천개의블록으로나누어져있고, 하나의블록은다시수백개의 4KB 16KB 크기페이지로나누어져있다. 2.3 TRIM 명령 SSD는 HDD와비교하여월등한성능을가지고있다. 덮어쓰기가불가능하여소거 / 쓰기작업을몇단계이상수행하더라도, SSD의빠른성능으로사실별차이없을것이라는생각을가질수있다. 그러나플래시메모리특성중하나가바로상대적으로소거속도가많이느리다는것이다. 일반적으로, 비어있지않은페이지에데이터를기록하는작업은비어있는페이지에데이터를쓰기작업하는것에비해무려 10배이상속도차이가난다. SSD가아무리빠르더라도갑자기쓰기속도가 10배정도로느려지면 Freezing 증상등많은문제들이있을수있다. OS는파일을삭제하면디스크에서해당파일을실제로삭제하는것이아니고, 파일의메타데이터를삭제하여파일시스템과의연결만끊은후디스크에는파일을그대로남겨놓는방식을사용한다 [9]. 즉, SSD는 HDD와마찬가지로사용할수록이러한실제로사용되지않는쓰레기데이터가점점늘어나그만큼공간을차지하고있게되는데, 덮어쓰기가가능한 HDD에서는문제가되지않았지만 SSD에서는큰문제가된다. SSD를구입한직후에는모든페이지와블록이깨끗하게비워져있기때문에좋은쓰기속도를보여주지만이후사용할수록소거 / 쓰기수행의증가로인해 SSD의전체적인쓰기성능이큰폭으로하락한다 [10]. 이러한문제를해결하기위해 SSD에서는 TRIM 명령이
310 정보처리학회논문지 / 컴퓨터및통신시스템제 4 권제 9 호 (2015. 9) Fig. 2. Existing SSD and TRIM Applied SSD 새롭게등장하게되었다. Fig. 2는 TRIM 명령의간단한모식도이다 [11]. TRIM 명령은운영체제에서삭제된파일들을파악하여 SSD 상에서도실제로해당파일들을지우는기능이다. 간단히말하면, TRIM 명령은나중에쓰기작업수행시소거될데이터를미리적절한방법으로소거시켜윈도우에서파일을지우면 SSD 내부에서도실제로파일을지우는기능이다. SSD의 TRIM 명령이효율적으로운영될수있도록운영체제와 SSD가손을잡고협동하여수행된다. 위기법을사용하기위해윈도우7부터등장한것이 DisableDelete Notify Option이며, 이 Option은윈도우에서해당파일을삭제하면 SSD에게해당파일은더이상사용하지않으니유휴시간에삭제하라고실시간으로알려주는것을의미한다 [12]. 3. 선별적 TRIM 명령기법 SSD의발달과더불어 TRIM 명령또한효율적인알고리즘을도입하여발전되고있다. TRIM 명령이나온초창기에는다른문제점들이많이발견되어 TRIM 명령자체를쓰지않아야한다는주장도많았다. 하지만효율적인알고리즘구현을통해점차안정되어, 현재는 TRIM 명령을쓰지않은 SSD와 TRIM 명령을사용한 SSD의성능차이는상당히크다. 현재 S-ATA 규격에서는더욱효율적인 TRIM 명령의지원을위해노력하였으며차세대규격인 S-ATA 3.1 규격에 Queued Trim Command를추가하여 S-ATA 규격자체에최적화를준비하고있다. 그러나디지털포렌식을다루는주요한사이트 [13] 에서 TRIM 명령에대한문제점을꾸준히제기하였다. 보안이중요한기관이나사용자의개인정보등을가지고있는기업과같이완전삭제를꼭해야하는경우도있지만, 서론에서의예와같이완전삭제를하지말아야하는경우에는데이터미복구로인해심각한문제를초래할수있다. 3.1 아이디어및전제조건선별적으로데이터를관리하기위해서우선, TRIM 명령의동작시점을파악해야한다. TRIM 명령은사용자가데이터를삭제하였을때운영체제에서명령을내려준다. 운영체제에서명령을내린후이후의동작은관여하지않는다. 이시점에서선별적으로데이터를관리하여 TRIM LIST를만든후보관하여데이터의완전삭제를방지한다. 선별된 LIST들은 TRIM이적용되지않은기존방법과같이 GarbageCollection & Wear-Leveling 이하영역을수행하지않고실제데이터는남아있지만사용자에게는보이지않는다. 선별된 TRIM LIST를계속가지고있어실제데이터들이계속남아있다면사용자가사용하는실제사용량은급격히줄어들것이다. SSD는구조상블록들을관리하는 Bank(Plain) 단위로구성되어있다. 그래서 Bank 단위로블록들이가득찬상황에직면했을때빈공간부족이벤트를발생시켜해당 Bank를 TRIM 명령이적용된기법처럼 GarbageCollection &Wear- Leveling 이하영역으로보내준다. GarbageCollection & Wear- Leveling 이하영역으로보내주면작업한 Bank에해당되는블록들은기존 TRIM 명령이동작하는방식과같이사용가능하다. 3.2 TRIM 명령의소거연산 Table 2는기존 SSD와 TRIM 명령이적용된 SSD의소거연산을비교한표이다. 기존 SSD는삭제를하여도실제데이터는남아있고특정시점에 GarbageCollection & Wear -Leveling 이하영역을수행하여실제데이터를삭제시킨다. GarbageCollection & Wear-Leveling 이하영역은 GarbageCollection, Wear-Leveling, ECC Check, Bad Block handling으로구성되며, ECC Check 영역은읽히거나전송되고있는데이터에오류가생겼는지를검사하고, 필요하면전송중에정정할수있는영역이다. Bad Block handling 영역은 Bad Block을관리하며, 정상적인 Block에영향을주
디지털포렌식관점에서 SSD TRIM 명령의선별적복구 311 지못하게제어하는영역이다. GarbageCollection & Wear- Leveling 이하영역은전반적으로, SSD의수명과성능향상에도움을주는역할을한다. 데이터삭제후동일한블록에쓰기작업을수행한다면기존 SSD는데이터쓰기바로전해당블록에소거연산을수행한다. 이때 Freezing 현상이일어날수있으며이문제가초창기 SSD의가장큰문제점으로꼽혔다. 쓰기작업을하기위해선필요한만큼빈블록의개수가필요하므로플래시메모리특성상블록의낭비가있을수있다. 하지만 TRIM 명령이적용된 SSD는운영체제에서데이터삭제명령이전달될시유휴시간에미리소거연산을수행하므로무효화된파일의블록을정확하게소거연산할수있기때문에블록의낭비와 Freezing 현상을예방할수있다. 간이부족하여빈공간부족이벤트발생시원래의방법으로수행하는흐름도이다. 목적에맞게데이터를선별한후선별되지않은데이터는기존의 TRIM 명령기법을따른다. 선별된데이터는수집되어 TRIM LIST로관리하고작업을종료한다. 한 Bank가가득차더이상해당 Bank에블록을사용할수없을때빈공간부족이벤트를발생시킨다. 빈공간부족이벤트가발생하면 TRIM LIST로수집하였던블록들중가득찬 Bank에해당하는 LIST를원래의영역으로전달시켜작업을수행하게한다. Table 2. Comparison between Existing SSD and TRIM SSD Regarding Delete Operation Existing SSD TRIM SSD Erase Start Time Before data write Idle time Erase Unit # Empty blocks required Blocks of a invalid file 3.3 TRIM 명령의시점 Fig. 3은 TRIM 명령시점에대한모식도이다. 운영체제에서사용자가삭제를하면운영체제는 TRIM 명령을 SATA Interface 이하영역에전달한다. SATA Interface는보조기억장치를위한고속의연결방식으로속도와편의성, 안정성등을위해규격화되었다. TRIM 명령은단순히명령만전달하며, TRIM 명령이실제로동작하는영역은 GarbageCollection & Wear-Leveling 이하영역이다. 실제로데이터를삭제한후플래시메모리내부의작업도함께수행되어야하기때문이다. 3.4 TRIM LIST Fig. 4는선별적으로데이터를관리하여수집하고, 빈공 Fig. 4. Flow Chart for Selective TRIM Command Fig. 5는 TRIM LIST 수집을수행하는과정을나타낸것이다. 사용자로부터삭제명령을전달받으면 SSD로부터 TRIM 명령을전달받게된다. 무효블록번호 22, 23, 24, 27, 29, 30 중선별되지않은데이터가속해있는블록들은 GarbageCollection & Wear-Leveling 이하영역으로보내기존 TRIM 명령기법과동일하게처리한다. 선별된데이터들은 GarbageCollection & Wear-Leveling 이하영역으로보내지않고 TRIM LIST를만들어관리한다. Fig. 5와같이무효화 (Invalid) 된블록번호 22, 23, 24, 27, 29, 30 중 3개의 Fig. 3. Start Time of TRIM Command Fig. 5. TRIM LIST
312 정보처리학회논문지 / 컴퓨터및통신시스템제 4 권제 9 호 (2015. 9) 블록은기존 TRIM기법처럼삭제하고나머지 3개의블록들은선별되어삭제되지않고관리한다면플래시메모리특성상가장속도가느린소거연산을 3번회피할수있으므로기존 TRIM 명령기법보다성능이향상된다. 3.5 빈공간부족이벤트 Fig. 6은빈공간부족이벤트발생시수행하는과정을나타낸것이다. 한 Bank에모든블록들이유효블록들로가득찼을경우빈공간부족이벤트를발생시킨다. 빈공간이벤트가발생되면 Fig. 6과같이선별된무효블록번호 33, 34, 35, 37, 39, 40을기존 TRIM 명령기법과같이 GarbageCollection & Wear-Leveling 이하영역으로보낸후기존과같이수행한다. SSD Controller 및 FTL 내부구조는제조사별로다르고성능과직관적으로연결되므로빈공간부족이벤트발생시알고리즘을수정하거나다른방법을사용하지않고그대로전달역할을한다. 하지만빈공간이벤트즉시 Bank 안에있는선별된무효블록을동시에처리해야하므로기존 TRIM 명령기법보다는수행시간이길다. 이동작하는함수는 FTL 계층인 Ftl_Flush() 안에서호출하여사용하였는데, Ftl_Flush() 는 POR/SPOR을위해반드시보존되어야할 FTL 메타데이터정보를플래시메모리에기록하는 API이다. SATA Idle/Standby 시주기적으로호출하여 FTL 메타데이터의일관성및 POR을가능하게한다. TRIM 명령의동작방식인유휴시간에작업을수행하는방식과같아 Ftl_flush() 단계에서호출하여실험하였다. 선별된 TRIM 명령과기존 TRIM 명령의수행시간차이실험을위해, 블록을 2가지의특정블록으로나누어실험하였고, 500MB로블록을각각고정하였다. 첫번째특정블록은선별된데이터의블록으로 TRIM 명령이동작하지않은블록이며, 선별된데이터블록은 TRIM LIST로관리하여수집한다. 두번째특정블록은선별되지않은데이터의블록으로기본적으로동작하는방식과같이 TRIM & GarbageCollection & Wear-Leveling 이하영역을수행한다. Fig. 7. Time Cost After 4 Times Repetition Fig. 6. Event Alert on Lack of Empty Blocks 4. 실험및평가 4절에서는실험을통하여제안한선별 TRIM 명령기법이기존 TRIM 명령기법의장점인안정성 (Freezing Solution) 과쓰기속도를최대한지원하며, 모든블록이가득차지않을경우에는기존 TRIM 명령다성능이우수함을증명한다. 또한모든블록이가득찰경우성능저하의폭을측정한다. 실험환경은 Jasmin OpenSSD Platform을사용하였으며, 페이지맵핑 (Page Mapping) 기반의제공된 Greedy FTL을사용하였다. 메모리는삼성 K9LCG08U1M 8GB로실험하였으며, 실험데이터는 HWP, JPG, DOC파일을대상으로하였고파일크기는무작위로선정하였다. 현재 Jasmin OpenSSD Platform은 TRIM 명령을지원하지않는다. TRIM 명령을지원하지않기때문에가상으로 TRIM 명령이동작한다는함수를추가한후진행하였다. TRIM 명령 Fig. 7은고정된 500MB의블록을각각 1회, 2회, 3회, 4 회반복한결과이다. 제안한선별된 TRIM 명령기법은기존 TRIM 명령기법과는다르게운영체제에서삭제명령을내렸을때, 바로 TRIM 명령을전달하여유휴시간에처리하는것이아니라, 선별된데이터가있다면 TRIM LIST로관리하며다른작업은하지않는다. 1회수행결과, 선별된데이터가있는블록은 1713 마이크로초이며선별되지않은기존 TRIM 기법으로동작한경우에는 1896 마이크로초로수행되었다. 2회, 3회, 4회결과선별된 TRIM 명령기법은기존 TRIM 명령기법보다수행시간이짧았다. Fig. 8은 5회, 6회, 7 회, 8회반복한결과이다. 앞서 1회~4 회반복한결과와비슷한패턴을보이며수행시간이증가하였고, 8회까지모든메모리를가득채워도특별한문제점을가지지않고정상적으로반복되었다. 이는명세하지는않았지만, Jasmin OpenSSD Platform도자체적으로오버프로비저닝 (Over Provisioning, OP) 공간을확보하고있음을알수있다. 오버프로비저닝공간이란 GarbageCollection, Wear-Leveling, Bad Block Control 등 SSD를운영하는데필요한핵심적인기능들이어떠한상태에서도원활하게작동할수있도록미리예약된예비공간이다.
디지털포렌식관점에서 SSD TRIM 명령의선별적복구 313 관리하고있던블록들을한번에처리한다면, 기존 TRIM 명령기법처럼꾸준히유휴시간에처리한기법보다는수행시간이길다. 하지만일반사용자가데이터의모든블록을사용하거나, 선별된데이터가주를이루는경우는드물것이다. 선별된데이터를주로사용한다해도 Fig. 7~Fig. 9와같이기존 TRIM 명령기법보다이점이있기때문에디지털포렌식관점에서선별적으로 TRIM 명령을사용하여도기존 TRIM 명령의안정성과쓰기속도를유지하며사용이가능하다. Fig. 8. Time Cost After 5~8 Times Repetition 5. 결론및향후계획 Fig. 9. Time Cost with Varying the Number of Repetitions 디지털제품의사용량이급속히증가하면서범죄와관련된정보들도디지털화되고있다. 디지털증거는변조가용이하고메타데이터나정황증거만으로는증거채택이어렵다. 이러한특성때문에 TRIM 명령기법은많은장점이있지만선별적으로데이터를관리하는기법이필요하다. 이에기존 TRIM 명령기법의안정성 (Freezing Solution) 과쓰기속도를유지하며선별적으로데이터를관리하는 TRIM 명령기법을제안하였다. 제안기법은공공데이터를기반으로하여데이터를선별하고증거채택이이루어질가능성이높은것을선택하여기존 TRIM 명령기법을그대로적용하여사용할수있는방법이다. 본논문의실험을통해선별적으로 TRIM을관리하면특정한상황을제외하고는성능이더우수함을확인하였다. 향후실제 TRIM 명령이적용된내장형플랫폼에서다양한실험을진행하여특정한상황이여러번반복되었을때성능을측정하여기존 TRIM 명령기법과의차이를비교하고최악의상황에대처하는기법을연구할계획이다. References Fig. 10. Time Cost under the Condition that All Blocks are Full Fig. 9는 1회부터 8회까지반복하여수행시간차이를나타낸결과이다. 1회, 2회반복시그래프가급상승한것은메모리를완전포맷한상태에서작업을하였기때문이다. 2 회 8회결과제안한선별된 TRIM 명령기법이기존 TRIM 명령기법보다수행시간이점점감소하는것을알수있다. 즉, 메모리가가득차기전까진선별된데이터의양이많으면많을수록기존 TRIM 명령기법보다는수행시간이짧다는것을확인할수있다. Fig. 10은모든데이터블록이가득차더이상메모리를사용하지못할때, 선별된 TRIM 명령기법은빈공간부족이벤트를발생시켜기존의 TRIM LIST로관리하여수집하였던블록들을 GarbageCollection & Wear-Leveling 이하영역으로보내주어성능을측정한것이다. TRIM LIST로 [1] I. R. Jeong, D. W. Hong, and K. I. Chung, Technologies and Trends of Digital Forensics, Electronics and Telecommunications Research Institute, Electronics and Telecommunications Trends, Vol.22, No.1, pp.97-104, 2007. [2] D. H. Kang and Y. I. Eom, Analyses of the Characteristics of Trim Command in Solid State Drives, Proc. of the Korean Information Science Society Conference, Vol.2014, No.6, Jun., 2014. [3] H. S. Shin, A Study on the possibility of logical data recovery of SSD consequential enable TRIM, Dongguk Graduate School of International Affairs & Information G, Aug., 2013. [4] Forensic-proof, SSD Forensics: TRIM Command, [Internet], http:// forensic-proof.com. [5] S. H. Lee, M. S. Shin, and D.-J. Park, Preventing Deleted File Recovery using Block Permutation on NAND Flash Memory, KIISE: Database, Vol.39, No.6, Dec., 2012.
314 정보처리학회논문지 / 컴퓨터및통신시스템제 4 권제 9 호 (2015. 9) [6] B. Dipert and M. Levy, Designing with Flash Memory, Annabooks Publisher Poway, CA, USA, 1993. [7] S.-W. Lee, D.-J. Park, et al., A log buffer-based flash translation layer using fully-associative sector translation. ACM Transactions on Embedded Computing Systems, Vol.6, No.3, Jul., 2007. [8] L.-P. Chang, T.-W. Kuo, and S.-W. Lo, Real-Time Garbage Collection for Flash-Memory Storage Systems of Real-Time Embedded Systems, ACM Transactions on Embedded Computing Systems, Vol.3. No.4, Nov., 2004. [9] X. Wang and J. Wang, A Wear-Leveling Algorithm for Nand Flash in Embedded System, 5th IEEE Intemational Symposium on Embedded Computing, Oct., 2008. [10] M. Saxena and M. M. Swift, FlashVM: Virtual memory management on flash, Proc. of the 2010 USENIX Annual Technical Conf. (USENIX ATC), Jun., 2010. [11] J. Kim, H. Kim, S. Lee, and Y. Won, FTL design for TRIM command, Proc. of 5th Int l Workshop on Software Support for Portable Storage (IWSSPS), 2010. [12] N. Agrawal, V. Prabhakaran, T. Wobber, J. D. Davis, M. Manasse, and R. Panigrahy. Design tradeoffs for SSD performance, Proc. of USENIX Annual Technical Conference, Jun., 2008. [13] [Internet], http://articles.forensicfocus.com/2012/10/23/whyssd-drives-destory-court-evidence-and-what-can-be-done -about-it/xhsl. 황현호 e-mail : fireicesss7@ssu.ac.kr 2015년숭실대학교컴퓨터학과석사관심분야 : 플래시메모리, 데이터베이스등 박동주 e-mail : djpark@ssu.ac.kr 1995년서울대학교컴퓨터공학부 ( 학사 ) 1997년서울대학교컴퓨터공학과 ( 석사 ) 2001년서울대학교전기전자컴퓨터공학부 ( 박사 ) 2001년 2003년삼성전자책임연구원 2004년 2005년숭실대학교컴퓨터학부전임강사 2006년 2009년숭실대학교컴퓨터학부조교수 2010년 현재숭실대학교컴퓨터학부부교수관심분야 : 플래시메모리, 임베디드데이터베이스, 멀티미디어데이터베이스등