Showing posts with label IT manager. Show all posts
Showing posts with label IT manager. Show all posts

Thursday, January 9, 2014

Business Problems: State of Business Problem # 1

Background

In the description of business problem # 1, we outlined that Contoso was looking to accomplish the following goals:

  • Eliminate the usage of shared privileged accounts 
  • Make sure people are uniquely identified (PCI 8.1) 
  • End users will authenticate to Unix systems with their AD credentials 
  • Make sure that when accounts are enabled/disabled/constrained in their Active Directory, the same is expanded to Unix and Linux systems 
  • The security policy for passwords needs to be uniform across platforms (Windows, UNIX, Linux) 
  • User passwords can be changed from Windows/Unix/Linux without synchronization.


Eliminate the usage of shared privileged accounts 


Shared privileged account use has been limited by using Centrify-enhanced sudo (dzdo).  Although our UNIX admin can still do things like "dzdo su -" the technical controls are in place.  All that is required is the detective controls to complement this capability.  We will fine-tune the privilege management later.


Make sure people are uniquely identified (as in PCI DSS 8.1)


Users are uniquely identified in Active Directory.  Each user has a unique User Principal Name (UPN) and sAMAccountName.  In a more complex scenario, this can also be associated to an EmployeeID.  Notice that in the context of the UNIX identity, Centrify offers the flexibility of Identity Overrides.





End users will authenticate to UNIX systems with their AD Credentials


Users can authenticate with their AD UPN, with their login name or any overridden login name at the zone, child zone or system levels.  The authentication uses Kerberos, therefore there's the benefits of encryption, ticketing system (no passwords don't travel on the wire) and high-availability.


Make sure that when accounts are enabled/disabled/constrained in AD, the same behavior is experienced in UNIX/Linux


First off, by default, All AD users don't have access to the UNIX/Linux systems joined to the domain via Centrify.  They need a UNIX identity and a role that allows them to log in.  Least access is enforced by default. Centrify users PAM, and the account module in the PAM stack will check:
- if the account is enabled, disabled or expired
- if the account is allowed to log in at the time  (at the AD account and Role level)
- if the account is allowed to log in from that workstation (at the AD account and Role level)

The security policy for passwords needs to be uniform across platforms (Windows, UNIX, Linux, Macs)


This has been accomplished by way of consolidating the accounts identity in AD and by using the Centrify Agent's group policy capability and it's ability to perform these transactions using Kerberos.



Your AD password will expire in 26 days  <= this is also from GPO
Last login: Wed Jan  8 16:26:59 2014 from client1.corp.contoso.com
jmatthews@suse1:~> passwd
Changing password for jmatthews.
Changing password for jmatthews
(current) AD  password:
Enter new AD password:  <non-compliant password>
Confirm new AD password: <non-compliant password>
The password change operation failed due to a policy restriction set by the Active Directory administrator. This may be due to the new password length, lack of complexity or a minimum age for the current password.

External Benefits


  • The processes of  provisioning (and deprovisioning) of UNIX identities as well as Role Assignments  can be consolidated manually, programmatically or with an Identity Management solution.  These are efficiencies.
  • Any existing self-service (or assisted) password reset process has been flattened (there's no deviations for UNIX/Linux accounts), this is because the identity is unique.
  • As a by-product of joining the systems into AD, there's higher visibility to these assets via AD (this means that tools like System Center can be used to account for these assets) and more security visibility - successful and failed login attempts to UNIX systems are viewable in the Security log of the Domain Controllers.
  • The infrastructure is reused, the knowledge is reused, the processes are reused.

Individual Stakeholder Concerns 


(comments in RED)
UNIX/Linux Admin
-          It’s becoming very hard to keep track and maintain local accounts.
This concern has been addressed and there's mechanisms to continue to conserve local identities if necessary.  The recommendation or end state should be a normalized namespace.
-          We have some old NIS servers and maps that need to go away (legacy)
We have yet to address this.  Future postings.
-          Each time there’s I need to scramble to make information available to auditors
The fact that we have implemented RBAC and that the information is stored in AD, makes the use of the  "Show Effective User Rights" and Reporting facilities of Access Manager a great tool to produce this information.
-          The root, oracle and other service accounts are shared; it’s hard to establish who did what.
UNIX-enabled AD users can use Centrify-enhanced sudo to perform privilege actions as these accounts without knowing the password, accountability is increased because users perform functions as themselves and these actions are written in the system log.  More on this on the Privilege Management topics.
-     Ideally, any service accounts are managed within the UNIX system and not provisioned in the directory
Service accounts can remain locally, and by way of using PAM, this is not an issue to coexist with Centrify.
-     I am concerned that if AD (or the network) is not available, it will be impossible to log in to servers.
Centrify implements several high-availability scenarios:  first, it's AD sites aware, which means that it's smart enough to pick another domain controller in case the current one is not available.  If no network or AD is available, Centrify has the offline cache to rely on.

-     I am concerned of not being able to perform functions to do my job (superuser) or that it will be hard to elevate to get rights
The Centrify agent implements privilege management modules that allow accounts to run with privileges.
Security Analyst
-          We will start processing credit card data soon, therefore I need to make sure that privileged accounts are not shared
-          We need to make sure that everyone has a unique identity
-          We need to carry over the security policy defined on Windows to UNIX (password policy:  length, complexity and expiration)
See above. All objectives have been met.
IT Manager
-          Our workflow for provisioning and password resets is very complex.  When somebody needs a UNIX account for our systems, more teams need to be involved.
-          We have to be ready to process credit card data
-          We have an Identity Management System (FIM) and we would love to leverage some of the existing processes
      The initial PCI requirements 8.1 and 7 are covered.
Since identities have been consolidated
 in AD, the provisioning, deprovisioning, self-service or assisted password reset, privilege management processes can be integrated easily to any tool, by just adding (or removing) users from Active Directory Security groups.  Automatic Provisioning with ZPA was demonstrated in this post and video.
Windows Administrator
-          Whatever solution is coming in should not require schema extensions to AD and no Software in domain controllers.
In the preparation lab and the installation lab we did not require any schema extensions and we didn't even go into the DC.
-          We should be able to keep the same organization and naming conventions that we use in the directory today.
In the preparation lab, we proved that UOs and Groups can be leveraged to establish a storage and governance model in AD, same model works for Group Policy processing.

Wednesday, December 11, 2013

Basics: Kerberos Super-Simplified

Cerberus the 3-headed dog



Kerberos is a protocol that leverages DNS, cryptography, a distributed client-server model, clients and time synchronization and ticket exchanges to provide secure authentication.

From a Security perspective, Kerberos resolves the following:
  • Enforces confidentiality because it makes sure that passwords are not in the clear over the network.
  • Protects integrity of the transaction by making sure that exchanges are not tampered with during transit
  • Provides high-availability (if properly implemented) by allowing for it to be deployed in a distributed fashion
For Kerberos to work,
  1. DNS name resolution needs to be working correctly
  2. There has to be a Directory Service to store service principal names (like LDAP) and service principals need to be registered in the proper attributes of the directory
  3. The Key Distribution Server needs to be available
  4.  Time between clients and servers can't be skewed more than 5 minutes (time servers have to be implemented)
  5. Client software needs to support Kerberos and the Kerberos environment has to be properly configured.
Active Directory can solve all these issues.  As a matter of fact, any Working windows network today (that has Windows 2000 and up) has a working Kerberos environment.  Kerberos is used by millions of people every day:

a) Bob signs into his Windows computer in the morning.
b) As he signs in successfully, a Ticket Granting Ticket (TGT) is issued for him with a duration of 10 hours.
c) When he opens his email (Outlook) and is able to start work on pending tasks.

Note: In a normal configuration he does not need to type-in his password again to open the program; because the "Kerberized client" (Outlook), the "Kerberized Server" (Microsoft Exchange), the Directory, Key Distribution Server, Policy Server and DNS server (the AD Domain Controller) take care of the rest.

Notice all the functions performed by Active Directory

Function
Provider
Provides name resolution
AD Domain Controller – DNS Service
Issues, validates tickets
AD Domain Controller - KDC
Provides encryption services
AD Domain Controller  - AES 256
Defines and enforces Kerberos policies
AD Domain Controller - Group Policy Engine
Directory Services
AD Domain Controller - LDAP
Provides time synchronization
AD Domain Controller - win32 time service
Provides high-availability and standard configuration
AD Domain Controller - replication
Kerberized Client
Windows 7, Microsoft Outlook
Kerberized Server
Microsoft Exchange


Notice the fragmentation on UNIX/Linux

Function
Provider
Provides name resolution
BIND
Issues, validates tickets
Kerberos KDCs (MIT or Heimdal)
Provides encryption services
LDAP (SSL or TLS)
Kerberos (for auth only)
Defines and enforces Kerberos policies
Configuration files
Directory Services
OpenLDAP  (& other packages)
Provides time synchronization
Network Time Service (NTP)
Provides high-availability
Multiple solutions:
-          LDAP Sync (for OpenLDAP)
-     BIND master/slaves
-          Kerberos Master/Slaves
-          Filers and export shares for configuration files
Kerberized Client
Many available, but not all support Kerberos
This is not important in the context of this conversation
Kerberized Server
Many available, but not all support Kerberos.
This is not important in the context of this conversation


Notice the variety of products, and now think:  What's in a capability?

People-Process-Technology

This example illustrates a phenomenon that plagues many organizations today:  IT Fragmentation.  For each of these solutions organizations require specialists (people), deviations in how things are done (process) and as you can see above, different solutions (Technology)

This is why, in my previous post, the IT manager is concerned about costs and organization agility.

Service Principal Names
SPNs are the "names" associated with a service.  The service (like a web server, host, file server, etc) executes in that security context.  Better definition here.

The syntax is: < service type >/< host name >:< port number >

In a practical sense, the meaning is this, if a service (let's say Apache, or httpd) wants to use Kerberos authentication, not only it has to be Kerberized, but the host of the service has to have an SPN for that service in the Directory service.  For example, for the host web.contoso.com, the http running on port TCP 8080 service's SPN is:  http/web.contoso.com:8080

Not specifying a port, basically assumes the default port.  In our example, port TCP 80.

Troubleshooting Kerberos

Troubleshooting Kerberos takes a lot of practice and will be revisited later, but here are a basic set of steps.  Just ask yourself:
  1. Is the service Kerberized?
  2. Is name resolution working?  Can DNS resolve by FQDN or short name?
  3. Is the time synchronized between the client, server and KDC (DC in AD)
  4. Are the correct SPNs registered  (remember that you can do short names and FQDNs)?
  5. Finally, the fact that you can authenticate, does not mean that you're authorized!!!

Tuesday, December 10, 2013

Unix/Linux Access Controls: A tale of four audiences



 UNIX and Linux Administrator

  • I am worried about not being able to log-in to do my job if Active Directory is not available
  • I am concerned that the integration with AD will be very intrusive to my Unix and Linux systems
  • I am concerned that the privilege management model won't allow me to do things as root when I require it.
  • I am concerned that I won't be able to leverage scripting and automation
  • I'm spending a lot of time to produce information for security attestation
  • I'm concerned that each time I need to do something I will need to go to the Windows guys for permission.
  • Do I need to go changing file ownerships (chown) once this is implemented?
Active Directory Administrator

  • I'm concerned that this solution will require to extend the AD schema
  • I'm concerned that I will need to run services in Domain Controllers
  • I'm concerned that the agent will eat my DCs CPU and Memory with multiple persistent LDAP connections 
  • I'm concerned that now I will have more work since I have to help the Unix group.
Security Analyst


  • I need to make sure only the right people can access the Unix and Linux Systems (least access principle)
  • I also need to make sure that shared accounts (like root) are only used when required
  • I need to make sure accountability is increased
  • I need to make sure people can only have the privileges that they need (least privilege principle)
  • I need to satisfy audit reports and close open audit comments
  • We need to align with Regulations (SOx, HIPAA, PCI, etc)
  • I am not sure that we can really pin-point who did what at a certain point (bad change control, data-breach, etc)

                                     IT Manager or IT Architect

  • I am concerned that we're spending a lot of money in point solutions
  • I'm concerned that the project will not yield results on time
  • I'm concerned that processes like password resets, provisioning, de-provisioning, and attestation are very complex.
  • I'm concerned that any new solution is going to require a ridiculous amount of infrastructure.
  • I'm concerned that even though we have top of the line solutions, it seems it takes a long time to get stuff done.