curl 프로젝트와 보안 팀이 전례 없는 수준의 고품질 보안 보고서 홍수와 그에 따른 압박, 책임감, 그리고 지원의 필요성에 대해 이야기합니다.
저는 주로 오픈 소스를 사랑하기 때문에 이 일을 합니다. 사회적인 측면, 모두의 이익을 위한 관점, 그리고 이것을 모두에게 맞게 작동하도록 만드는 공학적 도전 때문입니다. 또한 이것이 제 풀타임 직업이기도 하고, 먹고사는 문제와 가족을 부양하는 일도 중요하지 않지 않기 때문에 합니다. 충격적으로 들릴지 모르지만, 저는 돈이나 사치스러운 생활 방식을 위해 이 일을 하는 것이 아닙니다.
저는 2019년부터 curl에 풀타임으로 일해 왔습니다. 저에게 이것은 보통 주 50시간 근무를 뜻합니다. 하루 종일 여기에 매달리고, 매일 밤 늦게 몇 시간씩 더 보태기 때문입니다. 일주일 내내, 저는 이 모든 시간을 curl에 씁니다. 이것은 사랑의 작업이자, 제 직업이면서 동시에 여가 시간의 취미이기도 하고, 어차피 제 근무 시간을 세는 사람도 없기 때문입니다. (그리고 아니요, 저는 다른 누구에게도 이렇게 하라고 권하지 않습니다. 다른 사람들에게 이것을 제안하는 것은 아닙니다.)
저는 제 삶에서 일과 관련한 가장 중요한 사명이 curl을 가능한 한 최고의 전송 라이브러리이자 도구로 만들고, 오픈 소스, 품질, 성능, 그리고 무엇보다 보안 면에서 최상위 프로젝트의 자격을 갖추게 하는 것이라고 생각합니다. 그리고 저는 우리가 대체로 이런 높은 목표를 충족하고 있다고 믿습니다.
저는 curl 프로젝트를 창립했고, 거의 30년이 지난 지금도 여전히 이 프로젝트의 리드 개발자입니다. 저는 언제나 curl is not a one-man shop 이라고 분명히 말하고, 훌륭한 curl 팀 동료들이 없었다면 오늘의 curl은 절대 존재할 수 없었을 것이라고 강조하지만, 세상의 많은 사람들은 여전히 curl을 제 프로젝트로 생각하며 때로는 curl과 저를 거의 동일시합니다.
저는 curl 문제를 개인적으로 받아들이지 않을 수 없습니다. 누군가 curl을 비판하면, 그것은 결국 제가 지지하고 책임지는 결정과 선택에 대한 불만이기도 합니다. 그리고 많은 경우 그 결정은 제가 내렸습니다. curl은 저에게 개인적인 것입니다. curl은 제 삶을 영원히 형성했습니다.
저에게는 두 아이가 있습니다. 둘 다 제가 curl 작업을 시작한 지 한참 뒤에 태어났고, 이제는 둘 다 성인이자 독립적인 개인입니다. 저는 아이들을 무척 사랑합니다. 삶은 흘러가지만 curl은 남습니다. 한가한 시기도 있었고 바쁜 시기도 있었습니다. 수십 년이 지나갑니다.
올해 후반에 curl 프로젝트는 30주년을 맞이합니다. 우리는 보통 전 세계의 curl 설치 수가 아마 300억에 이를 것이라고 말하곤 합니다.
지난 몇 년 동안 저는 curl에 제출된 보안 보고서의 상태에 대해 수많은 블로그 글을 써 왔습니다. 그 내용은 점차 멍청한 LLM들에 대한 불평에서, 멍청한 AI 슬롭 보고서들, 버그 바운티 종료를 거쳐, 현재의 고품질 혼돈으로 옮겨 왔습니다. 우리에게는 이것이 아마 2026년 3월 어느 시점부터 시작되었습니다.
우리는 수년 동안 인터넷 제품, 소프트웨어 인프라, 오픈 소스에서 많은 충격적인 보안 실패를 보아 왔습니다. 그런 사건들을 읽을 때마다 우리는 curl이 얼마나 많은 곳에 존재하는지, 그리고 그런 일이 우리나 우리 사용자들에게는 정말로, 정말로, 정말로 일어나지 않기를 얼마나 바라는지 다시 떠올리게 됩니다. 그리고 우리는 프로젝트를 다시 한 바퀴 돌며, 모든 볼트를 조금씩 더 조이고, 몇 가지 점검, 테스트, 가이드라인을 더 추가하여 이상적으로는 curl이라는 배가 새거나 침몰할 가능성을 아주 조금이라도 더 낮추고자 합니다.
최근 제가 Mythos가 첫 번째 스캔에서 curl에서 낮은 심각도의 문제 하나만 찾았다고 지적한 뒤로, 셀 수 없이 많은 사람들이 curl이 상상할 수 있는 가장 면밀히 검토되고, 가장 많이 리뷰되며, 가장 많이 퍼징되고, 가장 많이 검증된 소스 코드 가운데 하나라는 주장을 반복했습니다. 아마 사실일지도 모릅니다. 하지만 이것만은 언급하고 싶습니다. 그것은 우연이 아닙니다. 사고처럼 그렇게 된 것도 아니고, 운 좋은 환경 덕분도 아닙니다. 그것은 수십 년에 걸친 집요한 작업과 세부 사항에 대한 주의의 결과입니다. 제대로 된 소프트웨어 공학 입니다. 시간이 흐르며 반복적으로 개선하는 일을 결코 멈추지 않는 것은 효과적인 방법입니다.
하지만 그렇다고 해서 우리에게 버그가 없거나 아직 보안 문제가 남아 있지 않다는 뜻은 아닙니다. 왜냐하면 버그도 있고 보안 문제도 남아 있기 때문입니다. 우리는 수십만 줄의 소스 코드로, 상상할 수 있는 모든 운영 체제와 CPU 아키텍처에서 많은 프로토콜에 대해 고도의 병렬 네트워킹을 수행합니다. 그것도 C로 말입니다. 그래서 우리는 문제를 고치고, 패치하고, 새 릴리스를 배포합니다. 계속해서, 또 계속해서요.
전 세계 300억 설치라는 것은 이 블로그 글을 읽는 모든 사람이 자신이 가진 물건 속에 curl을 여러 번 설치한 상태라는 뜻입니다. 휴대폰, 태블릿, 자동차, TV, 프린터, 게임 콘솔, 주방 기기 등등에 말입니다. 우리가 사용하는 모든 온라인 디지털 서비스와 그 기기들이 통신하는 대상은 말할 것도 없습니다. curl 보안의 중요성은 아무리 강조해도 지나치지 않으며, 여러분 대부분도 저와 같은 생각일 것이라고 짐작합니다.
저는 과거 어느 시점에 끔찍한 버그를 배포해 세상을 한동안 불태운 프로젝트들이 부럽습니다. 그들은 주목을 받았고, 그중 일부는 이후 자금과 재정적 기반을 확보해 직원을 두고 여러 명의 풀타임 엔지니어를 고용할 수 있게 되었습니다. 가끔은 우리도 그런 것 하나쯤 있었으면 더 나았을 거라고 생각합니다.
30년 된 프로젝트라면 이미 대부분의 일을 겪어봤을 것 같지만, 우리는 이런 상황을 이전에 겪어본 적이 없습니다.
들어오는 보안 보고서의 비율은 2024년보다 4~5배 높고, 2025년 속도의 두 배입니다. 이는 이제 평균적으로 하루에 한 건이 넘는 보고서가 들어온다는 뜻입니다. 품질은 그 어느 때보다 훨씬 높습니다. 보고서는 보통 매우 자세하고 깁니다.
이렇게 밀려드는 제출물을 관리하려면, 앞으로 더 많이 들어올 것임을 알기에 가능한 한 빨리 처리해야 합니다. 도착하는 속도와 대략 비슷한 속도로 처리하지 못하면 백로그는 그저 커질 뿐이고, 통제할 수 없는 잠재적 보안 문제 목록을 쥐고 있는 것은 정신적으로 큰 부담을 줍니다.
저는 지금 거의 모든 날을 Hackerone에 있는 보고된 보안 이슈 목록을 처리하는 데 쓰고 있습니다. 주장을 검증하고, 중요도를 평가하고, 패치를 작성하고, 버그가 언제 도입되었는지 파악하고, 취약점을 이해하고, 그 문제를 세상에 설명하는 자세한 권고문을 작성하며, 이 모든 내용을 보안 연구자와 curl 보안 팀의 나머지 구성원들과 소통합니다.
제 인생에서 처음으로, 제 아내가 제 근무 시간과 불균형한 일과 삶의 상황에 대해 우려를 표했습니다. 저는 이전보다 더 많이 일하고 있지만, 밀려드는 보고서는 계속 옵니다. 제 주변 사람들은, 아마 행간을 읽고서, 저와 우리가 이 홍수를 어떻게 버텨내는지 묻고, 그 과정에서 우리가 지치지 않도록 확인하고 싶어 합니다. 저는 제 팀 동료들이 걱정됩니다.
저는 곧 제 자신에게 더 많은 숨 돌릴 시간을 허용하기 위해 근무 시간을 줄여야 할지도 모릅니다.
이것은 curl 프로젝트와 그 보안 팀 구성원들에게 전례 없는 압박입니다. 프로젝트의 다른 모든 일을 제쳐두게 만드는 고우선순위 작업의 눈사태이며, 본질적으로 정신적인 부담입니다. 왜냐하면 우리가 원했다면 분명 그것들을 전부 무시할 수도 있었겠지만, 우리는 책임감을 느끼고, 양심이 있으며, 우리의 일에 자부심을 갖고 있기 때문입니다. 우리는 우리가 지구상의 모든 기기에 배포되는 데 기여한 소프트웨어의 보안 문제를 고쳐야 할 의무를 느낍니다. 이것은 우리에게 개인적인 문제입니다.
예정된 릴리스가 나오기까지 릴리스 주기의 절반 정도가 아직 남아 있는 지금, 우리는 이미 열두 개의 확인된 취약점 을 갖고 있습니다. 이는 열두 건의 대기 중인 CVE 발표를 뜻합니다. 이것은 프로젝트의 새로운 기록이며, 또한 2026년에 달력상 반년도 지나기 전에 공개된 curl CVE가 서른 건 에 도달하게 된다는 뜻이기도 합니다. 따라서 올해 전체를 통틀어 공개될 curl CVE 총량의 예상치는 적어도 이 숫자의 두 배입니다!
우리가 바라는 도움은 무엇일까요? 단기적으로는 조금 늦었습니다. 이미 일이 목까지 차 있습니다.
저는 상용 소프트웨어와 서비스에서 curl 또는 libcurl을 사용하고 의존하는 더 많은 회사들이 우리를 재정적으로 지원하는 데 동참해 주었으면 합니다. 그러면 우리는 더 많은 개발자에게 비용을 지불해 작업 부하를 분산시킬 수 있습니다. 그것은 정말 좋을 것입니다. 이것에 어떻게 기여할 수 있을지 논의하고 싶다면 언제든 저에게 연락해 주세요. 여러분의 고용주가 지원 계약 비용을 지불하게 하세요!
다행히도 이미 그렇게 해주는 고객들이 있어서, 우리 중 일부는 curl에 풀타임으로 일할 수 있습니다.
저는 현실주의자이며(그리고 약간의 냉소주의자이기도 하며), 이 춤을 이미 아주 오랫동안 춰 왔습니다. 우리가 전례 없는 상황에 처해 있고 그 어느 때보다 더 곤란한 위치에 있더라도, 이 분야에서 의미 있는 변화가 일어날 것이라는 환상은 없습니다. 저는 우리가 늘 그래 왔듯이 이 폭풍을 우리 힘으로 버텨낼 것이라고 완전히 예상합니다. 우리는 살아남을 것입니다. 우리는 견뎌낼 것입니다. 다만 우리가 이 상황을 헤쳐 나가려 하는 동안 프로젝트와 세상 전반이 조금 흔들리는 시기가 될 수도 있습니다. 거대한 해일이 우리 위로 밀려오고 있고, 우리가 할 수 있는 일은 헤엄치는 것뿐입니다. 우리에게는 구명정이 없습니다.
curl 프로젝트는 어떤 회사의 소유도 아닙니다. 우리는 어떤 상위 조직의 일부도 아닙니다. 이것은 때때로 우리를 다소 역량이 부족하게 만들지만, 동시에 최대한의 자유와 유연성을 줍니다. 우리는 오직 세상과 curl 사용자들을 위해 curl을 가능한 한 좋게 만드는 일에만 이해관계를 두고 행동합니다.
버그와 문제를 고치는 것은 좋은 일입니다. 보고된 모든 문제는 곧 수정된 이슈를 뜻합니다. curl은 더 나은 제품이 됩니다.
또 다른 좋은 경향도 있습니다. 거의 아무도 끔찍한 취약점을 찾지 못한다는 점입니다. 지난 몇 년 동안 curl에서 발견된 모든 취약점은 모두 심각도 LOW 또는 MEDIUM으로 판정되었습니다. 앞으로도 HIGH가 전혀 없을 것이라고 말하는 것은 아니지만, 적어도 그것들은 드뭅니다. 가장 최근의 심각도 high curl CVE는 2023년 10월에 공개되었습니다.
지금 우리는 약간의 압박을 받고 있습니다. 가끔 응답이 조금 느리더라도 너그러이 이해해 주세요.
이미지 제공: Brian Merrill, 출처 Pixabay