Wednesday, April 22, 2009
Microsoft Dynamics pains...
1) AX Multi-timezone issue - we adopted the solution as a regional platform supporting 12 countries spanning 5 different timezones. Amazingly, the so-called enterprise class AX (previous version 4.0) cannot do this OOTB and even our vendor's promised workaround posed serious limitation to the way we do things. Having said that, the latest version 2009 does solve this problem.
2) CRM performance issue - The client side component of CRM is _extremely_ heavy (lots of small file fragments to load for a page and heavy use of javascripts) causing poor performance over WAN connections, adding substantial traffic to our regional corporate network (To make matters worse, network infrastructure across AP is still relatively poor, patchy and insanely expensive), and lastly requires reasonably powerful client side PC for snappy processing. We resorted to using Citrix to mitigate these issues (moving the load and traffic back to the server side) and even then, we are starting to find this "workaround" getting really expensive (Client license, rapidly growing Citrix farm increased hosting and management costs) as we scale up and throws our ROI right out the window. To top it off, the bloated and leaky (memory-wise) Internet Explorer in Citrix is NOT a good combination!
So in conclusion, IMHO, Microsoft Dynamics (especially CRM) is probably more suitable for small local shops rather than regional platforms with large number of users spread over geographically diverse locations.
Thursday, November 20, 2008
Ready made LAMP Virtual Machines
Thirty minutes later, I was up and running with my LAMP environment compared to weeks if I had gone the other route. Oh, and half that time was taken by the download... Yeah, my corporate network sucks...
Kudos to the guys at Virtual Appliances. Other than the LAMP VM, they also provide ready made VMs for LAPP (Linux, Apache, PostgreSQL, PHP), Tomcat (App server only, no database), Cacti (Network device monitoring and data collections), and NTOP (Realtime network traffic monitoring). These packages are available in VM formats for Virtual PC (and Server), VMware and Virtual Iron. Oh, and best of all? Its Free! (for now at least as its still in beta)
Thursday, August 28, 2008
Virtual Machine - a software engineer's best friend
Back in the days when I was developing packaged software, one of my strategies for managing test environments on the cheap is to use boot loaders (such as LILO and GRUB) and hard disk partitions. Using this approach, I had up to four environments running on a single PC (only four environments due to a limitation on the number of primary partitions a hard disk can have). Not long after, I figured that I could further cut down on the number of boxes required by using removable caddies to facilitate the swapping of hard disks on a single PC.
This strategy was indeed cost effective (I managed to reduce my farm of test PCs from eight to just two) but it was darn tedious and not as robust as I had wanted; I could only have one environment up at a time on one PC and it was time consuming to shutdown and startup another. In addition, the OS images are practically tied to the specific hardware it was installed on as we all know how crappy Windows is when it comes to swapping hardware.
Then enters VMware and its (then) flagship product VMware Workstation. My test environments became normal files and were able to run off any host OSes as long as the hypervisor supports it. With it, I was no longer bounded by the four primary partition limit on a hard disk, could run multiple environments all at the same time and copy/move them between PCs seamlessly (even if they are running different host OSes!). In addition, with the snapshot feature, I could create a base image of each test environment and easily revert to it after testing.
Out went the drive caddies, the stack of hard disks and backup tapes piled up on my desk, LILO, PartitionMagic and Norton Ghost! In addition to cost savings, the time saved was also considerable and it was appropriately channeled to our LAN parties in the office! :)
Friday, August 8, 2008
WebApp Security Test tool - IBM Rational AppScan
- Formally Watchfire Corporation before its acquisition in July 2007.
- Does not have a code analyzer component like HP. [Edit: Will have one in the upcoming version come Sept 2008 as pointed out by Chris.]
- Run-time analyzer comes in three flavors:
- Standard Edition
- Targeted at standalone usage scenarios.
- Black-box testing tool (does not require source code but requires a running system).
- Underlying implementation technology independent.
- Works by crawling an entire website (link depth and type is configurable) after been given a root URL.
- Suggests common fixes when vulnerabilities are found but cannot automatically fix them. (Obviously since it has no knowledge or access to the underlying code!)
- Will not be able to detect threats on pages that are not explicitly defined in the test, exist as links in the website or directories that do not allow listing.
- Supports legal and regulatory compliance by scanning against well known policies (e.g. Sarbanes-Oxley, HIPAA, PCI Data Security Standard, OWASP Top Ten) and generate the necessary reports.
- Requires regular updates to keep up with latest threat signatures (like anti-virus software).
- Must run full suite of tests after an update as the tool is unable to determine the delta.
- Includes a whole bunch of advanced tools for penetration testers.
- Supports only Windows Platform for running the tool.
- Tester Edition
- Targeted as part of the Quality Assurance process usage.
- Contains same features as the Standard Edition plus the following.
- Automatic test creation, modification and maintenance capabilities to enable testing and remediation.
- Enterprise Edition
- Targeted at multi-user environments.
- Contains same features as the Standard Edition plus the following.
- Centralized test management and reporting, remote scanning administration.
- Continuous monitoring and aggregation of metrics to ensure remediation and trend improvement over time.
- Sophisticated dashboards and flexible reporting views to provide enterprise-wide visibility of risks and remediation progress.
- Web based access for users.
- Supports only Windows Platform for server components.
Friday, August 1, 2008
WebApp Security Test tool - HP Application Security Center
- Formerly SPI Dynamics before its acquisition in June 2007
- Full security test suite that offers tools for different phases of the SDLC:
- DevInspect – Development stage
- Primarily a source code analyzer or white-box testing tool (i.e. requires full source code but does not require running system).
- Underlying implementation technology specific (C#, Java, JavaScript, HTML, XML, AJAX).
- Tight integration in development process (via the IDEs) hence allowing threats to be detected early (even before a developer checks the code in).
- Suggests and can automatically apply code fixes when vulnerabilities are found.
- Requires regular updates to keep up with latest threat signatures (like anti-virus software).
- Note that this tool catches only compile-time threats, not run-time threats. Hence needs to be partnered with one of the below.
- Deploys as plugins to Eclipse and Visual Studio.
- QAInspect – UAT/SIT stage (maybe even as part of continuous integration)
- Black-box testing tool (does not require source code but requires a running system).
- Underlying implementation technology independent.
- Works by crawling an entire website (link depth and type is configurable) after been given a root URL.
- Suggests common fixes when vulnerabilities are found but cannot automatically fix them. (Obviously since it has no knowledge or access to the underlying code!)
- Will not be able to detect threats on pages that are not explicitly defined in the test, exist as links in the website or directories that do not allow listing.
- Supports legal and regulatory compliance by scanning against well known policies (e.g. Sarbanes-Oxley, HIPAA, PCI Data Security Standard, OWASP Top Ten) and generate the necessary reports.
- Requires regular updates to keep up with latest threat signatures (like anti-virus software).
- Must run full suite of tests after an update as the tool is unable to determine the delta.
- Tight integration with HP Quality Center and HP TestDirector hence allowing security tests to be managed as part of an overall test plan/run including functional and/or performance tests.
- Automatically generate defect logs in HP Quality Center based on vulnerabilities found during the tests.
- Integrates with HP AMP (Assessment Management Platform) to provide enterprise assessment management. i.e. centralized control over user permissions, security policies and remote scanning administration.
- Supports only Windows Platform for running the tool.
- WebInspect – anytime (after you have a running system of course)
- Essentially the same as QAInspect except that its targeted for standalone use.
- Includes a whole bunch of advanced tools for penetration testers.
- Does not offer integration with HP Quality Center or HP TestDirector for overall test management but can push vulnerabilities as defects to HP Quality Center.
- Does integrate with HP AMP for enterprise assessment management.
- As far as licensing goes, in Singapore, comes in two flavors:
- Single User (i.e. one PC), Single Target (i.e. one IP address)
- Single User (i.e. one PC), unlimited Targets (for about double the price of the above)
Wednesday, July 23, 2008
Web application security testing tools
Unfortunately, these are just a tip of the iceberg and there are many more exploits and vulnerabilities that exist today as web technology advances and attack surface increases. It will not be feasible and practical to know them all, not to mention ensuring every single line of your code to free from them; Just like it is not possible to write code that is bug free.
Web application security is no longer an area that can be ignored or treated as second class citizens. Given the exponential growth of online applications that deal with valuable data (e.g. B2B marketplace, partner self-service apps, consumer ebanking and ecommerce, webmails, online docs and spreadsheets, even online data backup services, etc), the implications (usually financial) of losing them to hackers are not to be taken lightly.
Even if a company's web applications do not contain personal and private data, any defacement due to web exploits can cause loss of customer confidence and/or negatively affect the branding, all of which will ultimately hurt the business.
Having established the need for more emphasis on web application security, what can one do about it? Well, you can:
- include the skillset as a requirement in recruiting your development team,
- skill up your development team in this area,
- create development guidelines/policies that encourage/enforce exploit-safe coding practices,
- setup regular peer reviews focusing specifically on web application security,
- develop test cases that attempt to flag out possible vulnerabilities.
OR
You can look into acquiring some web application security test tools to offload your development team from some of these worries.
Generally speaking, here are some key benefits that you can hope to reap from using such tools:
- Consistency in overall quality of code produced as you no longer depend on skill levels of individual developers.
- Quickly and easily satisfy regulatory compliance to well known standards such as SOX, PCI, HIPAA, etc as most tools can run tests against the standards and generate the necessary reports.
- Keep up with the latest threats via the auto update feature in the tools.
- Include the security tests as part of the QA cycle (test planning, execution, even defect tracking).
Here in Sony, I am leading the initiative to explore and evaluate the product landscape with the goal of creating a Centre of Excellence (covering both governance and service provisioning) for web application security to support our internal IT operations.
Over the next couple of weeks, I will be meeting up with the various vendors to understand their offerings as well as evaluate their strengths and weaknesses in depth via PoCs.
Tuesday, July 8, 2008
Understanding Defense in Depth
Unfortunately, this is not entirely correct. The concept has a much larger scope than just network. Generally speaking, it refers to how one can use multiple methods at varying layers for a more comprehensive defence strategy. The layers (and corresponding methods) can be classified as follows:
- Security Policies
- Physical Security (e.g. dead bolt locks, biometrics)
- Perimeter Security (e.g. Firewalls, Routers, VPN, RAS)
- Network Security (e.g. IDS, IPS, Packet filters, IPSec)
- Server Security (e.g. Antivirus software, access control at host levels)
- Application Security (e.g. access control at app level)
- Data Security (e.g. data encryption)
- Some form of security policy governing access and use of your networks/servers/applications
- Locked gates/doors in front of your data center building/room
- Routers and Firewalls in front of your application servers
- Intrusion detection/prevention systems monitoring the network traffic for abnormalities
- Access control at the operating server level of the hardware boxes
For more information on this topic, you may want to check out Microsoft's Defense in depth security model in these series of webcasts.
Friday, July 4, 2008
Back in Istanbul again...
For this trip, I am putting up at Conrad Istanbul instead of Radisson SAS (where I stayed previously) as it was full. Conrad is much bigger than Radisson in terms of hotel size and room size. The hotel is perched on top of a hill and offers a wonderful view of the city and the Bosphorus strait in most of the rooms (unfortunately not mine).
On the night of our arrival, our hosts took us out for dinner at an upmarket and classy joint called the Sunset Grill & Bar which is famous for its Japanese fusion cuisine (and sushi!) as well as its wine list. Apparently a popular dining destination with locals, I was told that this is the place to rub shoulders and mingle with the local celebrities and corporate head honchos.
As luck would have it, Simon and Frank (the top guys in Sony Europe, on the left towards the end of the row) were in town and joined us for the welcome dinner.The restaurant is perched on the hills of Ulus and overlooks the Bosphorus. The view is spectacular in the day and even more so at night when the city lights up.
I finally get to try a Turkish wine this time round (Turkey wine exports are limited in quantity and I don't think I have ever seen one in Singapore before) and it was a 2004 Kayra Buzbağ Rezerv Öküzgözü-Boğazkere. The taste is refreshing and I enjoyed it very much. Needless to say, I had quite a few to drink as I savored the excellent T-bone steak and talked shop with the hosts till late into the night. Side note: It's usually times like this, in a casual setting outside the office with lots of booze, that you get to have frank and honest discussions on work topics!
Wednesday, March 26, 2008
Microsoft launched Windows Server 2008
One reason for the huge turnout is likely to be the freebies. This year, Microsoft gave away stuff like Windows Vista Ultimate, Office (not sure which edition), Xbox 360 and even a Sony Bravia LCD TV! (and no, I did not get any of those cool stuff *sniff*)
Talking about partner showcases, it came as a surprise to me (and most I suspect) to find SUN Microsystems present and they sure made their presence felt by being a Platinum Sponsor (the highest available) plus occupying the largest booth strategically placed at the entrance of the event. In the Keynote session, Mr Ong Chee Beng, MD for SUN Singapore, shared that SUN and Microsoft have been quietly working together for the past few years and they even deployed a number of their engineers in Microsoft's HQ up in Redmond.
Well, back to the main star of the event, Windows Server 2008. Key defining features in this release are Hyper-V, Server Core and Windows PowerShell.
Hyper-V is essentially a host manager (or hypervisor) that manages multiple VMs running in a physical machine. This is a big shift from the single OS to single physical machine concept in previous generations of Windows Server. With the entry of this type 1 hypervisor in it's portfolio, Microsoft can finally compete head-to-head with the likes of VMWare (ESX Server) and Citrix (ZenServer) and take a share of this lucrative Enterprise Server Virtualization market.
Server Core is a packaging/installation concept where you get to choose what feature sets (also called server roles) you want to install. This is in stark contrast to the previous generation of Windows Server (i.e. Windows Server 2003) where all the binaries are installed whether you use them or not. According to Microsoft, this reduces the software maintenance and management required as well as the attack surface.
The last defining feature is the Windows PowerShell. This is a task-based command-line shell and scripting language designed especially for system administration. Above and beyond a normal text based shell interface (like cmd.exe, CSH, BASH, etc), it gives you the ability to manipulate objects rather than just text (say goodbye to text parsers like awk and sed!). This is possible as its built on top of the .NET common language runtime (CLR) and the .NET framework. It accepts and returns .NET objects and comes with a large set of built-in commands. Gone will be the days where you write cryptic shell scripts that nobody understands (including you too over time) using Win32 ports of the popular Unix text parsers.
Want to find out more about Windows Server 2008? Check out the reviewers guide.
Thursday, December 6, 2007
Seamless sign on to internal web applications using your Windows credentials
Given that:
- the scope is for internal systems only,
- all workstations are part of an Active Directory domain,
- Windows authentication (aka NTLM/Kerberos) is the standard authentication protocol for non-web related access (shared folders, printers, Microsoft Exchange, etc) in our environment,
- Internet Explorer is the standard browser application used in our environment.
Besides cost savings, the other major benefit to this approach is that users only have to sign on to their workstations once (i.e. the normal Windows login process) and enjoy seamless access to any (internal) web applications just like how you access Microsoft Outlook or shared folders today.
Getting this up and running in ASP/IIS based web applications is a piece of cake. See recipe. (No pun intended.) The key steps are:
- Disable Anonymous Access and enable "Integrated Windows authentication" in IIS for the ASP/ASPX application in question.
- Do the same in the web config file if this is an ASP.NET application.
- In your code, grab the id of the user using the code Request.ServerVariables["LOGON_USER"].
- via a servlet filter like JCIFS NTLM HTTP Authentication module, or
- via Andy Armstrong's JAAS login module
One gotcha to take note of. The above works when your application, hosted in the internal network is accessed from the web browser:
- via an internal IP.
- via the hostname of the IIS server.
- via a fully qualified domain name (FQDN) that is a sub-domain under your Windows domain. i.e. your Windows domain is acme.com and your application domain name is abc.acme.com.
In summary, its due to Internet Explorer mistakenly identified your site as an Internet site and the default browser settings prevents it from sending your Windows credentials for security reasons. To overcome this, you have to add the FQDN to the "Trusted sites" or "Local Intranet" lists.
To make life easier for your users, and since they are all on the domain, you can get your system administrators to push this configuration change to their PCs transparently via group policies or logon scripts.
Friday, September 14, 2007
Hey, Thats me in the newspaper! :)
A little background on this photo for the curious. It was taken way back in the year 2000 when a bunch of geeks came up with a brilliant (of course *sic*) idea to capitalize on the booming internet advertising market. The idea revolves around the creation of a new advertisement delivery channel that is capable of sending targeted and highly relevant rich media ads over low bandwidth connections to a consumer's desktop. (this is ground breaking stuff back in those times!) More importantly, the model/system is capable of accurately tracking the end-to-end buy cycles of the consumer (both through the channel and otherwise) hence giving the retailers and advertisers the holy grail of internet advertising or any other mass media form of advertising for that matter - to be able to accurately measure the "look-to-book" conversion rates of a marketing campaign.
Personally, I think the concept rocks given that back in those days, retailers/advertisers were paying big money for blasting the masses with banner ads (usually not even targeted) and yet not having the slightest clue on the effectiveness of the campaigns due to the nature/limitation of the approach.
Unfortunately, we came out of the "stealth" phase at a really bad time. The last quarter of 2000 marked the beginning of the melt down of the dotcoms and one of the hardest hit segment is, you guessed it, internet advertising. Trying to convince investors and advertisers alike to come on board an innovative but ultimately untested model, amid shaken confidence and shrinking profits, is akin to convincing a die-hard coffee drinker to try tea; the product may be sound but the interest is just not there at the time.
Anyhow, back to the picture. Looking at it really brings back lots of memories; all the late nights and long weekends burned in office working our ass off, our regular lunch time fragging sessions (counterstrike, unreal tournament) led by our CEO as well as cooking sessions led by our COO. I have to say that although work was tough then, the company was great; one of the best team I have the pleasure to work with. And hell it has been a long time since.
Well, if you guys happen to be reading this, this post is dedicated to you lot of merry man (and women) and lets make an effort to meet up again!! Its been a bloody long time since I last put on a CT uniform! :)
