소프트웨어 개발 보안 설계
안전한 전송을 위한 데이터 암호화 전송
민감한 정보를 통신 채널을 통하여 전송 시에는 반드시 암복호화 과정을 거쳐야 하고, 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
- 개념 관점, 역할 기반 관점, 활동 평가 관점, 활동 구현 관점, 취약성 관점 등의 활동 중심, 역할 기반의 프로세스로 구성된 보안 프레임워크로 이미 운영 중인 시스템에 적용하기 쉬운 보안 개발 방법론
- 프로그램 설계나 코딩 오류를 찾아내어 개선하기 위해 개발팀에 취약점 목록을 제공
'정보처리 > 정보시스템구축관리' 카테고리의 다른 글
소프트웨어 개발 보안 구축 구현 2/5 (0) | 2025.03.25 |
---|---|
소프트웨어 개발 보안 구축 구현 1/5 (0) | 2025.03.24 |
소프트웨어 개발 보안 구축 설계 6/7 (0) | 2025.03.22 |
소프트웨어 개발 보안 구축 설계 5/7 (0) | 2025.03.21 |
소프트웨어 개발 보안 구축 설계 4/7 (2) | 2025.03.20 |