서버관리

리눅스 서버 SSH 접근 해킹 시도 로그 분석

2018. 10. 15. 02:19


반응형


부모님 집에 소형 리눅스 서버를 운영하면서 허브 자체의 포트포워딩 기능을 이용해 서버를 직접 외부 인터넷에 곧바로 연결시켰지만 얼마 가지 않아 외부에서 들어오는 SSH 로그인 시도가 너무 많아져서 서버 속도가 너무 느려지는 현상이 발생하다가 몇 개월 후에는 아예 서버가 해킹 당했는지 부팅조차 되지 않는 상황이 되어서 결국 리눅스 시스템을 다시 구축한 경험이 있습니다. 그 후 일반 회사 인프라쪽에서 일을 하면서 알게된 사실은 자체적으로 서버실을 운영하는 기업들은 프록시서버나 웹서버처럼 외부 인터넷에 연결이 되어야 하는 서버만 DMZ이라는 중립적인 구역 안에 두어 외부 인터넷과 연결 되게하고 그 외의 사내 인트라넷이나 ERP 시스템 등은 라우터나 방화벽 등을 이용해 외부와의 연결을 철저하게 막는다는 것을 알았습니다. 리눅스 자체 방화벽이나 SE리눅스를 활성화시켰음에도 불구하고 그대로 외부 인터넷에 연결시켜놓으면 얼마가지 않아 전세계에서 접속 시도를 하는 해커들에 의해 해킹을 당할 위험이 크다는걸 몸소 체험했습니다. 그래서 현재는 외부에서 직접적으로 리눅스 서버로의 연결을 막는 대신 리눅스 서버와 동일한 서브넷에 있는 (동일한 허브에 연결된) 24시간 365일 돌아가는 윈도우 노트북을 통해서만 리눅스 서버에 접속이 가능하도록 해놓았습니다. 그리고 제가 사는 집의 맥북에서 Microsoft Remote Desktop 앱 혹은 팀뷰어으로 먼저 부모님집에 있는 윈도우 노트북에 접속한 후 거기서 리눅스 서버에 접속하는 방식을 활용하고 있습니다. 아래는 이전 방식으로 사용하는 동안 발생했던 외부 침입자에 의한 리눅스 서버 로그인 실패 로그를 액세스와 엑셀을 이용해서 분석 및 통계를 해보았습니다.



  • 분석 대상 : CentOS의 SSH 로그인 실패 기록

  • 로그인 실패 로그 파일 경로 : /var/log/btmp

  • 조회 명령어 : lastb

  • 로그 기록 기간 : 2017/11/1 - 2017/11/20

  • 로그인 시도 횟수 : 151,991건



1. 계정 별 분석



계정 별로 분석을 해보니 총 2850개의 계정으로 접속 시도가 되었으며 그 중에서 root로의 접근이 전체 접근 시도의 86.7%로 가장 많은 비율을 차지했습니다. 이런 이유에서라도 SSH 서버 설정에서 root의 로그인을 막는 것만으로도 보안 수준을 상당히 높일 수 있을 것 같습니다. 흔히 테스트 용도로 만드는 계정인 test가 2위에 오른 것도 주목할만한 부분입니다. 그 외에 시스템 모니터링 툴인 nagios, zabbix, cacti 의 기본 계정과 Oracle 의 기본 계정인 oracle과 weblogic, 우분투 리눅스의 웹서버 기본 계정인 www-data이 상위권에 올라왔으며 기타 다양한 툴의 관리자 계정으로 많이 사용되는 admin이 리스트에 있는 것을 알 수 있습니다. 이러한 공격 방식은 일종의 사전 공격(Dictionary attack)으로 사람들이 흔히 사용하는 사용자 계정명과 패스워드를 따로 데이터베이스화 해놓고 해킹 시도 대상의 서버에 차례대로 계정명과 패스워드를 차례차례 대입하여 공격합니다. 어쩌다가 운이 좋아 맞아 떨어지면 해킹에 성공하는 것이고 아니면 될 때까지 접속을 시도할테니 당연히 서버에 부하가 많이 가겠죠. 이런 경우 SSH 서버 설정에서 동일한 계정으로 X회 이상 접속 실패하면 해당 공격자의 IP를 특정 시간동안 접속 금지시키는 등의 방법으로 악의적인 접근 시도에 대응할 수 있습니다.



2. 접속 국가별 분석



총 33개의 나라에서 접속 시도가 있었으며 충분히 예상가능하듯 중국에서의 접속 시도 비율이 92%로 압도적이었습니다. 과연 접속자는 누구일까요? 평범한 일반인일까요? 아니면 혹시 중국 해커부대일까요?



3. ISP (Internet Service Provider) 별 분석



91개의 ISP에서 접근한 것으로 나타났지만 그 중 상당수는 같은 회사인데 지역만 다른 지사로 보입니다. ISP는 비교적 고르게 분포되어 있지만 상위권 중 대다수가 China Telecom으로 드러났습니다. 이런 경우 China Telecom의 망을 사용하는 연결된 PC를 사용하는 고객(일반인 혹은 기업 등의 조직)이 접속을 하는 것이라고 볼 수 있습니다.



4. IP 주소별 분석



총 153개의 호스트에서 제 서버로 접속을 한 것으로 드러났습니다. 위 IP 주소를 https://www.abuseipdb.com 혹은 https://anti-hacker-alliance.com 에서 조회를 해보면 이 IP로부터 접근 공격을 받은 호스트의 통계와 피해자의 증언을 확인할 수 있습니다. 제 서버만 하더라도 218.87.109.253 이라는 호스트로부터 20일간 2만 8천번의 공격을 받았는데 저같은 피해자가 아주 많은 것으로 보아 공격자의 시스템 수준도 보통이 아닌 것 같고 특정한 목적을 가진 전문 해커가 아닐까 싶습니다.



5. 요일, 시간대별 분석




요일(월-일), 시간대(0-24시) 별 분석 결과는 대체로 고르게 분포해있어 별다른 특이점이나 의미있는 데이터는 발견하지 못했습니다. 하긴 호스트 수도 많고 국적도 다양하다보니 요일이나 시간대로 분석하는건 별 의미가 없는 것 같습니다.



결론

위와 같이 다양한 기준으로 분석을 해보았는데 결과를 보니 아마 다른 피해자들도 비슷한 결과가 나오리라 생각됩니다. 제 서버라고 해야 별다른 중요한 데이터도 없는 보잘 것 없는 서버인데도 이렇게 해커의 접속 시도가 높은걸 보면 그저 공격자도 IP를 무작위로 돌려서 접속 시도를 하는 것 같습니다. 서버실을 운영하는 일반 기업에서는 보통 전문 방화벽 장비를 사용하는게 기본이고 웹서버나 프록시 서버같은 인터넷에 연결되어야 하는 용도를 제외하고는 거의 대부분의 사내 시스템은 외부와의 접근을 막고 필요한 경우에만 VPN 등을 통해 외부에서 제한적으로 접근 가능하도록 운영을 하는 경우가 대부분입니다. 그렇기 때문에 일반 개인이 전문 방화벽 장비가 없이 외부 인터넷에 직접적으로 노출되는 웹서버나 SSH 서버를 운영하는 것은 상당히 위험한 일이 될 것 같습니다. 그에 대한 해결책으로 저처럼 리눅스 서버와 같은 허브에 연결된 윈도우 PC를 통해서만 외부에서 리눅스 서버에 접근이 가능하도록 하는 방법이 하나의 대안이 될 수 있습니다. 윈도우의 경우 리눅스처럼 사용자의 특별한 설정이 없어도 기본적으로 방화벽이 작동하고 보통 윈도우에서 SSH, 텔넷 서버를 사용하는 경우는 드물기 때문에 서버 용도로 주로 사용하는 리눅스 서버에 비해서 해킹에 상대적으로 안전하다고 볼 수 있습니다. 이렇게 윈도우 PC를 리눅스 서버에 대한 방화벽 겸 컨트롤러로 사용한 이후로 별다른 해커에 의한 접근 시도나 그로인한 서버 성능 저하같은 현상은 없었습니다. 물론 윈도우 PC에서 RDP나 팀뷰어를 사용하는 경우 이에 대한 계정과 패스워드를 복잡하게 하는 것이 중요합니다. 위에서 분석해놓은 데이터의 원본 엑셀 파일은 아래에 첨부해드리니 필요하시면 참고하시기 바랍니다.


SSH_login_analysis.xlsx


반응형

작성자

공유

댓글