1/09/2007

[info] 윈도우즈 보안 (정보보안백문백답)

1. 윈도우즈 업데이트와 자동 업데이트의 차이점은 무엇인가?

- 윈도우즈 업데이트는 윈도우즈를 최신 상태로 유지할 수 있도록 도와주는 기능이다. 마이크로소프트사에서 제공하는 중요 업데이트는 보안 업데이트 이외에도 운영체제 개선에 필요한 사항 즉, 컴퓨터의 성능이나 기능 향상 등이 포함된다.

- 윈도우즈 업데이트는 먼저 사용자 자신의 하드웨어 환경에서 어떠한 소프트웨어가 설치되어 있는지 컴퓨터를 검사한 뒤, 해당되는 업데이트만을 설치한다. 윈도우즈 업데이트 기능을 사용하려면 다음과 같은 과정으로 진행한다.

a. [시작]->[모든 프로그램]->[윈도우즈 업데이트(Windows Update)]

- 이와 같은 업데이트는 사용자가 직접 수행하여야 하는 불편함이 있어 자동 업데이트 개념이 도입되었다. 자동 업데이트를 사용하면 컴퓨터가 부팅돈 이후, 윈도우즈가 스스로 최신 보안 패치 또는 업데이트가 발표 되었는지 인터넷을 통해 확인하고, 자동으로 내려받아 설치하게 도와준다. 이때, 업데이트를 우선 내려받고 설치하기 전에 사용자에게 알릴 것인지, 아니면 내려받기 전과 설치하기 전에 모두 사용자에게 알릴 것인지 선택 할 수 있다.


2. 윈도우즈 보안패치와 서비스 팩의 차이점은 무엇인가?

- 윈도우즈 보안패치는 윈도우즈 운영체제의 보안 취약점이 발견될 때마다 마이크로소프트사에서 제작,배포한다. 보안 취약점이 발표되면, 공격자들은 즉각적으로 이를 이용하여 악성코드나 익스플로잇을 제작한다. 즉, 보안패치의 설치가 늦으면 늦을수록 상대적으로 보안에 취약해지고 공격당할 확률이 급격히 증가한다. 따라서 모든 윈도우즈 사용자는 보안패치가 설치되어 있는지 주기적으로 확인하고 반드시 설치해야 한다. 특히, 국가사이버안전센터 등에서 사이버위협에 대한 경보발령과 함께 보안패치의 설치를 당부하면 즉각적으로 조치를 취해야 공격에 노출되지 않는다.

- 반면, 서비스 팩은 이미 발매된 소프트웨어에 존재하는 문제점(보안에 관계없을 수도 있음)을 개선하거나 기능을 강화하기 위해 만들어진 것이다. 즉, 서비스 팩은 별도로 주문하거나 온라인상에서 내려받을 수 있는 일종의 기능 수정판이라고 할 수 있다. 물론, 발표된 보안패치도 나중에는 서비스 팩에 포함되기 때문에, 새로 발표된 서비스 팩을 이용하여 윈도우즈를 업데이트하면 이전에 발표된 모든 보안패치들도 동시에 적용된다.

- 보안패치는 일반적으로 발견된 하나의 보안 취약점만을 해결하고 있기 때문에, 지속적으로 관심을 가지고 보안패치가 발표될 때마다 반드시 설치해야 된다. 서비스 팩 역시 그 동안의 모든 보안 취약점을 해결할 뿐만 아니라 윈도우즈의 기능을 보다 강화시켜주기 때문에, 서비스 팩도 배포되는 즉시 설치하는 것이 좋다.


3. 윈도우즈 보안패치는 어디에서 내려받나?

- 윈도우즈 보안패치는 윈도우즈 업데이트, 자동 업데이트 또는, 보안패치를 제공하는 웹사이트(http://www.microsoft.com/korea/security)에서 각 보안패치를 내려받아 개별적으로 설치할 수도 있다.

- 보안패치는 전부 설치하는 것이 좋으며, 이전까지 한번도 보안패치를 하지 않았거나 오랫동안 보안패치를 하지 않았을 경우에는 최신 서비스 팩을 먼저 설치한 다음, 서비스 팩에 누락된 보안패치만을 별도로 설치하는 것이 좋다.


4. 백신이 이미 설치되어 있는데 윈도우즈 보안 업데이트도 해야 되나?

- 백신 프로그램은 컴퓨터 바이러스 감염 여부를 진단하고 감염된 파일을 치료하는 프로그램으로써, 윈도우즈 시스템의 근본적인 문제점은 해결하지 못한다.

- 반면, 윈도우즈 보안 업데이트란 윈도우즈 운영체제상의 보안 취약점이 발견되었을 경우, 이를 제거하기 위한 패치를 배포,설치함으로써 기존 운영체제를 수정하는 것이다.

- 해커나 웜,바이러스 제작자는 항상 윈도우즈 운영체제의 취약점을 발견하고 이를 악용하여 시스템에 침투 또는 파괴하려 한다. 따라서 보안 업데이트는 반드시 해야 된다.

- 특히, 최근에는 윈도우즈 운영체제의 취약점을 악용한 웜,바이러스들이 급증하고 있어 많은 사고로 이어지고 있기 때문에, 백신 프로그램을 사용한다 하더라도 반드시 보안 업데이트를 해서 웜,바이러스가 침투할 수 있는 경로를 사전에 예방하는 것이 좋다.


5. 윈도우즈 XP에서 공유폴더는 어떻게 찾아 제거하나?

- 윈도우즈 XP는 네트워크 컴퓨터 환경 관리를 목적으로 드라이브를 공유하는데, 이 공유폴더는 숨겨져 있으며 다음과 같은 방법으로 찾을 수 있다.

a. [시작]->[실행]-> 'cmd' 입력 -> DOS 창 생성
b. C:\>net share

- 예를 들어, 앞에서 설명한 방법으로 공유폴더를 찾아봤더니 C$, admin$, ipc$의 3개 폴더가 공유된 것으로 나타났을 때, 다음과 같은 명령을 실행하면 공유를 제거할 수 있다. (C$는 C 드라이브 공유, admin$와 ipc$는 관리 공유로 바이러스에 취약할 수 있으므로 제거하는 것이 좋다)

a. C:\>net share c$ /delete
b. C:\>net share admin$ /delete
c. C:\>net share ipc$ /delete

- 만약, 엑세스 거부로 제거되지 않는 경우 다음과 같이 registry를 편집하여 관리공유에 대한 외부 접근을 제한한다.

a. [시작]->[실행]-> 'regedit' 입력
* HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa
* Value Name : RestrictAnonymous
* Data Type : Reg_DWORD
* Value : 1
** 기본값으로 설정된 0을 1로 변경 : 공유폴더에 대한 접근을 제한한다.


6. NTFS를 사용하면 좀 더 안전하게 파일을 보호할 수 있나?

- 윈도우즈 2000 또는 윈도우즈 XP를 초기설치시 하드 디스크의 파일 시스템으로 NTFS, FAT, FAT32 중 하나를 선택할 수 있다. 일반적으로 NTFS 파일 시스템은 FAT이나 FAT32에 비하여 매우 안정적이며, 파일을 보호하기에도 적합하다. 특히, NTFS의 사용을 권장하는 이유는 다음과 같다.

* 도메인 기반의 보안 기능을 제공하는 액티브 디렉토리(Active Directory)를 제공하고 있다. 따라서, 윈도우즈 서버 제품군의 보안을 향상시키기 위해서는 NTFS를 사용하여야 한다.

* 폴더(하위 폴더 포함)마다 접근가능한 사용자를 별도로 또는 그룹별로 지정할 수 있다.

* FAT32는 관리자 계정, 제한된 계정 또는 표준 계정 등 계정 유형에 관계없이 모든 사용자가 하드 디스크의 모든 파일에 접근할 수 있다. 반면, NTFS에서는 제한된 권한의 계정을 사용할 수 있도록 지원한다. 이는 사용자가 접근할 수 있는 폴더를 제한할 수 있으며 폴더의 내용에 대한 임의 조작도 제한할 수 있다는 의미이다.

* 예전에는 제공되지 않던 암호화 파일 시스템이 도입되어, 중요한 시스템 파일들을 자동으로 암호화하여 저장하기 때문에 임의로 해당 내용을 변경하지 못하도록 되어 있다.

- NTFS는 그 밖에도 트랜잭션 로깅과 복구 기술을 사용하여 디스크의 일관성과 안정성을 향상시킨다. 만약 파일 시스템에 이상이 발생하면 이상에 대한 검사정보와 그동안 기록된 로그를 사용하여 파일 시스템을 복구하기도 한다.


7. 윈도우즈 XP 서비스 팩 2를 꼭 설치해야 하나?

- 윈도우즈 XP 사용자라고 해서 서비스 팩 2를 반드시 설치해야 하는 것은 아니지만 보안 향상 측면에서는 권장한다. 기존의 서비스 팩은 반드시 설치해야 하는 기능 수정판이었던 반면, 서비스 팩2에는 많은 보안 강화 요소들을 첨가하였기 때문에 기존의 서비스 팩들과는 조금 다른 측면을 가지고 있다. 서비스 팩 2는 다음과 같은 장점들이 있다.

* 전자우편의 첨부 파일 중 안전하지 않은 것을 사용자에게 알려주는 전자우편 보호기능이 있다.

* 웹을 검색하는 동안 개인 정보가 유출되지 않도록 보호하는 기능이 있다.

* 인터넷 익스플로러에 다운로드 모니터링 기능이 있어 안전하지 않은 파일을 내려받을 경우 알림 표시줄을 통해 경고한다.

* 웹을 검색하는 동안 팝업 창이 임의로 생성되지 않도록 차단한다.

* 강력한 기능을 보유한 방화벽이 내장되어 있다.

* 윈도우즈 보안센터 기능이 있어 보안 상태의 파악이나 보안 설정 관리를 중앙집중적으로 총괄할 수 있다.

* 자동 업데이트 기능을 향상시켜 더욱 편리하게 윈도우즈 업데이트를 설치할 수 있다.

* 아웃룩 익스프레스에 스팸메일 차단 기능이 추가됐다.

- 이상과 같이 서비스 팩2에는 다양한 보안 향상 기능이 추가되어 있어 설치하여 사용하면 보안 수준을 한층 높일 수 있다.


8. 개인 컴퓨터에서 불필요한 서비스는 어떤 것들이 있나?

- 윈도우즈를 평범하게 사용함에 있어 필요하지 않은 서비스들도 존재한다. 이러한 서비스를 중지시키면 시스템 속도를 향상시킬 수 있으며 자원을 보다 효율적으로 사용할 수 있다. 그러나 서비스를 중지시키기 위해서는 사용 환경과 목적에 따라 신중한 고려가 필요하다.


- 중지시키는 것이 효과적인 서비스

* Alerter
* Automatic Updates
* Computer Browser
* Cryptographic Services
* Distributed Link Tracking Client
* DNS Client
* Error Reporting Service
* Help and Support
* Messenger
* NetMeeting Remote Desktop Sharing
* Portable Media Serial Number Service
* Remote Registry
* Task Scheduler
* Wireless Zero Configuration


- 중지를 고려할 수 있는 서비스

* Application Layer Gateway Service
* Background Intelligent Transfer Service
* COM+ System Application
* DHCP Client
* Distributed Link Tracking Client
* Fast User Switching Compatibility
* Fax Service
* FTP Publishing Service
* IMAPI CD-Burning COM Service
* Indexing Service
* Net Logon
* NLA(Network Location Awareness)
* Print Spooler
* Protected Storage


- 중지시킬 때 신중을 기해야 하는 서비스

* Event Log, Human Interface Device Access, IIS Admin
* Internet Connection Firewall and Internet Connection Sharing
* Logical Disk Manager, Plug and Play


9. 불필요한 서비스는 어떻게 중지시킬 수 있나?

- 서비스를 중지시키기로 결정하였다면 다음과 같은 절차에 따라 중지시킬 수 있다.

a. [시작]->[제어판(클래식보기로 전환)]->[관리도구]->[서비스]-> '서비스 관리 콘솔' 출현
b. 마우스 오른쪽 버튼으로 중지시킬 서비스를 클릭
c. '중지' 선택

- 서비스를 다시 시작해야 할 경우에는 위의 c번에서 목적에 따라 '시작', '일시 중지', '계속', '다시 시작' 중 하나를 선택한다.


10. 프로그램이나 서비스별로 계정 관리는 어떻게 하나?

- 웜,바이러스 방지를 위해서는 사용자가 관리자 계정이 아닌 사용자 계정으로 로그인하는 것이 좋다. 윈도우즈 시스템을 안전하게 관리하기 위해서는 관리자 계정을 남용하지 말아야 한다. 대부분의 웜,바이러스는 관리자 계정일 경우에만 컴퓨터에 설치되기 때문에, 반드시 필요한 경우에만 관리자 계정으로 프로그램이나 서비스를 실행시키는 것이 안전하다. 프로그램에 대한 실행 계정은 다음과 같은 방법으로 지정할 수 있다.

a. 실행시키고자 하는 프로그램을 마우스 오른쪽 버튼으로 클릭
b. [다음 계정으로 실행]->[다음 사용자]->사용자 선택->패스워드 입력

- 서비스에 대한 실행 계정은 다음과 같은 방법으로 지정할 수 있다.

a. [시작]->[설정]->[제어판(클래식보기로 전환)]->[관리도구]->[서비스]
b. 서비스를 마우스 오른쪽 버튼으로 클릭 -> [속성]
c. [로그인]->[계정지정]-> 패스워드 입력


11. 윈도우즈를 바로 이전 상태로 복원할 수 있나?

- 윈도우즈에서는 시스템의 설정을 이전상태로 복원할 수 있다. 이 기능을 이용하면 저장된 문서, 전자우편, 웹에서 열어본 페이지 목록, 즐겨찾기 목록 등 최근에 작업한 내용을 손상시키지 않고 이전 지점으로 되돌려 준다. 시스템을 복원하는 방법은 다음과 같다.

a. [시작]->[모든 프로그램]->[보조 프로그램]->[시스템 도구]->[시스템 복원]
b. 재부팅 -> '복원 완료' 창 생성

[출처 : 국가보안기술연구소 http://www.nsri.re.kr/ ]

1/08/2007

[info] 인터넷 보안 (정보보안백문백답)

1. 공인인증서는 무엇인가?

- 공인인증서란 온라인 금융거래 시 거래자의 신원확인을 위해 사용되는 일종의 전자서명으로 일상생활에서 사용되는 인감도장과 동일한 역활을 한다. 공인인증서에는 데이터의 신뢰성을 보장하기 위한 암호화 기술이 적용되어 위,변조가 어렵고, 데이터가 임의로 변형되지 않도록 방지하는 역할도 한다.

- 지금까지의 온라인 금융거래에서는 신분확인을 위해 사용자 ID와 비밀번호만을 사용하였기 때문에 금융사고가 발생할 위험이 컸다. 이러한 단점을 보완하기 위해 인터넷을 이용한 모든 온라인 금융거래는 공인인증서를 사용하도록 의무화 하였다.

- 공인인증서는 거래은행 등 해당기관을 방문하여 신분확인 절차를 거친 후 인터넷 홈페이지에 있는 공인인증센터에 접속하여 개인정보와 비밀번호를 입력한 뒤 약관에 동의하면 곧바로 발급받을 수 있다. 은행이외에, 증권사, 우체국 혹은 공인인증기관 중 어느 한 곳에서든지 한 번만 발급받으면 된다. 현재 국가가 인정하는 공인인증기관은 금융결제원, 한국정보인증, 코스콤(한국증권전산), 한국전자인증, 한국전산원, 한국무역정보통신 등 6곳이다.

- 모든 개인은 하나의 공인인증서만 사용할 수 있기 때문에 여러 장소에서 거래를 하려면 디스켓이나 USB 저장장치 등의 저장매체에 공인인증서를 저장하여 사용해야 한다. 또한 공인인증서를 사용하기 위해서는 발급때 입력하는 전자서명 비밀번호를 입력하여야 하기 때문에 반드시 기억하고 있어야 한다.

- 아직까지는 공인인증서가 은행의 인터넷 뱅킹 서비스에 주로 사용되고 있고, 사이버증권거래, 카드결제, 전자세무처리, 전자민원과 같은 분야로 확대되고 있지만, 향후에는 인터넷을 매개로 하는 다양한 분야에서 개인식별 수단으로 그 적용범위가 확대될 것으로 예상된다.


2. 인터넷에서 사용되는 쿠키란 무엇인가?

- 쿠키란 사용자가 어떤 웹 사이트를 방문하였을 때 그 사이트부터 내려 받아 저장해 놓는 조그만 메시지로, 나중에 사용자가 다시 그 사이트에 방문하면 브라우저가 자동으로 정보를 전송하게 하여, 신원을 확인하거나, 방문자의 선호도를 파악하거나, 방문자의 행동을 추적하는데 사용된다. 따라서 웹 서버는 쿠키를 사용하여 사용자에게 맞춤형 서비스를 할 수 있다. 그러나 다음과 같은 문제점이 있다.

* 특정 사이트에 접근 불가 : 쿠키가 손상되었을 경우 어떤 사이트에서는 쿠키 값을 확인하지 못해 접근을 허용하지 않게 된다. 이 경우 그 사이트의 쿠키 값을 삭제하면 해결된다. 하지만, 그 사이트에 다시 가입해야 하는 번거로움이 발생할 수 있다.

* 쿠키 값 유출 : 쿠키에는 사용자의 아이디, 패스워드 등의 개인정보가 저장되기 때문에 쿠키 데이터가 외부로 유출되지 않도록 주의해야 된다. 특히 여러명이 함께 사용하는 컴퓨터에서 비밀번호 등이 쿠키에 저장되지 않도록 해야 한다.

- 최근에는 비밀번호 등을 쿠키에 저장하지 않는 추세이긴 하지만, 만약을 대비해서 다음과 같은 절차를 거쳐 직접 쿠키를 삭제할 수 있다.

* 인터넷 익스플로러의 [도구]->[인터넷 옵션]->[임시 인터넷 파일]->[쿠키 삭제]

* 이 방법은 모든 쿠키를 삭제한다. 특정 쿠키만을 삭제하기 위해서는 쿠키가 저장되어 있는 'C:\Documents and Settings\사용자 이름\Cookies\' 폴더에서 특정 쿠키만을 삭제할 수도 있다.


3. 웹브라우저에서 ID, 비밀번호 자동저장 기능 해제는 어떻게 하나?

- 인터넷 익스플로러 사용시 ID와 비밀번호를 저장하여 사용할 경우 쿠키를 통해 ID와 비밀번호가 유출될 수 있으므로 자동저장 기능을 해제하는 것이 좋다. 절자는 다음과 같다.

a. 인터넷 익스플로러의 [도구]->[인터넷 옵션]->[내용] 탭 선택
b. 개인정보의 [자동완성] 버튼 클릭
c. "폼에 사용할 사용자 이름과 암호"부분의 체크표시를 제거
d. [확인] 버튼 클릭


4. 인터넷 보안접속이란 무엇인가?

- 인터넷을 사용할 때 보안접속을 하지 않고 일반적으로 사용자 ID와 비밀번호만 입력하여 사이트에 접속할 경우, 신속히 로그인할 수 있는 이점이 있다. 대부분의 웹 사이트에 로그인할 때 이 방법이 주로 사용된다. 하지만 보안접속은 로그인할 때 사용자 ID와 비밀번호를 암호화시켜 전송함으로써 ID와 비밀번호가 중간에서 가로채어진다고 하더라도 안전하게 보호해준다.

- 인터넷에 접속할 때 보안접속을 제공하는 사이트들이 있는데 이때 보안접속을 선택하면 보다 안전하다. 특히, 신용카드번호와 같이 중요한 정보를 웹에서 사용하여야 할 경우에는 보안접속을 사용하는 것이 필수적이다. 보안접속시에는 사용자 ID와 비밀번호를 암호화하기 위한 시간이 추가적으로 필요하기 때문에 일반접속을 사용할 때보다 조금 더 시간이 걸릴 수 있다.

- 한편, 보안접속에는 SSL(Secure Sockets Layer)이라는 업계 표준 프로토콜이 사용되고 있다. 이 프로토콜은 기존 인터넷 프로토콜이 기밀성을 제공하지 못한다는 문제를 극복하기 위하여 넷스케이프사에서 개발한 것으로, 인터넷을 통해 전송되는 데이터들을 암호화한다.

* SSL : TCP/IP위에서 동작하는 프로토콜(HTTP, FTP, NNTP 등)을 보호하는 프로토콜이다. 서버-클라이언트 환경으로 동작하는 프로토콜이며, 주로 웹 브라우저의 보호를 위해 사용된다. https:// 로 접속하며, 웹 서버와 브라우저 사이에서 교환되는 모든 메시지를 암호화하여 보호한다.


5. 자동으로 내려받은 스크립트 또는 ActiveX는 안전한가?

- 스크립트(Script)는 프로그래밍 언어가 아닌 간단한 언어로 작성된 짧은 프로그램이나 명령어들을 가리킨다. C나 C++와 같은 전통적인 프로그래밍 언어들에 비해 능력이 제한되어 있고 실행속도도 느리지만 프로그램을 쉽고 빠르게 작성할 수 있어서 널리 사용되고 있다.

- ActiveX 컨트롤은 넷스케이프(Netscape)의 plug-in에 대항하여 MS사에서 제정한 규약으로, 웹에서 다양한 멀티미디어를 지원하거나 대화식으로 사용자의 입출력을 지원하는 등의 작업을 간단히 처리할 수 있게 도와준다.

- 스크립트나 ActiveX 컨트롤은 웹 개발시 편리성을 제공하지만, 최근 웹에 은닉되어 있는 악성코드를 자동으로 실행되게 할 수 있어 해킹 등에 악용될 소지가 많다. 이러한 악용 소지를 방지하기 위해서는 다음과 같이 인터넷 익스플로러의 보안 설정을 조정하여야 한다.

a. [도구]->[인터넷 옵션]->[보안]->[사용자 지정 수준]->[보안 설정]
b. [ActiveX 컨트롤 및 플러그인] -> 각 항목에 대하여 값 선택


6. 자동으로 내려받은 ActiveX는 어떻게 제거하나?

- 인터넷을 사용하다보면 멀티미디어 등의 서비스를 향상시키기 위하여 많은 수의 ActiveX 컨트롤이 설치되지만 원치 않는 것들이 설치될 수도 있다. 이 경우 다음과 같이 인터넷 익스플로러 도구 메뉴에서 제거 할 수 있다.

a. [도구]->[인터넷 옵션]->[임시 인터넷 파일]->[설정]->[개체 보기]
b. 마우스 오른쪽 버튼으로 삭제할 ActiveX 컨트롤 클릭 -> [제거] 선택
c. [주의] 시스템에서 삭제되므로 신중히 선택해야 한다.

* 필요시 해당 사이트에서 다시 다운로드 받을 수 있다.
* 사용 동의하지 않은 ActiveX는 삭제해야 한다.


7. 인터넷 익스플로러에서 보안 설정은 어떻게 하나?

- 사용자는 익스플로러의 보안 옵션을 이용하여 보안 설정을 변경할 수 있는데 다음과 같은 두 가지 방법이 있다.

* 기본 설정값을 이용
a. [도구]->[인터넷 옵션]->[보안]->[이 영역에 적용할 보안수준]->[기본수준]
b. 보안수준 스크롤바를 이동하여 적절한 보안 수준을 선택

* 세부적인 설정값을 직접 선택
a. [도구]->[인터넷 옵션]->[보안]->[사용자 지정 수준]->[보안 설정]
b. 각 항목에 대하여 직접 값을 선택


8. 안전한 온라인 쇼핑을 위한 고려사항에는 어떤 것이 있나?

- 인터넷을 통한 온라인 쇼핑에서는 특히 개인정보에 대한 주의가 필요하며, 다음과 같은 사항들을 항상 고려하여야 한다.

* 웹 서버 인증서가 설치된 사이트인지 확인한다. 브라우저 화면 우측하단의 작접 표시줄에 자물쇠 모양의 아이콘이 보이는 곳이면 일단 안전하다고 판단할 수 있다. 이 자물쇠를 클릭하면 인증서 제조사와 규격 등이 표시되는데, 공신력있는 회사가 만든 128Bit 인증서를 사용하고 있다면 안심해도 좋다.

* 사이트에서 실명확인이나 배송지 확인 등에 필요한 정보외에 불필요하게 많은 개인정보를 요구하면 일단 의심할 필요가 있다.

* 인증마크를 획득한 온라인 쇼핑몰이라면 안심하고 거래를 해도 괜찮다. 국내에서는 지난 97년부터 사이트 인증제도를 도입, 한국정보통신산업협회와 한국전자거래진흥원에서 인증마크를 발급하고 있다.
** 인증마크는 정보보호마크인증위원회 홈페이지(http://www.trustmark.or.kr/)에 방문하면 확인 가능하다.

* 비밀번호는 안전도가 낮은 보안장치이기 때문에 3-4개월에 한번씩은 변경하는 것이 좋다.

* 온라인 거래시 소비자와 온라인업체 모두가 전자인증이나 전자서명이 되어있는 전자우편을 사용하여 거래정보 등을 교환하는 것이 좋다.

* 온라인 거래 시간들을 기록해 두면, 나중에 분쟁이 발생하더라도 증거 또는 참고자료로 활용될 수 있다.

* 만일에 대비, 온라인 거래 체결 후 전자우편으로 제공되는 거래금액, 전자영수증, 배송날짜 등을 보관해두는 것이 좋다.

* 신용카드는 분실, 도용 등으로 인한 사고에 대해 구제제도가 있어 만일의 경우 피해보상을 받을 수도 있기 때문에 현금구매보다 훨씬 안전하다.


9. 본인도 모르는 사이트에 가입되어 있다. 어떻게 해야 하나?

- 본인이 분명히 가입하지 않았다면 누군가가 주민등록번호 생성기 등을 이용하였거나 주민등록번호를 도용하여 가입한 경우일 것이다. 이 경우, 해당 사이트의 운영자에게 연락을 취하여 이미 가입된 주민등록번호가 본인의 것임을 확인시키고, 적절한 신원확인 절차를 거쳐 도용된 개인정보의 삭제 및 정정을 요청해야 한다.

- 특히 무단 가입된 사이트가 유료 사이트이거나 또는 주민등록번호 도용으로 재산상 피해를 입었다면 우선 한국정보보호진흥원 개인정보분쟁조정위원회(http://www.kopico.or.kr/, 02-1336)에 도움을 요청하기 바란다.

- 만약 개인정보를 도용한 자를 추적하거나 처벌하기를 원한다면 검, 경 등 관련 수사기관에 신고하여 수사를 의뢰할 수도 있다. 그러나 개인정보의 도용으로 명예훼손 또는 금전적, 경제적 손실 등 구체적인 피해를 입지 않은 경우에는 현실적으로 처벌이 어려운 것이 사실이다. 하지만, 특정인이 반복적으로 본인의 개인정보를 도용하고 있다면 도용인의 검거 및 처벌이 가능하다.


10. P2P를 안전하게 사용하는 방법은 무엇인가?

- P2P(Peer-to-Peer)는 서버와 클라이언트 모델로 동작하는 것과 달리 개인과 개인이 직접 연결되는 서비스를 통칭한다. Napster, Gnutella, 당나귀 등의 응용 프로그램 등을 예로 들 수 있고, 이들은 음악 혹은 영화파일 등을 불법으로 공유하기 위한 목적으로 매우 빠르게 널리 퍼졌다.

- P2P의 특징은 중앙 서버에서 관리하는 것이 아니라, 각 개개인이 독립된 개체로서 역할을 하여, 직접 상대방과 통신할 수 있는 점이다. 이렇게 함으로써 초기의 불법적인 목적 이외에도, 다양한 자원들이 분산 저장되어 가용성 및 확장성이 용이한 장점이 있다.

- 그러나 본질적으로 P2P는 불특정 다수에 의한 공유의 특성을 가지므로 여러 가지 보안문제를 피할 수 없다. 예를 들면, 특정 파일에 대한 위,변조 여부를 확인할 수 있는지, 파일의 제공자가 신뢰할 수 있는지, 자신이 제공한 내용이 올바르게 전송되는지 등의 문제가 있을 수 있다.

- P2P에서 이러한 문제를 근본적으로 해결할 수 있는 방법은 없다. 따라서 가능한 P2P를 사용하지 않는 것이 가장 좋은 해결책이다. 불가피하게 사용을 해야 할 때는 다음을 유의하는 것이 좋다.

* 자신이 공유하는 위치를 지정하고, 그 폴더에는 중요한 자료를 넣지 않도록 해야 한다.

* 자신이 원하는 파일을 다운로드한 후 P2P 프로그램을 종료시키는 것이 좋다.

* 원하는 파일을 검색한 후, 같은 제목의 검색된 파일 중에는 그 크기를 살펴보고 너무 크거나 작은 파일은 바이러스 등의 위장되어 있는 경우가 많으므로 다운로드 하지 않는 것이 좋다.

* 다운로드한 파일은 반드시 바이러스 검색을 거친 후 사용하여야 한다.


[출처 : 국가보안기술연구소 http://www.nsri.re.kr ]

[HP-UX] HP-UX Security Checklist

가. 계정
1. 패스워드 없는 계정, 특별 계정들이 존재하지 않도록 적용하였는가?
- 위험사항 : 패스워드가 없는 계정은 /etc/shadow 파일에서의 두 번째 필드, 즉 암호화된 패스워드가 기록되어 있어야 필드가 비워져 있는 계정이다. 이런 계정은 패스워드 없이 바로 시스템에 접근이 되므로 매우 큰 허점이 된다.
- 권장사항 : 패스워드 없는 계정이 없어야 한다.

2. 서비스 되고 있지 않은ftp, uucp 계정 등을 유지하고 있는가?
- 위험사항 : 사용되지 않는 서비스에 대한 계정을 유지하는 것은 해커의 침입가능성을 높여준다.
- 권장사항 : ftp와 uucp 등의 서비스가 사용되고 있지 않다면, 설치 시 계정이 자동적으로 생성된다 하더라도 삭제해 주는 것을 권장한다.

3. /etc/passwd에서 일반 사용자 중 UID가 0인 사용자는 존재하지 않도록 하였는가?
- 위험사항 : uid가0인 계정은 root와 같은 적대적인 권한을 행사할 수 있으므로 위험 하다.
- 권장사항 : root 이외에 uid가 0인 계정이 존재하지 않아야 한다.

4. /etc/passwd에서 일반 사용자 중 GID가 0인 사용자는 존재하지 않도록 하였는가?
- 위험사항 : gid가 0인 계정은 root와 같은 적대적인 권한을 행사할 수 있으므로 위험하다.
- 권장사항 : root 이외에 gid가 0인 계정이 존재하지 않아야 한다.

5. /etc/passwd에서 보았을 때, default vender accounts인 sys, bin등에 shell을 모두 제거하였는가?
- 위험사항 : Default vender account는 이미 알려져 이는 사용자 계정이므로 를 이용하여 System에 접근할 수 있는 위험이 있다.
- 권장사항 : Default vender account에shell이 부여되지 않아야 한다.

나. 패스워드
6. /etc/passwd파일에서 사용자들의 패스워드항목이 암호화 된 후 /etc/shadow파일로 옮겨졌는가?
- 위험사항 : 패스워드 항목을 pwconv를 사용하여C2레벨로 변환합니다. /etc/shadow 파일에 ‘*’나 ‘!!’ 등과 같은 비정상적인 문자가 포함되어 있지는 않은지 확인하여 이상징후 발견 시 보안담당자의 검토를 거쳐야 한다.
- 권장사항 : 암호화된 패스워드 부분을 root외에는 접근할 수 없는 /etc/shadow 파일로 옮겨서 보안레벨을 올려야 한다. à permission 600 권장

7. 패스워드 Aging기능이 있는가? à /etc/default/passwd
- 위험사항 : 패스워드를 오랜 기간동안 변경하지 않을 경우, 스니핑이나 크랙 등을 통해 해커에게 패스워드가 노출될 가능성이 크다.
- 권장사항 : Password Aging기능을 설정해야 한다. Solaris에서는 admintool을 이용하거나 /etc/shadow 파일을 직접 수정함으로써 이 기능을 사용할 수 있다.

다. 접근 통제
8. /etc/hosts.allow파일내에 꼭 필요한 administrator 또는 manager에게만 접근 권한을 주도록 Listing되어있는가?
- 위험사항 : inetd를 사용하는 시스템에서는 tcp wrapper를 사용하여 네트워크 접근제어를 설정할 수 있다.
- 권장사항 : hosts.allow 파일의 구성은 접근을 허용하는 최소한의 호스트로 이루어져야 한다. 특히 ALL:ALL과 같은 설정은 매우 위험하다.

9. /etc/hosts.deny 파일 내용을 “ALL:ALL”로 구성, 불필요한 모든서버로부터의 접근거부를하는가?
- 위험사항 : inetd를 사용하는 시스템에서는 tcp wrapper를 사용하여 네트워크 접근제어를 설정할 수 있다. 네트워크 접근제어는 허락되지 않은 시스템에서의 접근을 차단해 준다. telnet이나 ftp등을 통한 기본적인 접근을 허용하게 된다.
- 권장사항 : hosts.deny 파일은 ALL:ALL로 구성되어 기본적으로 네트워크를 통한 접근을 제한하는 것이 좋다.

10. #CONSOLE=/dev/console에서 #이 제거되었는가? /etc/default/login
- 위험사항 : root는 solaris에서 막강한 권한을 수행할 수 있음과 동시에 반드시 존재하는 계정이기도 하다. root를console이 아닌 곳에서도 접근할 수 있게 된다면 해커는 패스워드 추측, 패킷 스니핑 등의 방법을 이용해서 시스템에 root권한으로 바로 침입할 수 있게 된다.
- 권장사항 : root의 경우 console에서만 로그인 할 수 있도록 설정해야 한다.

11. #UMASK=022에서 #가 제거되어 UMASK=022로 되었는가?
- 위험사항 : System User가 하나의 파일을 생성할 때 그 파일이 처음에 갖게 되는 허가권은 UMASK 값에 의해 정해진다. 새로 생성되는 파일에 다른 사용자에게 쓰기 권한을 허락하지 않기 위해 UMASK값을 022 혹은 027로 유지해야 한다.
- 권장사항 : UMASK 값이 022 혹은 027로 지정되어 있어야 한다.

라. RPC
12. shell, login, exec를 #으로 remark하였는가?
- 위험사항 : rlogin , rsh는trusted된 서버 사이의 사용자 인증 없이 접속가능 하게 하는 것으로, 운영자 입장에서는 매우 편리한 반면 보안측면으로는 악용가능성이 크다. 따라서, 꼭 필요한 경우는 철저히 접근제어를 하고, 되도록 이면 rlogin, rsh, rexec등의 명령어를 쓰지 않는 것이 바람직하다.
- 권장사항 : rlogin, rsh, rexec 등의 서비스를 사용하지 않는 것이 좋다.

13. sadmin, ttdb, cmsd 등의 보안에 취약한 rpc daemon들을 #으로 remark 하였는가?
- 위험사항 : sadmind, rpc.ttdbserverd, rpc.cmsd, rpc.ruserd, rpc.statd 등의 RPC daemon의 취약점을 이용할 경우, 대부분의 경우 관리자의 권한까지 획득 가능하다.
- 권장사항 : rpc daemon들은 보안상 취약한 부분이 자주 발견되므로 서비스 하지 않는 것이 좋다. /etc/inetd.d 에서 services를 확인…

마. 서비스 최적화
14. echo, discard, daytime, chargen가 #으로 remark되었는가?
- 위험사항 : echo, discard, daytime, chargen은 DoS(서비스 거부 공격)에 악용될 수 있다.
- 권장사항 : DoS공격에 취약한 echo, discard, daytime, chargen은 서비스 하지 않는 것이 좋다.

15. tftp (Trivial FTP)가 #으로 remark되었는가?
- 위험사항 : TFTP에는 user authentication 기능이 포함되어 있지 않아 서비스가 지원되는 경우, 원격에서 쉽게 /etc/passwd와 같은 중요파일을 전송 받는 것이 가능하다. 따라서 dummy Xterminal등의 사용으로 꼭 필요한 경우가 아니라면, #으로 반드시 remark해야 한다.
- 권장사항 : tftp는 서비스 하지 않는 것이 좋다.

16. 불필요한 서비스가 remark되었는가?
- 위험사항 : 사용하지 않는 서비스를 운영하는 것은 그만큼 해커에게 기회를 더 주는 것밖에 안된다.
- 권장사항 : 사용하지 않는 서비스 또는 검증되지 않은 서비스는 운영하지 않는 것이 바람직하다.

바. 시스템 트러스트 관계
17. 불필요한 시스템이 포함되어 있지 않은가?(/etc/hosts)
- 위험사항 : 접근 제어를 안함으로 인해 시스템에 쉽게 접근할 수 있다.
- 권장사항 : 불필요한 시스템들은 필드에서 제거되어야 한다.

18. /etc/hosts.equiv파일이 존재하지 않도록 운영 하는가?
- 위험사항 : /etc/hosts.equiv 파일은 rlogin, rsh, rexec와 같은 것을 사용해 인증 없이 로그인 하도록 해준다. 반드시 필요한 경우가 아니라면 존재하지 않는 것이 바람직하다.
- 권장사항 : /etc/hosts.equiv 파일이 존재하지 않거나,/dev/null로 심볼릭 링크 시켜 주어야 한다.

19. “+”, “+ +”가 포함되지 않도록 설정하였는가?(/etc/hosts.equiv)
- 위험사항 : /etc/hosts.equiv 파일에 ‘+’, ‘+ +’가 포함되어 있다면 어느 누구나 r-commnd를 이용하여 접근할 수 있는 상태가 되므로 어떤 경우에도 이렇게 설정해서는 안 된다. 실질적인 보안을 위해서는 이 파일을 사용하지 않는 것이 가장 좋다.

20. /dev/null로 심볼릭 링크를 하였는가?
- 위험사항 : /etc/hosts.equiv는 /dev/null로 심볼릭 링크를 만들거나, 디렉토리 형태로 만들어서 퍼미션을000으로 주어 불법 침입자에 의해 사용되지 않게 하는 것이 좋다.

21. $HOME/.rhosts 파일이 존재하지 않도록 운영 하는가?
- 위험사항 : 시스템이 인증절차 없이 노출될 수 있다.
- 권장사항 : .rhost파일이 불필요할 경우 사용하지 말아야 한다.

22. $HOME/.rhosts 파일내에“+”, “+ +”가 포함되지 않도록 설정하였는가?
- 위험사항 : 접근 제어 없이 사용될 경우, 시스템이 쉽게 노출될 수 있다.
- 권장사항 : 불필요할 경우, “+”, “+ +”필드를 삭제해야 한다.

23. $HOME/.rhosts 파일를 /dev/null로 심볼릭 링크를 하였는가?
- 위험사항 : 비인가자가 쉽게 .rhost파일에 추가작업을 함으로써 시스템이 노출될 위험이 있다.
- 권장사항 : 심볼릭 링크를 할 것을 권장한다.

사. 파일시스템 퍼미션
24. /etc/default/login에 대한 owner(root) 및 퍼미션( 644)이 취약하지는 않는가
- 위험사항 : 비인가자에게 정보가 누출될 수 있다
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일 권한(644이하)을 부여한다.

25. /etc/hosts.equiv에 대한 owner(root) 및 퍼미션( 700)이 취약하지는 않는가?
- 위험사항 : 비인가자에게 정보가 누출될 수 있다.
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일 권한(700이하)을 부여한다.

26. /etc/utmp 퍼미션에 대한 owner(root) 및 퍼미션( 644)이 취약하지는 않는가?
- 위험사항 : 비인가자에게 정보가 누출될 수 있다.
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일 권한(644이하)을 부여한다.

27. /etc/motd 퍼미션에 대한 owner(root) 및 퍼미션( 644)이 취약하지는 않는가?
- 위험사항 : 비인가자에게 정보가 누출될 수 있다.
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일 권한(644이하)을 부여한다.

28. /etc/hosts에 대한 owner(root) 및 퍼미션( 600)이 취약하지는 않는가?
- 위험사항 : 비인가자에게 정보가 누출될 수 있다.
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일 권한(600이하)을 부여한다.

29. /etc/hosts.allow에 대한 owner(root) 및 퍼미션( 600)이 취약하지는 않는가?
- 위험사항 : 비인가자에게 정보가 누출될 수 있다.
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일 권한(600이하)을 부여한다.

30. /etc/syslog.pid 퍼미션에 대한 owner(root) 및 퍼미션(644)이 취약하지는 않는가?
- 위험사항 : 비인가자에게 정보가 누출될 수 있다.
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일 권한(644이하)을 부여한다.

31. /etc/inetd.conf에 대한 owner(root) 및 퍼미션(600)이 취약하지는 않는가?
- 위험사항 : 비인가자에게 정보가 누출될 수 있다.
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일 권한(600이하)을 부여한다.

32. /etc/cron.d/cron.allow에 대한 owner(root) 및 퍼미션(644)이 취약하지는 않는가?
- 위험사항 : 비인가자에게 정보가 누출될 수 있다.
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일 권한(644이하)을 부여한다.

33. /etc/cron.d/cron.deny에 대한 owner(root) 및 퍼미션(644)이 취약하지는 않는가?
- 위험사항 : 비인가자에게 정보가 누출될 수 있다.
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일 권한(644이하)을 부여한다.

34. /etc/cron.d/at.deny/ 에 대한 owner(root) 및 퍼미션(644)이 취약하지는 않는가?
- 위험사항 : 비인가자에게 정보가 누출될 수 있다.
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일 권한(644이하)을 부여한다.

35. /etc/ 에 대한 owner(root) 및 퍼미션(771)이 취약하지는 않는가?
- 위험사항 : 비인가자에게 정보가 누출될 수 있다.
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일 권한(771이하)을 부여한다.

36. /bin 퍼미션에 대한 owner(root) 및 퍼미션(771)이 취약하지는 않는가?
- 위험사항 : 비인가자에게 정보가 누출될 수 있다.
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일 권한(771이하)을 부여한다.

37. /usr/bin에 대한 owner(root) 및 퍼미션(771)이 취약하지는 않는가?
- 위험사항 : 비인가자에게 정보가 누출될 수 있다.
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일 권한(771이하)을 부여한다.

38. /sbin에 대한 owner(root) 및 퍼미션(771)이 취약하지는 않는가?
- 위험사항 : 비인가자에게 정보가 누출될 수 있다.
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일 권한(771이하)을 부여한다.

39. /tmp에 대한 owner(root) 및 퍼미션(1777)이 취약하지는 않는가?
- 위험사항 : 비인가자에게 정보가 누출될 수 있다.
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일권한(1777이하)을 부여한다.

40. /var/tmp에 대한 owner(root) 및퍼미션(1777)이 취약하지는 않는가?
- 위험사항 : 비인가자에게 정보가 누출될 수 있다.
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일권한(1777이하)을 부여한다.

41. /etc/init.d에 대한 owner(root) 및 퍼미션(755)이 취약하지는 않는가?
- 위험사항 : 비인가자에게 정보가 누출될 수 있다.
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일 권한(755이하)을 부여한다.

아. FTP & Sendmail
42. ftp 계정의 홈디렉터리 : root 소유, 허가권 : 555
- 위험사항 : ftp의 홈 디렉토리의 허가권은 555이하로 설정되어 있어야 하며 ~/ftp/bin/* 파일은 실행만 시킬 수 있는 권한을 주어야 하고 ~/ftp/etc/* 파일은 읽기 권한만이 주어져야 한다. 트로이목마 등을 통한 시스템 해킹의 위험이 존재하게 된다.
- 권장사항 : ftp 계정이 존재할 경우, ~ftp/ 디렉토리의 허가권은 555 이하 ~ftp/bin/* 파일의 허가권은 111 이하, ~ftp/etc/* 파일의 허가권은 444 이하로 설정되어 있어야 한다

43. Anonymous ftp서비스 여부
- 위험사항 : Anonymous ftp 서비스는 반드시 필요한 경우가 아니면, 제공하지 말아야 한다. 반드시 필요한 경우에는 시스템 자원에 대한 철저한 접근제어가 이루어져야 하고 쉘 서비스를 제공하지 않도록 해야 한다. 설정 실수로 인한 정보의 유출을 유발할 수 있고, 해커에게 쉘을 제공하게 될 수 있다.
- 권장사항 : Anonymous ftp 서비스는 제공하지 않는 것이 좋다.

44. ftp account의login shell이 /bin/false인가?
- 위험사항 : Anonymous ftp서비스를 제공하는 시스템이라면 해커는 ftp라는 계정이 존재한다는 것을 알게 된다. 따라서 이를 이용하여 시스템에 침입하려 시도하게 됨. 이를 방지하기 위해 권장사항과 같이 ftp 계정의 login shell을 차단하고 trust 관계에 의한 침입시도를 막아야 함.
- 권장사항 : ftp 계정의 login shell은 전혀 기능이 없는 /bin/false와 같은 것으로 지정을 해준다.

45. ~ftp/.rhosts와 ~ftp/.forward 파일이 존재하는가?
- 권장사항 : /etc/ftpusers 파일에 root외 시스템계정이 등록되어야 한다.

46. /etc/ftpusers 안에 root, bin, uucp, ingress, daemon, news, nobody, ftp, anonymous등의 vendor가 지원하는 기본 계정들의 등록여부
- 위험사항 : /etc/ftpusers 파일에 등록되어 있는 계정은 ftp 접속이 차단된다. root, sys, bin과 같은 계정은 반드시 /etc/ftpusers 파일에 등록해 주어야 해커의 ftp를 통한 크랙 시도를 막을 수 있다.
- 권장사항 : /etc/ftpusers 파일에 root외 시스템계정이 등록되어야 한다.

47. 보안에 취약한 버전은 아닌가?
- 위험사항 : 최근 나온 버전 및 보안 패치를 적용하지 않으면 버그로 인한 해킹사고의 위험을 가질 수 있다.
- 권장사항 : 최신의 버전 및 패치를 설치하여야 합니다.

48. expn, vrfy 명령어 사용하지 못하도록 설정되어 있는가?
- 위험사항 : expn, vrfy 명령어가 사용되어질 경우, 메일 서버에 대한 user명 및 환경이 노출될 수 있다.
- 권장사항 : expn, vrfy 명령어를 사용하지 못하도록 하여야 한다.

49. 보안에 취약한 버전은 아닌가?
- 위험사항 : 최근 나온 버전 및 보안 패치를 적용하지 않으면 버그로 인한 해킹사고의 위험을 가질 수 있다.
- 권장사항 : 최신의 버전 및 패치를 설치하여야 합니다.

자. 운영관리
50. 시스템 환경변수 $PATH 안에 “.”이 포함되지 않도록 설정하였는가?
- 위험사항 : PATH 환경변수에 ‘.’이 포함되어 있으면 불법 침입자에 의한 트로이 목마 실행 등의 악용이 가능하므로 PATH 환경변수에 현재 directory(.)를 포함시키지 않아야 한다.
- 권장사항 : User의 시스템 환경변수 $PATH의 값에 ‘.’이 포함되어 있지 않아야 한다.

51. 최신 보안 Patch는 되었는가?
- 위험사항 : 최근 나온 버전 및 보안 패치를 적용하지 않으면 버그로 인한 해킹사고의 위험을 가질 수 있다.
- 권장사항 : 최신의 버전 및 패치를 설치하여야 합니다.

[출처 : http://www.kisa.or.kr 2006 리눅스보안]

[Solaris] Solaris Security Checklist

가. 계정
1. 패스워드 없는 계정, 특별 계정들이 존재하지 않도록 적용하였는가?
- 위험사항 : 패스워드가 없는 계정은 /etc/shadow 파일에서의 두 번째 필드, 즉 암호화된 패스워드가 기록되어 있어야 필드가 비워져 있는 계정이다. 이런 계정은 패스워드 없이 바로 시스템에 접근이 되므로 매우 큰 허점이 된다.
- 권장사항 : 패스워드 없는 계정이 없어야 한다.

2. 서비스 되고 있지 않은 ftp, uucp 계정 등을 유지하고 있는가?
- 위험사항 : 사용되지 않는 서비스에 대한 계정을 유지하는 것은 해커의 침입가능성을 높여준다.
- 권장사항 : ftp와 uucp 등의 서비스가 사용되고 있지 않다면, 설치 시 계정이 자동적으로 생성된다 하더라도 삭제해 주는 것을 권장한다.

3. /etc/passwd에서 일반 사용자 중 UID가 0인 사용자는 존재하지 않도록 하였는가?
- 위험사항 : uid가0인 계정은 root와 같은 적대적인 권한을 행사할 수 있으므로 위험 하다.
- 권장사항 : root 이외에 uid가 0인 계정이 존재하지 않아야 한다.

4. /etc/passwd에서 일반 사용자 중 GID가 0인 사용자는 존재하지 않도록 하였는가?
- 위험사항 : gid가 0인 계정은 root와 같은 적대적인 권한을 행사할 수 있으므로 위험하다.
- 권장사항 : root 이외에 gid가 0인 계정이 존재하지 않아야 한다.

5. /etc/passwd에서 보았을 때, default vender accounts인 sys, bin등에 shell을 모두 제거하였는가?
- 위험사항 : Default vender account는 이미 알려져 이는 사용자 계정이므로 를 이용하여 System에 접근할 수 있는 위험이 있다.
- 권장사항 : Default vender account에shell이 부여되지 않아야 한다.

나. 패스워드
6. /etc/passwd파일에서 사용자들의 패스워드항목이 암호화 된 후 /etc/shadow파일로 옮겨졌는가?
- 위험사항 : 패스워드 항목을 pwconv를 사용하여C2레벨로 변환합니다. /etc/shadow 파일에 ‘*’나 ‘!!’ 등과 같은 비정상적인 문자가 포함되어 있지는 않은지 확인하여 이상징후 발견 시 보안담당자의 검토를 거쳐야 한다.
- 권장사항 : 암호화된 패스워드 부분을 root외에는 접근할 수 없는 /etc/shadow 파일로 옮겨서 보안레벨을 올려야 한다. permission 600 권장

7. 패스워드 Aging기능이 있는가? /etc/default/passwd
- 위험사항 : 패스워드를 오랜 기간동안 변경하지 않을 경우, 스니핑이나 크랙 등을 통해 해커에게 패스워드가 노출될 가능성이 크다.
- 권장사항 : Password Aging기능을 설정해야 한다. Solaris에서는 admintool을 이용하거나 /etc/shadow 파일을 직접 수정함으로써 이 기능을 사용할 수 있다.

다. 접근 통제
8. /etc/hosts.allow파일내에 꼭 필요한 administrator 또는 manager에게만 접근 권한을 주도록 Listing되어있는가?
- 위험사항 : inetd를 사용하는 시스템에서는 tcp wrapper를 사용하여 네트워크 접근제어를 설정할 수 있다.
- 권장사항 : hosts.allow 파일의 구성은 접근을 허용하는 최소한의 호스트로 이루어져야 한다. 특히 ALL:ALL과 같은 설정은 매우 위험하다.

9. /etc/hosts.deny 파일 내용을 “ALL:ALL”로 구성, 불필요한 모든서버로부터의 접근거부를하는가?
- 위험사항 : inetd를 사용하는 시스템에서는 tcp wrapper를 사용하여 네트워크 접근제어를 설정할 수 있다. 네트워크 접근제어는 허락되지 않은 시스템에서의 접근을 차단해 준다. telnet이나 ftp등을 통한 기본적인 접근을 허용하게 된다.
- 권장사항 : hosts.deny 파일은 ALL:ALL로 구성되어 기본적으로 네트워크를 통한 접근을 제한하는 것이 좋다.

10. #CONSOLE=/dev/console에서 #이 제거되었는가? /etc/default/login
- 위험사항 : root는 solaris에서 막강한 권한을 수행할 수 있음과 동시에 반드시 존재하는 계정이기도 하다. root를console이 아닌 곳에서도 접근할 수 있게 된다면 해커는 패스워드 추측, 패킷 스니핑 등의 방법을 이용해서 시스템에 root권한으로 바로 침입할 수 있게 된다.
- 권장사항 : root의 경우 console에서만 로그인 할 수 있도록 설정해야 한다.

11. #UMASK=022에서 #가 제거되어 UMASK=022로 되었는가?
- 위험사항 : System User가 하나의 파일을 생성할 때 그 파일이 처음에 갖게 되는 허가권은 UMASK 값에 의해 정해진다. 새로 생성되는 파일에 다른 사용자에게 쓰기 권한을 허락하지 않기 위해 UMASK값을 022 혹은 027로 유지해야 한다.
- 권장사항 : UMASK 값이 022 혹은 027로 지정되어 있어야 한다.

라. RPC
12. shell, login, exec를 #으로 remark하였는가?
- 위험사항 : rlogin , rsh는trusted된 서버 사이의 사용자 인증 없이 접속가능 하게 하는 것으로, 운영자 입장에서는 매우 편리한 반면 보안측면으로는 악용가능성이 크다. 따라서, 꼭 필요한 경우는 철저히 접근제어를 하고, 되도록 이면 rlogin, rsh, rexec등의 명령어를 쓰지 않는 것이 바람직하다.
- 권장사항 : rlogin, rsh, rexec 등의 서비스를 사용하지 않는 것이 좋다.

13. sadmin, ttdb, cmsd 등의 보안에 취약한 rpc daemon들을 #으로 remark 하였는가?
- 위험사항 : sadmind, rpc.ttdbserverd, rpc.cmsd, rpc.ruserd, rpc.statd 등의 RPC daemon의 취약점을 이용할 경우, 대부분의 경우 관리자의 권한까지 획득 가능하다.
- 권장사항 : rpc daemon들은 보안상 취약한 부분이 자주 발견되므로 서비스 하지 않는 것이 좋다. /etc/inetd.d 에서 services를 확인…

마. 서비스 최적화
14. echo, discard, daytime, chargen가 #으로 remark되었는가?
- 위험사항 : echo, discard, daytime, chargen은 DoS(서비스 거부 공격)에 악용될 수 있다.
- 권장사항 : DoS공격에 취약한 echo, discard, daytime, chargen은 서비스 하지 않는 것이 좋다.

15. tftp (Trivial FTP)가 #으로 remark되었는가?
- 위험사항 : TFTP에는 user authentication 기능이 포함되어 있지 않아 서비스가 지원되는 경우, 원격에서 쉽게 /etc/passwd와 같은 중요파일을 전송 받는 것이 가능하다. 따라서 dummy Xterminal등의 사용으로 꼭 필요한 경우가 아니라면, #으로 반드시 remark해야 한다.
- 권장사항 : tftp는 서비스 하지 않는 것이 좋다.

16. 불필요한 서비스가 remark되었는가?
- 위험사항 : 사용하지 않는 서비스를 운영하는 것은 그만큼 해커에게 기회를 더 주는 것밖에 안된다.
- 권장사항 : 사용하지 않는 서비스 또는 검증되지 않은 서비스는 운영하지 않는 것이 바람직하다.

바. 시스템 트러스트 관계
17. 불필요한 시스템이 포함되어 있지 않은가?(/etc/hosts)
- 위험사항 : 접근 제어를 안함으로 인해 시스템에 쉽게 접근할 수 있다.
- 권장사항 : 불필요한 시스템들은 필드에서 제거되어야 한다.

18. /etc/hosts.equiv파일이 존재하지 않도록 운영 하는가?
- 위험사항 : /etc/hosts.equiv 파일은 rlogin, rsh, rexec와 같은 것을 사용해 인증 없이 로그인 하도록 해준다. 반드시 필요한 경우가 아니라면 존재하지 않는 것이 바람직하다.
- 권장사항 : /etc/hosts.equiv 파일이 존재하지 않거나,/dev/null로 심볼릭 링크 시켜 주어야 한다.

19. “+”, “+ +”가 포함되지 않도록 설정하였는가?(/etc/hosts.equiv)
- 위험사항 : /etc/hosts.equiv 파일에 ‘+’, ‘+ +’가 포함되어 있다면 어느 누구나 r-commnd를 이용하여 접근할 수 있는 상태가 되므로 어떤 경우에도 이렇게 설정해서는 안 된다. 실질적인 보안을 위해서는 이 파일을 사용하지 않는 것이 가장 좋다.

20. /dev/null로 심볼릭 링크를 하였는가?
- 위험사항 : /etc/hosts.equiv는 /dev/null로 심볼릭 링크를 만들거나, 디렉토리 형태로 만들어서 퍼미션을000으로 주어 불법 침입자에 의해 사용되지 않게 하는 것이 좋다.

21. $HOME/.rhosts 파일이 존재하지 않도록 운영 하는가?
- 위험사항 : 시스템이 인증절차 없이 노출될 수 있다.
- 권장사항 : .rhost파일이 불필요할 경우 사용하지 말아야 한다.

22. $HOME/.rhosts 파일내에“+”, “+ +”가 포함되지 않도록 설정하였는가?
- 위험사항 : 접근 제어 없이 사용될 경우, 시스템이 쉽게 노출될 수 있다.
- 권장사항 : 불필요할 경우, “+”, “+ +”필드를 삭제해야 한다.

23. $HOME/.rhosts 파일를 /dev/null로 심볼릭 링크를 하였는가?
- 위험사항 : 비인가자가 쉽게 .rhost파일에 추가작업을 함으로써 시스템이 노출될 위험이 있다.
- 권장사항 : 심볼릭 링크를 할 것을 권장한다.

사. 파일시스템 퍼미션
24. /etc/default/login에 대한 owner(root) 및 퍼미션( 644)이 취약하지는 않는가
- 위험사항 : 비인가자에게 정보가 누출될 수 있다
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일 권한(644이하)을 부여한다.

25. /etc/hosts.equiv에 대한 owner(root) 및 퍼미션( 700)이 취약하지는 않는가?
- 위험사항 : 비인가자에게 정보가 누출될 수 있다.
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일 권한(700이하)을 부여한다.

26. /etc/utmp 퍼미션에 대한 owner(root) 및 퍼미션( 644)이 취약하지는 않는가?
- 위험사항 : 비인가자에게 정보가 누출될 수 있다.
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일 권한(644이하)을 부여한다.

27. /etc/motd 퍼미션에 대한 owner(root) 및 퍼미션( 644)이 취약하지는 않는가?
- 위험사항 : 비인가자에게 정보가 누출될 수 있다.
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일 권한(644이하)을 부여한다.

28. /etc/hosts에 대한 owner(root) 및 퍼미션( 600)이 취약하지는 않는가?
- 위험사항 : 비인가자에게 정보가 누출될 수 있다.
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일 권한(600이하)을 부여한다.

29. /etc/hosts.allow에 대한 owner(root) 및 퍼미션( 600)이 취약하지는 않는가?
- 위험사항 : 비인가자에게 정보가 누출될 수 있다.
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일 권한(600이하)을 부여한다.

30. /etc/syslog.pid 퍼미션에 대한 owner(root) 및 퍼미션(644)이 취약하지는 않는가?
- 위험사항 : 비인가자에게 정보가 누출될 수 있다.
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일 권한(644이하)을 부여한다.

31. /etc/inetd.conf에 대한 owner(root) 및 퍼미션(600)이 취약하지는 않는가?
- 위험사항 : 비인가자에게 정보가 누출될 수 있다.
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일 권한(600이하)을 부여한다.

32. /etc/cron.d/cron.allow에 대한 owner(root) 및 퍼미션(644)이 취약하지는 않는가?
- 위험사항 : 비인가자에게 정보가 누출될 수 있다.
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일 권한(644이하)을 부여한다.

33. /etc/cron.d/cron.deny에 대한 owner(root) 및 퍼미션(644)이 취약하지는 않는가?
- 위험사항 : 비인가자에게 정보가 누출될 수 있다.
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일 권한(644이하)을 부여한다.

34. /etc/cron.d/at.deny/ 에 대한 owner(root) 및 퍼미션(644)이 취약하지는 않는가?
- 위험사항 : 비인가자에게 정보가 누출될 수 있다.
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일 권한(644이하)을 부여한다.

35. /etc/ 에 대한 owner(root) 및 퍼미션(771)이 취약하지는 않는가?
- 위험사항 : 비인가자에게 정보가 누출될 수 있다.
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일 권한(771이하)을 부여한다.

36. /bin 퍼미션에 대한 owner(root) 및 퍼미션(771)이 취약하지는 않는가?
- 위험사항 : 비인가자에게 정보가 누출될 수 있다.
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일 권한(771이하)을 부여한다.

37. /usr/bin에 대한 owner(root) 및 퍼미션(771)이 취약하지는 않는가?
- 위험사항 : 비인가자에게 정보가 누출될 수 있다.
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일 권한(771이하)을 부여한다.

38. /sbin에 대한 owner(root) 및 퍼미션(771)이 취약하지는 않는가?
- 위험사항 : 비인가자에게 정보가 누출될 수 있다.
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일 권한(771이하)을 부여한다.

39. /tmp에 대한 owner(root) 및 퍼미션(1777)이 취약하지는 않는가?
- 위험사항 : 비인가자에게 정보가 누출될 수 있다.
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일권한(1777이하)을 부여한다.

40. /var/tmp에 대한 owner(root) 및퍼미션(1777)이 취약하지는 않는가?
- 위험사항 : 비인가자에게 정보가 누출될 수 있다.
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일권한(1777이하)을 부여한다.

41. /etc/init.d에 대한 owner(root) 및 퍼미션(755)이 취약하지는 않는가?
- 위험사항 : 비인가자에게 정보가 누출될 수 있다.
- 권장사항 : root의 파일허가 권한과 일반 유저 및 그룹에 대해 엄격히 구분된 파일 권한(755이하)을 부여한다.

아. FTP & Sendmail
42. ftp 계정의 홈디렉터리 : root 소유, 허가권 : 555
- 위험사항 : ftp의 홈 디렉토리의 허가권은 555이하로 설정되어 있어야 하며 ~/ftp/bin/* 파일은 실행만 시킬 수 있는 권한을 주어야 하고 ~/ftp/etc/* 파일은 읽기 권한만이 주어져야 한다. 트로이목마 등을 통한 시스템 해킹의 위험이 존재하게 된다.
- 권장사항 : ftp 계정이 존재할 경우, ~ftp/ 디렉토리의 허가권은 555 이하 ~ftp/bin/* 파일의 허가권은 111 이하, ~ftp/etc/* 파일의 허가권은 444 이하로 설정되어 있어야 한다

43. Anonymous ftp서비스 여부
- 위험사항 : Anonymous ftp 서비스는 반드시 필요한 경우가 아니면, 제공하지 말아야 한다. 반드시 필요한 경우에는 시스템 자원에 대한 철저한 접근제어가 이루어져야 하고 쉘 서비스를 제공하지 않도록 해야 한다. 설정 실수로 인한 정보의 유출을 유발할 수 있고, 해커에게 쉘을 제공하게 될 수 있다.
- 권장사항 : Anonymous ftp 서비스는 제공하지 않는 것이 좋다.

44. ftp account의login shell이 /bin/false인가?
- 위험사항 : Anonymous ftp서비스를 제공하는 시스템이라면 해커는 ftp라는 계정이 존재한다는 것을 알게 된다. 따라서 이를 이용하여 시스템에 침입하려 시도하게 됨. 이를 방지하기 위해 권장사항과 같이 ftp 계정의 login shell을 차단하고 trust 관계에 의한 침입시도를 막아야 함.
- 권장사항 : ftp 계정의 login shell은 전혀 기능이 없는 /bin/false와 같은 것으로 지정을 해준다.

45. ~ftp/.rhosts와 ~ftp/.forward 파일이 존재하는가?
- 권장사항 : /etc/ftpusers 파일에 root외 시스템계정이 등록되어야 한다.

46. /etc/ftpusers 안에 root, bin, uucp, ingress, daemon, news, nobody, ftp, anonymous등의 vendor가 지원하는 기본 계정들의 등록여부
- 위험사항 : /etc/ftpusers 파일에 등록되어 있는 계정은 ftp 접속이 차단된다. root, sys, bin과 같은 계정은 반드시 /etc/ftpusers 파일에 등록해 주어야 해커의 ftp를 통한 크랙 시도를 막을 수 있다.
- 권장사항 : /etc/ftpusers 파일에 root외 시스템계정이 등록되어야 한다.

47. 보안에 취약한 버전은 아닌가?
- 위험사항 : 최근 나온 버전 및 보안 패치를 적용하지 않으면 버그로 인한 해킹사고의 위험을 가질 수 있다.
- 권장사항 : 최신의 버전 및 패치를 설치하여야 합니다.

48. expn, vrfy 명령어 사용하지 못하도록 설정되어 있는가?
- 위험사항 : expn, vrfy 명령어가 사용되어질 경우, 메일 서버에 대한 user명 및 환경이 노출될 수 있다.
- 권장사항 : expn, vrfy 명령어를 사용하지 못하도록 하여야 한다.

49. 보안에 취약한 버전은 아닌가?
- 위험사항 : 최근 나온 버전 및 보안 패치를 적용하지 않으면 버그로 인한 해킹사고의 위험을 가질 수 있다.
- 권장사항 : 최신의 버전 및 패치를 설치하여야 합니다.

자. 운영관리
50. 시스템 환경변수 $PATH 안에 “.”이 포함되지 않도록 설정하였는가?
- 위험사항 : PATH 환경변수에 ‘.’이 포함되어 있으면 불법 침입자에 의한 트로이 목마 실행 등의 악용이 가능하므로 PATH 환경변수에 현재 directory(.)를 포함시키지 않아야 한다.
- 권장사항 : User의 시스템 환경변수 $PATH의 값에 ‘.’이 포함되어 있지 않아야 한다.

51. 최신 보안 Patch는 되었는가?
- 위험사항 : 최근 나온 버전 및 보안 패치를 적용하지 않으면 버그로 인한 해킹사고의 위험을 가질 수 있다.
- 권장사항 : 최신의 버전 및 패치를 설치하여야 합니다.

[출처 : http://www.kisa.or.kr 2006 리눅스보안]

[info] 웹 어플리케이션의 10대 취약점

A1 입력값 검증 부재
- 웹 요청 정보가 웹 애플리케이션에 의해 처리되기 이전에 적절한 검증이 이루어지고 있지 않다. 공격자는 이 취약점을 이용하여 웹 애플리케이션의 백엔드 컴포넌트를 공격할 수 있다.

A2 취약한 접근 통제
- 인증된 사용자가 수행할 수 있는 작업을 적절히 제한하지 않고 있다. 공격자는 이 취약점을 이용하여 다른 사용자의 계정에 접근하거나, 민감한 정보가 담긴 파일을 열람하거나, 허용되지 않은 작업을 수행할 수 있다.

A3 취약한 인증 및 세션 관리
- 계정 토큰과 세션 토큰이 적절히 보호되고 있지 않다. 공격자는 암호나 키, 세션 쿠키, 기타 인증 관련 토큰을 공격하여 인증을 우회하고 다른 사용자의 ID를 가장할 수 있다.

A4 크로스 사이트 스크립팅(XSS)취약점
- 웹 애플리케이션이 다른 사용자의 브라우저를 공격하는 도구로 사용될 수 있다. 공격이 성공하는 경우 일반 사용자의 세션 토큰이 노출되거나, 사용자의 컴퓨터를 공격하거나, 다른 사용자를 속이기 위해 위조된 컨텐츠를 보여주게 된다.

A5 버퍼 오버플로우
- 웹 애플리케이션 컴포넌트가 사용자의 입력값을 적절히 점검하지 않는 언어로 작성되어 다운될 수 있다. 특수한 경우에는 공격자가 해당 프로세스의 권한을 획득할 수 있다. 이 컴포넌트로는 CGI, 라이브러리, 하드웨어 드라이버, 웹 애플리케이션 서버 컴포넌트 등이 포함된다.

A6 삽입 취약점
- 웹 애플리케이션이 외부 시스템이나 자체 OS에 접근할 때 입력받은 인자를 그대로 전달한다. 공격자가 해당 인자로 악의적인 명령어를 삽입하는 경우, 해당 외부 시스템은 웹 애플리케이션으로 인해 입력받은 명령어를 실행할 수 있게 된다.

A7 부적절한 에러 처리
- 일상적인 운용 과정 중에 발생하는 에러 상황에 대해 적절한 처리가 이루어지지 않는다. 공격자가 웹 애플리케이션이 처리하지 못하는 에러가 발생하도록 유도하여, 해당 시스템에 대한 상세 정보를 획득하거나, 서비스를 방해하거나, 보안 메커니즘이 작동하지 않도록 할 수 있으며, 서버가 다운될 수도 있다.

A8 취약한 정보 저장 방식
- 웹 애플리케이션은 정보나 인증 관련 토큰을 보호하기 위해 암호화를 자주 사용한다. 암호화 관련 기능이나 코드는 적절하게 구현하기가 어려움이 이미 증명되었으며, 많은 경우 오히려 보안상 바람직하지 않은 결과를 초래한다.

A9 서비스 방해 공격
- 공격자가 다른 정당한 사용자가 사이트에 접속하거나, 애플리케이션을 사용하는 것을 방해하기 위해 웹 애플리케이션의 리소스를 고갈시킬 수 있다. 공격자는 또한 다른 사용자가 본인 소유의 계정을 사용하지 못하도록 계정을 잠글 수 있으며, 심지어 웹 애플리케이션 전체가 멈추도록 할 수 있다.

A10 부적절한 환경 설정
- 강화된 서버 환경 설정 표준을 보유하는 것은 안전한 웹 애플리케이션에 있어 결정적으로 중요한 부분이다. 해당 서버는 보안에 영향을 미치는 다양한 환경 설정 옵션이 있으며, 벤더 출하시에는 기본적으로 안전하지 않은 상태로 출시된다.

[ 출처 : OWASP(Open Web Application Security Project) http://www.owasp.org/ ]

[Linux] Anatomy of Hacking (공격 9 단계 분석)

1. Information Gathering
- 네트워크에 대한 정보를 중심으로 정보 수집
- whois, zone transfer, traceroute, firewalk, snmpwalk etc.

2. Scanning
- 공격하려는 대상에 대한 자세한 정보 수집
- Host discovery, OS Detection, Port scanning, RPC 정보, 공유자원에 관한 정보, trust relationship에 관한 정보 etc.

3. Pilfering
- 공격에 필요한 직접적인 정보 수집
- Server Version 정보, 계정정보 etc.

4. Vulnerability Analysis
- 공격 대상의 취약점 분석
- 자동화된 툴 또는 취약점 DB 이용

5. Acquire Access Rights
- Remote Attack 을 통해서 접근 권한 획득
- 주로 서버 프로그램의 결함이나 CGI의 취약점, 취약한 password 공격

6. Escalating Privilege
- 접근 권한 획득 후 local attack 을 이용하여 root 권한 획득
- 각종 프로그램의 결함이나 취약한 환경설정 등을 공격

7. Covering Log
- 접속 기록 등 각종 기록을 조작 또는 삭제하여 추적이 어렵도록 함.

8. Install Backdoors
- 점령한 시스템을 다른 목적에 사용하기 위해서 또는 나중에 쉽게 들어올 목적으로, 추적을 따돌리기 위해서 backdoor 설치

9. 공격전이
- 이미 점유한 system을 전초 기지로 삼아 주변의 여러 system들을 차례대로 공격해 간다.
- 이 단계에는 sniffer 가 널리 사용된다.

[출처 : http://www.kisa.or.kr 2006 리눅스보안]

1/07/2007

[log]서버 보안을 위한 관리대상 로그

** Unix 서버의 관리 대상 로그
- wtmp : 사용자 로그인 정보
- syslog : OS 및 응용프로그램의 주요 동작 내역
- secure : OS 및 응용프로그램의 주요 동작 내역(Linux)
- sulog : su 명령에 의한 결과를 기록
- authlog : 시스템 내 인증관련 이벤트 기록(Solaris)
- messages : 각종 메시지들을 기록
- btmp : 5회 이상의 로그인 실패에 대한 기록(Linux, HP-UX)
- loginlog : n회 이상의 로그인 실패에 대한 기록(Solaris)
- lastlog : 사용자의 마지막 로그인 시간 기록

** Windows 관리 대상 로그
※ 이벤트 뷰어 실행: 명령 프롬프트를 실행시켜 eventvwr.msc를 입력
- 응용프로그램 로그 : 응용 프로그램에 의해 발생된 이벤트 기록, 파일에러 기록
- 보안 로그 : 보안 감사 레코드. 보안 로그는 감사정책을 설정하여야 기록됨. 보안로그는 관리자 만이 볼 수 있음.
- 시스템 오류 로그 : 시스템 구성요소가 발생시킨 이벤트를 기록함. 드라이버나 다른 시스템 구성 요소를 읽어 들이지 못했을 경우 기록함.

가) 오류 : Windows의 중대한 문제, Windows 시스템이 시작하는 동안 필요한 서비스가 제대로 시작되지 못한 경우와 같은 이벤트를 기록
나) 경고 : 지금보다는 앞으로 문제를 일으킬 소지가 있는 이벤트, 예를 들어 하드디스크 공간이 얼마 남지 않은 경우 기록
다) 정보 : 다양한 주요작업 완수를 기록
라) 성공감사 : 사용자의 성공적인 시스템 로그인과 같은 이벤트를 기록
마) 실패감사 : 실패한 감사 보안 기록

** 웹서버의 로그관리
- 웹서비스를 하고 있는 경우, 주기적으로 웹서비스 접속 로그를 보고 수상한 접속은 없었는지 분석해 보는 것이 좋다.

예) 아파치 웹서버 로그의 경우, 로그화일 위치
. 아파치를 컴파일 했을 경우는 대부분의 경우 /usr/local/apache/logs/access_log 임
. 레드햇의 경우는: /var/log/httpd/access_log

출처 : [서울대학교 정보통신보안컨설팅결과보고, 2005. 12.]

[linux] linux daemon

amanda : 백업 클라이언트인 amanda 데몬

amandaidx : amanda 서버의 패키지 서비스 중 하나인 amandaidx 데몬

amd : auto mount daemon, 시스템의 요청이 있는 경우에 자동으로 장치와 NFS 호스트를 마운트해 주는 데몬.
네트워크의 설정이 잘못된 경우에는 부팅을 하는 도중에 문제를 일으킬수 있으므로 처음에서 꺼두는 것이 좋다.

amidxtape : amand 서버에 패키지 서비스 중 하나인 amidxtape 데몬

anacron : 시간에 따라 지정한 프로그램을 정기적으로 실행하는 데몬. cron과 같은 기능을 하지만 계속 켜두지 않는 컴터에서 사요하는 데몬

apmd : 베터리 상태를 감시하고 syslog(8)에 기록하며 시스템을 끄기도 하는 데몬

arpwatch : 이더넷 카드와 ip 어드레스의 설정 관계를 유지하는 데몬

atd : 특정 시간 또는 시스템 부하가 적을때 지정된 명령을 실행시키는 데몬

autofs : 파일 시스템을 사용하고자 할때 자동으로 마운트 시켜주는 데몬

chargen : chargen의 TCP 버전 서버

chargen-upd : chargen의 UDP 버전 서버

ciped : ip address를 암호화하는 CIPE 데몬

crond : cron을 실행시키는 데몬, cron은 지정한 프로그램을 특정 시간에 주기적으로 실행시키는 유닉스 표준 프로그램

daytime : daytime의 TCP 버전 서버. daytime은 클라이언트의 질의에 응답하여 아스키 형태로 현재 시간과 날짜를 출력하는 데몬. TCP 포트 13을 사용

daytime-udp : daytime의 UDP 버전 서버. UDP포트 13을 사용

dhcpd : Dynamic host configuration protocol server daemon. 동적 호스트 제어 프로토콜 서버 데몬.
BOOTP와 DHCP가 포함된 데몬으로 클라이언트들이 부팅할때 자동으로 동적 IP 어드레스와 네트워크 정보를 가질수 있게 해줌.

echo : echo 의 TCP 버전 서버

echo-udp : echo 의 UDP 버전 서버

finger : finger 리퀘스트에 응답하는 서버. finger는 사용자에 대한 로그인 네임, 디렉토리, 쉘과 최종 로그인 시간에 대한 정보를 볼수 있게 하는 프로토콜

gated : gated(라우팅 데몬) 을 시작하거나 종료 시키는 데몬

gpm : MC(midnight command) 와 같은 텍스트 기반 리눅스용 애플리케이션에서 마우스를 쓸수 있게 해주는 데몬.
콘솔에서 마우스를 이용한 팝업 메뉴와 복사/ 붙이기 기능도 지원

httpd : 웹 서비스를 위한 아파치 데몬. html파일과 cgi를 사용가능하게 함

identd : 특별한 TCP 연결에서 사용자의 신원을 결정해 주는 데몬. TCP 포트번호를 주면 연결된 서버 시스템 소유자를 확인할수 있는 문자열을 돌려줌

imap : 원격 사용자가 imap 클라이언트(Pine, netscape communicator)를 이용하여 자신의 메일에 접근할수 있게 하는 서비스

imaps : 원격 사용자가 SSL을 지원하는 imap 클라이언트(netscape communicator, fetchmail 등)를 이용하여 자신의 메일에 접근할수 있게 하는 서비스

innd : 유즈넷 뉴스 서버를 이용하여 지역 뉴스 서버를 설정할수 있는 데몬

ipchains : 패킷 필터링 파이어월을 자동으로 실행하는 데몬

ipop2 : 원격 사용자가 pop2 클라이언트를 이용하여 메일에 접근할수 있게 하는 서비스

ipop3 : 원격 사용자가 pop3 클라이언트를 이용하여 메일에 접근할수 있게 하는 서비스

irda : irda 가 정상적으로 동작하도록 해 주는 데몬

keytable : /etc/sysconfig/keytable로 키보드 유형을 변환할수 있게 하는 서비스.
한텀에서 kbdconfig 프로그램을 실행하여 키보드 유형을 변환할수 있다. 대부분의 시스템에서 keytable 데몬은 실행시켜 두어야 한다.

kudzu : 부팅시 새롭게 추가된 하드웨어를 설정할 수 있게 hardware probe를 실행시키는 데몬

linuxconf : 시스템 설정을 유지하기 위해 부팅시에 다양한 태스크의 실행을 정렬시키는 데몬.

linuxconf-web : 웹을 통해 linuxconf를 실행할수 있게 연결을 허용하는 데몬

lpd : 프린터(line printer)가 정상적으로 동작하도록 해 주는 프린트 서비스 데몬

mars-nwe : netware IPX 프로토콜을 사용하는 클라이언트에게 리눅스 머신에서 파일과 프린트 서버를 호환시켜 주는 데몬

mcserv : midnight command(MC) 서버이다. MC끼리 네트워크를 공유한다

mysqld : 매우 빠르고 안정적인 mysql 데이타 베이스 서버 데몬이다

named : 도메인 네임과 ip어드레스를 해석하기 위한 DNS서버(BIND) 데몬. 로컬 호스트에서 DNS서버를 운영할때만 실행 시킨다.

netfs : 삼바, 네트워크 파일 시스템(NFS), NCP(netware)등의 마운트와 언마운트에 관여하는 데몬.

network : 네트워크 인터페이스의 설정을 시스템 부팅시 커널에 적재시키는 데몬.

nfs : TCP/IP 네트워크에서 파일을 공유할수 있게 하는 데몬. /etc/exports 파일에서 설정한 NFS 서버가 기동할수 있게 해 준다.

nfslock : NFS파일을 locking 한다.

nscd : NIS/NS 를 사용할수 있게 하는 데몬. nscd는 실행중인 프로그램의 그룹을 살피고 패스워드를 변경하거나 다음 질의를 위해 결과를 캐시하는 데몬이다.

ntalk : 서로 다른 시스템끼리 채팅이 가능하게 ntalk 연결을 허용하는 서버

ntpd : NTPv4데몬

pcmcia : 휴대용 PC에서 이더넷이나 모뎀을 쓸수 있게 하는 데몬.

pop3s : SSL을 지원하는 pop3클라이언트를 사용하여 메일에 접근할수 있게 하는 서비스이다.

portmap : RPC(NFS, NIS, mcsev등) 연결을 관리하기 위한 포트 매핑 데몬으로 RPC를 사용하는 프로그램을 실행하기 위해서는 반드시 선택하여야 하는 데몬.

postgresql : postgresql 디비에 관한 데몬

pppoe : adsl서비스에 연결시켜 주는 데몬

proftpd : 쉬운설정, 보안성, 단순성에 초점을 맞춘 개선된 ftp 서버 데몬

pxe : 부팅전 실행환경 서버. 다른 PXE기반 머신에 네트워크 부팅을 제공한다

random : 시스템에 필요한 난수 발생 및 저장 데몬

rawdevices : HDD 파티션과 같은 블론 디바이스를 위한 스크립트. /etc/sysconfig/rewdevices 파일을 편집하여 원시 디비아스를 블론 디바이스로 매핑할수 있다.

reconfig : /etc/reconfigSys 파일이 존재하면 재설정을 실행하는 데몬

rexec : rexec(3) 루틴을 위한 서버 데몬. 인증된 사용자 이름과 패스워드로 원격 실행을 제공하는 서버이다.

rlogin : rlogin 프로그램을 위한 서버 데몬. 신뢰할수 있는 호스트로부터 특권화된 포트 번호에 기반한 인증을 통해 원격 로그인을 제공한다.

routed : RIP 프로토콜을 통해 업데이트된 자동 IP 라우팅 테이블 설정 데몬

rsh : rshd 서버는 rcmd 루틴을 위한 서버이며 따라서 rsh 프로그램을 위한 서버이다. 신뢰할수 있는 호스트로부터 특권화된 포트번호에 기반한 인증 통해 원격 실행을 제공한다.

rstat : 네트워크에 연결된 사요자에게 그 네트워크 상의 머신에 대한 퍼포먼스 매트릭스를 회수할수 있게 해주는 프로토콜

rsync : 컴퓨터간 자료 공유를 위해서 사용되는 rsync에 대한 데몬이다.

rusersd : 네트워크에 특정 사용자가 있는 검색해 주는 데몬.

rwalld : 시스템에 동작중인 모든 터미널에 메시지를 표시할수 있게 해 주는 프로토콜

rwhod : 원격 접속자의 목록을 볼수 있게 해주는 데몬. finger와 비슷한 기능을 한다.

sendmail : 메일을 다른 호스트로 전송하는 메일 전송(Mail Transport Agent)데몬

smb : SMB 네트워크 서비스를 제공하기 위한 삼바 서버(smbd와 nmbd)데몬

snmpd : SNMP(Simple Network Management Protocol)데몬

squid : HTTP, FTP, gopher와 같은 프로토콜을 사용할때 캐싱 속도를 높이는 데몬.

sshd : openssh 서버 데몬

swat : 삼바 웹 관리 툴, 삼바 서버의 설정을 위해 swat를 사용하며, 웹 브라우저를 통해 901포트로 접속한다.

syslog : 많은 데몬들이 로그 메세지를 다양한 시스템 로그파일에 기록하는데 사용하는 데몬. syslog는 항상 실행되는 것이 좋다.

talk : 다른 시스템에 접속한 사용자로 부터 채팅 요구에 응답하여 터미널의 내용을 다른 사용자에게 보내서 대화할수 있게 하는 데몬.

telnet : telnet 세션을 제공하는 서버. 인증을 위해 사용자 이름과 패스워드를 사용한다.

tftp : 파일 전송을 위한 프로토콜. tftp프로토콜은 어떤 OS에서는 부팅 디스켓이 없는 워크스테이션이나 네트워크 인식 프린터를 위한 설정 파일의 다운로드, 설치 프로세스의 시작을 위해 가끔 이용된다.

time : rdate 데몬에 의해 사용되는 RFC 868 시간 서버의 TCP 버전

time-udp : rdate 데몬에 의해 사용되는 RFC 868시간 서버의 UDP 버전

webmin : webmin 관리자 서버 데몬

xfs : 부팅과 셧다운시 X 폰트 서버를 시작하거나 종료시키는 데몬

xinetd : inetd 데몬을 대체하는 강력한 데몬. telnet, ftp 등과 같은 서비스를 처리하는 슈퍼 데몬.

ypbind : NIS/YP 클라이언트에서 실행되는 데몬으로 NIS도메인을 바인드한다.
NIS클라이언트로 동작하기 위해서는 glibc에 기반한 시스템에서 실행되어 한다. 그러나 NIS를 사용하지 않는 시스템에서는 실행하지 말아야 한다.

yppasswd : NIS클라이언트 사용자의 패스워드를 변경할수 있게 해 주는 데몬

ypserv : 표준 NIS/YP 네트워크 프로토콜 서버. 호스트 네임, 사용자 네임과 다른 정보 데이타베이스를 네트워크를 통하여 배포하는 것은 허용한다.
ypserv데몬은 클라이언트에서는 필요하지 않으며 NIS 서버에서 실행된다.

[winxp] tip 삭제된 프로그램이 "프로그램 추가/삭제"에 남아 있을 경우

** 삭제된 프로그램이 "프로그램 추가/삭제"에 남아 있을 경우

시작 -> 실행 -> regedit

HKEY_LOCLA_MACHINE/SOFTWARE/Microsoft/windows/currentVersion/uninstall

에서 목록 삭제


** 시스템구성유틸리티 시작프로그램 목록에서 삭제하는 방법

시작 -> 실행 -> regedit

HKEY_LOCAL_MACHINE/Software/Microsoft/Sharedtools/MSconfig/startupreg

에서 목록 삭제

[info] 홈페이지 변조 대응 가이드라인 by ncsc (2006.3)

1. 홈페이지 파일 업로드 취약점 제거
1.1 첨부파일 업로드를 허용하는 홈페이지 게시판에서 등의 확장자 이름의 스크립트 파일을 업로드를 허용할 경우에 해커가 악성프로그램을 업로드 한 후 원격에서 홈페이지 변조 가능
- 해당 홈페이지의 게시판에 첨부파일 기능이 있는지 확인
- 특정 확장자(.php, .jsp, .asp, .cgi, .pl)를 가진 파일의 업로드 가능 여부 확인
- 실행 가능한 파일의 업로드가 되지 않도록 소스 코드 수정- 수정 후 해당파일 업로드가 되지 않는지 확인

2. 파일 업로드 폴더 내에서 스크립트 파일 실행 제한
2.1 스크립트 실행 금지
- 업로드 파일을 위한 윈도우의 경우 [설정] -> [제어판] -> [관리도구] -> [인터넷서비스관리자] 선택 하여 오른쪽 클릭 후 [등록정보] -> [디렉터리]를 선택하여 실행권한을 '없음' 으로 설정
- 리눅스의 경우 httpd.conf 와 같은 웹서버 데몬 설정에서 실행 설정 변경
- 보다 완벽한 제한을 위해 업로드 파일을 위한 전용 디렉터리를 별도 생성

3. 윈도우 WebDAV 취약점
3.1 원격 웹서버 관리가 필요 없을 시 WebDAV 중지
- NCSC(http://www.ncsc.go.kr/)의 '홈페이지 보안관리 메뉴얼' 참조
3.2 httpext.dll 파일의 Everyone 권한 삭제
- /windows/system32/inetserv/httpext.dll 의 등록정보의 보안 탭에서 그룹 또는 사용자이름 부분에 Everyone 존재 시 삭제 조치
3.3 홈 디렉터리 메뉴의 '쓰기'권한 삭제
- [제어판] -> [관리도구]의 [인터넷 서비스 관리자] 메뉴에서 [기본 웹사이트]의 마우스를 오른쪽 클릭 여 속성 부분의 [기본 웹사이트 등록정보]의 [홈 디렉터리]부분의 '쓰기' 항목이 체크되어 있을 시 이를 제거

4. SQL Injection 방지
4.1 DB 와 연동하는 스크립트의 파라미터, 특수 문자( ' "" / ; : Space -- + 등), 에러메시지를 점검하여 사용자의 입력 값이 SQL Injection 이 발생하지 않도록 점검
4.2 http://www.sans.org/rr/whitepapers/securecode/23.php 사이트 참조
4.3 지속적인 모니터링 및 최신 패치의 적용이 필요

5. DB 관련 파일 또는 bak 파일 제거
5.1 홈페이지 수정 등을 위하여 만들어진 .bak 파일이 웹에 text 파일로 노출될 경우 소스나 DB 정보 등의 노출로 인하여 보안에 치명적임.
5.2 불필요한 백업 파일 모두 삭제
5.3 Apache 의 경우 httpd.conf 에 다음과 같은 설정 필요
<files ~"\.bak$">
Order allow,deny
Deny from all
</files>

6. 검색엔진 피하기
6.1 robots.txt 의 이용
- 웹 검색 로봇은 로봇배제기준을 따르고 있음. 로봇배제기준은 로봇이 자신의 홈페이지의 특정 부분을 가져가지 못하게 하는 것으로서 특정 디렉터리에 robots.txt 파일을 사용하는 것임. 검색엔진에서 피하고 싶은 설정을 robots.txt 에 작성 후 해당 파일을 루트 디렉터리에 저장하면 됨 아래는 간단한 예임
User-agent : *
Disallow : /image/
"*" 는 모든 로봇의 검색을 허용, Disallow 옵션은 특정 디렉터리를 로봇이 접근하지 못하도록 지정하는 항목임

7. 관리자 페이지 접근 제한
7.1 IIS 웹 서버
- [설정]->[제어판]->[관리도구]->[인터넷 서비스 관리자]에서 오른쪽 클릭 후 [등록정보]->[디렉터리보안]->[IP 주소 및 도메인 이름제한]->[편집]을 통해 관리자 IP 만 등록하여 접근제한
7.2 Apache 웹 서버
- 관리자(admin) 디렉터리에 대해 특정 IP 만 접근 가능하게 하기 위해 환경설정 파일인 httpd.conf 파일의 Directory 섹션의 AllowOverride 지시자에서 AuthConfig 또는 All 을 추가한다.
- Apache 의 경우 httpd.conf 설정
<directory>
Order deny, allow
Deny from all
allow from 192.168.1.11 <-- 192.168.1. 11 에서만 접근 가능
</directory>
- 게시판에서 .htaccess 업로드 안되도록 필터링 : .htaccess 파일을 사용할 경우 파일명을 변경해서 사용(AccessFile Name .MyConfig) 또한, httpd.conf 파일에 AllowOverride None 설정 및 Indexes 옵션 제거(파일목록 노출 방지)

8. 부적절한 환경 설정 보완
8.1 리눅스 및 유닉스 웹서버의 경우
- 웹서버에서 디렉터리의 모든 파일들을 사용자에게 보여 줄 수 있는 디렉터리 인덱싱 기능을 통해 공격자에게 웹 애플리케이션에 대한 정보 제공
- 디렉터리별로 리스팅이 불가하도록 설정
- Apache의 경우 httpd.conf 설정
<directory>
Options Indexes <-- 제거
</directory>
<directory>
Options IFollowSymLinks <-- 심블릭 링크 제거
</directory>
8.2 윈도우의 경우
- [제어판]->[관리도구]의 [인터넷서비스관리자] 메뉴에서 [기본웹사이트]의 마우스 오른쪽 클릭하여 '기본 웹사이트 등록 정보' 메뉴를 참조한다.
- 홈 디렉터리 부분을 클릭하고 디렉터리 검색 옵션 부분이 체크되어 있으면 이를 해지 하고 적용버튼을 클릭 한다.

9. 제로보드 취약점
9.1 파일 노출 취약점(다운로드 취약점)
- 시스템 내부의 중요 파일들의 내부정보를 노출시킴
9.2 오부 소스 실행 취약점(원격 파일 삽입 취약점)- include 항목의 변수를 외부에서 실행할 수 있어 원격의 파일을 참조시켜 시스템 정보를 파악하고 웹 서비스 권한을 획득 할 수 있음
- php.ini 파일의 설정을 "allow_ur_fopen = Off" 및 "register_globals = Off" 로 설정
9.3 XSS 취약점
- 서버 설정에 따라서 $dir, $_zb_path 변수를 이용, 외부에서 임의의 스크립트를 실행하는 문제로써 preg_replac 에서 정규 표현식을 이용할 때 quotes 를 하지 않아 발생- http://www.nzeo.com/에서 패치 적용
9.4 사용하지 않는 게시판 제거

10. 권한상승 방지
10.1 최근 유행하는 SSH brute force 공격이나 WebDAV 취약점 등은 권한 상승을 위한 익스플로잇 코드를 실행하는 경우가 많음. 이때 버퍼오버플로우 기법을 이용하여 권한 상승을 시도함. 버퍼보버플로우는 스택 혹은 힙오버플로우 기법이 있는데 이를 방지할 수 있는 기술이 원도우 XP SP2 와 윈도우 서버 2003 SP1 에 구현되어 있음
10. 2 권한 상승 방지 기법 설정
- [시작]->[제어판]을 차례로 클릭한 다음 '시스템'을 두 번 클릭.
- 고급 탭의 성능에서 '설정'을 클릭.
- 데이터 실행 방지 탭을 클릭.

* 홈페이지 변조에 악용되는 웹쉘(WebShell)에 대한 자세한 분석과 대응책은 "Monthly 사이버 시큐리티" '06 년도 1,2 월호에 자세히 수록