프로그래밍 언어 C++의 창시자 비아네 스트로브스트룹이 C++의 안전성을 강화하기 위한 방안을 제시했다.
29일(현지시간) 더뉴스스택 등 외신에 따르면 비아네 스트로브스트룹은 미국 콜로라도에서 열린 연례 개발자 컨퍼런스 ‘C++ 컨퍼런스(이하 CPP콘)에서 기조강연을 했다.
‘안전한 C++ 제공(Delivering Safe C++)’이라는 주제로 진행한 이번 발표를 통해 그는 메모리 버그 등의 보안취약점을 막기 위해 다른 언어로 C++를 대체하는 것은 효과적인 해결책이 아니라고 지적했다. 대신 C++ 내에서 보안 취약점을 해결하기 위해 새로운 프로그래밍 방식을 제안했다.
비아네 스트로브스트룹은 안전은 단순한 유형 안전성이 아니라며 리소스 누수와 오버플로를 비롯해 메모리 손상 및 타이밍 오류 등 개발 중 발생할 수 있는 오류를 언급했다.
이어서 그는 “최근 안전성이라고 말하는 내용은 메모리 안전성에 한정되고 있지만, 그것 만으로 모든 안전을 보장하기엔 충분하지 않다”며 “또한 C++로 개발된 언어를 다른 언어로 전환하는 과정에 발생할 수 있는 막대한 비용이나 위험성 등은 언급되고 있지 않다”고 설명했다.
비아네 스트로브스트룹은 이러한 문제점을 해결하기 위해 현재 C++의 기능을 제한하지 않고 ISO 표준을 준수하며 보안 취약점을 개선하기 위한 방법을 구상하고 있다고 밝혔다.
그는 정적 분석을 사용해 잠재적인 오류를 제거하는 전략을 제시했다. 정적 분석은 프로그램을 실행하지 않고 코드 분석을 수행하는 방식이다. 개발한 앱, 서비스의 보안 취약점, 잠재적인 결함 등을 개발단계에서 찾아내어 여러 위험을 사전에 방지할 수 있다.
점점 규모가 커지고, 다수의 개발자가 동시에 참여하는 방식으로 실제 서비스가 시작된 후 모든 취약점을 파악하고 대응하기 어려운 상황에 최근 개발 환경에 적합하다는 설명이다.
이에 따라 그는 끝없이 규모가 커지는 개발환경에 대응하기 위해 C++ 컴파일러에 정교한 정적 분석기를 추가한다고 밝혔다.
더불어 작성하는 내용을 효율적으로 분석할 수 있도록 지원하기 위한 라이브러리와 보안취약점을 없애기 위한 보안 규칙을 제공한다. 그는 이를 통해 C++에서 초기화되지 않은 변수, 범위 오류, 널 포인터 역참조, 리소스 누수, 매달린 참조 등 많은 일반적인 오류를 제거할 수 있다고 강조했다.
관련기사
- 파이썬 코드를 C로 컴파일하는 '사이썬 3.0' 공개2023.07.19
- C++ 창시자, NSA의 메모리 안전언어 사용 권고 반발2023.01.29
- 티오베, 2022년 인기 급상승 언어로 ‘C++’ 선정2023.01.08
- 인텔, C++·파이썬으로 양자컴퓨터 SW 개발 지원2023.03.01
비아네 스트로브스트룹은 “보안 규칙은 단순히 제안하는 것에 그치지 않고 실제 개발환경에 도입될 수 있도록 일부 강제가 필요하다”며 “이를 위해 개발자들이 실제로 보안 규칙을 실제로 수행하는지 확인할 수 있는 방법도 제공하려 한다”고 밝혔다.
이어서 “이전 시스템의 문제를 전혀 고려하지 않고 새로운 시스템을 그대로 사용한다는 아이디어는 인기있는 환상에 불과하다”며 “실제 안전성을 높이기 위해선 안전의 의미가 무엇인지 정의하고 이를 보장하기 위한 방법을 찾아야 한다”고 강조했다.