기본 콘텐츠로 건너뛰기

라벨이 위협모델링인 게시물 표시

보안 개발 생애 주기(Secure SDLC): 안전한 소프트웨어 구축의 핵심

보안 개발 생애 주기(Secure Software Development Lifecycle, Secure SDLC 또는 SSDLC)는 소프트웨어 개발의 모든 단계에 보안 활동을 통합하여, 잠재적인 보안 취약점을 조기에 발견하고 제거함으로써 안전하고 신뢰할 수 있는 소프트웨어를 개발하는 체계적인 프로세스입니다. 과거에는 개발이 완료된 후 마지막 단계에서 보안 테스트를 집중적으로 수행했지만, 이런 방식은 문제 발생 시 수정 비용이 크고 출시 지연의 원인이 되었습니다. Secure SDLC는 이러한 문제점을 해결하기 위해 "처음부터 보안을 내재화(Security by Design)"하는 '시프트 레프트(Shift Left)' 접근법을 채택합니다. 소프트웨어 개발 초기 단계에서 보안을 고려할수록 더 적은 비용과 노력으로 효과적으로 위협에 대응할 수 있습니다. 예를 들어, 설계 단계에서 발견된 보안 결함은 구현 단계에서 발견된 결함보다 수정 비용이 훨씬 저렴합니다. Secure SDLC의 핵심 목표 조기 취약점 식별 및 제거: 개발 초기 단계에서 보안 위협을 예측하고 취약점을 찾아내어 수정 비용을 절감합니다. 보안 내재화: 보안을 개발 프로세스의 일부로 만들어 개발자가 자연스럽게 안전한 코드를 작성하도록 유도합니다. 컴플라이언스 준수: GDPR, HIPAA 등과 같은 다양한 규제 및 법규 요구사항을 충족하는 데 도움을 줍니다. 전체적인 보안 수준 향상: 소프트웨어뿐만 아니라 개발 환경, 배포 및 운영 단계까지 전 과정의 보안을 강화합니다. Secure SDLC의 단계별 주요 보안 활동 Secure SDLC는 전통적인 소프트웨어 개발 생애 주기(요구사항 분석, 설계, 구현, 테스트, 배포 및 유지보수)의 각 단계에 다음과 같은 보안 활동을 추가합니다. 1. 요구사항 분석 (Requirement Analysis) 이 단계에서는 기능적 요구사항과 더불어 보안 요구사항을 명확하게 정의하는 것이 중요합니다. 보안 요구사항 정의: 데이터 암...

TARA-3. 사이버 보안 위협 모델링: STRIDE와 HEAVENS

위협 모델링은 시스템에 가해질 수 있는 잠재적 보안 위협을 체계적으로 식별하고 분석하는 활동입니다. 대표적인 방법론인 STRIDE와 자동차 분야에 특화된 HEAVENS에 대해 간략히 설명해 드립니다. STRIDE: 범용 소프트웨어 위협 모델링 STRIDE는 마이크로소프트(Microsoft)에서 개발한 위협 모델링 방법론으로, 시스템이 직면할 수 있는 위협을 6가지 카테고리로 분류하여 개발 초기 단계부터 보안 취약점을 식별하고 예방하는 데 사용됩니다. 각 글자는 다음과 같은 위협 유형을 의미합니다. S poofing (스푸핑, 신원 위장) 내용: 공격자가 다른 사용자나 시스템인 것처럼 신원을 위장하는 행위입니다. 예시: 가짜 로그인 페이지를 만들어 사용자의 계정 정보를 탈취하는 것. 보안 목표: 인증 (Authentication) T ampering (템퍼링, 변조) 내용: 데이터나 코드를 허가 없이 수정하는 행위입니다. 예시: 통신 중인 데이터를 가로채 내용을 바꾸거나, 데이터베이스의 값을 임의로 변경하는 것. 보안 목표: 무결성 (Integrity) R epudiation (부인) 내용: 사용자가 자신이 수행한 행위를 부인하는 것입니다. 예시: 상품을 주문하고 결제까지 마친 후, 주문한 사실이 없다고 주장하는 것. 보안 목표: 부인 방지 (Non-Repudiation) I nformation Disclosure (정보 노출) 내용: 허가되지 않은 사용자에게 민감한 정보가 노출되는 것입니다. 예시: 에러 메시지를 통해 시스템 내부 정보가 노출되거나, 개인정보가 암호화되지 않은 채 저장되어 유출되는 것. 보안 목표: 기밀성 (Confidentiality) D enial of Service (서비스 거부, DoS) 내용: 악의적인 트래픽 등을 통해 시스템의 리소스를 고갈시켜 정상적인 사용자가 서비스를 이용할 수 없게 만드는 공격입니다. 예시: 서버에 대량의 요청을 보내 웹사이트를 마비시키는 것. 보안 목표: 가용성 (Availability) E ...