New Member FAQ | Forums | Earn Revenue


Resources Entrance Ask Experts Exam Papers Jobs English Projects Universities Colleges Courses Schools Training My India



My Profile
Active Members
TodayLast 7 Days more...



Awards & Gifts
Online Exams

Fresher Jobs


Our fresher job section is exclusively for fresh graduates! Find jobs for freshers in major Indian cities including Bangalore, Chennai, Hyderabad, Pune or Kochi

Resources


Find educational articles, blogs, discussion threads and other resources.

Colleges


Find details about any college in India or search for courses.

website counter



Oracle Label Security -Best Practices for Government and Defense Applications


Posted Date:     Total Responses: 0    Posted By: adarsh kumar   Member Level: Gold   Points/Cash: 6   


Oracle Label Security -
Best Practices for Government
and Defense Applications
Oracle Label Security Best Practices for Government and Defense Applications
Oracle Label Security - Best Practices for Government
and Defense Applications
INTRODUCTION
User Label
Authorizations
Oracle Label
Security
Access
Mediation
Confidential
Secret
Top Secret
Based on stringing security requirements found in high security organizations,
Oracle Label Security provides extensive and flexible label based access control
(LBAC) capabilities to support the deployment of multi-level security (MLS)
applications in government and defense environments. Oracle Label Security
overcomes the historic limitations of MLS systems with broad platform availability
and extensive policy controls
that can be finely tuned for
specific environments.
Available for Oracle8i
Enterprise Edition and higher,
Oracle Label Security can be
deployed with Oracle RAC
and Data Guard for scalability
and high availability. This
paper outlines best practices
that can be used to
incorporate Oracle Label
Security into an existing or
new application.
Fig 1. Oracle Label Security Overview
SENSITIVITY LABELS AND ACCESS MEDIATION
Oracle Label Security MLS access mediation works by comparing a sensitivity label
with label authorizations assigned to an application user.
Transparent
Access Mediation
Sensitivity Labels
User
Label
Authorizations
(Database or IdM)
Sensitivity Labels
Assigned To Application Data
Fig 2. Oracle Label Security Access Control Overview
Oracle Label Security Best Practices for Government and Defense Applications Page 3
Sensitivity labels are central to Oracle Label Security. Sensitivity labels provide
sophisticated controls and determine an application user's access to application
data. Sensitivity labels contain a level, optional compartments and optional groups.
Level -- The level is a hierarchical component that denotes the sensitivity of the
data. A typical government organization might define levels confidential, sensitive
and highly sensitive.
Compartment - The compartment component is optional and is sometimes
referred to as a category and is non hierarchical. Typically one or more
compartments are defined to segregate data. Compartments might be defined for
a specific highly sensitive knowledge area or project.
Group - Groups are similar to categories and are also optional. However,
groups can have a parent child relationship. In addition, Oracle Label Security
evaluates groups differently than compartments. Figure 3 outlines the read
mediation algorithm for sensitivity labels
The external representation of a label uses colons and commas to separate the
various components. The sensitivity label Sensitive: Alpha, Beta : UK contains the
level Sensitive, two compartments Alpha and Beta and one group UK. Internally,
Oracle Label Security users a numeric identifier called a label tag for each sensitivity
label. While sensitivity labels and label tags can be created dynamically at runtime,
Oracle recommends defining all sensitivity labels and associated label tags in
advance.
Read Algorithm for Access Mediation
Oracle Label Security mediates access by comparing user label authorizations with a
sensitivity label.
Data level =<
User level
Data has
Grps
User has at
least one
Grp
Data has
comps
User has all
comps
No
Access Access
Y
N
Y
N
Y
Y
N
N
N
Y
Fig 3. Oracle Label Security Read Algorithm
Oracle Label Security Best Practices for Government and Defense Applications Page 4
Incorporating Oracle Label Security
Important to the success of using Oracle Label Security is the analysis process.
Advanced row labeling requires determining how and where to apply Oracle Label
Security.
Step 1: Analyzing the Application Scheme
Analyzing the application means identifying the tables that need an Oracle Label
Security policy applied to them. This is best accomplished with the assistance of an
application administrator or developer who has intimate knowledge of the
application scheme. In most cases, a small percentage of the application tables will
require an Oracle Label Security policy. If the application has an entity relationship
(ER) diagram, it may be useful to annotate on the ER the levels for each entity.
Projects Assets
Step 2: Analyzing the Sensitivity Levels
Once the candidate tables have been identified, the data contained in the tables
needs to be evaluated. The assistance of a data analyst or someone with intimate
understanding of the data will be required. Data levels refer to the sensitivity level
of the data. Unclassified, Sensitive and Highly Sensitive are examples of sensitivity levels.
It’s recommended that application data that may be stored in the future be
considered as well. This will create a robust set of label definitions in Oracle Label
Security.
Unclassified
Secret
Secret
Top Secret
Projects Assets
Step 3: Analyzing the Data Groups
Groups useful for controlling access based on data ownership and for sharing data
across organizations. As with data levels, the assistance of someone with broad
familiarity with business operations can provide valuable assistance with this stage
of the analysis. Examples of groups include United States, United Kingdom, Europe,
Asia.
Secret : Alpha, Beta : US, UK
Top Secret : Alpha, Beta : UK
Oracle Label Security Best Practices for Government and Defense Applications Page 5
Step 4: Analyzing the Data Compartments
Data compartments are primarily used in government and defense environments.
A commercial application may find that data groups are sufficient to provide the
necessary level of access control. However, commercial organizations may find
that compartments are useful for labeling personally identifiable information (PII).
In government and defense environments, compartments are typically used to
restrict access to projects or specialized areas of knowledge.
Secret : Alpha, Beta : US, UK
Top Secret : Alpha, Beta : UK
Step 5: Analyzing the user population
This step requires gaining an understanding of the various roles and responsibilities
of the user population. For example, a user might be designated an analyst, highly
privileged user, or administrative user. This process may require the assistance of
managers and security administrators. After the user population has been separated
into one or more roles or functional areas, a comparison needs to be performed
between the data levels identified in step 2 and the label authorizations of the user
population.. These need to correspond correctly for each table identified during
scheme analysis in step 1. In addition, the organizational structure of the user
population needs to be compared with the data groups identified in step 3.
Step 6: Analyzing special authorizations
Oracle Label Security has several special authorizations that can be assigned to
users and stored procedures. In this step, examine the highly privileged and
administrative users and determine what if any of the Oracle Label Security special
authorizations should be assigned to the user. In general, very few users will
require special authorizations. Please refer to appendix A for a complete list of the
Oracle Label Security special authorizations.
Step 7: Review and Document
The final step before starting the implementation is to review and document the
information gathered. This step is crucial for continuity across the enterprise and
the resulting document should become part of the enterprise security policy.
Include tables, graphs and a narrative discussion to fully explain the results of the
analysis. For example, the document should include a list of scheme tables that
need to be protected and corresponding justification. This document may be
considered sensitive after it is produced.
Oracle Label Security Best Practices for Government and Defense Applications Page 6
ANALYSIS METHODOLOGY
During the analysis it can be useful to create a matrix that compares the
information collected in step 5 with information collected about the actual data.
This technique can help identify operational issues prior to the actual
implementation of Oracle Label Security. This type of analysis can help identify the
authorizations required for a specific job function.
Table
Assets
Projects
I S S:A:US S:A,B:US,UK
User
Data
I::UK
I::US
I
S:A:US
S:B:UK
NoAccess
No Acess
Acess
No Acess
No Acess
No Access
No Acess
Acess
Acess
No Acess
No Access
Acess
Acess
Acess
Acess
Acess
Acess
Acess
Acess
Acess
S:A,B,US
S
No Acess No Acess
No Acess No Acess
No Acess
No Acess
Acess
Acess
Table 1. Label Analysis Matrix
Oracle Label Security Best Practices for Government and Defense Applications Page 7
IMPLEMENTATION
The implementation can be performed using Oracle Enterprise Manager or the
Oracle Label Security command line interface.
1. Perform the analysis steps outlined above
2. Create the Oracle Label Security Policy
3. Define all valid data label components using levels, compartments and
groups using information gathered during analysis
4. Create valid data labels for the policy using the components defined in
step three
5. Assign user population label authorizations and appropriate Oracle
Label Security special authorizations using data gathered during analysis
6. Apply the policy to the application table. If legacy data exists in the
table, it may be necessary to apply the policy to the table with the no
control enforcement option initially. After the policy is applied to the
table, the sensitivity label will be empty and no data will be visible.
Please refer to the section on labeling legacy data. Optionally you can
grant the user or process updating the legacy data the FULL label
security authorization.
7. Update legacy data with appropriate data labels
8. If the policy was applied but disabled, enable the Oracle Label Security
policy and set appropriate policy enforcement options
Oracle Label Security Best Practices for Government and Defense Applications Page 8
LABELING LEGACY DATA
Once an Oracle Label Security policy is applied to an application table with read
control, no rows will be visible until valid data labels have been assigned to each
data row. Several methods exist for labeling data legacy data.
The first method for labeling legacy data simply uses an update statement against
the base table.
UPDATE SALES SET SECLAB =
char_to_label:(‘FINANCE’,’S’)
WHERE REGION_ID = 104;
This statement updates the SALES table and sets the policy label column SECLAB
equal to the internal label tag defined for SENSITIVE in the FINANCE policy and
SALES column REGION_ID is equal to 104.
The second method for labeling legacy data is to switch database connections
during the data load.
CONNECT US_SALES_MGR
INSERT INTO SALES (Col1, Col2, Col3) VALUES
(‘ACME’,......);
CONNECT EU_SALES_MGR
INSERT INTO SALES (Col1, Col2, Col3) VALUES
(‘WIDGET’,......);
If the policy applied to the SALES table includes the LABEL_DEFAULT
enforcement option, the users default ROWLABEL value will be used to set the
SECLAB column.
The third method is to write a labeling function using PL/SQL. Oracle Label
Security label functions are written in PL/SQL. An example of a labeling function
can be found in the Oracle Label Security administrator’s guide. The labeling
function can be added to a policy using an Oracle Label Security API.
The label function could also be written to return an Oracle Label Security label
tag. This type of function should not be added to an Oracle Label Security policy
because it doesn’t the correct data type. However, the function could be called in
the context of an update statement on the target application table.
UPDATE SALES SET SECLAB =
My_Function(sales.region_id);
The fourth method for labeling legacy data is to write a stored procedure that
updates the application table column associated with the Oracle Label Security
policy.
Oracle Label Security Best Practices for Government and Defense Applications Page 9
HIDING THE ORACLE LABEL SECURITY POLICY COLUMN
Oracle Label Security requires a column name to be specified when a policy is
created. When the policy is applied to an application table, the column name
specified during policy creation is appended to the application table. Oracle Label
Security has an option to hide the policy column when the policy is added to an
application table. Hiding the column causes the column to not be displayed during
a SQL Plus table describe operation. Hiding the column also allows SQL
statements which do not specify column names to continue functioning even
though a new column has been added to the application table specified in the SQL
statement.
It’s important to note that the Oracle Label Security policy column can pre-exist in
an application table prior to application of an Oracle Label Security policy. To take
advantage of this the application table column type must be number(10).
Applications can be designed with an Oracle Label Security column built-in.
ORACLE LABEL SECURITY ADMINISTRATION
The account LBACSYS is the primary administration account for Oracle Label
Security. However, other users can be given authorizations to create and manage
Oracle Label Security policies. When an Oracle Label Security policy is created, a
new database role is created. The name of the database role is policyname_DBA. In
the following code, the user LBACSYS creates a policy and gives the user
HR_INFOSEC authorizations to manage policy label components and label
authorizations.
CONNECT LBACSYS
EXECUTE SA_SYSDBA.CREATE_POLICY('HR_SECURITY', ‘HR_LABEL’);
GRANT HR_DBA TO HR_INFOSEC;
GRANT EXECUTE ON sa_components TO sub_admin;
GRANT EXECUTE ON sa_user_admin TO sub_admin;
GRANT EXECUTE ON sa_label_admin TO sub_admin;
GRANT EXECUTE ON sa_policy_admin TO sub_admin;
GRANT EXECUTE ON sa_audit_admin TO sub_admin;
ENFORCEMENT EXEMPTIONS
Oracle virtual private database fine grained access control policies and Oracle Label
Security policies are not enforced during DIRECT path export. Also, Virtual
private database policies and Oracle Label Security policies cannot be applied to
objects in schema SYS. As a consequence, the SYS user and users making a DBAprivileged
connection to the database (for example, CONNECT/AS SYSDBA) do
not have VPD or Oracle Label Security policies applied to their actions. Database
administrators need to be able to administer the database. It would not suffice to
export part of a table due to a VPD policy being applied. Database users who are
granted the Oracle EXEMPT ACCESS POLICY privilege, directly or through a
database role, are exempt from Virtual Private Database and Oracle Label Security
enforcement. The users are exempt from Virtual Private Database and Oracle
Oracle Label Security Best Practices for Government and Defense Applications Page 10
Label Security enforcement regardless of the export mode, application, or utility
used to extract data from the database. EXEMPT ACCESS POLICY privilege is a
powerful privilege and should be carefully managed. The EXEMPT ACCESS
POLICY privilege does not affect the enforcement of object privileges such as
SELECT, INSERT, UPDATE, and DELETE. These privileges are enforced even
if a user has been granted the EXEMPT ACCESS POLICY privilege.
PERFORMANCE TUNING
When creating data labels Oracle recommends defining the associated label tags so
that they fall within the range associated with the level of the data label. For
example, suppose the levels confidential and sensitive have been defined along with
two compartments, alpha and beta. The number associated with Confidential is
5000 and the number associated with Sensitive is 10000. When the valid data labels
are defined the associated label tags associated with confidential should be between
5000 and 10000. For example the data label confidential:alpha might have a label tag
of 5050 and the data label sensitive:alpha,beta might have a label tag of 10055.
Existing composite indexes may be modified to include the column added by
Oracle Label Security to the application table. This can substantially improve
performance for complex queries.
Depending on the application usage, consideration should be given to creating
bitmap indexes on the column added by Oracle Label Security to the application
table. The percentage of unique labels compared to the number of data rows is
usually low.
Oracle partitioning can be used to with Oracle Label Security to physically partition
data based on data sensitivity and provide query optimization through partition
elimination. In some cases, physically partitioning data by sensitivity label may also
be a security requirement.
CREATE TABLE EMPLOYEE
EMPNO NUMBER(10) CONSTRAINT PK_EMPLOYEE PRIMARY KEY,
ENAME VARCHAR2(10),
JOB VARCHAR2(9),
SEC_LABEL NUMBER(10))
TABLESPACE PERF_DATA
STORAGE (initial 2M
NEXT 1M
MINEXTENTS 1
MAXEXTENTS unlimited)
PARTITION BY RANGE (sec_label)
(partition sx1 VALUES LESS THAN (2000) NOLOGGING,
partition sx2 VALUES LESS THAN (3000),
partition sx3 VALUES LESS THAN (4000) );
Oracle Label Security Best Practices for Government and Defense Applications Page 11
PROXY WITH SET_ACCESS_PROFILE COMMAND
Oracle Label Security provides the ability for an authorized user to assume an
Oracle Label Security label authorization profile. The PROFILE_ACCESS
authorization is required to execute the SET_ACCESS_PROFILE procedure. This
Oracle Label Security proxy capability is available so that application architectures
that use one big user models, enterprise user security or proxy authentication, can
use Oracle Label Security.
Oracle Label Security does not enforce a mapping between a physical database
account and the user name specified when establishing label authorizations. For
example, label authorization could be assigned to an IP address.
Applications can utilize one of the many Oracle SYS_CONTEXT variables to
determine which Oracle Label Security label authorization profile should be
specified in the SET_ACCESS_PROFILE command. For enterprise users the
EXTERNAL_NAME SYS_CONTEXT value could be passed to the
SET_ACCESS_PROFILE command.
SQL> execute sa_session.set_access_profile
(‘PRIVACY’,SYS_CONTEXT('userenv','EXTERNAL_NAME');
SQL> execute sa_session.set_access_profile
(‘PRIVACY’,SYS_CONTEXT('userenv',’PROXY_USER’);
SQL> execute sa_session.set_access_profile
(‘PRIVACY’,SYS_CONTEXT('userenv','CLIENT_IDENTIFIER');
Oracle Label Security Best Practices for Government and Defense Applications Page 12
APPENDIX A - ORACLE LABEL SECURITY SPECIAL USER
AUTHORIZATIONS
READ — The READ authorization allows a user to access all data protected by
Oracle Label Security, however, access mediation is still enforced on UPDATE,
INSERT and DELETE operations. Oracle Label Security makes no mediation
check on SELECT operations.
FULL — The FULL authorization turns off all Oracle Label Security access
mediation. A user with the FULL authorization can perform SELECT, UPATE,
INSERT and DELETE operations with no label authorizations. Note that Oracle
SYSTEM and OBJECT authorizations are still enforced. For example, a user must
still have SELECT on the application table. The FULL authorization turns off the
access mediation check at the individual row level.
WRITEDOWN — The WRITEDOWN authorization allows a user to modify the
level component of a label and lower the sensitivity of the label. For example,
application data which is labeled Top Secret: Alpha, Beta could be changed to Secret:
Alpha, Beta. This authorization is only applicable to policies which use the label
update enforcement option.
WRITEUP — The WRITEUP authorization allows a user to modify the level
component of a label and raise the sensitivity of the label. For example, application
data which is labeled Secret: Alpha, Beta could be changed to Top Secret: Alpha, Beta.
Note that the Maximum Level label authorization assigned to the user would limit
modification. This authorization is only applicable to policies which use the label
update enforcement option.
WRITEACROSS — The WRITEACROSS authorization allows a user to modify
the compartments and groups in a label to any valid compartment and group
defined in Oracle Label Security for the policy. For example, if application data
which is labeled Secret: Alpha, Beta could be modified to Secret: Alpha, Beta, Delta
even though the user was not authorized for the Delta compartment. This
authorization is only applicable to policies which use the label update enforcement
option.
PROFILE ACCESS — The PROFILE ACCESS authorization allows a user to
assume the Oracle Label Security authorizations of another user. For example, user
Scott who has access to compartments A,B, and C could assume the profile of user
Joe who has access to compartments A,B, C and D. This functionality might be
useful in an environment where an application uses a single application account for
all application users. The application account could use the PROFILE ACCESS
authorization to immediately assume a designated label security profile when an
application users connects to the system.
Oracle Label Security Best Practices for Government and Defense Applications Page 13
APPENDIX B - ORACLE LABEL SECURITY POLICY ENFORCEMENT
OPTIONS
Oracle Label Security policy enforcement options can be customized for each
policy. For example, a Human Resources policy and a Defense policy can exist in
the same Oracle database and provide different degrees of protection. The Human
Resources application might use the READ CONTROL option and the Defense
policy might use the READ CONTROL and WRITE CONTROL options.
READ CONTROL — Applies policy enforcement to all queries; only authorized
rows are accessible for SELECT, UPDATE, and DELETE operations.
INSERT CONTROL — Applies policy enforcement to INSERT operations,
according to the Oracle Label Security algorithm for write access.
UPDATE CONTROL — Applies policy enforcement to UPDATE operations on
the data columns within a row, according to the Oracle Label Security algorithm for
write access.
DELETE CONTROL — Applies policy enforcement to DELETE operations,
according to the Oracle Label Security algorithm for write access.
WRITE CONTROL — Determines the ability to INSERT, UPDATE, and
DELETE data in a row. If this option is set, it enforces INSERT_CONTROL,
UPDATE_CONTROL, and DELETE_CONTROL.
LABEL DEFAULT — If the user does not explicitly specify a label on INSERT,
the users default row label value is used. By default, the row label value is computed
internally by Oracle Label Security using the label authorization values specified for
the user. A user can set the row label independently, but only to:
A level which is less than or equal to the level of the session label, and greater than
or equal to the user’s minimum level.
Include a subset of the compartments and groups from the session label, for which
the user is authorized to have write access.
LABEL UPDATE — Applies policy enforcement to UPDATE operations that set
or change the value of a label attached to a row. The WRITEUP, WRITEDOWN,
and WRITEACROSS privileges are only enforced if the LABEL_UPDATE option
is set.
LABEL CHECK — Applies READ_CONTROL policy enforcement to INSERT
and UPDATE statements to assure that the new row label is read-accessible by the
user after and INSERT or UPDATE statement.
NO CONTROL — Applies no enforcement options. A labeling function or a SQL
predicate can nonetheless be applied.
Oracle Label Security Best Practices for Government and Defense Applications Page 14
APPENDIX C - ORACLE LABEL SECURITY USER AUTHORIZATIONS
Oracle Label Security user authorizations must be established by a security
administrator before an application user can access an application table protected
by Oracle Label Security. Oracle Label Security user label authorizations are
defined as follows:
Maximum Level — The maximum sensitivity level a user is authorized to access. In
a hosting environment only single level may exist. In government and defense
environments four or five levels might be defined.
Minimum Level — The minimum sensitivity level a user is authorized to write data.
For example, an administrator can prevent users from labeling data as Public or
Internet by assigning a minimum level of Company Confidential.
Default Level — The level used by default when a user connects to the database.
For example, a user can set his or her default level to Secret. When he or she
connects to the system, the default level will be initialized to Secret.
Row Level — The level used to label data inserted into the database by the user
through the application or directly through a tool such as SQL*Plus.
Read Compartments — The set of compartments assigned to the user and used
during READ access mediation. For example, if a user has compartments A,B and
C, he could view data which has compartments A and B but not data which has
compartments A,B,C and D. The read algorithm will be defined in the next section.
Write Compartments — The set of compartments assigned to the user and used
during WRITE access mediation. For example, a user could be given READ and
WRITE access to compartments A and B but READ-ONLY access to
compartment C. If an application record was labeled with compartments A,B and
C, the user would not be allowed to update the record because he or she does not
have WRITE access on compartment C.
Read Groups — The set of groups assigned to the user and used during READ
access mediation. For example, if a user had the group Manager, he could view data
which has the Manager group but not data which had the Senior VP group. The read
algorithm will be defined in the next section.
Write Groups — The set of groups assigned to the user and used during WRITE
access mediation. For example, a user could be given READ and WRITE access to
group Senior VP but READ-ONLY access to group Manager. If an application
record was labeled with a single group, Manager, the user would not be allowed to
update the record because he or she does not have WRITE access on the Manager
group.



Project Feedbacks


No feedbacks found. Be the first to respond and make money from revenue sharing program.

Post Feedback
You must Sign In to post a feedback.
Next Project: Adding Huge Numbers in C
Previous Project: Bacteria Diversity

Return to Project Index

Post New Project


Related Projects



Advertise Here





Contact Us   Advertise   Editors    Privacy Policy    Terms Of Use   

ISC Technologies.
2006 - 2009 All Rights Reserved.