FDE Capstone: The Warehouse Got the Same Order Three Times
Quiz: A support bundle that runs on the customer's system
한국어 원문으로 표시합니다.
수집 범위를 '비밀이 든 파일만 빼고 전부' 로 정하면 가장 먼저 생기는 문제는?
- 번들이 커져 전송이 느려질 뿐 보안에는 영향이 없다
- 가림 규칙이 파일 형식을 몰라 모두 실패한다
- 빼야 할 줄 몰랐던 새 파일이 검토 없이 딸려 들어간다
- 고객 담당자가 수집기를 실행할 권한이 없어진다
가림 규칙을 'password 가 들어간 키의 값' 으로 넓게 잡았다. 채점기에서 떨어지는 이유로 맞는 것은?
- password_min_length 같은 일반 설정까지 가려 번들이 쓸모를 잃는다
- 비밀번호 값이 따옴표에 싸여 있으면 규칙이 동작하지 않는다
- password 는 대소문자를 구분해 DB_PASSWORD 를 놓친다
- 가림 표식이 너무 많아 manifest 크기 상한을 넘는다
큰 로그를 먼저 65536 바이트로 자르고 그다음 가렸다. 어떤 위험이 생기나?
- 잘린 결과가 상한보다 커져 크기 검사에 걸린다
- 가림 건수가 잘리기 전 기준으로 세어져 manifest 가 틀린다
- gzip 압축률이 떨어져 번들 해시가 흔들린다
- 경계에 걸친 개인키 블록의 BEGIN 줄이 잘려 본문이 규칙을 피한다
Python 으로 tarfile.open(path, "w:gz") 에 디렉터리를 add 해 두 번 묶었더니 내용이 같은데 sha256 이 달랐다(실측). 원인으로 가장 직접적인 것은?
- tarfile 이 디렉터리를 이름순이 아니라 무작위 순서로 넣는다
- gzip 머리에 현재 시각이 들어가고, tar 항목에는 원본 mtime·소유자가 들어간다
- PAX 형식이 항목마다 난수 헤더를 붙인다
- 압축 수준 기본값이 실행마다 달라진다
manifest.json 에 generated_at(생성 시각)을 넣었다. 무엇이 깨지나?
- sha256 계산이 manifest 파일 자체를 포함하지 못한다
- 같은 입력으로 만든 번들이 매번 달라져, 검토한 파일과 받은 파일이 같다는 확인이 무너진다
- 검토자가 JSON 을 열 수 없게 된다
- 가림 건수의 합계가 파일별 건수와 달라진다
서비스의 환경을 번들에 넣을 때 수집기를 실행한 셸의 env 대신 /proc//environ 을 읽는 이유는?
- 셸의 env 는 root 만 읽을 수 있기 때문이다
- environ 파일은 프로세스가 실행 중에 바꾼 값까지 실시간으로 보여 주기 때문이다
- 장애가 난 것은 서비스 프로세스이고, 그 프로세스가 시작될 때 받은 환경이 거기에 있기 때문이다
- 셸의 env 에는 NUL 이 섞여 있어 줄로 나눌 수 없기 때문이다