6장

사용자 인터페이스 : 사용자와 시스템 간의 상호작용이 원할하게 도와주는 소프트웨어

 - 직유학유 : 직관성, 유효성, 학습성, 유연성

소프트웨어 아키텍처 : 소프트웨어의 기본 틀을 만드는 것으로 밑그림을 그리는 것 

정황 시나리오 : 사용자가 목표를 달성하기 위해 수행하는 방법을 순차적 묘사한 것

 

7장

테스트 스크립트 : 테스트 실행 절차나 수행 방법을 스트립트언어로 기술한 파일

테스트 케이스 : 입력 값, 실행 조건, 기대 결과 등의 테스트 항목에 대한 명세서

테스트 시나리오 : 순서에 따라 여러개의 테스트 케이스를 묶은 집합

테스트 오라클 : 사전에 정의된 참 값을 대입하여 비교하는 활동

테스트 하네스 : 테스트를 하기 위해 생성된 자료

 

테스트 자동화 도구

 - 정적 분석 도구 : 프로그램을 실행 하지 않고 분석하는 도구, 소스 코드 점검

 - 테스트 실행 도구 : 스크립트 언어를 사용하여 프로그램을 실행하여 분석하는 도구

 - 성능 테스트 도구 : 애플리케이션 처리량, 응답 시간, 경과 시간, 자원 사용률을 조작하여 테스트 수행

 - 테스트 통제 도구 : 형상 관리 도구, 결함 추적/관리 도구

 - 테스트 하네스 도구

 

결함 : 개발자가 설계한 것과 다르게 동작하거나 다른 결과가 발생되는 것

결함 관리 측정 지표

 - 분포 : 모듈, 컴포넌트의 특정 속성에 해당하는 결함 수

 - 추세 : 테스트 진행에 따른 결함 수

 - 에이징 : 결함의 지속 시간

결함관리 프로세스(발등분확할조승)

 - 발견, 등록, 분석, 확정, 할당, 조치, 승인

결함 추적 순서(등검할수보종해)

 - 등록(Open), 검토(Reviewed), 할당(Assigned), 수정(Resolved, Fixed), 조치 보류(Deferred), 종료(Closed), 해제(Clarified)

 

8장

데이터 보안, 무결성 / 회복, 병행제어

COMMIT : 트랜잭션이 성공적으로 끝나 변경내용을 데이터베이스에 반영하는 명령어

ROLLBACK : 변경내용을 데이터베이스에 반영하지 않고 이전으로 되돌리는 명령어

SAVEPOINT : 롤백을 위해 저장점을 지정하는 명령어

프로시저 : 절차형 SQL문을 활용하여 특정 기능을 수행하는 프로그램

 

9장

Secure SDLC : 강화된 보안을 적용한 SDLC

인증 : 합법적인 사용자인지 확인하는 행위

부인 방지 : 송.수신 사실을 부인할 수 없게 증거를 남기는 것

시큐어 코딩 : 구현 단계에서 보안 약점을 최소화하기 위해 보안요소를 고려하여 코딩

 

0.세션통제

- 불충분한 세션 관리 : 로그아웃시 세션 완전히 제거, 세션 타임아웃 짧게, 패스워드변경시 기존세션 제거, 세션ID는 최소 128bit, 안전한 난수 알고리즘, URL Rewrite 사용 X

- 잘못된 세션에 의한 정보 노출 : 지역변수 활용

 

1. 입력 데이터 검증 및 표현

-  SQL삽입 : SQL을 삽입하여 DB를 조작해 정보를 빼냄 ☞ 예약어, 특수문자 입력되지 않게 설정

- 경로 조작 및 자원 삽입 : 경로를 조작하여 서버 자원 수정  경로 순회 공격을 막는 필터 사용

- 크로스사이트 스크립팅(XSS) : 웹페이지에 악의적인 스크립트 삽입하여 사용자의 실행을 유도시켜 정보를 빼냄   HTML태그사용 제한, 특수문자를 다른문자로 치환

- 운영체제 명령어 삽입   검증없이 내부 명령어 사용 금지

- 위험한 형식 파일 업로드   파일 확장자 제한, 파일명 암호화 등

- 신뢰되지 않는 URL주소로 자동연결 : 피싱사이트로 유도  화이트리스트로 관리

 

2. 보안 기능

- 적절한 인증 없이 중요기능 허용  재인증 기능

- 부적절한 인가  반드시 필요한 권한만 인가

- 중요한 자원에 대한 잘못된 권한  관리자만 자원을 읽고 쓰도록 설정

- 취약한 암호화 알고리즘  안전한 암호화 알고리즘 사용

- 중요정보 평문 저장 및 전송  HTTPS or SSL 사용

- 하드코드된 패스워드 : 관리자 권한 탈취  디폴트 패스워드나 키 사용 금지

 

3. 시간과 상태

- TOCTOU 경쟁 조건   코드내 동기화 구문 사용

- 종료되지 않은 반복문 or 재귀함수 : 자원 고갈로 시스템 정지  수행횟수 제한, 종료조건 검사

 

4. 예외처리

- 오류 메시지를 통한 정보노출  최소한의 정보만 출력

- 오류 상황 대처 부재  예외처리 구문 작성

- 부적절한 예외처리  세분화하여 예외처리

 

5. 코드 오류

- 널포인터 역참조 : 널포인터가 가르키는 메모리에 자료를 저장하려는 것  포인터 사용전에 NULL값인지 검사

- 부적절한 자원 해제 :  중간에 종료시 무조건 자원이 반환되도록 코딩

- 해제된 자원 사용 :  반환된 메모리의 포인터 초기화

- 초기화되지 않은 변수 사용

 

6. 캡슐화

- 잘못된 세션에 의한 정보노출

- 제거되지 않고 남은 디버그 코드

- 시스템 데이터 정보 노출  최소한의 정보만 출력

- public 메소드로부터 반환된 private 배열 

- private 배열에 public 데이터 할당  배열에 저장시 값을 직정 저장

 

7. API 오용

- DNS Lookup에 의존한 보안 결정 : 동일한 도메인에 속한 서버처럼 위장하여 악성사이트로 유도   IP주소를 직접 입력

- 취약한 API사용  안전한 API로 대체

 

해시 : 입력 데이터를 고정된 길이의 값으로 변환

스머핑 : 송신지를 공격지주소, 수신지를 브로드캐스트 주소로 설정하고 네트워크로 요청을 보내 공격지로 응답이 집중되어 서비스를 못하게 하는 공격

 

IPSec : IP계층에서 인증을 보장하는 인증헤더(AH)와 기밀성을 보장하는 암호화(ESP), 무결성을 이용하여 양 종단간 보안 서비스를 제공하는 보안 프로토콜

 - AH : 기밀성(암호화)을 제외한 메시지 인증 코드(MAC)를 이용한 인증(무결성), 송신처 인증을 제공해주는 프로토콜

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

 - IKE : 보안 관련 설정들을 생성, 협상 및 관리하는 프로토콜로 udp 500번 포트를 사용하는 프로토콜

SSL : 응용계층과 TCP/IP 계층 사이에서 웹 데이터 암호화 및 전송 시 기밀성을 보장하는 공개키 기반의 보안 프로토콜 . (port: 443)

HTTPS : HTTP + SSL (port: 443)

SSH : rsh, rlogin, Telnet의 보안이 취약한 단점을 보완하기 위해 사용되고 있는 프로토콜로, 높은 안정성을 보장하는 원격 접속 프로토콜(port: 22) / telnet (port: 23)

 

 

 

10장

운영체제의 목적 : 처리능력, 반환시간, 사용 가능도, 신뢰도

데이터베이스 : 통합, 저장, 운영, 공용 데이터

 

슈퍼키 : 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키

후보키 : 속성들 중에서 튜플을 유일하게 식별하는 키

기본키 : 후보키 중에서 특별히 선정된 키

대체키 : 후보키 중에서 기본키가 아닌 키

외래키 : 다른 릴레이션의 기본키를 참조하는 키

 

무결성 : DB에 저장된 데이터와 실제값이 일치하는 정확성

 - 개체 무결성 : 기본키는 NULL 또는 중복값을 갖을수 없음

 - 참조 무결성 : 참조키는 NULL이거나 참조 릴레이션의 기본키와 같아야함

 

트랜잭션 : DB에서 하나의 논리적 기능을 수행하는 작업단위

 - 원자성(Atomicity) : 모두 반영되거나 모두 반영 안되어야 함

 - 일관성(Consistency) : 성공적으로 완료하면 일관성있는 DB유지

 - 독립성(Isolation) : 하나의 트랜잭션이 실행 될 떄 다른 트랜잭션이 끼어들수 없음

 - 영속성(Durability) : 성공적으로 완료하면 영원히 반영

 

TCP/IP : 인터넷에 연결된 컴퓨터들이 데이터를 주고받을수 있게하는 프로토콜

구문 : 전송하고자 하는 데이터형식, 부호화, 신호레벨 규정

의미 : 정확한 정보 전달을 위한 협조사항, 오류관리를 위한 제어정보 규정

시간 : 통신속도, 메시지 순서 제어 규정

 

11장

패키징 : 실행 파일들을 묶어서 배포용 설치파일을 만드는 것

빌드 : 코드를 컴파일한 후 여러개의 모듈을 묶어 실행 파일로 만드는 것

저작권 : 창작자가 가지는 배타적 독점적 권리로 타인의 침해를 받지 않을 고유한 권한

 - DRM : 콘텐츠가 저작권자가 의도한 용도로만 사용되도록 디지털 컨텐츠를 관리 보호하는 기술

  1. 클리어링 하우스 : 라이센스 발급, 결제 관리를 수행하는 곳

  2. 패키저 : 콘텐츠를 메타 데이터와 함께 배포가능한 형태로 암호화하는 프로그램

  3. DRM 컨트롤러 : 이용권한을 통제하는 프로그램

  4. 보안 컨테이너 : 콘텐츠가 안전하게 유통되기 위한 보안장치

 

소프트웨어 설치 메뉴얼, 소프트웨어 사용자 메뉴얼, 릴리즈 노트

 


REST : HTTP URI를 통해 자원을 구분하고 GET, POST, PUT, DELETE 를 통해 상태를 주고받는기술

OPS : 초당 처리되는 연산능력, 컴퓨터의 성능을 수치로 나타낼 때 사용하는 단위

tpmC : 1분간 최대 처리건수 ,하드웨어성능을 나타내는 지표

병행제어 : 동시에 여러개의 트랜잭션을 수행할 때, 데이터베이스의 일관성 유지를 위해서 트랜잭션 간의 상호 작용을 제어하는 기법

로킹기법 : 하나의 트랜잭션이 수행할 때 다른 트랜잭션이 액세스 할수 없게 제어하는 기법

XML : HTML의 단점을 보안하는 언어로 특수한 목적을 갖는 마크업 언어

NoSQL : 전통적인 RDBMS가 아닌 DBMS로 스키마가 필요하지 않고 수평적 확장이 가능한 DBMS

OLAP : 사용자가 정보에 직접 접근해 대화식으로 정보를 분석하고 의사결정하는 과정

OLTP : 트랜잭션을 수집하고 분류, 저장, 유지보수, 갱신, 검색하는 기능을 수행하는 실시간 거래처리 시스템

페어와이즈 테스트 : 테스트 데이터 값들 간에 최소한 한번씩을 조합하는 방식

Ramp-Up Load : 한계점의 측정을 목적으로 낮은 수준의 부하부터 높은 수준의 부하까지 예상 트래픽을 꾸준히 증가시키며 진행하는 부하 테스트

QoS : 다른 응용 프로그램, 사용자, 데이터 흐름 등에 우선 순위를 정하여, 데이터 전송에 성능을 보장하기 위한 능력

SDDC : 모든 하드웨어가 가상화되어 가상 자원의 풀(Pool)을 구성하고, 데이터센터 전체를 운영하는 소프트웨어가 필요한 기능 및 규모에 따라 동적으로 자원을 할당, 관리하는 역할을 수행하는 데이터 센터

시나리오 플래닝 : 불확실성이 높은 상황 변화를 사전에 예측하고 다양한 시나리오를 설계하는 방법으로 불확실성을 제거해나가려는 경영 전략의 한 방법

하이버파이저 : 하나의 호스트 컴퓨터상에서 동시에 다수의 운영 체제를 구동시킬 수 있는 하드웨어와 운영체제 사이의 소프트웨어 가상화 플랫폼

X.25 : 패킷을 사용하여 대용량의 데이터를 다수의 패킷으로 분리하여 송신하며, 수신측에는 다수의 패킷 결합하여 원래 데이터로 복원

LDAP : 사용자 정보를 유지하기 위한 질의 및 디렉터리 서비스의 등록, 수정, 삭제 및 검색을 위한 목적으로 개발한 인터넷 프로토콜

 

데이터 마이닝 : 대규모의 데이터에서 체계적이고 규칙적인 패턴을 찾아 의미있는 정보로 만드는 것

데이터 웨어하우스 : 기업체의 중심이되는 업무시스템에서 모아진 정보를 일관된 스키마로 저장한 저장소

데이터 마트 : 소규모 단일주체의 데이터 웨어하우스

빅데이터 : 주어진 비용,시간 내에 처리할수 있는 데이터의 범위를 넘는 크기의 비정형 데이터

 

온톨리지 : 실세계에 존재하는 모든 개념들과 개념들의 속성, 그리고 개념들 간의 관계 정보를 컴퓨터가 이해할 수 있도록 서술해 놓은 지식베이스(사전)

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

프레임 릴레이 : ITU-T에 의해 표준으로 작성된 ISDN을 사용하기 위한 프로토콜로, 사용자의 요청에 따라 유연한 대역폭을 할당하며 1~2계층만 담당하고, 망의 성능 향상을 위해 에러 제어 기능과 흐름 제어 기능을 단순화 하고 기술적으로는 X.25에 비해 우위에 있는 프로토콜

ATM : 광대역 서비스의 다양한 특성을 수용하기 위한 광대역 종합정보통신망(B-ISDN)의 실현을 목적으로 제안되었으며 회선교환 방식과 패킷교환 방식의 장점을 통합시킨 연결지향적 속성을 지닌 패킷교환 프로토콜

MMU : CPU가 메모리에 접근하는 것을 관리하는 컴퓨터 하드웨어 부품으로 가상 메모리 주소를 실제 메모리 주소로 변환하는 장치

mutex : 임계영역을 가진 스레드들의 실행 시간이 서로 겹치지 않게 각각 단독으로 실행되게 하는 기술

오픈플로우 : 가상화 기반 네트워크 기술로 네트워크 장시인 컨트롤 플레인과 데이터 플레인 간의 연계 및 제어를 담당하는 개방형 표준 인터페이스

오픈스택 : 아파치 라이선스 형태로 배포되고 있는 공개 소스 소프트웨어 기반의 클라우드 운영체제로, IaaS 형태를 가지며 주로 리눅스 기반으로 운용과 개발이 이뤄지는 클라우드 컴퓨팅 오픈 소스 프로젝트

마이데이터 : 정보주체가 기관으로부터 자기 정보를 직접 내려 받아 이용하거나 제3자 제공을 허용하는 방식으로 정보주체 중심의 데이터 활용체계

 

- 보안

다크 데이터 : 저장만 하고 분석에 활용하고 있지 않는 데이터

킬 스위치 : 주운사람이 잃어버린 폰으로 무선데이터에 접속하면 주인이 원격으로 사용불능상태로 만드는 기술

크라임웨어 : 온라인 상에서 불법 활동을 조장하기 위해 만들어진 컴퓨터 프로그램

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

비트로커 : 윈도우 운영체제에 포함되어 볼륨 전체를 암호화하는 완전한 디스크 암호화

파밍 : 합법적으로 소유하고 있던 사용자의 도메인을 탈취하거나, 사용자가 자신의 웹 브라우저에서 정확한 웹 페이지 주소를 입력해도 가짜 웹 페이지에 접속하게 하여 개인정보를 훔치는 공격수법

IP 스푸핑 : 공격자가 IP주소를 변조하여 접근 제어 목록(ACL)을 우회하여 공격하는 것 

 

버퍼 오버플로우 : 메모리의 범위를 넘치게 해서 원래 리턴 주소를 변경시켜 임의의 프로그램이나 함수를 실행시키는 시스템 해킹 기법

- 스택가드 : 메모리상에서 프로그램의 복귀 주소와 변수사이에 무결성 체크용 값(카나리)을 저장해 두었다가 그 값이 변경되었을 경우 오버플로우 상태로 가정하여 프로그램 실행을 중단하는 기술

- 스택실드 : 함수 시작 시 복귀주소를 Global RET라는 특수 스택에 저장해 두고 함수 종료 시 저장된 값과 스택의 RET값을 비교해서 다를 경우 오버플로우로 간주하고 프로그램 실행을 중단하는 방법

- ASLR : 메모리 공격을 방어하기 위해 주소 공간 배치를 난수화하고, 실행 시 마다 메모리 주소를 변경시켜 버퍼 오버플로우를 통한 특정주소 호출을 차단하는 방법

 

RTO : 재해 복구 목표 시간 - 서비스 복구에 걸리는 시간

RPO : 재해 복구 목표 지점,시점 - 백업할 시점,지점

BIA : BCP를 구축하기 위한 비즈니스 영향 분석(영향도, 손실평가)

BCP : 재해 복구 계획

DRS : 서비스 연속성 보장을 위해 메인센터와 분리, 동일 기능 수행하는 재해 복구 시스템

 

체크리스트 : 기준에 대한 점검을 통한 분석기법

브레인스토밍 : 자발적으로 자연스럽게 제시된 아이디어 목록을 통해 분석하는 기법

 

- 신기술

인포데믹 : 잘못된 정보가 인터넷을 통하여 빠르게 확산

노모포비아 : 스마트폰이 없을때 불안증상(폰중독)

웨버홀리즘 : 웹(web)과 알콜중독(alcoholism)의 합성어(인터넷중독)

 

파레토의 법칙 : 전체 원인의 20%로부터 전체 결과의 80%가 발생하는 현상

롱테일의 법칙 : 사소한 80%가 우수한 20%보다 더 나은 현상

브룩스의 법칙 : 개발 프로젝트의 후반부에 새로운 인력을 투입하면 프로젝트가 지연되는 현상

요르돈의 법칙 : 개발 초기에 설계를 잘못하면 후반에 영향을 미쳐 비용이 커지는 현상 (스노우볼 법칙)

 

 

 

 

+ Recent posts