배지는 보여 주기는 싸고 해석하기는 비싸다. 공개된 감사 보고서는 범위가 정해진 엔지니어링 작업이다. 이름이 밝혀진 평가자가 이름이 밝혀진 구성 요소를 이름이 밝혀진 버전에서 명시된 방법과 시간 예산으로 조사했다. 이 네 가지 사실이 결론이 무엇을 뒷받침할 수 있는지를 결정하며, 보통 마케팅 요약이 아니라 첫 몇 페이지에 있다. 그것을 읽는 데는 십 분이 걸리고, 클라이언트 앱에 대한 발견을 서비스 전체로 확장하는 흔한 오류를 막는다.

범위 절이 실제로 경계 짓는 것

범위 진술은 울타리이며, 그 바깥은 통과가 아니라 답이 없는 상태로 남는다. 보고서는 조사한 구성 요소, 커밋 범위 또는 빌드 식별자, 사용한 환경, 허용된 상호작용 모델을 나열한다. 데스크톱 클라이언트, 모바일 앱, 서버 코드, 계정 백엔드, 프로덕션 인프라는 다섯 가지 다른 대상이며, 작업은 그중 어떤 부분집합도 다룰 수 있다.

제외는 포함만큼 중요하다. 의도적으로 적히고 부주의하게 읽히기 때문이다. 범위 밖이라고 서술된 계정 시스템은 암묵적으로 안전한 것이 아니며, 작업에서 빠진 모바일 앱은 그저 조사되지 않은 것이다. 자신의 메모에서 시험되지 않은 구성 요소를 모두 미지로 표시하고, 빈틈을 평판으로 메우려는 유혹에 저항하라.

두 종류의 시험은 다른 질문에 답한다

소스 검토와 실행 시점 시험은 서로 다른 고장을 찾는다. 코드를 읽는 검토자는 키 유도를 따라가고, 빠진 길이 검사를 발견하고, 파서 전체를 실행하지 않고도 추론할 수 있다. 실행 중인 서비스에 대한 시험자는 배포된 빌드가 실제로 무엇을 하는지 발견한다. 앱이 거부하는 인증서, 여전히 켜져 있는 대체 프로토콜, 아무도 검토하지 않은 구성으로 버전 배너를 흘리는 엔드포인트 같은 것이다.

어느 쪽도 다른 쪽을 대신하지 않으며, 보고서는 보통 어느 것을 했는지 밝힌다. 요약이 그 구분 없이 «감사됨»이라고 하면 모호함은 요약에 있고 보고서에는 없다.

접근 한계도 같은 일을 한다. 블랙박스 작업은 서버 구성을 볼 수 없고, 배포된 엔드포인트를 한 번도 건드리지 않는 아키텍처 검토는 프로덕션이 도면과 다르다는 것을 알아차릴 수 없다. 둘 다 정당하다. 그 결과를 뒤섞는 것은 아니다.

발견이 수정된 버전이 되는 과정

보고서의 값진 절반은 교정 표다. 각 발견, 평가자 방법에 따른 심각도, 운영자의 대응, 재시험 결과. 심각도 숫자는 자연이 아니라 선택된 방법론에서 오므로, 심각도는 한 보고서 안에서 비교하고 척도가 다른 두 보고서 사이에서 비교하지 마라.

다음으로 수정을 출시된 소프트웨어와 연결하라. 수정된 발견은 수정을 담은 버전이 설치된 버전일 때만 사용자에게 의미가 있으며, 그래서 보고서의 빌드 식별자와 릴리스 변경 기록을 함께 읽어야 한다. 수정을 포함한 재시험이 고리를 닫는다. 시험되지 않은 수정은 주장이다. 어떤 안정 릴리스도 병합하지 않은 브랜치에서만 나온 수정도 마찬가지다.

배지가 말해 줄 수 없는 것

발견이 없다는 것이 결함이 없다는 증거는 아니다. 고정 예산의 짧은 작업은 무언가를 놓칠 것이며, 깨끗한 보고서의 정직한 독법은 평가자가 주어진 시간에 찾던 문제 부류를 찾지 못했다는 것이다.

배지는 또한 자기 범위 밖의 속성에 대해 말할 수 없다. 로깅 관행, 관할, 보존에 관한 주장은 정책 문서에 있고 클라이언트 앱 감사에는 없으며, 평가자의 어떤 평판도 그 경계를 넘지 않는다.

변호할 수 있는 증거를 기록하기

인용을 세 부분으로 쓰라. 구성 요소, 버전, 검증된 수정. 예컨대 Mozilla가 의뢰한 VPN 감사 같은 공개 작업은 그 범위가 서술하는 명제만 뒷받침하고 그보다 넓은 것은 아무것도 뒷받침하지 않으며, 인용이 정확할 때 그것은 여전히 상당한 가치가 있다. 한 번도 조사하지 않은 것에 같은 보고서를 인용하는 것은 인용이 없는 것보다 가치가 낮다. 아무도 얻지 못한 신뢰를 초대하기 때문이다.

주장된 속성이 가용한 모든 보고서의 바깥에 있다면, 문서에서 미해결로 남겨 두라. 미해결 줄은 후속 질문을 초대하지만 배지는 그렇지 않다. 유일한 예외는 다른, 똑같이 구체적인 문서가 정하는 속성이며, 그때 바뀌는 것은 주장이 아니라 인용이다.

두 가지 습관이 읽기를 오래가게 한다. 실제로 실행하는 릴리스에 대한 보고서 날짜를 적고, 시험한 것과 배포한 것의 차이를 유지하라. 둘 다 신뢰 결정을 동료가 확인할 수 있는 것으로 바꾼다.

관련 글