02 July 2010

Architecture

Posts relating to the category tag "architecture" are listed below.

03 April 2009

Is Email Within the Scope of a Web Application Security Test?

Email is sometimes discounted or just excluded from the scope of web application code reviews and penetration testing. This isn't always the correct decision.

A web application's boundary can sometimes be difficult to define, and thus it's possible to set the wrong scope of a review, audit or security test. Web applications may be comprised of multiple independent separate systems across many organisations and geographic locations (e.g. a page containing a news feed from a third-party, someone else's widget and web analytics code).

But even the simplest web application usually have some sort of email functionality—this might be simply to raise alerts about unusual conditions such as errors, but often email is used in user authentication mechanisms such as registration forms and password change functions. But marketing emails may also be sent by third-parties and these might include web content drawn from the site or include URLs or redirects to particular resources on the web site.

I was reminded of this by an econsultancy.com blog posting this week UK retailers need to improve their email marketing efforts. Lots of good advice there. I have saved some recent poor quality marketing emails:

Partial screen capture of an email client software with four messages - one message with no subject, one where the from field includes placeholders for names, a test email with test in the subject line and one with an apology for a previous message

It just seems too easy to send these things off. Another one even had some FTP account details embedded in an image address! I spoke to the company's IT helpdesk on that one.

But yes, where the emails include links to the web site, describe functionality, submit data to the web site or include web content, they should normally be considered within scope of a security test. They may also contain useful details for the information gathering phase.

Posted on: 03 April 2009 at 10:08 hrs

Comments Comments (0) | Permalink | Send Send | Post to Twitter

17 March 2009

Disasterous Launch of an Online Service

What a pity. Six weeks on and Sage Live, a new on demand Software as a Service (SaaS) web product from business management software providers Sage Group plc, is still offline. It was withdrawn at the end of January after less than a month of operation due to serious security flaws.

Screen capture showing the current Sage Live web site stating 'Sage Live update. As part of the development process for Sage Live we launched a Beta version which was open to the public. As part of the Beta process we gained valuable feedback from our user base as well as other third parties. We have taken the decision to take the site offline while we upgrade it and input some of the recommendations we received during the Beta test period. We will continue to listen and learn from the invaluable feedback that our community provides and will reinstate the site when we are happy that it will provide the best possible experience for our customers. If you are interested in business software, you can visit the Sage Store, or of you need to create invoices while the site is being updated, we have some new invoicing software that is completely free of charge.'

An article on ZDnet Sage Shows Why Bigcos Can't be Trusted with SaaS, describes the events leading up to the event which followed the blog posting on Sage Live - Serious SaaS Security Issues by a competitor KashFlow who Sage had previously complained about to Trading Standards. Despite 18 months in development, it took users of the public beta version to identify basic security flaws in Sage Live that have since been confirmed by more expert reviewers.

Developing web applications is not the same as developing conventional software, and Sage got it badly wrong. At least they have taken it offline—but it will take a lot of effort to rebuild the required trust in the service if it re-launches.

Posted on: 17 March 2009 at 09:16 hrs

Comments Comments (0) | Permalink | Send Send | Post to Twitter

27 January 2009

What is a Positive Security Model?

Terminology can get in the way of the understanding each other in project teams. Sometimes information security terminology can get particularly foggy. So if you hear "positive security model", what should you be thinking of?

Positive security models are sometimes referred to as a white list (or whitelist) approach. There are good definitions and descriptions on the following sites:

For a web site (web application), a positive security model would define a limited number of interactions and data that would be allowed.

As an analogy, if you were having a family get-together, you could be very explicit about who you are inviting—Granny Jones, Uncle Sam, etc. By listing everyone you will let in to your house on a particular day, you'd have a type of positive security model. If they were not invited (or turned up on another day!), they wouldn't be allowed in. But people who are new to having a party tend to do things a bit differently. They'll tend to say "everyone's invited" with some exceptions—Bob, Jinny and Si can't come. That's a negative security model.

In the family get-together it's easy to prevent (known) trouble-makers from attending - just don't invite them (and enforce the door policy) i.e. allow all legitimate guests and deny everyone else. For the party, since everyone's welcome passers-by and friends of friends may turn up who cause trouble.

The positive security model is stricter, but relies on having a full knowledge of what is, and what is not permissible. For a web application, this would be what information (e.g. type, range/length, character set, format, syntax, cardinality) can be sent & received, by who, in what manner, when, in what order, how often and what pre-conditions there are.

The more of these things that can be defined early in a web application project, help guide the design, development and testing. Of course there will be difficulties defining what exactly is allowed or making it specific enough, but by going through the thought process, it helps build security in from the start.

There are some more thoughts in A Techie's Musings about It's Only a Model.

Posted on: 27 January 2009 at 08:58 hrs

Comments Comments (0) | Permalink | Send Send | Post to Twitter

09 January 2009

Security Implications of WCAG 2.0

The Web Content Accessibility Guidelines 2.0 (WCAG 2.0) have created some challenges for those who wish to meet the criteria and also develop to high web security standards.

The WCAG 2.0 became a full W3C Recommendation in December 2008 (see Accessibility and Security Roundup). The WCAG 2.0 contain much more related to transactional systems and there are many criteria which existing development frameworks are unlikely to meet. Inflexible generic methods for navigation, data entry and validation will not always be possible—the context is so important in consideration of accessibility.

The four principals (perceivable, operable, understandable and robust) comprise 12 guidelines and associated testable success criteria. The most difficult issues are related to the highest level of conformance. There are still three conformance levels—A (lowest), AA, and AAA (highest).

The Techniques for WCAG 2.0 are worth reading as these give a guide to developers as how some of the success criteria could be achieved and checked.

Session management

The following are of particular interest:

Session management where authenticated users are authorised to perform certain actions is a fundamental building block of web application security. There are potential issues here if tokens are not expired on time out and log out. This is a particularly important issue on shared computers.

Data entry

And for data entry and validation, the following techniques have security implications:

Getting data entry, checking, confirmation and validation correct is key, and I like the empahsis being placed on this aspect, but there are dangers in poorly thought-out implementations. More accessible web applications are better for everyone—not just people with less experience, knowledge or ability.

Final thoughts

Overall, WCAG 2.0 increases the complexity of specification, design, development and testing of web applications. Many of the techniques could introduce security vulnerabilities, and the listed techniques could be used to develop misuse test cases.

I'm pleased to see in one of the script examples:

This example is limited to client-side scripting, and should be backed up with server-side validation

Very true.

Update 19th May 2009: See also What's the Scope for Accessibility Testing? and Can An Accessible Web Application Be Secure? concerning my presentation at OWASP AppSec EU09.

Posted on: 09 January 2009 at 09:01 hrs

Comments Comments (0) | Permalink | Send Send | Post to Twitter

06 January 2009

Application Data Flows by Email

It is very common to find web applications where part of the business process, not just acknowledgements, is undertaken using electronic mail. These processes need to be designed securely and tested as well.

I've mentioned previously in Keep The Emails Coming about testing email alerts used for errors, problems and other unusual conditions, but it's common for email also to be used as a short-cut for developing some parts of business processing.

A recent project I was working on included an link to unsubscribe from marketing emails. Clicking on the link gave a slightly sparse single phrase confirmation—not particularly usable and it didn't validate me in any other way or notify me of the change by anything other than the screen message, but it was probably okay for the type of system.

Partial screen capture showing the words 'You have been successfully unsubscribed' that appeared after clicking on an unsubscribe link

However, within a few minutes I had received another email - an auto-responder:

Partial screen caputure of the email message with nthe subject line 'Your message to Admins requires moderator approval', from 'admins-bounes@...' and stating: Your mail to Admins with the subject A contact has unsubscribed from your list ****** Is being held until the list moderator can review it for approval. The reason it is being held:     Post by non-member to a members-only list   Either the message will get posted to the list, or you will receive notification of the moderator's decision.  If you would like to cancel this posting, please visit the following URL: http://******/mailman/confirm/admins_******/...

Very interesting. What does this tell us?

  • There is an administration mailing list
  • The unsubscribe process sent a message to the administration list with my email address as the sender
  • Posting to the list is restricted to certain people, and thus could be a way to identify administrator's email addresses
  • The list may be using Mailman, the GNU Mailing List Manager
  • The list administration address begins with /mailman/confirm/admins_******/

And, I suppose the implication is my email address has not been removed from the mailing list yet.

If this were a web application penetration test, it might be that some of the mailing list administrative usernames and perhaps passwords are the same as for the web application. Or, content of messages in the list contains useful information to help access the web application. The email responder is sending too much information, and actually this message shouldn't be being sent to a subscriber at all, and the information leakage then stems from using the subscriber's email address as the sender.

So, remember a web application's security is only as good as its weakest link. The security architecture needs to address the whole business process, not just the web page parts.

Posted on: 06 January 2009 at 12:30 hrs

Comments Comments (0) | Permalink | Send Send | Post to Twitter

05 December 2008

Information Architecture, Trust and Web Application Security

Two articles in particular caught my attention this week relating to designers and developers engaging clients in the development process. Both are worth a read and, I think, consideration in your own web projects.

The first was a great outline of Educating the Client on Information Architecture on A List Apart. The discussion seemed to focus a little too much on static content (data) and probably needs to address data flows and where security boundaries occur in the information architecture. But by using the suggested approach, it makes consideration of security controls much easier.

Secondly, the business case for web application security was discussed on Securosis.com - this was Part 2 of a series of posts about building a web application security program - Part 1 which I had missed was an introduction. The post lists six typical drivers used to justify web application security investments - but I think "User Trust" should be an additional one. Increased trust helps overcome perceptions of risk and insecurity and leads to a greater likelihood of users undertaking, completing and repeating web site processes.

If you are interested in the effect of trust, the multidimensional nature of trust is discussed in detail in McKnight, Choudhury and Kacmar's papers on Developing and Validating Trust Measures for e-Commerce: An Integrative Typology, Information Systems Research, Vol 13, No 3, September 2002, pp 334–359 and Distrust and Trust in B2C E-Commerce: Do They Differ?, Proceedings of the 8th International Conference on Electronic Commerce, 2006, pp 482-491. The reference lists included in these papers provide additional and alternative views on trust.

Posted on: 05 December 2008 at 06:38 hrs

Comments Comments (0) | Permalink | Send Send | Post to Twitter

24 October 2008

Partition the Web Server

Setting up a web server incorrectly can be difficult to change later. Isolating the operating system from web site files and other data using separate partitions or physical devices needs to be done during server commissioning.

It would be usual to have at least three partitions on a typical web server:

  • The operating system
  • The web site files (scripts and static files such as images and style sheets)
  • Server logs

This allows you to restrict permissions - so that if the web site is compromised, it is harder to access the operating system files, and to ensure that logs don't grow excessively and use up all the available space.

Your own data - the database and perhaps other files - should be stored seperately. If possible this should be on other servers, but if not, on a separate partition.

If you allow any user uploaded content, you should also consider storing this on another separate partition, and in any case, never in sub-directories of the web site root. This is to prevent direct access to possibly malicious file content by directly requesting the address in a browser and to ensure the files are stored in an area with limited permissions.

Posted on: 24 October 2008 at 06:42 hrs

Comments Comments (0) | Permalink | Send Send | Post to Twitter

Architecture : Web Security, Usability and Design
ISO/IEC 18004:2006 QR code for http://clerkendweller.com

Requested by 38.107.191.108 on Friday, 10 September 2010 at 16:41 hrs (London date/time)

Please read our terms of use and obtain professional advice before undertaking any actions based on the opinions, suggestions and generic guidance presented here. Your organisation's situation will be unique and all practices and controls need to be assessed with consideration of your own business context.

Terms of use http://www.clerkendweller.com/page/terms
Privacy statement http://www.clerkendweller.com/page/privacy
© 2008-2010 clerkendweller.com