C 코드는 거의 어디에나 정의되지 않은 동작이 숨어 있다는 얘기
30년 가까이 C와 C++를 써온 개발자가 “비자명한 C/C++ 코드에는 사실상 정의되지 않은 동작이 있다”고 주장한 글이다. 흔한 메모리 버그뿐 아니라 정렬 안 된 포인터, char를 넘긴 isxdigit, float에서 int 캐스팅, NULL 포인터, printf 포맷 불일치 같은 일상적인 코드까지 위험하다는 게 핵심이다. 결론은 C/C++를 버리자는 게 아니라, 2026년에는 대규모 언어 모델(LLM)을 동원해 정의되지 않은 동작을 찾고 사람이 검토하는 프로세스가 필요하다는 쪽에 가깝다.
- 1
정의되지 않은 동작은 최적화 옵션 문제가 아니라, 컴파일러와 하드웨어가 애초에 그런 상황을 고려하지 않아도 되는 계약 문제다.
- 2
C23 표준에는 undefined라는 단어가 283번 나오고, 명시되지 않아 사실상 정의되지 않은 영역까지 합치면 위험면은 더 넓다.
- 3
정렬 안 된 포인터, signed char와 isxdigit, float-to-int 캐스팅, NULL 표현, printf 가변 인자 타입 불일치 같은 코드가 모두 실제 버그 표면이 될 수 있다.
- 4
저자는 OpenBSD의 find 코드에서도 LLM으로 정의되지 않은 동작과 out-of-bounds write를 찾아 패치를 보냈다고 말한다.
- 5
C/C++ 코드베이스를 당장 버릴 수는 없지만, LLM을 보조 리뷰어로 써서 UB를 대규모로 줄이는 방식이 필요하다는 주장이다.
이 글이 세게 들리는 이유는 “C 개발자가 조심하면 된다”는 오래된 믿음을 정면으로 건드리기 때문임. 특히 레거시 C/C++를 운영하는 팀이라면 보안 점검을 정적 분석 도구에만 맡길 게 아니라, LLM 기반 리뷰를 사람 검토와 묶어 반복 가능한 프로세스로 만드는 쪽을 진지하게 볼 만함.
관련 기사
엘에이 경찰, 사생활 침해 논란 끝에 플록 번호판 감시 계약 종료
엘에이 경찰이 번호판 인식 카메라 업체 플록 세이프티와의 3년 계약을 연장하지 않기로 했어. 시민권, 프라이버시, 데이터 보관과 공유 문제를 해결하지 못했다는 게 핵심 이유야. 플록은 미국 전역에 최소 8만 대 카메라망을 깔아 경찰과 연방기관이 차량을 추적할 수 있게 해왔고, 오탐·보안 사고·이민 단속 악용 의혹까지 겹치며 압박이 커졌어.
크로미움 148부터 Math.tanh 한 번으로 운영체제 지문이 새는 문제
크로미움 148 이후 V8이 Math.tanh 계산을 자체 구현 대신 운영체제의 수학 라이브러리에 맡기면서, 같은 입력값도 리눅스·맥·윈도우에서 마지막 비트가 달라지는 지문 신호가 생겼다. 이 차이는 User-Agent로 맥이라고 주장하면서 리눅스 수학 결과를 내는 식의 위장을 바로 들키게 만든다. CSS 삼각함수와 웹 오디오까지 보면 브라우저 수학 경로가 꽤 복잡하게 갈라지고, 제대로 흉내 내려면 실제 운영체제 라이브러리의 비트 단위 동작까지 맞춰야 한다.
출입통제도 클라우드 구독제로 간다…제로트러스트·AI 분석이 승부처
기업 출입보안이 사업장별 서버를 두는 방식에서 클라우드 기반 서비스형 출입통제(ACaaS)로 옮겨가고 있다. 시장은 2026년 17억8000만 달러에서 2030년 31억9000만 달러로 커질 전망이고, 제로트러스트·모바일 인증·AI 출입 분석·스마트빌딩 통합이 핵심 경쟁 포인트로 꼽힌다.
AWS·구글 클라우드, 양자컴퓨터 대비해 암호 체계 갈아엎는 중
AWS와 구글 클라우드가 양자컴퓨터 시대를 대비해 기존 공개키 암호와 양자내성암호를 함께 쓰는 하이브리드 전환을 시작했다. 핵심 배경은 지금 훔친 암호문을 나중에 양자컴퓨터로 푸는 ‘선수집·후해독’ 공격이고, 국내도 통신·금융·국방 등 5개 분야에 45억원을 투입해 실증에 들어간다.
보안 점검 맡긴 AI 에이전트가 악성코드를 직접 실행할 수 있다는 경고
AI 보안 에이전트가 저장소를 검사하다가 README 같은 문서에 숨은 프롬프트 인젝션에 속아 악성 바이너리를 실행할 수 있다는 연구가 나왔다. 클로드 코드와 코덱스의 자동 모드처럼 승인 없이 명령을 수행하는 구성에서 문제가 재현됐고, 여러 모델과 공급업체를 가로질러 같은 패턴이 통했다는 점이 핵심이다.
댓글
댓글
댓글을 불러오는 중...