728x90
개요
 Java Minor Upgrade 후 JEUS 기동 실패

현상
 Java Minor Upgrade (1.6.0.20 -> 1.6.0.37) 후 JEUS 기동 실패

 1)JEUS Log
jeus.server.JeusServerException: failed to start the node security manager
        at jeus.server.JeusServer.start(JeusServer.java:317)
        at jeus.server.JeusServer.main(JeusServer.java:991)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at jeus.server.Bootstrapper.callMainMethod(Bootstrapper.java:718)
        at jeus.server.Bootstrapper.callMain(Bootstrapper.java:790)
        at jeus.server.Bootstrapper.main(Bootstrapper.java:784)
        at jeus.server.JeusBootstrapper.main(JeusBootstrapper.java:8)
Caused by: java.lang.ExceptionInInitializerError
        at javax.crypto.Cipher.getInstance(Cipher.java:429)
        at jeus.security.util.EncryptionUtil.decode(EncryptionUtil.java:458)
        at jeus.security.util.EncryptionUtil.decryptPassword(EncryptionUtil.java:642)
        at jeus.security.resource.Password.<init>(Password.java:72)
        at jeus.security.resource.DefaultPasswordFactory.getCredential(DefaultPasswordFactory.java:130)
        at jeus.security.impl.atnrep.XMLAccountConverter.fromXMLTree(XMLAccountConverter.java:128)
        at jeus.security.util.XMLConverter.unmarshal(XMLConverter.java:34)
        at jeus.security.util.XMLConverter.unmarshal(XMLConverter.java:51)
        at jeus.security.util.XMLConverter.unmarshal(XMLConverter.java:42)
        at jeus.security.impl.atnrep.XMLAccountPersistedDistributedMemoryAuthenticationRepositoryService.refreshRead(XMLAccountPersi
stedDistributedMemoryAuthenticationRepositoryService.java:97)
        at jeus.security.impl.atnrep.XMLAccountPersistedDistributedMemoryAuthenticationRepositoryService.doCreate(XMLAccountPersiste
dDistributedMemoryAuthenticationRepositoryService.java:36)
        at jeus.security.base.Service.create(Service.java:121)
        at jeus.security.base.Service.create(Service.java:107)
        at jeus.security.base.Domain.createAll(Domain.java:263)
        at jeus.security.impl.installer.JeusSecurityDomainInstaller.makeCustomDomains(JeusSecurityDomainInstaller.java:112)
        at jeus.security.impl.installer.JeusSecurityDomainInstaller.installMasterSecurityServer(JeusSecurityDomainInstaller.java:78)
        at jeus.security.impl.installer.JeusSecurityDomainInstaller.doInstallSecurity(JeusSecurityDomainInstaller.java:41)
        at jeus.security.spi.SecurityInstaller.installSecurity(SecurityInstaller.java:191)
        at jeus.server.JeusServer.start(JeusServer.java:311)
        ... 9 more
Caused by: java.lang.SecurityException: Cannot set up certs for trusted CAs
        at javax.crypto.JceSecurity.<clinit>(JceSecurity.java:267)
        ... 28 more
Caused by: java.lang.SecurityException: Jurisdiction policy files are not signed by trusted signers!
        at javax.crypto.JceSecurity.loadPolicies(JceSecurity.java:593)
        at javax.crypto.JceSecurity.setupJurisdictionPolicies(JceSecurity.java:524)
        at javax.crypto.JceSecurity.access$700(JceSecurity.java:37)
        at javax.crypto.JceSecurity$1.run(JceSecurity.java:258)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.crypto.JceSecurity.<clinit>(JceSecurity.java:234)
        ... 28 more

원인
 256bit 이상 암호화를 해야하는 경우 JAVA의 local_policy.jar와 US_export_policy.jar를 버전에 맞게 패치해 주어야 한다.
 Minor Upgreade 한 1.6.0.37에는 /opt/java6/jre/lib/security/policy의 limited 디렉토리와 unlimited 디렉토리에 각각 존재하지만,
 1.6.0.20에는 /opt/java6/jre/lib/security에 존재하였다.
 따라서 Upgrade 이 후 /opt/java6/jre/lib/security에 있는 local_policy.jar와 US_export_policy.jar를 참조하게 되면서 발생한 문제로 보인다.
 JEUS의 경우 기동시 JEUS Manager 를 올리기 위하여 ${JEUS_HOME}/config/`hostname`/security/SYSTEM_DOMAIN/account.xml 파일의 계정정보를 참조하게 되는데
 해당 파일에 AES로 암호화된 패스워드가 들어 있기 때문이다.

해결방안
 local_policy.jar와 US_export_policy.jar를 /opt/java6/jre/lib/security로 복사
728x90
728x90
 - 취약점 내용
    * TLS 프로토콜 취약점을 이용하여 Diffie-Hellman 키를 의도적으로 수출용 512bit 로 downgrade 하여 암호통신을 복보화하는 Logjam 취약점

 - 조치방안
    * Diffie-Hellman의 키 길이를 2048bit 설정

1. 다음의 명령어로 2048 bit 키파일 생성
 wbssl dhparam -out dhparams.pem 2048

2. 아래와 같이 WEBTOB설정에 추가
 *SSL
  DHParameter="/webtob6/cert/dhparams.pem"
728x90
728x90
개요
 Network의 문제로 기인한 Web 서비스 지연 및 불가 상황

현상
 Web 화면 호출이 전혀 되지 않고, 단순 image파일 개별 호출도 되지 않는 현상 발생.
 WebtoB/JEUS 재 기동 후에는 서비스 정상 작동함.

원인
 1) wsadmin을 통한 확인(wsadmin : st -s, si)
    html서비스의 평균 처리시간이 오래 걸렸으며(60초이상), Queueing 또한 발생.
    이 상황으로 인해 단순한 image파일도 호출되지 않았음.
 

 2) WebtoB의 error log 확인 결과
    [27/Mar/2018:08:43:45 +0900] [error] [client -] TIMEOUT is expired while svc is running
   [27/Mar/2018:08:43:49 +0900] [error] [client -] TIMEOUT is expired while svc is running
   위 로그에서 확인되는 사항은 사용자의 요청이 WebtoB의 TIMEOUT(300초)시간을 지났다는 로그임.
   WebtoB의 TIMEOUT은 Client와 WebtoB사이의 데이터 전송 중 TIMOUT시간 (300초) 이상 어떠한 패킷(데이터)도 Client와 WebtoB사이에 전송되지 않았을 경우 적용되는 값임.
    Network Bottleneck이나 기타 요인으로 인해 패킷 전송지연이 발생되었을 것으로 판단됨.

해결방안
 본 상황은 큰 파일을 동시에 많은 사용자가 다운 받음으로 인해 발생된 서비스 지연에 해당한다.
 즉 시스템적인 오류가 아닌 업무적인 특성으로 인해 과부하가 발생한 것으로, Network 전송속도를 개선하는 것이 근본적인 해결방법임.

 
728x90

+ Recent posts