애플리케이션 개발을 위해 자원 및 API(Java 2 보안) 보호

Java™ 2 보안은 매우 광범위하고 애플리케이션 개발에 큰 영향을 미치는 프로그래밍 모델입니다.

시작하기 전에

Java 2 보안은 다음과 직교합니다. Java Platform, Enterprise Edition ( Java EE ) 역할 기반 보안; 관리 보안과 별도로 이를 비활성화하거나 활성화할 수 있습니다.

그러나 이는 다음과 같은 추가 수준의 액세스 제어 보호를 제공합니다. Java EE 역할 기반 권한 부여. 특히 시스템 자원 및 API(Application Programming Interface)의 보호를 제공합니다. 관리자는 Java 2 보안 비활성화로 인한 위험에 대한 이점을 고려해야 합니다.

테스트 또는 제품 환경에서 Java 2 보안을 사용 가능하게 하는 데 도움이 되도록 다음의 권장사항이 제공됩니다.
  1. 애플리케이션이 Java 2 보안 프로그래밍 모델을 사용하여 개발되었는지 확인하십시오. 개발자는 애플리케이션에 사용되는 API가 Java 2 보안으로 보호되는지 여부를 알아야 합니다. 사용되는 API에 필요한 권한을 정책 파일에 선언하는 것이 매우 중요합니다.was.policy 또는 Java 2 보안이 활성화되면 응용 프로그램이 실행되지 않습니다. 개발자는 Java 2 보안으로 보호되는 Development Kit API에 대한 웹사이트를 참조할 수 있습니다. 이 웹 사이트에 방문하려면 보안: 학습할 자원 주제의 프로그래밍 모델 및 의사결정 섹션을 참조하십시오.
  2. 이전 릴리스로부터 마이그레이션된 애플리케이션에 필수 권한이 제공되는지 확인하십시오. Java 2 보안은 이전 버전에서는 지원되지 않거나 부분적으로 지원되기 때문에 WebSphere® Application Server 릴리스에서는 버전 5 이전에 개발된 애플리케이션이 Java 2 보안 프로그래밍 모델을 사용하지 않을 가능성이 높습니다. 애플리케이션의 필수 권한을 모두 찾아내기 위한 쉬운 방법은 사용 가능하지 않습니다. 다음은 애플리케이션에 필요한 추가 권한을 판별하기 위해 수행할 수 있는 활동입니다.
    • 코드 검토 및 코드 검사
    • 애플리케이션 문서 검토
    • 사전 프로덕션 환경에서 활성화된 Java 2 보안을 사용하여 마이그레이션된 엔터프라이즈 애플리케이션의 샌드박스 테스트입니다. WebSphere Java 2 보안 관리자에서 추적을 사용 가능하게 하면 응용프로그램 정책 파일에서 누락된 권한을 판별하는 데 도움이 됩니다. 추적 사양은 다음과 같습니다.com.ibm.ws.security.core.SecurityManager=all=enabled.
    • 디버깅을 도우려면 com.ibm.websphere.java2secman.norethrow 시스템 특성을 사용하십시오. 이 특성을 프로덕션 환경에서 사용하지 마십시오.
[IBM i]애플리케이션의 기본 권한 세트는 J2EE 1.3 명세에 정의된 권장되는 권한 세트입니다. 기본값은 프로필_루트/config/cells/cell_name/nodes/node_name/app.policy모든 사람에게 권한을 부여하는 개발 키트 정책 파일에 정의된 권한이 포함된 정책 파일입니다. 그만큼java.policy 파일은 다음 위치에 있습니다. java_home 프로필에 대해 활성화된 JVM(Java Virtual Machine)에 따라 디렉터리입니다.
메모: Java SE 6에만 JRE가 있습니다.(예:/QOpenSys/QIBM/ProdData/JavaVM/jdk60/32bit/jre/lib/ext ).
모든 Java 가상 머신의 경우java.policy파일은 시스템 전체에서 사용됩니다. 편집하지 마세요.java.policy서버에 있는 파일. 애플리케이션에 선언된 권한이 거부되었습니다. 프로필_루트/config/cells/cell_name/filter.policy파일로 내보냅니다. filter.policy 파일에 선언된 권한은 권한 확인 중에 애플리케이션에 대해 필터링됩니다.
[IBM i]사용showVariables 의 명령 AdminTask 서버 프로필과 연결된 노드에 대한 JAVA_HOME을 검색하는 개체입니다. 예를 들어, 노드가 myNode이면:
  1. QShell을 입력하십시오.
  2. cd to profile_root/bin
  3. <다음 명령을 실행하십시오.
    wsadmin -conntype NONE -c '$AdminTask showVariables {-scope Node=myNode -variableName JAVA_HOME}'

was.policy 파일에서 애플리케이션의 필수 권한을 정의하고 애플리케이션 엔터프라이즈 아카이브(EAR) 파일에서 was.policy 파일을 YOURAPP.ear/META-INF/was.policy로 임베드하십시오.

다음 단계는 WebSphere Application Server Network Deployment 셀 수준과 WebSphere Application Server Express 서버 수준에서 Java 2 보안을 적용하는 방법을 설명합니다

프로시저

  1. 딸깍 하는 소리 보안 > 글로벌 보안.
    글로벌 보안 패널이 표시됩니다.
  2. 선택 Java 2 보안을 사용하여 로컬 리소스에 대한 애플리케이션 액세스를 제한합니다. 옵션.
  3. 딸깍 하는 소리 좋아요 또는 적용하다.
  4. 딸깍 하는 소리 구하다 변경 사항을 저장합니다.
  5. 변경사항을 적용하려면 서버를 다시 시작하십시오.

결과

Java 2 보안이 서버에서 사용 가능해지고 실행됩니다. Java 2 보안 보호 API가 호출될 때 Java 2 보안 권한이 선택됩니다.
Java 2 보안을 사용하는 경우
  1. 예를 들어 소켓 연결을 열거나 청취할 때, 운영 체제 파일 시스템을 읽거나 쓸 때, JVM(Java Virtual Machine) 시스템 특성을 읽거나 쓸 때 시스템 자원에 대한 보호를 활성화하십시오.
  2. 애플리케이션 코드가 파괴적인 API를 호출하는 것을 막으십시오. 예를 들어, System.exit 메소드를 호출하면 Application Server가 종료됩니다.
  3. 애플리케이션 코드가 권한이 있는 정보(비밀번호)를 획득하거나 추가 권한을 얻지 못하도록(서버 신임 정보 얻기) 막으십시오.

다음에 수행할 내용

응용프로그램이 자원에 대한 액세스를 거부할 때 호출 스택의 모든 클래스에 부여된 Java 2 보안 권한을 덤프하기 위해 Java 2 보안 관리자가 확장되었습니다. java.security.AccessControlException 예외가 작성됩니다. 그러나 이 추적 기능은 기본적으로 사용 안함으로 설정됩니다. 다음과 같이 서버 추적 서비스를 지정하여 이 기능을 활성화할 수 있습니다.com.ibm.ws.security.core.SecurityManager=all=enabled추적 사양. 예외가 생성되면 추적 덤프는 애플리케이션에 권한이 누락되었는지 또는 사용된 제품 런타임 코드나 타사 라이브러리가 다음과 같이 올바르게 표시되지 않았는지 확인하기 위한 힌트를 제공합니다.privilegedJava 2 보안으로 보호되는 리소스에 액세스할 때.

참조 보안 문제 판단 가이드 자세한 내용은.