06 윈도우 보안
디스크 파티션
파티션과 파일 시스템 우리가 윈도우 보안에 대해 학습하면서, 디스크 파티션을 배워야 하는 이유는 무엇일까요?
윈도우 운영체제에서는 디스크 파티션을 통해 시스템과 데이터를 분리할 수 있습니다. 파티션을 나눔으로써 악성 소프트웨어에 감염되는 등 데이터 백업이 필요한 상황에서 가장 안전하게 데이터를 복구할 수 있게 되는데요.
디스크 파티션에 대해 자세히 알아봅시다.디스크 파티션이란 하나의 물리적인 하드 디스크에 논리적으로 분할된 영역을 만드는 것을 말합니다.
굳이 파티션을 나누는 이유를 무엇일까요?예를 들어 하드 디스크에 오류가 발생하였다고 가정합시다.
하드 디스크는 디스크 파티션을 통해 개별 영역으로 나눌 수 있는데, 파티션이 하나인 경우에는 단일 파티션, 파티션이 여러 개로 나뉜 경우를 다중 파티션이라고 합니다.
단일 파티션에서 에러가 발생하면, 해당 하드 디스크 전체에 이상이 발생하므로 전체를 복구해야 하는 문제가 발생합니다. 반면에 화면에 보시는 그림처럼 파티션을 분할하여 사용하는 경우에는 하나의 파티션에서 오류가 발생하였을 때, 해당 파티션만 복구하면 되므로 신속하게 복구 가능하고, 다른 파티션에 저장된 데이터는 안전하게 유지할 수 있습니다.
이러한 디스크 파티션의 장점을 효율성과 안정성이란 측면에서 정리해 봅시다. 먼저, 효율성 측면에서는 저장 공간의 낭비를 방지하고, 손상된 디스크를 복구하는 경우 신속하게 복구할 수 있습니다. 다음 안정성 측면에서는 하드 디스크에 물리적 손상이 발생한 경우, 파티션 정보를 담고 있는 데이터 보존이 가능하다는 점을 들 수 있습니다. 또한, 디스크 파티션은 활용성 측면에서도 장점을 가지는데요. 서로 다른 드라이브로 인식함으로써 운영체제를 두 개 이상 설치할 수 있어 멀티 부팅 사용이 가능하고, 중요 데이터만 별도로 저장 가능합니다.
파티션의 종류
디스크 파티션을 효율적으로 하기 위해서는 파티션의 종류를 알아두어야 할텐데요. 파티션은 주 파티션, 확장 파티션, 논리 파티션이 있습니다.
먼저 주 파티션에 대해 알아볼까요? 주 파티션은 기본 파티션으로 주로 주 파티션에 운영체제를 설치하는 것이 좋습니다. 1개의 디스크 당 4개까지 주 파티션을 분할할 수 있으며, 그 이상 필요할 때에는 확장 파티션을 만들어, 논리 파티션을 두어야 합니다.
다음 확장 파티션은 논리 파티션이라는 추가 파티션으로 나눌 수 있는 특수한 파티션입니다. 4개 이상의 파티션을 사용해야 할 때 하나의 확장 파티션을 설정하여 그 확장 파티션 안에 여러 개의 논리 파티션을 저장할 수 있습니다.
마지막으로 논리 파티션은 확장 파티션에서 살펴본 바와 같이 4개 이상의 파티션을 사용하기 위해 확장 파티션 안에 여러 개로 저장 가능한 파티션입니다. 하나의 디스크에서 논리 파티션의 수는 최대 12개까지 가능하며, 다른 파티션에 비해 나눌 수 있는 파티션의 개수가 많다는 장점이 있습니다.
파일 시스템
보시는 화면은 C 드라이브 속성 창을 열었을 때의 화면입니다. 여기에서 파일 시스템도 시스템 보안에서 중요한 역할을 담당하는데요. 파일 시스템은 운영체제가 파일을 시스템의 디스크 상에 구성하는 방식으로, 운영체제가 파일을 저장하기 위해 파일을 관리하는 체계를 말합니다.
디스크 파티션 상에 파일들을 연속적이고 일정한 규칙으로 작성함으로써, 하드 디스크를 포맷하고, 드라이브를 설정해서 파일을 저장하며, 파일을 저장하는 방식을 결정합니다. 모든 운영체제는 각각의 파일 시스템을 사용하는데, 서로 호환이 되지 않고 독특한 자신들만의 파일 시스템을 만들어 운영하게 됩니다. 우리가 많이 사용하는 윈도우 운영체제의 경우 FAT와 NTFS 파일 시스템을 사용합니다. 다른 운영체제의 파일 시스템은 표를 통해 확인해보시길 바랍니다.
우리가 주로 사용하는 윈도우의 파일 시스템 중 FAT는 File Allocation Table의 약어로, 휴대기기에 장착되는 대부분의 메모리 카드나 컴퓨터 시스템에 널리 사용되는 파일 시스템 구조입니다.
FAT는 파일 내용을 클러스터 단위로 구성하고 이것을 연결 리스트의 형태로 보관하고 있습니다.
디스크에 저장된 파일 정보는 모두 FAT에 존재하기 때문에 이 부분이 손상되면 파일에 대한 정보를 확인하지 못해, 디스크 내에 있는 파일에 접근하지 못하는 문제가 발생합니다.
다음으로, FAT 파일 시스템은 최소한 FAT0과 백업용인 FAT1의 파일 정보를 가지고 있고, 순차적인 검색을 실행합니다.
또한, FAT는 클러스터 개수에 따라 12, 16, 32로 구분되며, 클러스터의 수에 따라서 저장할 수 있는 단일 파일의 크기가 제한됩니다.
윈도우의 파일 시스템 중 NTFS에 대해 알아보겠습니다. NTFS는 New Technology File System의 약어로 윈도우 NT 계열 운영체제의 파일 시스템입니다. NTFS는 FAT와 HPFS를 거치며 기능이 개선되었는데요. 메타데이터를 지원하고, 고급 데이터 구조의 사용을 통해성능이 개선되었으며, 신뢰성이 향상되었습니다.
NTFS의 특징으로는 복구성과 보안성을 들 수 있습니다. 먼저 복구성은 디스크 볼륨을 재구성하여 일관성 있는 상태로 디스크 손상을 복구할 수 있고, 중복 저장 장치를 사용하여 디스크 섹터가 일부 파손된 경우에도 중요한 파일 시스템 데이터의 손상을 방지할 수 있습니다. 또한, 보안을 위해, 윈도우 NT 객체 모델을 적용합니다. 열려진 파일은 파일의 보안 속성을 관장하는 보안 서술자를 가진 파일 객체로 구현하기도 합니다.
이러한 특징들을 바탕으로 NTFS는 파일과 폴더 차원의 보안, 디스크 압축, 디스크 할당, 파일 암호화 등의 기능을 수행합니다. 하나씩 살펴보면, 우선 파일과 폴더에 대한 접근을 제어하여 보안이 가능하고, NTFS 압축 파일로 더 많은 저장 공간을 사용할 수 있으며, 사용자 별 디스크 사용을 통해 공간 제어가 가능해지고, 파일에 대한 암호화가 가능합니다.
NTFS에는 액세스할 수 있는 자격 또는 접근 허가를 지칭하는 퍼미션을 설정할 수 있습니다. 운영체제의 파일, 폴더, 드라이브들의 접근에 대한 제어를 제공하며, 파일 별로 서로 다른 종류의 액세스나 사용자 또는 그룹에 대한 각기 다른 퍼미션을 부여할 수 있습니다. 또한, 제3자가 제공하는 유틸리티의 사용도 방지할 수 있습니다.
NTFS 퍼미션의 종류는 읽기, 쓰기, 읽기 및 실행, 수정, 모든 기능으로 나눠서 살펴볼 수 있습니다.
악성 소프트웨어의 유형
악성 소프트웨어우리의 PC를 위협하는 악성 소프트웨어는 제작자가 의도적으로 사용자에게 피해를 주고자 만든 모든 악의적 목적을 가진 프로그램 및 매크로, 스크립트 등의 컴퓨터 상에서 작동하는 모든 실행 가능한 형태의 소프트웨어를 뜻합니다. 현재 악성코드를 통한 기업의 기밀자료 유출, 개인정보 유출 등의 사건이 발생하면서 일반 사용자도 악성 소프트웨어에 대한 경계를 가지고 백신 프로그램을 설치하고 있습니다.
악성 소프트웨어는 크게 바이러스, 웜, 트로이 목마, 혹스, 악성 자바 코드, 악성 ActiveX로 구분할 수 있습니다.
하나씩 자세히 알아보겠습니다.
바이러스는 사용자 컴퓨터 내에서 사용자 몰래 프로그램이나 실행 가능한 부분을 변형해 자신 또는 자신의 변형을 복사하는 프로그램입니다. 가장 큰 특성은 복제와 감염이지만, 다른 네트워크의 컴퓨터로 스스로 전파되지는 않습니다.
웜은 인터넷 또는 네트워크를 통해서 컴퓨터에서 컴퓨터로 전파되는 악성 프로그램입니다. 윈도우의 취약점 또는 응용 프로그램의 취약점을 이용하거나 이메일이나 공유 폴더, 공유 프로그램을 이용하여 전파됩니다. 바이러스와 달리 스스로 전파되는 특성을 가집니다.
트로이 목마는 바이러스나 웜처럼 컴퓨터에 직접적인 피해를 주지는 않지만, 악의적인 공격자가 컴퓨터에 침투하여 사용자의 컴퓨터를 조종할 수 있는 프로그램입니다. 고의적으로 만들어졌다는 점에서 프로그래머의 실수인 버그와는 다릅니다. 자기 자신을 다른 파일에 복사하지 않는다는 점에서 바이러스와 구별됩니다.
혹스는 인터넷 메신저나 이메일 또는 게시판, 문자 메시지 등에 거짓 정보나 괴담 등을 실어 사용자를 속이는 가짜 컴퓨터 바이러스입니다. 우리나라에서는 1997년부터 나타나기 시작해 해마다 등장하고 있으며, 특히 만우절인 4월 1일을 전후한 3월 말에서 4월 초에 주로 등장합니다.
웹 사이트에서 동적인 기능을 구현하기 위해서 자바 스크립트나 자바 애플릿을 많이 사용합니다. 이런 자바 스크립트나 자바 애플릿을 이용하여 악의적인 기능을 하는 코드를 악성 자바 코드라고 합니다.
ActiveX는 마이크로소프트에서 만든 객체지향 프로그래밍을 위한 도구 모음이며, ActiveX 컨트롤은 이 ActiveX를 이용하여 객체지향 프로그래밍을 하기 위한 컴포넌트입니다. 악성 ActiveX는 이를 이용하여 악의적인 기능을 수행하게 하는 코드입니다.
악성 소프트웨어로 인한 피해
악성 소프트웨어로 인해 어떠한 피해를 입을 수 있는지, 대표적인 사건을 예로 들어 살펴봅시다. 2011년 4월 발생한 N은행 DDos 사건은 해커가 N은행 금융 전산망 시스템에 침입하여 악성코드를 유포하고, 이 시스템을 사용하는 N은행 PC 270여 대가 이 악성코드에 감염되어 전산장애를 일으켰던 사건입니다. 당시 활용된 악성코드는 파일 시스템의 중요 정보를 파괴하여, 재부팅 시 컴퓨터가 정상적으로 동작하지 않도록 하는 피해를 입혔습니다.
이외에도 악성 소프트웨어로 인한 피해는 다양하게 발생하는데, 시스템 관련 피해, 네트워크 관련 피해, 하드 디스크 관련 피해, 파일 관련 피해, 기타 특이 증상으로 구분하여 살펴보겠습니다.
먼저 시스템 관련 피해입니다. 악성 소프트웨어는 시스템에서 레지스터리 키 값을 변경하여 시스템의 정보를 변경하기도 하고, 시스템의 파일 시스템을 파괴하기도 합니다. 또한 CMOS 내용을 변경하여 부팅 시, 에러를 발생시키거나 파괴하고, 시스템의 기본 메모리 용량을 감소시키기도 합니다. 그리고, 시스템 속도를 느려지게 만들거나, 레지스터리 값을 변경해 시스템을 부팅할 때 특정 프로그램을 자동으로 실행시키기도 하며 특정 프로세스를 강제 종료하거나 시스템을 임의로 재부팅시키기도 합니다.
악성 소프트웨어는 네트워크와 관련해서 사용자의 정보를 네트워크를 통해서 공격자 컴퓨터로 전송하거나 감염된 컴퓨터가 속한 네트워크 속도를 저하시키며, 추가적인 공격을 위한 특정 백도어 포트를 오픈하기도 합니다.
악성 소프트웨어는 하드 디스크와 관련해서 하드 디스크를 포맷하거나 하드 디스크의 특정 부분을 파괴하기도 합니다. 악성 소프트웨어는 파일과 관련하여 백도어 파일과 같은 특정 파일을 생성하고, 특정 파일이나 디렉토리를 삭제하거나, 바이러스가 특정 파일을 감염시키는 피해를 일으킵니다. 또한 바이러스가 특정 파일에 겹쳐 쓰기 형태로 감염되면 파일을 손상시키기도 합니다.
기타 특이 증상으로는 화면에 특정 내용을 출력하거나, 음악이나 특정 소리를 재생시키는 것 등이 있습니다.
악성 코드와 바이러스
악성 소프트웨어 중 많은 비중을 차지하는 것이 악성코드와 바이러스입니다. 하나씩 자세히 알아보겠습니다.
먼저 악성코드란 사용자의 동의 없이 설치되어 개인 정보의 유출이나 강제 광고 팝업 등 PC 사용자의 불편을 야기시키는 유해 소프트웨어를 말합니다. 주요 특징으로는 실행할 수 있는 별도의 프로그램으로 동작하며, 자가 복제하지 않고, 목적에 맞게 선별적으로 공격합니다. 또한, 증상을 확실히 알기 어려운데, 일부 악성코드는 합법적인 소프트웨어의 형태를 띄고 있어서 감염 여부를 모르는 경우가 많습니다. 악성코드의 종류에는 바이러스, 웜, 트로이 목마가 있습니다.
이어서 바이러스는 컴퓨터 시스템을 파괴하거나 작업을 지연 또는 방해하는 프로그램의 일종입니다. 그 특징을 살펴보면, 감염 시 원본 프로그램 혹은 데이터 파일에 바이러스 코드를 붙이거나 겹쳐쓰기를 실행합니다. 바이러스는 일종의 명령어의 집합으로써 사용자 몰래 자신을 다른 곳에 복사하는 명령을 가지고 있으며, 이러한 특성으로 시스템 전체를 장악하게 됩니다. 또한, 대상 없이 무차별적으로 공격을 수행하며, 치료가 어려우므로, 감염 정도가 심할 경우, 감염된 PC를 사용할 수 없게 됩니다.
바이러스의 주요 동작에 대해 자세히 알아봅시다.
먼저, 바이러스는 목적하는 대상에 자신의 코드를 추가하여 감염시키고, 바이러스 인식자를 이용하여 중복 감염을 방지합니다.
또한, 바이러스는 감염대상에 따라, 부트 바이러스, 파일 바이러스, 매크로 바이러스로 분류됩니다.
또한, 바이러스는 특정 날짜, 시간, 특정 파일 존재 여부 등 특정 조건에 따라 동작합니다. 예를 들어, 13일의 금요일, 감염 후 20번째의 실행 등의 조건이 있습니다.
마지막으로 바이러스는 의도적인 행위를 가지며, 대표적인 바이러스로 브레인, 예루살렘, 비엔나 바이러스 등이 있습니다.
바이러스는 어떻게 진화해 왔을까요? 과거에 나왔던 바이러스가 복합적으로 융합된 형태로 점점 바뀌고 있는데요.구체적인 바이러스 진화의 흐름 및 각 세대별 바이러스의 특징에 대해 살펴봅시다.먼저 1세대 원시형 바이러스입니다.
이 바이러스는 컴퓨터 바이러스가 등장하기 시작할 때 등장한 가장 원시적인 형태의 바이러스입니다. 단순히 자기 복제와 데이터 파괴 기능만을 가지고 있던 바이러스로 부트 바이러스와 파일 바이러스가 있습니다. 부트 바이러스는 플로피 디스크나 하드 디스크의 부트 섹터에 감염되는 바이러스로 컴퓨터가 부팅할 때 자동적으로 동작하게 됩니다. 파일 바이러스는 파일에 직접 감염시키는 바이러스입니다. 파일 바이러스는 감염 위치에 따라서 프로그램 위에 덮어쓰기하는 덮어쓰기형, 바이러스가 프로그램 앞에 위치하는 경우, 바이러스가 프로그램 뒤에 위치하는 경우로 나누어집니다. 파일 바이러스는 부트 바이러스와는 달리 하드 디스크가 PC에서 일반화되면서 등장했습니다. 일반적으로 COM이나 EXE와 같은 실행 파일과 오버 레이 파일, 디바이스 드라이버 등에 감염됩니다. 전체 바이러스의 80% 정도가 파일 바이러스에 해당하며, 바이러스에 감염된 파일을 실행할 경우 바이러스 코드가 실행됩니다.
2세대 바이러스는 암호형 바이러스로 초기 원시형 바이러스가 백신 진단에 쉽게 발견되는 것을 막기 위해 자체적으로 코드를 암호화하는 방법을 사용했습니다. 이로 인해 백신 프로그램이 바이러스를 진단하기 힘들게 만들기 시작하는데, 기존의 바이러스 코드를 암호화하고, 복호화 알고리즘과 복호화키를 암호화된 바이러스와 같이 유포되는 형태입니다. 바이러스가 동작하기 위해 메모리에 로드되는 과정에서 암호화가 해제되고, 백신 제작자들은 이를 이용해 암호화하는 방법을 거꾸로 분석하여 해당 바이러스의 백신을 제작하였습니다.
3세대는 은폐형 바이러스입니다. 확산되기 전에 바이러스가 활동을 시작하여 백신에 발견이 되면 전파되기 힘들다는 단점을 해결하기 위해 나온 바이러스로, 일정 기간 동안 잠복기를 가지도록 바이러스가 작성되었습니다. 최근에는 잠복기뿐만 아니라 난독화 기법을 적용하여 백신에 발견되는 시기를 늦추고 있습니다.
4세대는 다형성 바이러스로 백신 프로그램이 특정 식별자를 이용하여 바이러스를 진단하는 기능을 우회하기 위해 만들어진 바이러스로, 코드 조합을 다양하게 할 수 있는 조합 프로그램을 암호형 바이러스에 덧붙여 감염시킵니다. 실행될 때마다 바이러스 코드 자체를 변경시켜 백신이 식별자로 하여금 바이러스를 구분하기 어렵게 하였습니다.
5세대는 매크로 바이러스입니다. 워드나 엑셀 파일에서 작성할 수 있는 매크로 기능을 악용한 형태로 매크로 바이러스가 포함된 파일을 열 때 바이러스가 동작하게 됩니다. 돋보기 버튼을 클릭하여 응용프로그램에서 매크로 기능을 확대하여 살펴보세요.
매크로 바이러스의 특징은 WordBasic이나 Lotus Ami Pro처럼 매크로 언어를 사용하는 응용에서 발견되며, 문서 파일을 복사할 때, 바이러스가 이동됩니다. 또한, 바이러스 코드의 수정 및 생성이 용이하고, 항 바이러스 시스템 구축이 어렵습니다. 다음과 같은 상황일 때는 매크로 바이러스일 수 있습니다. 문서가 정상적으로 열리지 않거나 암호가 설정되어 있으며, 문서 내용에 깨진 글자나 이상한 문구가 포함되어 있는 경우, 또한 도구 메뉴 중 매크로 메뉴가 실행할 수 없게 잠겨 있고, 엑셀이나 워드 작업 중 VB 편집기의 디버그 모드가 실행된다면 매크로 바이러스를 의심해 보세요!
차세대 바이러스는 이전 세대의 바이러스의 단점을 보완한 형태로 매크로 바이러스에서 나타난 스크립트 형태의 바이러스가 더욱 활성화된 것입니다. 네트워크 메일을 통해 바이러스가 전파되며, 단순히 데이터를 파괴하거나 다른 파일을 감염시키는 형태에서 벗어나 사용자의 정보를 빼내거나 시스템을 장악하기 위한 백도어 기능을 가진 웜의 형태로 진화하고 있습니다.
4. 백신의 감지 기법
악성코드를 치료하기 위해서는 먼저 백신을 통해 악성코드를 감지해야 합니다. 악성코드를 감지하는 기법으로는 크게 사전 데이터베이스를 참조하는 방법과 의심스런 동작을 탐지하는 방법이 있습니다.
하나씩 살펴보겠습니다. 먼저 사전 데이터베이스 참조 기법은 백신 제작자가 정의해 놓은 바이러스 데이터베이스를 참조하는 방식으로 검색 파일의 코드 일부가 데이터베이스의 바이러스와 일치하는 경우 파일 안의 바이러스의 제거를 시도하거나 파일의 실행을 차단 또는, 감염된 파일을 삭제하는 등의 동작을 수행하게 됩니다.
다음 의심스런 동작을 탐지하는 기법은 시스템 상에 동작하는 모든 프로그램의 동작을 감시하는 방법으로, 프로그램이 실행 프로그램에 데이터를 기록하려고 할 때, 사용자에게 확인을 요청합니다. 새로운 형태의 바이러스에 대한 신속한 대처가 가능하지만, 오진이 발생할 가능성이 높습니다.
'정보 보호' 카테고리의 다른 글
08 스니핑과 스푸핑 (2) | 2016.01.26 |
---|---|
07 서비스 거부 공격 (1) | 2016.01.26 |
05 로그와 취약점 관리 (0) | 2016.01.26 |
04 접근 제어와 권한 관리 (1) | 2016.01.26 |
03 계정과 패스워드, 세션 관리 (0) | 2016.01.26 |