스패로우에서는 기업 및 기관에서 소프트웨어를 안전하게 개발하고 운영할 수 있도록 정적 분석, 동적 분석, 소프트웨어 구성요소 분석 등 애플리케이션 보안 테스팅 기술을 제공하고 있습니다. 그 중에서도 정적 분석은 소스 코드를 분석해 보안 약점을 검출하는 기술로, 다양한 산업군에서 해당 기술로 소스 코드를 분석해 소프트웨어 안전성을 확보하고 있는데요. 오늘은 스패로우가 보유한 특허 “소스코드 분석 장치, 이를 위한 컴퓨터 프로그램, 그 기록매체”에 기반해 스패로우가 제공하는 소스 코드 분석 기술에 대해 자세히 설명해 드리고자 합니다.
1. 소스코드, 왜 분석해야 하나요?
소프트웨어의 개발 단계에서는 코드에 결함이 있는 경우가 종종 발생합니다. 결함이 있는 코드를 그대로 사용하면 프로그램이 제대로 동작하지 않거나 예기치 못한 오류가 발생할 수 있습니다. 그렇기에 프로그래밍 작업 과정에서 코드의 결함을 찾아내고 수정하는 것은 매우 중요한 작업입니다.
하지만 코드의 결함을 찾아내는 것도 쉽지 않지만, 발견된 결함을 어떻게 수정해야 할지 알아내기란 더욱 어려운 일입니다. 결함의 원인과 수정 방법을 정확히 파악하기 위해서는 프로그래밍 언어와 해당 코드에 대한 깊이 있는 이해가 필요하기 때문입니다. 특히 프로젝트의 규모가 커지고 코드가 복잡해질수록 결함 수정은 더욱 까다로운 작업이 됩니다. 이러한 상황에서 개발자 개인의 역량과 경험에 의존할 경우 결함 수정의 효율성과 정확성이 떨어질 수밖에 없습니다.
이러한 문제를 해결하고자 개발된 것이 바로 소스 코드 분석 기술입니다. 이 기술은 소스코드를 자동으로 분석하여 결함을 찾아내고, 그 결함을 수정하기 위한 구체적인 방법까지 제시해줍니다. 결함 분석과 수정 방안 제시를 자동화함으로써 개발자의 수고를 크게 덜어주고, 결함 수정의 효율성과 정확성을 높일 수 있습니다.
2. 코드 결함과 수정 방안을 어떻게 제공하나요?

먼저 결함 검출 단계에서는 소스코드를 분석해 잠재적인 결함 정보를 검출해냅니다. 이때 단순히 결함이 있다는 사실만 알려주는 것이 아니라, 어떤 파일의 어느 라인에서 어떤 종류의 결함이 발생했는지에 대한 구체적인 정보를 제공합니다. 위 사진은 자원이 적절하게 해제되지 않은 소스 코드 예시로, 이슈와 원인을 하이라이트해 보여줌으로써 결함으로 이어지는 코드 라인을 한눈에 확인 가능합니다.
그리고 수정 예시 생성 단계에서는 검출된 결함 정보를 바탕으로 해당 결함을 수정하기 위한 예시 코드와 유의사항 정보를 생성합니다. 예를 들어 특정 라인의 코드에서 결함이 발견되었다면, 그 코드 라인을 수정하거나 다른 라인을 추가/삭제하는 등의 수정 예시 코드를 제시합니다. 위 이미지 우측 상단에 보이는 ‘안전한 예시’처럼 말이죠. 이때 수정 예시 코드는 프로그래밍 언어의 문법과 특성을 잘 반영하도록 미리 설계된 템플릿에 따라 생성됩니다. 분석 대상 코드의 구조와 결함 내용을 종합적으로 고려하여, 가장 적절한 수정 방안을 제시합니다.
또한 수정 작업 시 주의해야 할 사항이나 부수적으로 발생할 수 있는 문제점 등의 유의사항 정보도 함께 제공합니다. 복수의 대안이 있다면 그 모든 대안을 제시해주며, 각 대안의 장단점도 설명해줍니다. 이를 통해 개발자가 상황에 맞는 최적의 수정 방법을 선택할 수 있도록 돕습니다.
3. 개발자의 결함 수정 부담을 덜어드려요!
소스 코드 분석 기술을 활용해 제공되는 코드 결함 정보, 수정 예시 코드, 유의사항 정보는 통합되어 개발자에게 보여집니다. 개발자는 이 정보들을 참고해 손쉽게 코드의 결함을 수정할 수 있습니다. 개인의 역량이나 경험에 크게 의존하지 않고 누구나 정확하고 효과적으로 결함을 수정함으로써 시큐어 코딩이 가능해 지는 것이죠. 특히 대규모 프로젝트에서 코드 결함을 발견하고 수정하는 과정은 많은 시간과 노력이 필요한데, 이러한 상황에서 소스 코드 분석 기술을 활용하면 그 효과가 더욱 클 것입니다.
스패로우의 소스 코드 분석 기술은 복잡한 코드에서 발생한 결함이라도 정확하고 구체적인 수정 방법을 제시해주기 때문에, 개발자의 숙련도에 따른 결함 수정의 질적 차이도 크게 줄어들 것입니다. 초보 개발자라도 숙련된 개발자 수준으로 정확하고 일관된 결함 수정이 가능해 개발자의 수고를 덜 수 있습니다. 뿐만 아니라, 결함 수정은 결과적으로 소프트웨어의 안전성과 품질 향상으로 이어져 유지보수 비용 절감도 가능해집니다.
Sparrow SAST는 다양한 언어와 프레임워크로 개발된 소스 코드 상의 보안 약점을 진단하고 조치 방안을 제공하는 도구입니다. 소프트웨어 보안약점 진단 가이드, 전자금융감독규정, ISMS-P, 방위사업청 코딩 규칙 등으로 소스 코드를 점검하고 소프트웨어의 안전을 확보하세요!
