Designing Secure Event-Driven Architectures - Mil-OSS

advertisement
Designing Secure
Event-Driven Architectures
Richard Clayton
Chief Engineer
Road Map
• About Us
• Objectives
• Ten Considerations for Securing Event-Driven Architectures
•
•
•
•
•
•
•
•
•
•
Preliminary Research and Planning
Choose the Right Security Frameworks
Employ Redundant Security Measures
Minimize Privileges in the Architecture
Go Beyond Authentication and Authorization
Use Multidimensional Security
Scope Authorization
Secure Mixed Datasets
Secure Services
Secure Messages and Events
• Conclusion
About Us
Berico Technologies
Passionate, high-end software engineering, consulting, and
analytic services provider to the federal government.
Berico’s mission is to leverage tremendous operational
experience and the best industry talent to identify and solve our
clients’ hardest problems.
•Founded in 2006
•Presence in DC, MD, VA, FL, AZ and IZ, AF
•Best Places to Work Greater Washington: 2010,2011
•Finalist for Hottest Emerging Government Contractor
•Winner of SMARTCXO Executive Management Team
•AFCEA Meritorious Award for Engineering
Richard Clayton
Chief Engineer
Previously an Engineer, Tech Lead, and
Project Manager (2009-2011)
Tech Focus
-Service Oriented Architectures
-Event-Driven Architectures
-Distributed Computing
-Domain Modeling
Education
BS in Computer Science (Park University)
Cloudera Developer Certified
Eons Ago…
US Marine Corps (2000-2009)
SSgt / Weather Forecaster
-Certified Weather Forecaster
-Certified Weather Observer
Objectives
Help you achieve a higher-level of security
(and confidence) within your architecture by
emphasizing the lessons we have learned
during our accreditation experiences.
• Emphasize security as a first class citizen within your
domain model.
• Describe the breadth of security considerations when
designing a secure architecture.
• (Briefly) discuss the implementation of security across
distributed architectures (SOA and EDA).
Ten Considerations for Securing
Event-Driven Architectures
Preliminary Research and Planning
• Understand the scope of security requirements before
designing
Read appropriate documentation
• Determine the appropriate security goals of the system.
This should include your accreditation goals
• Consider implementing a higher security level than required.
Unplanned elevation of security requirements is common
• Get your System Administrators/Engineers involved!
• Beautiful architecture is a marriage of hardware and software
• Hardware may solve security/scalability limitations of software
• Security should be a first-class citizen in your domain model
• Preserve Pedigree and Provenance on all pieces of data.
• Consider making ACL’s a part of your object model.
Choose the Right Security Frameworks
• Don’t invent your own security framework!!!!
Unless that’s what you do for a living…
• Choose a proven, enterprise-grade technologies
• For internal networks, Kerberos and LDAP is an excellent option.
• Larger networks with greater latency are better suited by publickey encryption-based authentication technologies.
• Reuse existing infrastructure (if possible) and integrate legacy
systems.
If you have an AD instance within the organization, use it!
• Consider using Single-Sign On (SSO)
Managing 800 passwords is annoying and encourages users
have bad habits
Employ Redundant Security Measures
• Protect data in transit
Even in protected areas of the network
• Securely store data “at rest”
Encryption, redundant storage, File System and DB ACL’s
• Layer your network
Use firewalls between zones
• Restrict access in each “tier” of the application
Within the UI, at the Service Layer, at Data Sources
• Hide or obfuscate the “guts” of your application from the user
Are “power users” allowed to define there own SQL Where clauses?
• Utilize system-enforced usage policies
Group Policy is a perfect example
Minimize Privileges in the Architecture
Next to “malware”, malicious insiders are the greatest security
threat to a computer network. (Paraphrased)
http://www.networksecurityedge.com/content/top-10-information-security-threats-2010
•Reduce the rights of O&M personnel on the network
• Does everyone need to be a “Domain Admin”?
• If they do, do they need to be one all the time?
•Segregate the roles and rights of personnel on the network
Think “Checks and Balances”
•Do not reuse service accounts
Consider having one per service
•Minimize the privileges of services accounts
Few services need administrative privileges
Go Beyond Authentication and Authorization
• Auditing
• Expose application logs
• Use a consistent format (easier to extract information)
• Have an export strategy
• Use an Audit Reduction tool
• Have a multi-tiered archiving strategy
• Availability
• Employ redundancy in architecture
• Load Balancers
• Replication of File System and Storage
• Hardware/Network redundancy
• Write working code!
• Make Unit Testing and Continuous Integration apart of your design
strategy (TDD and BDD anyone?)
• Choose horizontally-scalable solutions
Go Beyond Authentication and Authorization
• Policy
• Application Policy
• Trap requests through a gateway
• Apply a rules engine against requests
• Operating System Policy
• Specify non-computer-enforceable policies in an SOP
Use Multidimensional Security
Just like Relational Databases and Object-Oriented Programming, there
is an “impedance mismatch” between DOD/IC needs and operating
system security models.
•DOD/IC security needs tend to be multidimensional (3D & 4D if
you will), and OS security models are two-dimensional.
• Operating System roles/groups describe what a user can do or
access, but not whether a user “should” given the current state of
the system.
• Real-world policy breaks this model
(e.g.: no user should be able to access dataset “A” after 6pm
unless they have their supervisor’s permission)
•Rules Engines, Complex Event Processors, and Workflow can
give you the flexibility to enforce multidimensional security
models.
Scope Authorization
• Treat every piece of information consistently
Regardless of how sensitive it is
• Determine the granularity of security within a system.
• This may be imposed based on accreditation level
• Permissions at the corpus-level.
• You should already be carrying information about the dataset on
every object within your domain model.
• Dynamically create and enforce security roles/groups for each
dataset.
• Atomic permissions per secure item.
• Every piece of information has it’s own ACL.
• Hint: This is actually easier than corpus-level security!
• Users are their own authorization scope.
Secure Mixed Datasets
Cross-corpus/classification analytics throw a wrench into most
security implementations.
•Runtime analytics
Produce cross-authorization scope in memory, per user
•Preprocessed analytics
• Create new authorization scopes based on the combined
“classification” of mixed datasets.
• Consider automatically assigning users to these new scopes as
they are created.
• Hint: Once again, this is easier to do with PL-4
(overall classification of cross-corpora datasets is the intersect of
ACL’s from each dataset)
Secure Services
• Employ Service-to-Service authentication and authorization!
• Proxy “unprotected” services by offloading authenticated
requests into protected “enclaves”
Apache HTTPD Proxy with Kerberos or Certificate Auth
• Access data as the user whenever possible
Kerberos delegation
• Use function-specific connection pools with different service
accounts for each
One service account for reads, one for writes, one for management
• Use contextual security within applications
Make assertions about user rights, and don’t be afraid to throw
exceptions!
Secure Messages and Events
• Employ Service-to-Bus, Bus-to-Bus authentication and authorization!
• Make “authorization scopes” a part of the Message/Event model.
• Who is allowed to consume an event?
• Beware of event hierarchies
• Events tend to have multidimensional security
• Who is allowed to fire an event?
• Create “mini-buses”
(conceptually channels or currents in an event stream)
• Don’t propagate events unnecessarily across buses of higher scope
• Performance burden and security risk
• Consider using encrypted envelopes.
• Use Event Stream Processors and Complex Event Processors to
monitor service behavior. Record abnormal activity.
Conclusion
Recap
• About Us
• Objectives
• Ten Considerations for Securing Event-Driven Architectures
•
•
•
•
•
•
•
•
•
•
Preliminary Research and Planning
Choose the Right Security Frameworks
Employ Redundant Security Measures
Minimize Privileges in the Architecture
Go Beyond Authentication and Authorization
Use Multidimensional Security
Scope Authorization
Secure Mixed Datasets
Secure Services
Secure Messages and Events
Contact Us.
Questions?
Berico Technologies, LLC
1501 Lee Hwy Suite 303
Arlington, VA 22209
(o) 703.224.8300
www.bericotechnologies.com
Guy Filipelli, CEO
guy@bericotechnologies.com
Richard Clayton, Chief Engineer
richard@bericotechnologies.com
www.gettingcirrius.com
We want you!
recruiting@bericotechnologies.com
Download