CounterProof

찾는 것은 싸졌다. 증명하는 것은 어려워졌다.

CounterProof는 현대적 코드베이스 — 무엇보다 기계가 작성한 코드 — 를 위한 독립적 적대적 리뷰 프랙티스입니다. 우리는 사내에서 만들 수 없는 단 하나를 제공합니다: 규제기관, 인수자, 보험사, 기업 고객의 정밀 검증을 견디도록 구축된, 독립적이고 서명되었으며 증거 등급이 매겨진 보안 평가입니다.

모델이 작성하고 같은 모델이 리뷰한 코드는, 아무에게도 리뷰받지 않은 것이다.

01

당신이 여기 있는 이유

아무도 코드 리뷰 자체를 사지 않는다. 사는 것은 그것이 열어주는 것이다.

보안 평가가 갖고 싶어서 잠에서 깬 것은 아닐 겁니다. 무언가가 당신에게 증거를 요구하고 있는 것입니다.

규제기관
EU 사이버복원력법(CRA)은 제품 보안에 대해 "효과적이고 정기적인 테스트와 검토를 실시할 것"을 요구하고(부속서 I 제II부 (3), 참고 번역), 기술 문서에는 "적합성 검증을 위해 수행된 테스트 보고서"를 포함할 것을 요구합니다(부속서 VII (6), 참고 번역) — 시장 출시 후 최소 10년간, 또는 지원 기간이 더 길면 그 기간 동안 보존해야 합니다(제13조 (13)). 적극적으로 악용되는 취약점과 중대 사고에 대한 제14조 통보는 2026년 9월 11일에 시작되고, 규정은 2027년 12월 11일부터 전면 적용됩니다. 대부분의 제품은 자체 평가가 가능합니다 — 그러나 그것은 안도가 아니라 노출입니다: 견뎌내는 기록을 만들어야 하는 부담이 전부 당신에게 있습니다.
인수자 또는 투자자
기술 실사는 AI 지원 코드베이스가 이제 할인당하는 곳입니다. 테이블 위의 독립적 평가는 그 대화가 시작되기 전에 판을 바꿉니다.
사이버 보험사
인수 심사자들은 "우리는 내부적으로 테스트합니다"와 "독립적인 제3자가 테스트하고 서명했습니다" 사이의 간극을 점점 더 보험료에 반영하고 있습니다.
기업 고객
그들의 보안 설문지에는 "우리 모델이 자기 출력을 검토했습니다"라는 체크박스가 없습니다.

이 넷 중 셋은 당신 자신의 코드에 대한 당신 자신의 말을 결코 받아들이지 않습니다 — 그들이 사는 것은 독립성이고, 그것은 어떤 팀도 자기 작업에 대해서는 공급할 수 없는 유일한 속성입니다. 네 번째인 규제기관은 자체 평가를 흔히 받아들입니다 — 그리고 그 뒤에 있는 모든 기록에 대해 당신에게 책임을 묻습니다. 어느 쪽이든 증거는 버텨야 합니다. 그것이 우리가 만드는 것입니다.

02

당신이 받는 것

산출물이 핵심입니다.

하나의 인게이지먼트는 영속적인 인게이지먼트 식별자(CPR-YYYY-NNN — 메인테이너, 인수자, 수정 커밋이 인용하는 것) 아래 CounterProof Assessment를 산출합니다. 각 발견은 당신의 소스에 대해 확인되거나 — 정확한 파일과 행, 재현 경로, 영향 분류 — 명시적으로 '개연성만 있음'으로 등급이 매겨집니다. 부풀림도, 스캐너 생성물도, 조치할 수 없는 것도 없습니다.

각 발견은 실제로 도달한 증거 단계 — 소스 추적, 컴파일 증명, 테스트, 실행 재현 — 를 명시하며, 그보다 높은 단계를 결코 암시하지 않습니다. 각 경로:행 인용은 보고서가 우리 손을 떠나기 전에, 우리가 검토한 정확한 리비전에 대해 기계적으로 해석됩니다. 우리 작업은 검증 가능합니다. 의도된 것입니다.

당국에게
부속서 VII (6)의 의미에서 테스트 보고서로 기술 문서에 편입되도록 구성되어, 제II부 (3)의 테스트 의무를 입증합니다. 당신이 꾸리는 파일을 뒷받침하는 것이지, 파일 그 자체가 아니며, 부속서 I 전반의 적합성을 검증하지도 않습니다.
실사팀에게
증거 등급이 매겨지고, 재현 가능하고, 범위가 명확하며, 리스크에 우리 이름이 걸려 있습니다.
당신의 엔지니어에게
읽을 수 있을 만큼 짧고, 고칠 수 있을 만큼 정확합니다. 패치 과정에 함께 남아 각 수정을 그것이 겨냥하는 발견에 대해 독립적으로 검증할 수 있습니다 — 무엇을 어떤 리비전에서 검증했는지 기록하여, 메모 목록이 아니라 무엇이 확인되었는지의 기록이 남습니다.

시장은 도구가 몇 개의 발견을 생성할 수 있는지로 경쟁하기 시작했습니다 — 그러나 발견은 증인이지 평결이 아니며, 헤드라인을 만드는 심각도 라벨은 아무도 검증할 수 없는 유일한 필드입니다. 발견은 평결이 아니다 →

03

실제로 무엇이 잘못되는가

유창함은 품질의 표시가 아니다. 그것은 고장 모드다.

사람이 코드 한 줄을 쓸 때, 그 줄을 의심합니다. 자신이 추측하고 있었다는 것을 알고 있습니다 — 그 의심이 안전장치입니다. 바로 그것이 실제로 시험해 보게 만들기 때문입니다.

모델은 같은 줄을 유창하게 씁니다. 정확히, 올바른 줄에 쓰는 것과 같은 목소리로. 읽는 사람에게 유창함은 능력으로 읽힙니다. 주니어 엔지니어가 눈에 띄게 거친 것을 건네면 당신은 확인합니다. 모델이 각 줄마다 자신 있는 근거를 붙인 다듬어진 이백 줄을 건네면, 당신은 확인하지 않습니다.

함정은 모델이 사람보다 더 자주 틀린다는 것이 아닙니다. 틀린 답이 맞는 답과 같은 목소리로 도착한다는 것입니다 — 밖에서 구별할 수 없는 이유는, 안에서 구별할 수 없기 때문입니다.

그리고 같은 프로세스가 코드를 인증하는 테스트를 쓰고, 그것을 설명하는 주석을 씁니다. 셋은 일치합니다. 셋 다 같은 곳에서 나왔기 때문입니다. 그 일치는 세 개의 독립적 확인처럼 읽힙니다. 실은 하나입니다.

그러므로 유용한 질문은 모델이 좋은 코드를 쓸 수 있는가가 아닙니다 — 쓸 수 있습니다, 주위에 방법이 있다면. 질문은, 검사하는 모든 것 — 코드, 테스트, 설명, 그리고 점점 더 그것들을 확인하려고 당신이 만든 도구까지 — 이 같은 원천에서 나왔을 때, 당신의 리뷰 프로세스가 실제로 무엇을 측정하고 있는가입니다. 제대로 하면 출력은 좋습니다. 잘못해도 정확히 똑같이 읽힙니다.

그리고 공격자는 당신의 리뷰어에 국한되지 않는다

리뷰는 그 리뷰어가 찾을 수 있는 것을 찾는다.

하나의 모델을 코드베이스에 돌리면, 짧은 보고서는 좁은 것을 알려줍니다: 그 모델이, 그 하네스에서, 그날, 이것들을 표면화했다고. 표면화하지 못한 것은 보고서에 없고, 구조상 있을 수 없습니다.

그것이 얼마나 중요한지는 서로 다른 리뷰어들의 사각지대가 얼마나 겹치는지에 달려 있습니다 — 코드 리뷰에 대해서는 아무도 그것을 측정하지 않았습니다. 벤더 간 상관 오류 연구는 객관식 벤치마크와 이력서 심사 과제에서 상당한 겹침을 발견했습니다. 그것이 취약점 발견으로 이어지는지는 확립되지 않았습니다. 보여주는 것은: 서로 다른 벤더가 자동으로 서로 독립적이지는 않다는 것입니다.

한 번의 패스가 놓친 것을 한정할 수 있는 것은 여럿 있습니다: 증명, 테스트 스위트, 퍼저, 전문가, 심어 놓은 결함, 또는 첫 번째와 다른 리뷰어. 한정할 수 없는 것: 같은 패스를 더 자신 있게 읽는 것입니다.

우리는 다중 리뷰어 리뷰가 더 많은 실제 결함을 잡는다는 것을 입증하지 않았습니다 — 그것을 검증하려고 설계한 실험은 실행 전에 철회되었고, 우리는 이를 공개적으로 말합니다. 우리가 서 있는 것은 더 좁은 논점입니다: 한 리뷰어의 깨끗한 패스는 범위가 한정된 결과이며, 그것을 청결 증명서로 읽는 것은 그 결과가 지지하지 않는 추론입니다. 전체 논증 (영어) →

긴 형태의 논증은 글로 남겨 두었습니다. 우리 방법의 한계가 어디에 있고 무엇을 입증하지 못했는지도 포함해서: 평이한 언어의 입문, 그리고 그 뒤의 전체 논문은 프리프린트로 doi:10.5281/zenodo.22030516(CC BY 4.0, 영어)에 공개되어 있습니다. 동료 평가를 받지 않았으며, 그렇게 명시합니다.

04

왜 사내에서는 할 수 없는가

같은 모델을 돌릴 수는 있다. 독립적일 수는 없다.

자기 코드에 여러 AI 모델을 돌리는 것은 우리 도구를 복제하지만, 중요한 속성을 잃습니다. 당신의 팀이 리뷰어에게 보여줄 것을 고르고, 질문의 틀을 짜고, 답을 판정합니다 — 그 선택 하나하나가 당신의 전제를 곧장 리뷰로 되돌려 놓습니다. 그것은 규율의 실패가 아니라 구조입니다. 시스템의 저자는 그 시스템의 심판이 될 수 없습니다.

그래서 흠잡을 데 없는 내부 리뷰조차 여전히 자기 코드에 대한 자기 말입니다. 그들이 사는 것은 서명할 의사가 있는 제3자입니다. 우리는 인증기관이 아니고 적합성을 인증하지 않습니다. 당신의 평가를 뒷받침하고, 다른 누구의 평가로도 재검토될 수 있게 구성된 독립적 증거를 만듭니다.

이 방법론은 누가 — 무엇이 — 당신의 코드를 썼는지 상관하지 않습니다. 사람이 쓴 코드에도 독립성은 똑같이 자주 없습니다. 기계가 쓴 코드는 그 간극을 무시할 수 없게 만들 뿐입니다.

05

함께 오는 공시

어차피 알게 될 일입니다. 우리에게서 듣는 편이 낫습니다.

CounterProof는 결제 및 디지털 자산 커스터디 인프라를 구축하는 그룹의 일부입니다. 이 방법론이 벼려진 곳이 거기입니다 — 그리고 그것은, 당신이 그 시장에서 무언가를 만들고 있다면, 우리 계열사가 당신 곁에 있거나 당신과 경쟁하고 있을 수 있다는 뜻입니다.

그래서: 어떤 인게이지먼트든 시작 전에, 그룹이 무엇을 만들고 어디서 운영하는지 서면으로 정확히 알려드립니다. 받아들일지는 당신이 결정합니다. 그것도 우리에게 아무것도 지불하기 전에. 받아들일 수 없다면 그것은 정당한 답이고, 처음에 듣는 편이 낫습니다.

우리의 독립성 주장이 무엇을 포함하고 포함하지 않는지, 정확히: CounterProof 또는 우리 그룹의 어떤 회사가 작성한 코드에 대해서도 평가를 발행하지 않습니다. 그 경계는 구조적입니다. 이것은 누구의 코드를 리뷰하는가에 대한 진술이지, 당신의 섹터 근처에 어떤 상업적 이해관계도 없다는 주장이 아닙니다 — 진짜 도메인 전문성을 가진 리뷰 회사 중 후자를 정직하게 주장할 수 있는 곳은 없고, 우리는 그런 척하지 않을 것입니다.

06

우리는 누구인가

세 사람, 실명으로, 기록에.

서명된 평가란 누군가의 이름이 그 위에 있다는 뜻입니다. 이들이 그 사람들입니다 — 그리고 어떤 이름이 무엇을 짊어지는지.

Vincent Soons
연합형 비트코인 커스터디 프로토콜 Fedimint의 업스트림 컨트리뷰터 — 공개 기여이며, 누구든 확인할 수 있습니다. 재현 하네스를 만들고 암호 및 합의 리뷰를 이끕니다.
Luuk Soons
2013년부터 비트코인과 건전화폐 인프라에서 활동. 방법론, 규제 태세, 그리고 모든 공시 결정 — 위의 것을 포함해 — 을 책임집니다.
Elenora Soons
어카운트 매니저이자 정보 문의 창구 — 당신이 우리에게 썼을 때 답하고, 대화의 범위를 정하고, 인게이지먼트의 서류를 움직이는 사람입니다. 평가를 작성하거나 서명하지 않습니다. 그것은 위의 두 이름이 짊어집니다. info@counterproof.io · +356 7741 7951

우리는 가족 프랙티스입니다 — 아버지, 아들, 딸 — 그리고 리뷰 벤치는 두 사람입니다. 둘 다 실사팀이 스스로 알아낼 사실이므로, 여기서 먼저 말해 둡니다: 두 명의 리뷰어 벤치는 회사보다 적은 인게이지먼트를 받고, 자기 도메인 밖의 모든 것을 거절하며, 약한 패스를 브랜드 뒤에 숨길 수 없습니다. 그것이 이 거래이고, 방법론이 누군가의 머릿속이 아니라 글로 적히고 기계화되어 있는 이유입니다.

07

노트

우리가 읽고 있는 것, 그리고 확인하고 있는 것.

모든 노트 →

08

기한이 말을 걸어오기 전에, 우리와 이야기하십시오.

정보 문의는 어카운트 매니저 Elenora Soons에게:

info@counterproof.io

+356 7741 7951