Va bene scrivere il token OidC Bearer per registrare?

4

Durante lo sviluppo abbiamo aggiunto ai registri degli errori i dettagli delle richieste http, comprese le intestazioni, per comprendere meglio l'analisi degli errori. Il nostro architetto ha sottolineato che non dovremmo inserire informazioni sensibili nei log. La mia domanda era se dovessimo considerare il token bearer come informazioni altamente sensibili tenendo conto che il token di accesso è un oggetto di breve durata.

I consigli di Framework di autorizzazione di OAuth 2.0: utilizzo di token bearer :

If bearer tokens are passed in page URLs, attackers might be able to steal them from the history data, logs, or other unsecured locations.

Suppongo che anche la registrazione dei token nei log degli errori non sia raccomandata.

Tuttavia Asp.Net Core genera messaggi informativi, che include token bearer (sia codificati che in JSON)

2017-09-15 08:32:42.571 +00:00 [Information] Failed to validate the token "eyJ0eXAiOiJKV1QiLCJhb(I've truncated the token but full token can be decoded in JWT.io)". Microsoft.IdentityModel.Tokens.SecurityTokenSignatureKeyNotFoundException: IDX10501: Signature validation failed. Unable to match 'kid': 'HHByKU-0DqAxxx', token: '{"alg":"RS256","typ":"JWT","x5t":"HHByKU-0DqAxxx","kid":"HHByKU-0DqAxxx"}.{"aud":"https://webjet.group/eb694f3a-xxx","iss":"https://sts.windows.net/5de0e68cxxx","iat":1505464062,"nbf":1505464062,"exp":1505467962,"acr":"1","aio":"ASQAxxx","amr":["pwd"],"appid":"cc9aa533-xxx","appidacr":"1","e_exp":262800,"family_name":"Freidgeim","given_name":"Michael","groups":[xxx]","2d62738a-xxx"],"in_corp":"true","ipaddr":"121.1.1.1","name":"Michael Freidgeim","oid":"138f5eca-xxx","onprem_sid":"S-1-5-21-xxx","roles":["UATAdmin"],"scp":"user_impersonation","sub":"vTFBQRxxx","tid":"5de0e68c-xxx","unique_name":"Michael.Freidgeim@xxx","upn":"Michael.Freidgeim@xxx","ver":"1.0"}'. at System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler.ValidateSignature(String token, TokenValidationParameters validationParameters) at System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler.ValidateToken(String token, TokenValidationParameters validationParameters, SecurityToken& validatedToken) at Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerHandler.< HandleAuthenticateAsync>d__1.MoveNext()

Significa che il rischio non è così grande, perché Microsoft considera accettabile includere nei log?

O dovremmo escludere Microsoft / System Information LogLevel dai log? Sarà piuttosto restrittivo, dato che stiamo usando i log delle informazioni per le indagini, così come per alcuni monitoraggi / statistiche (come il numero di accessi).

Qual è l'approccio consigliato per l'archiviazione dei token nei log se vogliamo soddisfare i requisiti di sicurezza e investigativi?

    
posta Michael Freidgeim 17.09.2017 - 14:33
fonte

2 risposte

0

Se parte del framework sta registrando messaggi INFO, eliminerei quelli in un ambiente di produzione. È probabile che nell'esempio sopra riportato venga registrata anche una voce di livello ERROR meno dettagliata?

    
risposta data 17.09.2018 - 23:11
fonte
0

Potrebbe essere una buona idea dividere i dati in log operativi e SIEM, con diverse restrizioni di accesso. In questo modo puoi esaminare la maggior parte dei problemi senza il rischio di perdite di informazioni personali o di sicurezza. Perché queste sono le tue due preoccupazioni; che il registro rivela un bel po 'di informazioni personali a tutti gli utenti, e le token sono effettivamente valide password (autorizzazioni al portatore) fino alla loro scadenza. Registriamo l'ID del token (jit) solo nei log operativi, ma conserviamo il token completo in un archivio eventi sicuro nel caso in cui il token completo sia necessario per l'analisi.

    
risposta data 18.10.2018 - 06:52
fonte

Leggi altre domande sui tag