Anyone convinced a security team to go for Azure AppFabric Service Bus?

At the UK Connected Systems User Group meeting yesterday we had a good session from Imran on Azure AppFabric. We ran out of evening before the end of the session, so I didn’t get to raise this question, but it’s a crucial point for me. The Service Bus exists to easily expose internal services to the outside world. It’s an easy sell to tech guys, but I haven’t yet worked with a client’s security team who are open to the concept.

Ithink the security guys have a good point: the status quo for exposing internal services to business partners involves VPNs, DMZs, NAT, firewall exceptions etc. Imran described this as “complex”, and from a delivery point of view it may be. But from a security point of view, it’s not complex, it’s just what they do. And there are two reasons why the security guys are happy with the status quo: 1) they understand the attack surface; 2) they own the attack surface.

Understanding the Attack Surface

Microsoft have a very detailed and approachable whitepaper on how secure Azure is: Windows Azure Security Overview (PDF, login required). There are a lot of familiar and reassuring security technologies and practices in the Azure stack. It’s a shift from the attack surface they know and understand, but there should be enough for security guys to agree that the model is enterprise-grade. I would say the end-to-end is more secure than most enterprises can realistically achieve – but I’m not a security guy.

Owning the Attack Surface

This is far more important. When you’re securing your own infrastructure, the payback for all the effort is that you own the attack surface. If an attack is mounted then you should have the tools and the access needed to deal with it, which means: 1) being able to see that you are under attack; 2) being able to identify the nature of the attack and (eventually) its source; 3) having the ability to contain the attack, routing past weaknesses or (at worst) taking the service down.

With Azure playing Service Bus, the only part of the attack surface you own is your internal endpoint. Hopefully you’d see obvious things like DDOS attacks and certificate hacks, but hopefully they wouldn’t get to you anyway.

What if the attack happens outside of your infrastructure – say an attacker is able to record your service requests and responses as they route through Azure*? And say they gain access to your keys so they can decrypt the content? Ignore for the moment how difficult that would be, and the chain of failures it would need to support that attack. The question is: how do you know about it? Maybe Microsoft will send a friendly email – “hey, your service has been compromised and someone’s reading all of your traffic right now. Do you want us to take the service down or just let it run?”. Maybe it’ll take a couple of hours before they discover the attack, and a series of meetings escalating up the veep chain before clearance is given to send that email. Maybe it would take far longer to identify an attack and identify who’s been compromised.

And that’s what I think is stopping the security guys from signing off this approach. You don’t own the attack surface, so you don’t know if you’re being attacked. And if your provider does get attacked, there’s a massive public relations and commercial incentive for them to keep quiet about it.

So, steer clear of the Service Bus then?

I’d say “no, but think about what you’re exposing”. I don’t imagine we will never see a security exploit in Azure. The same is true for AWS and any other cloud service, and the worst scenarios will have to be supported by poor security practices in the exploited party. What makes the Service Bus different is that you’re dealing with core business functionality.

If someone hacks Dropbox, quietly copies all of my documents and the provider doesn’t know or doesn’t tell me, that’s bad news. But it’s static content and in any case if it’s confidential, I shouldn’t be storing it on the Internet. But if someone hacks Azure AppFabric and can read Service Bus payloads, then they know my contracts and can potentially send in their own requests to my core systems. If that’s a service exposing reference data so a business partner can show my product list, it may not be an issue. If it’s a service for business partners to submit an invoice which my financial system processes, it may be more of an issue.

This isn’t an anti-Azure post and I have no significant concerns about the security model on offer in Azure AppFabric. I use Azure for my own business services and I’m happy to recommend it to clients. The Service Bus gives you a fantastic path to getting properly connected within and between enterprises. The issue is about recognising that no system is 100% secure, understanding the worst case scenario and factoring that into your decision matrix for publishing services on the Internet.

* – relay bindings will use direct connections if possible, but it’s not always possible so you can assume a worst case that all calls will route through Azure

6 Quick Steps for Windows/.NET Folks to Try Out Cloud Foundry

6 Quick Steps for Windows/.NET Folks to Try Out Cloud Foundry

I’m on the Cloud Foundry bandwagon a bit and thought that I’d demonstrate the very easy steps for you all to try out this new platform-as-a-service (PaaS) from VMware that targets multiple programming languages and can (eventually) be used both on-premise and in the cloud. To be sure, I’m not “off” Windows Azure, but the […]
Blog Post by: Richard Seroter

BizTalk Deploy Error: Could not enlist orchestration ’MyAssembley’. Object reference not set to an instance of an object. (Microsoft.BizTalk.SnapIn.Framework)"

BizTalk Deploy Error: Could not enlist orchestration ’MyAssembley’. Object reference not set to an instance of an object. (Microsoft.BizTalk.SnapIn.Framework)"

Today after I deploy and configure a new version of an existence solution, I tried to start the application and it gave me the following error: TITLE: BizTalk Server 2006 Administration Console —————————— Could not enlist orchestration ‘MyAssembley, Version=1.0.0.0, Culture=neutral, PublicKeyToken=776eb620b83c3d30′. Could not enlist orchestration ‘MyAssembley, Version=1.0.0.0, Culture=neutral, PublicKeyToken=776eb620b83c3d30′. Object reference not set to an […]
Blog Post by: Sandro Pereira

BizTalk 360 – Live at London Connected Systems User Group

If you are in and around London, you got an opportunity to see the potential of BizTalk 360 live demo at London Connected Systems user group meeting tonight. There are still few tickets available for the event, you can register at http://ukcsbugmay2011.eventbrite.com/

Apart from BizTalk 360, there are two more interesting talks

Session 1

Topic: BizTalk Appfabric Connect (the need and the solution) by Imran Shafqat

In this session Imran will talk about the need of using WCF services in an environment already hosting BizTalk Server. Imran will then highlight some of the pain points that developers have to go through using this approach followed by discussion on how App Fabric connect provides a solution to some of these concerns.

Session 2

Topic: Behaviour Driven BizTalk Development by Michael Stephenson

In this session Michael will discuss how BDD can be used to help deliver successful BizTalk projects. Michael will also show how SpecFlow and BizUnit can be combined in your development processes to create testable behaviours to drive your development on BizTalk 2010.

See you all tonight.

Nandri!

Saravana

Now Online: My New Pluralsight Course on UML Modeling in Visual Studio 2010

Now Online: My New Pluralsight Course on UML Modeling in Visual Studio 2010

My second on-demand course for Pluralsight is now online. This course, Solution Modeling with UML in Visual Studio 2010, has three major components: how to build models, how to manage models and why to build models. First, I show how to create both behavioral diagrams (Use Case Diagrams, Activity Diagrams, Sequence Diagrams) and structural diagrams […]
Blog Post by: Richard Seroter

BizTalk Error Message – An unhandled exception (’System.StackOverflowException’) occurred in BTSNTSvc.exe

BizTalk Error Message – An unhandled exception (’System.StackOverflowException’) occurred in BTSNTSvc.exe

It’s very common to use .NET code for orchestration support. In one of these scenarios I decide to use a class for, in a certain way, validate request and add more information, and to my surprise I was blessed by this error: An unhandled exception (‘<System.StackOverflowException>’) occurred in BTSNTSvc.exe [2756]. Just-In-Time debugging this exception failed […]
Blog Post by: Sandro Pereira

BizTalk 360 – SQL Server Dashboard

BizTalk 360 provides a SQL server dashboard to view information that’s relevant to BizTalk Server. The screen shot below shows the SQL Server dashboard.

Why do we need SQL Server information in a BizTalk monitoring and support tool?

The heart of BizTalk server is the message box and it’s supporting databases like tracking, bam, SSO, management, etc. databases are system databases and treated as black boxes. It’s not recommended to change anything in these system databases. It will violate your support agreement.

But from a BizTalk production support and monitoring perspective its vital to keep track of the health of these databases. Often times the support people will use SQL tools like SQL management studio to check this information, to check the size of data and log files they either use the reporting functionality of SQL management studio or check the physical file size in SAN and disks.

These activities posses both security risk by providing access to SQL server and physical boxes, and it also posses risk due to human errors accessing production systems for health monitoring.

BizTalk 360 addresses these challenge by providing a SQL server specific dashboard, where all these required information are readily available without giving any additional permissions to support people. Also, it’s restricted read-only access, make the production environment safe from human errors.

Let’s take a deeper look at the parts of the portal

1.Checking of database data and log files sizes

BizTalk 360 separates the BizTalk databases into two categories. Message box databases and other databases. It got algorithm to calculate the database data and log file sizes and displays it appropriately.

2. Checking whether the SQL jobs are running properly

Health of SQL server jobs installed by BizTalk server is very critical in a production environment. SQL server jobs are responsible for variety of operations like moving historical data from message box database to tracking and bam databases. Taking care of log shipping information for disaster recovery (DR), back up databases etc.

BizTalk 360 lists all the SQL jobs relevant to BizTalk server in the dashboard, so the support person will get visibility directly.

3. Checking the auto-growth setting

Auto growth setting plays an important role in BizTalk configuration for performance reasons. It’s recommended to set this value to a fixed value, so SQL server doesn’t waste is resources expanding the data and log files during heavy processing.

4. Other trivial information

BizTalk 360 also provides some basic information related to SQL server like whether its clustered, the physical server name, version information etc.

Summary

In a nutshell, BizTalk 360 avoids monitoring and support teams from accessing the SQL server directly just for checking few information. It bring all the relevant details specific to supporting that BizTalk environment straight to the dashboard. It both speeds up the process and makes it secure.

Social:
twitter: @biztalk360
facebook: http://facebook.com/biztalk360
support: http://getsatisfaction.com/biztalk360

PS: If in case you haven’t noticed BizTalk 360 is a web based (RIA) application, built using Microsoft SilverLight. The above screens are accessible via browser. There is no necessity to install anything on the client PC except Microsoft SilverLight.

Nandri
Saravana

Top 10 Things to Know When Integrating with Line of Business Systems

We are once again fortunate to have prominent speakers visiting our user group in Sweden. This time it's Kent Weare and Richard Seroter. Both of them have been here before, and have both been much appreciated speakers. (BTW if you are aware of any challenges happening in Sweden at the time of the event such as Iron man, marathon or cage fighting let me know so we can sign up Kent).

Kent Weare recently led a team of authors in their production of the book Microsoft BizTalk 2010: Integrating with Line of Business Systems (Packt Publishing, 2011).  This book walks through multiple technologies and how to integrate with them via BizTalk Server 2010.  Join Kent and Richard as they deliver the Top 10 Things to Know When Integrating with Line of Business Systems.
In these sessions, they will walk us through numerous key principles to follow when doing system integration and they will draw inspiration from their new book.  These principles will be demonstrated by integrating BizTalk Server 2010 with SharePoint, Windows Azure, SAP and software-as-a-service providers.

Monday the 13th of June 18:00 at Microsofts office in Akalla

If you have an opportunity to join us, sign up. If you need help booking travel arrangements such as hotel, let us know by dropping us an email.

Welcome

Blog Post by: wmmihaa