과학

스마트폰 복구에 대한 배경지식

https://www.dogdrip.net/200983144

공장초기화 한 핸드폰을 복구 할 수 없다고?

 

선요약 : 충분히 그럴 수 있다.

 

이 글은 컴판에 어울리는 내용이지만,

컴판에 올리면 원래 아는 사람만 볼 것 같아서 이곳에 올림.

경찰 옹호나 그런 글이 아니라 가능성에 대해서만 이야기 하는 글.

 

비 전공자를 위한 내용인데... 내가 전공자다보니 불친절 할 것임.

 

 

긴 글이 싫다면

 

그냥 이런게 존재하므로 하드디스크와 플래시메모리는 상당히 다르며,

 

그로 인해서 플래시 메모리의 복구는 기술적으로 쉽지 않다는 것만 알아두고 넘어가도 좋음.

 

이 글은 아래의 글을 요약한 것임.

원문이 나보다 훨씬 잘 썼으니 링크를 보는 것을 추천함.

http://forensic-proof.com/archives/3221


SSD를 이해하려면 먼저 플래시 메모리를 이해해야 한다. 플래시 메모리는 전기적인 신호로 데이터를 읽고 쓸 수 있고, 전원이 중단된 이후에도 저장된 데이터가 보존되는 반도체 메모리다.

 

중요한 특징은 한번 기록한 영역은 반드시 지운(erase) 다음에 기록(write)할 수 있다는 점이다.(erase-before-write) 그래서 덮어쓰기 작업은 한번에 이루어질 수 없고, 반드시 블록을 지운 후 다시 써야 한다. 이 특징은 중요하므로 반드시 기억하고 넘어가자.

 

NAND는 다시 부가적인 로직의 포함 여부에 따라 다양한 종류로 나뉜다. 부가 로직을 별도로 사용해도 되지만, 면적이 제한적인 모바일 장비에서는 단일 칩으로 구성하는 것이 더 유리할 것이다.

 

PureNAND : “플래시 메모리 셀”로만 구성되는 일반적인 형태다.


OneNAND : 삼성에서 주로 사용하는 방식으로 “플래시 메모리 셀, SRAM, 컨트롤러”로 구성된다. SRAM은 부팅이나 읽기/쓰기 버퍼로 사용되고 컨트롤러는 에러 정정 코드(ECC, Error Correction Code) 처리를 위해 사용된다.


moviNAND : 삼성에서 주로 사용하는 방식으로 “플래시 메모리 셀, SRAM, 컨트롤러, ROM”으로 구성된다. 단일 칩이 거의 메모리 카드의 기능을 가지고 있다.

 

이런 구분 말고도 셀 당 비트 수에 따라  SLC(Single Level Cell)와 MLC(Multi Level Cell)로 구분된다.
(+요즘은 기술발전으로 셀당 3개를 넣는 TLC(Triple Level Cell)가 대세다.)

(+https://www.bloter.net/archives/325330 셀당 4개를 넣는 QLC(Quad Level Cell)도 상용화가 된 시대라니.)

 

다음은 페이지의 크기가 512바이트일 때 할당되는 16바이트의 스페어 영역 정보이다.

 

spare_area-1024x336.png

 

위 그림에서 spare의 ECC0~2가 중요한데, 이는 플래시 메모리의 읽는 원리에 의해 데이터가 일정 확률로 잘못 읽힌다.


이를 보정해주는 영역이 ECC(Error correcting code)로, 이 부분을 수학적으로 해석하면 원래 데이터인지 아닌지를 해석할 수 있음.


원래 데이터가 아니면 새로 읽는다.

 

마지막으로 플래시 메모리는 지우기 횟수가 제한적이다. 이로 인해 데이터를 최대한 각 셀에 골고루 분산시켜 줘야 한다. 사용자의 사용 방식에 따라 특정 영역만 주기적으로 읽고 쓰여질 수 있다. SSD 에서도 그렇게 놔두면 특정 셀의 수명이 일찍 다하게 되고 그로 인해 전체 메모리를 사용할 수 없게 될 것이다. 이를 해결하기 위해 각 셀을 골고루 사용하도록 웨어 레벨링(Wear-Leveling) 기법을 사용한다. 그리고 웨어 레벨링을 위해 FTL(Flash Translation Layer)을 사용한다.

 

NAND 플래시 구조나 처리 방식은 제조사마다 다르다.

 

하드디스크 방식에서는 디스크의 물리적 주소와 논리적 주소가 동일했다. 하지만, SSD는 지우기 횟수 제한으로 FTL을 사용함에 따라 물리적 주소와 논리적 주소가 다르다. 이런 상황에서 SSD 플래시 메모리를 물리적으로 이미징 했을 때, 어떻게 복구할 수 있겠는가? 해당 제조업체의 방식을 정확히 알아야만 전체 디스크 영역을 재조합할 수 있다.

 

하지만 플래시 메모리는 고려해야 할 점이 하나 더 있다. 바로 메모리 셀의 수명이 제한적이라는 점이다. 제한적인 셀 수명을 최대한 이용하려면 전체 셀이 골고루 사용되야 한다. 이렇게 골고루 사용되도록 하는 작업이 웨어 레벨링(Wear-Leveling) 이다.

 

웨어 레벨링 기능을 적용하면 논리적으로 0번 섹터에 데이터를 저장하더라도 물리적으로는 0번 주소에 저장이 되지 않는다. 즉, 논리적 주소와 물리적 주소가 전혀 다르게 된다. 그래서 논리적 주소와 물리적 주소를 서로 매핑시켜주는 계층이 필요하다. 이 계층이 플래시 변환 계층, FTL 이다.

 

가비지 콜렉션은 펌웨어에 의해 수시로 시행되는 작업으로 유효한 페이지를 한 곳으로 모은 다음, 블록을 지우는 작업이다

garbage_collection-1024x525.png
유효한 페이지(A,B,C)만 빈 블록으로 옮긴 후, 나머지 블록은 지우기 작업을 수행한다. 이렇게 비워진 블록(EMPTY BLOCK)은 추가적인 데이터를 기록할 때 사용된다.

 

SSD에서 물리적인 복구는 펌웨어 등의 고장이나 PCB 기판의 손상으로 NAND 메모리 칩을 분리한 후, 칩에서 데이터를 추출(이미징)한 경우이다. 추출한 이미지는 FTL 없이 순수한 플래시 메모리 데이터다. 순수 플래시 메모리 데이터는 웨어 레벨링이 적용된 상태이다. 따라서, 플래시 메모리의 첫 주소부터 마지막 주소까지 성공적으로 이미징을 했어도 정상 파일시스템 구조가 아닐 것이다. 볼륨을 복구하기 위해서는 FTL의 웨어 레벨링과 관련한 메타 정보(테이블 등)를 찾아 전체 블록과 페이지를 맞춰줘야 한다.

 

앞서 설명했듯이 내부적으로 블록과 페이지의 사용 방식은 제조사마다 제각각이다. 따라서, 이를 재조합 하는 방법은 쉽지 않다.

 

논리적 복구는 운영체제 상에서 삭제된 파일을 복구하는 것이다.

 

일반적으로 파일을 삭제하면 메타정보의 삭제 플래그 값만 변경한다. 따라서, 나머지 정보를 이용해 삭제되기 이전의 파일을 그대로 복구할 수 있다. SSD에서도 이 경우는 그대로 복구가 가능하다. 삭제된 메타정보도 파일시스템의 구조로서 유지해야 하는 정보이기 때문에 기존 하드디스크와 차이가 없다.

-> 이로 인해 삭제하고 시간이 얼마 지나지 않은 경우는 복구할 수 있다.

 

데이터 카빙 복구는 메타정보가 덮어써져 더 이상 메타정보를 이용해 복구할 수 없는 경우로 파일시스템의 비할당 영역에서 데이터 카빙 기법을 이용해 복구한다. 조각나지 않고 파일 데이터가 덮어써지지만 않았다면 거의 100% 정상 복구가 가능하다. SSD에서도 이 경우는 그대로 복구가 가능하다. 즉, 기존 하드디스크와 차이가 없다는 의미다. 그 이유는 비할당 영역도 파일시스템의 정상적인 구조이기 때문에 해당 구조를 유지하고 있다.

-> https://autoc.tistory.com/319
위 링크가 여기까지 가능한지는 모르겠지만, 아주 좋은 복구 프로그램이래봐야 이 단계까지 복구할 수 있을 것으로 추측됨.

 

덮어써진 데이터 복구는 메타정보 뿐만아니라 파일 데이터도 다른 데이터로 덮어써진 경우로, 전자현미경을 통해 자기장 흐름을 파악하면 복구 가능성이 있다고는 하지만 유효한 데이터를 복구해내기는 현실적으로 어렵다. 이 경우도 복구 가능성은 언급된 적이 있다. 그렇지만 현실적으로 복구하기는 쉽지 않다.

-> 이 부분을 설명하기 위해서 위에 SSD의 구조를 주구장창 설명한 글이다.

 

 

정리.

 

왜 안돼?
-> 덮어쓰기는 위에서 설명한 지우고 난 뒤에 쓰는 과정으로 진행된다. 특히 지우기는 쓰기 보다 훨씬 높은 전압을 사용한다. 게다가 지우기는 덮어쓰기보다 먼저 일어남.

 

덮어쓰기가 안되었으면 복구가 된다며?
-> 정확히는 지우기가 안 일어났으면인데, 플래시메모리는 셀 수명을 관리하기 위해서 웨어 레벨링과 가비지 콜렉션 등 여러 동작을 수행하는데, 이로 인해서 지우기가 꽤 빈번하게 일어난다.

 

그러면 여태껏 복구한건 뭐야
-> 컨트롤러가 멀정하면 FTL은 살아있음. 이를 기반으로 덮어써지지 않은 영역을 복구한 것이며 어느 정보가 덮어써질지는 확률적임.


번외.
왜 휴대폰에는 컴퓨터처럼 DRAM을 사용하지 않는 것일까?

 

이유는 DRAM은 데이터 유지를 위해 캐패시터(capacitor)에 주기적인 전력을 공급해줘야 하지만 플래시 메모리는 전력 공급이 필요없다. 휴대용 기기는 배터리 성능이 중요하기 때문에 코드 실행을 위해 주로 DRAM이 아닌 NOR 플래시 메모리를 사용한다.

 

https://news.samsung.com/kr/%EC%82%BC%EC%84%B1%EC%A0%84%EC%9E%90-%EC%84%B8%EA%B3%84-%EC%B5%9C%EC%B4%88-8gb-lpddr5-d%EB%9E%A8-%EA%B0%9C%EB%B0%9C

이제 모바일에도 DRAM 쓴댑니다.

 

실수로 유개에 올라갔었는데

맞다. 공장초기화 하게 냅둔게 문제임

나는 경찰을 쉴드하려는게 아니라

그냥 원래 개드립 글에서는 요즘은 복구 가능한거 누구나 안다 라고 말하는 사람에게

스마트폰, SSD 복구는 좀 다르다고 말하려고 쓴 글임.

 

 

곰탕이었나 장례식이었나 좆도 아닌건 구치소에 박아놓고

이건 대놓고 증거지우라고 풀어주고 난리났네.

 

18개의 댓글

2019.03.23

컴공을 입학했어야 했어

0
2019.03.23
@아침밥

특) 컴공이랑 상관없음

0
@숨참고백스텝

컴공에서 배우는 내용 맞아

운영체제 과목의 파일시스템에서 다룸

0
2019.03.23
@숨참고백스텝

컴공에서 다배움

 

1학년 컴퓨터구조론에서 나오는게 메모리 종류와 캐시메모리 특성임

0
2019.03.23

비유하자면 책상 여러개를 붙여놓고 이 문서 저 문서 쌓고 치우고를 반복하는데

주기적으로 누가 정리한답시고 차곡차곡 모아놔서

각각의 책상에 뭐가 있었는지 기억 못하게 되는건가

0
@아침밥

덤으로 차곡차곡 모으는 과정에 물로 씻어버린다고 봐도 될듯

정리하기 전의 문서는 읽어서 조합하면 전문을 알 수 있지만

정리하고 난 뒤의 문서는 읽는 것 자체가 안됨

0
2019.03.23

스마트폰이 RAM을 NOR플래시로 쓰는거야??

0
@피방가다해킹

음.. 저부분은 12년 기준이라 그렇고

https://news.samsung.com/kr/%EC%82%BC%EC%84%B1%EC%A0%84%EC%9E%90-%EC%84%B8%EA%B3%84-%EC%B5%9C%EC%B4%88-8gb-lpddr5-d%EB%9E%A8-%EA%B0%9C%EB%B0%9C

요즘은 모바일용으로 만든 D램을 사용하네.

0

결국 귀국하자마자 바로 잡아서 족치고 가택 압수수색 해서 폰이고 컴퓨터고 싹다 초기화 하기전에 가져와서 조졌어야 되는건데 그냥 연예인의 일탈 정도로 생각해서 출석 날짜만 통지하고 내비둔 것 같다. 저렇게 다 까발려졌고 애초에 연예계 생활이 끝난 상황에서도 초기화를 할 정도면 도대체 그 안에는 뭐가 들어있었을런지는 상상도 안감..

0
2019.03.23
@불가능한닉네임

ㄴㄴ 중범죄인거 경찰도 알고있고 짝짝궁 맞춰서 증거 인멸 할 시간 준거지

0
2019.03.23
[삭제 되었습니다]
2019.03.23
@Koenigsegg

암호화된 디스크를 복구하는게.가장 힘듦

 

암호문에 맞는 키를 구해야 하는데 해당 암호문 일부분이 복구가 안되면 키도 못찾음

0
2019.03.23
@Koenigsegg

걍 암호화 했으면 거기서 끝임

알집이나 반디집 이런걸로 압축할때 특문 대소문자 섞어서 30자 이렇게 만들면 천조국이 와도 절대로 못뚫음

 

그리고 디스크 와이핑으로도 충분해 그런 프로그램들 덮어 씌우는 횟수를 조절할수 있는데 좀 많이 하면 느리겠지만 복구가 아주 힘들지

0
2019.03.23

그럼 디지털 포렌식 막으려면 자석 지지기가 현재로선 유일한 방법이야?

0
2019.03.23
@초코찌개

전자렌지 돌리기ㅇㅇ

0
2019.03.23

SSD가 특별하기보단 하드디스크같은 자기 기반 기록매체가 유달리 복구가 쉬운거에 가깝지

0
2019.03.26

그냥 기름붓고 태우자

0
2019.03.27

휴대폰 중고로 팔지말고 부숴버리라던데

그러지않고 그냥 공장초기화만 해도 되는부분임?

0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜
563 [과학] 경계선 지능이 700만 있다는 기사들에 대해 36 LinkedList 9 4 일 전
562 [과학] 번역)새들은 왜 알을 많이 낳는가? - 후투티의 형제살해 습성... 7 리보솜 3 26 일 전
561 [과학] 학계와 AI, 그리고 Bitter Lesson (쓰라린 교훈) 26 elomn 35 2024.02.17
560 [과학] 지구의 속삭임, 골든 레코드의 우주 9 Archaea 10 2024.02.16
559 [과학] 잔혹한 과학실험 이야기 <1> 절망의 구덩이 19 개드립하면안됨 37 2024.02.15
558 [과학] 스트레스를 받으면 술이 땡기는 이유 12 동식 16 2024.02.10
557 [과학] 지능은 모계유전이 아니다. 40 울릉특별자치도 35 2024.01.26
556 [과학] 진화를 생각할 때 고려할 것들 23 날씨가나쁘잖아 12 2024.01.17
555 [과학] 학문적(과학적) 접근과 유사 진화심리"학" 26 날씨가나쁘잖아 19 2024.01.15
554 [과학] 호모 사피엔스의 야릇한 은폐된 배란에 대한 남녀 학자의 다... 14 개드립하면안됨 15 2023.12.29
553 [과학] 김영하의 작별인사를 읽고 느낀 점 (스포있음) 21 장문주의 2 2023.11.28
552 [과학] 제4회 포스텍 SF 어워드 공모전 ( SF 단편소설 / SF 미니픽션 ) 2 따스땅 1 2023.11.25
551 [과학] 펌) CRISPR 유전자 가위 치료제 "최초" 승인 12 리보솜 7 2023.11.25
550 [과학] 러시아는 기술산업을 어떻게 파괴시켰는가(펌) 9 세기노비는역사비... 15 2023.11.18
549 [과학] 고양이에 의한 섬생태계 교란과 생물 종의 절멸 (펌) 2 힘들힘들고 6 2023.11.16
548 [과학] 번역) 알츠하이머병 유전자는 어떻게 살아남았는가? 12 리보솜 10 2023.11.15
547 [과학] 『우영우』의 자폐 스펙트럼 장애 개념이 왜곡인 이유 (펌) 47 힘들힘들고 10 2023.11.12
546 [과학] 흑수저 문과충 출신 구글 취직하는 파이썬 특강 -1 14 지방흡입기 11 2023.09.27
545 [과학] 국가별 당뇨 유병율 이거 뭐가 바뀐건지 아는사람? 8 LAMBDA 1 2023.09.27
544 [과학] 물샤워 ㅇㅈㄹ 하는 놈들 봐라 171 철동이 48 2023.09.23