728x90
반응형
1. 애플리케이션 이슈
로컬/비분산 컴퓨팅
바이러스
- 악성코드의 오래된 형태
트로이목마
- 유용한 프로그램으로 보이는 악성 프로그램
논리폭탄
- 특정 조건을 만족 할 때 까지 잠복하는 악성코드
- 주로 날짜를 기준으로 잠복
웜
- 자기 복제를 통한 전파. 메모리에 위치하고, 네트워크의 취약점을 악용.
분산 컴퓨팅
에이전트(bot)
- 사용자의 명령을 받고 활동하는 지능적인 악성코드 객체
- 웹봇(Web bot): 웹사이트를 크롤링하고 데이터를 처리
애플릿
- 서버에서 클라이언트로 어떠한 작업을 수행하도록 하는 것
- 처리부담을 클라이언트로 이전해 더 많은 사용자의 요청을 처리할 수 있음
- 자바애플릿: 샌드박스를 통한 코드의 특권 제한
- 액티브X컨트롤: MS사의 기술. 샌드박스는 없음
2. 데이터베이스와 데이터 웨어 하우징
DBMS(데이터베이스 관리 시스템) 구조
계층적 데이터 모델
- 논리적 트리구조에 관련된 레코드와 필드를 합치는 것
- 일대다(1:다) 데이터 모델
분산 데이터 모델
- 하나 이상의 DB에 데이터 저장
- DB들은 논리적으로 연결
- 각 필드는 다수의 부모·자식을 가질 수 있음
- 다대다(다:다) 데이터 모델
관계형 DB
- 행열을 가진 2차원 테이블로 구성
- 후보키: 레코드 식별에 사용되는 속성(열)의 부분집합
- 기본키: 후보키 집합 중에 선택되는 1개의 키
- 외래키: 두 테이블의 관계를 강제하기 위해 사용. 참조 무결성.
SQL(Structured Query Language)
- DBMS 관리통제를 위한 인터페이스 언어
- DDL(Data Definition Language): 스키마 생성 변경
- DML(Data Manipulation Language): 스키마의 데이터와 사용자의 상호작용
DB 트랜젝션
데이터 무결성 보증을 위해 사용
트랜젝션 4가지 요구 특성(ACID)
- 원자성(Atomicity)
- All or nothing
- 실패한다면 전체 트랜젝션은 발생하지 않은 것 처럼 원복 되어야 한다.
- 일관성(Consistency)
- DB의 모든 규칙과 일치하는 환경에서 작동하여야 한다.
- 독립셩(Isolation)
- 트랜젝션은 각각으로 부터 독립적으로 동작해야 한다.
- 내구성(Durability)
- 한 트랜젝션이 실행 되면 반드시 보존되어야 한다.
다중 DB 보안
동시성(편집통제)
- DB의 정보가 정확하거나 무결성과 가용성이 보호 되는 지를 확인 하기 위한 예방적 보안 매커니즘.
- Lock, Unlock 사용
기타 보안 매커니증
- 의미적 무결성, 타임스탬프, 입자 객체통제, 세포억제(개별필드 숨김), 문맥의존적 접근통제, DB분할 등
ODBC(Open DB Connectivity)
상이한 유형의 DB들 간에도 통신 할 수 있도록 허용하는 DB 기능.
![](https://blog.kakaocdn.net/dn/coO4JW/btrsrQcF8AU/9zJbho56bzInRp9p2IBa80/img.png)
집성
유용한 정보를 산출하기 위해 하나 이상의 테이블로 부터 레코드를 통합하는 기능
데이터 마이닝
데이터 웨어하우스
- 다양한 DB로 부터 많은 양의 정보를 보관하는 대규모 DB
데이터 사전
- 데이타에 관한 중요 정보를 저장하고, DBMS가 접근권한을 측정하기 위해 읽어 들인다.
데이터 마이닝
- 분석가가 데이터 웨어하우스를 통해 잠재적인 상관관계 정보를 찾게 하는 기술
- 메타데이터를 생성하고, 이는 웨어하우스에 저장되는 데이터 벌크 보다 더 높은 가치·민감도를 가진다.
- 데이터 마트라는 더 안전한 장치에 저장된다.
중요한 이유
- 추론과 집성공격에 취약한 대량의 데이터를 가지고 있다.
- 비정상 행위기반 침입탐지시스템(IDS)을 위한 보안도구로 활용 될 수 있다.
3. 데이터/정보 저장 장치
저장 장치의 유형
주 메모리
- CPU가 직접적으로 사용가능한 메모리 자원
- RAM(휘발성)
2차 저장장치
- 장시간 사용을 위한 저렴한 비휘발성 저장 장치
- CD, HDD, 플래시드라이브, 테이프 등
가상 메모리
- 시스템이 2차 저장장치를 주 메모리 처럼 모방하는 것
- 부족한 RAM을 보완
가상 저장장치
- 주 저장장치를 2차 저장장치로 사용
- 매우 빠른 파일시스템 제공
임의 접근 저장장치
- OS가 매체의 어떤 지점이든 내용을 요청할 수 있는 것
- RAM, HDD 등
순차적 접근장치
- 특정 주소 도달을 위해 처음부터 탐색 해야하는 것
- 테이프
휘발성 저장장치
- 전원이 꺼지면 내용이 사라지는 저장장치
- RAM
비휘발성 저장장치
- 전원이 꺼져도 내용이 유지가 되는 저장장치
- 자기·광 매체, 비휘발성 RAM
저장장치 위협
- 저장장치 리소스에 대한 불법적 접근 위험
- 은닉채널 공격 - 공유 저장장치에 조작을 통해 민감한 데이터의 전송을 허용하는 것
4. 지식기반 시스템
전문가 시스템
- 특정 주제에 대해 축적된 지식을 통합하고, 이를 미래의 결정에 일관된 방법으로 적용하는 것
- 구성요소
- 지식기반: 지식축적
- 추론엔진: 결정을 위한 정보 분석
신경망
- 계산 단위의 체인이 인간의 사고 과정을 모방히기 위해 사용 됨.
결정 지원 시스템
- 업무데이터를 분석하고, 사용자에게 더 쉽게 업무결정을 내릴 수 있게 하는 방법을 표시하는 지식 기반 어플리케이션
보안 어플리케이션
- 전문가 시스템과 신경망을 활용하여 훌륭한 보안 어플리케이션을 개발 할 수 있음.
5. 시스템 개발 통제
소프트웨어 개발
- 보안은 개발 초기 단계 부터 고려해야 함.
보증
- 보안통제 매커니즘이 시스템 생명주기 전반에 걸쳐 제대로 구현된다는 것을 보장하기 위해 '보증절차'를 사용한다.
- TCSEC 오렌지 북에서 '생명주기 보증' 이라고 함.
시스템 오류 해결
- 시스템 오류에 대한 계획
- 임계값 점검: 데이터의 길이, 형태, 유형을 관리하기 위한 기술
- Fail-secure: 장애 시에 정상이 될 때까지 높은 보안 생태를 유지하는 것.
예: 장애시 완전히 비활성화. 블루스크린 - Fail-open: 실패를 관대하게 허용함
프로그래밍 언어
- 컴파일된 언어
- 장점: 타인에 의한 조작이 어렵다.
- 단점: 보안결함을 코드 내에 내장 시키고, 탐지를 우회하기 쉽다.
- 인터프리트 코드
- 코드의 점검이 가능해서 악성코드 삽입이 적음.
- 누구든지 수정이 가능
객체지향 프로그래밍(OOP)
- 상호작용에 관여된 객체에 중점이 있는 개념
- C++, 자바, 닷넷
시스템 개발 생명주기
개념적 정의
- 프로젝트 목적, 시스템 요구사항에 대한 합의된 진술문
기능적 요구사항 결정
- 시스템의 기능을 목록화
- 기능적 요구사항을 만족하기 위해 어떻게 시스템의 각 부분을 운영해야 하는지 생각
통제 사양 개발
- 개발 초기 단계 부터 모든 시스템에 적절한 보안통제가 설계되어야 한다.
설계검토
- 시스템의 각 부분들이 상호작용하는 방법 결정
- 어떻게 모듈러 시스템 구조가 배치되는 지를 결정
코드 검토 점검
- 개발자가 코드의 복사본을 가지고 검토
- 논리적 흐름도의 문제를 찾는 것
시스템 테스트 검토
- 오류를 찾기 위한 초기 시험 수행
- 기능적 요구사항을 만족 하는지 베타 테스트 수행
- 향후 검토를 위한 시험계획·결과 복사본 유지
유지보수와 변경관리
- 지속적인 운영을 보장하기 위해 필요
생명주기 모델(SDLC)
폭포수 모델
- 7단계로 구성되고, 각 단계가 완료되면 프로젝트가 다음 단계로 진행
- 다음 단계에서 발견된 결점을 보완하기 위해 이전 단계로 돌아가는 것을 허용(피드백 루프)
![](https://blog.kakaocdn.net/dn/utmwu/btrssDSyDD1/JE2yA6RYQQWv5fCnu8at3K/img.png)
나선형 모델
- 폭포수 모델의 반복 횟수를 캡슐화
- 각 루프의 결과로 새로운 시제품(Prototype)이 개발 됨
![](https://blog.kakaocdn.net/dn/bUrbEg/btrsveko6nx/yWSMYd2yxKKaXgl7QWpbKk/img.png)
애자일 소프트웨어 개발(Agile: 좋은 것을 빠르고 낭비없게)
- 애자일 매니페스토(선언) 12가지 원칙
- 가치가 있는 SW를 먼저·지속적으로 전달하여 고객 만족
- 개발 후반부에도 요구사항 변경을 환영
- 짧은 시간 단위로 주기적으로 작동하는 SW를 제공
- 관계자들과 개발자가 전체 프로젝트를 통해 함께 일함
- 각자가 프로젝트를 지원하고 신뢰함
- 가장 효과적인 정보전달법은 대면 대화
- 작동하는 SW가 중요한 척도
- 지속 가능한 개발을 촉진
- 우수한 기술과 좋은 설계에 대한 관심이 민첩성을 향상 시킴
- 단순성이 필수
- 최고의 구조·요구사항·설계는 스스로 조직한 팀에서 나옴
- 주기적으로 더 효과적인 방법을 생각하고, 팀의 행동을 조율·조정
- 애자일 변종: Scrum, Aup, DSDM, XP 등
소프트웨어 능력 성숙 모델(SW-CMM)
- SW개발에 관계하는 모든 조직이 순차적 방식에서 다양한 완성 단계를 통해 이동해야 한다고 주장
- SW품질은 개발 프로세스 품질에 의존
- 단계:
- 초기: 조직화 되지 않은 방식으로 개발
- 반복가능: 코드 재사용이 중요하게 고려
- 정의: 정형화/문서화 된 SW 개발절차에 따라 운영
- 관리: SW과정 관리가 진행. 정량적 수단이 활용됨
- 최적화: 지속적인 향상 과정
이상적 모델(IDEAL 모델)
이상적모델 5단계
- I(Initiating): 변경이유, 지원구축, 인프라 배치
- D(Diagnosing): 현상태 분석, 권고 만듬
- E(Establishing): 권고 실행. 구체적 계획 계발
- A(Acting): 솔루션 개발, 테스트, 개량, 구현
- L(Learning): 효과를 지속적으로 분석
*IDEAL과 SW-CMM 암기 : I Dr. Ed am lo
I | Initiating(초기) |
D | Repeatable(반복가능) |
E | Define(정의) |
A | Managed(관리) |
L | Optimized(최적화) |
간트차트와 PERT
간트차트
- 프로젝트와 스케쥴 사이의 시감흐름에 따른 관계성을 보여주는 막대형태의 차트
![](https://blog.kakaocdn.net/dn/IxzP5/btrsxhVdTeN/OJe4Kgp8f4VvZlRCcS8W4K/img.png)
PERT(프로그램 평가 검토 기술)
- 아래 내용들을 계산하는 프로젝트 일정 관리 도구
- 개발 중인 SW의 크기를 결정
- 위험평가에 대한 표준편차(SD)를 계산
변경과 설정 관리
- 새 기능, 버그 수정, 코드 수정 등의 상황에서 변경을 관리하기 위한 절차
- 요청 통제
- 사용자의 변경요구
- 관리자의 비용효과 분석 수행
- 개발자가 작업의 우선순위를 매김
- 변경 통제
- 개발자가 사용자의 상황재현, 상황개선을 위한 변경 분석
- 배포 통제
- 이중점검: 변경 과정의 디버깅 코드 등이 배포전 제거 되었는지 점검
- 동작을 보증하는 인수 시험
설정변경 통제 4가지 구성요소
- 구성 식별: 관리자는 조직전체 SW 제품구성을 문서화
- 구성 통제: 변경통제/구성관리 정책에 따라 이루어 짐을 보장
- 구성 상태유지: 모든 인가된 변경을 추적하는데 사용
- 구성 감사: 유지기록이 일치하고, 인가되지 않은 변경이 없음을 보증
소프트웨어 테스트
- 개발과정의 일부로 조직에서는 SW를 배포하기 전에 확실히 테스트를 하여야 한다.
- 개발자가 아닌 제3자가 테스트를 수행하여 편향/편견을 방지한다.
- 화이트박스 테스트: 프로그램 코드 확인을 통한 오류 확인
- 블랙박스 테스트
- 다양한 시나리오를 입력하고 출력을 검사
- 내부코드는 모름
- 그레이박스 테스트: 위의 2개를 합친 것. 블랙박스 테스트를 하면서 소스코드 확인도 가능
SW보안평가를 위한 테스트
- 정적 테스트
- SW를 실행하지 않고, 코드나 컴파일된 SW를 분석.
- 결함탐지 도구를 사용
- 예: 오버플로우
- 동적 테스트
- 실행된 환경에서 보안을 평가
- 예: XSS, SQL 인젝션
보안 통제구조
안전한 시스템을 위해서 구현 하여야 함
- 프로세스 격리
- 각 프로세스가 격리된 메모리 공간을 가지는 것을 보증
- 하드웨어 분할은 하드웨어 수준에서 프로세스 격리를 구현
- 보호링
- Level 0: 운영체제 영역. 보안커널 포함. 프로세스들은 슈퍼바이저 모드에서 실행 됨.
- Level 1~2: 장치 드라이버와 시스템 자원에 대한 인터페이스를 제공하는 다른 운영 서비스. 실제로 대부분의 OS는 이런 계층을 구현하지 않음
- Level 3: 애플리케이션과 프로세스가 존재하는 계층. 사용자모드 또는 보호모드. 시스템 자원에 대한 직접적인 접근이 허용 안됨.
- 추상화
- 객체지향적 SW개발 모델에서의 모든 정보시스템 설계를 추론화 하는것
- 시스템 동작에 대한 자세한 내용을 자세히 알 필요 없다.
- 보안모드
- 분리된 보안모드: 시스템이 두 개 이상의 분리된 정보를 처리하고, 사용자는 필요한 분리에만 접근 가능
- 전용 보안모드: 한 번에 특정한 분류 등급의 처리만 허가
- 다중 보안모드: 한 등급 이상의 정보처리가 허가됨
- 고체계 보안모드: 명확히 알 필요성을 갖고, 읽을 수 있는 정보만 처리하도록 허가됨
서비스 수준 합의 (SLA)
- 내부/외부 고객에게 서비스를 제공하는 조직이 서비스 제공자/공급업체 모두에 의해 합의된 적절한 수준의 서비스를 제공하는 대중적인 방법
- 논점: 시스템 가동시간(백분율), 최대 연속 다운시간, 최대 순간 과부하, 평균 과부하, 진단에 대한 책임, 실패복구 시간.
728x90
반응형
'IT이론 정리노트 > IT보안(CISSP)' 카테고리의 다른 글
CISSP IT보안이론 요약: 암호화 기법과 대칭키 알고리즘 (0) | 2022.02.07 |
---|---|
CISSP IT보안이론 요약: 악성코드와 애플리케이션 공격 (0) | 2022.02.06 |
CISSP IT보안이론 요약: 위험과 인적관리 (0) | 2022.02.04 |
CISSP IT보안이론 요약: 보안 거버넌스 개념 원칙과 정책 (0) | 2022.02.04 |
CISSP IT보안이론 요약: 보안통신과 네트워크 공격 (0) | 2022.02.04 |