흥미롭게도 NetBSD에서는 1999년 8월 해당 코드를 재작성하면서 이 버그가 우연히 수정된 것으로 보임.
감사를 아주 많이 받는 코드베이스에서도 버그가 37년이나 살아남았다는 건 놀라운 일임. 일부 커널 버그는 코드 검토만으로 잡기가 얼마나 어려운지 보여줌. 퍼징이나 정적 분석으로 이런 종류의 버그를 현실적으로 찾아낼 수 있었을까? 아니면 사람이 익스플로잇의 기본 수단을 고민해야 찾을 수 있는 버그였을까?
이 사이트의 글은 전부 AI로 생성되며, 다루는 버그와 익스플로잇도 AI가 발견한 것들임.
그런 의미에서는 퍼징과 비슷함. 모든 BSD와 Linux 시스템에는 이런 악용 가능한 취약점이 무서울 정도로 많이 숨어 있음. 오래된 커널을 쓰는 라우터, 자동차, PLC 등 온갖 임베디드 시스템도 포함됨.
생각하는 만큼 감사를 많이 받지는 않음. 활동 중인 개발자가 십여 명 정도에 불과함.
그렇게 놀랍지는 않음. 역사상 누구도 올바른 C 코드를 작성하지 못했고, OpenBSD 개발자도 예외가 아님.
OpenBSD에서 떠오르는 가장 작은 도구 두 개, cat과 find를 AI로 살펴봤더니 버그가 여러 개 발견됨. 그중 하나는 악용 가능성이 낮긴 해도 버퍼 오버플로였음. 기억이 맞다면 적어도 NetBSD와 OpenBSD가 갈라진 시점부터 존재했던 버그들임.
C에서는 모든 것이 정의되지 않은 동작(UB)임: https://news.ycombinator.com/item?id=48203698.
OpenBSD가 대단히 안전하다는 믿음은 대부분 허구임. 대표적인 홍보 문구인 “아주 오랜 기간 기본 설치에서 원격 취약점이 단 두 개”는 별 의미가 없음. 기본 설치만으로는 실질적으로 하는 일이 별로 없고, 쓸모 있게 만들려고 패키지를 설치하는 순간 그 보안 주장의 범위를 벗어나기 때문임.
국가 안보 분야의 기밀 취급 워크스테이션은 Windows를 사용함. 기밀 평문을 다루는 망의 라우터도 Cisco, Juniper, PAN 같은 기성 상용 제품임. OpenBSD는 대체로 보안 역할놀이에 가까움.
감사를 많이 받는다는 표현은 과장일 수 있음. 누가 감사했고 무엇을 찾아야 하는지 알고 있었는지가 핵심임.
감사 빈도와 품질을 높이기 위해 에이전트형 도구를 쓰고 있는지 궁금함. 자원봉사자의 시간은 귀하니 자동화 도구가 유용할 수 있지만, 좋은 결과를 얻으려다가 오히려 그 시간을 더 소모할 수도 있음. 어느 쪽이든 자기들 프로젝트이니 적절하다고 여기는 대로 하면 됨.
이제 OpenBSD 개발자들은 홈페이지에서 익스플로잇이 총 세 개라고 인정해야 하니 안됐음.
홈페이지 문구는 “아주 오랜 기간 기본 설치에서 원격 취약점이 단 두 개”임. 이번 취약점은 원격 취약점이 아니므로 수정할 필요가 없음. 최근의 로컬 취약점도 이것 하나뿐은 아닌 것으로 알고 있음.