시스템 간 IRIS DBMS 보안 향상

InterSystems IRIS를 처음 사용하기 시작했을 때, 일반적인 방법은 최저 수준의 시스템만 설치하는 것입니다.비밀번호를 더 적게 입력해야 합니다. 이것은 처음 익숙할 때 개발 서비스와 웹 응용 프로그램을 더욱 쉽게 사용할 수 있도록 합니다.때때로 최저 안전성은 이미 개발된 프로젝트나 해결 방안을 배치하는 데 더욱 편리하다.
그러나 때때로 당신의 프로젝트를 개발에서 적의가 충만한 인터넷 환경으로 옮겨야 하며, 생산 환경에 배치하기 전에 가장 큰 안전 설정(즉 완전 잠금)을 사용하여 테스트를 해야 한다.이것이 바로 우리가 본문에서 토론할 내용이다.
시스템 간 Caché, 통합 및 IRIS의 DBMS 보안 문제를 보다 포괄적으로 이해하려면 다른 기사를 읽어야 할 수도 있습니다Recommendations on installing the InterSystems Caché DBMS for a production environment..
InterSystems IRIS의 보안 시스템은 서로 다른 유형에 서로 다른 보안 설정을 적용하는 개념인 사용자, 역할, 서비스, 자원, 권한과 응용 프로그램을 바탕으로 한다.

사용자에게 역할을 할당할 수 있습니다.사용자와 역할은 자원(데이터베이스, 서비스, 응용 프로그램)에 대해 서로 다른 읽기, 쓰기, 사용 권한을 가질 수 있다.사용자와 역할은 데이터베이스의 SQL 테이블에 SQL 권한을 가질 수도 있습니다.

보안 수준이 어떻게 다른지


InterSystems IRIS를 설치할 때 최소 또는 정상 또는 잠금 보안 수준을 선택할 수 있습니다.이러한 수준은 사용자의 참여 정도, 사용 가능한 역할과 서비스, 서비스와 응용 프로그램의 인증 방법 설정에 있어 다르다.자세한 내용은 InterSystems IRIS 설치 준비 가이드 Preparing for InterSystems Security 를 참조하십시오.
문서에서 각 수준의 보안 설정이 표시되는 다음 표를 찾을 수 있습니다.시스템 관리 포털 인터페이스에서 설정을 변경할 수 있습니다.

초기 사용자 보안 설정


보안 설정
최소
전형적
잠금
암호 모드
3.32ANP
3.32ANP
8.32ANP
비활성 제한 사항
0
90일
90일
시스템 사용자 활성화
맞다
맞다
아니오
알 수 없는 사용자에게 할당된 역할
모두
하나도 없다
하나도 없다

초기 서비스 속성


서비스 속성
최소
전형적
잠금
사용 권한은 공용
맞다
맞다
아니오
인증 필요
아니오
맞다
맞다
서비스 활성화
가장
약간
최소

서비스의 초기 설정


서비스
최소
전형적
잠금
%Service\u 바인딩
활성화
활성화
불구자
*% 서비스 공급자
활성화
활성화
활성화
% 서비스 캐시 직접
활성화
불구자
불구자
% 서비스 전화
활성화
불구자
불구자
% 서비스 구성 요소
불구자
불구자
불구자
%Service_콘솔
활성화
활성화
활성화
% 서비스 ECP
불구자
불구자
불구자
% 서비스 MSM 활성화
불구자
불구자
불구자
% 서비스 모니터
불구자
불구자
불구자
% 서비스 그림자
불구자
불구자
불구자
% 서비스 전화망
불구자
불구자
불구자
% 서비스 단말기
활성화
활성화
활성화
%Service_WebLink
불구자
불구자
불구자
* 시스템 간 IRIS의 경우%Service\u CSP에서%Service\u WebGateway를 적용합니다.
서로 다른 운영체제에 대해 사용하는 서비스는 약간 다르다.

보안 향상 방법


모든 활성화된 서비스에 대해 인증, 비밀번호, Kerberos 또는 위임되지 않은 인증 방법을 선택해야 합니다.
시스템에서 사용하지 않는 웹 응용 프로그램을 비활성화해야 합니다.활성화된 웹 응용 프로그램에 대해 인증, 비밀번호, Kerberos, 위임, 로그인, 쿠키 등 올바른 인증 방법을 선택해야 합니다.
물론 관리자는 프로젝트가 고객의 요구에 따라 실행될 수 있도록 모든 프로젝트와 해결 방안에 대해 안전 설정을 선택한다.이것은 시종 일종의 균형이다. 시스템을 충분히 편리하게 하고 사용자가 진정으로 그들의 일을 완성할 수 있을 뿐만 아니라 침입자를 방지하기 위해 안전해야 한다.알다시피 가장 안전한 시스템은 비활성화된 시스템이다.
여러 번 수동으로 시스템의 보안 수준을 향상시켜야 한다면 이것은 소프트웨어 모듈을 작성하여 이러한 문제를 해결해야 한다는 것을 나타낸다.
사실 InterSystems Open Exchange는 보안을 향상시키는 데 도움이 되는 잠금 프로그램이 있습니다.InterSystemsisc-apptools-lockdown 페이지의 저장소에서 프로그램의 소스 코드를 찾을 수 있습니다.
다음은 계획을 봉쇄하는 역할이다.

먼저 사전 설치 사용자의 암호를 변경합니다.

  • 관리자,
  • CSP 시스템
  • IAM,
  • 수퍼유저
  • 알 수 없는 사용자
  • _합주,
  • _시스템.
    ## 다음으로, 다음을 제외하고 모든 서비스를 비활성화합니다.
  • %서비스\u 웹 게이트웨이
  • %service_콘솔
  • %service\u 로그인
  • %service\u 터미널
    ## 다음은 모든 웹 응용 프로그램에 암호 보호를 설정합니다.
  • /csp/ensdemo
  • /고객 서비스 제공업체/샘플
  • /고객 서비스 제공업체/사용자
  • /isc/studio/usertemplates
  • /csp/docbook
  • /csp/documatic
  • /isc/studio/rules
  • /isc/studio/templates
    ## 마지막으로 다음과 같은 시스템 범위의 보안 매개 변수를 설정합니다.
  • 암호 복잡성 "8.32 ANP"
  • 사용자 비활동 90일 제한
  • 감사 및 모든 보안 관련 이벤트
    GitHub에서 다운로드LockDown.cls하여 시스템에 잠금 프로그램을 설치할 수 있습니다.그런 다음 터미널 모드에서 다음을 입력합니다.
  • USER>zn “%SYS”
    %SYS>do $system.OBJ.Load("/home/irisusr/LockDown.cls","ck")
    
    또는 공용 레지스터의 ZPM 배치 관리자를 사용하여 다음 명령을 통해 설치할 수 있습니다.
    USER>zn “%SYS”
    %SYS> zpm “install isc-apptools-lockdown”
    

    잠금 실행


    잠금을 실행하기 전에 백업을 실행하는 것을 강력히 권장합니다.
    %SYS 영역에서 잠금 프로그램을 실행해야 합니다.미리 설치된 모든 사용자의 비밀번호를 변경하지 않으려면 첫 번째 파라미터를 비워 두십시오.
    IRIS Studio, Atelier 또는 VSCode 편집 프로그램 및 클래스를 계속 사용하려면%Service\u 바인딩 서비스를 사용하지 마십시오.이 점을 확보하기 위해서 귀속 매개 변수는 반드시 1로 설정해야 한다.예:do ##class(App.Security.LockDown).Apply("New Password 123",.msg,1)이 모듈에는 시스템 암호가 유출되고 잠금을 실행하지 않고 미리 설치된 모든 계정을 교체해야 하는 기능도 포함되어 있습니다.다음과 같이 실행할 수 있습니다.do ##class(App.Security.LockDown).Change Password("New Password 123", "Admin,CSPSystem,IAM,SuperUser,Unknown User, _Ensemble,_SYSTEM")잠금이 실행되면 응용 프로그램이나 프로젝트가 중단될 가능성이 가장 높습니다.복구하려면 일부 보안 설정을 원래 상태로 복원해야 합니다.이것은 관리 포털 인터페이스(안전 부분)나 프로그래밍을 통해 실현할 수 있다.

    잠금 후 보안 설정 변경


    잠긴 후 웹 응용 프로그램이 비밀번호 이외의 인증 방법을 사용한다면 사용해야 합니다.
    ZPM 레지스트리 항목에 잠금을 사용하는 예가 있는 소프트웨어 모듈zpm-registry-test-deployment을 실행하는 것이 좋습니다.
    다음 코드는 설치가 끝날 때 적용됩니다.이 프로젝트는 IRIS에 설치되어 안전성이 가장 낮다.다음은 코드가 수행해야 하는 작업입니다.
  • 모든 사전 설치 사용자의 암호를 변경합니다.
  • 이 프로젝트에서 사용하지 않는 모든 서비스를 비활성화합니다.
  • 시스템의 모든 응용 프로그램에 암호 보호를 사용하지만 웹 응용 프로그램/등록표 (권한이 부여되지 않은 사용자가 등록표의 패키지 목록을 얻을 수 있도록 허용) 를 제외합니다.
  • 새 패키지를 등록표에 게시할 수 있는 권한을 가진 새 사용자를 만듭니다.이 사용자는 IRISAPP 데이터베이스의 프로젝트 테이블에 쓰기 권한을 가져야 합니다.
  • 새 사용자를 만들려면 다음과 같이 하십시오.
    set tSC= ##class(App.Security.LockDown).CreateUser(pUsername, "%DB_"_Namespace, pPassword, "ZMP registry user",Namespace)
    If $$$ISERR(tSC) quit tSC
    write !,"Create user "_pUsername
    
    승인되지 않은 새 사용자에 대한 권한 추가:
    set tSC=##class(App.Security.LockDown).addSQLPrivilege(Namespace, "1,ZPM.Package", "s", "UnknownUser")
    set tSC=##class(App.Security.LockDown).addSQLPrivilege(Namespace, "1,ZPM.Package", "s", pUsername)
    set tSC=##class(App.Security.LockDown).addSQLPrivilege(Namespace, "1,ZPM.Package_dependencies", "s", pUsername)
    set tSC=##class(App.Security.LockDown).addSQLPrivilege(Namespace, "1,ZPM_Analytics.Event", "s", pUsername)
    set tSC=##class(App.Security.LockDown).addSQLPrivilege(Namespace, "9,ZPM.Package_Extent", "e", pUsername)
    set tSC=##class(App.Security.LockDown).addSQLPrivilege(Namespace, "9,ZPM_Analytics.Event_Extent", "e", pUsername)
    If $$$ISERR(tSC) quit tSC
    write  !,"Add privileges "
    
    잠금 프로그램을 실행하려면:
    set tSC= ##class(App.Security.LockDown).Apply(NewPassSys)
    If $$$ISERR(tSC) quit tSC
    
    Change the settings for the web app so that an unknown user can log in:
    set prop("AutheEnabled")=96
    set tSC=##class(Security.Applications).Modify("/registry",.prop)
    If $$$ISERR(tSC) quit tSC
    write !,"Modify /registry "
    
    Change the settings for the %service_terminal service, changing the authorization method to Operating System, Password:
    set name="%service_terminal"
    set prop("Enabled")=1
    set prop("AutheEnabled")=48 ; Operating System,Password
    set tSC=##class(Security.Services).Modify(name,.prop)
    If $$$ISERR(tSC) quit tSC
    write !,"Modify service terminal"
    

    끝내다


    본고에서 저는 왜 당신이 시스템의 안전 수준을 향상시키고 싶은지, 그리고 프로그래밍을 통해 이를 실현하는 방법을 토론했고 시스템 간 잠금 프로그램을 사용하는 예시를 보여 주었습니다.
    우리는 먼저 시스템의 모든 내용을 닫는 방법을 사용했다. 즉, 최대 보안 수준을 설정하는 것이다.그리고 우리는 프로젝트 실행에 필요한 서비스와 응용 프로그램을 열어 안전성을 조절하지만 이 서비스와 응용 프로그램에만 한정된다.나는 또 다른 방법과 최선의 실천이 있다고 확신한다. 나는 지역 사회에서 본문을 토론할 때 이런 방법과 최선의 실천을 듣고 싶다.

    좋은 웹페이지 즐겨찾기