본문 바로가기
Cloud

[AWS]OpenSSH 보안 업데이트 권고 관련 계정 내 ssh 버젼 쉽게 체크하기!

by C곰군 2024. 7. 4.

안녕하세요?

곰군입니다.

 

OpenSSH를 악용하여 비인증 원격코드실행(RCE)이 가능한 취약점(CVE-2024-6387)에 대해 보안 업데이트가 발표되었습니다.

 

취약 버전: OpenSSH 4.4.p1 이전 버전

              OpenSSH 8.5p1 ~ 9.7p1 버전

 조치 방안: 최신버전(9.8p1) 패치

 

참고 자료
- KISA : https://www.boho.or.kr/kr/bbs/view.do?bbsId=B0000133&pageIndex=1&nttId=71480&menuNo=205020

- 보안뉴스 : https://www.boannews.com/media/view.asp?idx=131054

 

오픈SSH 생태계의 새 취약점, 알고 보니 2006년도 취약점이 부활한 것

오픈SSH(OpenSSH) 생태계에서 새로운 취약점이 발견됐다. 보다 정확히 말하자면 glibc를 기반으로 한 리눅스 시스템들에 있는 오픈SSH 서버인 sshd가 위험한 상황이다. 문제의 취약점은 CVE-2024-6387로,

www.boannews.com

 

해당 취약점 대상을 판별하기 위해서 모든 ec2에 접속해서 ssh 명령어를 날리는 것이 비효율적이기 때문에 ec2에 ssm 이 설정되어 있는 상황이라면 클라우드 쉘에서 배쉬 스크립트를 돌려서 한 번에 결과를 산출할 수 있습니다.

#!/bin/bash

#리젼 및 파일명은 자유롭게 변경가능합니다. 
REGION="ap-northeast-2"   
OUTPUT_FILE="version_check.csv"
 
echo "Instance ID,OpenSSH Version,Vulnerable" > $OUTPUT_FILE
 
INSTANCE_IDS=$(aws ec2 describe-instances \
    --region $REGION \
    --filters Name=instance-state-name,Values=running \
    --query "Reservations[*].Instances[*].InstanceId" \
    --output text)
 
for INSTANCE_ID in $INSTANCE_IDS; do
    COMMAND_ID=$(aws ssm send-command \
        --region $REGION \
        --instance-ids $INSTANCE_ID \
        --document-name "AWS-RunShellScript" \
        --parameters '{"commands":["ssh -V 2>&1"]}' \
        --query "Command.CommandId" \
        --output text)
 
    sleep 5
 
    RESULT=$(aws ssm get-command-invocation \
        --region $REGION \
        --instance-id $INSTANCE_ID \
        --command-id $COMMAND_ID \
        --query "StandardOutputContent" \
        --output text)
 
    if [[ $RESULT =~ OpenSSH_([0-9]+\.[0-9]+p[0-9]+) ]]; then
        VERSION=${BASH_REMATCH[1]}
        VULNERABLE="n"
 
        if [[ "$VERSION" < "4.4p1" ]] || ([[ "$VERSION" > "8.5p1" ]] && [[ "$VERSION" < "9.7p1" ]]); then
            VULNERABLE="y"
        fi
 
        echo "$INSTANCE_ID,$VERSION,$VULNERABLE" >> $OUTPUT_FILE
    else
        echo "$INSTANCE_ID,unknown,n" >> $OUTPUT_FILE
    fi
done
 
echo "SSH version check completed. Results saved to $OUTPUT_FILE."

해당 스크립트를 수행하시면  인스턴스ID, SSH 버전, 업데이트대상 여부에 대한 값이 OUTPUT_FILE로 떨궈집니다.

 

힘든 전수조사를 쉽고 빠르게 해결하시길 바랍니다!

댓글