1.     어플리케이션 환경

1.      중앙집중식 환경(Centralized Environment)

                -         모든 정보 시스템 작업들이 한 장소에서 이루어짐

                -         HQ에서 모든 결정이 이루어짐

                -         특징 : 업무의 일관성, 관리가 편리, 효율성 저하, 보안강도가 우수

2.      비중앙집중식 환경(Decentralized Environment) - PC환경

                -         로컬 수준에서 결정이 이루어짐.

                -         다수의 컴퓨터 사이트가 상호간의 통신 없이 독립적으로 운영(효율성 증가)

3.      분산 환경(Distributed Environment)

                -         다수의 사이트 상호간에 통신

                -         관리포인트 증가, 효율적, 보안에 취약

2.     어플리케이션 이슈

1.      로컬/비 분산 환경 이슈

1)      바이러스 : hostfile감염 악성코드

2)      트로이 목마 : 개인정보유출

3)      논리 폭탄(Logic Bombs) : 특정조건 부합 시 파괴 행위를 하는 코드

4)      : 시스템 간 전파 되는 악성코드

5)      백도어(Backdoor) : 접근통제(인증) 우회경로 제공(관리, 개발 목적)

6)      Rootkit : 사용자에게 식별되지 않는 악성코드(kernel)

7)      Bot : 원격자동 실행 프로그램(DoS, Spam, Phising)

Virus

Worm

공통점 : 자기 복제

차이점 : 독자 실행 여부

Trojan

Logic Bombs

정상 S/W로 위장

정상 S/W로 분류(특정 조건 부합 시 작동)

3.     분산 환경

1.      분산 환경의 요구사항

               -         이식성(Prtability), 상호운용성(Interoperability), 투명성(Transparency)

               -         확장성(Extensibility), 견고성과 보안(Integrity, Reliability, Security)

4.     분산 기술

1.      DCE(Distributed Computing Environment)

l  OSF에서 만든 표준, UUID를 식별자로 사용

2.      DCOM(Distributed Component Object Model)

l  마이크로소프트에서 만든 기술, GUID를 식별자로 사용

3.      CORBA(Common Ovject Request Broker Architecture)

l  이기종 플랫폼간의 호환

5.     분산환경의 위험과 통제

1.      위험 요소

1)      Agent

                         -         관리자의 개입 없이 정해진 스케줄에 따라 인터넷 상에서 정보를 수집하거나 다른 서비스를 수행

                         -         Anti-Virus, Patch management, Configuration management

2)      Mobile Code

                         -         WWW브라우저를 통해 다운로드 되어 실행 되는 작은 어플리케이션

                         -         악성코드 포함 위험

                         -         Applet, Active-X

2.      Control

                -         애플릿의 수행환경 제한(SandBox)

                -         Trusted server, 신뢰할 수 있는 Mobile Code만 다운로드

                -         사용자교육

                -         브라우저 : 애플릿 파일, 네트워크 접근 제한 사용가능

1)      브라우저 : 쿠키 방식

                         -         Persistent(지속형:파일)

                         -         Non-Persistent(휘발성:메모리)

2)      ActiveX(실행 전 보장)(대응1)

                         -         Trust-relationship

                         -         사용자 인증코드(Authenticode)라고 하는 디지털 인증서 사용, 서버가 안전하다는 것을 보장하는 디지털 인증을 통해 서버와 클라이언트간 안전한 관계 확립

3)      Java Applet(실행 중 보장) (대응2)

                         -         Sandbox : 컴퓨터나 네트워크에 받아들이기 의심스러운 코드의 격리 수단 (실시간 가상환경 제공)

6.      로컬/비분산환경 위험과 통제

1.      위험 요소

1)      바이러스(감염) : 자신을 복제, 자동 동작 할 수 없다, 바이러스를 실행 해야 한다

2)      (전파, 확산) : 시스템에서 시스템으로 전파, 자동 동작, 자신을 다른 곳으로 전파

3)      트로이 목마(위장, 유출) : 정상프로그램이나 데이터 메시지에 몰래 숨겨진 악성코드

4)      논리 폭탄(특정조건, 악의적인) : 특정 조건에 부합되면 파괴적,보안 위협 행동

5)      백도어 : 접근통제를 우회하는 경로, 로그를 남기지 않음.

2.      탐지 방법

바이러스

Vaccine(교정), Anti-Virus(예방)

무결성

N-IDS

가용성

트로이목마

H-IDS

기밀성

논리폭탄

소스코드 검증

무결성

백도어

소스코드검증, H-IDS

기밀성

 

7.     Programming/Data Attacks

1.      Data Diddling ; 원본을 위,변조하여 끼워 넣거나 바꿔 치기 하는 수법

2.      Salami attack : 큰 데이터에서 적은 데이터를 덜어내는 방식

3.      Round down : 반올림의 취약성

4.      Covert channel(은닉채널) : H-IDS, Source code review,정기적 감사를 통해 적발

 

 

8.     Database & Data Warehouse

1.      DBMS(Data Base Management System)

                         -         Persistence(지속되다_ : Data base reuse(재사용)

                         -         Data sharing(공유)

                         -         Recovery(복구)

                         -         Data base language(데이터베이스 언어)

                         -         Security & integrity(보안, 무결성)

2.      DBMS Architecture

1)      계층 형 : Tree 구조

2)      네트워크 형 : 구분 없이 상호 연결 됨

3)      관계 형 : 테이블간의 관계로 정의

4)      객체지향형 : 그래픽, 오디오, 멀티미디어 등 다양한 형식의 데이터 저장에 적합

3.      용어 정의

1)      : 가상적인 관계 혹은 부분 어떤 데이터가 특정 사용자에게 접근 가능할지를 조절(보안성 제공 : 예방통제)

2)      Tuple, Row, Record, Cardinality()

3)      Attribute, Field, Column, Degree()

4)      Commit, rollback

5)      Checkpoint : 저장시점, 복구에 사용

6)      2phase commit

                         -         분산환경에서 사용 되며 Commit 하기 이전에 Commit해도되는지 Prepare Phase를 통해서 확인 후 Commit Phase를 통해 Commit한다

4.      TransactionACID특성

1)      원자성(Atomicity)

                         -         트랜잭션 변경은 모두 성공적으로 수행되거나 전혀 수행되지 않아야 한다.

2)      일관성(Consistency)

                         -         각 트랜잭션은 실행 후 일관적이어야 한다

3)      격리성(Isolation)

                         -         각각의 트랜잭션은 단독으로 실행된 것과 같은 효과를 가져야 한다

4)      영속성(Durability)

                         -         트랜잭션이 성공적으로 수행 되면 DB에 대한 변경은 영구적이어야 한다.

5.      DBMS Security

1)      Access protection(접근 보호)

2)      User Accounts(사용자 추적)

3)      Database Audits(DB 감사)

 

6.      DB Control-View

1)      View를 이용해 특별한 권한의 테이블, 컬럼, 키를 설정 할 수 있다.

    DAC : By specific grant to user or group by owner

    MAC : By classification level

2)      View(예방통제) : Virtual relation : DB의 다중레벨 보안을 위해 논리적 개념의 view를 이용하여 특별한 테이블 생성 가능.

7.      DB의 보안 위협

1)      집성(Aggregation)

-       낮은 보안 등급의 정보 조각을 조합하여 높은 등급의 정보를 알아 내는 것

-       ) 각 지사의 영업 실적을 조합하여 대외비인 회사의 총 매 출액 산정

2)      추론(Inference)

-       보안 등급이 없는 일반 사용자가 보안으로 분류되지 않은 정보에 정당하게 접근하여 기밀 정보를 유추해 내는 행위

-       보안 대책 : Polyinstantiation(다중 인스턴스화?)

-       방지 대책 : Partition, cell suppression, noise, perturbation(교란)

8.      Polyinstantiation, 다향성, MAC

l  같은 이름의 Data가 여러 개 존재하는 것을 허용 java over riding 개념

1)      Mandatory Access Control

    기본 원칙

-       Resources : Classification : Users: Clearance level 할당

-       사용자가 자원에 접근하는 rule : BLP, Bi-ba model policy

-       Polyinstantiation : Clearance level에 따라 보안과 무결성 법칙을 만족하는 multiple tuple 생성

9.      Data Warehouse

l  다차원적으로 분석할 수 있도록 하는 의사결정 지원 시스템

l  데이터웨어하우징

                         -         데이터의 수집 및 처리에서 도출되는 정보의 활용에 이르는 일련의 프로세스

l  OLAP(On-Line Analytics Processing)

                         -         데이터의 다차원 분석을 통한 정보추출 프로세스

                         -         기존의 SQL과 같은 가설 확인 중심의 조회 방식

l  정규화 : DB구조 내에서 중복되는 데이터요소들을 제거, 갱신 이상을 막기 위한 목적(무결성)

l  역 정규화 : 데이터베이스 처리 효율을 증가시키기 위한 목적, 무결성에 대한 Risk 존재 (효율성)

10.    Data Mining

1)      데이터를 분석, 가공하여 유용한 정보로 추출해내는 기술(가설 발견)

    기본 정보 : SQL

    다차원 정보 : OLAP vs 상반되는 것 OLTP ß 오답

    숨겨진 정보 : 데이터 마이닝

     

2)      연관 관계(맥주와 땅콩 구매), 순차 관계(커튼 구매 후 깔개 구매), 분류, 클러스터링 예측

3)      IDS에 활용, 보험사기 탐지에 사용

11.    Knowledge-Based System

1)      지식기반 시스템

    지식과 best-practice에 기초한 의사결정 지원

    의사결정 트리, 규칙, 의미망

12.    Expert System

1)      전문가 시스템

     특정 문제 해결과 관련 된 사실과 전문가의 지식을 knowledge base에 축적해 두고 추론 엔진을 통하여 해결책을 얻는데 활용하는 인공 지능 시스템

    추론 엔진 + 지식 베이스 + 사용자 인터페이스

-       추론 엔진 : 결론 도출을 위한 방법론 제공

-       지식 베이스 : 사실과 규칙의 집합

    IDS에 사용

    전문가 시스템의 구성요소 : 추론엔진, 지식베이스, 사용자 인터페이스

13.    Neural Network

1)      신경망 구조 네트워크

    인간의 신경구조를 모방한 많은 단순 프로세서의 네트워크( neuron간의 weighted-connection)(가중치 있는 연결)

    Training rule을 통해 사례로부터 학습

    학습을 통해 습득 된 지식을 일반화하여 활용

    응용 분야 : 패턴 인식, 문자, 음성 인식, 진단 시스템

9.     System Development Control

1.      객체지향의 특성

l  객체지향 특징 : 캡슐화, 추상화, 다형성, 상속

1)      추상화 : 객체에 대한 추상화 작업결과가 클래스이고, 같은 상태와 행동을 공유하는 객체들의 집합

2)      캡슐화(Class) : 데이터와 오퍼레이션을 묶는 것

l  정보은닉 : 클라이언트는 인터페이스만을 통하여 메시지를 전달

l  인터페이스 : 서비스를 정의하는 오퍼레이션의 집합, 유지보수가 용의(내부 구현이 바뀌어도 영향을 받지 않는다.)

3)      다형성 : 하나의 인터페이스에 많은 다른 구현을 숨기는 것

2.      SDLC 방법론

1)      Waterfall Model(폭포수모델)

-       시스템 개발을 몇 단계로 나누어 각 단계에서의 성과를 확인, 평가 한 후 다음 단계로 진행

-       각 단계의 작업 완료 후 전 단계로 되돌아가지 못해 사양 변경에 유연한 대처 곤란

    특징

-       어떠한 공정에서 문제가 생겨도 앞의 공정 또는 앞에 앞의 공정 등에 되돌아가는 것이 곤란(공장 컨베이어 벨트)

    장점

-       반드시 각 공정마다 눈에 보이는 성과물이 출력

-       다음 공정의 개시 예정이 세워져 있어 일정관리가 쉽다

-       사양이 분명해서 유사한 시스템 개발 경험이 있는 경우 효율, 품질 우수

    단점

-       앞 공정으로 돌아가서 다시 반복하는 등 많은 시스템 개발에서는 작업공정의 변경이 곤란한 경우가 많다.

-       사용자의 요구를 만족하는 지는 최종적인 성과물이 완성되어야만 판명

-       사용자와 개발자와의 오해가 생길 수 있다.

2)      Modified Waterfall(보완 폭포수 모델)

-       폭포수 모델을 보완한 모델로 전 단계로 올라갈 수 있다

3)      Spiral Model(진화적 모형, 나선형)

4)      Prototyping

-       본격적인 시스템 개발 전에 사용자에게 최종 시스템의 형태를 미리 보여주는 과정

-       신속한 요구사항 파악이 가능하며 개발 기간과 비용 절감

-       변경 관리 곤란

    특징

-       시스템 개발 시 고객이 목표를 정의하였으나 요구되는 속성을 어떻게 만족시킬 수 있을지 모르는 경우

-       이런 경우를 대비해 간단한 시제품(prototype)을 만들어 보여주는 것

-       원형 패러다임은 폭포수 모델의 단점을 보완하기 위해 점진적으로 시스템을 개발 하여 나가는 접근 방법

-       고객의 요구사항을 식별하기 위해 만든 실제 실행이 되는 시스템

-       성능, 보안, 견고함 및 신뢰도와 같은 소프트웨어 특성을 무시(보안 취약)

    장점

-       시스템의 기능이 사용자에게 보여짐으로써 개발자와 사용자의 오해가 규명

-       완전하지 못하지만 작동하는 시스템을 만들어 가능성과 유용성을 관리자에게 보여줄 수 있다.

    단점

-       재사용 어려움

-       변경관리의 어려움

 

반응형