별의 공부 블로그 🧑🏻‍💻
728x90
728x170

핵심 키워드 정리 - 2

  • 시험장에 들어가기 전, 빠르게 훑어볼 내용을 정리해본다.

 

09. 소프트웨어 개발 보안 구축

SW 개발 보안의 3대 요소 : 기무가

  • 밀성(Confidentiality) : 인가되지 않은 개인 혹은 시스템 접근에 따른 정보 공개 및 노출을 차단하는 특성
  • 결성(Integrity) : 정당한 방법을 따르지 않고서는 데이터가 변경될 수 없으며, 데이터의 정확성 및 완전성과 고의/악의로 변경되거나 훼손 또는 파괴되지 않음을 보장하는 특성
  • 용성(Availability) : 권한을 가진 사용자나 애플리케이션이 원하는 서비스를 지속해서 사용할 수 있도록 보장하는 특성

 

SW 개발 보안 용어 : 자위취위

  • 산(Assets)
  • 협(Threats)
  • 약점(Vulnerability)
  • 험(Risk)

 

 

 

DoS(Denial of Service) 공격

  • 시스템을 악의적으로 공격해서 해당 시스템의 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격
  • 종류
    • SYN 플러딩(SYN Flooding) : TCP 프로토콜의 구조적인 문제를 이용한 공격
    • UDP 플러딩(UDP Flooding) : 대량의 UDP 패킷을 만들어 임의의 포트 번호로 전송하여 응답 메시지(ICMP Destination Unreachable)를 생성하게 하여 지속해서 자원을 고갈시키는 공격
    • 스머프(Smurf) / 스머핑(Smurfing) : 출발지 주소를 공격 대상의 IP로 설정하여 네트워크 전체에게 ICMP Echo 패킷을 직접 브로드캐스팅하여 마비시키는 공격
    • 죽음의 핑(PoD; Ping of Death) : ICMP 패킷을 정상적인 크기보다 아주 크게 만들어 전송하면 다수의 IP 단편화가 발생하고, 수신 측에서는 단편화된 패킷을 처리하는 과정에서 많은 부하가 발생하거나 재조합 버퍼의 오버플로우가 발생하여 정상적인 서비스를 하지 못하도록 하는 공격
    • 랜드 어택(Land Attack) : 출발지 IP와 목적지 IP를 같은 패킷 주소로 만들어 보냄으로써 수신자가 자기 자신에게 응답을 보내게 하여 시스템의 가용성을 침해하는 공격 기법
    • 티어 드롭(Tear Drop) : IP 패킷의 재조합 과정에서 잘못된 Fragment Offset 정보로 인해 수신 시스템 문제를 발생하도록 만드는 DoS 공격
    • 봉크(Bonk) / 보잉크(Boink) : 프로토콜의 오류 제어를 이용한 공격 기법으로서, 시스템의 패킷 재전송과 재조립이 과부하를 유발

 

DDoS(Distributed DoS) 공격

  • 여러 대의 공격자를 분산 배치하여 동시에 동작하게 함으로써 특정 사이트를 공격하는 기법

 

DDoS의 공격 구성 요소 : HAMAD(하마드)

  • 핸들러(Handler)
  • 에이전트(Agent)
  • 마스터(Master)
  • 공격자(Attacker)
  • 데몬 프로그램(Daemon)

 

인증 기술의 유형 : 지소생특

  • 식 기반 인증
  • 지 기반 인증
  • 체 기반 인증
  • 징 기반 인증

 

서버 접근 통제 유형

  • 임의적 접근 통제(DAC; Discretionary Access Control) : 주체나 그룹의 신분에 근거하여 객체에 대한 접근을 제한하는 방법
  • 강제적 접근 통제(MAC; Mandatory Access Control) : 객체에 포함된 정보의 허용등급과 접근 정보에 대하여 주체가 갖는 접근 허가 권한에 근거하여 객체에 대한 접근을 제한하는 방법
  • 역할 기반 접근 통제(RBAC; Role Based Access Control) : 중앙 관리자가 사용자와 시스템의 상호관계를 통제하며 조직 내 맡은 역할(Role)에 기초하여 자원에 대한 접근을 제한하는 방법

 

3A(Authentication, Authorization, Accounting)

  • 유무선 이동 및 인터넷 환경에서 가입자에 대한 안전하고 신뢰성 있는 인증, 권한 검증, 과금 기능을 체계적으로 제공하는 정보 기술
    • 인증(Authentication)
    • 권한 부여(Authorization)
    • 계정 관리(Accounting)

 

벨-라파듈라 모델(BLP; Bell-LaPadula Policy) : 벨기

  • 미 국방부 지원 보안 모델로 보안 요소 중 기밀성을 강조하며 강제적 정책에 의해 접근 통제하는 모델
  • No Read Up, No Write Down

 

비바 모델 : 비무

  • 벨-라파듈라 모델의 단점을 보완한 무결성을 보장하는 최초의 모델
  • No Read Down, No Write Up

 

대칭 키 암호화 알고리즘

  • DES(Data Encryption Standard) : 1975년 IBM 개발, NIST에서 발표 
  • SEED : 1999년 KISA
  • AES(Advanced Encryption Standard) : 2001년 미국 표준 기술 연구소(NIST)
  • ARIA(Academy, Research Institute, Agency) : 2004년 국가정보원과 산학연구협회
  • IDEA(International Data Encryption Algorithm) : DES 대체, 스위스 연방기술 기관, 128비트의 키
  • LFSR(Linear Feedback Shift Register) : XOR, 선형 되먹임 시프트 레지스터

 

비대칭 키 암호화 알고리즘

  • 디피 헬만(Diffie-Hellman) : 최초의 공개키 알고리즘, 1976년 고안, 이산대수의 계산이 어려운 문제를 기본 원리
  • RSA(Rivest-Shamir-Adleman) : 1977년 3명의 MIT 수학 교수, 소인수 분해
  • ECC(Elliptic Cuve Crpytography) : 1985년 코블리치와 밀러, RSA 암호 방식에 대한 대안, 타원 곡선 암호
  • ElGamal : T.ElGamal 1985년 제안, 이산대수의 계산이 어려운 문제를 원리

 

해시 알고리즘

  • MD5 : 1991년 Rivest MD4 개선, 프로그램/파일 무결성 검사
  • SHA-1 : 1993년 NSA 미 정부 표준 지정, DSA에서 사용, 160비트 해시값 생성
  • SHA-256/384/512 : SHA 알고리즘 한 종류, 256비트 해시값 생성
  • HAS-160 : 국내 표준 서명 알고리즘 KCDSA를 위하여 개발
  • HAVAL : 메시지를 1024비트 블록으로 나눔, 메시지 다이제스트 출력

 

시큐어 코딩 가이드 적용 대상 : 입보시 에코캡아

  • 력 데이터 검증 및 표현
  • 안 기능
  • 간 및 상태
  • 러 처리
  • 드 오류
  • 슐화
  • API 오용

 

XSS(Cross Site Script) 

  • 검증되지 않은 외부 입력 데이터가 포함된 웹페이지가 전송되는 경우 사용자가 해당 웹페이지를 열람함으로써 웹페이지에 포함된 부적잘한 스크립트가 실행되는 공격
  • 공격 유형
    • Stored XSS
    • Reflected XSS
    • DOM XSS

 

사이트 간 요청 위조(CSRF; Cross Site Request Forgery)

  • 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격

 

SQL 삽입(Injection)

  • 응용 프로그램의 보안 취약점을 이용해서 악의적인 SQL 구문을 삽입, 실행시켜서 데이터베이스의 접근을 통해 정보를 탈취하거나 조작 등의 행위를 하는 공격 기법
  • 공격 유형
    • FROM SQL Injection
    • Union SQL Injection
    • Stored Procedure SQL Injection
    • Mass SQL Injection
    • Error-Based SQL Injection
    • Blind SQL Injection

 

네트워크 보안 솔루션

  • 방화벽(Firewall) : 기업 내부, 외부 간 트래픽을 모니터링 하여 시스템의 접근을 허용하거나 차단하는 시스템
  • 웹 방화벽(WAF; Web Application Firewall) : 엡 애플리케이션의 보안에 특화된 보안 장비. XSS, SQL 인젝션 차단 가능
  • 네트워크 접근 제어(NAC; Network Access Control) : 단말기가 내부 네트워크에 접속을 시도할 때 이를 제어하고 통제하는 기능을 제공하는 솔루션
  • 침입 탐지 시스템(IDS; Intrusion Detectoion System) : 네트워크에서 발생하는 이벤트를 모니터링하고 비인가 사용자에 의한 자원 접근과 보안 정채 위반 행위(침입)을 실시간으로 탐지하는 시스템
  • 침입 방지 시스템(IPS; Intrusion Prevention System) : 네트워크에 대한 공격이나 침입을 실시간으로 차단하고 유해 트래피에 대한 조치를 능동적으로 처리하는 시스템
  • 무선 침입 방지 시스템(WIPS; Wireless Intrusion Prevention System) : 인가되지 않은 무선 단말기의 접속을 자동으로 탐지 및 차단하고 보안에 취약한 무선 공유기를 탐지하는 시스템
  • 통합 보안 시스템(UTM; Unified Threat Management) : 다양한 보안 장비의 기능을 하나의 장비로 통합하여 제공하는 시스템
  • 가상사설망(VPN; Virtual Private Network) : 인터넷과 같은 공중망에 인증, 암호화, 터널링 기술을 활용하여 마치 전용망을 사용하는 효과를 가지는 보안 솔루션

 

DRS(Disaster Recovery System)

  • 재해복구계획의 원할한 수행을 지원하기 위하여 평상시에 확보하여 두는 인적, 물적 자원 및 이들에 대한 지속적인 관리체계가 통합된 재해복구센터
  • 유형
    • Mirror Site : RTO 즉시
    • Hot Site : RTO 4시간 이내
    • Warm Site : RTO 수일~수주
    • Cold Site : RTO 수주~수개월

 

허니팟(Honeypot)

  • 비정상적인 접근을 탐지하기 위해 의도적으로 설치해 둔 시스템
  • 일부러 허술하게 마들어서 해커에게 노출하는 유인 시스템

 

 

 

 

10. 애플리케이션 테스트 관리

소프트웨어 테스트 필요성 : 발예향

  • 오류 견 관점 : 프로그램에 잠재된 오류를 발견하고 이를 수정하여 올바른 프로그램을 개발하기 위해 필요
  • 오류 방 관점 : 프로그램 실행 전에 동료 검토, 워크 스루, 인스펙션 등을 통해 오류를 사전에 발견하는 예방 차원의 필요
  • 품질 상 관점 : 사용자의 요구사항 및 기대 수준을 만족하도록 반복적인 테스트를 거쳐 제품의 신뢰도를 향상하는 품질 보증을 위해 필요

 

소프트웨어 테스트의 기본 원칙 : 결완초집 살정오

  • 함 존재 증명 : 결함이 존재함을 밝히는 활동
  • 벽 테스팅은 불가능 :  완벽하게 테스팅하는 시도는 불필요한 시간과 자원 낭비
  • 기에 테스팅 시작
  • 결함 중 : 적은 수의 모듈에서 대다수의 결함이 발견됨 (20% 80% - 파레토의 법칙)
  • 충제 패러독스 : 동일한 테스트 케이스에 의한 반복적 테스트는 버그를 찾지 못함.
  • 황에 의존 : 소프트웨어의 성격에 맞게 테스트 실시
  • 류-부재의 궤변 : 요구사항을 충족시켜주지 못한다면 결함이 없다고 해도 품질이 높다고 할 수 없음.

 

화이트박스 테스트(White-Box Test)

  • 각 응용 프로그램의 내부 구조와 동작을 검사하는 소프트웨어 테스트

 

화이트박스 테스트 유형 : 구결조 조변다 기제데

  • 문 커버리지 : 프로그램 내의 모든 명령문을 적어도 한 번 수행
  • 정 커버리지 : (각 분기의) 결정 포인트 내의 전체 조건식이 적어도 한 번은 참(T)과 거짓(F)의 결과를 수행
  • 건 커버리지 : (각 분기의) 결정 포인트 내의 각 개별 조건식이 적어도 한 번은 참과 거짓의 결과가 되도록 수행
  • 건/결정 커버리지 : 전체 조건식 뿐만 아니라 개별 조건식도 참 한 번, 거짓 한 번 결과가 되도록 수행
  • 경 조건/결정 커버리지 : 개별 조건식이 다른 개별 조건식에 영향을 받지 않고, 전체 조건식에 독립적으로 영향을 주도록 함으로써 조건/결정 커버리지를 향상 시킨 커버리지
  • 중 조건 커버리지 : 결정 조건 내 모든 개별 조건식의 모든 가능한 조합을 100% 보장
  • 본 경로 커버리지 : 수행 가능한 모든 경로를 테스트
  • 어 흐름 테스트 : 프로그램 제어 구조를 그래프 형태로 나타내어 내부 로직을 테스트
  • 이터 흐름 테스트 : 제어 흐름 그래프에 데이터 사용 현황을 추가한 그래프를 통해  테스트

 

블랙박스 테스트(Black-Box Test)

  • 프로그램 외부 사용자의 요구사항 명세를 보면서 수행하는 테스트(기능 테스트)

 

블랙박스 테스트 유형 : 동경결상 유분페원비

  • 등분할 테스트 : 입력 데이터의 영역을 유사한 도메인별로 유횻값/무횻값을 그룹핑하여 대푯값 테스트 케이스를 도출
  • 곗값 분석 테스트 : 등가 분할 후 경곗값 부분에서 오류 발생 확률이 높기 때문에 경곗값을 포함하여 테스트 케이스를 설계하여 테스트
  • 정 테이블 테스트 : 요구사항의 논리와 발생조건을 테이블 형태로 나열하여 조건과 행위를 모두 조합하여 테스트
  • 태 전이 테스트 : 테스트 대상/시스템이나 객체의 상태를 구분하고 이벤트에 의해 어느 한 상태에서 다른 상태로 전이되는 경우의 수를 수행
  • 스케이스 테스트 : 시스템이 실제 사용되는 유스케이스로 모델링되어 있을 때 프로세스 흐름을 기반으로 테스트케이스를 명세화하여 수행
  • 류 트리 테스트 : SW의 일부 또는 전체를 트리 구조로 분석 및 표현하여 테스트 케이스를 설계하여 테스트
  • 어와이즈 테스트 : 테스트 데이터값들 간에 최소한 한 번씩을 조합하는 방식
  • 인-결과 그래프 테스트 : 그래프를 활용하여 입력 데이터 간의 관계 및 출력에 미치는 영향을 분석하여 효용성이 높은 테스트 케이스를 선정하여 테스트
  • 교 테스트 : 여러 버전의 프로그램에 같은 입력값을 넣어서 동일한 결과 데이터가 나오는지 비교

 

테스트 목적에 따른 분류 : 회안성 구회병

  • 복 테스트 : 시스템에 고의로 실패를 유도하고 시스템의 정상적 복귀 여부를 테스트
  • 전 테스트 : 소스 코드 내의 보안적인 결함을 미리 점검
  • 능 테스트 : 사용자의 이벤트에 시스템이 응답하는 시간, 특정 시간 내에 처리하는 업무량, 사용자 요구에 시스템이 반응하는 속도 등을 측정
  • 조 테스트 : 시스템의 내부 논리 경로, 소스 코드의 복잡도를 평가
  • 귀 테스트 : 오류를 제거하거나 수정한 시스템에서 오류 제거와 수정에 의해 새로이 유입된 오류가 없는지 확인하는 일종의 반복 테스트 기법
  • 행 테스트 : 변경된 시스템과 기존 시스템에 동일한 데이터를 입력 후 결과를 비교

 

성능 테스트의 성능 유형

  • 부하 테스트 : 시스템에 부하를 계속 증가시키면서 시스템의 임계점을 찾는 테스트
  • 강도 테스트 : 시스템 처리 능력 이상의 부하, 즉 임계점 이상의 부하를 가하여 비정상적인 상황에서의 처리를 테스트
  • 스파이크 테스트 : 짧은 시간에 사용자가 몰릴 때 시스템 반응 측정 테스트
  • 내구성 테스트 : 오랜 시간 동안 시스템에 높은 부하를 가하여 시스템 반응 테스트

 

테스트 종류에 따른 분류 : 명구경

  • 세 기반 테스트(블랙박스 테스트) : 프로그램의 요구사항 명세서를 기반으로 테스트 케이스를 선정하여 테스트
  • 조 기반 테스트(화이트박스 테스트) : 소프트웨어 내부 논리 흐름에 따라 테스트 케이스를 작성하고 확인
  • 험 기반 테스트(블랙박스 테스트) : 유사 소프트웨어나 유사 기술 평가에서 테스터의 경험을 토대로 한, 직관과 기술 능력을 기반으로 수행하는 테스트

 

테스트 커버리지

  • 프로그램의 테스트 수행 정도를 나타내는 값으로 테스트 수행의 완벽성을 측정하는 도구

 

테스트 커버리지 유형 : 기라코

  • 능 기반 커버리지 : 테스트 대상 애플리케이션의 전체 기능을 모수로 설정하고, 실제 테스트가 수행된 기능의 수를 측정
  • 인 기반 커버리지 : 애플이케이션 전체 소스 코드의 라인 수를 모수로 테스트 시나리오가 수행한 소스 코드의 라인 수 측정
  • 드 커버리지 : 소스 코드의 구문, 조건, 결정 등의 구조 코드 자체가 얼마나 테스트되었는지를 측정

 

테스트 오라클(Test Oracle)

  • 테스트의 결과가 참인지 거짓인지 판단하기 위해서 사전에 정의된 참 값을 입력하여 비교하는 기법

 

테스트 오라클의 종류 : 참샘휴일

  •  오라클 : 모든 입력값에 대하여 기대하는 결과를 생성함으로써 발생된 오류를 모두 검출
  • 플링 오라클 : 특정한 몇 개의 입력값에 대해서만 기대하는 결과를 제공
  • 리스틱 오라클 : 샘플링 오라클을 개선한 오라클로, 특정 입력값에 대해 올바른 결과를 제공하고 나머지 값들에 대해서는 휴리스틱(추정)으로 처리
  • 관성 검사 오라클 : 애플리케이션 변경이 있을 때 수행 전과 수행 후의 결과값이 동일한지 확인

 

테스트 레벨

  • 함께 편성되고 관리되는 테스트 활동의 그룹

 

테스트 레벨 종류 : 단통시인

  • 위 테스트 : 사용자 요구사항에 대한 단위 모듈, 서브루틴 등을 테스트하는 단계
  • 합 테스트  : 단위 테스트를 통과한 모듈 사이의 인터페이스, 통합된 컴포넌트 간의 상호 작용을 검증하는 테스트 
  • 스템 테스트 : 통합된 단위 시스템의 기능이 시스템에서 정상적으로 수행되는지를 검증
  • 수 테스트 : 계약상의 요구사항이 만족되었는지 확인하기 위한 테스트

 

 

하향식 및 상향식 통합 수행 방식 : 하스 상드

  • 하스 상드 : 하향식(스텁), 상향식(드라이버)

 

테스트 하네스 구성요소 : 드 스슈케 시스목

  • 드라이버
  • 스텁
  • 슈트
  • 케이스
  • 시나리오
  • 스크립트
  • 목 오브젝트

 

결함 심각도별 분류 : 치주 보경단

  • 치명적(Critical) 결함
  • 주요(Major) 결함
  • 보통(Normal) 결함
  • 경미한(Minor) 결함
  • 단순(Simple) 결함

 

애플리케이션 성능 측정 지표 : 처응경자

  • 처리량
  • 응답 시간
  • 경과 시간
  • 자원 사용률

 

데이터베이스 성능저하 원인 : 락페릭사커

  • DB Lock
  • DB Fetch
  • Connection Leak 
  • Pool Size
  • Commit

 

배드 코드 유형 : 오문이 결침

  • 오염
  • 문서 부족
  • 의미 없는 이름
  • 높은 결함도
  • 아키텍처 침식

 

클린 코드 작성 원칙 : 가단의 중추

  • 가독성
  • 단순성
  • 의존성 최소
  • 중복성 제거
  • 추상화

 

메모리 관리 기법의 종류 : 반배할교

  • 반입기법
  • 배치기법
  • 할당기법
  • 교체기법

 

배치 기법의 유형 : 초적악

  • 최초 적합(First-fit)
  • 최적 적합(Best-fit)
  • 최악 적합(Worst-fit)

 

프로세스 상태 : 생준 실대완

  • 생성 상태
  • 준비 상태
  • 실행 상태
  • 대기 상태
  • 완료 상태

 

프로세스 상태 전이 : 디타 블웨

  • 디스패치
  • 타이머 런 아웃
  • 블록
  • 웨이크 업

 

선점 스케줄링 알고리즘 : SMMR

  • SRT
  • MLQ
  • MLFQ
  • Round Robin

 

비선점 스케줄링 알고리즘 : 우기 HFS

  • 우선순위
  • 기한부
  • HRN
  • FCFS
  • SJF

 

반환시간 및 대기시간 계산 방법 : 반종도 대반서

  • 반환시간 = 종료 시간 - 도착 시간
  • 대기시간 = 반환시간 - 서비스 시간

 

교착상태 발생 조건 : 상점비환

  • 상호 배제
  • 점유와 대기
  • 비선점
  • 환형 대기

 

교착 상태 해결 방법 : 예회발복

  • 예방
  • 회피
  • 발견
  • 복구

 

클라우드 컴퓨팅 분류 : 사공하

  • 사설 클라우드
  • 공용 클라우드
  • 하이브리드 클라우드

 

클라우드 서비스 유형 : 인플소

  • 인프라형 서비스(IaaS)
  • 플랫폼형 서비스(PaaS)
  • 소프트웨어형 서비스(SaaS)

 

프로토콜의 기본 3요소 : 구의타

  • 구문(Syntax) : 전송하고자 하는 데이터의 형식
  • 의미(Semantics) : 두 기기 간의 효율적이고 정확한 정보 전송을 위한 협조 사항과 오류 관리를 위한 제어 정보를 규정
  • 타이밍(Timing) : 두 기기간의 통신 속도

 

IPv4 전송 방식 : 유멀브

  • 유니캐스트
  • 멀티캐스트
  • 브로드 캐스트

 

IPv6 전송 방식 : 유멀애

  • 유니캐스트
  • 멀티캐스트 
  • 애니캐스트

 

TCP 특징 : 신연흐혼

  • 신뢰성 보장
  • 연결 지향적 특징
  • 흐름 제어
  • 혼잡 제어

 

패키징 도구 구성요소 : 암키식저 파정크인

  • 암호화
  • 키 관리
  • 식별 기술
  • 저작권 표현 
  • 암호화 파일 생성
  • 정책 관리
  • 크랙 방지
  • 인증

 

제품 소프트웨어 설치 매뉴얼 기본 작성 항목 : 목이주구

  • 목차 및 개요
  • 문서 이력 정보
  • 설치 매뉴얼 주석
  • 설치 도구의 구성

 

백업의 유형 : 전차증

  • 전체 백업 
  • 차등 백업 : 마지막 백업 이후 변경된 모든 데이터를 백업
  • 증분 백업 : 정해진 시간을 기준으로 그 이후에 변경된 파일만 백업
728x90
그리드형(광고전용)
⚠️AdBlock이 감지되었습니다. 원할한 페이지 표시를 위해 AdBlock을 꺼주세요.⚠️
starrykss
starrykss
별의 공부 블로그 🧑🏻‍💻


📖 Contents 📖