Apache Log4j2 보안 이슈 (CVE-2021-44228) 대응 공지
AWS에서 보안은 항상 최우선 순위입니다. 서비스를 아무리 신중하게 설계하더라도 간혹 AWS 서비스와 관련된 다양한 보안 및 개인 정보 이슈를 고객에게 알려야 하는 경우가 있습니다. 이 글은 AWS 한국 고객의 편의를 위해해당 이슈에 대한 AWS 보안 공지 및 AWS 블로그 일부를 한국어로 제공합니다.
- AWS 보안 공지 – Apache Log4j2 문제(CVE-2021-44228)
- AWS 보안 공지 – Apache Log4j2 문제 업데이트 (CVE-2021-44228)
- AWS 오픈소스 블로그 – Apache Log4j용 핫패치 제공
(중요) 본 공지의 한글 번역문과 영어 원문에 차이나 불일치가 있을 경우(번역의 지체로 인한 경우 등 포함), 영어 원문이 우선합니다. 업데이트 내역이 지체되는 경우도 있으므로, 반드시 영문 AWS 보안 공지을 참고하시기 바랍니다.
Apache Log4j2 문제(CVE-2021-44228)
최초 작성일: 2021/12/10 오후 7:20 PDT (영어 원문)
AWS는 오픈 소스 Apache “Log4j2” 유틸리티(CVE-2021-44228)와 관련하여 최근에 공개된 보안 문제를 파악하고, 적극적으로 모니터링 하면서 Log4j2 또는 서비스의 일부로 제공하는 부분에 대해 확인하고 있습니다.
Log4j2가 포함된 환경을 관리하는 고객은 https://logging.apache.org/log4j/2.x/download.html에서 최신 버전 으로 업데이트할 것을 강력히 권장하며, 또는 운영 체제의 소프트웨어 업데이트를 하시기 바랍니다. 추가 AWS 서비스별 정보는 아래와 같습니다. 추가 세부 정보나 지원이 필요한 경우 AWS Support에 문의하십시오.
Amazon EC2
Amazon Linux 2 기본 패키지 리포지토리 1.2.17-16에서 사용 가능한 Log4j2 버전은 기본 구성에서 이 문제의 영향을 받지 않습니다. 사용자 지정 Log4j 구성을 사용하는 고객을 보호하기 위해, 현재 Amazon Linux 2 패키지 리포지토리에서 업데이트된 버전의 Log4j2를 사용할 수 있도록 작업 중이며 사용 가능한 경우 고객에게 알릴 것입니다.
Amazon Linux 1 기본 패키지 리포지토리인 1.2.16-6에서 사용 가능한 Log4j2 버전은 기본 구성에서 이 문제의 영향을 받지 않습니다. 사용자 지정 Log4j 구성을 사용하는 고객을 보호하기 위해, 현재 Amazon Linux 1 패키지 리포지토리에서 업데이트된 버전의 Log4j2를 제공하는 작업을 진행 중이며 사용 가능한 경우 고객에게 알릴 것입니다.
Amazon Linux용 보안 관련 소프트웨어 업데이트에 대한 자세한 내용은 https://alas.aws.amazon.com에서 확인 할 수 있습니다.
AWS WAF/Shield
최근 Log4j 보안 문제로 인해 발생하는 위험 감지 및 완화를 개선하기 위해 AWS WAF 서비스에서 사용하는 매니지드 규칙 그룹(AMR) 중 하나인, AWSManagedRulesKnownBadInputsRuleSet을 업데이트했습니다. Amazon CloudFront, ALB(Application Load Balancer), API Gateway 및 AppSync의 고객은 AWS WAF web ACL을 생성하여 추가 방어 계층을 추가하기 위해 URI, 요청 본문 및 일반적으로 사용되는 헤더를 검사하는 완화 옵션을 즉시 활용할 수 있습니다.
AWSManagedRulesKnownBadInputsRuleSet를 Web ACL에 추가한 다음, 해당 Web ACL을 CloudFront 배포 지점, ALB, API Gateway 또는 AppSync GraphQL API와 연결하시면 됩니다.
AWS WAF 시작하기 – https://docs.aws.amazon.com/waf/latest/developerguide/getting-started.html
AMR 활성화 방법 – https://docs.aws.amazon.com/waf/latest/developerguide/waf-using-managed-rule-groups.html
AMR은 WAF Classic에서 사용할 수 없으므로 이 완화 옵션을 활용하려면 AWS WAF(wafv2)로 업그레이드하십시오.
Amazon OpenSearch Service
문제를 해결하는 “Log4j2” 신규 버전을 사용하도록 모든 Amazon OpenSearch Service 도메인을 업데이트하고 있습니다. 업데이트 프로세스 중에 도메인에서 간헐적인 활동을 관찰할 수 있습니다.
AWS Lambda
AWS Lambda는 관리형 런타임 또는 기본 컨테이너 이미지에 Log4j2를 포함하지 않습니다. 따라서 CVE-2021-44228에 설명된 문제의 영향을 받지 않습니다. 다만, 람다 함수에서 직접 aws-lambda-java-log4j2를 사용하는 고객은 해당 라이브러리를 버전 1.3.0으로 업데이트 후, 재배포 해야 합니다.
AWS CloudHSM
3.4.1 이전의 CloudHSM JCE SDK 버전에는 이 문제의 영향을 받는 Apache Log4j 버전이 포함되어 있습니다. 2021년 12월 10일 CloudHSM은 Apache Log4j의 고정 버전이 포함된 JCE SDK v3.4.1을 출시했습니다. 3.4.1 이전 버전의 CloudHSM JCE를 사용하는 경우 영향을 받을 수 있으므로 CloudHSM JCE SDK를 버전 3.4.1 이상으로 업그레이드하여 수정해야 합니다. 참고 문서 – https://docs.aws.amazon.com/cloudhsm/latest/userguide/java-library-install.html
Apache Log4j2 문제 업데이트 (CVE-2021-44228)
최초 작성일: 2021/12/12 오후 7:50 PDT (영어 원문)
AWS는 오픈 소스 Apache “Log4j2” 유틸리티(CVE-2021-44228)와 관련하여 최근에 공개된 보안 문제를 파악하고, 적극적으로 모니터링 하면서 Log4j2 또는 서비스의 일부로 제공하는 부분에 대해 확인하고 있습니다.
Log4j2가 포함된 환경을 관리하는 고객은 https://logging.apache.org/log4j/2.x/download.html에서 최신 버전 으로 업데이트할 것을 강력히 권장하며, 또는 운영 체제의 소프트웨어 업데이트를 하시기 바랍니다.
8u121 또는 8u191(JDK 11 이상 포함) 이후에 JDK에서 Log4j2를 사용하면 문제가 완화되는 것으로 보고되었지만 이는 부분적인 해결일 뿐입니다. 유일한 포괄적인 솔루션은 Log4j2를 2.15로 업그레이드하는 것이며 2.15보다 오래된 Log4j2 버전은 사용된 JDK 배포 또는 버전에 관계없이 영향을 받는 것으로 간주되어야 합니다.
추가적인 AWS 서비스별 정보는 아래와 같습니다. 기타 세부 정보나 지원이 필요한 경우 AWS Support에 문의하십시오.
Amazon API Gateway
문제를 완화하는 Log4j2 버전을 사용하도록 API 게이트웨이를 업데이트하고 있습니다. 이러한 업데이트 중에 일부 API의 지연 시간이 주기적으로 증가하는 것을 관찰할 수 있습니다.
AWS IoT Greengrass
Apache Log4j2를 사용하는 모든 Greengrass V2 구성 요소에 대한 업데이트는 2021년 12월 10일부터 배포할 수 있습니다. 해당 구성 요소는 스트림 관리자(2.0.14) 및 보안 터널링(1.0.6)입니다. AWS는해당 Greengrass 구성 요소를 사용하는 고객이 자신의 디바이스에 최신 버전을 배포할 것을 권장합니다.
AWS Greengrass 버전 1.10 및 1.11에 대한 업데이트는 2021년 12월 17일에 제공될 예정입니다. 해당 장치에서 Stream Manager를 사용하는 고객은 수정된 Greengrass 바이너리를 사용할 수 있게 되는 즉시 장치를 업데이트하는 것이 좋습니다. 그 동안 해당 고객은 Greengrass 1.10 또는 1.11에서 스트림 관리자를 사용하는 사용자 지정 람다 코드가 고객이 제어할 수 없는 임의의 스트림 이름 및 파일 이름(S3 내보내기용)을 사용하지 않는지 확인해야 합니다(예: 스트림 이름 또는 파일 이름에 “${“를 포함하는 경우.)
Amazon MQ
Amazon MQ는 Apache Log4j2 라이브러리와 관련하여 최근에 공개된 문제(CVE-2021-44228)와 관련하여 Amazon MQ 서비스 코드(AWS 관련) 및 오픈 소스 코드(Apache ActiveMQ 및 RabbitMQ 메시지 브로커)의 두 가지 고려 사항 영역이 있습니다.
문제를 해결하기 위해 Amazon MQ 서비스 코드에 필수 업데이트를 적용하고 있습니다.
오픈 소스 메시지 브로커에 필요한 업데이트는 없습니다. Amazon MQ에서 제공되는 모든 버전의 Apache ActiveMQ는 이 문제의 영향을 받지 않는 Log4j 버전 1.x를 사용합니다. RabbitMQ는 Log4j2를 사용하지 않으며 이 문제의 영향을 받지 않습니다.
Amazon CloudFront
Amazon CloudFront 서비스는 CVE-2021-44228에서 식별된 문제를 완화하도록 업데이트되었습니다. 개별 POP에서 실행되는 CloudFront 요청 처리 서비스는 Java 언어로 작성되지 않았으므로 이 문제의 영향을 받지 않았습니다.
AWS Elastic Beanstalk
AWS Elastic Beanstalk은 Amazon Linux 1 및 Amazon Linux 2용 Tomcat 플랫폼의 Amazon Linux 기본 패키지 리포지토리에서 Log4j2를 설치합니다. 해당 버전은 아래에 나열되어 있으며 기본 구성에서 이 문제의 영향을 받지 않습니다.
Amazon Linux 2 기본 패키지 리포지토리 1.2.17-16에서 사용 가능한 Log4j2 버전은 기본 구성에서 이 문제의 영향을 받지 않습니다.
Amazon Linux 1 기본 패키지 리포지토리인 1.2.16-6에서 사용 가능한 Log4j2 버전은 기본 구성에서 이 문제의 영향을 받지 않습니다.
애플리케이션의 Log4j2 사용에 대한 구성을 변경한 경우, 이 문제를 시작하기 위해 애플리케이션 코드를 업데이트하는 조치를 취하는 것이 좋습니다.
일반적인 배포 방식에 따라 해당 기본 패키지 리포지토리 버전의 패치 버전이 릴리스되면 Elastic Beanstalk는 Amazon Linux 1 및 Amazon Linux 2용 다음 Tomcat 플랫폼 버전 릴리스에 패치 버전을 포함합니다.
Amazon Linux용 보안 관련 소프트웨어 업데이트에 대한 자세한 내용은 https://alas.aws.amazon.com에서 확인 할 수 있습니다.
Amazon EMR
CVE-2021-44228 취약점은 신뢰할 수 없는 소스의 입력을 처리할 때, 2.0에서 2.14.1 사이의 Apache log4j 버전에 영향을 줍니다. Amazon EMR 5 및 EMR 6 릴리스와 함께 출시된 EMR 클러스터에는 Apache Log4j의 이러한 버전을 사용하는 Apache Hive, Flink, HUDI, Presto 및 Trino와 같은 오픈 소스 프레임워크가 포함됩니다. EMR의 기본 구성으로 클러스터를 시작하면 신뢰할 수 없는 소스의 입력을 처리하지 않습니다.
단, EMR 클러스터에 설치된 오픈 소스 프레임워크가 신뢰할 수 없는 소스의 정보를 처리할 때 CVE-2021-44228에서 논의된 문제를 완화하는 업데이트를 구축하기 위해 적극적으로 노력하고 있습니다.
AWS LakeFormation
AWS Lake Formation 서비스 호스트는 CVE-2021-44228에서 참조된 버전의 문제를 해결하기 위해 최신 버전의 Log4j로 사전에 업데이트되고 있습니다.
Amazon S3
Amazon S3의 데이터 수신 및 송신은 Log4j2 문제에 대해 패치되었습니다. S3의 데이터 수신 및 송신과 별도로 작동하는 S3 시스템에 Log4j2 패치를 적용하기 위해 노력하고 있습니다.
AWS SDK
Java용 AWS SDK는 Logging Facade를 사용하며, Log4j에 대한 런타임 종속성이 없습니다. 현재 이 문제와 관련하여 Java용 AWS SDK를 변경할 필요가 없습니다.
AWS Managed Services (AMS)
우리는 이 문제를 적극적으로 모니터링하고 있으며 Log4j2를 사용하는 모든 AWS Managed Services(AMS) 서비스에 대해 해결하기 위해 노력하고 있습니다. Log4j2가 포함된 환경을 관리하는 고객은 https://logging.apache.org/log4j/2.x/download.html에서 최신 버전 으로 업데이트할 것을 강력히 권장하며, 또는 운영 체제의 소프트웨어 업데이트를 하시기 바랍니다.
AMS는 인터넷에 액세스할 수 있는 모든 애플리케이션 엔드포인트에 대해 AWS WAF web ACL을 배포할 것을 권장합니다. AWS WAF 서비스는 AWSManagedRulesAnonymousIpList 규칙 세트(TOR 노드와 같은 클라이언트 정보를 익명화하는 것으로 알려진 소스를 차단하는 규칙 포함) 및 AWSManagedRulesKnownBadInputsRuleSet 규칙 세트를 배포하여 이 문제에 대한 추가 방어 계층을 제공하도록 구성할 수 있습니다. URI, 요청 본문 및 일반적으로 사용되는 헤더를 검사하여 Log4j 및 기타 문제와 관련된 요청을 차단하는 데 도움이 됩니다.
AMS는 이 문제를 계속 모니터링하고 사용 가능한 추가 세부 정보와 권장 사항을 제공할 것입니다.
Amazon Neptune
Amazon Neptune에는 Apache Log4j2 라이브러리가 주변 구성 요소로 포함되어 있지만, 해당 문제는 Neptune 사용자에게 영향을 미치지 않습니다. 세심하게 Neptune 클러스터는 문제를 해결하는 Log4j2 버전을 사용하도록 자동으로 업데이트됩니다. 고객은 업데이트 중에 간헐적인 이벤트를 관찰할 수 있습니다.
NICE
CVE-2021-44228 로 인해, NICE에 EnginFrame이 포함된 2020.0에서 2021.0-r1307 버전은 최신 버전으로 업그레이드할 것을 권장합니다. 해당 EnginFrame 버전은 웹사이트에서 업데이트하거나 지원 웹사이트 의 지침에 따라 EnginFrame 설치에서 Log4J 라이브러리를 업데이트하시기바랍니다
자세한 것은 웹 사이트를 통해 언제든지 문의하십시오.
Amazon Managed Streaming for Apache Kafka (Amazon MSK)
Amazon Managed Streaming for Apache Kafka는 Apache log4j2 라이브러리와 관련하여 최근에 공개된 문제(CVE-2021-44228)를 알고 있으며 필요에 따라 업데이트를 적용하고 있습니다. Amazon MSK에서 제공되는 Apache Kafka 및 Apache Zookeeper 빌드는 현재 Log4j 1.2.17을 사용하며 이 문제의 영향을 받지 않습니다. 일부 MSK 특정 서비스 구성 요소는 log4j > 2.0.0 라이브러리를 사용하며 필요한 경우 패치되고 있습니다.
AWS Glue
AWS Glue는 오픈 소스 Apache “Log4j2” 유틸리티(CVE-2021-44228)와 관련하여 최근에 공개된 보안 문제를 알고 있습니다. 지원되는 모든 Glue 버전에 대해 AWS Glue API를 제공하는 제어 플레인 집합을 업데이트했습니다.
AWS Glue는 AWS Glue 서비스 계정 내의 다른 모든 Spark 환경과 네트워크 및 관리 수준에서 격리된 새로운 Spark 환경을 생성합니다. ETL 작업은 단일 테넌트 환경에서 실행됩니다. ETL 작업이 Apache Log4j의 특정 버전을 로드하는 경우, 최신 버전의 Apache Log4j를 사용하도록 스크립트를 업데이트하는 것을 권장합니다. AWS Glue 개발 엔드포인트를 사용하여 스크립트를 작성하는 경우 거기에서 사용하는 Log4j 버전도 업데이트하는 것을 권장합니다.
또한, AWS Glue는 지원되는 모든 리전에서 새로운 Spark 환경에 업데이트를 사전에 적용하고 있습니다. 질문이 있거나 추가 지원이 필요한 경우 AWS Support를 통해 문의하십시오.
Amazon RDS
Amazon RDS와 Amazon Aurora는 업데이트를 적용하여 사용 중인 Log4j2의 부분을 적극적으로 해결하고 있습니다. RDS 기반 관계형 데이터베이스 엔진에는 Apache Log4j 라이브러리가 포함되어 있지 않습니다. 업스트림 공급업체가 관련된 경우, 권장되는 완화 조치를 적용합니다. AWS 고객은 내부 구성 요소를 업데이트하는 동안 간헐적인 이벤트를 관찰할 수 있습니다.
Amazon OpenSearch Service 업데이트
Amazon OpenSearch Service는 Log4j2의 업데이트된 버전이 포함된 서비스 소프트웨어 업데이트 버전 R20211203-P2를 배포하고 있습니다. 해당 지역에서 업데이트가 제공되는 대로 고객에게 알리고 이 게시판이 전 세계적으로 제공되면 업데이트합니다.
Apache Log4j용 핫패치 제공
최초 작성일: 2021/12/12 오후 7:20 PDT (영어 원문)
널리 사용되는 오픈 소스 로깅 플랫폼인 Apache Log4j의 취약점인 CVE-2021-44228를 패치하거나 완화하기 위해 바쁜 주말을 보냈습니다.
영향을 받는 애플리케이션을 실행하는 사용자는 이 취약점을 해결하기 위해 Log4j를 버전 2.15로 업그레이드하는 것이 좋습니다. 그러나, 빠르게 진행하지 못하는 경우를 대비하여, (AWS가 배포하는 멀티 플랫폼 OpenJDK 버전인) Amazon Coretto 팀원들이 취약한 log4j 배포를 핫패치하는 도구를 구축하는 데 시간을 할애했습니다.
이 도구는 Log4j 2.0+를 사용하여 실행 중인 JVM을 핫패치하도록 설계되었습니다. 이 도구는 멱등성 기반으로, 초기 애플리케이션 이후의 결과를 변경하지 않고 동일한 JVM에서 이를 여러 번 실행할 수 있습니다. 또한, 실행 중인 모든 JVM을 찾고 취약점을 완화할 수 있습니다. 이를 사용하여 log4j를 종속성으로 포함하는 jar를 패치하고, 클래스 경로의 여러 log4j 인스턴스를 패치할 수도 있습니다.
핫패치 작동 방식 및 다운로드
이 도구는 실행 중인 JVM 프로세스에 Java 에이전트를 추가합니다. 본 에이전트는 “Patched JndiLookup::lookup()” 문자열을 무조건 반환하는 org.apache.logging.log4j.core.lookup.JndiLookup
인스턴스의 lookup()
를 패치 합니다. 메소드를 해결하도록 설계되었습니다. Java 프로세스를 다시 시작하지 않고 Log4j 원격 코드 실행 취약점을완화할수있습니다.
Java 프로세스를 재시작해야 할 가능성이 있는 경우, 정적 에이전트로도 사용할 수도 있습니다. 즉, 서버에 직접 로그인하지 않고도 런타임에 이 패치를 포함할 수 있습니다. 이 도구는 사용할 수 GitHub에서 다운로드 가능하며, 자세한 설명은 README에서 보실 수 있습니다.
주의 사항
모든 오픈 소스 소프트웨어와 마찬가지로 Correto Hotpatch를 사용하는 데 따른 위험은 사용자가 감수해야 합니다. Hotpatch는 Linux에서 JDK8 및 JDK11로 테스트되었습니다. JDK17에서는 정적 에이전트 모드만 작동합니다. 주의 사항의 전체 목록은 README에서 보실수있습니다.
더 많은 AWS 보안에 대한 뉴스는 AWS 보안 공지, AWS Security 블로그 및 트위터 계정을 참고하세요.
– Channy(윤석찬);
Leave a Reply