Gentle Breeze
[CISSP] Domain 4. 응용 시스템 및 시스템 개발 보안 본문
▶ 응용시스템
- 분산환경
- 프로그램이나 데이터가 네트워크 상에서 2대 이상에 거쳐 처리되는 것
- Agent, Applet 지원, 보안에 취약
- 분산 시스템 구조 : 주/종속 처리, 클라이언트/서버, Peer to Peer(P2P)
- 분산 환경의 표준
- CORBA (Common Object Request Broker Architecture) : 표준 스펙
Client Application에서 Remote Server에 있는 한 객체가 가지고 있는 기능을 이용
Client 에서 Broker를 만들어 상호간 통신
Location Transparency(위치 투명성) : Remote Server 위치가 바뀌더라도 클라이언트의 소스는 불변
- RMI (Remote Method Invocation) : 네트워크 상 object 의 기능을 이용 (JAVA 종속)
- DCE (Distributed Computing Environment) : 산업 표준
- COM (Component Object Model) : DCOM 기능을 넣어 네트워크 연결을 제공 (MS 종속)
- DCOM (Distributed COM)
- Client Server (CS)
- Tier : 물리적으로 장비가 분리된 경우에 사용
- 2-Tier : Server, Client
* Fat(Thick) Client
<Client> --------------------------------------- <Server>
- presentation - data source
- biz logic
* Thin Client (Web)
<Client> --------------------------------------- <Server>
- presentation - data source
- biz logic
- 3-Tier : Server, Middleware, Client
<Client> ------------<biz logic 처리>----------- <Server>
- presentation - biz logic - data source
- Pros : 자원 공유, 기능 분담, NW 트래픽 감소, 구축 가격 저렴
효율적 데이터 교환, HW 및 플랫폼에 독립적
- Cons : 무결성 및 기밀성 유지 어려움, NW bottleneck, 어려운 개발 환경
- Middleware : Client ~ Biz Logic Server(Middleware) 간 연결 (RMI/RPC)
여러개의 data source 에 대한 분산 transaction 관리
(Transaction Processing Monitor / Distributed Transaction Coopdinator)
- Open API
HTTP
<<Client>> <------------------------------------ <<Restful Service>>
XML / JSON
- 로컬 및 중앙 집중 환경
- 응용 시스템, 데이터가 한 장소에 위치 (Eg : Mainframe)
- 작업 통합, 통제, 일괄처리 용이
- 효율적 인력운영 (비용대비 효율성은 떨어짐)
- 보안 측면에서 상대적 안정
- Software as a Service (Saas)
- Infra as a Service (Iaas)
- Platform as a Service (PaaS) : facebook
- 분산 환경에서 Application System 개발 이슈
- Applets : web browser에서 실행되는 특정 언어로 구현되어 compile 된 application program
- Sandbox : 다운로드 된 프로그램들의 제한된 활동공간 (Java 보안)
Browser JVM 내의 객체 접근
CodeBase(Origin) 과 HTTP 통신만 가능 (다른 사이트와 통신 불가)
- Active-X : *.cab 에 Makecert로 인증서를 이용한 전자서명을 통해 sandbox 외부에도 접근
- 악성코드
- Virus : 기존 실행 가능한 프로그램에 기생, 실행 시 작동에 피해를 줄 수 있는 명령어 집합
- Trojan Horse : user 정보를 빼내기 위해 개발 (Eg : Win-Trojan/Back_Orifie)
키보드 입력 가로채기, 시스템 보호기능 제거(개인용 방화벽 무력화)
- Worm : 네트워크를 통해 자신을 스스로 복제, 전파하는 독립 프로그램 (Eg : Code Red)
- Spyware : 사용자 동의없이 사용자 정보를 수집하기 위해 비밀리에 잠입
- 공격방법
- 논리폭탄 (Logic Bomb) : 특정 조건이 만족하면 작동, 자기 복제 불가
- 트랩도어 (Trap Door) : 디버깅, 테스트 프로그램이 삭제되지 않고 배포된 것
- 백도어 : 고의로 개발된 보안 허점, 크래커가 재진입을 위해 주로 설치
- 살라미 공격 : 작은 단위의 금액이 특정 계좌에 계속 가산되도록 프로그램 루틴을 부정삽입
- Data Diddling : 저장장치 내에 엑스트라 바이트를 만든 후 Data 변형 및 바꿔치기
▶ 기타 응용 프로그램
- 데이터베이스 시스템(DBS)
- Shared, Integrated, Stored, Operational
- DB 사용자 : DBA, DB 응용 프로그래머, DB User
- 계층형 DB : Tree 구조, 데이터 중복 가능성 높음, 조회 속도 빠름
- 네트워크형 DB : 계층형 DB에 복수의 부모 Node를 허용, 조회 복잡, 관리 어려움
- 객체지향 DB : ORDB, 순수 상용 솔루션 없음 (Eg : MS SQL 2005 이상, Oracle 9i 이상)
XML Type 으로 XML 저장 가능, 조회 성능이 떨어짐, 관리 어려움
- NOSQL (Not Only SQL) : 가용성을 높이기 위해 Sharding 기술이용
데이터 중복으로 인한 무결성 훼손이 무시 가능할 경우 사용
(Eg : Cassandra, MongoDB, Big Table)
- 관계형 DB : Entity 간의 Relation 을 통해 중복을 줄임 (정규화)
- 관계형 DB에서 사용하는 용어
- SQL = DDL (Create, Alter...) + DML (Insert, Select...) + DCL (Grant, Deny...)
- Tuple, Commit, Rollback, 2 Phase Commit
- ERD (Entity Relationship Diagram)
- 무결성 3원칙 : 도메인 무결성, 개체 무결성, 참조 무결성
- 트랜잭션 4원칙(ACID) : 원자성(All or Nothing), 일관성, 무결성, 내구성
- 정규화, 비정규화, 역정규화
- DB 보안문제
- 부적절한 노출, 변경, 서비스 거부
- DB 보안 요구사항
- 승인된 사용자만 접근
- 추론 방지
- 무결성 보장
- DAC/MAC를 이용하여 접근 권한 부여
- RDB에서 VIEW, 권한 서브 시스템 사용
- 집합 (Aggregation) : 접근 가능한 정보의 결합을 통해 접근 권한이 없는 정보를 알아냄, 공모에 취약
상위~하위 등급의 모든 data들을 특정 카테고리로 분류하고 모두 같은 등급으로 관리
- 추론 (Inference) : 통계적인 데이터로부터 개별 데이터 항목 추적을 통해 접근 권한이 없는 정보를 획득
- 다중 인스턴스화 (Polyinstantiation) : 낮은 권한을 가진 사람이 높은 권한의 정보를 통제하기 위해 사용
정보 구분을 위해 다중계층보안(Multi Level Security, MLS)과 관련
키(Key)의 중복성을 허용하여 추정을 방지
- 데이터 웨어하우스(DW)
- 분산, 운영되는 시스템으로부터 필요한 정보를 추출하여 중앙집중 저장소에 모아놓고
여러 사용자들이 효율적 사용
- 특징 : 주제 중심적, 통합 된 내용, 시간에 따라 변화되는 값 유지, 비 소멸성
- DW Application : OLAP(Online Analytical Processing)
Reporting Tool
EIS(Excutive Information System)
- Meta Data
- Self Descriptive 를 위한 정보, 본연의 데이터를 설명하기 위한 데이터
- Dublin Core (ISO1583) 표준
- 데이터 마이닝(Data Mining)
- 방대한 양의 데이터 속 쉽게 드러나지 않는 유용한 정보를 도출, 의사결정 목적
- 구현방법 : 문제정의 -> DW -> DM -> 레포팅 -> 의사결정 -> Feedback
- 활용 : 연관성, 연속성, 분류성, 집단화, 특성화, 예측(패턴 분석, 경향 분석)
- 객체지향 시스템
- 데이터(data)와 연산(operation)으로 구성, 모듈화 및 정보은닉 등의 효과
- 의미를 가진 객체를 정의하고 객체간의 관계의 파악을 통해 시스템 개발
- 설계 및 분석을 위한 모델링이 쉽고 객체의 재사용(상속)이 용이
- 객체지향의 3요소 : 객체, 클래스, 메시지(Sequence Diagram 을 통해 메시지 전달의 흐름 파악)
- 객체지향 시스템의 특징
- 추상화 : 중요한 측면에만 주목, 상세 내역을 배제해 나아가며 단순화
- 캡슐화 : 내부에 data 은닉. 접근은 method 형태로 public 하게 노출
- 상속성 : 부모 클래스로부터 물려받아 자식 클래스를 유도, 단일/다중 상속
- 다형성 : 하나의 interface 를 이용하여 서로 다른 구현 방법을 제공
overloading (중복정의) - Eg: int Add(int, int) / double Add(double, double)
overriding - http://its21c.net/17 참고, 부모와 method signature 는 같지만 기능은 다름
- 인공지능 시스템 (전문가 시스템, Expert System)
- 인간의 판단과 행동을 흉내내어 인간 전문가와 유사한 결정 제시
- 전문가적 지식 + 지식 Base 추론 엔진이 필요
- 지식 Base : 일종의 DB
- 추론기관 : 규칙의 탐색, 추론, 통제
▶ 시스템 개발 통제 (http://its21c.net/71 참고)
- SW 개발 생명 주기(SDLC, Waterfall) : 요구정의 -> 분석 -> 설계 -> 개발 -> 이행
- SDLC 사용시 문서화 된 방법론을 만들어 의사소통을 하게 됨
- 폭포수 모델 : 요구사항 정의가 명확한 경우 적용 가능, 규모가 작은 프로젝트에 적용
- 프로토타이핑 모델 : 화면 디자인과 같은 간단한 시제품을 만들어 보여주고 요구사항 feedback 후 개발
- 나선형 모델 : 대규모 프로젝트에서 위험 분석 단계를 통해 위험 관리 활동을 하며 개발, 개발 기간이 길어짐
- 반복 모델 : iteration 가능 한 미니 프로젝트로 분할하여 독립적인 반복 계획 수립, 증분/진화 모델
- RAD 모델 : Rapid Application Development, 짧은 주기에 프로토타이핑을 개발
Code generator 를 통해 code를 자동 생성 후 완성해 나아감
- V-Model : waterfall 에 근간
- Varification : 개발 산출물이 초기 설정된 조건을 만족하는지 여부를 결정하기 위해 사람이 시스템을 평가
- Validation : 문서화된 요구사항을 만족하는지 여부를 확인하기 위해 자동화 시켜 시스템을 평가
- 테스트 : 단위 테스트, 인터페이스(통합) 테스트, 시스템 테스트, 최종인수 테스트
'⑨ 직무역량강화 > CISSP' 카테고리의 다른 글
[CISSP] Domain 6. 암호학 (I) (0) | 2012.01.11 |
---|---|
[CISSP] Domain 5. 시스템 운영 보안 (0) | 2012.01.11 |
[CISSP] Domain 3. 통신과 네트워크 보안 (II) (0) | 2012.01.10 |
[CISSP] Domain 3. 통신과 네트워크 보안 (I) (0) | 2012.01.09 |
[CISSP] Domain 2. 보안관리실무 (0) | 2012.01.09 |