본문 바로가기
소프트웨어공학

4.SW 보안

by 쩨이1 2025. 2. 6.
더보기

SW개발 보안

사어비 보안 공격 위협에 대응할 수 있도록 SW개발 단계부터 보안약점을 제거해서 안전한 SW를 구축하는 활동
해킹 등 사이버공격의 원인인 보안 취약점SW개발 단계에서 미리 제거
SW개발에 따른 생명주기별단계적으로 수행
개발 과정에서 보안 업무를 수행
안전한 보안 요소를 만족하는 소프트웨어를 개발·운영하기 위한 목적

 

더보기

자산(Asset)

조직 또는 기관에서 보유하고 있는 정보화 자산 및 데이터
(서버, 네트워크, 소프트웨어, 중요 데이터)

 

 

 

더보기

위협원(Threat agents)

 

자산에 피해를 줄 수 있는 내·외부 공격 위험 주체
(인가받지 않은 직원, 외부 공격 해커, 자연재해 등)

 

더보기

위협

자산에 피해를 주는 위협원의 공격 행동
해킹 등 사이버공격, 자산의 위변조 및 삭제, 중요 자산의 불법 유통

 

더보기

취약점

위협이 발생할 수 있는 상황
Injection, 웹 취약점, 취약한 암호화, 사용하지 않은 포트 오픈 등

 

더보기

험(Risk)

위협원이 취약점을 이용하여 자산에 위해를 입힐 수 있는 상황 예측

 

더보기

보안약점

개발 단계에서 발생하는 보안 관련 오류
(정적 오류)
공격에 활용될 여지가 있는 오류
이론상 존재하는 위험 요소

 

더보기

취약점

운영 단계에서 발생하는 보안 관련 오류
(동적 오류)
실제로 공격 구현이 가능한 오류
공격이 실제적으로 가능한 요소

 

SW개발 보안 방법론

기존의 SW개발 생명주기(SDLC: Software Development Life Cycle)에서 안전한 SW를 개발하기 위해 각 단계별로 요구되는 보안 활동을 적용한 방법론

 

더보기

요구사항 분석

-요구사항 중 보안 요구 항목 식별
-시스템 보안 항목 식별
-개발 환경의 보안 프레임워크 분석
-운영 보안 환경 분석

 

더보기

설계

- 보안 요구 항목 구현 방안 설계
- 보안 프레임워크 인증, 인가 설정
- 화면 설계 등 보안 적용 계획 반영 설계

 

더보기

구현

- 개발 표준SW개발 보안 가이드준수한 소스코드 작성(secure coding)
- 소스코드 보안약점 진단 및 조치
- 코드 리뷰(code review)

 

더보기

테스트

- 오류를 유발할 수 있는 내용이 포함된 테스트 케이스 기반 테스트
- 공격 시나리오를 포함한 테스트 수행
- 취약점 등 모의 침투 테스트 수행

 

더보기

운영 및 유지보수

- 지속적인 보안 패치
- 보안약점, 취약점 진단 및 조치

 

 

보안 요구공학

더보기


요구사항 개발: 도출 분석 명세 확인
요구사항 관리: 요구사항 변경관리, 추적관리

 

더보기

요구사항 도출

법·제도 등의 준거성(Compliance) 측면
분석내·외부 시스템 환경(environment) 분석
구축되는 시스템의 보안(security) 요구사항을 식별하고 도출
제안서계약서/ 과업지시서/ 회의록 /사업 수행 계획서가 주로 참조
이해관계자의 상호 의견을 조율하고,

협의를 통해 요구사항을 수집하고

수집된 요구사항을 정제하고내용별로 분류

 

더보기

요구사항 분석

보안요구사항의 제약조건 판별

 

더보기

요구사항 명세

보안요구사항의 분석서를 통하여 요구사항 정의서가 도출
소프트웨어 개발 시스템의 목표 기술과 사업의 기능과 비기능적 요구사항이 명세

 

더보기

요구사항 확인과 검증

이해관계자들의 지식조직의 성숙도,

소프트웨어 개발 보안요구사항 문서와,

조직의 표준을 고려하여 소프트웨어 개발 보안요구사항 문제 보고서를 작성
경영진 또는 중간관리자는 보고서의 내용이 실제로 구현이 가능하고 문제가 없는지 테스트,

향후 장애 등의 문제 발생 시 근본 원인을 파악할 수 있도록 추적성이 가능한 코드 체계를 통하여 내용 검토를 수행한 후에 검증
SW 보안요구사항은 지속적으로 관리되고

갱신는 이해관계자 간의 협상을 통해 기준을 정하고

상부의 정식 승인 받아 변경을 수행
보안요구사항 명세서와 함께 보안요구사항 추적 매트릭스를 통해 산출물 테스트 시나리오 등을 관리

 

 

더보기

진단 서버

취약점 진단을 수행하기 위해 필요한 CPU, 메모리 등 각종 하드웨어가 장착된 서버

 

더보기

스토리지

취약점 진단을 수행하기 위해 필요한 데이터를 담아 두는 저장 공간으로

이러한 데이터를 취약점 진단 데이터

 

더보기

네트워크

서버와 클라이언트를 연결해 주는 연결망으로

기업 내부에서는 근거리 유선망(LAN,Local Area Network)로 구성

 

 

더보기

취약점 진단 도구

대상이 되는 시스템을 개발 환경에 배포하기 위해 사용

 

더보기

결함 관리 시스템

취약점 진단 과정 중 대상 시스템을 모니터링하고 결함을 추적하고 관리

 

DBMS 조회 및 결과 검증

더보기

SQL Injection

 

XML 조회 및 결과 검증

더보기

XQuery Injection, XPath Injection

 

LDAP 조회 및 결과 검증

더보기

LDAP Injection

 

 

시스템 자원 접근명령어 수행

경로 조작자원 주입, 운영체제 명령어 실행

 

 

 

 

웹서비스 요청 및 결과 조회

더보기

크로스 사이트 스크립트(XSS)

 

웹 기반 중요 기능 수행 요청 유효성 검증

더보기

크로스 사이트 요청 위조 (CSRF)

 

HTTP 프로토콜 유효성 검증( HTTP 요청(Request)과 응답(Response)이 프로토콜 규격에 맞는지 검사하는 과정 )

URL 자동 접속, HTTP 응답 분할

 

허용된 범위 내 메모리 접근

메모리 버퍼 오버플로우( 할당된 메모리보다 더 많은 데이터를 기록 )

 

보안 기능 동작에 사용되는 입력값 검증

부적절한 입력값, 정수형 오버플로우

 

업로드.다운로드 파일 검증

인가되지 않은 파일 업로드, 위조된 파일 다운

 

인증 대상 및 방식

인증 기능 없는 중요 기능 실행

 

인증 수행 제한

반복된 인증 시도

 

비밀번호 관리

비밀번호 평문 기록, 안전하지 않은 비밀번호

 

중요 자원 접근 통제

자원 접근 인증 부재

 

암호화 키 관리

하드코딩 된 암호화 키

 

암호 연산

취약한 암호화 알고리즘, 적절하지 않은 난수값

 

중요 정보 저장

중요 정보 평문 저장, 쿠키를 통한 정보 노출

 

중요 정보 전송

중요 정보 평문 전송

 

예외 처리

오류메시지를 통한 중요 정보 노출

 

세션 통제

잘못된 세션을 통한 중요 정보 노출

 

안전한 소프트웨어를 개발하여 각종 보안 위협을 예방하고 대응하며

정보시스템 개발 시 보안성을 고려하고 SW 보안약점을 사전에 제거하기 위하여 사용

더보기

시큐어 코딩

 

소스코드를 읽기 어렵게 만드는

더보기

난독화

 

사용자 입력값이 SQL문의 조건 문구로 구성될 경우 의도하지 않게 DB의 모든 내용을 조회하거나 DB 데이터의 위변조가 가능한 보안약점

더보기

SQL Injection

 

외부로 입력된 값이 시스템 실행 명령이거나 실행 가능한 코드로 입력되어 의도 하지 않게 서버 자원 탈취 및 공격

더보기

Code Injection

 

외부 입력값으로 서버의 자원에 접근하여 수정 및 삭제, 정보 노출 등의 위협. _______________으로 허용되지 않은 권한을 획득하여 구성 (configuration)을 조작하거나 서버 명령어를 실행 가능한 보안약점

더보기

경로 조작 및 자원 삽입

 

웹페이지에 스크립트를 포함시켜 사용자의 브라우저에서 실행할 수 있어 의도하지 않은 URL 접근, 악의적인 스크립트 실행 가능한 보안약점

더보기

XSS (Cross Site Script)

 

서버 측(server-side)에서 실행 가능한 파일(jsp, asp, cmd 등)이 업로드되어 공격자가 웹으로 실행할 수 있어

시스템 명령어를 실행하거나 외부에서 제어할 수 있는 보안약점

더보기

파일 업로드

 

파일, I/O 같은 리소스 할당에서 공유 문제가 발생할 가능성이 있는 경우

공격자는 의도적으로 객체 생성 실패를 유도할 수 있는 보안약점

더보기

Null Pointer 역참조

 

인가되지 않은 사용자에게 프로그램 내부의 데이터 누출이 가능해지는 보안약점이며,

그 예로 Private 배열에 Public Data가 할당되거나, Public Method부터 반환된 Private 배열

더보기

캡슐화

 

의도된 사용에 반하는 방법으로 API를 사용하거나, 보안에 취약한 API를 사용하여 발생할 수 있는 보안약점

더보기

API 오용

 

도메인명에 의존해서 보안 결정(인증 및 접근 통제)을 하는 경우

로컬 DNS 캐시가 오염된 상황인 경우 의도하지 않은 네트워크 공격으로 발전될 수 있다.

더보기

DNS Lookup에 의존한 보안 결정

 

 

 

보안 결함 등급

더보기

= 보안 사고 발생 시 복구 우선순위

= 영향도 x 긴급도

= 잠재적 손실의 영향 x 해결 시간의 중요성

 

할당된 보안 결함의 근본 원인 도출

운영 조직, 시스템/서비스 공급자, 문제 분석가

 

 

보안 결함의 근본 원인 도출 상태 점검

더보기

문제 관리 책임자

 

SW를 실행하지 않고, 소스코드 수준 으로 보안약점을 분석하고

SW개발 과정에서 주로 사용됨

• SW개발 초기에 보안약점 발견으로 수정 비용 절감

• 컴포넌트 간 발생할 수 있는 통합된 보안약점 발견은 제한적임

• 설계·구조 관점의 보안약점은 발견할 수 없음

더보기

정적 분석

 

SW 실행 환경에서의 보안약점 분석으로 SW 시험 단계에서 주로 사용됨

• 소스코드 필요 없음

• 정확도와 커버리지 향상

• 도구 사용자의 수준에 영향을 받음

• 구조 관점의 보안약점은 발견할 수 없음

더보기

동적 분석

 

프로그램과 보안명세서와의 차이와 불일치

기대하는 보안 품질의 결과와 실제 관찰 결과 간의 차이

SW 시스템이 사용자가 기대하는 타당한 보안 기대치를 만족하지 못하는 것을 의미

더보기

보안 결함

 

소프트웨어 제품의 보안 품질이 정의된 특성과 일치하지 않는 모든 행위

SW보안 결함

설치/운영되기 전에 발견된 소프트웨어 보안 결함

더보기

발견된 보안 결함

 

설치/운영되는 환경에 전달된 소프트웨어 보안 결함

더보기

잠재적 보안 결함

 

잠재 보안 결함들이 소프트웨어의 운영 중에 나타나서 발생하는 하나 이상의 이상 징후들의 집합

더보기

SW의 특이한 고장

 

SW보안 결함 분류와 심각도를 포함한 단위 테스트의 절차 및 산출물

보안 테스트 계획서 작성

보안 테스트 범위와 분석과 분할

보안 테스트 시나리오의 작성

보안 테스트 시나리오 테스트 케이스 작성

보안 테스트 수행

보안 테스트 평가

보안 테스트 결과 보고

 

'소프트웨어공학' 카테고리의 다른 글

일학습병행 퀴즈4  (4) 2025.01.28
3.일학습병행 퀴즈3  (1) 2025.01.28
2. 일학습 병행 퀴즈 2  (5) 2025.01.28
일학습병행제 개념 퀴즈  (2) 2025.01.27