クイズ: 持ち込み媒体の検疫
한국어 원문으로 표시합니다.
반입 매체의 압축 파일을 심사할 때, 먼저 격리 디렉터리에 풀어 놓고 들여다보는 절차가 위험한 가장 큰 이유는?
- 압축을 풀면 원본 아카이브의 해시가 바뀌어 접수 대장과 어긋나기 때문
- 푸는 행위 자체가 경로·링크·특수 파일을 그대로 파일 시스템에 반영하기 때문
- 격리 디렉터리는 심사가 끝나면 지워지므로 증거가 남지 않기 때문
- 풀어 놓은 파일은 확장자만 보이고 실제 형식은 확인할 수 없기 때문
풀지 않고 아카이브의 총 압축 해제 크기를 알아야 한다. 가장 알맞은 방법은?
- tar 헤더에 적힌 각 항목의 size 를 전부 더한다
- gzip 으로 한 번 풀어 임시 디렉터리 크기를 재고 지운다
- 압축 파일 크기에 gzip 의 평균 압축률 3배를 곱해 추정한다
- 압축 파일 안의 마지막 항목 헤더에 적힌 누적 크기를 읽는다
파이썬 tarfile 의 data 필터로 아카이브를 풀었다. 항목 이름이 /etc/cron.d/agent-sync 였을 때 실제로 일어나는 일은?
- 절대 경로이므로 AbsolutePathError 로 거절되어 풀리지 않는다
- 필터가 무시되고 호스트의 /etc/cron.d 에 그대로 쓰인다
- 선두 슬래시가 떨어져 격리 디렉터리 안의 etc/cron.d/agent-sync 로 풀린다
- 이름이 바뀌지 않은 채 추출 전체가 중단되고 디렉터리가 비워진다
거절된 항목을 사유와 함께 한 번에 모으려 한다. extractall 에 filter='data' 만 넘겼을 때의 문제는?
- 필터가 members 인자와 함께 쓰일 수 없어 예외가 난다
- 거절 사유가 모두 같은 FilterError 로 뭉뚱그려져 구분되지 않는다
- 거절된 항목이 조용히 건너뛰어져 몇 개가 빠졌는지 알 수 없다
- 첫 거절에서 예외가 올라와 멈추므로 뒤에 무엇이 더 있었는지 보이지 않는다
검역 보고서를 다시 만든 뒤 판정서의 report_sha256 을 그대로 두었다. 이때 생기는 문제로 가장 알맞은 것은?
- 판정서의 판정이 자동으로 reject 로 바뀐다
- 판정이 어느 보고서에서 나온 것인지 이어지지 않아 근거로 쓸 수 없다
- 보고서와 판정서의 수정 시각이 어긋나 심사 도구가 파일을 거부한다
- 아카이브의 해시까지 함께 낡아 접수 대장과 어긋난다
이름이 inventory.csv 인 항목의 앞머리 두 바이트가 1f 8b 였다. 검역 보고서에 적을 내용으로 가장 알맞은 것은?
- gzip 이므로 자동으로 한 번 더 풀어 내용을 확인했다고 적는다
- 확장자가 틀렸을 뿐이므로 이름을 inventory.csv.gz 로 고쳐 적는다
- 판정할 수 없는 항목이므로 보고서에서 빼고 사람이 따로 확인하게 한다
- name 과 함께 declared 는 text, actual 은 gzip 으로 불일치 항목에 적는다