겉바속촉
[보안] 시스템 로그 분석 4 (feat. Linux) 본문
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 테이블의 번호를 통해 최신 여부 판단 가능
로그 분석 및 복구
- 침입차단 시스템 로그 분석
ㅁ 감사 기록된 스캐닝 시도나 특정 포트로의 접근시도에 대해 근원지 ip주소 분석 --> 공격 근원지 확인 - 침입탐지 시스템 로그 분석
ㅁ 탐지된 스캐닝 시도, 공격 신호에 대한 alarm을 확인 --> 침입자 공격방법 확인
- 로그 서버의 로그정보 분석
ㅁ 각 호스트의 로그 정보에 대해 로그서버를 지정하여 저장 --> 로그 서버에 저장된 로그 분석 - 시스템 보안 작업 및 개선
ㅁ 백업 데이터가 손상되지 않았음을 확인한 후 백업 수행 or 시스템 재설치
ㅁ 시스템 관한 모든 패치들을 수집하여 설치
ㅁ 정보보호 시스템 설치 및 운영
ㅁ 모든 사용자의 패스워드 강제 변경
'IT 일기 (상반기) > 네트워크 및 시스템 보안' 카테고리의 다른 글
[보안] 와이어샤크 파헤치기 (2) | 2021.02.08 |
---|---|
[보안] 보안장비 로그 분석 (0) | 2021.02.08 |
[보안] 시스템 로그분석 3 (0) | 2021.02.05 |
[보안] 자동화 도구 (0) | 2021.02.05 |
[보안] Sysinternals, Nirsoft 설치 후 사용해보기 (0) | 2021.02.05 |