리눅스 서버에서 apache-log4j 사용 유무 확인 하기.

리눅스 서버에서 apache-log4j 사용 유무 확인 하기.

apache-log4j 보안 이슈가 발생함.

개발과 배포가 끝나고 유지 보수도 진행하고 있다면 개발자에게 확인하면 되겠지만, 유지 보수를 진행하지 않는 사이트 관리자들이 사용 여부와 버전까지 확인하기가 어렵다는 문제가 있다.

간단하게 아래의 방법으로 log4j 사용을 확인 해 보자.

먼저, 자신의 서버가 웹 서버로 동작하는지 확인해야 한다.

# netstat -antp | grep -i listen
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      677/httpd
tcp        0      0 0.0.0.0:8400            0.0.0.0:*               LISTEN      2314/cvd
tcp        0      0 0.0.0.0:46387           0.0.0.0:*               LISTEN      2314/cvd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      963/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1995/master
tcp        0      0 0.0.0.0:49114           0.0.0.0:*               LISTEN      2315/ClMgrS
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      677/httpd
tcp        0      0 127.0.0.1:34107         0.0.0.0:*               LISTEN      2314/cvd
tcp        0      0 0.0.0.0:42276           0.0.0.0:*               LISTEN      2314/cvd
tcp        0      0 127.0.0.1:199           0.0.0.0:*               LISTEN      962/snmpd
tcp6       0      0 :::8009                 :::*                    LISTEN      1418/java
tcp6       0      0 :::8080                 :::*                    LISTEN      1418/java
tcp6       0      0 :::22                   :::*                    LISTEN      963/sshd
tcp6       0      0 ::1:25                  :::*                    LISTEN      1995/master
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      1418/java

또는,

# ss -ant | grep -i listen
LISTEN     0      128          *:80                       *:*
LISTEN     0      64           *:8400                     *:*
LISTEN     0      8            *:46387                    *:*
LISTEN     0      128          *:22                       *:*
LISTEN     0      100    127.0.0.1:25                       *:*
LISTEN     0      8            *:49114                    *:*
LISTEN     0      128          *:443                      *:*
LISTEN     0      10     127.0.0.1:34107                    *:*
LISTEN     0      8            *:42276                    *:*
LISTEN     0      128    127.0.0.1:199                      *:*
LISTEN     0      100         :::8009                    :::*
LISTEN     0      100         :::8080                    :::*
LISTEN     0      128         :::22                      :::*
LISTEN     0      100        ::1:25                      :::*
LISTEN     0      1         ::ffff:127.0.0.1:8005                    :::*

위에서 80, 443 포트가 LISTEN 상태이므로, 웹서버로 이용중

이제, jsp를 사용하는지 확인한다.

# ps -ef | grep -i java
root      17656      1  0 Feb21 ?        13:36:20 /opt/java/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Djava.net.preferIPv4Stack=true -Dignore.endorsed.dirs= -classpath /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/opt/tomcat -Dcatalina.home=/opt/tomcat -Djava.io.tmpdir=/opt/tomcat/temp org.apache.catalina.startup.Bootstrap start
root      67650  67626  0 11:41 pts/0    00:00:00 grep --color=auto -i java

java 프로세스가 위와 비슷하게 보인다면 jsp를 사용한다고 보면 된다.

이제, 문제의 apache-log4j를 find 명령으로 찾아본다.

# find / -name log4j* -print
/opt/apache-tomcat-8.5.57/webapps/lrm/WEB-INF/classes/log4j.xml
/opt/apache-tomcat-8.5.57/webapps/lrm/WEB-INF/lib/log4j-1.2.15.jar
/opt/apache-tomcat-8.5.57/webapps/lrm/WEB-INF/lib/log4jdbc-log4j2-jdbc4-1.16.jar
/opt/apache-tomcat-8.5.57/webapps/QRreading/WEB-INF/classes/log4j.xml
/opt/apache-tomcat-8.5.57/webapps/QRreading/WEB-INF/classes/log4jdbc.log4j2.properties
/opt/apache-tomcat-8.5.57/webapps/QRreading/WEB-INF/lib/log4j-core-2.0.1.jar
/opt/apache-tomcat-8.5.57/webapps/QRreading/WEB-INF/lib/log4j-1.2.15.jar
/opt/apache-tomcat-8.5.57/webapps/QRreading/WEB-INF/lib/log4j-api-2.0.1.jar
/opt/apache-tomcat-8.5.57/webapps/QRreading/WEB-INF/lib/log4jdbc-log4j2-jdbc4-1.16.jar
/opt/apache-tomcat-8.5.57/webapps/QRreading/WEB-INF/lib/log4jdbc-remix-0.2.7.jar

log4j관련 파일이 보이므로 일단 log4j를 사용한다고 볼 수 있다.

추가: 사용중인 버전은 log4j-core, log4j-api 뒤의 숫자이다. 위의 예에서는 2.0.1이며, 패치 대상이다.

답글 남기기

Your email address will not be published.