2018.03.22

ITWorld 용어풀이|시큐어 코딩(secure coding)

이대영 기자 | ITWorld
시큐어 코딩(secure coding)은 개발하는 소프트웨어의 보안상 취약점이 발생할 수 있는 부분을 보완하면서 프로그래밍하는 것을 의미합니다.

"버그없는 프로그램 없다"는 IT 업계의 오래된 격언은 지금도 통용됩니다. 이와 마찬가지로 "결함없는 소프트웨어를 개발하는 것은 불가능하다"는 말 또한 당연시되고 있습니다.

테너블 네트워크 시큐리티 수석 아키텍트 딕 뷔시에르는 "최근 소프트웨어 개발이 진화하고 있음에도 불구하고, 버그없는 소프트웨어라는 것은 몽상"이라며, "버그없는(bug-free) 소프트웨어는 실질적으로 불가능하며 완전히 완벽한 기술은 없다"고 말했습니다.

소프트웨어 결함이 발생하는 원인은 아주 다양합니다. 소프트웨어 기능이 많을수록 구조는 복잡해지며 이를 구현하기 위해 개발 기간과 비용은 많이 들게 됩니다. 특히 결함이 없는 완전한 소프트웨어를 개발하기 위해 무한정으로 시간과 비용을 투자할 수 없습니다. 이런 현실적인 한계와 함께 개발하는 이들이 모두 숙련된 역량을 보유한 것도 아닙니다.

따라서 한정된 시간과 비용을 기반으로 사용자 요구를 최대한 반영하고 최소한의 결함을 가진 소프트웨어를 개발하는 것이 일반적입니다. 이렇게 소프트웨어 결함은 개발 과정에서의 개발자 실수, 논리적 오류에 의해 발생합니다. 이와 함께 결함을 에방하기 위해 각 개발 단계마다 체계적인 테스트 과정을 거쳐야 함에도 불구하고 이를 가볍게 여기는 개발 문화 또한 큰 문제라 볼 수 있습니다.

최근 다양한 산업군에서 소프트웨어의 비중이 크게 증가하고 있습니다. 예를 들어, 자동차의 경우, 커넥티드 카, 인포테인먼트, 자율주행 등 소프트웨어 비중이 크게 증가하고 있습니다. 메르세데스벤츠 자동차그룹 회장인 디터 체제는 2014년 CES 기조연설에서 "자동차는 기름이 아니라 소프트웨어로 달린다"고 말한 바 있습니다.

최근 4차 산업혁명이나 사물인터넷은 거의 모든 산업군의 기계와 장치에 소프트웨어가 탑재된다는 것을 의미합니다. 따라서 소프트웨어의 높은 완성도와 안정성은 각 기업의 경쟁력뿐만 아니라 인간의 생명과 삶에도 직결되는 중요한 문제가 됐습니다.

이와 함께 사이버공격의 대부분이 소프트웨어 자체 보안 취약점을 악용하고 있는데, 특히 알려지지 않은 보안 취약점을 악용해 공격하는 경우, 이를 막을 방법이 없다는 것이 문제입니다(제로데이 공격). 또한 수많은 보안 취약점을 갖고 지능화된 기법을 사용해 지속적으로 특정 대상을 노리는 APT 공격으로 인한 피해는 나날이 커지고 있습니다.

시큐어 코딩에는 안전한 소프트웨어를 개발하기 위해 지켜야할 코딩 규칙과 소스코드 취약 목록이 포함됩니다. 미국에서는 2002년 연방정보보안관리법(FISMA)을 제정해 시큐어 코딩을 의무화했고, 우리나라에서도 2012년 12월부터 소프트웨어 개발보안 제도를 시행해 시큐어 코딩을 의무화했습니다.

우리나라에서는 시큐어 코딩을 좁은 의미의 소프트웨어 개발보안으로 설명하고 있습니다. 소프트웨어 개발보안이란 소프트웨어 개발과정에서 발생할 수 있는 보안취약점을 최소화하는 한편, 사이버보안 위협에 대응할 수 있는 안전한 소프트웨어를 개발하기 위한 일련의 보안활동을 의미합니다.

한국인터넷진흥원(KISA)는 '모바일 앱 소스코드 검증 가이드라인'에서부터 '소프트웨어 개발 보안 가이드', '자바 시큐어코딩 가이드', 'C 시큐어코딩 가이드', '안드로이드-자바 시큐어코딩 가이드', '소프트웨어 보안약점 진단가이드', '소프트웨어 보안약점 진단가이드(별첨)', '공개 소프트웨어를 활용한 소프트웨어 개발보안 검증가이드', '홈페이지 취약점 진단제거 가이드' 등에 이르기까지 시큐어 코딩과 관련한 안내서를 제공하고 있습니다. editor@itworld.co.kr  


2018.03.22

ITWorld 용어풀이|시큐어 코딩(secure coding)

이대영 기자 | ITWorld
시큐어 코딩(secure coding)은 개발하는 소프트웨어의 보안상 취약점이 발생할 수 있는 부분을 보완하면서 프로그래밍하는 것을 의미합니다.

"버그없는 프로그램 없다"는 IT 업계의 오래된 격언은 지금도 통용됩니다. 이와 마찬가지로 "결함없는 소프트웨어를 개발하는 것은 불가능하다"는 말 또한 당연시되고 있습니다.

테너블 네트워크 시큐리티 수석 아키텍트 딕 뷔시에르는 "최근 소프트웨어 개발이 진화하고 있음에도 불구하고, 버그없는 소프트웨어라는 것은 몽상"이라며, "버그없는(bug-free) 소프트웨어는 실질적으로 불가능하며 완전히 완벽한 기술은 없다"고 말했습니다.

소프트웨어 결함이 발생하는 원인은 아주 다양합니다. 소프트웨어 기능이 많을수록 구조는 복잡해지며 이를 구현하기 위해 개발 기간과 비용은 많이 들게 됩니다. 특히 결함이 없는 완전한 소프트웨어를 개발하기 위해 무한정으로 시간과 비용을 투자할 수 없습니다. 이런 현실적인 한계와 함께 개발하는 이들이 모두 숙련된 역량을 보유한 것도 아닙니다.

따라서 한정된 시간과 비용을 기반으로 사용자 요구를 최대한 반영하고 최소한의 결함을 가진 소프트웨어를 개발하는 것이 일반적입니다. 이렇게 소프트웨어 결함은 개발 과정에서의 개발자 실수, 논리적 오류에 의해 발생합니다. 이와 함께 결함을 에방하기 위해 각 개발 단계마다 체계적인 테스트 과정을 거쳐야 함에도 불구하고 이를 가볍게 여기는 개발 문화 또한 큰 문제라 볼 수 있습니다.

최근 다양한 산업군에서 소프트웨어의 비중이 크게 증가하고 있습니다. 예를 들어, 자동차의 경우, 커넥티드 카, 인포테인먼트, 자율주행 등 소프트웨어 비중이 크게 증가하고 있습니다. 메르세데스벤츠 자동차그룹 회장인 디터 체제는 2014년 CES 기조연설에서 "자동차는 기름이 아니라 소프트웨어로 달린다"고 말한 바 있습니다.

최근 4차 산업혁명이나 사물인터넷은 거의 모든 산업군의 기계와 장치에 소프트웨어가 탑재된다는 것을 의미합니다. 따라서 소프트웨어의 높은 완성도와 안정성은 각 기업의 경쟁력뿐만 아니라 인간의 생명과 삶에도 직결되는 중요한 문제가 됐습니다.

이와 함께 사이버공격의 대부분이 소프트웨어 자체 보안 취약점을 악용하고 있는데, 특히 알려지지 않은 보안 취약점을 악용해 공격하는 경우, 이를 막을 방법이 없다는 것이 문제입니다(제로데이 공격). 또한 수많은 보안 취약점을 갖고 지능화된 기법을 사용해 지속적으로 특정 대상을 노리는 APT 공격으로 인한 피해는 나날이 커지고 있습니다.

시큐어 코딩에는 안전한 소프트웨어를 개발하기 위해 지켜야할 코딩 규칙과 소스코드 취약 목록이 포함됩니다. 미국에서는 2002년 연방정보보안관리법(FISMA)을 제정해 시큐어 코딩을 의무화했고, 우리나라에서도 2012년 12월부터 소프트웨어 개발보안 제도를 시행해 시큐어 코딩을 의무화했습니다.

우리나라에서는 시큐어 코딩을 좁은 의미의 소프트웨어 개발보안으로 설명하고 있습니다. 소프트웨어 개발보안이란 소프트웨어 개발과정에서 발생할 수 있는 보안취약점을 최소화하는 한편, 사이버보안 위협에 대응할 수 있는 안전한 소프트웨어를 개발하기 위한 일련의 보안활동을 의미합니다.

한국인터넷진흥원(KISA)는 '모바일 앱 소스코드 검증 가이드라인'에서부터 '소프트웨어 개발 보안 가이드', '자바 시큐어코딩 가이드', 'C 시큐어코딩 가이드', '안드로이드-자바 시큐어코딩 가이드', '소프트웨어 보안약점 진단가이드', '소프트웨어 보안약점 진단가이드(별첨)', '공개 소프트웨어를 활용한 소프트웨어 개발보안 검증가이드', '홈페이지 취약점 진단제거 가이드' 등에 이르기까지 시큐어 코딩과 관련한 안내서를 제공하고 있습니다. editor@itworld.co.kr  


X