요약

  • ARIN의 통계 루트 디렉터리에는 올바른delegated-arin-extended-20260829데이터 파일과 체크섬 파일이 함께 있었지만, 같은 디렉터리에서delegated-arin-extended-20231018과delegated-arin-extended-20231008.md5라는 경로로 현재 시점의 아티팩트도 노출되어 있었습니다.
  • 추가 데이터 경로의 헤더에는enddate가20260829로 기록되어 있었습니다. 추가 체크섬 파일은 올바른 체크섬 매니페스트와 바이트 단위로 동일했고, 대상 파일명도delegated-arin-extended-20260829로 명시하고 있었습니다.
  • 올바른 2026 데이터 경로와 추가 2023 데이터 경로에서 표집한 5개 구간은 서로 일치했습니다. 이는 중복 아티팩트라는 해석을 뒷받침하지만, 전체 파일 동일성의 증명은 아니며 개별 자원 레코드의 정확성에 대해서는 아무것도 말해주지 않습니다.
  • ARIN 자체의 교환 형식은 날짜가 들어간 파일명, 내부 헤더, 그리고 그에 대응하는 분리형 체크섬이 함께 작동하도록 요구합니다. 배포 모니터는 공개 전에 이 동일성 튜플을 검증하고 모든 정정 이력을 보존해야 합니다.

디렉터리가 알려준 서로 다른 세 가지 날짜

첫 단서는 주소 레코드 안에 있지 않았습니다. 그것은 ARIN의 공개통계 디렉터리에 그대로 놓여 있었습니다.

예상된 이름으로는 통상적인 8월 29일 배포본이 존재했습니다:delegated-arin-extended-20260829와delegated-arin-extended-20260829.md5. 상시 유지되는latest데이터 경로와 체크섬 경로도 있었습니다. 자동화된 소비자가 일반적으로 기대하는 경로들입니다.

같은 디렉터리 상단 근처에 두 개의 추가 항목이 나타났습니다. 하나는delegated-arin-extended-20231018이라는 12,774,921바이트짜리 데이터 객체였고, 다른 하나는delegated-arin-extended-20231008.md5라는 67바이트짜리 체크섬 객체였습니다. 디렉터리 목록 기준으로 두 객체 모두 2026년 8월 29일의 수정 시각을 갖고 있었습니다.

이것만으로도 이미 깨진 짝입니다. 2023년 10월 18일자 데이터 파일에는 원래 같은 날짜에.md5가 붙은 체크섬이 짝을 이뤄야 합니다. 여기서 짝으로 보이는 파일은 10월 8일이라는 날짜를 쓰고 있었습니다. 더 중요한 것은, 두 객체를 열어 보면 어느 쪽도 2023년 배포본을 기술하지 않았다는 점입니다.

추가 데이터 경로에서 캡처된 버전 줄은 다음과 같았습니다.

2.3|arin|1788008421241|202440|19700101|20260829|-0400

같은 줄이 올바른 이름의 20260829 객체 맨 앞에도 나타났습니다. ARIN이 공개한RIR Statistics Exchange Format에 따르면 필드 순서는 버전, 레지스트리, 시리얼, 레코드 수, 시작 날짜, 종료 날짜, UTC 오프셋입니다. 따라서 내부 기간은 2026년 8월 29일에 끝났습니다. 경로는 2023년이라 했지만 헤더는 2026년이라고 말하고 있었습니다.

체크섬은 자신이 담긴 경로를 검증하지 않았다

추가 체크섬 객체는 67바이트 전체가 캡처되어 있어 더 명확합니다. 그 안에는 올바른 이름의 20260829 체크섬 파일과 동일한 한 줄이 들어 있었습니다:

6e57e7c85222c5ff9c1549d1ff8ea52c delegated-arin-extended-20260829

이 매니페스트는delegated-arin-extended-20231008을 지목하지 않았습니다.20231018로 끝나는 추가 데이터 경로도 지목하지 않았습니다. 지목한 것은 올바른 현재 시점 파일이었습니다.

이 구분은 일반적인 체크섬 도구의 동작에서 중요합니다. 분리형 체크섬 파일은 단순히 고립된 다이제스트가 아니라 보통 대상 파일명을 함께 담고 있습니다. 추가 매니페스트에 대해 통상적인 검증 명령을 실행하면 도구는 올바른 이름의 20260829 객체를 가리키게 됩니다. 검증이 성공하면 지정된 대상의 바이트가 ARIN이 공개한 MD5 값과 일치함을 확인하는 것이지, 매니페스트를 내려받은 URL의 이름이 올바르다는 것을 증명하지는 못합니다.

ARIN의 형식 사양은 이미 이 통제들을 분리해 두고 있습니다. 데이터 파일은delegated-<registry>-yyyymmdd로 명명되며, 날짜는 파일이 생성된 현지 일자를 나타냅니다. MD5 체크섬은 같은 이름에.md5를 붙여 공개됩니다. 검증 절차 항목은 분리형 체크섬 사용과 함께 파일명과 내용을 대조할 것을 명시적으로 요구합니다.

관측된 추가 경로들은 이 결합 검증을 통과하지 못합니다. 바이트 자체는 온전한 현재 바이트일 수 있습니다. 그래도 아티팩트의 동일성은 일관되지 않습니다.

표집이 확립하는 것과 하지 않는 것

올바른 20260829 데이터 경로와 추가 20231018 경로는 각각 12,774,921바이트의 길이를 광고하고 있었습니다. 각 객체에서 65,536바이트 크기의 5개 구간을 캡처했습니다: 시작 구간과 오프셋 1,048,576, 4,194,304, 8,388,608, 12,000,000에서 시작하는 구간들입니다. 짝지어진 모든 구간은 동일한 SHA-256 값을 산출했습니다.

이것은 유용한 보강 근거입니다. 일치 구간이 객체의 시작부, 중간부와 후반부에 걸쳐 있고, 첫 구간에는 동일한 20260829 헤더가 포함되어 있습니다. 동일한 길이와 동시점 디렉터리 목록까지 더하면, 이 증거는 현재 데이터 아티팩트가 오래된 듯 보이는 경로를 통해 노출되었다는 해석을 강하게 뒷받침합니다.

그래도 이것은 표집입니다. 전체 바이트 단위 동일성을 주장하려면 두 12.7MB 응답 각각에 대한 완전한 강한 다이제스트가 필요합니다. 공개 발견 사실은 그보다 강한 주장을 요구하지 않습니다. 경로·헤더 불일치는 첫 줄에서 보이고, 체크섬 매니페스트의 대상은 67바이트 전체에서 보입니다.

같은 근거 규율이 데이터의 내용에도 적용됩니다. 이 증거는 어떤 ASN, IPv4 범위 또는 IPv6 프리픽스가 틀렸다는 것을 보여주지 않습니다. 이전 오류, 경로 누수, 무효한 ROA, 홀더 변경, 손상된 시리얼을 보여주지도 않습니다. 올바른 이름의 현재 짝은 계속 이용 가능했습니다. 소비자에 대한 영향은 확인되지 않았습니다.

이것은 자원 무결성에 대한 판정이 아니라 배포 동일성의 결함입니다.

기계는 파일명을 데이터로 취급한다

추가 객체들을 무해한 디렉터리 잔여물로 치부하고 싶은 유혹이 듭니다. 운영상으로는 그것이 맞는 결론일 수 있습니다. 그러나 날짜가 붙은 레지스트리 파일은 자동화를 위해 설계되었고, 자동화는 흔히 경로 그 자체를 하나의 필드로 다룹니다.

수집 작업은 달력을 기준으로 어제의 URL을 조립하고, 대응하는.md5를 내려받아 검증한 뒤 그 날짜로 결과를 색인할 수 있습니다. 미러는 루트에서 본 모든 것을 보존할 수 있습니다. 연구자는 내부 헤더를 파싱하지 않은 채 파일명을 판본 키로 사용할 수 있습니다. 캐시는 배포자가 정리한 뒤에도 오랫동안 경로를 보존할 수 있습니다.

관측된 사례에서 이러한 지름길들은 서로 충돌할 수 있습니다. 겉으로 2023년 10월 18일자로 보이는 데이터 경로를 요청한 소비자는 2026년 8월로 끝나는 헤더를 받습니다. 겉으로 2023년 10월 8일자로 보이는 체크섬 경로를 요청한 소비자는 2026년 8월 파일명을 가리키는 매니페스트를 받습니다. 검증 도구가 매니페스트의 대상을 따라간다면, 검증은 통과하면서도 주변 카탈로그는 여전히 해당 수집을 2023년으로 묶어 둘 수 있습니다.

어떤 소비자가 실제로 그렇게 했다는 증거는 없습니다. 요점은 공개 인터페이스가 이 모호성을 허용한다는 것입니다. 파일 무결성과 카탈로그 동일성은 서로 다른 속성입니다.

이 구분은 소프트웨어 공급망에서 익숙한 것입니다. 콘텐츠 다이제스트는 블롭을 식별할 수 있지만, 버전 태그는 소비자에게 그 블롭이 어디에 속하는지 알려줍니다. 잘못된 태그 아래 놓인 올바른 블롭은 검증이 안심시켜 주는 만큼 재현성에 더 위험할 수 있습니다. 레지스트리 통계는 상시 미러링되고 집계되고 시간에 걸쳐 비교된다는 점에서 같은 소박한 규율을 받을 자격이 있습니다.

가장 강력한 무해 해석

증거는 차분한 설명을 지지합니다. 올바른 20260829 짝이 존재했습니다.latest경로도 존재했습니다. 두 추가 객체는 별칭, 임시 배포 잔여물 또는 내용이 여전히 현재 배포를 명확히 가리키는 우발적 복사본일 수 있습니다. 다섯 개의 데이터 표집은 일치했고, 체크섬 매니페스트들은 동일했습니다.

침입이나 자원 역사의 재작성 시도를 시사하는 것은 아무것도 없습니다. 공개된2023 아카이브는 압축된 역사 항목들을 별도로 나열하고 있습니다. 이 검토는 그 객체들을 감사하지 않으며, 오래된 파일이 파괴되거나 교체되었다는 주장을 하지 않습니다.

ARIN은 배포 계층을 정정한 전례도 있습니다.2013년 확장 통계 권고문에 따르면 기술적 문제 후 해당 파일들이 제거되었고 올바른 공개가 재개되었습니다. 그 이전 사례는 손상되고 불완전한 데이터와 관련되었지만, 현재의 증거는 그렇지 않습니다. 관련 전례는 절차적 측면뿐입니다. 공개 통계 표면은 파일 문제를 레지스트리 권한이나 네트워크 운영에 대한 주장으로 확대하지 않고도 복구될 수 있다는 것입니다.

오늘날 비례적인 조치는 더 작을 것입니다. ARIN은 의도치 않은 경로를 제거하거나, 의도적인 것이라면 의도적 별칭으로 선언할 수 있습니다. 무엇이 바뀌었는지에 대한 내부 접수 기록을 보존하고, 캐시나 미러가 복제했을 가능성이 있으면 짧은 정정 공지를 발행할 수 있습니다. 올바른 현재 배포본은 별도의 이름들이 나타났다는 이유만으로 회수될 필요가 없습니다.

배포당 하나의 동일성 튜플

형식은 이미 필요한 필드 대부분을 제공합니다. 배포 게이트는 배포본이나 별칭이 공개되기 전에 이를 하나의 기계 검증 가능한 동일성 튜플로 전환해야 합니다.

튜플은 정식 경로와 의도된 별칭들로 시작합니다. 헤더에서 파싱한 레지스트리, 시리얼, 레코드 수, 시작 날짜, 종료 날짜, UTC 오프셋을 추가합니다. 데이터 객체의 바이트 길이와 현대적인 강한 다이제스트를 기록합니다. 이어서 분리형 체크섬 또는 서명 아티팩트를 파싱하고, 알고리즘과 대상 파일명을 기록하며, 그 대상을 정식 경로와 대조합니다.

세 가지 동등성 검사가 상시 이루어져야 합니다:

  1. 정식 경로의 날짜가 헤더의 종료 날짜와 같다;
  2. 체크섬 경로가 정식 데이터 경로에 기대 접미사를 붙인 것과 같다;
  3. 체크섬 매니페스트 내부에 기록된 대상이 정식 데이터 파일명과 같다.

의도된 별칭은 허용될 수 있지만, 다른 날짜 판본으로 위장하는 대신 정식 접수 기록에 대한 별칭으로 선언되어야 합니다. 설명되지 않은 불일치는 공개 디렉터리에 도달하기 전에 격리되어야 합니다. 하나가 새어 나갔다면 정정은 이전 접수 해시, 시각, 사유 범주와 새 상태를 보존해야 합니다.

이 통제는 의도적으로 얇게 유지됩니다. ARIN이 파일을 어떻게 생성하고 호스팅할지는 ARIN이 결정합니다. 소비자는 이를 어떻게 분석할지를 결정합니다. 공통 요구 사항은 공개 기록 보관자가 자기 배포의 동일성을 모호하지 않게 만드는 것뿐입니다.

8월 29일의 바이트는 온전할 수 있습니다. 체크섬도 온전할 수 있습니다. 그럼에도 두 개의 2023 경로는 자신이 제공한 것에 비추어 잘못되어 있었습니다. 레지스트리 파일은 다이제스트만으로 식별되지 않습니다. 경로, 헤더, 검증 대상이 같은 날짜를 말해야 합니다.

출처