겉바속촉

[보안] 시스템 로그 분석 4 (feat. Linux) 본문

IT 일기 (상반기)/네트워크 및 시스템 보안

[보안] 시스템 로그 분석 4 (feat. Linux)

겉바속촉 2021. 2. 7. 02:52
728x90
반응형

 

 

 

 

LINUX 시스템 로그분석

 

사용자 정보

 

  • 시스템에 접속한 사용자 정보 확인
  • 시스템에 로그인 되어있는 사용자확보를 위해 여러가지 명령을 이용
  • 시스템 사용자와 네트워크 접속 정보 확인 가능

 

프로그램 설명 파악가능한 정보
w, who, finger 시스템에 접속한 사용자 정보 추출 로그인된 사용자id, 터미널, 로그인 호스트,
로그인 시간, 사용명령
last 사용자 접근 기록 추출 사용자가 주로 접속하는 호스트, 접속 시간
lastlog 사용자 접근 기록 추출 전체 사용자의 최종 접속시각
nslookup 네트워크 정보 추출 접속 호스트 도메인, 호스트 명
whois 도메인 정보 추출 도메인 관리자 정보
traceroute 라우팅 정보 추출 라우팅 경로를 확인함으로써 최종 접속 경로

 

 

w

 

리눅스는 일반적으로 여러명이 공용으로 쓰기 위해 많이 사용합니다.

위의 표에서 w를 찍어보면, 보통 virtual tty라고 vty라는 것이 찍히는 것을 확인할 수 있습니다.

 

우리가 라우터 세팅시에 vty를 볼 수 있었는데요:)

 

라우터 스위치에서 콘솔포트를 쓸 때,

line vty라고 0에서 4까지 있었는 데 동시에 5명이 쓸 수 있다는 것을 의미했습니다.

 

마찬가지로 리눅스에 외부에서 원격으로 접속하면 가상회선에 접속했다는 정보가 뜹니다.

 

 

 

nslookup

 

nslookup은 리눅스의 dig라는 명령어가 있는데요.

window에서 nslookup을 입력해보겠습니다.

 

기본서버는 우리가 바라보는 서버가 출력이되는거에요

www.naver.com 을  입력하면 

 

이 주소는 ip주소가 뭐니?~라고 질문하는 겁니다.

 

그럼 다음과 같이 알려주고 있네요?!

C:\Windows\system32>nslookup
기본 서버:  dns.google
Address:  8.8.8.8

> www.naver.com
서버:    dns.google
Address:  8.8.8.8

권한 없는 응답:
이름:    e6030.a.akamaiedge.net
Address:  23.50.3.12
Aliases:  www.naver.com
          www.naver.com.nheos.com
          www.naver.com.edgekey.net

>

 

 

www.naver.com 을 자세하게 알아볼게요.

 

메인 도메인 : naver.com

서브 도메인 : www

 

서브 도메인은 마음껏 입력해도 무방합니다.

일반적으로 정의되어있는 것이 www면 웹m이면 모바일이라고 구분하는 것이죠!!

 

 

 

 

traceroute

 

목적지까지 가는 경로를 표시해줍니다.

그래서 주르륵 찍히는 주소들 중에서 router가 될 수도 있고 nat시켜주는 장비가 될 수도 있습니다.

 

windows에서 입력하면 tracert라고 입력하시면 okay~

 

C:\Windows\system32>tracert www.google.co.kr

최대 30홉 이상의
www.google.co.kr [172.217.25.195](으)로 가는 경로 추적:

  1     3 ms     *        2 ms  192.168.0.1
  2     *        *        *     요청 시간이 만료되었습니다.
  3     9 ms     8 ms     9 ms  112.189.155.149
  4    10 ms     9 ms     9 ms  112.189.145.149
  5     *        *        *     요청 시간이 만료되었습니다.
  6    10 ms     9 ms     9 ms  112.174.7.126
  7    38 ms    37 ms    37 ms  72.14.194.194
  8    47 ms    47 ms    47 ms  108.170.242.129
  9    44 ms    44 ms    43 ms  108.170.233.15
 10   239 ms    40 ms    41 ms  nrt12s13-in-f195.1e100.net [172.217.25.195]

추적을 완료했습니다.

 

 

 

 

 

 

프로세스 점검

 

 

시스템에 동작 프로세스 점검

 

프로세스를 확인하는 명령어로 해당 시스템에 의심스러운 프로세스나 데몬이 실행되고 있는 지 판별

 

프로그램 설명 파악 가능 정보
ps 프로세스 정보 추출
 - ef, aux, au 옵션 : 프로세스 사용자/ 식별자(PID)/ 부모프로세스(PPID),
                          CPU 및 메모리 사용율, 동작중인 TTY상태,
                           시작 및 동작 시간을 함께 출력
 - 사용자 프로세스 시작 시간이 평소와는 다른 시간대에 수행되는 프로세스
 - 프로세스 사용자가 비정상적인 사용자인 경우
 - 프로세스 이름이 일반적인 명령 아닌 경우
 - 프로세스의 CPU 이용을 비정상적으로 높게 나타나는 경우
 - 프로세스가 제어 터미널이 존재하지 않는 경우

top 프로세스 정보 추출  
- 시스템 부하를 실시간으로 확인하기 위해 사용되는 도구로서
   현재 RUN상태의 프로세스와 IDLE(휴지) 상태의 프로세스를
   정렬된 형태로 확인 가능

strings 문자열 검색
 - 의심가는 명령을 갖는 프로세스에 해당하는 실팽파일을
    프로세스가 내포하는 문자열 점검이 가능.
 - 바이너리에서 일반 텍스트 문자열 및 출력가능한 텍스트 출력에 사용

 

nm 실행파일 분석
 - 바이너리 파일에서 사용되는 함수 심볼을 확인
 - 'nm'명령을 이용하여 오브젝트 파일내에 백도어 및 쉘코드 탐지
 - 'p'옵션으로 내부 함수명을 확인 가능
 - 'Du'옵션으로 실행시간시 참조되는 함수명까지 확인 가능

truss 프로세스 정보 추출
 - Solaris 시스템의 'turss'명령 등으로 의심되는 프로세스 추적 가능
 - 'turss'명령은 'p'옵션으로 특정 프로세스ID 추적이 가능
 - 'f'옵션으로 Child프로세스가지 추적 가능

lsof 프로세스 정보 추출
 - 포로세스 이름, PID, Running 프로세스와 연관된 소유자 확인 가능
 - cwd(현재 디렉토리), lnn(라이브러리 레퍼런스), ltx(공유라이브러리),
   mem(memory mapped파일), pd(상위디렉터리), rtd(루트 디렉터리),
   파일타입, 디바이스번호, 파일크기, inode번호, 파일이름 확인 가능
 - '+D옵션' : 특정 디렉터리의 오픈 된 파일 점검
                 숨겨진 파일형태 백도어 탐지
 - 'i옵션' : TCP/UDP소켓을 사용하는 프로세스 확인
              네트워크 백도어 확인

 

 

 

 

 

 

 

네트워크 점검

 

사고 호스트의 현재 네트워크 접속상태와 비정상적인 서비스 존재여부 점검

 

프로그램 설명 파악 가능한 정보
netstat -an 네트워크 정보 추출  - 'an' : 모든 네트워크 포트에 대한 정보를 IP주소값으로 출력
lsof -i 네트워크 정보 추출
 - 'i' : 인터넷 포트와 연관된 프로세스 정보출력
        네트워크 서비스를 담당하는 데몬 프로세스 확인도 가능

tcpdump, ngrep 네트워크 스니퍼  - 네트워크로 송수신되는 트래픽을 스니핑하여 상세정보 출력
nmap 네트워크 스캐너  - 네트워크 호스트들에 활성되어 있는 인터넷 포트 정보 점검 가능

 

 

 

 

 

시스템 로그 점검

 

: 일반적인 로그파일의 경우 침입자에 의해 삭제되거나 변조되어 로그 정보를 믿기 어렵지만,

  변경되지 않은 경우 유용한 정보를 확보할 수 있음

 

 

프로그램 분석 내용
UTMP(X)  w, who, finger 등과 같은 명령어로 현재 로그인한 사용자들에 대한 정보 분석
WTMP(X)  last 명령어로 사용자들 로그인, 로그아웃 분석
 -f filename : wtmp 형태로 백업된 파일에 저장된 정보 분석 가능
secure  /var/log/secure 파일을 분석하여 보안과 인증관련 메시지 분석
xferlog  FTPD 이용한 파일 송수신 내역 분석
~/.history  사용자가 시스템에서 실행시킨 명령어 분석
 bash 쉘을 이용할 경우 .bash_history 파일에 입력한 모든 명령어가 기록됨
messages  커널 에러, 리부팅 메시지, 로그인 실패, 해킹 공격 기법 등을 분석
access_log, error_log  아파치 웹 서비스 관련 로그, 홈페이지에 접근한 이용자들의 접근 기록 분석,
 정상적인 웹 로그 형태와 비정상적인 웹 로그 형태를 구분, 웹 스캐닝 및 침투 시도 파악
시스템 파일  시스템에서 로그인, 인터넷 서비스, 주기적 서비스 실행 등에 사용되는 주요파일 분석

 

 

 

 

 

 

Unix 시스템에서의 로그 종류

 

로그 파일명 설명
btmp  특정 횟수 (기본 5회) 이상의 로그인 실패에 대한 기록
syslog  운영체제 및 응용프로그램의 주요 동작 내역
secure  SSH 접근 로그
xferlog  FTP 접근 로그
authlog  시스템 내 인증 관련 이벤트 기록
shutdownlog  Reboot, Shutdown 등의 시스템 시동 정지 관련 기록

 

 

 

 

 

 

사고 호스트 백업

 

  • 사고 호스트에 백업장치가 연결되지 않은 경우 네트워크 통해 백업 수행
  • 사고호스트 백업은 로컬 백업장치가 있다면 해당 로컬 관리자에 테이프를 중비하도록 조치 후 백업 수행

 

 

Oracle RAC

 

: DB가 분산되어 있어도 데이터가 동일해서 한쪽에 문제가 발생해도 업무에 지장 없음.
  하지만 Oracle은 유지보수 비용이 꽤 높다.

 

 

프로그램 설명 참고사이트
nc 원격 시스템 간 데이터 송수신을 위한 프로그램 http://netcat.sourceforge.net/
dd 시스템의 보조 기억장치에 저장된 데이터를 입.출력하는 프로그램 운영체제 기본 프로그램

 

 

 

 

 

 

변형된 파일 탐지 및 복구

 

 

  • 침입자는 사고호스트에 침입 후에 일반적으로 루트킷, 백도어를 설치하여 재 침입을 시도하며
    시스템로그를 삭제하는 작업들을 수행.
  • inode 리스트 확보 --> inode 테이블의 번호를 통해 최신 여부 판단 가능

 

 

 

 

 

 

 

로그 분석 및 복구

 

 

  1.  침입차단 시스템 로그 분석 

      ㅁ 감사 기록된 스캐닝 시도나 특정 포트로의 접근시도에 대해 근원지 ip주소 분석 --> 공격 근원지 확인

  2.  침입탐지 시스템 로그 분석

      ㅁ 탐지된 스캐닝 시도, 공격 신호에 대한 alarm을 확인 --> 침입자 공격방법 확인

      
  3.  로그 서버의 로그정보 분석

      ㅁ 각 호스트의 로그 정보에 대해 로그서버를 지정하여 저장 --> 로그 서버에 저장된 로그 분석

  4.  시스템 보안 작업 및 개선

      ㅁ 백업 데이터가 손상되지 않았음을 확인한 후 백업 수행 or 시스템 재설치
      ㅁ 시스템 관한 모든 패치들을 수집하여 설치
      ㅁ 정보보호 시스템 설치 및 운영
      ㅁ 모든 사용자의 패스워드 강제 변경

 

 

 

 

 

 

728x90
반응형