본문 바로가기
정보처리/정보시스템구축관리

소프트웨어 개발 보안 구축 설계 7/7

by 피갓자 2025. 3. 23.

소프트웨어 개발 보안 구축 설계
소프트웨어 개발 보안 구축 설계

소프트웨어 개발 보안 설계

안전한 전송을 위한 데이터 암호화 전송

민감한 정보를 통신 채널을 통하여 전송 시에는 반드시 암복호화 과정을 거쳐야 하고, IPSec, SSL/TLS, S-HTTP 등 보안 채널을 활용하여 전송

PPTP

PPTP(Point-to-Point Tunneling Protocol) 개념

  • 네트워크 레벨에서 데이터를 안전하게 전송하기 위해 사용하는 터널링 프로토콜로, 주로 VPN(가상 사설망) 연결에 사용됨
  • TCP 포트 1723과 GRE(Generic Routing Encapsulation)를 사용하여 데이터 패킷을 캡슐화
  • 클라이언트와 서버 간의 인증 및 데이터 암호화를 지원하며, 낮은 비용과 간단한 설정으로 널리 사용

L2F

L2F(Layer 2 Forwarding) 개념

  • 시스코 시스템즈에서 개발한 터널링 프로토콜로, 데이터링크 계층(2계층)에서의 VPN 연결을 지원
  • 사용자 인증은 지원하지만 암호화 기능은 포함되지 않아 보안 강화를 위해 추가 프로토콜과 함께 사용됨
  • 주로 PPP(Point-to-Point Protocol)를 기반으로 작동하며, 원격 사용자와 본사 네트워크 간 연결을 제공

L2TP

L2TP(Layer 2 Tunneling Protocol) 개념

  • PPTP와 L2F의 기능을 결합한 프로토콜로, 데이터링크 계층(2계층)에서 동작하며 VPN 서비스를 제공
  • 데이터 암호화를 위해 IPSec과 함께 사용되는 경우가 많아 보안성을 강화
  • UDP 포트 1701을 사용하며, 데이터 캡슐화 및 인증을 지원
  • 다중 프로토콜 지원과 높은 호환성을 제공

IPSec

IPSec(Internet Protocol Security) 개념

IP 계층(3계층)에서 무결성과 인증을 보장하는 인증 헤더(AH)와 기밀성을 보장하는 암호화(ESP)를 이용한 IP 보안 프로토콜

 

IPSec의 기능

기밀성 : 대칭 암호화를 통해 전송 데이터에 대한 기밀성 제공

비 연결형 무결성 : 메시지가 위변조되지 않았음을 보장하는 특성 제공

인증 : 데이터 원천 인증 및 송신처 인증

재전송 공격 방지 : 송신 측에서 IP 패킷별로 순서번호를 통해 재전송 공격 방지

접근 제어 : Security Policy를 통해 시스템 접근 제어

 

IPSec 동작 모드

전송 모드(Transport Mode)

  • IP 패킷의 페이로드를 보호하는 모드
  • 즉 IP 상위 프로토콜 데이터를 보호하는 모드

터널 모드(Tunnel Mode)

  • IP 패킷 전체를 보호하는 모드
  • IP 패킷 전체를 IPSec으로 캡슐화하여 IP 헤더를 식별할 수 없기 때문에 네트워크상 패킷 전송이 불가능
  • 따라서 전송 구간 주소 정보를 담은 New IP 헤더 추가

IPSec 프로토콜

인증(AH, Authentication Header) 프로토콜

  • 메시지 인증 코드(MAC)를 이용하여 인증과 송신처 인증을 제공해 주는 프로토콜로 기밀성(암호화)은 제공하지 않는 프로토콜
  • 무결성, 인증 제공

암호화(ESP, Encapsulation Security Payload) 프로토콜

  • 메시지 인증 코드(MAC)와 암호화를 이용하여 인증과 송신처 인증과 기밀성을 제공하는 프로토콜
  • 기밀성, 무결성, 인증 제공

키 관리(IKE, Internet Key Exchange) 프로토콜

  • Key를 주고받는 알고리즘
  • 공개된 네트워크를 통하여 Key를 어떻게 할 것인가를 정의, IKE 교환을 위한 메시지를 전달하는 프로토콜

SSL/TLS

SSL(Secure Socket Layer)/TLS(Transport Layer Security) 개념

전송 계층(4계층)과 응용 계층(7계층) 사이에서 클라이언트와 서버 간의 웹 데이터 암호화(기밀성), 상호 인증 및 전송 시 데이터 무결성을 보장하는 보안 프로토콜

 

SSL/TLS의 특징

Netscape 사가 개발

  • SSL은 Netscape 사가 1990년대 초반 웹 보안을 위해서 처음 개발

다양한 암호 통신 방법 활용

  • 대칭 키 암호화, 공개키 암호화, 일방향 해시함수, 메시지 인증코드, 의사난수 생성기, 전자서명을 조합하여 암호화 통신 수행

특정 암호 기술에 의존하지 않음

  • 암호 도구 목록(Cipher Suite)을 변경하여 강력한 알고리즘을 사용
  • SSL/TLS 상에 HTTP를 올려서 ‘https://’로 변경되어 사용

SSL/TLS 보안 기능

기밀성

  • Triple DES, AES 같은 대칭 키 암호화 알고리즘 제공

상호인증

  • 연결 설정 과정에서 서버와 클라이언트 간에 신뢰할 수 있도록 인증 사용
  • RSA(비대칭 키), DSS(전자서명) 알고리즘, X.509 공개키 인증서 사용

메시지 무결성

  • 안전한 해시 알고리즘을 사용하여 메시지 인증코드 생성

S-HTTP(Secure Hypertext Transfer Protocol)

  • 웹상에서 네트워크 트래픽을 암호화하는 주요 방법 중 하나로 클라이언트와 서버 간에 전송되는 모든 메시지를 각각 암호화하여 전송하는 기술
  • 메시지 보호는 HTTP를 사용한 애플리케이션에 대해서만 가능

자산에 대한 보안 항목 식별

정보 자산의 주요 용어

자산(Asset)

  • 조직에서 보유한 가치 있는 모든 것
  • 예를 들어, 정보, 소프트웨어, 물리적 자산, 인력, 서비스 등

사용자(User)

  • 정보처리 기기 및 시스템을 활용해 자산을 사용하는 사람과 기관

소유자(Owner)

  • 자산의 소유 권한 및 관리에 대한 최종 책임자
  • 자산의 취득, 사용, 폐기 등 관리 권한 보유

관리자(Admin)

  • 자산의 소유자로부터 관리위임을 받은 자
  • 자산의 보관 및 운영 책임을 짐

정보 자산의 식별

  • 기업이 가진 중요 자산을 보호하기 위해 자신의 식별과 평가를 수행
  • 위험을 분석하기 위하여 적절한 분류 기준에 따라 중복, 누락을 최소화하여 자산 목록을 작성

정보 자산의 분류 기준

소프트웨어

  • 상용 또는 자체 개발된 소프트웨어 자산. 예를 들어, 애플리케이션, 개발 도구, 유틸리티

하드웨어

  • 대외 서비스를 위해 사용되거나 개인이 사용하는 자산. 예를 들어, 서버, PC, 노트북, 라우터, 스위치

데이터

  • 전자적 형태로 저장되는 데이터. 예를 들어, 데이터베이스, 데이터파일

문서

  • 종이 매체로 된 정보 자산으로 업무 목적 문서, 기록물. 예를 들어, 결재문서, 계약서, 합의서

시설

  • 시스템 설치, 운영 장소 등 물리적 공간 및 시설. 예를 들어, 사무실, 전산실, 통신실

지원설비

  • 정보시스템 운영을 지원하기 위한 설비. 예를 들어, UPS, 항온항습기, 발전기

인력

  • 시스템 운영 업무 수행 중인 인력. 예를 들어, 내부 직원, 협력 업체

자산 목록 작성

  • 자산 목록은 반드시 포함되어야 할 항목을 명시하고 주기적으로 갱신되어 최신 상태를 유지해야 함
  • 자산 번호, 자산명, OS, 위치, 담당자(관리자) 등의 항목이 존재하고 중요도에 따라 등급을 매김

SW 개발 보안 적용 사례

BSIMM(Building Security In Maturity Model)

  • 미국국토안보국의 지원을 받아 수행된 소프트웨어 보증(Software Assurance, SwA) 프로젝트의 결과물 중 하나
  • 보안 활동의 성숙도 수준을 영역별로 측정함으로써 소프트웨어 개발에 필요한 보안 능력 향상을 목표로 하는 개발 프레임워크

Open SAMM(Software Assurance Maturiry Model)

  • OWASP에서 개발한 개방형 보완 프레임워크
  • 개방을 원칙으로 소규모, 중규모, 대규모로 점진적인 확대가 가능한 융통성 있는 프레임워크
  • BSIMM과는 달리 설계 리뷰와 코드 리뷰, 그리고 보안 테스팅을 3개의 중요한 검증 활동으로 정의함으로써 이들 활동 간의 연계서 강조

Seven TouchPoints

  • 실무적으로 검증된 개발 보안 방법론 중 하나로써 SW 보안의 모범 사례를 SDLC(Software Development Life Cycle)에 통합한 소프트웨어 개발 보안 생명주기 방법론

MS SDL(Security Development Lifecycle)

  • 마이크로소프트사가 2004년 이후 자사의 소프트웨어 개발에 의무적으로 적용하도록 고안한 보안 강화 프레임워크
  • SDL은 개발 중인 제품이 보안 위협에 대해 얼마나 강인한가를 측정하기 위해 동일한 제품에 대해 ‘pre-SDL’과 ‘post-SDL’의 두 개의 버전으로 테스트

OWASP CLASP

  • 개념 관점, 역할 기반 관점, 활동 평가 관점, 활동 구현 관점, 취약성 관점 등의 활동 중심, 역할 기반의 프로세스로 구성된 보안 프레임워크로 이미 운영 중인 시스템에 적용하기 쉬운 보안 개발 방법론
  • 프로그램 설계나 코딩 오류를 찾아내어 개선하기 위해 개발팀에 취약점 목록을 제공