SlideShare una empresa de Scribd logo
1 de 41
Lotus Domino Security
White and black box testing
Ari Elias-Bachrach
Casey Pike
Outline
• Why is This Necessary?
• Introduction to Domino
• Domino Commands
• Blackbox
• Whitebox
• Default Files
• Architecture
Outline
• Why is This Necessary?
• Introduction to Domino
• Domino Commands
• Blackbox
• Whitebox
• Default Files
• Architecture
Why is This Necessary?
In January 2009,
More Than Half
of Fortune
Global 100 Now
Using Lotus
Notes/Domino*
http://www-03.ibm.com/press/us/en/pressrelease/26480.wss
Why is This Necessary?
• Domino is…..
Unique
Web App DB
Why is This Necessary?
• Automated scanners seem to have a hard
time with Domino apps
• Many “normal” attacks don’t work (SQL
injection)
• There are many other attacks which will
work
• Not a lot of good information out there
Outline
• Why is This Necessary?
• Introduction to Domino
• Domino Commands
• Blackbox
• Whitebox
• Default Files
• Architecture
Introduction to Domino
• Domino stores data in custom database
files with the .nsf extension
http://server/database.nsf/DominoObj?Action
•View
•Frameset
•Form
•Navigator
•Agent
•Document
•Page
Introduction to Domino
• Special Identifiers begin with $ and can
return any domino object
http://server/database.nsf/$SpecialIdentifier
http://server/database.nsf/$help?openhelp
Outline
• Why is This Necessary?
• Introduction to Domino
• Domino Commands
• Blackbox
• Whitebox
• Default Files
• Architecture
Domino Commands
• View
• Openview – opens the view
• ReadViewEntries – access the view data in
XML format
• $first – returns the first document in the view
• $searchform?opensearchform – opens a
search form from which the view can be
searched
http://server/database.nsf/myview?Openview
Domino Commands
http://server/database.nsf/myform?OpenForm
Form
• OpenForm – opens the form
• ReadForm – displays the form without its
editable fields.
• CreateDocument – sent using an HTTP post.
Domino will create a document with the
contents of the HTTP post packet.
Domino Commands
http://server/db.nsf/myView/doc1?EditDocument
Document
• EditDcoument
• SaveDocument – sent as an HTTP post.
Domino will update the document with the
contents of the post.
• DeleteDocument
• OpenDocument
• $file/name – returns doc’s attachment with
the name “name”
Domino Commands
http://server/db.nsf/myAgent?OpenAgent
Navigator
• OpenNavigator
Agent
• OpenAgent
Page
• OpenPage
Frameset
Openframeset
Domino Commands
• Special Items
• ?Redirect – allows redirection to another database based on
it’s ID.
• ?openDatabse
• /$about?OpenAbout – opens the “about this database”
document
• /$help?openhelp – opens the help document
• /$icon?openicon – opens the icon for the database
• /$defaultview – returns the default view (if there is one).
• /$defaultform – returns the default form (if there is one).
• /$defaultnav – returns the default navigator
• ?openpreferences – opens the preferences setting.
http://server/database.nsf/$about?OpenAbout
Domino Commands
• Chaining
http://host/db.nsf/$defaultview/$first?editdocument
Pause for Questions
Outline
• Why is This Necessary?
• Introduction to Domino
• Domino Commands
• Blackbox
• Whitebox
• Default Files
• Architecture
Blackbox
• Navigate the app - use the commands just
discussed
• Check all defaults/special identifiers
• Try to edit docs (permissions checking)
• Find (and use) search forms
• Enumerate views (more on this later)
Blackbox
• Views, Forms, and Agents all have a
notesID. Assignment begins with 0x11A
and increments by 4 each time
• http://host/database.nsf/11A
• http://host/database.nsf/11E
• http://host/database.nsf/122
• http://host/database.nsf/126
• http://host/database.nsf/12A
Blackbox
Enumerate views
Occurrences of view names in help files:
135 - By Category
36 - View A
31 - All
26 - Main
23 - Categorized
22 - Main View
13 - All Documents
6 - Topics
Outline
• Why is This Necessary?
• Introduction to Domino
• Domino Commands
• Blackbox
• Whitebox
• Default Files
• Architecture
Whitebox
• Levels of Access in Domino
• Server
• Database
• Elements
• Documents
• Fields
Whitebox
• Server access – Ask your administrator
• Server Doc
• Internet Site Doc
• Configuration Doc
• Person Docs – Internet passwords are
secure
Whitebox
Whitebox
• Database access – ACLs for Web Access
• Editor – Create and edit docs
• Author – Create and edit own docs
• Reader – Read docs
• Depositor – Create docs
• No access – Be careful public documents
Whitebox
ACL Mistakes
• Even though Anonymous is set to No
Access, it is possible to overlook Read
Public documents which will give access.
• Common App – Mail File*
• Do not overlook any setting
Whitebox
ACL Mistakes
• -Default- is any user who has
authenticated. If allowed access, make
sure to audit the Domino Directory for
test accounts or LDAP if directory
assistance is used.
Whitebox
Whitebox
Elements access – Check them ALL
• Forms, Views, Navigators, etc. - If they
are not used, hide them from the web.
• Security Tab – Set who can access the
element based on ACL
• Allow public access
Whitebox
Whitebox
• Restrict more in-depth audits for
elements that are exposed to the web
• Views, Forms, Pages…
• Ask to see config or profile documents
(make sure they are protected)
• Review All Agents – Can be called from
the web to run code. Can write to DB2,
SQL, FTP, basically do anything.
Whitebox
• Check
permissions on
all design
elements
• Check actions
within design
elements
Whitebox
• Field Access
• Depending on how
the application is
written, fields on
public forms can be
hidden.
Outline
• Why is This Necessary?
• Introduction to Domino
• Domino Commands
• Blackbox
• Whitebox
• Default Files
• Architecture
Default Files
• Names.nsf – The most important database
• Log.nsf – Shows events on server
• WebAdmin.nsf – A web version of admin
client
• Help Files – Should never be left on the
server
When upgrade a server, it could re-add
databases you thought you deleted!!!
Where to Start?
• Talk to the Administrator – Learn about
the different documents (server, config,
internet site) of the NAB
• Learn the default ACL and how it is
audited.
• Talk to the Developers – Its impossible to
go through every element and to look at
field security. Establish security practices
Where to Start?
Get a good tool
• Team Studio – Build Manager to write
checks before a application is refreshed
into production. Preventive Security!
• DominoScan II – NGS Software
• AppDetectivePro – Application Security
Inc.
• PowerTools and ScanEz – Admin Tools
Outline
• Why is This Necessary?
• Introduction to Domino
• Domino Commands
• Blackbox
• Whitebox
• Default Files
• Architecture
Architecture
• End users directly
enter DB commands
• Cannot run arbitrary
DB commands
• Who sets up ACLs in
your org?
Questions? Comments?
Insults?
• ari@defensium.com
• Twitter: @angelofsecurity
• www.defensium.com
CaseyPike@gmail.com
http://www.defensium.com/domino/

Más contenido relacionado

La actualidad más candente

Oxford DrupalCamp 2012 - The things we found in your website
Oxford DrupalCamp 2012 - The things we found in your websiteOxford DrupalCamp 2012 - The things we found in your website
Oxford DrupalCamp 2012 - The things we found in your websitehernanibf
 
Soccnx10: IBM Connections Troubleshooting or “Get the Cow off the Ice”
Soccnx10: IBM Connections Troubleshooting or “Get the Cow off the Ice”Soccnx10: IBM Connections Troubleshooting or “Get the Cow off the Ice”
Soccnx10: IBM Connections Troubleshooting or “Get the Cow off the Ice”panagenda
 
Hey My Web App is Slow Where is the Problem
Hey My Web App is Slow Where is the ProblemHey My Web App is Slow Where is the Problem
Hey My Web App is Slow Where is the ProblemColdFusionConference
 
Intro to drupal
Intro to drupalIntro to drupal
Intro to drupalhernanibf
 
The things we found in your website
The things we found in your websiteThe things we found in your website
The things we found in your websitehernanibf
 
Expert guide for PHP
Expert guide for PHPExpert guide for PHP
Expert guide for PHPSteve Fort
 
INF107 - Integrating HCL Domino and Microsoft 365
INF107 - Integrating HCL Domino and Microsoft 365INF107 - Integrating HCL Domino and Microsoft 365
INF107 - Integrating HCL Domino and Microsoft 365Dylan Redfield
 
Penny coventry fiddler-spsbe23
Penny coventry fiddler-spsbe23Penny coventry fiddler-spsbe23
Penny coventry fiddler-spsbe23BIWUG
 
My site is slow
My site is slowMy site is slow
My site is slowhernanibf
 
Domino V10 and How to Get There - IBM Think 2019
Domino V10 and How to Get There - IBM Think 2019Domino V10 and How to Get There - IBM Think 2019
Domino V10 and How to Get There - IBM Think 2019Dylan Redfield
 
WordPress Security 101 - Meetup Nairobi March 2020
WordPress Security 101 - Meetup Nairobi March 2020 WordPress Security 101 - Meetup Nairobi March 2020
WordPress Security 101 - Meetup Nairobi March 2020 stk_jj
 
WCBos13 intermediate workshop
WCBos13 intermediate workshopWCBos13 intermediate workshop
WCBos13 intermediate workshopBoston WordPress
 
Deployer - Deployment tool for PHP
Deployer - Deployment tool for PHPDeployer - Deployment tool for PHP
Deployer - Deployment tool for PHPhernanibf
 
Drupal architectures for flexible content - Drupalcon Barcelona
Drupal architectures for flexible content - Drupalcon BarcelonaDrupal architectures for flexible content - Drupalcon Barcelona
Drupal architectures for flexible content - Drupalcon Barcelonahernanibf
 
From Zero to ZF: Your first zend framework project on ibm i
From Zero to ZF: Your first zend framework project on ibm iFrom Zero to ZF: Your first zend framework project on ibm i
From Zero to ZF: Your first zend framework project on ibm iAlan Seiden
 
Markup languages and warp-speed documentation
Markup languages and warp-speed documentationMarkup languages and warp-speed documentation
Markup languages and warp-speed documentationLois Patterson
 

La actualidad más candente (20)

Oxford DrupalCamp 2012 - The things we found in your website
Oxford DrupalCamp 2012 - The things we found in your websiteOxford DrupalCamp 2012 - The things we found in your website
Oxford DrupalCamp 2012 - The things we found in your website
 
Soccnx10: IBM Connections Troubleshooting or “Get the Cow off the Ice”
Soccnx10: IBM Connections Troubleshooting or “Get the Cow off the Ice”Soccnx10: IBM Connections Troubleshooting or “Get the Cow off the Ice”
Soccnx10: IBM Connections Troubleshooting or “Get the Cow off the Ice”
 
Hey My Web App is Slow Where is the Problem
Hey My Web App is Slow Where is the ProblemHey My Web App is Slow Where is the Problem
Hey My Web App is Slow Where is the Problem
 
Intro to drupal
Intro to drupalIntro to drupal
Intro to drupal
 
The things we found in your website
The things we found in your websiteThe things we found in your website
The things we found in your website
 
Expert guide for PHP
Expert guide for PHPExpert guide for PHP
Expert guide for PHP
 
INF107 - Integrating HCL Domino and Microsoft 365
INF107 - Integrating HCL Domino and Microsoft 365INF107 - Integrating HCL Domino and Microsoft 365
INF107 - Integrating HCL Domino and Microsoft 365
 
Penny coventry fiddler-spsbe23
Penny coventry fiddler-spsbe23Penny coventry fiddler-spsbe23
Penny coventry fiddler-spsbe23
 
My site is slow
My site is slowMy site is slow
My site is slow
 
Domino V10 and How to Get There - IBM Think 2019
Domino V10 and How to Get There - IBM Think 2019Domino V10 and How to Get There - IBM Think 2019
Domino V10 and How to Get There - IBM Think 2019
 
WordPress Security 101 - Meetup Nairobi March 2020
WordPress Security 101 - Meetup Nairobi March 2020 WordPress Security 101 - Meetup Nairobi March 2020
WordPress Security 101 - Meetup Nairobi March 2020
 
Intro apache
Intro apacheIntro apache
Intro apache
 
Building Advanced RESTFul services
Building Advanced RESTFul servicesBuilding Advanced RESTFul services
Building Advanced RESTFul services
 
WCBos13 intermediate workshop
WCBos13 intermediate workshopWCBos13 intermediate workshop
WCBos13 intermediate workshop
 
Domino 365 DNUG 2020
Domino 365 DNUG 2020Domino 365 DNUG 2020
Domino 365 DNUG 2020
 
Deployer - Deployment tool for PHP
Deployer - Deployment tool for PHPDeployer - Deployment tool for PHP
Deployer - Deployment tool for PHP
 
Fedora4
Fedora4Fedora4
Fedora4
 
Drupal architectures for flexible content - Drupalcon Barcelona
Drupal architectures for flexible content - Drupalcon BarcelonaDrupal architectures for flexible content - Drupalcon Barcelona
Drupal architectures for flexible content - Drupalcon Barcelona
 
From Zero to ZF: Your first zend framework project on ibm i
From Zero to ZF: Your first zend framework project on ibm iFrom Zero to ZF: Your first zend framework project on ibm i
From Zero to ZF: Your first zend framework project on ibm i
 
Markup languages and warp-speed documentation
Markup languages and warp-speed documentationMarkup languages and warp-speed documentation
Markup languages and warp-speed documentation
 

Destacado

Unittesting Bad-Practices by Example
Unittesting Bad-Practices by ExampleUnittesting Bad-Practices by Example
Unittesting Bad-Practices by ExampleBenjamin Eberlei
 
User Testing by Example
User Testing by ExampleUser Testing by Example
User Testing by ExampleJeremy Horn
 
Bad test, good test
Bad test, good testBad test, good test
Bad test, good testSeb Rose
 
Specification by Example
Specification by ExampleSpecification by Example
Specification by ExampleSergey Shishkin
 
Unit-Testing Bad-Practices by Example
Unit-Testing Bad-Practices by ExampleUnit-Testing Bad-Practices by Example
Unit-Testing Bad-Practices by ExampleBenjamin Eberlei
 
Specifications For Enterprise Testing
Specifications For Enterprise TestingSpecifications For Enterprise Testing
Specifications For Enterprise TestingSathyan Sethumadhavan
 
7 1-1 soap-developers_guide
7 1-1 soap-developers_guide7 1-1 soap-developers_guide
7 1-1 soap-developers_guideNugroho Hermanto
 
Don't Drop the SOAP: Real World Web Service Testing for Web Hackers
Don't Drop the SOAP: Real World Web Service Testing for Web Hackers Don't Drop the SOAP: Real World Web Service Testing for Web Hackers
Don't Drop the SOAP: Real World Web Service Testing for Web Hackers Tom Eston
 
Moving Towards Zero Defects with Specification by Example
Moving Towards Zero Defects with Specification by ExampleMoving Towards Zero Defects with Specification by Example
Moving Towards Zero Defects with Specification by ExampleSteve Rogalsky
 
Types of Software Testing
Types of Software TestingTypes of Software Testing
Types of Software TestingNishant Worah
 
Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts pptRathna Priya
 
Introduction to Agile software testing
Introduction to Agile software testingIntroduction to Agile software testing
Introduction to Agile software testingKMS Technology
 
Agile Testing Process
Agile Testing ProcessAgile Testing Process
Agile Testing ProcessIntetics
 
Software Testing Fundamentals
Software Testing FundamentalsSoftware Testing Fundamentals
Software Testing FundamentalsChankey Pathak
 

Destacado (20)

Unittesting Bad-Practices by Example
Unittesting Bad-Practices by ExampleUnittesting Bad-Practices by Example
Unittesting Bad-Practices by Example
 
User Testing by Example
User Testing by ExampleUser Testing by Example
User Testing by Example
 
Postgresql and ror
Postgresql and rorPostgresql and ror
Postgresql and ror
 
Bad test, good test
Bad test, good testBad test, good test
Bad test, good test
 
Specification by Example
Specification by ExampleSpecification by Example
Specification by Example
 
Unit-Testing Bad-Practices by Example
Unit-Testing Bad-Practices by ExampleUnit-Testing Bad-Practices by Example
Unit-Testing Bad-Practices by Example
 
Testing
TestingTesting
Testing
 
Specifications For Enterprise Testing
Specifications For Enterprise TestingSpecifications For Enterprise Testing
Specifications For Enterprise Testing
 
7 1-1 soap-developers_guide
7 1-1 soap-developers_guide7 1-1 soap-developers_guide
7 1-1 soap-developers_guide
 
Don't Drop the SOAP: Real World Web Service Testing for Web Hackers
Don't Drop the SOAP: Real World Web Service Testing for Web Hackers Don't Drop the SOAP: Real World Web Service Testing for Web Hackers
Don't Drop the SOAP: Real World Web Service Testing for Web Hackers
 
Moving Towards Zero Defects with Specification by Example
Moving Towards Zero Defects with Specification by ExampleMoving Towards Zero Defects with Specification by Example
Moving Towards Zero Defects with Specification by Example
 
Learn SoapUI
Learn SoapUILearn SoapUI
Learn SoapUI
 
Agile Testing by Example
Agile Testing by ExampleAgile Testing by Example
Agile Testing by Example
 
Manual testing ppt
Manual testing pptManual testing ppt
Manual testing ppt
 
Types of Software Testing
Types of Software TestingTypes of Software Testing
Types of Software Testing
 
Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts ppt
 
Introduction to Agile software testing
Introduction to Agile software testingIntroduction to Agile software testing
Introduction to Agile software testing
 
Agile Testing Process
Agile Testing ProcessAgile Testing Process
Agile Testing Process
 
Software Testing Fundamentals
Software Testing FundamentalsSoftware Testing Fundamentals
Software Testing Fundamentals
 
The Minimum Loveable Product
The Minimum Loveable ProductThe Minimum Loveable Product
The Minimum Loveable Product
 

Similar a Domino testing presentation

Domino testing presentation
Domino testing presentationDomino testing presentation
Domino testing presentationdominion
 
CNIT 121: 13 Investigating Mac OS X Systems
CNIT 121: 13 Investigating Mac OS X SystemsCNIT 121: 13 Investigating Mac OS X Systems
CNIT 121: 13 Investigating Mac OS X SystemsSam Bowne
 
April, 2021 OpenNTF Webinar - Domino Administration Best Practices
April, 2021 OpenNTF Webinar - Domino Administration Best PracticesApril, 2021 OpenNTF Webinar - Domino Administration Best Practices
April, 2021 OpenNTF Webinar - Domino Administration Best PracticesHoward Greenberg
 
CNIT 152: 13 Investigating Mac OS X Systems
CNIT 152: 13 Investigating Mac OS X SystemsCNIT 152: 13 Investigating Mac OS X Systems
CNIT 152: 13 Investigating Mac OS X SystemsSam Bowne
 
SharePoint 2014: Where to save my data, for devs!
SharePoint 2014: Where to save my data, for devs!SharePoint 2014: Where to save my data, for devs!
SharePoint 2014: Where to save my data, for devs!Ben Steinhauser
 
Stress Free Deployment - Confoo 2011
Stress Free Deployment  - Confoo 2011Stress Free Deployment  - Confoo 2011
Stress Free Deployment - Confoo 2011Bachkoutou Toutou
 
SilverStripe From a Developer's Perspective
SilverStripe From a Developer's PerspectiveSilverStripe From a Developer's Perspective
SilverStripe From a Developer's Perspectiveajshort
 
The Dev-Admin Chimera: Customising Connections (with Gab Davis)
The Dev-Admin Chimera: Customising Connections (with Gab Davis)The Dev-Admin Chimera: Customising Connections (with Gab Davis)
The Dev-Admin Chimera: Customising Connections (with Gab Davis)Mark Myers
 
Technical track-afterimaging Progress Database
Technical track-afterimaging Progress DatabaseTechnical track-afterimaging Progress Database
Technical track-afterimaging Progress DatabaseVinh Nguyen
 
Documenting metadata application profiles and vocabularies
Documenting metadata application profiles and vocabulariesDocumenting metadata application profiles and vocabularies
Documenting metadata application profiles and vocabulariesPaul Walk
 
Soccnx10: Best and worst practices deploying IBM Connections
Soccnx10: Best and worst practices deploying IBM ConnectionsSoccnx10: Best and worst practices deploying IBM Connections
Soccnx10: Best and worst practices deploying IBM Connectionspanagenda
 
CNIT 152 13 Investigating Mac OS X Systems
CNIT 152 13 Investigating Mac OS X SystemsCNIT 152 13 Investigating Mac OS X Systems
CNIT 152 13 Investigating Mac OS X SystemsSam Bowne
 
Road to Opscon (Pisa '15) - DevOoops
Road to Opscon (Pisa '15) - DevOoopsRoad to Opscon (Pisa '15) - DevOoops
Road to Opscon (Pisa '15) - DevOoopsGianluca Varisco
 
Uklug 2014 connections dev faq
Uklug 2014  connections dev faqUklug 2014  connections dev faq
Uklug 2014 connections dev faqMark Myers
 
Nagios XI Best Practices
Nagios XI Best PracticesNagios XI Best Practices
Nagios XI Best PracticesNagios
 
Lessons from a Dying CMS
Lessons from a Dying CMSLessons from a Dying CMS
Lessons from a Dying CMSSandy Smith
 
A Case Study of NoSQL Adoption: What Drove Wordnik Non-Relational?
A Case Study of NoSQL Adoption: What Drove Wordnik Non-Relational?A Case Study of NoSQL Adoption: What Drove Wordnik Non-Relational?
A Case Study of NoSQL Adoption: What Drove Wordnik Non-Relational?DATAVERSITY
 
Microsoft Offical Course 20410C_10
Microsoft Offical Course 20410C_10Microsoft Offical Course 20410C_10
Microsoft Offical Course 20410C_10gameaxt
 

Similar a Domino testing presentation (20)

Domino testing presentation
Domino testing presentationDomino testing presentation
Domino testing presentation
 
CNIT 121: 13 Investigating Mac OS X Systems
CNIT 121: 13 Investigating Mac OS X SystemsCNIT 121: 13 Investigating Mac OS X Systems
CNIT 121: 13 Investigating Mac OS X Systems
 
April, 2021 OpenNTF Webinar - Domino Administration Best Practices
April, 2021 OpenNTF Webinar - Domino Administration Best PracticesApril, 2021 OpenNTF Webinar - Domino Administration Best Practices
April, 2021 OpenNTF Webinar - Domino Administration Best Practices
 
CNIT 152: 13 Investigating Mac OS X Systems
CNIT 152: 13 Investigating Mac OS X SystemsCNIT 152: 13 Investigating Mac OS X Systems
CNIT 152: 13 Investigating Mac OS X Systems
 
SharePoint 2014: Where to save my data, for devs!
SharePoint 2014: Where to save my data, for devs!SharePoint 2014: Where to save my data, for devs!
SharePoint 2014: Where to save my data, for devs!
 
Stress Free Deployment - Confoo 2011
Stress Free Deployment  - Confoo 2011Stress Free Deployment  - Confoo 2011
Stress Free Deployment - Confoo 2011
 
SilverStripe From a Developer's Perspective
SilverStripe From a Developer's PerspectiveSilverStripe From a Developer's Perspective
SilverStripe From a Developer's Perspective
 
The Dev-Admin Chimera: Customising Connections (with Gab Davis)
The Dev-Admin Chimera: Customising Connections (with Gab Davis)The Dev-Admin Chimera: Customising Connections (with Gab Davis)
The Dev-Admin Chimera: Customising Connections (with Gab Davis)
 
Technical track-afterimaging Progress Database
Technical track-afterimaging Progress DatabaseTechnical track-afterimaging Progress Database
Technical track-afterimaging Progress Database
 
Documenting metadata application profiles and vocabularies
Documenting metadata application profiles and vocabulariesDocumenting metadata application profiles and vocabularies
Documenting metadata application profiles and vocabularies
 
AHUG Presentation: Fun with Hadoop File Systems
AHUG Presentation: Fun with Hadoop File SystemsAHUG Presentation: Fun with Hadoop File Systems
AHUG Presentation: Fun with Hadoop File Systems
 
Soccnx10: Best and worst practices deploying IBM Connections
Soccnx10: Best and worst practices deploying IBM ConnectionsSoccnx10: Best and worst practices deploying IBM Connections
Soccnx10: Best and worst practices deploying IBM Connections
 
CNIT 152 13 Investigating Mac OS X Systems
CNIT 152 13 Investigating Mac OS X SystemsCNIT 152 13 Investigating Mac OS X Systems
CNIT 152 13 Investigating Mac OS X Systems
 
Road to Opscon (Pisa '15) - DevOoops
Road to Opscon (Pisa '15) - DevOoopsRoad to Opscon (Pisa '15) - DevOoops
Road to Opscon (Pisa '15) - DevOoops
 
Uklug 2014 connections dev faq
Uklug 2014  connections dev faqUklug 2014  connections dev faq
Uklug 2014 connections dev faq
 
Nagios XI Best Practices
Nagios XI Best PracticesNagios XI Best Practices
Nagios XI Best Practices
 
DrupalCon 2011 Highlight
DrupalCon 2011 HighlightDrupalCon 2011 Highlight
DrupalCon 2011 Highlight
 
Lessons from a Dying CMS
Lessons from a Dying CMSLessons from a Dying CMS
Lessons from a Dying CMS
 
A Case Study of NoSQL Adoption: What Drove Wordnik Non-Relational?
A Case Study of NoSQL Adoption: What Drove Wordnik Non-Relational?A Case Study of NoSQL Adoption: What Drove Wordnik Non-Relational?
A Case Study of NoSQL Adoption: What Drove Wordnik Non-Relational?
 
Microsoft Offical Course 20410C_10
Microsoft Offical Course 20410C_10Microsoft Offical Course 20410C_10
Microsoft Offical Course 20410C_10
 

Último

A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 

Último (20)

A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 

Domino testing presentation

  • 1. Lotus Domino Security White and black box testing Ari Elias-Bachrach Casey Pike
  • 2. Outline • Why is This Necessary? • Introduction to Domino • Domino Commands • Blackbox • Whitebox • Default Files • Architecture
  • 3. Outline • Why is This Necessary? • Introduction to Domino • Domino Commands • Blackbox • Whitebox • Default Files • Architecture
  • 4. Why is This Necessary? In January 2009, More Than Half of Fortune Global 100 Now Using Lotus Notes/Domino* http://www-03.ibm.com/press/us/en/pressrelease/26480.wss
  • 5. Why is This Necessary? • Domino is….. Unique Web App DB
  • 6. Why is This Necessary? • Automated scanners seem to have a hard time with Domino apps • Many “normal” attacks don’t work (SQL injection) • There are many other attacks which will work • Not a lot of good information out there
  • 7. Outline • Why is This Necessary? • Introduction to Domino • Domino Commands • Blackbox • Whitebox • Default Files • Architecture
  • 8. Introduction to Domino • Domino stores data in custom database files with the .nsf extension http://server/database.nsf/DominoObj?Action •View •Frameset •Form •Navigator •Agent •Document •Page
  • 9. Introduction to Domino • Special Identifiers begin with $ and can return any domino object http://server/database.nsf/$SpecialIdentifier http://server/database.nsf/$help?openhelp
  • 10. Outline • Why is This Necessary? • Introduction to Domino • Domino Commands • Blackbox • Whitebox • Default Files • Architecture
  • 11. Domino Commands • View • Openview – opens the view • ReadViewEntries – access the view data in XML format • $first – returns the first document in the view • $searchform?opensearchform – opens a search form from which the view can be searched http://server/database.nsf/myview?Openview
  • 12. Domino Commands http://server/database.nsf/myform?OpenForm Form • OpenForm – opens the form • ReadForm – displays the form without its editable fields. • CreateDocument – sent using an HTTP post. Domino will create a document with the contents of the HTTP post packet.
  • 13. Domino Commands http://server/db.nsf/myView/doc1?EditDocument Document • EditDcoument • SaveDocument – sent as an HTTP post. Domino will update the document with the contents of the post. • DeleteDocument • OpenDocument • $file/name – returns doc’s attachment with the name “name”
  • 15. Domino Commands • Special Items • ?Redirect – allows redirection to another database based on it’s ID. • ?openDatabse • /$about?OpenAbout – opens the “about this database” document • /$help?openhelp – opens the help document • /$icon?openicon – opens the icon for the database • /$defaultview – returns the default view (if there is one). • /$defaultform – returns the default form (if there is one). • /$defaultnav – returns the default navigator • ?openpreferences – opens the preferences setting. http://server/database.nsf/$about?OpenAbout
  • 18. Outline • Why is This Necessary? • Introduction to Domino • Domino Commands • Blackbox • Whitebox • Default Files • Architecture
  • 19. Blackbox • Navigate the app - use the commands just discussed • Check all defaults/special identifiers • Try to edit docs (permissions checking) • Find (and use) search forms • Enumerate views (more on this later)
  • 20. Blackbox • Views, Forms, and Agents all have a notesID. Assignment begins with 0x11A and increments by 4 each time • http://host/database.nsf/11A • http://host/database.nsf/11E • http://host/database.nsf/122 • http://host/database.nsf/126 • http://host/database.nsf/12A
  • 21. Blackbox Enumerate views Occurrences of view names in help files: 135 - By Category 36 - View A 31 - All 26 - Main 23 - Categorized 22 - Main View 13 - All Documents 6 - Topics
  • 22. Outline • Why is This Necessary? • Introduction to Domino • Domino Commands • Blackbox • Whitebox • Default Files • Architecture
  • 23. Whitebox • Levels of Access in Domino • Server • Database • Elements • Documents • Fields
  • 24. Whitebox • Server access – Ask your administrator • Server Doc • Internet Site Doc • Configuration Doc • Person Docs – Internet passwords are secure
  • 26. Whitebox • Database access – ACLs for Web Access • Editor – Create and edit docs • Author – Create and edit own docs • Reader – Read docs • Depositor – Create docs • No access – Be careful public documents
  • 27. Whitebox ACL Mistakes • Even though Anonymous is set to No Access, it is possible to overlook Read Public documents which will give access. • Common App – Mail File* • Do not overlook any setting
  • 28. Whitebox ACL Mistakes • -Default- is any user who has authenticated. If allowed access, make sure to audit the Domino Directory for test accounts or LDAP if directory assistance is used.
  • 30. Whitebox Elements access – Check them ALL • Forms, Views, Navigators, etc. - If they are not used, hide them from the web. • Security Tab – Set who can access the element based on ACL • Allow public access
  • 32. Whitebox • Restrict more in-depth audits for elements that are exposed to the web • Views, Forms, Pages… • Ask to see config or profile documents (make sure they are protected) • Review All Agents – Can be called from the web to run code. Can write to DB2, SQL, FTP, basically do anything.
  • 33. Whitebox • Check permissions on all design elements • Check actions within design elements
  • 34. Whitebox • Field Access • Depending on how the application is written, fields on public forms can be hidden.
  • 35. Outline • Why is This Necessary? • Introduction to Domino • Domino Commands • Blackbox • Whitebox • Default Files • Architecture
  • 36. Default Files • Names.nsf – The most important database • Log.nsf – Shows events on server • WebAdmin.nsf – A web version of admin client • Help Files – Should never be left on the server When upgrade a server, it could re-add databases you thought you deleted!!!
  • 37. Where to Start? • Talk to the Administrator – Learn about the different documents (server, config, internet site) of the NAB • Learn the default ACL and how it is audited. • Talk to the Developers – Its impossible to go through every element and to look at field security. Establish security practices
  • 38. Where to Start? Get a good tool • Team Studio – Build Manager to write checks before a application is refreshed into production. Preventive Security! • DominoScan II – NGS Software • AppDetectivePro – Application Security Inc. • PowerTools and ScanEz – Admin Tools
  • 39. Outline • Why is This Necessary? • Introduction to Domino • Domino Commands • Blackbox • Whitebox • Default Files • Architecture
  • 40. Architecture • End users directly enter DB commands • Cannot run arbitrary DB commands • Who sets up ACLs in your org?
  • 41. Questions? Comments? Insults? • ari@defensium.com • Twitter: @angelofsecurity • www.defensium.com CaseyPike@gmail.com http://www.defensium.com/domino/

Notas del editor

  1. Ari is the security guy Casey is the Domino guy
  2. 374,000 hits from filetype:nsf – these are domino databases directly accessible from the web
  3. Is Domino a web server, app server, or database server? The answer is it’s all three.
  4. That’s right – you access the domino DB directly through the URL. This is probably the right place to talk about what each of these items is
  5. This all assumed you have permissions….
  6. This slide needs to be finished - Casey
  7. Obviously you should check for all of these on a black or white box test