준코딩

보안 본문

CS/운영체제

보안

Ljunhyeob - App Dev 2019. 4. 9. 10:06

보안(security)이란?

 -시스템과 그 시스템의 자료들이 결함 없이 보전된다는 것을 의미하는 일종의 신뢰도이다.

 

 

보안 문제

-기밀성 침해 : 인증받지 않고 자료 읽음

-무결성 침해 : 인증 받지 않고 자료 수정

-가용성 침해 : 인증 받지 않고 자료 파괴

-서비스 가로채기 : 인증 받지 않고 자료 사용

-서비스 거부 : 적법한 사용을 막음

 

 

시스템 보호하기 위한 보안 대책

물리적 수준 : 컴퓨터 시스템을 수용하는 장소는 침입자에 대한 물리적 보호가 되어야 한다.

인적 수준 : 적절한 사용자만 시스템에 접근하는 것을 보장

운영체제 : 시스템은 우연한 또는 고의의 보안 침해로부터 자신을 보호해야 한다.

네트워크 : 컴퓨터 데이터가 개인 임대 네트워크를 통해 또는 인터넷 같은 공유 네트워크를 통해 이동한다.
               ->
이러한 데이터를 가로채기 당하는 것은 컴퓨터가 침입당하는 것만큼 유해하다

 

 

 

 

프로그램 위협

: 프로그램을 공격하기 위해서 전형적으로 시스템의 보호 메커니즘을 파괴하는 방식

-트로이 목마 : 정상적인 프로그램으로 위장하여 시작부터 끝까지 램에 상주하며, 시스템 내부 정보를 공격자의

                  컴퓨터로 빼돌리는 프로그램.

-트랩 문(백도) :  정상적인 인증 절차를 거치지 않고, 컴퓨터와 암호 시스템 등에 접근할 수 있도록 하는 것.

           -> 설계자나 관리자에 의해 남겨진 시스템의 보안 허점

           -> 설계자가 일부러 남겨놓은 경우는 개발 단계에서의 테스트를 위해, 유지 보수 시의 효율성을 위해.

-논리 폭탄 : 프로그램 안에 어떠한 조건을 넣고 이 조건이 만족되면 계획한 불법적 결과가 자동으로 나타나도록 하는 수법

-스택과 버퍼 오버플로우 : 스택 또는 버퍼오버플로우 공격은 네트워크 또는 모뎀을 사용하는 연결에서 침입 목표          시스템에 인가되지 않은 접근을 얻기 위해 시스템 외부의 침입자가 사용하는 가장 일반적인 방법.

Ex) 버퍼 오버플로우: 데이터를 저장할 때 프로그래머가 지정한 곳 바깥에 저장하는 것

->벗어난 데이터는 인접 메모리를 덮어 쓰게 되는데 다른 데이터를 손상을 주어서 오류를 발생시킴

Ex) 스택오버플로우 : 스택에 할당된 크기보다 큰 데이터를 넣어서 메모리 주소를 넘치게 쓸 때 발생   

 

 

 

바이러스

-바이러스는 자가 복제 가능하고 다른 프로그램을 감염시키도록 고안된 프로그램이다.

->파일을 변경하거나 파괴하고 프로그램 오작동 등을 일으키는 등 시스템을 망칠 수 있다

파일 바이러스: 자기 자신을 파일에 덧붙임으로써 시스템을 감염시킨다. 프로그램의 시작 부분을 변형시켜서

                   실행이 시작되면 자신의 코드로 분기하게 만든다. 바이러스가 실행한 다음 정상적으로 프로그램을

                   실행하게 되도록 하여서 사용자가 알아채지 못하게 만든다.

부트 바이러스: 시스템이 부팅될 때 운영체제가 읽히기 전에 언제나 실행된다.

       -> 다른 부팅 가능한 미디어를 찾아 감염시킨다.

잠행 바이러스: 바이러스를 감지하는 데 사용되는 시스템의 일부를 수정함으로써 감지를 피하려고 시도한다

Ex) read() 시스템 호출을 수정해서 만약 자신이 수정한 파일이 읽히면 감염된 코드가 아니라 원래 형태의 코드를 돌려준다.

 

 

 

 

시스템과 네트워크 위협

: 서비스와 네트워크 연결을 남용하는 방식을 이용한다.

-: 시스템 성능에 큰 타격을 주기 위해 산란 기법을 사용하는 프로세스이다.  자신의 복사본을 생성하여
    
시스템 자원을 전부 소비하게 하여 다른 모든 프로세스의 시스템 사용을 거의 봉쇄할 수 있다.

-포트 스캐닝: 크랙커가 시스템의 공격 취약점을 찾는 수단이다.

-서비스 거부: 정보를 획득하거나 자원을 훔치는 것이 아니라, 시스템의 정당한 사용을 불가능하게 만든다.

 

 

컴퓨터 공격을 막는 방법으로는 여러 방법들이 존재한다. 가장 범용적인 방법으로는 암호 작성법이다..

 

 

암호화

-여러 다양한 통신 보안 문제를 해결하기 때문에, 암호화는 현대의 컴퓨터 사용의 여러 측면에서 사용된다.

  메시지의 발신자에게 특정키를 소유한 컴퓨터만이 메시지를 읽는 것을 보장해준다.

 

 

대칭 암호화(DES(Data Encryption Standard), LEA(Lightweight Encryption Algorithm))

-암호화와 복호화에 같은 암호 키를 쓰는 알고리즘을 의미한다.

-비대칭형 암호 알고리즘보다 빠르다

-암호화 시 데이터 증가가 없다

 

 

 

비대칭 암호화(ECC(Lightweight Encryption Algorithm))

-대칭 암호화와 반대로 암호화와 복호화의 키가 다르다.

-공개키와 개인키를 생성한다.

 

 

 

 

SSL(Secure Socket Layer) -> 컴퓨터 간에 안전하게 통신할 수 있도록 해주는 암호 프로토콜

-클라이언트와 서버 간의 통신을 공인된 제삼자3 업체가 보증해주는 전자화된 문서

-통신 내용이 노출, 변경되는 것을 방지

-클라이언트가 접속하려는 서버가 신뢰할 수 있는 서버인지 확인 가능

-SSL 통신에공개키를 클라이언트에게 제공

 

사용자 인증(User Authentication)

-거래 당사자간에 상대의 신분을 검증하는 것

->프로세스, 클라이언트, 서버

 

 

패스워드

-사용자의 신원을 인증하는 가장 보편적인 방법이다.

-사용자 ID나 계정 이름으로 자신의 신원을 밝히면 패스워드를 요구받게 된다.

 

 

패스워드 취약점

-쉽게 추측 가능하거나 실수로 인해 노출되면 인가되지 않은 사용자로 불법으로 전달될 수 있다.

 

 

암호화된 패스워드

-패스워드의 다른 문제는 패스워드의 비밀을 유지하기 어렵다는 점이다.

-(UNIX) 시스템은.

 

 

 

일회용 패스워드(One-Time Passwords)

-매번 로그인할 때마다 새로운 비밀번호를 생성되며 일정 시간이 지나면, 사용 여부와 관계없이 발급된 비밀번호는 무효하게 된다.

 

생체인식(Biometrics)

-신체 특성

신체 특성:, 홍채인식, 망막 인식 등이 있다.

행위 특성:, 서명 등이 있다.

 

 

-시스템과 네트워크 보안에 대한 무수한 위협이 있는 것처럼 많은 보안 해결책이 있다.

 해결책은  사용자의 향상된 교육에서부터 버그 없는 소프트웨어를 작성하는 기술에 이르기까지 다양하게 존재한다.

 

 

보안정책

-시스템을 위협하는 주요 위험요소로부터 기업의 자산을 보호하기 위한 정책이다.

ex) 1..

    2. 사용자들은 암호를 공유할 수 없다.

 

 

취약점 평가

-보안정책이 적절히 구현되었는지 아닌지를 평가하는 것

-사회공학이나 포트스캔에 이르기까지 넓은 범위를 다룰 수 있다.

->보안 스캔에 의해 발견된 문제점들은 자동으로 고쳐지거나 시스템 관리자에게 보고 될 수 있다.

 

침입 탐지

-컴퓨터  시스템 내에 들어가려고 시도했거나 성공한 침입을 탐지하고 침입에 대해 적절한 대응을 개시하는 것이다.

 

 

침입 탐지 시스템(IDS: Intrusion Detection System)

-컴퓨터 또는 네트워크에서 발생하는 이벤트들을 모니터링하고, 침입 발생 여부를 탐지하고, 대응하는 자동화된 시스템

-방화벽과 연동하여 공격을 차단하는 소극적인 방어가 가능

 

 

 

NIDS

-해당 네트워크의 모든 트래픽을 탐지한다

-네트워크에서 발생하는 여러 유형의 침입을 탐지

 

 

HIDS

-백도어 탐지 및 억제 가능

-다양한 로그 자료를 통해 정확한 침입방지 가능

 

침입 방지 시스템(IPS: Intrusion-Prevention System)

-다양한 방법의 보안기술을 이용하여 침입이 일어나기 전에 실시간으로 침입을 막고, 유해 트래픽을 차단하기 위한
 
능동형 보안 솔루션

-트래픽은 IPS를 거쳐야만 유통이 가능하며 이러한 방식을 InLine방식이라고 한다.

 

 

지식기반 Signature Based IPS

-각각의 공격에 대하여 정확한 Signature을 정의하고 해당 공격 패턴에 매칭이 되어야만 차단을 시행

-알려지지 않은 공격의 경우 정확한 Signature List가 업데이트되어 있지 않으면 차단이 불가능한 단점이 있으나
 오탐 가능성은 적다
.

 

 

행위 기반

-알려지지 않은 공격을 수집하여 정보를 이용하여 오탐을 줄이고 능동적으로 대처하는 방식

 

방화벽은 신뢰 가능한 시스템과 신뢰할 수 없는 시스템 사이에 존재하는 컴퓨터나 라우터이다.

-두 보안 영역 사이의 네트워크 접근을 제한하고 모든 연결을  감시하고 기록한다.

 

 

방화 벽상에서 실행 가능한 보안 기능

-패킷 필터링 기능: 패킷에 포함되어 있는 ip주소나 포트번호 등을 기초로 통과를 제어

-액세스 제어 기능:통과하는 패킷을 제어

-액세스 감시기능: 모든 접속 요구는 기록된다. 만의 하나 의심스러운 접속 요구가 있는 경우에는 관리자에게 경고를 보냄

-사용자 인증 기능

-암호화 기능: 통신 중의 데이터를 암호화하여 제삼자가3 내용을 모르게 한다.

 

미국 국방부의 TCSEC(Trusted Computer System Evaluation Criteria)는 시스템의 보안을 A, B, C, D네 단계로 분류

 

D단계: 최소 보호, 시스템이 평가되긴 했으나, 다른 어느 보안 등급의 요구사항도 충족시키지 못한 시스템

(MS-DOS, Windows 3.1)

 

C단계: 재량적 보호

C1: 대부분의 UNIX시스템, 데이터에 대한 읽기/쓰기 권한을 사용자 별로 정의하여 사용자가 다른 사용자의 데이터를
     
마음대로 엑세스하지 못하게 할 수 있다.

C2: C1보다 좀 더 보안상의 헛점을 줄임, 각 사용자의 작업 내용을 기록하고 audit 할 수 있는 기능 제공

 

 

B단계: 강제적 보호

B1: 각 데이터 별로 보안 레벨을 정의, 낮은 보안 레벨을 지닌 사용자는 높은 보안 레벨이 정의된 데이터에 엑세스
    할 수 없다.

B2: 각 사용자는 자신의 작업에 대한 최소한의 권한만을 부여받는다..

B3: 하드웨어 자원을 포함한 보안 관리자 기능 및 위험시 자가진단에 의해 시스템을 정지시키는 기능을 가지고 있어야

    하며 운영체제 내부에 보안과 관련된 코드와 무관한 것들은 모두 없어야 한다.

 

 

A1: 검증된 설계, 수학적으로 secure 하다는 것이 증명된 시스템

 

 

 

'CS > 운영체제' 카테고리의 다른 글

파일 시스템  (0) 2019.04.09
주 메모리 & 가상 메모리  (0) 2019.03.29
보안 Security  (0) 2019.03.29
운영체제 구조  (0) 2019.01.21
운영체제 서론2  (0) 2019.01.11
Comments