모바일 보안
ServiceNow 모바일 플랫폼의 보안 기능에 대해 자세히 알아봅니다.
ServiceNow 모바일 아키텍처
ServiceNow 모바일 앱은 ServiceNow 서버 인스턴스와 iOS 및 Android용 네이티브 앱으로 구성됩니다. 앱은 완전 네이티브 코드를 사용하고 하이브리드 접근이 아닙니다. 모바일 앱은 무선 네트워크를 통해 서버를 사용하여 데이터를 송수신합니다.
ServiceNow 모바일 플랫폼 보안의 주요 기능 개요
- 모바일 앱은 안전한 ServiceNow 플랫폼과 API를 사용하여 사용자에게 원활한 모바일 환경을 제공합니다.
- 앱/서버 상호작용은 OAuth 인증 프레임워크를 통해 보호됩니다.
- ServiceNow 앱의 사용자 인터페이스는 대부분 ServiceNow 플랫폼에서 제공하는 메타 데이터를 통해 제어됩니다.
- ServiceNow 모바일 앱은 ServiceNow 플랫폼에서 모든 데이터를 가져와 앱 클라이언트 계층의 로컬 캐시에 저장합니다.
- 인스턴스와 ServiceNow 주고받는 데이터와 로컬에 저장된 데이터는 암호화됩니다.
- 앱의 ServiceNow 경우 iOS 장치 수준 PIN 또는 생체 인식 보안을 강제 적용하여 Core Data에서 OS 수준 FIPS 140-2 확인 디스크 암호화를 사용합니다. iOS 운영 체제 업데이트를 통해 FIPS 호환 암호 제품군을 최신 상태로 유지합니다.
- Android 앱의 경우 ServiceNow는 SQLCipher SDK를 사용합니다. 이 SDK는 룸 DB에 저장된 모든 앱 데이터에 대해 FIPS 140-2 인증 암호화 모듈을 사용하여 암호화를 제공합니다.앱의 클라이언트 버전 20.1.0 Android 에서는 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 암호 제품군이 추가되었으며 아래 CBC 암호에 대한 지원이 중단되었습니다.
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
암호 불일치로 인해 SSL 핸드셰이크 문제가 발생하는 경우 인스턴스에서 지원되는 암호를 검토하고 지원되는 암호를 하나 더 추가합니다.
다음은 다음에서 지원되는 암호 목록입니다.Android- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
앱 플로우 개요
로그인이 완료되면 ServiceNow 모바일 앱이 최초 사용자 경험을 가져오기 시작합니다. 모바일 앱은 인스턴스에 방문 홈 화면을 렌더링하기 위해 메타 데이터를 가져옵니다. 그런 다음 앱은 이 메타 데이터를 사용하여 홈 화면을 렌더링합니다.
데이터 검색
- 데이터 읽기
- 사용자가 모바일 앱에서 정보 보기를 요청할 때 다음 단계가 수행됩니다.
- 모바일 앱은 인스턴스의 데이터에 액세스하는 요청을 보냅니다. 요청은 요청에 필요한 토큰과 관련 데이터 필드를 포함합니다.
- 인스턴스가 요청을 수신하고 토큰이 유효한지 확인합니다.
- 토큰이 유효하면 인스턴스가 요청을 관련 API로 리디렉션하여 정보를 가져옵니다.
- 인스턴스가 이 정보를 모바일 앱으로 반환합니다.
- 문서 다운로드
- 사용자가 앱에서 문서를 다운로드할 것을 요청하면 다음 단계가 수행됩니다.
- 모바일 앱은 문서에 액세스하기 위한 요청을 보냅니다. 요청은 토큰을 포함합니다.
- 인스턴스가 요청을 수신하고 토큰이 유효한지 확인합니다.
- 인스턴스가 접근 제어 목록(ACL) 규칙을 확인합니다.
- 유효한 경우 해당 문서를 볼 수 있습니다.
- 업데이트 필드에 대한 쓰기 저장(Write-Back)
- 사용자가 모바일 앱에서 필드를 업데이트하면 다음 단계가 수행됩니다.
- 모바일 앱은 토큰과 작업 메타 데이터를 인스턴스에 보냅니다. 예를 들면 ID 또는 업데이트할 필드 등을 보냅니다.
- 이 인스턴스는 관련 API를 기준으로 작업을 명령합니다.
- 인스턴스가 작업을 완료하고 모바일 앱으로 응답을 보냅니다.
- 모바일 앱은 응답에 따라, 필드 변경 내용과 작업 가용성을 UI에 반영합니다.
- 파일 첨부에 대한 쓰기 저장(Write-Back)
- 파일을 첨부하면 다음 단계가 수행됩니다.
- 모바일 앱이 사용자에게 파일(예: 이미지) 첨부를 요청합니다.
- 모바일 앱은 해당 파일과 토큰을 인스턴스에 보냅니다.
- 인스턴스는 관련 API를 기반으로 파일을 배치합니다.
- 인스턴스는 응답을 다시 모바일 앱으로 보냅니다.
모바일 인증
ServiceNow 모바일 앱은 OAuth 2.0을 사용하여 플랫폼 인증을 지원합니다. 인증 메커니즘에는 다중 공급자 SSO, MFA, LDAP, 로컬 DB, 다이제스트가 포함됩니다. ServiceNow 모바일 앱은 AppAuth라는 인증 방법론을 사용합니다. AppAuth에서는 사용자가 로그인하는 데 외부 모바일 브라우저를 사용합니다.
- 인증 플로우
사용자가 모바일 장치에서 앱에 로그인하면 앱은 사용자의 자격 증명을 사용하여 OAuth 토큰을 인스턴스와 협상합니다. iOS 키체인이 iOS 장치에 대한 토큰을 저장합니다. Android 장치는 키 저장소를 사용합니다. 키체인 암호화는 Galois/Counter 모드(GCM)의 AES 256입니다.
처음 로그인할 때 인스턴스가 사용자에게 접근 토큰과 새로 고침 토큰을 제공합니다. 이 토큰은 인스턴스에 구성될 수 있는 시간 동안 유효합니다. 사용자가 모바일 앱을 열면 클라이언트는 접근 토큰이 유효한지 확인합니다. 유효하면 사용자는 세션을 계속할 수 있습니다. 유효하지 않으면 클라이언트는 새로 고침 토큰이 유효한지 확인합니다. 유효한 경우 새로 고침 토큰은 사용자에게 유효한 새 접근 토큰을 가져오는 데 사용되고 세션을 계속할 수 있습니다. 새로 고침 토큰이 유효하지 않으면 사용자가 다시 인증해야 합니다.
- 접근 및 새로 고침 토큰
- 모바일 앱은 사용자 암호를 저장하지 않습니다.
- 모바일 앱은 OAuth 토큰을 인증 플로우의 일부로 가져오는 데 필요한 클라이언트 ID를 저장합니다.
- 사용자 종료
- 관리자가 인스턴스에서 사용자를 삭제하거나 제거하면 접근 토큰은 더 이상 유효하지 않으며 어떤 작업이든 사용자를 로그아웃합니다.
- 다중 공급자 SSO
- 다중 공급자 SSO 플러그인 [com.snc.integration.sso.multi.installer]는 SAML 인증 지원을 제공합니다. 로그인 프로세스(AppAuth)는 이 플러그인을 사용하여 SAML 사용 시 사용자를 IDP(SAML 공급자) 로그인 페이지로 리디렉션합니다.
- Multifactor Authentication
- 사용자는 MFA 플러그인[com.snc.integration.multifactor.authentication]을 사용하여 Multifactor Authentication을 통해 인스턴스에 액세스할 수 있습니다. 해당 인스턴스를 선택하면 모바일 앱은 사용자를 로그인 페이지로 리디렉션합니다.
- LDAP
- LDAP Authentication을 사용하여 LDAP 자격 증명 사용에 액세스합니다. 사용자는 로컬 로그인(DB 기반)과 동일한 로그인 페이지를 보지만, LDAP 서버로 백엔드가 인증을 삭제합니다.
데이터 보안
ServiceNow 모바일 앱은 데이터 보안을 위한 OTA(Over-the-Air) 통신 암호화에 SSL/TLS를 사용합니다. OAuth 인증 엔드포인트는 HTTPS입니다.
- 저장 데이터(DAR)
즐겨찾기, 홈 화면, 모바일 탐색기 항목 등의 애플리케이션 기본 설정 데이터는 장치에 로컬로 저장되고 캐시됩니다. 모바일 앱은 조직에서 현장 서비스에 대한 오프라인 동기화를 특별히 활성화한 경우가 아니면, 인시던트, 문제 등의 기록 데이터를 장치에 저장하지 않습니다. 오프라인 모드 중에 저장된 기록 데이터는 FIPS 140-2 인증 모듈로 암호화됩니다. (iOS 암호화 모듈 및 암호화를 위해 이 암호화 모듈을 사용하는 Android용 SQL Cipher)
- 모션 데이터
- 모션 데이터는 보안 SSL/TLS 채널 상에 있으며, FIPS 140-2 인증 모듈로 암호화됩니다.
- 데이터 손실 방지
- ServiceNow는 엔터프라이즈 이동성 관리(EMM) 제품군으로 장치와 애플리케이션을 관리할 필요 없이 데이터 손실 방지 기능을 제공합니다. 이러한 기능에는 복사/붙여 넣기 제한, PIN 적용, 첨부 파일 차단 및/또는 흐림 기능이 포함됩니다.
- 복사/붙여 넣기 제한
- 복사/붙여 넣기 제한은 시스템 속성 테이블에서 속성으로 정의됩니다.
- 앱 PIN 필요
- 사용자는 모바일 장치에서 로그인할 때마다 또는 애플리케이션이 5분간 비활성화되었을 때 6자리수 PIN을 입력해야 합니다. 앱 PIN에 대한 요구는 시스템 속성 테이블의 속성으로 제어됩니다.
- 모바일 장치에서 첨부 파일 비활성화
- ACL 규칙을 구성하여 특히 모바일 장치에서 첨부 파일을 차단할 수 있습니다. 모바일 장치에서 요청이 들어오는지 확인하려면
isMobile메서드를 사용합니다. 예를 들어, 읽기와 쓰기 스크립트의 ACL이 다음 확인을 포함하는 첨부 파일 [sys_attachment] 테이블에 대한 ACL 규칙을 추가할 수 있습니다. - 앱 흐리게 하기 옵션 활성화
- 시스템 속성 테이블에서 다음 시스템 속성을 사용하여 모바일 장치에 초점을 두지 않으면 모바일 앱을 흐리게 합니다.
- 침투 테스트
ServiceNow는 타사와 결합하여 모바일 앱의 침투 테스트를 수행합니다. 일반적으로 이 일은 매년 수행되지만 때때로 더 자주 발생합니다. 이러한 테스트의 결과는 고객에게 제공됩니다. 보안 테스트에 대한 자세한 내용은 KB0538598: Customer Instance Security Testing | Policy and Procedure를 참조하십시오.
- 보안 패치
- 보안 패치가 필요한 경우 모바일 개발 팀은 패치를 위해 표준 SDLC 속성에 맞춥니다.
- 사용자 데이터 수집
모바일 앱은 특별히 아무 사용자 데이터나 수집하지 않습니다.
앱 내에서 사용자 트랜잭션이나 사용은 웹에서처럼 ServiceNow 인스턴스에서 추적됩니다. 사용자 자격 증명의 경우, 사용자가 로그인한 후 모바일 애플리케이션은 Apple 키체인 또는 Android 키 저장소에 저장된 OAuth 토큰과 협상합니다. 사용자 자격 증명은 절대로 저장되지 않습니다. 사용자가에 가입한 경우, 다음 정보가 수집됩니다.
- 위치
- 카메라 액세스
- 알림