2분
펌웨어를 꺼내 가는 길
위협과 방어
펌웨어를 꺼내 가는 길
위협과 방어 > 위협과 방어
학습 목표
- 기기에서 펌웨어와 열쇠가 새어 나가는 경로를 든다
- 한 대가 뚫리면 왜 제품군 전체가 위험한지 설명한다
물건은 남의 손에 넘어간다
소프트웨어와 다른 점이 하나 있습니다. 기기는 팔리면 남의 손에 있습니다. 뜯어서 들여다보는 것을 막을 수 없으므로, 뜯겼을 때 무엇이 나오는지가 문제가 됩니다.
가장 흔한 길이 디버그 포트입니다. 개발할 때 쓰는 그 통로가 양산품에 열린 채로 나가면 펌웨어를 통째로 읽어 갈 수 있습니다. 두 번째는 저장 장치를 직접 읽는 것입니다. 칩을 떼어 내 읽으면 안에 든 것이 그대로 나옵니다.
한 대가 아니라 제품군이 뚫린다
여기서 피해의 크기가 정해집니다. 꺼낸 것 안에 여러 대가 함께 쓰는 것이 들어 있으면 한 대를 뜯어 전체를 얻습니다.
코스 2 에서 개별 인증서가 기기마다 한 장이라고 한 것이 그래서 중요합니다. 기기마다 다르면 한 대를 뜯어도 그 한 대뿐입니다. 반대로 제품군 열쇠를 기기에 넣어 두었다면 한 대가 곧 제품군 전체입니다. 기본 비밀번호를 모든 기기에 같게 박아 두는 것도 같은 잘못입니다.
⚠️ 코스 3 에서 본 Thread 망 자격도 여기 걸립니다. 허브가 그것을 평문으로 저장해 두면, 허브를 뜯은 사람이 그 집 망에 들어옵니다.
막는 방법은 정해져 있습니다. 양산에서 디버그 포트를 잠그고, 저장 장치를 암호화하고, 열쇠는 꺼낼 수 없는 자리에 두고, 여러 대가 공유하는 비밀을 만들지 않습니다.
물어야 할 것은 「뚫릴 수 있는가」가 아니라 **「한 대가 뚫리면 몇 대가 위험한가」**입니다.