스물두줄

컴퓨터시스템응용기술사 · 개념서 · 소프트웨어 공학 및 아키텍처

소프트웨어 개발보안

설명 영상 소프트웨어 개발보안 · 2:06

왜 배우는가: 소프트웨어 개발보안은 침해사고의 상당수가 응용 소프트웨어 결함에서 시작되므로 개발 단계에서 보안약점을 예방하는 기술사 필수 주제다. 보안설계 기준과 구현 단계 보안약점 기준이 여러 회차에 반복 출제되어 용어와 유형을 정확히 정리해야 한다.

출제 이력: 제140회 4교시 2번, 제126회 3교시 1번, 제114회 1교시 9번, 제101회 2교시 3번

1. 한 줄 정의와 핵심 키워드

소프트웨어 개발보안은 소프트웨어 보안약점을 요구사항·설계·구현 단계에서 사전에 제거하도록 개발 활동 전 과정에 보안 기준을 반영하는 활동이다. 소프트웨어 개발보안은 개발 단계에서 보안약점을 제거하는 활동이다

  • 핵심 키워드: 소프트웨어 보안약점, 보안설계 기준, 보안약점 제거, 소스코드 진단, 소프트웨어 개발 보안 가이드, 보안약점 진단도구, 진단원

2. 개념 풀이

쉬운 말로 하면 사람이 실수로 만든 코드 결함이 해킹 경로가 되지 않도록 미리 막는 것이다. 운영 후에 패치로 막는 방식보다 설계 단계에서 막는 방식이 수정 비용이 적고 침해 위험도 낮다.

정식 정의는 다음과 같다. 소프트웨어 보안약점은 소프트웨어 결함이나 오류로 해킹 등 사이버공격을 유발할 가능성이 있는 잠재적 보안취약점을 말한다. 행정안전부 지침은 이 개념을 기준으로 사업 대상 소프트웨어에 보안약점이 없도록 개발하거나 변경하는 것을 소프트웨어 개발보안이라고 정한다.

핵심 용어를 풀이하면 다음과 같다. 보안약점 진단도구는 개발 과정에서 소스코드상의 보안약점을 찾는 도구다. 진단원은 보안약점이 남아 있는지 진단하고 조치방안을 세우며 조치결과를 확인하는 사람이다. 지침의 적용 범위는 신규개발이면 설계단계 산출물과 소스코드 전체, 유지관리이면 유지관리로 인해 변경된 설계단계 산출물과 소스코드 전체다. 상용 소프트웨어는 적용에서 제외한다.

3. 등장 배경과 필요성

응용 소프트웨어는 공공과 민간의 침해사고에서 가장 많이 악용되는 진입점이다. 입력값 검증 누락, 인증 우회, 오류정보 노출 같은 약점은 기능 시험으로는 잘 드러나지 않는다. 그래서 정부는 소프트웨어 보안약점 기준을 마련하고 발주 단계에서 개발보안 적용을 요구하게 되었다.

행정기관 및 공공기관 정보시스템 구축·운영 지침은 영 제71조제1항에 해당하는 사업에 소프트웨어 개발보안을 적용하도록 정한다. 사업자는 개발 착수 단계에서 소프트웨어 개발 보안 가이드 등 개발보안 교육을 실시해야 한다. 이 요구는 설계 단계와 구현 단계 양쪽에서 보안약점을 점검하는 근거가 된다.

최근에는 공격 자동화가 빨라지면서 기본 인증과 데이터 보호 설계의 중요성이 더 커졌다. 금융권 침해 대응 가이드도 추가 인증과 데이터 암호화 범위를 설계 단계에서 점검하라고 권고한다.

4. 구성요소·원리·절차

소프트웨어 개발보안은 보안약점 기준, 적용 범위, 진단 활동의 세 요소로 구성된다. 세 요소가 맞물려야 개발 산출물에 보안약점이 남아 있는지 확인할 수 있다.

이어지는 내용

로그인하면 하루 5페이지까지 무료로 전체를 읽을 수 있습니다.

앱에서 이 단원 읽기