Ssh Bruteforce Attack

중국의 해커들이 최근 가장 많이 사용하고 있는 공격 방법 중 어느정도 그 실체가 드러난 것은 대략 두 가지임. 서버 관리자들은 잘 알겠지만

첫 번째는 ssh bruteforce attack임. 이것은 /etc/passwd 파일에 등록되어 있는 각 계정과 패스워드를 무작위 대입 방법을 사용하여 서버에 접속하는 방법임. 이 공격을 하면 다음과 같은 로그가 /var/log/auth.log 파일에 남는다.

Jul 25 08:31:32 localhost sshd[23569]: Failed password for invalid user samba from ::ffff:211.140.122.36 port 56974 ssh2 
Jul 25 08:31:33 localhost sshd[23572]: Invalid user wwwrun from ::ffff:211.140.122.36 
Jul 25 08:31:36 localhost sshd[23572]: Failed password for invalid user wwwrun from ::ffff:211.140.122.36 port 57533 ssh2 
Jul 25 08:31:37 localhost sshd[23575]: Invalid user ldap from ::ffff:211.140.122.36
May  5 15:09:40 ubuntu sshd[15558]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=122.115.62.34  user=root
May  5 15:09:40 ubuntu sshd[15558]: pam_winbind(sshd:auth): getting password (0x00000388)
May  5 15:09:40 ubuntu sshd[15558]: pam_winbind(sshd:auth): pam_get_item returned a password
May  5 15:09:40 ubuntu sshd[15558]: pam_winbind(sshd:auth): request wbcLogonUser failed: WBC_ERR_AUTH_ERROR, PAM error: PAM_USER_UNKNOWN (10), NTSTATUS: NT_STATUS_NO_SUCH_USER, Er$
May  5 15:09:40 ubuntu sshd[15560]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=122.115.62.34  user=root
May  5 15:09:40 ubuntu sshd[15560]: pam_winbind(sshd:auth): getting password (0x00000388)
May  5 15:09:40 ubuntu sshd[15560]: pam_winbind(sshd:auth): pam_get_item returned a password
May  5 15:09:40 ubuntu sshd[15560]: pam_winbind(sshd:auth): request wbcLogonUser failed: WBC_ERR_AUTH_ERROR, PAM error: PAM_USER_UNKNOWN (10), NTSTATUS: NT_STATUS_NO_SUCH_USER, Er$
May  5 15:09:41 ubuntu sshd[15561]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=122.115.62.34  user=root
May  5 15:09:41 ubuntu sshd[15561]: pam_winbind(sshd:auth): getting password (0x00000388)
May  5 15:09:41 ubuntu sshd[15561]: pam_winbind(sshd:auth): pam_get_item returned a password
May  5 15:09:41 ubuntu sshd[15561]: pam_winbind(sshd:auth): request wbcLogonUser failed: WBC_ERR_AUTH_ERROR, PAM error: PAM_USER_UNKNOWN (10), NTSTATUS: NT_STATUS_NO_SUCH_USER, Er$
May  5 15:09:42 ubuntu sshd[15557]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=122.115.62.34  user=root
May  5 15:09:42 ubuntu sshd[15557]: pam_winbind(sshd:auth): getting password (0x00000388)
May  5 15:09:42 ubuntu sshd[15557]: pam_winbind(sshd:auth): pam_get_item returned a password
May  5 15:09:42 ubuntu sshd[15557]: pam_winbind(sshd:auth): request wbcLogonUser failed: WBC_ERR_AUTH_ERROR, PAM error: PAM_USER_UNKNOWN (10), NTSTATUS: NT_STATUS_NO_SUCH_USER, Er$
May  5 15:09:42 ubuntu sshd[15558]: Failed password for root from 122.115.62.34 port 1410 ssh2
May  5 15:09:42 ubuntu sshd[15560]: Failed password for root from 122.115.62.34 port 1420 ssh2

이 로그에 남아 있는 아이피를 조사해보면 중국 아이피 임을 알 수 있다. 실제 이 공격에 의해 한번에 10개의 서버가 당한 경우도 있었다.

이에 대한 대비책으로

  1. /etc/passwd 파일에 사용되지 않는 계정 앞에 comment 처리를 하고,
  2. 사용되는 계정의 패스워드는 ssh bruteforce attack에 사용되는 사전파일에 나오지 않는 강력한 패스워드를 사용해야 함. 강력한 패스워드란 흔한 사람 이름이나 지역 이름, 그리고 일반적으로 많이 사용되는 영어단어를 제외한 특수문자와의 조합을 말함.
  3. Fail2ban과 같은 도구 이용

두 번째로 많이 사용되고 있는 것은 자동화된 공격툴임. 현재 가장 많이 사용되고 있는 자동화된 공격툴은 HDSI, MSSQL WEB SHELL, NBSI 등을 비롯한 툴들이 있다. 이 툴들의 공통점은 자동화된 웹해킹을 실행하고, 이를 통해 각종 데이터베이스의 정보를 빼 간다는 것임. 데이터베이스에는 각종 중요한 정보들이 들어 있다. 만약 그 정보들이 암호화되어 있지 않다면 심각한 결과를 초래할 수도 있다. 또한 웹 쉘을 이용해 로컬 공격을 실행하고, 이를 통해 시스템 전체를 장악한다는 것임.

* 리눅스포털

역링크