Okta Hardening
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
공격자의 관점에서 볼 때, 이는 매우 흥미롭습니다. 등록된 모든 사용자, 그들의 이메일 주소, 그들이 속한 그룹, 프로필 및 심지어 장치(모바일 및 운영 체제)를 볼 수 있습니다.
화이트박스 검토를 위해 "대기 중인 사용자 작업" 및 "비밀번호 재설정"이 여러 개 없는지 확인하십시오.
여기에서 Okta에 생성된 모든 그룹을 찾을 수 있습니다. 사용자에게 부여될 수 있는 다양한 그룹(일련의 권한)을 이해하는 것이 흥미롭습니다. 그룹에 포함된 사람들과 각 그룹에 할당된 앱을 볼 수 있습니다.
물론, admin이라는 이름의 그룹은 흥미롭습니다. 특히 Global Administrators 그룹을 확인하여 가장 특권이 있는 구성원이 누구인지 알아보십시오.
화이트박스 검토에서 글로벌 관리자가 5명 이상이면 안 됩니다(2명 또는 3명만 있는 것이 더 좋습니다).
여기에서 모든 사용자의 장치 목록을 찾을 수 있습니다. 또한 적극적으로 관리되고 있는지 여부를 확인할 수 있습니다.
여기에서 이름, 성, 이메일, 사용자 이름 등과 같은 주요 정보가 Okta와 다른 애플리케이션 간에 어떻게 공유되는지 관찰할 수 있습니다. 이는 사용자가 Okta에서 필드(예: 이름 또는 이메일)를 수정할 수 있는 경우, 이를 식별하는 데 사용되는 외부 애플리케이션이 있을 수 있으므로 흥미롭습니다. 내부자는 다른 계정을 탈취하려고 시도할 수 있습니다.
또한 Okta의 프로필 **User (default)
**에서 각 사용자가 가진 필드와 사용자가 수정할 수 있는 필드를 확인할 수 있습니다. 관리 패널을 볼 수 없는 경우, 프로필 정보를 업데이트하러 가면 어떤 필드를 업데이트할 수 있는지 볼 수 있습니다(이메일 주소를 업데이트하려면 확인이 필요합니다).
디렉토리는 기존 소스에서 사람들을 가져올 수 있게 해줍니다. 여기에서 다른 디렉토리에서 가져온 사용자를 볼 수 있을 것입니다.
나는 그것을 본 적이 없지만, Okta가 사용자를 가져오기 위해 사용하는 다른 디렉토리를 찾는 것이 흥미롭다고 생각합니다. 따라서 해당 디렉토리를 타협하면 Okta에서 생성된 사용자에 대한 일부 속성 값을 설정하고 Okta 환경을 타협할 수 있습니다.
프로필 소스는 사용자 프로필 속성의 진실의 출처로 작용하는 애플리케이션입니다. 사용자는 한 번에 단일 애플리케이션 또는 디렉토리에서만 소스될 수 있습니다.
나는 그것을 본 적이 없으므로 이 옵션에 대한 보안 및 해킹 관련 정보는 감사히 받겠습니다.
이 섹션의 Domains 탭에서 이메일 주소를 확인하고 회사의 Okta 내 사용자 지정 도메인을 확인하십시오(아마 이미 알고 있을 것입니다).
또한 Setting 탭에서 관리자인 경우 "사용자 지정 로그아웃 페이지 사용"을 선택하고 사용자 지정 URL을 설정할 수 있습니다.
여기서는 흥미로운 것이 없습니다.
여기에서 구성된 애플리케이션을 찾을 수 있지만, 나중에 다른 섹션에서 그 세부 사항을 볼 것입니다.
흥미로운 설정이지만 보안 관점에서 특별히 흥미로운 것은 없습니다.
여기에서 모든 구성된 애플리케이션과 그 세부 정보를 찾을 수 있습니다: 누가 접근할 수 있는지, 어떻게 구성되어 있는지(SAML, OpenID), 로그인 URL, Okta와 애플리케이션 간의 매핑...
Sign On
탭에는 사용자가 애플리케이션 설정을 확인할 때 비밀번호를 표시할 수 있는 **Password reveal
**이라는 필드도 있습니다. 사용자 패널에서 애플리케이션의 설정을 확인하려면 3개의 점을 클릭하십시오:
그리고 앱에 대한 더 많은 세부 정보를 볼 수 있습니다(비밀번호 표시 기능이 활성화되어 있는지 여부 등):
Access Certifications를 사용하여 사용자의 리소스 접근을 주기적으로 검토하고 필요할 때 자동으로 접근을 승인하거나 철회하는 감사 캠페인을 생성하십시오.
나는 그것이 사용되는 것을 본 적이 없지만, 방어적인 관점에서 볼 때 좋은 기능이라고 생각합니다.
보안 알림 이메일: 모두 활성화되어야 합니다.
CAPTCHA 통합: 최소한 보이지 않는 reCaptcha를 설정하는 것이 좋습니다.
조직 보안: 모든 것을 활성화할 수 있으며 활성화 이메일은 오래 걸리지 않아야 합니다(7일이면 괜찮습니다).
사용자 열거 방지: 두 가지 모두 활성화되어야 합니다.
사용자 열거 방지가 효과를 발휘하지 않으려면 다음 조건 중 하나가 허용되지 않아야 합니다(자세한 내용은 User management를 참조하십시오):
셀프 서비스 등록
이메일 인증이 있는 JIT 흐름
Okta ThreatInsight 설정: 위협 수준에 따라 보안을 기록하고 시행합니다.
여기에서 올바르게 구성된 설정과 위험한 설정을 찾을 수 있습니다.
여기에서 사용자가 사용할 수 있는 모든 인증 방법을 찾을 수 있습니다: 비밀번호, 전화, 이메일, 코드, WebAuthn... 비밀번호 인증기를 클릭하면 비밀번호 정책을 볼 수 있습니다. 강력한지 확인하십시오.
Enrollment 탭에서 필수 또는 선택 사항인 항목을 볼 수 있습니다:
전화 인증은 비활성화하는 것이 좋습니다. 가장 강력한 조합은 비밀번호, 이메일 및 WebAuthn의 조합일 것입니다.
모든 앱에는 인증 정책이 있습니다. 인증 정책은 앱에 로그인하려는 사용자가 특정 조건을 충족하는지 확인하고 해당 조건에 따라 요소 요구 사항을 시행합니다.
여기에서 각 애플리케이션에 대한 접근 요구 사항을 찾을 수 있습니다. 각 애플리케이션에 대해 최소한 비밀번호와 다른 방법을 요청하는 것이 좋습니다. 그러나 공격자로서 더 약한 것을 발견하면 공격할 수 있을 것입니다.
여기에서 다양한 그룹에 할당된 세션 정책을 찾을 수 있습니다. 예를 들어:
MFA를 요청하고, 세션 수명을 몇 시간으로 제한하며, 브라우저 확장 프로그램 간에 세션 쿠키를 지속하지 않도록 하고, 위치 및 ID 공급자를 제한하는 것이 좋습니다(가능한 경우). 예를 들어, 모든 사용자가 특정 국가에서 로그인해야 하는 경우 해당 위치만 허용할 수 있습니다.
ID 공급자(IdPs)는 사용자 계정을 관리하는 서비스입니다. Okta에 IdPs를 추가하면 최종 사용자가 소셜 계정이나 스마트 카드를 통해 먼저 인증하여 사용자 지정 애플리케이션에 셀프 등록할 수 있습니다.
ID 공급자 페이지에서 소셜 로그인을 추가하고 수신 SAML을 추가하여 Okta를 서비스 제공자(SP)로 구성할 수 있습니다. IdPs를 추가한 후에는 사용자의 위치, 장치 또는 이메일 도메인과 같은 컨텍스트에 따라 사용자를 IdP로 안내하는 라우팅 규칙을 설정할 수 있습니다.
어떤 ID 공급자가 구성되어 있다면 공격자와 방어자의 관점에서 해당 구성을 확인하고 출처가 정말 신뢰할 수 있는지 확인하십시오. 공격자가 이를 타협하면 Okta 환경에 접근할 수 있습니다.
위임 인증을 통해 사용자는 조직의 Active Directory(AD) 또는 LDAP 서버에 대한 자격 증명을 입력하여 Okta에 로그인할 수 있습니다.
다시 확인하십시오. 공격자가 조직의 AD를 타협하면 이 설정 덕분에 Okta로 피벗할 수 있습니다.
네트워크 존은 요청하는 IP 주소에 따라 조직의 컴퓨터 및 장치에 대한 접근을 부여하거나 제한하는 데 사용할 수 있는 구성 가능한 경계입니다. 하나 이상의 개별 IP 주소, IP 주소 범위 또는 지리적 위치를 지정하여 네트워크 존을 정의할 수 있습니다.
하나 이상의 네트워크 존을 정의한 후에는 Global Session Policies, authentication policies, VPN 알림 및 routing rules에서 사용할 수 있습니다.
공격자의 관점에서 어떤 IP가 허용되는지 아는 것이 흥미롭습니다(그리고 어떤 IP가 다른 IP보다 더 특권이 있는지 확인하십시오). 공격자의 관점에서 사용자가 특정 IP 주소나 지역에서 접근해야 하는 경우 이 기능이 제대로 사용되고 있는지 확인하십시오.
Endpoint Management: 엔드포인트 관리는 관리되는 장치가 애플리케이션에 접근할 수 있도록 보장하기 위해 인증 정책에 적용할 수 있는 조건입니다.
나는 이것이 사용되는 것을 아직 보지 못했습니다. TODO
Notification services: 나는 이것이 사용되는 것을 아직 보지 못했습니다. TODO
이 페이지에서 Okta API 토큰을 생성하고 생성된 토큰, 권한, 만료 시간 및 Origin URLs를 볼 수 있습니다. API 토큰은 토큰을 생성한 사용자의 권한으로 생성되며, 사용자가 활성 상태일 때만 유효합니다.
신뢰할 수 있는 출처는 Okta API를 통해 Okta 조직에 접근할 수 있도록 제어하고 신뢰하는 웹사이트에 대한 접근을 부여합니다.
API 토큰이 많지 않아야 합니다. 그렇지 않으면 공격자가 이를 접근하고 사용할 수 있습니다.
자동화는 최종 사용자의 생애 주기 동안 발생하는 일련의 트리거 조건에 따라 실행되는 자동화된 작업을 생성할 수 있게 해줍니다.
예를 들어 조건은 "Okta에서 사용자 비활성" 또는 "Okta에서 사용자 비밀번호 만료"일 수 있으며, 작업은 "사용자에게 이메일 전송" 또는 "Okta에서 사용자 생애 주기 상태 변경"일 수 있습니다.
로그를 다운로드하십시오. 현재 계정의 이메일 주소로 전송됩니다.
여기에서 사용자가 수행한 작업의 로그를 찾을 수 있으며, Okta 또는 Okta를 통해 애플리케이션에 로그인하는 것과 같은 많은 세부 정보가 포함되어 있습니다.
이것은 Okta에 접근한 다른 플랫폼의 로그를 가져올 수 있습니다.
도달한 API 속도 제한을 확인하십시오.
여기에서 Okta 환경에 대한 일반 정보를 찾을 수 있습니다. 회사 이름, 주소, 이메일 청구 연락처, 이메일 기술 연락처 및 Okta 업데이트를 받을 사람과 어떤 종류의 Okta 업데이트인지 확인하십시오.
여기에서 Okta를 다른 기술과 동기화하기 위한 Okta 에이전트를 다운로드할 수 있습니다.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)