cURL, AI 생성 취약점 보고서에 압도당하다

2025-07-14
cURL, AI 생성 취약점 보고서에 압도당하다

cURL 보안팀은 저품질의 취약점 보고서 홍수에 시달리고 있습니다. 대부분 AI가 생성한 것입니다. 이러한 보고서는 상당한 시간과 자원을 낭비합니다(보고서당 3~4명, 30분~3시간). 따라서 실제 취약점 발견 효율이 크게 떨어지고 있습니다. 2025년 현재 제출된 보고서의 약 20%가 AI가 생성한 쓰레기이며, 유효한 보고서의 비율이 크게 감소했습니다. 팀은 금전적 보상 철회 또는 저품질 보고서 감소를 위한 다른 대책을 고려하고 있습니다. 팀의 정신 건강과 프로젝트의 안전을 유지하기 위해서입니다.

더 보기

GitHub Diff 취약점: 유니코드 문자 치환 악용

2025-05-17
GitHub Diff 취약점: 유니코드 문자 치환 악용

curl 프로젝트 기여자인 James Fuller가 GitHub diff 뷰어의 취약점을 발견했습니다. 악의적인 공격자는 시각적으로 동일한 유니코드 문자로 ASCII 문자를 바꿔서 코드를 눈치채지 못하게 변경할 수 있습니다. 이로 인해 URL 조작 등 심각한 결과로 이어질 수 있습니다. GitHub diff 뷰어는 경고를 표시하지 않았지만 Gitea와 같은 다른 플랫폼에서는 이러한 변경 사항을 지적했습니다. curl 프로젝트는 악의적인 유니코드 문자를 감지하기 위한 CI 검사를 구현하고 UTF-8 시퀀스를 정리하여 대응했습니다. 이는 잠재적인 공격을 방지하기 위한 적극적인 코드 보안 조치의 필요성을 강조합니다.

더 보기

Curl의 .onion 차단: 보안과 사용 편의성의 줄다리기

2025-05-16
Curl의 .onion 차단: 보안과 사용 편의성의 줄다리기

Tor 사용자의 .onion 도메인 DNS 유출을 방지하기 위해, Curl은 2년 전 RFC 7686을 구현하여 .onion 도메인 해결을 차단했습니다. 하지만 이로 인해 Tor의 새로운 도구 oniux가 Curl을 사용하여 .onion 사이트에 접근할 수 없게 되었습니다. 이는 보안과 사용 편의성 사이의 상충되는 점을 보여줍니다. RFC를 엄격히 준수하면 사용자 경험에 영향을 미치고, 제한을 완화하면 보안 위험이 증가합니다. Curl 팀은 현재 보안과 사용자 요구 사항의 균형을 맞추는 해결책을 모색하고 있습니다.

더 보기
기술 DNS 유출

curl의 점(.) 재앙: 두 개의 CVE와 끝없는 추격

2025-05-15
curl의 점(.) 재앙: 두 개의 CVE와 끝없는 추격

curl 팀은 URL 내 호스트 이름의 끝에 오는 점(.) 때문에 지속적인 문제를 겪어왔습니다. 처음에는 무시했지만, 나중에 끝에 점이 필요한 웹사이트를 지원하기 위해 지원을 복구했습니다. 그러나 이 변경으로 쿠키 처리 및 HSTS 메커니즘에 각각 영향을 미치는 두 개의 보안 취약점(CVE-2022-27779 및 CVE-2022-30115)이 의도치 않게 도입되었습니다. 이러한 취약점은 끝에 오는 점을 부적절하게 처리하여 잘못된 도메인 일치를 야기한 것이 원인입니다. curl 7.83.1은 이러한 문제를 해결하지만, 저자는 이것이 장기간의 싸움의 시작일 뿐이라고 의심하고 있습니다.

더 보기
개발

안전한 Curl: 수십억 개의 설치를 위한 안정적인 C 코드 구축

2025-04-07
안전한 Curl: 수십억 개의 설치를 위한 안정적인 C 코드 구축

Curl 팀은 C 언어로 안전하고 안정적인 네트워크 전송 도구를 구축하기 위한 방식을 공유합니다. 정적 분석 및 퍼징을 포함한 광범위한 테스트의 중요성을 강조합니다. 보안 취약점의 약 40%는 C 언어의 메모리 안전성 문제에서 비롯되지만, 엄격한 코딩 표준, 스타일 적용, 위험한 함수 회피를 통해 이 수치를 낮게 유지합니다. Curl의 코딩 스타일은 줄 길이 제한, 짧은 변수 이름, 경고 없는 컴파일을 통해 가독성과 유지 관리에 중점을 둡니다. 강력한 오류 처리, API 안정성, 신중한 메모리 관리는 소프트웨어의 안정성과 보안에 필수적입니다.

더 보기

curl의 실험적 HTTPS RR 지원: 차세대 DNS 레코드

2025-03-31
curl의 실험적 HTTPS RR 지원: 차세대 DNS 레코드

curl은 이제 새로운 DNS 레코드 유형인 HTTPS RR을 실험적으로 지원합니다. 이는 SRV 및 URI보다 더 현대적인 방법으로 ECH 구성, ALPN 목록, 대상 호스트 이름, 포트 및 IP 주소와 같은 서비스 메타데이터를 전달합니다. HTTPS RR은 HTTPS 연결의 보안(SNI 필드의 ECH 암호화를 통해) 및 효율성(HTTP/3 지원 정보의 사전 가져오기를 통해)을 향상시키고 서비스 검색을 간소화합니다. curl은 DoH, getaddrinfo() 또는 c-ares를 통해 HTTPS RR 확인을 수행하지만 현재는 런타임 비활성화를 지원하지 않으며 HTTPS RR 지원은 아직 불완전합니다.

더 보기
개발

curl.se 트래픽 분석: 하루 2TB, 도대체 어디서 오는 것일까?

2025-02-22
curl.se 트래픽 분석: 하루 2TB, 도대체 어디서 오는 것일까?

curl.se 웹사이트는 월 62.95TB의 트래픽을 처리하며, 평균적으로 하루 2TB 이상, 최대 3.41TB에 달합니다. 상세 로그가 없지만, 데이터에 따르면 124억 3천만 건의 요청 중 curl 패키지 다운로드는 112만 건에 불과했습니다(총 트래픽의 10% 미만). 트래픽의 대부분(99.77%)은 Fastly CDN 캐시에서 처리됩니다. 그러나 HTTP/1.1 및 TLS 1.2의 광범위한 사용은 브라우저 이외의 트래픽, 즉 봇이나 기타 도구에서 발생하는 트래픽이 상당량 존재함을 시사합니다. 분석 결과, 100KB~1MB 크기의 파일(아마도 CA 인증서) 2억 731만 건의 다운로드가 나머지 트래픽의 상당 부분을 설명할 수 있습니다. 트래픽은 이전에는 중국에 집중되었던 것과 달리 현재는 전 세계에 고르게 분산되어 있습니다.

더 보기

20년 넘게 지속된 안전하지 않은 연결과의 싸움: libcurl 회고

2025-02-11
20년 넘게 지속된 안전하지 않은 연결과의 싸움: libcurl 회고

1998년 curl이 SSL을 지원하기 시작한 이후로, 기본 인증서 검증은 네트워크 보안의 초석이었습니다. 그러나 개발자들은 여전히 이 중요한 확인을 비활성화하는 경우가 많아 광범위한 취약성으로 이어집니다. 이 글에서는 libcurl의 진화를 되짚어보고, 검증을 비활성화하는 위험을 살펴보고, API 개선, 문서 개선, 적극적인 버그 보고와 같은 해결책을 제안합니다. 안전한 연결을 위한 싸움은 장기간에 걸친 싸움입니다.

더 보기

OpenSSL, QUIC API 제공 거부: HTTP/3 채택의 걸림돌?

2025-01-21
OpenSSL, QUIC API 제공 거부: HTTP/3 채택의 걸림돌?

가장 인기 있는 TLS 라이브러리인 OpenSSL이 향후 릴리스에서 QUIC API를 제공하지 않겠다고 발표하면서 HTTP/3의 널리 채택에 큰 장애물이 생겼습니다. 커뮤니티의 풀 리퀘스트(PR8797)에서 필요한 API가 제공되었음에도 불구하고, OpenSSL 운영 위원회는 처음부터 완전한 QUIC 스택을 구축하기로 결정했습니다. 이는 수년이 걸릴 것으로 예상됩니다. 이미 성숙한 QUIC 라이브러리가 존재함에도 불구하고, 이 결정은 커뮤니티의 불만을 야기했습니다. Microsoft와 Akamai는 QUIC API를 탑재한 OpenSSL 포크인 quictls를 만들어 대응했습니다. 하지만 이는 영구적인 해결책이 아니며, OpenSSL의 결정으로 인해 HTTP/3의 채택은 불확실한 상황에 놓였습니다.

더 보기
개발

curl 주요 업데이트: 부분 파일 읽기 지원

2024-12-30
curl 주요 업데이트: 부분 파일 읽기 지원

곧 출시될 curl 8.12.0 버전에서는 흥미로운 새로운 기능이 추가됩니다. 바로 부분 파일 읽기 기능입니다. 사용자는 새로운 변수 시스템을 활용하여 파일에서 특정 바이트 범위를 추출하고 curl 명령줄에서 사용할 수 있습니다. 이를 통해 curl이 파일을 처리하는 방식에 상당한 유연성이 추가되어 파일의 처음 부분을 사용자 이름으로 추출하거나 중간 부분을 POST 본문으로 사용하는 등의 작업이 가능해집니다. 이로써 curl의 기능이 크게 확장되어 사용자에게 더욱 강력한 명령줄 도구가 제공됩니다.

더 보기
개발 파일 처리

cURL과 libcurl, Hyper 지원 중단

2024-12-22
cURL과 libcurl, Hyper 지원 중단

4년간의 시험 끝에 cURL 프로젝트는 Rust로 작성된 Hyper 라이브러리를 HTTP 백엔드로 사용하는 것을 포기한다고 발표했습니다. Hyper는 메모리 안전성에 뛰어나고 Let's Encrypt의 지원을 받았지만, 사용자 수요와 개발자 참여 부족으로 인해 최종적으로 프로젝트가 종료되었습니다. cURL팀은 Hyper 코드 유지 관리 비용이 높다는 이유로 기존 코드의 최적화 및 유지 관리에 집중할 것이라고 밝혔습니다. 실험은 실패했지만 cURL은 귀중한 경험을 얻었고 HTTP 처리 능력을 향상시켰습니다.

더 보기
개발

HTTP/3 현황: 도입 과정에서의 과제와 기회

2024-12-16
HTTP/3 현황: 도입 과정에서의 과제와 기회

HTTP/3 사양은 완성되었지만, 공식 발표는 아직 남아 있습니다. 서버 측 지원은 예상 외로 높으며, 특히 상위 웹사이트에서 두드러집니다. Cloudflare와 같은 대기업은 HTTP/3을 활성화했고, 브라우저도 널리 지원하고 있습니다. 그러나 curl과 같은 클라이언트 소프트웨어의 HTTP/3 지원은 아직 미완성이며, 주로 QUIC을 지원하는 TLS 라이브러리 개발 지연 때문입니다. OpenSSL의 QUIC 지원은 연기되었고, BoringSSL 및 quictls와 같은 대안에도 각각의 제한이 있습니다. HTTP/3은 속도 향상을 약속하지만, 실제 효과는 네트워크 환경에 따라 달라집니다. HTTP/3의 광범위한 도입은 사양 공개와 성숙한 TLS 라이브러리에 달려 있습니다.

더 보기
개발