# Okta Hardening

{{#include ../../banners/hacktricks-training.md}}

## Directory

### People

Iz perspektive napadača, ovo je veoma zanimljivo jer ćete moći da vidite **sve registrovane korisnike**, njihove **email** adrese, **grupe** kojima pripadaju, **profile** i čak **uređaje** (mobilne telefone zajedno sa njihovim operativnim sistemima).

Za pregled u beloj kutiji proverite da nema više od nekoliko "**Pending user action**" i "**Password reset**".

### Groups

Ovde možete pronaći sve kreirane grupe u Okta. Zanimljivo je razumeti različite grupe (set **dozvola**) koje mogu biti dodeljene **korisnicima**.\
Moguće je videti **ljude uključene u grupe** i **aplikacije dodeljene** svakoj grupi.

Naravno, svaka grupa sa imenom **admin** je zanimljiva, posebno grupa **Global Administrators,** proverite članove da saznate ko su najprivilegovaniji članovi.

Iz pregleda u beloj kutiji, ne **bi trebalo da bude više od 5 globalnih admina** (bolje je ako ih ima samo 2 ili 3).

### Devices

Ovde pronađite **listu svih uređaja** svih korisnika. Takođe možete videti da li je **aktivno upravljano** ili ne.

### Profile Editor

Ovde je moguće posmatrati kako se ključne informacije kao što su imena, prezimena, emailovi, korisnička imena... dele između Okta i drugih aplikacija. Ovo je zanimljivo jer ako korisnik može **modifikovati u Okta polje** (kao što je njegovo ime ili email) koje se zatim koristi od strane **spoljne aplikacije** za **identifikaciju** korisnika, insajder bi mogao pokušati da **preuzme druge naloge**.

Štaviše, u profilu **`User (default)`** iz Okta možete videti **koja polja** svaki **korisnik** ima i koja su **pisiva** od strane korisnika. Ako ne možete videti admin panel, jednostavno idite na **ažuriranje informacija o profilu** i videćete koja polja možete ažurirati (napomena da za ažuriranje email adrese morate da je verifikujete).

### Directory Integrations

Direktorijumi vam omogućavaju da uvezete ljude iz postojećih izvora. Pretpostavljam da ćete ovde videti korisnike uvezene iz drugih direktorijuma.

Nisam to video, ali pretpostavljam da je zanimljivo otkriti **druge direktorijume koje Okta koristi za uvoz korisnika** tako da ako **kompromitujete taj direktorijum** mogli biste postaviti neke vrednosti atributa u korisnicima kreiranim u Okta i **možda kompromitovati Okta okruženje**.

### Profile Sources

Izvor profila je **aplikacija koja deluje kao izvor istine** za atribute korisničkog profila. Korisnik može biti izvor samo iz jedne aplikacije ili direktorijuma u isto vreme.

Nisam to video, pa su sve informacije o bezbednosti i hakovanju u vezi sa ovom opcijom dobrodošle.

## Customizations

### Brands

Proverite u **Domains** tabu ovog dela email adrese korišćene za slanje emailova i prilagođeni domen unutar Okta kompanije (što verovatno već znate).

Štaviše, u **Setting** tabu, ako ste admin, možete "**Use a custom sign-out page**" i postaviti prilagođeni URL.

### SMS

Nema ništa zanimljivo ovde.

### End-User Dashboard

Ovde možete pronaći konfigurirane aplikacije, ali ćemo videti detalje o njima kasnije u drugom odeljku.

### Other

Zanimljiva podešavanja, ali ništa super zanimljivo iz perspektive bezbednosti.

## Applications

### Applications

Ovde možete pronaći sve **konfigurisane aplikacije** i njihove detalje: Ko ima pristup njima, kako je konfigurisano (SAML, OpenID), URL za prijavu, mapiranja između Okta i aplikacije...

U **`Sign On`** tabu postoji i polje pod nazivom **`Password reveal`** koje bi omogućilo korisniku da **otkrije svoju lozinku** prilikom provere podešavanja aplikacije. Da biste proverili podešavanja aplikacije iz korisničkog panela, kliknite na 3 tačke:

<figure><img src="../../images/image (283).png" alt=""><figcaption></figcaption></figure>

I mogli biste videti još neke detalje o aplikaciji (kao što je funkcija otkrivanja lozinke, ako je omogućena):

<figure><img src="../../images/image (220).png" alt=""><figcaption></figcaption></figure>

## Identity Governance

### Access Certifications

Koristite Access Certifications za kreiranje revizorskih kampanja kako biste periodično pregledali pristup vaših korisnika resursima i automatski odobrili ili opozvali pristup kada je to potrebno.

Nisam to video korišćeno, ali pretpostavljam da je iz odbrambene tačke gledišta to lepa funkcija.

## Security

### General

- **Security notification emails**: Sve bi trebalo da budu omogućene.
- **CAPTCHA integration**: Preporučuje se postavljanje barem nevidljivog reCaptche
- **Organization Security**: Sve može biti omogućeno i aktivacione email adrese ne bi trebale dugo trajati (7 dana je u redu)
- **User enumeration prevention**: Obe bi trebale biti omogućene
- Napomena da User Enumeration Prevention ne stupa na snagu ako je bilo koja od sledećih uslova dozvoljena (Pogledajte [User management](https://help.okta.com/oie/en-us/Content/Topics/users-groups-profiles/usgp-main.htm) za više informacija):
- Self-Service Registration
- JIT flows with email authentication
- **Okta ThreatInsight settings**: Zabeležite i primenite bezbednost na osnovu nivoa pretnje

### HealthInsight

Ovde je moguće pronaći ispravno i **opasno** konfigurisane **postavke**.

### Authenticators

Ovde možete pronaći sve metode autentifikacije koje korisnik može koristiti: Lozinka, telefon, email, kod, WebAuthn... Klikom na autentifikator lozinke možete videti **politiku lozinke**. Proverite da li je jaka.

U **Enrollment** tabu možete videti kako su one koje su obavezne ili opcione:

<figure><img src="../../images/image (143).png" alt=""><figcaption></figcaption></figure>

Preporučuje se onemogućavanje telefona. Najjače su verovatno kombinacija lozinke, emaila i WebAuthn.

### Authentication policies

Svaka aplikacija ima politiku autentifikacije. Politika autentifikacije proverava da li korisnici koji pokušavaju da se prijave u aplikaciju ispunjavaju određene uslove, i primenjuje zahteve faktora na osnovu tih uslova.

Ovde možete pronaći **zahteve za pristup svakoj aplikaciji**. Preporučuje se da se zahteva barem lozinka i još jedna metoda za svaku aplikaciju. Ali ako kao napadač pronađete nešto slabije, možda ćete moći da napadnete to.

### Global Session Policy

Ovde možete pronaći politike sesije dodeljene različitim grupama. Na primer:

<figure><img src="../../images/image (245).png" alt=""><figcaption></figcaption></figure>

Preporučuje se da se zahteva MFA, ograniči trajanje sesije na nekoliko sati, ne čuvajte kolačiće sesije preko ekstenzija pretraživača i ograničite lokaciju i Identity Provider (ako je to moguće). Na primer, ako svaki korisnik treba da se prijavi iz određene zemlje, mogli biste dozvoliti samo tu lokaciju.

### Identity Providers

Identity Providers (IdPs) su usluge koje **upravljaju korisničkim nalozima**. Dodavanje IdP-a u Okta omogućava vašim krajnjim korisnicima da se **samo-registruju** sa vašim prilagođenim aplikacijama prvo autentifikovanjem sa društvenim nalogom ili pametnom karticom.

Na stranici Identity Providers, možete dodati društvene prijave (IdPs) i konfigurisati Okta kao provajdera usluga (SP) dodavanjem ulaznog SAML-a. Nakon što dodate IdP-e, možete postaviti pravila usmeravanja da usmerite korisnike ka IdP-u na osnovu konteksta, kao što su lokacija korisnika, uređaj ili email domena.

**Ako je bilo koji provajder identiteta konfiguran** iz perspektive napadača i branioca proverite tu konfiguraciju i **da li je izvor zaista pouzdan** jer bi napadač koji ga kompromituje mogao takođe dobiti pristup Okta okruženju.

### Delegated Authentication

Delegirana autentifikacija omogućava korisnicima da se prijave u Okta unosom akreditiva za **Active Directory (AD) ili LDAP** server njihove organizacije.

Ponovo, proverite ovo, jer bi napadač koji kompromituje AD organizacije mogao biti u mogućnosti da pređe na Okta zahvaljujući ovoj postavci.

### Network

Mrežna zona je konfigurisiva granica koju možete koristiti da **dodelite ili ograničite pristup računarima i uređajima** u vašoj organizaciji na osnovu **IP adrese** koja traži pristup. Možete definisati mrežnu zonu tako što ćete odrediti jednu ili više pojedinačnih IP adresa, opsega IP adresa ili geografskih lokacija.

Nakon što definišete jednu ili više mrežnih zona, možete **koristiti ih u Global Session Policies**, **politike autentifikacije**, VPN obaveštenja i **pravila usmeravanja**.

Iz perspektive napadača zanimljivo je znati koje IP adrese su dozvoljene (i proveriti da li su neke **IP adrese privilegovanije** od drugih). Iz perspektive napadača, ako korisnici treba da pristupaju sa određene IP adrese ili regiona, proverite da li se ova funkcija pravilno koristi.

### Device Integrations

- **Endpoint Management**: Upravljanje krajnjim tačkama je uslov koji se može primeniti u politici autentifikacije kako bi se osiguralo da upravljani uređaji imaju pristup aplikaciji.
- Nisam to još video. TODO
- **Notification services**: Nisam to još video. TODO

### API

Možete kreirati Okta API tokene na ovoj stranici, i videti one koji su **kreirani**, njihove **privilegije**, **vreme isteka** i **Origin URLs**. Napomena da se API tokeni generišu sa dozvolama korisnika koji je kreirao token i važe samo ako je **korisnik** koji ih je kreirao **aktivan**.

**Trusted Origins** omogućavaju pristup veb sajtovima koje kontrolišete i kojima verujete da pristupaju vašem Okta okruženju putem Okta API-ja.

Ne bi trebalo da bude puno API tokena, jer ako ih ima, napadač bi mogao pokušati da im pristupi i koristi ih.

## Workflow

### Automations

Automatizacije vam omogućavaju da kreirate automatske akcije koje se pokreću na osnovu skupa uslova okidača koji se javljaju tokom životnog ciklusa krajnjih korisnika.

Na primer, uslov bi mogao biti "Neaktivnost korisnika u Okta" ili "Istek lozinke korisnika u Okta" i akcija bi mogla biti "Pošaljite email korisniku" ili "Promenite stanje životnog ciklusa korisnika u Okta".

## Reports

### Reports

Preuzmite logove. Oni su **poslati** na **email adresu** trenutnog naloga.

### System Log

Ovde možete pronaći **logove akcija koje su izvršili korisnici** sa puno detalja kao što su prijava u Okta ili u aplikacije putem Okta.

### Import Monitoring

Ovo može **uvoziti logove iz drugih platformi** kojima se pristupa putem Okta.

### Rate limits

Proverite dostignute API limite.

## Settings

### Account

Ovde možete pronaći **opšte informacije** o Okta okruženju, kao što su ime kompanije, adresa, **email kontakt za fakturiranje**, **email tehnički kontakt** i takođe ko bi trebao da prima Okta ažuriranja i koje vrste Okta ažuriranja.

### Downloads

Ovde možete preuzeti Okta agente za sinhronizaciju Okta sa drugim tehnologijama.

{{#include ../../banners/hacktricks-training.md}}
