본문 바로가기
정보과학/운영체제특론

운영체제 보안

by J1소프트 2023. 12. 11.
728x90

1. 보안유지

1) 보안규정
   ․시스템에 대한 보안규정이란 그 시스템이 보안상 문제가 없다는 것이 무엇을 뜻하는지를 규정한 것입니다.
   ․기존 시스템의 보안도를 측정하려면 이 보안규정을 이용하면 됩니다.
   ․보안이란 개념을 명확히 규정해 놓은 규정이 없이는 그 시스템이 과연 얼마만큼 철저한 보안이 되어 있는지를 묻는 것조차 의미가 없는 일인 것입니다. 

 

(1) 시스템 보안 규정의 개념
   ․ 시스템에 대한 보안규정
    - 그 시스템이 보안상 문제가 없다는 것이 무엇을 뜻하는지를 규정한 것이다. 
    - 기존 시스템의 보안도를 측정하려면 이 보안규정을 이용하면 된다. 
   ․ 보안에 대한 규정이 없이 시스템 보안이 얼마나 철저한지를 논의하기 어렵다.

 

(2) 미국 정부와 국방성의 보안 규정
   ․미국 정부와 국방성에서 이러한 보안규정에 주된 관심을 갖기 시작했으며 다음의 각각이 보안규정에 관한 것이다. 

첫째
'DoD Directive 5200.28'로서 자료처리 시스템에서 기밀정보가 어떻게 다루어져야 하는지를 정하고 있다. 

둘째
'컴퓨터 보안기술 책자'로서 미공군 컴퓨터 시스템의 보안상태를 측정하고 평가하는 방법을 기술하고 있다. 

셋째
'The Privacy Act of 1974'로서 연방정부 업무에 컴퓨터가 많이 사용됨에 따라 연방정부가 컴퓨터를 사용할 때 일반 시민의 사적인 정보를 어떻게 보호해야 하는지를 규정한 법령이 있다. 



2) 보안유지 접근방법
   ․미국 정부와 국방성에서 이러한 보안규정에 주된 관심을 갖기 시작했으며 다음의 각각이 보안규정에 관한 것입니다.

 

(1) 내부보안
   ․내부 보안(internal security)은 하드웨어나 운영체제의 기능들로써 컴퓨터 시스템의 신뢰성을 높이고 보안문제를 해결하는 것을 말한다.  

 

(2) 외부보안
   ․외부 보안(external security)은 주로 침입자 또는 화재나 홍수 등과 같은 천재지변으로부터 컴퓨터 기재를 보호함을 뜻한다.   
   ․사용자 인터페이스 보안 (user interface security)
   일단 어떤 사람이 컴퓨터 기재를 쓸 수 있도록 되어졌다면 그 사용자의 신원을 운영체제가 먼저 확인하고 나서 시스템의 프로그램과 자료를 액세스할 수 있게 한다.   
   ․보안유지 접근방법 외부 보안은 시설보안(physical security)과 운용보안 (operational security)으로 나눌수 있다.  


  
(3) 분류
   ․분류(classification)에 의해 문제를 부분별로 나눌 수 있다.  
   ․시스템 내의 자료와 사용자들은 몇몇 부류로 나뉘어져서 각 부류에 상이한 액세스 권리가 주어진다. 이런 기법은 군대에서의 분류법과 비슷해서 가장 중요한 서류들은 일급비밀 취급자로 분류된 사람들만이 그 정보를 조회할 수 있게 한다.   

 

(4) 임무 할당
    ․사람을 선택하는 것과 임무를 할당하는 것이 아주 중요한 문제가 된다.   
    ․아무나 항상 믿을 수는 없기 때문에 이런 경우 많이 쓰이는 방법은 책임분배방식(division of responsibility)이다.   
    ․개개인은 시스템 전체를 모르고도 개별적으로 주어진 임무만 수행하도록 한다. 따라서 각 개인은 전체 윤곽을 알 수가 없게 된다.   
    ․시스템에 해를 가하려면 혼자서는 안되고 여러 명이 각자 맡은 임무와 지식을 합해야만 되므로 범죄의 발생을 효과적으로 막을 수 있다.
  


   ․임무 할당의 예에서 살펴본 프로그래머와 오퍼레이터의 업무분장과 마찬가지로 가동중인 시스템의 입력을 관리하는 그들과 출력을 다루는 그룹으로 구분한다.  

 

(5) 보안 위반 발견
    ․시스템내의 일을 여러 갈래로 분리시키고 그들 간에 상호 비교와 견제를 하는 방법을 써야 한다.   
    ․전산소를 실제로 운영하는 요원들에게는 이러한 계획의 상세한 내용을 노출시키지 말아야 하며, 일단 이런 계획이 노출되면 그러한 노력이 무산될 우려가 있다.   
   ․그러한 요원들이 시스템 내부가 아주 정교하게 설계되어 있다는 사실은 알고 있어야 시스템의 보안을 범하려는 사람들을 억제하는데 도움이 된다.   

 

(6) 보안 유지를 위한 유의점
    ․보안상 위협이 될 수 있는 요소나 문제들을 다 알고 파악하기 전에는 효율적인 보안장치를 개발하는 것은 불가능하다.   
    ․주의 깊고 통찰력 있게 시스템을 분석할 필요가 있다.   
    ․가능한 대응책과 함께 보안의 정도가 얼마만큼 되어야 하는지를 점검해야 한다.   
    ․시스템의 상태를 점검하고, 사용자의 신월을 확인(authentication)함으로써 엄중한 감시(surveillance)를 할 수 있다.   
    ․요사이는 아주 정교한 사용자 신원 확인 시스템이 사용되고 있다.   
    ․정당한 사용자에게는 쉽게 넘어가지만, 그렇지 못한 사용자는 이 단계를 뛰어 넘어 시스템을 도용하기가 아주 힘들게 설계되어 있다.  
    ․이런 시스템을 사용할 때 가끔 재미있는 일이 발생하기도 한다.
    목소리를 인식해서 신원을 확인하는 시스템에서는 정당한 사용자임에도 불구하고 만일 그가 감기를 앓고 있으면 사용을 못하게 막기도 하고, 또는 지문을 이용하는 시스템에서는 정당한 사용자 일지라도 손에 상처가 있으면 시스템 사용을 못하게 하는 것이 그 예이다. 

 

 

 2. 보안유지 방법
  ․보안유지를 위해서는 위험감시와 확충, 신원확인, 감사(auditing), 접근제어, 보안커널 등 다양한 방법이 시도 되어 왔습니다.  

1) 위험감시와 확충
   ․보안에 대한 위험을 줄이는 방법 중 하나로 중요한 작업에 대한 제어권을 사용자가 직접 갖지 못하게 하고 운영체제가 가는 방법이 있습니다. 

 

   ◎ 위험감시와 확충
     ․위험감시기법에서는 사용자들이 자원(resource)을 직접 액세스할 수가 없고 단지 운영체제 내부의 감시 프로그램(surveillance program)만이 액세스 할 수가 있다. 
     ․위험감시의 개념은 모니터(monitor)개념과 비슷하다. 
       -> 부당하게 시스템에 침입하려면 즉각 발견되어서 시스템 책임자에게 보고 되는 것이다. 
          첫번째, 자원을 액세스하려는 사용자는 운영체제에게 그러한 요구를 한다. 
          두번째, 운영체제는 허락 또는 거절의 신호를 보낸다. 
          세 번째, 허락한다는 신호가 나오면 감시 프로그램이 그 파일을 액세스하고 그 결과를 사용자 프로그램에게 알려 준다.  
    ․경우에 따라서 사용자보다 더 많은 액세스 권한을 감시 프로그램에게 부여해서 사용자의 요구를 효율적으로 처리하게 할 필요가 있다. 
     -예를 들어서, 어떤 시에서 세금을 내는 시민의 평균 수입을 구하려면 감시 프로그램이 각 시민의 레코드를 액세스할 것입니다. 이러한 기법을 확충 (amplification)이라고 한다. 그러나 이러한 것을 악용하려는 자는 여러 가지 관련 정보를 교묘히 조합하여 개인에 관한 정보를 알아낼 수가 있을 것이다.
      감시 프로그램은 이런 것들도 포착해서 시스템 책임자에게 보고할 수 있도록 설계될 수가 있다. 

 

2) 신원의 확인
   ․보안에 대한 위험을 줄이는 방법 중 하나로 개인 신원을 확인하는 방법이 있습니다. 
   ◎ 신원의 확인
     ․개인 신원확인의 세가지 구분에 대해 알아봅시다.
①  지문 또는 목소리, 사진이나 서명 등의 개인의 특성 
② 특이한 배지(badges), 확인카드나 키(key)등의 개인의 소유물  
③ 패스워드, 금지조합(lock combination) 또는 친척의 이름 등의 개인적으로 기억할 수 있는 것  

 

․개인 신원 확인에 보편적으로 사용되는 확인기법에 대해 알아봅시다.
 *개인의 신원을 확인하는 데 보편적으로 사용되는 확인기법은 간단한 패스워드 보호기법(password protection)이다.  
 *사용자는 몇 개의 글자를 조합해서 기억장치에 기억시켜 두고, 컴퓨터를 이용하고 싶을 때마다 입력시키고 대조 확인하여 시스템 사용권을 허가 받도록 한다.  
 *대부분의 시스템에서는 패스워드가 키보드로 입력되는 동안에는 그것이 CRT 화면에 나타나지 않도록 하고 있다.  
․패스워드 보호기법의 몇 가지 약점에 대해 알아 봅시다.
 *사용자들은 보통 자기가 기억하기 쉬운 글자로 가족이나 친구 이름 등을 패스워드로 선택하는데, 다른 사람이 그 사람을 잘 알고 있을 때는 그 주변정보를 반복 시도(repeated trials)해 봄으로써 우회를 할 수가 있다.  
 *초창기 시스템은 패스워드의 글자수를 보통 짧게 제한해서 이런 피해가 많이 발생했지만, 오늘날 대부분의 시스템에서는 패스워드의 글자수를 길게 하여 이런 시도가 성공하기 어렵도록 하고 있다. 그렇지만 패스워드를 길게 한다고 하여 좋은 것만은 아니다.  
 *만일 패스워드가 너무 길어 기억하기 어려우면 사용자들은 그것을 어딘가에다 적어 두게 될 것이고, 그러면 부당한 사용자가 패스워드를 획득하기란 더 쉬워지게 되는 것이다.  
 *시스템 설계자들은 적당한 길이의 패스워드 글자수를 택해서 기억하기도 쉽고 반복적인 시도로 침입이 불가능하게 해야 할 것이다.  


․운영체제에서 침입 방지 실패의 경우에 대해 알아봅시다.
 *운영체제에의 침입 방지가 혹 실패한다고 해서 반드시 보안이 위태롭게 되는 것은 아니다.  
 *예를 들어, 어떤 사람이 시스템에 있는 패스워드 리스트를 입수하였다고 하면 그 사람은 마음대로 시스템에 침입할 수 있게 될 것입니다. 이 리스트를 쓸모없게 만들기 위해 암호화(encryption)기법을 쓸 수가 있습니다. 그러면 패스워드를 입수했다고 하더라도 그 패스워드를 다시 해독(decryption)할 수 있는 키를 갖고 있지 않으면 그 리스트는 쓸모가 없는 것이다. 
 *많은 시스템이 사용자의 패스워드를 자주 바꾸도록 장려하고 있다.  
  그래야만 침입자가 패스워드를 입수하더라도 곧 못쓰게 만들 수가 있는 것이다. 
․반복적인 시도에 의해 시스템이 침입하는 것을 방지하는 간단한 방법에 대해 알아 봅시다.
 *반복적인 시도에 의해 시스템이 침입하는 것을 방지하는 간단한 방법으로는 일정한 시간 내에 시도해 볼 수 있는 로그인(login)의 횟수를 제한하여 놓는 것이다.  
 *사람이기에 키보드를 칠 때 실수가 발생할 수가 있긴 해도 그 횟수가 10,100,1000번을 넘어선다는 것은 상식적으로 있을 수 없는 일이기 때문에 이런 방법이 사용될 수가 있다. 그래서 시스템에서 3, 4번 정도의 시도횟수를 제한해 두고 만일 그것을 넘어도 패스워드가 틀리면 터미널을 자동적으로 몇 분 가량 끊어 두었다가 다시 연결한다. 또 다시 이런 일이 발생하면 운영체제는 터미널에 경찰을 부른다는 경고문을 내보내거나, 경고 부저를 울려서 터미널을 끊어 버리겠다는 신호를 보내준다. 

 

3) 감사
   ․감사(auditing)는 보통 여러 행정 등의 일에서 과거의 업무를 조사 확인하는데 쓰입니다. 
   ◎ 감사
      ․주기적으로 감사원으로 하여금 최근의 장부를 조사하게 해서 부정한 일이 발생했는지를 검사한다. 그러나 컴퓨터 시스템에서의 감사는 어떤 일을 처리한 즉시 행해 볼 수가 있다.
      ․감사일지(audit log)는 컴퓨터 시스템에 발생한 모든 중요한 사건의 영구적인 기록으로써 중요한 사건이 발생하면 그 즉시 자동적으로 시스템의 안전한 곳에 기록이 된다.
      ․시스템이 손상되었을 때에도 감사일지는 고스란히 남아 있어야 한다. 이러한 감사일지방식은 범죄 발견의 좋은 방법으로서, 설혹 시스템의 방어벽이 깨어지더라도 침입자는 그 뒤에 발견되고 말 것이기 때문에 범죄를 저지르지 않게 될 것이다.
      ․감사일지방법만 있다고 해서 보안이 보장되는 것은 아니다. 그 감사일지를 자주 그리고 신중하게 살펴보아야 하는 것이다. 그러한 감사일지조사는 주기적으로도 하고 또 임의적으로도 해봐야 한다. 
      ․주기적으로 조사하는 것은 정기적인 시스템 보안상태 점검에 필요하고 임의적으로 조사하는 것은 침입자를 발견하는 데 효과가 있다. 

 

4) 접근제어

 

(1) 내부 보안의 가장 핵심적인 것
    ․내부 보안의 가장 핵심적인 것은 공유 데이터의 접근을 제어하는 것이다. 
    ․접근권한(access rights)이란 어떠한 주체(subject)가 어떤 객체(object)를 어떻게 접근할 수 있는가를 정의한다. 주체란 객체를 접근하는 것을 뜻하며 객체란 정보를 갖고 있는 개체(entity)를 일컫는다. 
    ․객체의 실제적인 예로는 디스크, 테이프, 프로세서, 기억장치 등이 있고 추상객체(abstract object) 자료구조 또는 프로세스 등이 있다. 
 

(2) 객체와 주체
     ․객체는 주체로부터의 파괴에 대비한 보호를 받아야 한다. 
     ․주체는 시스템으로부터 신원 확인을 받아야만 객체의 사용이 가능해지는데 이러한 주체에는 사용자, 프로세스, 프로그램 또는 다른 여러 가지 것들이 될 수가 있다. 

 

 (3) 가장 보편적인 액세스권
     ․가장 보편적인 액세스권으로는 판독 액세스(read access), 기록 액세스 (write access) 그리고 실행 액세스(execute access) 등이 있다. 
     ․이런 것들을 구현하기 좋은 방법으로서 액세스 제어 행렬(access control matrix)이 있다. 이는 2차원 행렬로서 열(row)에는 여러 가지 주체를 배열하고 행(column)에는 각각의 주체가 액세스하게 되는 객체를 배열한다. 
     ․행렬의 각 항에는 그 주체가 주어진 객체에 대해 어떤 종류의 액세스권을 가지고 있는지를 표시한다. 이러한 액세스 제어 행렬은 물론 가장 철저한 보호를 받도록 해야 한다. 

 

 5) 보안커널
   ․보안 커널(security kernel)은 보안장치 중에서 가장 중요한 부분을 말하는 것으로 커널은 될수록 크기가 작게 집약되어야만 합니다. 

 

   ◎ 보안커널

시스템 설계 *시스템을 설계할 당시부터 보안문제가 고려되어지는 것이 설계가 끝난 다음 보안 문제를 첨가한 것보다 훨씬 안전한 시스템을 설계하기가 쉽습니다.
*보안장치는 컴퓨터 전반에 걸쳐서 구현되어야만 합니다. 그러나 안전한 시스템을 개발하려고 한다면 운영체제의 커널에 집중해서 보안장치를 고려하는 것이 바람직합니다.
대형 범용
운영체제의 보안
*지금까지의 이 방면의 연구를 살펴보면 대형 범용 운영체제의 보안에 필요한 여러 가지 기능을 분리하다 보면 커널의 규모가 매우 커진다는 사실을 알 수가 있습니다.
*시스템의 보안은 주로 액세스 제어, 로깅(logging), 감시(monitoring)와 기억장치, 가상기억장치, 파일 시스템을 보호하는데 좌우되는데 이런 것들 때문에 운영체제의 커널 부분의 규모가 매우 커지게 되는 것이다.
*보안장치 시스템을 설계할 때 그 커널의 규모를 작게하는 기법에 관한 문제가 운영체제 설계 시에 새롭게 대두되고 있습니다.
하드에어 보안
(hardware security)
*오늘날에 이르러 하드웨어 보안(hardware security)이라는 개념이 나오고 있습니다.
*하드웨어의 값과 부피가 계속 작아짐에 E라 운영체제의 기능을 하드웨어화하는 경향이 나타나고 있습니다.
*이러한 기능들은 그것이 소프트웨어 형태로 있을 때보다 훨씬 안전해집니다.
*하드웨어화 된 여러 가지 기증들은 소프트웨어로 있을 때보다 그 속도가 빠르며, 여러 가지 감시(monitoring) 기능도 더욱 자주 수행될 수가 있습니다.



3. 보안시스템
   ․보안을 위해 시스템 요소를 결함허용 시스템, 능력기반 시스템, 객체지향 시스템에서 살펴보겠습니다.

1) 결함허용 시스템

 

(1) 결함허용 시스템
   ․고도의 안전한 컴퓨터 시스템을 설계하는 목적 중의 하나는 될수록 기계결함으로 쉬는 시간을 적게 하고 기계 가용시간을 높이자는 것이다. 
   ․결함허용시스템(fault-tolerant system)이란 그 부품 중에 한두 개가 고장이 나더라도 계속 작동할 수 있는 시스템을 말한다. 
   ․트랜잭션 처리 시스템에서는 이러한 결함허용은 중요한 요소가 된다. 
    ※예를 들어, 항공회사에서 예약 시스템이 고장을 일으키면 심각한 재정적 손실을 볼 것이고, 은행의 시스템이 고장나면 고객의 은행에 대한 신용이 떨어질 것이다.  
   ․결함허용 시스템의 구축은 신뢰성 문제 때문에 특히 흥미를 끈다. 

 

(2) 결함허용 시스템에 대한 한가지 방안-중복성
   ․결함허용에 대한 한가지 방안은 중복성(redundancy)이다. 
   ․만일 어떤 부품이 고장이 생기면 그와 똑같은 다른 부품이 그것을 대체하는 개념이다. 
   ․어떤 시스템에서는 풀(pool) 기법을 쓰는데, 이 기법에서는 여분의 자원은 단지 고장이 났을 때만 대체 사용하도록 하기도 한다. 
   ․최근에는 마이크로 프로세스들이 더욱 안전한 구조를 갖도록 개발되고 있다. 이런 기법들은 이중 버스 구조( dual bus structure)를 사용하고 있다. 
   ․결함허용 시스템에서는 다중처리(multiprocessing)가 매우 중요하다.

 

(3) 결함 허용에 대한 몇 가지 측면
   ․결함허용을 위해서는 아래의 몇 가지 측면이 고려되어야 한다. 
    - 소프트웨어보다는 하드웨어에 비상안전 메커니즘(fail-safe mechanism) 구현 
    - 가시적 다중처리(transparent multiprocessing) 사용: 소프트웨어를 고치지 않고 효율을 높일 수 있음 
    - 다중 입출력 서브시스템의 사용
    - 운영체제의 중요한 부분의 하드웨어화 
    - 결함탐지 메커니즘(fault detection mechanism)을 하드웨어와 소프트웨어로 구현  

 

(4) 결함허용 시스템에 대한 한가지 방안- 중복성
   ․결함허용 시스템은 graceful degradation을 제공한다. 
   ․고장 난 요소를 가진 결함허용 시스템은 저하된 수준의 서비스를 제공한다. 
   ․결함허용 시스템은 고장 난 요소가 오프라인(off-line)으로 처리될 수 있고, 궁극적으로 수리된 후는 다시 온라인(on-line)으로 가동될 수 있도록 설계되어 진다. 

 

2) 능력기반 시스템과 객체지향 시스템
   ․그럼 우선 능력기반 시스템(capability-based system)과 객체지향시스템(object-oriented system)의 개념에 대해 설명하기로 합시다. 이 분야는 안전한 컴퓨터를 만들기 위한 방편으로써 많은 주목을 받고 있습니다. 능력(capability)에 대해서는 Dannis와 Van Horn이 논문에서 처음 제기 했습니다. 

 

   ◎ 능력기반 시스템 vs 객체지향 시스템

 



(1) 능력의 이동과 저장
   ․능력의 이동과 저장(movement and storage of capabilities)을 제어하는 것은 어려운 문제이다. 
   ․일반적으로 사용자가 자격을 직접 조작할 수 없도록 하고 사용자 대신에 운영체제가 그것을 대행해 주게 된다. 
   ․시스템내의 여러 능력들을 유지해 가는 것은 운영체제의 중요한 작업 중의 하나로서 다중 사용자 시스템에서는 능력의 수가 아주 많아질 수 있으므로 이 작업이 더욱 복잡해지게 된다. 
   ․운영체제는 능력을 보호해야 할 뿐만 아니라 그것들의 액세스가 빨리 이루어질 수 있도록 해야 한다. 이들은 보통 시스템의 모든 능력을 총괄하여 제어하는 목록구조 (directory structure)에 의해 처리된다. 

 

(2) 능력의 취소
   ․다른 주체로 넘어간 능력을 취소해야 될 때가 가끔 발생한다. 
   ․만일 목록 시스템(directory system)에 의해 모든 능력을 제어한다면 이것은 비교적 간단히 처리될 수 있으나 이런 방법을 쓰지 않는 경우 능력을 취소하는 것이 어려워지게 된다.   -> 왜냐하면 능력이 여러 번 복사되었을 수도 있는 것이기 때문이다. 
   ․비상수단으로서 어떤 객체를 복사하고 난 뒤 원본을 바로 없애버리는 방법도 있으나 이는 그 객체에 대한 능력을 갖고 있는 다른 주체들에게도 영향을 미치게 될 것이다. 
   ․때때로 특정 주체의 능력을 취소하면 그 주체로부터 전수된 다른 주체들의 능력도 함께 취소해야 할 때가 있다. 
   ․능력의 선별 취소(selective revocation)의 한 기법으로서 객체의 기본능력 (primary capability)으로부터 생성된 모든 능력들이 그 기본 능력을 통해 간접적으로 객체를 가리키도록 하는 방법이 있다. 이렇게 하면 특정한 능력은 기본능력이나 그 복사본을 갖고 있는 다른 주체들에게 영향을 미치지 않으면서도 취소될 수가 있다. 
   ․입출력 기기들에 대한 능력은 기 기기의 종류에 따라 다르게 해석될 수 있다. 

 

    ※예를 들어, 테이프 드라이브라는 객체에 대한 능력은 되감기(rewind)를 허용하지만 프린터에 대해서는 이러한 능력이 불필요하다.  

 

 

4. 암호
   ․최근 보안에 대해 강조되면서, 컴퓨터 시스템에서도 군과 외교 방면에서 사용해 오던 암호를 도입하여 사용하고 있습니다.


1) 암호의 개념

 

(1) 암호의 개념
   ․암호(cryptography)는 주로 군과 외교 방면에서만 사용되어 왔었지만 오늘날의 컴퓨터 시스템에서 중요하게 대두되고 있다. 
   ․요사이는 정보를 도청하는 것이 더욱 쉬워졌습니다. 사업상의 많은 업무가 전화로 처리되고 있으며 컴퓨터 네트워크의 이용은 더욱 급증하고 있다.
    전자 우편과 전자 송금(EFT: Electronic Funds Transfer)도 증가하고 있다. 
   ․미국에서는 연방정부의 중요한 정보를 전송할 때의 데이터 암호화 표준 (DES: Data Encryption Standard)을 설계해 놓고 운용하고 있다. 
   ․암호는 지정된 사람만이 그 데이터를 이해할 수 있도록 데이터를 변형하는 것이다.

 

(2) 암호의 주요 문제
   ․암호를 다룰때는 아래와 같은 문제점을 고려할 필요가 있다. 

프라이버시 문제
(privacey problem)
통신 채널에서 자격이 없는 사람이 정보를 빼내는 문제를 다루는 것이다.
신원확인문제
(authentication problem)
메시지를 받는 사람이 보내는 사람의 신원을 확인하는 과정, 즉 전자 도장과 같은 과정과 관련된다
분쟁문제
(problem if dispute)
상대방이 전소되는 자료를 수정하거나, 허위 정보를 흘려 넣는 것을 방지하는 문제를 다룬다.

 


2) 프라이버시 시스템과 암호 분석
   ․암호사용 프라이버시 시스템(cryptographic privacy system)의 송신자(sender)는 정당한 수신자(receiver)에게 암호화되지 않은 메시지(평문, plaintext라고 함)를 전송하고자 할 수 있습니다. 이때 전송은 누구든지 도청할 수 있는 취약한 채널을 통해서 이루어집니다.

 

(1) 암호를 이용한 커뮤니케이션 과정
   ․송신자는 평문(plaintext)을 암호문(ciphertext 또는 cryptogram)으로 바꿔 주는 암호화 장치를 통해서 평문을 보낸다. 
   ․암호문은 도청자가 알 수 없으며, 취약한 채널(insecure channel)을 통해 전송된다. 
   ․수신측에서 암호문은 암호해독장치(decription unit)를 통하여 평문으로 재생되게 된다. 

 

(2) 암호분석
    ․암호분석(cryptanalysis)이란 암호 해독 키(decryption key)를 모르는 채 암호문을 원래의 평문으로 회복시키려는 과정을 말한다. 
   ․이것은 도청자들이 하는 일이다. 
    만약 도청자(암호분석가, cryptanalyst)가 (키를 사용하지 않고) 암호문(ciphertext)으로부터 평문(plaintext)을 복원시킬 수가 없게 되어 있으면 그 암호사용 시스템은 안전하다(secure)고 할 수 있다. 

 

3) 공용키 시스템과 디지털 서명
   ․암호사용 시스템은 그 키가 보호되어져야만 안전하고, 이 키의 분배는 안전한 방법을 통해서만 행해져야 하나 이는 그리 쉬운 일이 아닙니다. 이때 공용키 시스템(public key system)을 사용하면 그 키의 분배문제를 해결할 수 있습니다. 

   ◎ 공용키 시스템과 디지털 서명

전통적인
암호화 시스템과
공용키 시스템
*전통적인 암호 시스템에서는 암호화와 해독작용이 밀접한 관련이 있어서 어떤 메시지를 암호화하는 키만 있으면 그 해독도 가능하다.
*공용키 시스템에서는 그 양자가 서로 독립적인 기능이기 때문에 암호화 키가 해독에는 쓸모가 없게 된다.
*암호화 키 E와 해독 키 D가 있다면 E에서 D를 유추해 내는 작업이 막대한 시간을 소요하도록 만든다. 그래서 D는 공개하지 않은 채 E를 공용화해서 사용할 수가 있다. 그러므로 키의 분배문제가 간단히 해결될 수가 있다.
*이 시스템을 사용하고자 하는 사람은 각자가 암호화 키와 해독 키를 만들되 암호화는 공개하고 해독키만 잘 보안하면 된다. 그러므로 누구나 지정된 사람에게 암호문을 송신하는 일이 가능하다 (왜냐하면 암호화 키는 공용이므로).
*특정인만이 그것을 해독할 수 있다(해독 키에 대해서는 비밀이 지켜지므로). 일반적으로 E는 공용 키(public key), D는 개인키(private key)라고 부른다.
서명→
디지털 서명
*손으로 쓴 서명은 사람마다 고유하며(위조사건도 발생하지만) 또 그것을 보고 많은 사람이 그 장본인의 서명임을 알아낼 수 있다.
*디지털 서명(digital signature)도 한 사람만이 그것을 사용할 수 있어야 한다.
공용키 시스템의
디지털 서명 구현
*공용 키 시스템을 쓰면 디지털 서명을 쉽게 구현할 수 있다.
*송신자는 서명이 된 효과를 갖는 메시지를 생성하기 위해 개인 키를 사용하고 수신측에서는 그 송신자의 공용 키로써 그것을 해독한다.
*수신측에서는 서명 된 메시지를 보관하고 있게 된다.
*만일 뒤에 송신자가 메시지 송신을 부인한다면 수신자는 법정자료로써 송신자의 암호화된 메시지를 제출하도록 해야 한다.
*이들은 보통 시스템의 모든 자격(capability)을 총괄하여 제어하는 목록구조(directory structure)에 의해 처리되어진다.
공용키 시스템의
치명적인 결점
*송신자의 공용 키만 입수하면 누구나가 그 원문(plaintext)를 엿볼 수가 있는 것이다.
*이것을 해결하는 쉬운 방법이 있다. 즉. 송신자가 이미 암호화된 메시지에 다시 수신자의 공용 키를 사용하여 또 한 번 암호화하면 된다. 그러면 수신자는 자기의 개인 키로서 원문을 유추해 낼 수 있는 것이다.



5. UNIX 운영체제의 보안
   ․UNIX 시스템은 개방형 시스템(open system)입니다. 따라서 시스템의 명세 및 원시 코드(source code)가 개방되어 있습니다.따라서 운영체제의 보안에 대한 더 많은 고려가 필요합니다. 
   ․이 단원에서는 UNIX 운영체제의 보안과 관련해서 다양한 기법을 살펴보겠습니다.
 
1) UNIX 운영체제 보안의 필요성
   ◎ UNIX 운영체제 보안의 필요성


UNIX 시스템의 설계
*UNIX 시스템은 친밀하고 액세스가 용이하도록 설계되었으며  또한 사용자와 컴퓨터간의 대화를 도와주도록 설계되었다.
 이것은 이 시스템의 보안유지를 어렵게 만든다. 
*UNIX 시스템은 개방형 시스템(open system)이다. 따라서 시스템의 명세 및 원시 코드(source code)가 개방되어 있다.그리고 언급된 많은 문제점들은 비단 UNIX 시스템에만 국한된 것은 아니다. 

UNIX 시스템의 패스워드 파일
*UNIX 시스템의 패스워드 파일(password file)은 암호화된 형태로 저장된다. 
*사용자가 패스워드를 입력하면, 암호화된 형태로의 한 가지 변환(transformation)이 적용되어 비교되어진다. 
*해독변환(decryption transformation)은 알려지지 않는다.  
 그리하여 사용자가 자신의 패스워드를 잊을 경우 시스템 관리자 (system administrator)도 사용자를 도울 수가 없다. 위의 경우에는 패스워드를 시스템 관리자가 바꾸는 방법밖에는 없다. 
*패스워드 암호화 시에 UNIX 시스템은 salt를 이용한다.  
 salt는 시간과 프로세스 식별자(process ID)의 함수에서 임의로 선택된 두 문자로 이루어진 문자열(string)이다. salt의 12개의 비트는 암호화 알고리즘을 변형시킨다. 그래서 사용자가 우연히 같은 패스워드를 선택하더라도 다른 암호의 패스워드를 갖게 된다. 
 어떤 설치 프로그램은 사용자가 올바르지 않는 패스워드를 선택하는 것을 방지하는 패스워드 프로그램을 수정하기도 한다.  

UNIX 시스템의 setuid 이용
*UNIX 시스템의 setuid를 이용하여 사용자가 프로그램을 실행하는 동안에만 ID(개인 ID, 단체 ID, 혹은 둘 모두)를 바꾸는 방식으로 프로그램이 구축된다. 
*이 강력한 형태는 특히 UNIX 시스템의 모든 파일을 액세스할 수 있는 슈퍼유저(superuser)의 ID가 바뀌는 것을 초래하여 보안상의 결점을 갖게 된다. 예를 들어, 일반 사용자가 슈퍼유저에 속하는 쉘(shell)을 실행할 수 있고, setuid 비트가 설정되면 그 일반 사용자는 본질적으로 슈퍼유저가 되는 것이다. 
*확실히 setuid는 조심스럽게 사용해야 한다. Setuid가 아니어야 하는  어떤 것을 찾아내기 위해 일정 기간마다 자신의 디렉토리를 조사해야 한다.

UNIX 시스템에서 의심스러운 보안에 따른 수단
*다른 운영체제에서와 마찬가지로 UNIX 시스템에서의 의심스러운 보안에 대한 비교적 간단한 수단은 로그인 프롬프트(login prompt)를 보여주고, 사용자가 타이핑한 것을 복사하여, 잘못된 로그인을 발견하여 사용자가 다시 타이핑하도록 하는 프로그램을 설치하는 것이다. 
*사용자가 실수로 패스워드를 잃어버리는 경우를 막기 위해, 처음 패스워드를 바르게 입력했는지를 확인하기 위해 다른 터미널에서 즉시 새 패스워드를 입력해야 한다.  

UNIX 시스템이 포함하는 cript 명령
*UNIX 시스템은 cript 명령을 포함하는데, 이 명령은 사용자가 키와 평문(plaintext)을 입력하고 암호문(ciphertext)을 출력하도록 한다. 
*같은 키를 가지고 평문과 암호문을 서로 변환(transformation)이  가능합니다. 이것의 한가지 문제는 같은 키를 반복적으로 사용하려는 경향이 있다는 것이다. 
*일단 키가 발견되면, 이 키를 가지고 암호화한 모든 다른 파일도 판독될 수 있다. 
*사용자는 때때로 암호화된 버전(version)을 생성한 후 평문 파일 (plaintext file)을 지우는 것을 잊어 버리곤 한다. 이것은 키를 더 쉽게 발견하도록 한다. 

2) UNIX 운영체제 보안 방법

 

(1) 슈퍼유저(SU) 사용자
   ․많은 사용자들은 종종 슈퍼유저(su)의 특권을 받는다. 
   ․모든 su의 활동은 로그(log)되어져야 한다. 
   ․이 명령은 다른 사용자의 패스워드를 입력한 어떤 사용자를 다른 사용자 (심지어 su)로 인식하도록 하게 한다.

(2) 트로이 목마 기법
   ․유명한 트로이 목마(Trojan Horse) 기법은 사용자의 패스워드를 알고, 그것을 악의를 가진 사용자에게 알릴 수도 있고, 보통 su 프로그램을 재저장하는 가짜 su 프로그램을 설치하는 것이다. 
   ․다른 사람이 당신의 파일과 디렉토리에 쓰는 것을 허용하지 말아야 한다. 만약 허용한다면, 트로이 목마를 설치하는 사용자를 당신이 초대하는 셈이다. 

(3) 패스워드 에이징
   ․UNIX 시스템은 패스워드 에어징(password aging)이라고 불리는 형태를 포함하는데, 패스워드 에이징은 관리자가 패스워드의 지속기간을 결정하는 것이다. 
   ․패스워드의 존속기간이 만료되면 메시지와 함께 재입력을 요청한다. 
   ․패스워드 에이징의 문제점 
① 사용자는 종종 알기 쉬운 패스워드를 사용한다.
② 시스템이 보안에 약한 예전의 패스워드를 바꾸는 것을 막는 경우도 있다. 
   그래서 사용자는 보안이 약한 패스워드를 강화할 수 없다. 
③ 사용자는 일주일에 단지 2개의 패스워드만 교환할 수가 있다. 
④ 만료가 패스워드 파일에 코딩되기 때문에 어떤 사용자는 포기한 계정의 리스트를 쉽게 프린트하고, 바로 제재를 받을 두려움 없이 패스워드 파일을 타락시키는 일을 계속 할 수가 있다.

 

   ※ 패스워트 에이징의 대안
○ 패스워드가 자주 바뀌어야 한다.
   사용자는 알려진 패스워드에 의해 불법사용자가 로그인 했는지를 결정하기 위해 로그인 날짜와 시간을 추적할 수 있다.  
○ 로그인 시도를 반복함으로써 패스워드를 알게 되는 경우도 있다. 
   왜냐하면, 사용자는 때때로 그들의 로그인 ID를 입력하려 하다가 실수로 패스워드를 입력하기도 하기 때문이다.  
○ 예상치 못한 결과의 또 한가지는 몇 번의 잘못된 로그인의 시도 후에는 다시 시도할 수 없게 하는 것이다. 이것은 가능한 한 패스워드를 모두 시도해 보는 침입자를 막기 위한 것이다.  
○ 잠시 동안 슈퍼유저의 특권을 얻은 침입자는 문서화되지 않은 형태의 트랩도어(trapdoor) 프로그램을 설치할 수 있다. 예를 들어, 원시 코드(source code)에 액세스한 사용자가 특정 로그인 이름(login name)을 받아들이는 로그인 프로그램을 재 작성할 수 있으며 자동적으로 그 사용자를 패스워드를 입력할 필요가 없는 슈퍼유저가 될 수 있게 한다.  
○ 개인 사용자가 시스템을 가로채는 것이 가능하기 때문에 다른 사용자의 액세스를 막을 수도 있다. 사용자는 한 번에 수십 개의 파일을 열 수 있는 수십개의 동시 프로세스(concurrent process)들을 생성시키고 파일 테이블(file table)에 모든 슬롯(slot)을 채움으로써 이렇게 만들 수가 있는 것이다. 합리적인 제한을 함으로써, 설치는 이에 대한 보호를 할 수 있으나 이것은 실제로 추가적인 자원을 필요로 하는 적법한 사용자를 방해할 수 있다.  

 

 

6. 벌레 및 바이러스

1) 벌레 프로그램의 개요
(1) 벌레 프로그램의 침입
   ․근대 전산학의 수 십년 동안 많은 컴퓨터 범죄와 침투를 겪었지만, 이들 중 몇 가지는 흥미 있는 것이었는데, 그 중에서도 1988년 11월에 Internet에 의해 제작된 수천의 미국 정부 컴퓨터에 퍼진 벌레(worm) 프로그램의 침입이었다. 
   ․벌레 프로그램은 여러 UNIX 유틸리티 프로그램의 결함을 통해 파고들었다. 다행이 이러한 결함은 Internet의 모든 컴퓨터에 나타나지는 않아 그 피해가 더 확산되지는 않았다. 
   ․벌레 프로그램은 파일을 파괴하거나 다른 심각한 피해를 끼치지 않는다는 점에서 어느 정도 무해하다고 볼 수 있었다. 그렇지만 많은 컴퓨터를 침입하여 실행시간을 느리게 만들었다. 
   ․피해를 끼치도록 만든 프로그램을 바이러스(virus)라고 부른다. 벌레 프로그램은 원래 분산 시스템 사이를 돌아다니도록 제작되었지만, Internet의 벌레와는 확실히 다른 경우였다. 

(2) UNIX 시스템과 컴퓨터 네트워크의 보안문제
   ․오늘날 운영체제에서 가장 중요한 부분인 UNIX 시스템과 컴퓨터 네트워크의 보안 문제에 대한 집중이 있다. 
   ․UNIX 시스템은 특히 보안이 약하다는 평판을 계속 받아왔지만, 실질적으로 강력한 보안체제를 갖춘 운영체제는 거의 없다. 
   ․암호화(encryption)는 도청자(eavesdropper)에 대한 첫 번째 방어로 절대적으로 필요하지만, 이것만으로는 부족한 것이 사실이다. 
    ※ 예를 들어, 사기꾼(spoofer)은 네트워크 통신(network traffic)을 도청하여 어떤 타입의 패킷을 자신이 원하는 명령을 수행하도록 재전송할 수 있다. 심지어 포착된 데이터 패킷이 암호화 되었을지라도 사기꾼은 그것을 재전송하고, 네트워크 활동을 관찰하고, 패킷 안에 있는 실제 내용을 추리할 수 있다.  
   ․네트워크와 네트워크 응용은 계속 확산될 것이고, UNIX 시스템이 네트워크 운영체제에 가장 널리 사용되어질 것이라는 관점에는 거의 반론이 없다. UNIX 시스템은 보안과 안정성(reliability)을 향상시키기 위한 많은 노력과 안전한 UNIX 시스템을 개발하려고 노력해 왔다. 

 

(3) 벌레 및 바이러스 프로그램에 대한 대응
   ․미국 국방부는 운용체제의 보안을 위한 지침서를 발행하고 있는데, Orange Book 이라고 불리는 그 책자는 증가하는 보안 시스템을 정의하는 다양한 부류를 나열하고 있다. 이들 중 몇 가지는 동일한 보안수준에 있는 모든 정보를 취급하며, 각각의 사용자가 보안 허가를 지닌 사용자 협회에게만 적당하다. 이러한 컴퓨터 보안부류의 몇 가지는 서로 다른 수준의 정보를 취급하기 때문에 다른 보안부류(confidential, secret, top secret) 사용자들로 하여금 동일한 시스템을 공유할 수 있게 해준다. 
   ․강력한 보안 시스템을 위해서 시스템상의 소프트웨어보다 우선하는 제어를 가져야 한다. 우리는 우리가 사용하고 있는 소프트웨어가 실제로 보안이 되었는지를 확신할 수 있는 방법을 가져야 한다. 이것은 구조의 개발 요구를 충족시키기 위해 소프트웨어가 정규적으로 변경되어야 하는지를 나타내는 중요한 문제이다. 
   ․구성관리 시스템(configuration management system)은 소프트웨어를 유지하고 모든 수정을 로그(log)하는 데 사용될 수 있다. 그러나 아직도 구성 관리 시스템을 누가 유지하고 관리해야 하는지는 문제점으로 남아 있다. 
   ․정부의 UNIX 시스템은 큰 사업이며, 정부 시스템은 강력한 보안 시스템을 필요로 한다. 이는 정부 명세를 만족시키는 안전한 UNIX 시스템을 개발하는데 있어서의 활동을 촉진시켜 왔다. 
   ․UNIX 시스템의 개방형 시스템 현상은 안전한 컴퓨터 시스템의 연구와 발전을 촉진시켰다. 󰡒안전한 개방형 시스템󰡓은 모순인 것처럼 들리지만 실제로는 그렇지 않다. 개방형 시스템이 안전하지 않게 된다면, 벌레나 바이러스에 의해 심각한 공격을 받았을 것이다. 그러나 우리는 별다른 의심 없이 우리의 일상생활에서 컴퓨터를 사용하고 있다. 여기서 지적되어져야 하는 복잡한 도덕적인 딜레마가 있다. 
   ․바이러스와 벌레는 보안문제를 유발시킨다는 점에서 다른 종류의 프로그램들과 구별된다. 그 프로그램들은 컴퓨터 시스템의 프로그램과 데이터, 혹은 네트워크상의 다른 시스템에 자신의 복사본을 남길 수 있다. 
   ․바이러스 프로그램은 한 사용자의 프로그램이나 시스템에서 지워진 후에도 다른 시스템에 퍼져 있는 복사본들에 의해 재 침입할 수도 있다. 
   ․바이러스 프로그램은 미묘한 방법으로 침입할 수도 있고, 자신의 존재를 쉽게 노출하기도 한다. 파일을 파괴하거나 시스템 자원을 독점하거나 불필요한 부분을 보여주기도 하는 바이러스 프로그램은 놀라운 방법으로 그들의 존재를 노출한다. 좀더 잠행성의 바이러스는 자신의 존재를 좀처럼 알 수 없게 하기도 한다. 
   ․많이 이용되는 기법은 침입한 후에 시스템 시계(system clock)가 일정 값에 도달되었든가 혹은 고용주 같은 특별한 사용자가 로그인(login)하는 등의 사건이 일어날 때만 활동을 시작하는 것이다.
    예> 󰡒13일의 금요일󰡓(Friday the 13th) 바이러스 

2) 벌레 및 바이러스 프로그램의 활동 매커니즘
   ◎ 벌레 및 바이러스 프로그램의 활동 매커니즘

바이러스 증상
*증상(Strain)이라고 불리는 많은 종류의 바이러스(virus)들이 존재합니다.
*부트 감염균(boot infector)은 디스크의 부트 섹터(boot sector)로 침투를 시도합니다. 시스템이 부트될 때마다(즉, OS가 로드되고 초기화될 때마다) 바이러스는 활동을 개시합니다.
*바이러스는 컴퓨터 작동의 흐름(stream)내에 그 자신을 삽입시켜 제어부에 머무릅니다. 예를 들어, 바이러스는 인터럽트와 트랩(trap)을 가로챌 수 있습니다. 이들 중에는 시스템에 새로운 디스크가 삽입되었고, 초기화 시켜야 한다고 알린 후, 이 기회를 틈타서 새 디스크의 부트 섹터에 자신을 복사하는 경우도 있습니다. 다른 증상으로는 시스템 파일과 응용 프로그램을 감염시키기도 합니다.

 

바이러스 감염
*바이러스는 접촉을 통하여 확산됩니다.(컴퓨터 바이러스는 인간에게 감염되는 바이러스와 매우 유사하다) 이러한 접촉은 공유 디스크 또는 네트워크 노드 간의 연결을 통해서 발생할 수 있습니다.
*바이러스는 코드 세그먼트(code segment)의 대치 또는 코드 세그먼트에 바이러스 코드를 부착시킴으로써 감염시킵니다. 이로 인해 감염된 코드 세그먼트의 크기가 원래의 코드 세그먼트보다 크게 되므로 감염여부의 검출에 도움을 줍니다.

 

감사 프로그램
*감사(audit) 프로그램은 소프트웨어와 신뢰성 있는 본사본을 주기적으로 비교합니다.
*물론 이 작업은 중요한 시스템 자원이 소비될 수 있으므로, 비활동 시간이나 시스템 활동 중 주기적인 휴지기간 동안 실행할 수 있습니다.

 

바이러스 확산/탐지/대항
*바이러스의 확산은 방지(prevention), 탐지(detection), 회복(recovery) 프로그램을 시용해서 정지시키거나 지연시킬 수 있습니다.
*바이러스를 탐지하는데 도움이 되는 몇 가지 발견 사항이 있습니다. 바이러스는 프로그램(데이터가 아니라)을 감염시키며, 이러한 감염은 감염된 프로그램을 변경시키며, 결국에는 바이러스 자신이 실행되어야 한다는 점입니다
*바이러스에 대항하는 몇 종류의 프로그램이 있습니다. 이들은 감염을 방지하거나 탐지 또는 특정한 바이러스의 증상을 확인하고 복구합니다.

 

방지 프로그램
*방지(protection) 프로그램은 모든 시스템 활동과 시스템의 데이터를 감시하는 파수꾼처럼 작동합니다.
*프로그램에 액세스 또는 수정하려는 시도가 있을 때마다 바이러스로부터 공격당하고 있을 가능성이 있다고 경고합니다
*바이러스는 이러한 탐색 매커니즘을 피하여 작동할 수 있도록 설계될 수 있으나 이것은 시스템 내부에 대해서 훨씬 더 많은 지식을 필요로 합니다.
검출 프로그램
*감염(infection)은 진흙 발자국(muddy footprints;프로그램의 수정된 흔적)을 찾아서 검출할 수 있습니다.
*프로그램이 수정된 것을 어떻게 판단할 수 있을까? 
 검출(defection) 프로그램은 단지 프로그램의 모든 명령문(instruction)의 해쉬 합계(hash total)를 산출해서 수정되지 않은 원래 프로그램(original program)에서 제공된 해쉬 합계와 비교합니다. 수정된 프로그램은 합계가 서로 다르게 됩니다. 물론 이러한 메커니즘도 원본의 해쉬 합계를 수정함으로써 좌절시킬 수 있습니다. 그러나 이것 역시 시스템 내부에 대한 더 많은 이해를 필요로 합니다.

제거 프로그램
*여러 종류의 제거 프로그램(sweeper program)이 바이러스의 특정한 증상을 찾아내고 제거하는데 도움을 줍니다.
*일단 시스템이 무엇을 찾아내야 하는지를 알게 된다면 그 바이러스를 찾아내는 것은 일반적으로 쉬운 일입니다.
*불행히도 현존하는 수많은 바이러스의 증상과 새로운 증상의 급격한 발전 때문에, 제거 프로그램은 흔히 바이러스의 발전에 뒤쳐져서 효과가 없게 됩니다.

 

바이러스의 심각성
*독자는 바이러스 문제의 심각성과 왜 바이러스가 진보해 감에 따라 악화되어 가는지(특히 개방형 시스템(open system)의 추세와 함께)에 대해서 깨달아야 합니다.
*매우 정교한 바이러스 억제 메커니즘에 액세스할 수 없는 개인들이 어떻게 그들의 시스템을 보호할 수 있을까?

 

안전한 기법들
*사용자는 신뢰할 수 있는 소프트웨어 보급선을 확립해야 합니다.
 이는 대개 보증할 수 있는 공급자에 의해서 원본(original package)으로서 직접 공급되어진 것입니다.
*소프트웨어 개발자에게 프로그램이 명세서에 따라 원하는 기능이 수행되는지를 보증하도록 하는 것과 더불어 프로그램이 바이러스 없음(virus   free)을 책임지게 하는 중요한 짐을 안겨 줍니다.
*법적 소송에 대한 잠재성이 너무나 중대하므로 대부분 소프트웨어 공급자는 바이러스 없음을 보장하는 프로시쥬어(virus-free certification procedure)의 개발과 구현에 많은 자원을 들입니다.
*소프트웨어의 복사본을 빌리거나 전자 사서함으로부터 얻은 공용 프로그램을 사용한 사용자는 위험을 불러들이고 있는 것이다. 몇 가지 감염의 증거가 될 수 있는 표시에는 과다한 디스크 액세스 활동, 느린 수행시간, 사용 가능한 주기억장치와 디스크 공간의 양의 감소 등이 있습니다.

 

 

 

'정보과학 > 운영체제특론' 카테고리의 다른 글

프로세서 관리 커널 1  (0) 2023.12.13
임베디드 시스템과 리눅스  (0) 2023.12.13
병렬처리  (0) 2023.12.09
네트워크와 분산처리  (1) 2023.12.09
파일관리  (3) 2023.12.05