다양한 방법을 통해 서버에 침입한 공격자가 가장 먼저 하는 일은 무엇일까요?
바로 본인의 침입 흔적을 지우기 위해 로그를 삭제하는 것입니다. 언제, 어떻게, 무슨 경로를 통해 들어왔는 지에 대한 흔적을 삭제하여 추적을 방해합니다. 침입 방식이 공개되면 같은 방법을 활용해 침입할 수 없기 때문입니다.
따라서 공격자의 로그 삭제 시도에 대응하려면 로그를 실시간으로 2차 백업해야 합니다. 여기서 중점으로 봐야 하는 로그는 접속 기록입니다. 접속 기록에는 [누가, 언제, 어디서, 어떻게]가 포함되어 있습니다.
이를 보관하고 점검하는 것은 법에 명시되어 있습니다. 올해 개정된 “개인정보의 안전성 확보 조치 기준”의 제8조(접속기록의 보관 및 점검) 항목에서 확인할 수 있습니다.
- 1. 개인정보처리자는 개인정보취급자의 개인정보처리시스템에 대한 접속기록을 1년 이상 보관ㆍ관리하여야 한다. 다만, 다음 각 호의 어느 하나에 해당하는 경우에는 2년 이상 보관ㆍ관리하여야 한다.
- 5만 명 이상의 정보주체에 관한 개인정보를 처리하는 개인정보처리시스템에 해당하는 경우
- 고유식별정보 또는 민감정보를 처리하는 개인정보처리시스템에 해당하는 경우
- 개인정보처리자로서 「전기통신사업법」제6조제1항에 따라 등록을 하거나 같은 항 단서에 따라 신고한 기간통신사업자에 해당하는 경우
- 2. 개인정보처리자는 개인정보의 오ㆍ남용, 분실ㆍ도난ㆍ유출ㆍ위조ㆍ변조 또는 훼손 등에 대응하기 위하여 개인정보처리시스템의 접속기록 등을 월 1회 이상 점검하여야 한다. 특히 개인정보의 다운로드가 확인된 경우에는 내부 관리 계획 등으로 정하는 바에 따라 그 사유를 반드시 확인하여야 한다.
- 3. 개인정보처리자는 접속기록이 위ㆍ변조 및 도난, 분실되지 않도록 해당 접속기록을 안전하게 보관하기 위한 조치를 하여야 한다.
결론적으로 개인정보처리시스템의 접속 기록을 1년 또는 2년 이상 보관해야 하며, 보관 기간 동안 무결성을 보장하며 월 1회 이상 점검을 해야 합니다.
리눅스 syslog에 남는 접속 기록 유형
리눅스에는 로그 메시지 생성 및 관리하는 syslog 서비스가 존재합니다. 이를 통해 부팅 메시지, 원격 접속 기록, 사용자 접속 기록, 로그인 기록 등 다양한 로그를 확인할 수 있습니다.
보안 관점에서 중점적으로 보는 기본 로그는 사용자 접속 기록입니다. 언제, 어디서, 누가, 어떻게 접속했는지에 대한 정보를 확인할 수 있으며, 다양한 모니터링 시나리오를 확인할 수 있습니다.
권한이 없는 사용자가 허용되지 않은 장소에서 운영 서버 접속 여부를 알 수 있습니다. 해당 로그를 토대로 방화벽, 보안 그룹을 통한 관련 IP 차단 등과 같은 조치를 진행할 수 있습니다.
리눅스 syslog에 남는 접속 기록 로그는 다음과 같습니다.
- 1. 로그인 로그
- pem 키를 이용한 로그인 로그 Feb 7 05:58:04 [host_name] sshd[0000]: **Accepted publickey** for [login_user] from [login_ip] port [login_port] ssh2: RSA SHA256:asdkjhfasdfkjh
- 패스워드를 이용한 로그인 로그
Feb 7 05:49:49 [host_name] sshd[0000]: Accepted password for [login_user] from [login_ip] port [login_port] ssh2
- 패스워드 실패 로그
Feb 7 06:12:10 [host_name] sshd[0000]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=[login_ip] user=[login_user]
2. 로그아웃 로그
- Feb 7 05:48:27 [host_name] sshd[0000]: Disconnected from user [login_user] [login_ip] port [login_port]
위 로그를 통해 pem키 사용 권한이 없는 사용자의 운영 서버 접속 여부, root 계정 접속 여부 등 다양한 시나리오 확인이 가능합니다. 또한 패스워드 실패 횟수를 통해 무차별 대입 공격 여부도 모니터링 할 수 있습니다.
와탭 로그 모니터링에서 보안 로그 모니터링 하기
터미널에서 tail, cat, more 등 다양한 명령어를 통해 로그 확인이 가능하지만, 해당 서버에 직접 접속하여 확인해야 한다는 단점이 있습니다.
와탭 로그 모니터링을 사용하면 한 화면에서 이기종 로그 분석, 대시보드를 통한 모니터링, 알림 설정 등이 가능한 로그 모니터링을 이용할 수 있습니다.
또한, 한 곳에서 엔터프라이즈의 데이터를 다량으로 수집, 집계 및 분석할 수 있으며 관련 보안 워크 프로를 간소화해 줍니다. 추가로 규정 준수 보고, 인시던트 관리, 위협 활동을 우선으로 보여 주는 대시보드와 같은 운영 기능도 제공합니다.
예를 들어, 내부 인사 시스템과 연동하여 휴가 중인 인원이 운영 DB 접속 여부 확인, 사무실 출근한 직원이 외부 또는 해외 네트워크로 VPN이 연결된 경우 등 여러 장비와 연동하여 다양한 시나리오 모니터링이 가능합니다.
와탭랩스에서 Flex 보드 기능을 이용하여 보안 로그 모니터링을 진행하고 있습니다. 서버 모니터링의 syslog 수집 기능을 사용하고 있으며, 리눅스의 profile 기능을 통해 history 로그를 syslog에 포함했습니다.
ssh 로그인 사용자를 통해 운영 서버에 접근 가능한 인원을 파악할 수 있으며, 매달 진행하는 권한 적정성 감사에 참고할 수 있습니다. ssh 로그인 시간과 로그아웃 시간을 비교하여 서버에 머무는 시간을 파악할 수 있으며, 짧게 머무는 경우가 연속적으로 발생하는 경우 의심이 필요합니다.
또한 root 권한으로 실행하는 사용자를 실시간으로 확인하여 해당 권한이 필요한 상태인지 같이 확인하고 있습니다.
추가로 와탭 알림을 3rd-party인 텔레그램에 연동하여 시스템 삭제, 파일 소유자 변경, 프로세스 강제 종료 등 내부에서 지정한 주의 명령어 사용 여부를 체크하고 있습니다.
해당 알림을 통해 어떤 사용자가 어떤 서버에 진행하여 특정 작업을 진행하였는지 확인할 수 있으며, 운영 또는 보안에 치명적인 작업을 진행한 경우를 실시간으로 확인할 수 있습니다. 또한, 침입자가 발생했을 때, 서비스에 영향을 준 행위를 즉각적으로 알아차릴 수 있습니다.
와탭은 공식적으로 재택을 허용하고 있지 않습니다. 그렇기 때문에 VPN 접속 역시 사무실 내부에서만 진행하고 있습니다. 사외에서 VPN을 접속한 경우 역시 알림을 통해 즉각적으로 확인하고 있습니다.
이 밖에도 수집되는 로그를 통해 다양한 시나리오를 확인할 수 있으며 대시보드를 통해 모니터링이 가능합니다. syslog 뿐만 아니라 내부에 설치된 보안 장비 등의 로그를 수집하여 이기종 분석을 통해 보안 워크 프로세스를 간소화할 수 있습니다.