CERTCC에 올라온 질문과 답변인데 참고가 될거같아서 올립니다.
첨부파일은 SCANSSH 1.6B입니다.
타네트웍을 무작위로 스캔할경우 무병장수에 지장이 있을지도 모르니
테스트용으로만 사용하시기 바랍니다.

작성자 : 홍석범

>SSH 공격행위를 확인할 수 있는 또 다른 방법이 없을까요?
snort 와 같은 IDS를 같이 작동하시는 것도 방법이 될 수 있구요..
아니면, 아래에서 설명할 몇가지 보안 설정만 해도 공격을 방어할 수 있습니다.

>ScanSSH은 네트워크상에 운영되고 있는 SSH 서버의 IP와
>SSH 버젼을 알려주는 기능이 있다고 합니다.
>이와 관련된 자세한 정보를 알고 싶습니다.

Scanssh 는 빠른 스캔 속도로 최근 x2 exploit 와 결합하여 많이 사용되고 있습니다.
(초당 135개의 호스트를 스캔한다고 하는군요...)
Scanssh 는 공식 사이트인
http://www.monkey.org/~provos/scanssh/ 에서 다운로드 하실 수 있으며

Scanssh 관련 자료료는 아래의 사이트를 참고하시기 바랍니다.
http://www.citi.umich.edu/techreports/reports/citi-tr-01-13.pdf

그리고 지난 메일에서 언급드렸던 "소스포트를 22번으로 하는 ssh 스캔" 은
synscan 이라는 툴을 이용하는 것으로 확인하였습니다.
synscan 의 경우
./synscan 192.168.1 result.log eth0 0 22 와 같이 실행시 아래와 같이
소스와 목적지 포트를 모두 22로 하여 빠른 속도로 스캔을 하여 scanssh 와
같은 방식으로 스캔 결과를 파일에 저장합니다.

# tcpdump 결과
13:58:56. 192.168.1.3.ssh > 192.168.1.15.ssh: S 136302779:136302779(0) win 47302

# RTSD 결과
02/04/03 07:10:34]
[Scan Attack] From 131.172.140.1:22 To 211.xx.xx.xx:22
[Scan Attack] From 131.172.140.1:22 To 211.xx.xx.xx:22

스캔속도는 위의 Scanssh 와 거의 비슷한 것 같습니다.

그리고 ssh 의 보안을 강화하기 위해서는 아래와 같은 설정이 도움이 되실 것입니다.

PermitRootLogin No
root 로의 직접 로그인을 허용하지 않는것이 좋습니다.

Listen 678
default 인 22번 포트를 사용하지 않고 다른 포트를 사용하실 경우
위와 같이 22번에 대한 brutal scan 으로부터 안전하겠지요..

AllowUsers sysop admin
ssh 로의 로그인을 허용할 유저를 스페이스로 구분하여 사용할 수 있습니다.

AllowGroups wheel admin
ssh 로의 로그인을 허용할 그룹을 스페이스로 구분하여 사용할 수 있습니다.
이외 ssh.com 에서 제공하는 버전을 사용하실 경우
DenyHosts, AllowSHosts 등을 이용하여 22번포트에 대한 접근 통제를 하실 수
있습니다.
아울러 CRC32 Attack 등에 대응하려면 ssh1 대신 ssh2 를 사용하셔야 하며
이를 위해서는 OpenSSH 의 경우 /etc/ssh/sshd_config 파일에서
"Protocol 2" 와 같이 수정하고
ssh.com 버전의 경우 /etc/ssh2/sshd2_config 파일에서
"Ssh1Compatibility no" 와 같이 수정하시면 됩니다.

참고로 ssh2 는 ssh Banner 가 2.0 이나 1.99 인지 확인하시면 됩니다.
(예:SSH-1.99-OpenSSH_3.1p1)
위의 경우 ssh1, ssh2 가 모두 지원되며 프로그램은 3.1p1 이라는 의미입니다.
만약 Protocol 2 로 수정하였을 경우에는
SSH-2.0-OpenSSH_3.1p1 로 바뀐것을 확인하실 수 있습니다.

그리고 당연한 이야기이지만 최신의 버전을 사용하는 것 역시 중요할 것입니다.

+ Recent posts