반응형

리눅스 보안

  • 리눅스 개요 및 사용

리눅스는 윈도우, 유닉스 ios 와 같은 운영체제의 한 종류로 컴퓨터 시스템의 하드웨어를 효율적으로 관리하기위한 시스템 소프트 웨어이 이다. 리눅스는 1989년 핀란드 헬싱키 대학에 재학 중이던 리누스 토르발스가 개발한것으로 유닉스를 기반으로 하였으며 공개용 운영 체제이다.

 

  • 리눅스 특징

1) 다중 사용자

리눅스는 여러 명의 사용자가 네트워크를 통해서 접속하여 컴퓨터 시스템을 사용할 수 있는다중 사용자 환경을 지원하기 때문에 사용자별 권한 관리와 자원 관리가 가능하다.

 

2) 다중작업

다중작업은 운영체제 내에서 여러 개의 프로세스를 동시에 실행시켜 CPU를 스케줄링하여 사용할 수 있다. 여러 개의 프로세스가 동시에 실행되기 때문에 각 프로세스간 작업순서 조정과 같은 스케줄링 기능을 가지고 있다. 이러한 스케줄링은 기본적으로 시간 사용량 만큼 자원을 할당하여 사용할 수 있게 하는 시분할 시스템을 지원한다.

 

3) 다중 처리기

컴퓨터 시스템에 한 개 이상의 CPU가 탑재되어 있는 경우 여러 개의 CPU를 지원해 주는 다중 처리기를 지원하며 작업을 병렬적으로 처리하여 시스탬을 효율적으로 사용한다.

 

4) 다중 플랫폼

리눅스는 여러 종류 CPU를 지원한다. 즉, 인텔, SUn Sparc, Power PC 등을 모두 지원하여 대부분의 플랫폼을 지원하고 성능을 낼 수 있다.

 

5) 계층형 파일 시스템

리눅스 파일 시스템은 루트를 기반으로 하위 디렉터리를 이루는 계층형 파일 시스템으로 이루어져 있어서 디렉토리를 쉽게 추가하고 관리할 수 있으며, 파일 시스템을 효율적으로 관리할 수있다. 계층형 파일 시스템은 리눅스 뿐만 아니라 윈도우, 유닉스 모두 계층형 파일 시스템으로 되어있다.

 

6) POSIX와 호환

POSIX는 유닉스 시스템의 표준 인터페이스를 정의한 것으로 리눅스는 POSIX 표준을 따른다.

 

7) 우수한 네트워킹

리눅스의 강력한 네트워킹 기능은 TCP/IP, IPX/SPC, Appletalk, Bluetooth 등 다양한 프로토콜을 지원하며 리눅스 설치 이후에 IP 주소, 게이트웨이, 서브넷 등을 설정하면 바로 네트워크를 사용할 수 있다.

 

8) 가상 콘솔

리눅스는 기본적으로 6개의 가상콘솔이 있어서 각 창마다 서로 다른 작업을 수행할 수 있으므로 물리적인 모니터의 한계를 극복한다.

 

9) 가상 기억장치

주기억장치의 한계를 극복하기 위해서 보조 기억장치를 마치 주기억장치처럼 사용할 수 있도록 하여 주기억장치의 공간을 증대하는 방법이 가상 기억장치이다. 가상 기억장치는 기억공간을 확대하여 기억장치를 효율적으로 사용할 수 있으므로 시스템을 안정적으로 사용할 수 있다.

 

리눅스 운영체제의 기능

task manager : task의 생성, 실행, 상태관리,스케줄링, 시그널 처리, 프로세스 간 통신 등의 서비스 제공

memory manager : 세그먼테이션, 페이징, Swap 서비스를 통한 물리 메모리와 가상 메모리 관리

file system Manager : 파일 생성/삭제, 접근제어, 디렉토리 관리, 슈퍼블록 관리 등의 서비스 제공

Network Manager : 소켓, TCP/IP , 프로토콜 스택 관리 등의 서비스

Device Manager : 디스크, 각종 카드, 외부 인터페이스 등을 제어하는 드라이버 관리 서비스 제공

 

  • 리눅스 로그파일

사용자가 네트워크를 경유해서 리눅스 운영체제에 접속하고 로그인 후 어떤 명령 등을 실행하면 리눅스 운영체제는 사용자의 터미널 정보, 실행한 명령어 , 로그인과 로그아웃 정보 등을 모두 로그파일에 기록한다.

로그파일은 공격자가 임의적으로 시스템에 접근하여 어떤 작업을 수행했는지 알 수 있는 것으로 침해사고 발생 시 누가 무엇을 수행했는지 증명하는 책임추적성 역할을 수행한다.

그러므로 리눅스에서 어떤 로그파일이 있고, 어떤 정보를 얻을 수 있는지는 아주 중요한 요소이다. 하지만 로그파일이라는 것은 파일에 불과하기 때문에 어떤 로그파일도 공격자에 의해서 조작될 수 있다. 그러므로 하나의 로그파일을 보고 침해사고를 분석하는 것이 아니라 여러개의 로그파일을 종합적으로 분석해서 판단해야 한다.

 

WORM Storage란 무엇인가?

시스템에 공격자가 침입하면 자신의 공격 행위를 삭제하기 위해서 중요한 로그파일에 대한 삭제를 시도한다. 만약 공격자가 시스템의 모든 로그파일을 삭제하거나 변조한다면, 공격자가 어떤 행위를 했는지 증명하기가 쉽지 않다. WORM 스토리지 는 이러한 문제점을 해결하기 위해서 한 번만 기록할 수 있으며, 그 다음은 읽기만 가능한 스토리지로서 WORM 스토리지에 로그파일을 기록하도록 하면 공격자는 로그파일을 삭제하거나 변조하는것이 불가능하다.

단, WORM 스토리지의 문제점은 고가의 비용이 발생한다는 것이다.

 

리눅스의 로그파일은 기본적으로 /var/log 라는 디렉터리에 존재한다. 그러므로 로그파일을 확인하기 위해서 /var/log 디렉터리로 이동해서 확인하면 된다.

 

 현재 로그인 사용자 확인

리눅스에서 "w" 혹은 "who" 명령을 실행하면 현재 로그인 한 사용자 정보를 확인할 수 있다. 즉, 리눅스에서 로그인 사용자 ID, 사용 터미널, 로그인 시간 등을 확인할 수 있다.

 

현재 로그인한 사용자 정보는 로그인을 수행할 때 utmp라는 파일에 로그인 정보가 기록된다. utmp 파일은/var/run/utmp에 존재한다. -> w,who

utmp 파일에 대한 정보를 확인하기 위해서 리눅스의 stat 명령을 실행하면 파일명, 파일 크기, 사용되는 블록 정보, inode 정보, 파일에 부여된 권한, 접근시간, 수정시간 , 변경시간 등을 확인할 수 있다.

 

wtmp -> last

- 사용자 로그인 및 로그아웃 정보

- 시스템 관련 정보

- 시스템 종료 및 부팅 정보

- 재부팅 정보

- telnet 및 ftp 등을 통한 로그인 정보

 

로그인 실패 정보 ->lastb 

- btmp 로그파일이 로그인 실패정보를 가지고있다. 

 

syslog 

syslog는 리눅스 운영체제에 대한 로그를 기록하는 데몬 프로세스로 syslogd라는 프로그램에 의해서 로그를 기록한다. syslogd.conf 는 각각의 로그파일을 어느 디렉토리에 기록할 것인지를 정의하는 설정 파일이다.

 

작업 스케줄 관리

cron

-cron은 일정한 날짜와 시간에 지정된 작업을 실행하는 프로세스로 반복적인 작업을 수행할 때 사용한다.

cron 프로세스는 /etc/crontab 파일에 설정된 것을 읽어서 작업을 수행한다

 

정보보안에서 cron이 중요한 이유는 두 가지가 있다. 첫 번째는 보안 취약점 검사를 수행할 때 매일 반복적으로 점검할 수 있다. 두 번째로는 공격자가 악성코드를 실행하는 명령을 crontab에 설정해서 악성코드를 반복적으로 실행할수도있다.

 

반응형

'공부 > 자격증' 카테고리의 다른 글

정보처리산업기사 01  (0) 2023.09.10
[보안기사] 보안기사 용어정리 1  (0) 2023.04.05
시스템보안  (0) 2020.02.06
01.29 정보보안산업기사  (0) 2020.01.29
시스템보안 - 병행성 제어  (0) 2020.01.17

+ Recent posts