1. 로그 관련 기본 개념
로그는 공격자를 추적하는데 매우 용이하다.
윈도우와 리눅스의 로그 체계는 상당히 다르다. 윈도우는 이벤트라는 중앙 집중화된 로그를 수집하여 저장하지만, 리눅스는 로그를 여러 곳에 산발적으로 저장한다. 윈도우는 로그가 중앙 집중화되어 관리하기 편하다. 하지만 공격자가 한 로그만 삭제하면 되므로 삭제 위험도 크다. 또 로그에 대한 보안 수준이 낮은 편이다. 이에 반해 여러 곳에 저장된 리눅스 로그는 초보자는 찾기조차 쉽지 않다. 또 공격자도 로그를 모두 찾아 지우기 어렵다. 따라서 윈도우보다 리눅스에서 추적자를 찾는 것이 좀 더 수월할 수 있다. 리눅스의 모든 로그는 지우기 어렵지만, 해커를 다양한 측면에서 추적할 수 있기 때문이다.
로그를 본격적으로 살펴보기에 앞서 몇 가지 관련 개념을 알아보자.
사용자가 시스템에 로그인하여 명령을 내리는 과정에 대한 시스템 동작은 인증, 인가, accounting으로 구분한다. 이를 AAA라고도 한다.
인증은 자신의 신원을 시스템에 증명하는 과정으로 가장 일반적인 경우는 ID와 패스워드를 입력하는 과정이다.
그리고 이를 확인하는 과정이 '인가'이다. 그 사람의 출입이 허용되지 않은 문이라면 문은 열리지 않을 것이다.
Accounting은 시스템에 로그인한 후 시스템이 이에 대한 기록을 남기는 과정이다.
2. 윈도우 시스템 로그 분석과 설정
윈도우는 굉장히 다양한 로그를 남긴다. 시스템 관리자에게 많은 정보를 줄 듯 보이지만 잘못된 로그 관리는 시스템에 많은 부담을 주기도 한다.
1) 해커에 대한 즉각적인 확인
시스템에 남은 로그 정보도 중요하지만, 현재 로그인된 사용자를 확인하는 것도 매우 중요하다.
먼저 net user를 통해 현재 컴퓨터에 있는 계정을 볼 수 있다.
net session은 NET BIOS를 이용하여 시스템 자원에 접근해 있는 현황을 확인할 수 있다.
NetBIOS는 폴더 공유와 관리자 공유를 위한 프로토콜이다.
이는 이와 비슷하게도 확인할 수 있다.
또한 doskey /history를 통해 명령 창에서 내린 명령을 확인할 수도 있다.
2) 로그 정책의 설정
이는 적절한 로그를 남길 수 있도록 로그 정책을 수립하는 것이다.
윈도우 2016에서는 제어판-관리 도구- 로컬 보안 정책 - 로컬 정책 - 감사 정책에서 확인하고 설정할 수 있지만 현재 사용하는 윈도우10에서는 찾아볼 수가 없었다.
따라서 검색해보았더니 https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=spcms1&logNo=221202672249
저 블로그에 나와있는 것 중 밑에 것을 받고 secpol.msc를 검색하여 로컬 정책 수립을 할 수가 있다.
이렇게 따로 다운로드하아야만 하고 지원해주는 것은 pro에서만 지원을 해준다고 한다...
이런 로그는 이벤트 ID로써 어떤 작업을 하려는 것인지 확인할 수가 있다.
주요 개채 액세스 감사 로그의 이벤트 ID는 주로 4600번대에 존재하며
계정 관리 감사 로그의 이벤트 ID는 4700번대에 존재한다.
그리고 이벤트 ID와는 별개로 오류코드 또한 따로 존재하여 로그를 분석해보려면 오류코드들을 찾아보아야 한다.
그 외의 권한 사용 감사, 로그인 이벤트 감사, 디렉터리 서비스 액세스 감사, 정책 변경 감사, 프로세스 추적 감사 등을
감사 로그에서 확인할 수가 있다.
3) 윈도우 로그 관리하기
각 윈도우 로그에서 우클릭 후 위의 속성 버튼을 누르면
로그가 저장되는 경로가 존재한다.
이것은 보안 로그이고 보안 로그 이외의 응용 프로그램 로그, 시스템 로그 등도 같은 디렉터리에 들어 있다. 이런 로그 파일은 웹 브라우저에서 복사하여 다른 시스템의 이벤트 뷰어에서 열면 파일이 손상된 것으로 확인된다. 그러므로 이벤트 뷰어에서 저장하여 다른 시스템의 이벤트 뷰어에서 열어야 한다. 백업할 때도 마찬가지이다. 이벤트 뷰어에서 다음과 같이 저장하여 백업한다.
만약에 원격 시스템 로그를 관리를 한다면 전용 설루션을 구입하는 방법이 가장 쉽고 효율적일 것이다.
그러나 모든 경우에 설루션을 도입하는 것은 무리이고 이를 대신하여 MMC를 이용할 수 있다고 한다.
3. 리눅스 로그 분석과 설정
1) 로그 디렉터리
리눅스에서는 로그를 저장하는 경로가 시스템마다 조금씩 다르다. 그리고 경로 두 개 이상에 로그를 나누어 저장하기도 한다.
주로 다음과 같다.
/usr/adm : 초기 리눅스, BSD계열:HP-UX 9.X, SunOS 4.x
/var/adm : 최근 리눅스, SVR 계열 : 오라클 솔라리스, HP-UX 10.x이후, IBM AIX
/var/log : 일부 BSD계열 : BSD, FreeBSD, 오라클 솔라리스, 리눅스
/var/run : 일부 리눅스
- UTMP 로그
utmp파일에 로그를 남기는 프로그램을 utmp 데몬이다. utmp 데몬은 리눅스의 가장 기본적인 로깅을 제공하는 데몬으로 현재 시스템에 로그인한 사용자 상태를 출력한다. utmp구조체는 로그인 계정 이름, 로그인한 환경, 로그인한 디바이스 등을 텍스트가 아닌 바이너리 형태로 저장한다. 따라서 vi 에디터로는 확인할 수 없고 특정 명령을 사용하여 확인할 수 있다.
utmp 데몬에 저장된 로그를 출력하는 명령에는 w, who, users, whodo, finger 등이 있다.
- WTMP 로그
wtmp파일에 로그를 남기는 wtmp 데몬도 tmp구조체를 그대로 사용하며, utmp데몬과 비슷한 역할을 한다.
즉, 사용자의 로그인, 로그아웃, 시스템 재부팅 정보를 담는다.
wtmp 데몬도 utmp데몬처럼 wtmp파일에 텍스트가 아닌 바이너리 형태로 데이터를 저장한다.
last명령어로 내용을 확인할 수 있다.
- su로그
su는 권한 변경에 대한 로그이다. 즉, 로그인한 계정의 권한을 변경할 때 쓰던 su 명령에 대한 로그이다.
su root와 su -root는 모두 관리자 계정으로 권한을 변경한 것이므로 su 로그에 남게 된다.
su 로그는 공격자가 일반 계정으로 로그인한 후 패스워드 추측 공격 등을 수행했을 때 권한 변경 실패를 의미하는 '-'여러 개로 저장된다.
그 때문에 관리자는 이를 확인하여 공격의도를 가진 일반 계정을 추적해 낼 수 있다.
- Pacct로그
pacct로그는 시스템에 로그인한 모든 사용자가 수행한 프로그램 정보를 저장하는 로그이다. 이 로그는 사용자가 로그인했다가 로그오프 할 때까지 입력한 명령과 연결에 이용한 터미널의 종류와 시간 등을 저장한다. 또 pacct 로그는 해커를 추적하려는 목적보다는 보통 대형 시스템을 여러 사용자가 비용을 지불하는 형식으로 공유할 때 각 사용자 요금을 부과하는 데 이용한다.
pacct는 시스템 자원을 비교적 많이 소모하며, 기본적으로 동작하지는 않는다.
-. sh_history 또는. bash_history
리눅스에서 실행한 명령 기록은. sh_history 또는. bash_history 등 형식으로 저장되며 hisotry명령을 통해 순서대로 출력할 수 있다.
-syslog로그
syslog 데몬은 시스템의 로그 정보를 대부분 수집하여 로깅하며 해당 로그의 종류와 로깅 수준은 syslog.conf파일에서 확인할 수 있다.
저장된 로그는 /var/log/syslog에 있는데 이는
다음과 같이 기록이 된다.
'Security_lab' 카테고리의 다른 글
윈도우 hosts 파일 실습 (0) | 2021.08.05 |
---|---|
해킹 침해사고 대응절차 (0) | 2021.08.03 |
백도어 탐지 순서와 대응책 (0) | 2021.08.02 |
백도어 (0) | 2021.07.30 |
포맷 스트링 공격 (0) | 2021.07.29 |