oracle digital assistant - github pages · •oci identity and access management (iam) –manages...

36

Upload: others

Post on 22-May-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure
Page 2: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |

Oracle Digital Assistant The Complete Training

2

Oracle Digital Assistant Security Overview

Image courtesy of pixabay.com

Page 3: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure

Copyright © 2018, Oracle and/or its affiliates. All rights reserved.

Safe Harbor StatementThe following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.

3

Page 4: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure

Copyright © 2018, Oracle and/or its affiliates. All rights reserved.

Topic agenda

4

Concerns

Security architecture

Channel security

OCI Security

Application security

Coding practices

1

2

3

4

5

6

Page 5: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure

Copyright © 2018, Oracle and/or its affiliates. All rights reserved.

Topic agenda

5

Concerns

Security architecture

Channel security

OCI Security

Application security

Coding practices

1

2

3

4

5

6

Page 6: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure

Copyright © 2018, Oracle and/or its affiliates. All rights reserved.

Security concerns with social media messengers• Data privacy is at the discretion of the

provider– Social media companies make money with

targeted advertising– Protection on data transit, but not clear who

else has access

• Identity theft and impersonation

6

Page 7: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure

Copyright © 2018, Oracle and/or its affiliates. All rights reserved.

Security concerns with chatbots• Trusting messenger applications– Channel implementation may involve 3rd party

messaging servers

• Sensitive data stored in logs• Denial-of-service attacks– How to throttle number of bot requests

• Insufficient incident monitoring

7

Page 8: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure

Copyright © 2018, Oracle and/or its affiliates. All rights reserved.

Web application threats that apply to chatbots• "Shoulder surfing”• Script injection• Broken access control• Sensitive data exposure• Security misconfiguration• Message replaying• Insufficient logging

8

Page 9: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure

Copyright © 2018, Oracle and/or its affiliates. All rights reserved.

Topic agenda

9

Concerns

Security architecture

Channel security

OCI Security

Application security

Coding practices

1

2

3

4

5

6

Page 10: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 10

Multi layer chatbot security

Frontendsecure communication

Cloud Infrastructureplatform object, service, console and api security

Oracle Digital Assistantplatform API security

Chatbot (skill)application security

Backend Securityapplication security

Page 11: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure

Copyright © 2018, Oracle and/or its affiliates. All rights reserved.

Remote Business & Data Services

11

Oracle Digital Assistant multi layer security architecture

Chan

nel

Mes

sagi

ngSe

rvic

e Digital Assistant (DA)

Dialog flow

Skill

Custom Components

Security Components

Mes

seng

erCl

ient

Device Provider

Oracle Digital Assistant (ODA)

Oracle Cloud Infrastructure (OCI)

Logs

ODA APIs

OCI security (IAM)

Applicationsecurity

Page 12: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure

Copyright © 2018, Oracle and/or its affiliates. All rights reserved.

Topic agenda

12

Concerns

Security architecture

Channel security

OCI Security

Application security

Coding practices

1

2

3

4

5

6

Page 13: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure

Copyright © 2018, Oracle and/or its affiliates. All rights reserved.

Common channel security• HTTPS for protecting messages

in transit• SHA 256 signature prevents messages

to be changed on transit• Different messengers have different

security configuration– Channels in Oracle Digital assistant assist

you in creating messenger specific secrets

13

Page 14: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 14

The security between the user device andthe message server is the responsibility of

the message channel provider

Image courtesy of pixabay.com

Page 15: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure

Copyright © 2018, Oracle and/or its affiliates. All rights reserved.

Oracle web SDK• Oracle owned JavaScript library to add

digital assistant to web applications and web pages• Uses Oracle own chat server– No Smooch

• Highly customizable web messenger• State of the art messenger features– timestamp display, typing indicator– Document and image upload– Security

15

Page 16: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure

Copyright © 2018, Oracle and/or its affiliates. All rights reserved.

Oracle web messenger client security• Client authentication using signed JSON

Web Tokens (JWT)– Generate signed JWT token on custom server• Web channel secret as signing key

– Signed JWT token added as 'Bearer' token in Authorization header for each request

–ODA validates information in token body

• Domain whitelisting– Restricts domains allowed to access channel–Works with and without client authentication

16

Page 17: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure

Copyright © 2018, Oracle and/or its affiliates. All rights reserved.

Hiding / exposing information based on channels• Some channels may be more trusted than others– Customize ODA based on channel type and channel name

• Expression– ${system.message.channelConversation.type}– ${system.message.channelConversation.channelName}

• System Common Response Component– channel include | exclude property to determine visibility

• Custom component: – conversation.channelType()Converation.request().message.channelConversation.channelName

17

Page 18: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure

Copyright © 2018, Oracle and/or its affiliates. All rights reserved.

Topic agenda

18

Concerns

Security architecture

Channel security

OCI Security

Application security

Coding practices

1

2

3

4

5

6

Page 19: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure

Copyright © 2018, Oracle and/or its affiliates. All rights reserved.

HTTP Request Security• TLS 1.2– Transport layer security

• Basic & Bearer authentication– HTTP endpoint protection

• OAuth2– Token based authorization

• Cryptographic signature–Message integrity protection

19

Page 20: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure

Copyright © 2018, Oracle and/or its affiliates. All rights reserved.

OCI Security• Oracle cloud infrastructure security– Secures APIs, cloud objects (e.g. storage) and services– Perimeter security of data centers

• OCI Identity and Access Management (IAM)–Manages users, user groups, resource groups (compartments), policies– Security for network-, compute-, storage-, console- and APIs– Users are platform users like admins, developers, business analysts

• Authorization requires cryptographic signatures

20

Page 21: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 21

OCI security protects cloud APIs andresources. It separates custom application

security from cloud security.

Image courtesy of pixabay.com

Page 22: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 22

Anatomy of an API request in OCI

Oracle Cloud Infrastructure

User

Identity and AccessManagement

OCIDKey fingerprintUser public key (pem-file)

Groups

Policies

HTTP client

Tenant: OCID

ODA APIs

resource groups(compartments)

*

Request

Body…

Headers

oda-host/api/v1/endpoint

Datex-content-sha256Content-Type *

AuthorizationContent-Length*

Host

for post, put, patch methods

Page 23: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure

Copyright © 2018, Oracle and/or its affiliates. All rights reserved.

Topic agenda

23

Concerns

Security architecture

Channel security

OCI Security

Application security

Coding practices

1

2

3

4

5

6

Page 24: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 24

Application security today is less about who the user is. It's about whether a client is authorized to

access a protected resource.

Image courtesy of pixabay.com

Page 25: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure

Copyright © 2018, Oracle and/or its affiliates. All rights reserved.

OAuth2 Authorization• Industry standard for token based authorization–Widely used (including in social media)

• Commonly used authorization types– Authorization code flow• Client accesses resource API on behalf of a user• User authenticates to authorization provider to obtain access token• Client uses access token to access remote service APIs

– Client credential flow• Resource API is accessed on behalf of a system• Uses shared client ID and client secret to obtain access token• Client uses access token to access remote service APIs

25

Page 26: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure

Copyright © 2018, Oracle and/or its affiliates. All rights reserved.

OAuth2 authorization in ODA skills• ODA supports authorization code- and

client credential grant flows• Declarative support for OAuth2 with

Oracle IDCS and OAM through– Authentication service–OAuth2 security components

• Support for 3rd party providers– 2-legged authorization

• Protected resources accessed from custom components

26

TokenProvider

AuthenticationService

(ODA with IDCS or OAM)

Dialog Flow

Custom Component

token

tokentoken

SecurityComponent

Client Application

ProtectedAPI

Page 27: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure

Copyright © 2018, Oracle and/or its affiliates. All rights reserved.

Built-in OAuth2 security components• System.OAuth2AccountLink– 3-legged authorization–Obtains access token from Oracle Identity Cloud Service– Supports refresh tokens

• System.OAuthAccountLink– 2-legged authorization–Obtains authorization token from 3rd party OAuth2 authorization provider– Requires custom component to obtain access token

• System.OAuth2Client–Obtains access token based on client credentials

27

Page 28: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 28

Request authorization in ODA is not limited to OAuth2

Image courtesy of pixabay.com

Page 29: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure

Copyright © 2018, Oracle and/or its affiliates. All rights reserved.

Topic agenda

29

Concerns

Security architecture

Channel security

OCI Security

Application security

Coding practices

1

2

3

4

5

6

Page 30: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure

Copyright © 2018, Oracle and/or its affiliates. All rights reserved.

Validate user input• Dialog flow– Apache FreeMarker– Entity validation• System.MatchEntity• Using entity type variables on input components

• Custom Components– Use and validate input parameters

• Backend systems– Backends should know to protect themselves

30

Page 31: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure

Copyright © 2018, Oracle and/or its affiliates. All rights reserved.

Keep sensitive information out of the chat history• Unless you fully control the messenger: Don't use it for any sensitive data

input and display– Use System.Webview to provide information outside of the messenger

• Truncate or mask sensitive information like credit card numbers or license keys in bot responses– Use Apache FreeMarker expressions or custom components

31

Page 32: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure

Copyright © 2018, Oracle and/or its affiliates. All rights reserved.

Use out-of-order message handling• Posting of old action message is referred to as "out-of-order message"• Out-of-order message handling need to be evaluated for each usecase– Default implementation is to allow out-of-order messages– Use cases to consider• Allow and follow out-of-order messages• Suppress out of order messages• Ask user what to do

• Don't allow sensitive actions to be executed from the chat history– Configure out-of-order message handling to suppress the action or direct to a state

informing the user that the requested option is no longer available

32

Page 33: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure

Copyright © 2018, Oracle and/or its affiliates. All rights reserved.

Consider restricting content based on the channel• Social media messengers may be considered less trustworthy• Optimize skill responses to exclude sensitive information on less trusted

channels• Conversation flows and custom components have access to – Channel type (e.g. facebook, web, webhook etc.)• ${system.message.channelConversation.channelType} • ${system.message.channelConversation.channelName}• conversation.channelType()

– The channel name you defined when configuring a channel

33

Page 34: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure

Copyright © 2018, Oracle and/or its affiliates. All rights reserved.

Backend service security

• Remote business and data services must protect themselves– Enforce security– Do not make assumptions about the

security enforced by the client– Validate and authorize requests

34

Page 35: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure

Copyright © 2018, Oracle and/or its affiliates. All rights reserved. 35

Page 36: Oracle Digital Assistant - GitHub Pages · •OCI Identity and Access Management (IAM) –Manages users, user groups, resource groups (compartments), policies ... Oracle Cloud Infrastructure