Technical Writing

The more I write the more I learn about my style and how to effectively get my point across. I’m now also trying to get in a habit of writing more so that I can continue to hone those skills. I’m constantly learning. I recently read @hacks4pancakes blog post on reviewing CFPs submissions and started my thought process of what I go through when I write. I also just took a SANS course with @robtlee and he mentioned something about his writing experience. Hence this post.

I remember a time where my writing was so conversational that it was difficult to follow my thought process. I also thought that the more you wrote the better your writing. I still believe that this was a carryover on the public-school system which concentrated on word count and pages more than the content. I’m glad I’m out of that habit. Tools can help with some of the basic grammar mistakes. With the assistance of tools like Grammarly and others in the market then your writing can improve a bit, but you still must generate the ideas in the document.

One of the concepts that I try to abide by is “say what you’re about to say, say it, and then summarize what you said”. I feel that this is effective in normal writing but also translates well into technical writing. It is easier for someone to follow your thought process if you provide them with a lead-in.

Decide on the aim and audience. Just like doing a digital forensic report where you have a set of questions in which you are looking to address then your writing should be this focused. I try to write the topic or question I’m looking to answer at the top of the document during the draft, so I maintain my focus on the goal of why I’m writing. Also, knowing who is going to read your report/document is helpful so that you can tailor your writing towards that audience. If I’m writing for a technical audience, then I don’t have to explain some of the already assumed knowledge. For example, if the report/document is for another security professional then I don’t have to explain what an IP address consists of.


Feedback. Always try to get feedback from someone. If you cannot find someone to read your writing, then Microsoft Word has a dictate feature which can read back your document. This can help with using a different feedback method of hearing your own words read back to you. This can be an eye opener when you must hear your thoughts coming alive from your writing.

Use plain language. Again, this goes back to the public school system where having a wide vocabulary was graded on a higher scale. This goes with my mantra of keeping things simple. A dictionary and/or thesaurus is useful sometimes, but I try not to rely too much on those. If my 11-year-old daughter can understand what I’m trying to say, then in my eyes the writing is understandable for an adult (sometimes that’s debatable 😊). The added benefit with that is that she is being exposed to technology early.

Using a passive voice is the most common mistake that I make. This is something I continuously try to work on to get better. Having a review process has helped me with the active voice in my professional writing.

With the post, I just wanted to document some things that have helped me write better. I’m not where I would like to be so I will continue to get better and be open to feedback. I also hope that I can help others who might be struggling with their writing. Just keep on writing and seek feedback.





Enable VMware EVC by default on your new vSphere Clusters

If you don’t have a compelling reason to not enable EVC on a cluster, then I don’t see why you wouldn’t enable it. EVC allows you to future guard your cluster so that it allows you to introduce different CPU generations on a cluster.

There has been no evidence that EVC negatively impacts performance. But like with anything you should trust, but verify the application workload has the acceptable level of performance that is required.

There are impacts as to whether you have enabled EVC on an already existing vSphere cluster with running VMs. There is no outage if you do decide to turn on EVC on an existing cluster, but running VMs will not be able to take advantage of new CPU features until the VM is powered off and powered back on again. The opposite will occur if you decide to lower the EVC on an already EVC enabled cluster so the VM will be running at a higher EVC mode than the one that was explicitly lowered to until the VM is powered off and powered back on.



Using the Socratic Approach to Problem Solving

Using the Socratic Approach to Problem Solving

Applying a Socratic approach to problem solving can help to identify gaps and improve problem solving. It can help to spark new insights to produce further knowledge of the problematic area of interest. This approach focuses on asking a person a series of open-ended questions to help promote reflection.

Step 1: Identify the elements of the problem, issue or question

Things you may do in this step may include:

  • Breaking the problem down into pieces, elements or components.
  • Look for missing information or gaps in what you know.
  • Make note of the information that you don’t have or can’t find

Questions you may ask in this step include:

  • What is the problem you’re trying to solve?
  • What information is missing?
  • Is it possible to get the information that I don’t have?

Step 2: Analyze/Define/Frame the problem, issue or question

Things you may do in this step may include:

  • Decide which pieces of information are important
  • Avoid premature solutions
  • Identify the complexities of the problem

Questions you may ask in this step include:

  • What am I trying to solve?
  • Is the information so far gathered relevant to the problem?
  • What are all of the possible causes of the problem?

Step 3: Consider solutions, responses or answers

Things you may do in this step may include:

  • Analyze possible solutions
  • Check the implications of each possible solution

Questions you may ask in this step include:

  • Are there any other possible solutions?
  • What might be the consequences of these solutions?

Step 4: Choose an actual solution to implement

Things you may do in this step may:

  • Question your choice of solution
  • Consider the problems that may result from your choice

Questions you may ask in this step include:

  • Why do I prefer this solution as compared to the others?
  • What are the possible risks of this solution?
  • How is this solution supported by the facts so far?

Step 5: Implement your choice

  • Monitor the progress of the implementation

Step 6: Evaluate the results

  • Did I solve the problem?

This is just one way to go about solving a problem when you get called into a situation where you need to solve a problem. There are other ways to skin the cat but this one is easy enough to follow and can provide some fruitful information to help solve the problem

Ethical Aspects of Monitoring

Nowadays it’s common knowledge that when you log onto a corporate network that your activities can and will be monitored. Technology has created new possibilities for human interaction and monitoring employees has become a necessity in order to maintain legal, regulatory, security and performance. A written code of ethics and providing the training will help employees understand what is expected.

The organization must adapt the features in technology to suit their community, norms, and culture of the organizations while still meeting any legal requirements under the law. Some sectors have a requirement to provide a continuous monitoring systems that is constantly monitoring the corporate network. So an “it depends” answer would have to apply to the question of the best method of obtaining the proper permissions to monitor user actions.


Monitoring user actions of employees’ behavior will continue to be a controversial topic. To ensure the buy-in from the employees then every level of management and non-management employees must understand the ethical implications of the decision to monitor as it relates to their personal and professional values.

The resounding threats that are present throughout an organization requires that it be monitored properly to ensure that the capabilities are the to ensure the bad guys are not getting access to corporate information.

I’m not a security professional by trade, but I definitely understand the challenges that the security personnel are concerned with so I can identify. So I think this makes me a better architect by understanding the key areas in which a system gets deployed.

Security Events, Baselines, and Anomalies

Monitoring the IT systems is part of the due diligence that most organizations are familiar and have well established practice when it comes to the procedures and tools to use. By observing anomalies from already established baselines then incident responders can better generate the breadcrumb for the root cause. Capturing the evidence to put the puzzle pieces together is a vital element of continuous monitoring.

Security baselines align the responsibility to be shared outside of the IT management area so that business management has input. This in turn should make the security controls which are used to be more appropriate to the business needs and will provide a senior level sign-off that the security standards are enforced throughout the organization. The idea of having a basic mandatory level of information security will allow the organization to provide the layers of security to establish a defense in depth layered approach to the security framework.

These security baselines, which should be validated early on in the development of a new system, will drive the continuous monitoring and irregularities in usability trends. When an irregularity is determined, then a closer look needs to then take place in order to determine whether the event is a true incident or a potential false positive.


A Security Information and Event Management (SIEM) solution provides real-time analysis of security alerts generated by applications and network hardware. These reports from the SIEM solutions can be used to establish a baseline and to monitor for compliance purposes. The log files generated can provide the resource when it comes to troubleshooting and supporting other incidents. With the aid of a log management solution that can collect logs from all sources and organize these logs in a centralized, scalable manner, then it allows the responders to paint the picture of what is causing the irregular behavior from the established baselines.

The amount of activity that these log files generate is enormous. The presence of logs in all environments allows thorough tracking and analysis if something does go wrong, which can then be used to determine the cause of the compromise.

Enterprise SysLog systems can be used to provide data aggregation from many different sources, including network, security, servers, databases and applications to provide the ability to basically monitor everything. By aggregating these logs, then it helps to avoid missing subtle but important ones. While having the logs centralized then a correlation to look for common attributes and link events together into meaningful bundles of information. Also, the automated analysis of correlated events can produce more substantial and detailed alerts.

Ultimately, utilizing an enterprise syslog tool to parse these vast amounts of logs can provide the IT department with a set of automatic eyes in the sky to sift through all of the data and help to identify what is most important to have a prioritized response. A trend scenario can be put on a dashboard to have a visualization point of view to begin tackling those events in a systematic approach. Granted a set of human eyes will have to validate all of these findings.

iSCSI Security in VMware

Fibre channel seems to be losing its popularity and more people are turning to iSCSI as the block storage protocol of choice. If you don’t already have an FC fabric then why introduce that into your design now. So when choosing to use iSCSI for storage connectivity or any other storage protocol then you’ll have to take security into consideration when performing an implementation.
Security is a pillar of infrastructure design qualities in which every system should be properly designed from its inception. Depending on the data or system you’re trying to protect then the protection mechanism should be proportion to the criticality or importance to the organization. To secure your SAN you should:

  • Assess configurations
  • Test secure mechanism effectiveness
  • Identify holes
  • Quantify risks
  • Implement practical security solutions for high risk exposures

The EMC article titled “Building Secure SANs” has a nice table illustrating the different security categories and the mechanism to protect it. I’ll just should the IP SAN section:

Security Category IP SAN Mechanisms VMware Supported
Availability QoS Yes, also SIOC and NIOC
Authentication CHAP












Authorization iSCN

LUN Masking

VLAN Tagging

Port controls





Auditing ACL



Encryption IPSec

In-transit Algorithms

At-rest Algorithms

Integrity IPSec (AH)

MD5 hash

SHA-1 hash


Security should be used in a multi prong approach with protection at multiple levels. By enforcing good security standards and principles you can have a network that can help in mitigating your risks to vulnerabilities in your iSCSI storage.


Requirement Elicitation

Some of the challenges associated with requirement gathering or elicitation happens in the development life cycle. During the beginning stages, it is of the utmost importance to get a good grasp of the requirements. Getting the requirements wrong or not properly captured can set a project up for failure from the beginning.

This YouTube video is funny because some of us have been there:

Requirements gathering is all about determining the needs of the stakeholders to solve a problem or achieve an objective. Once the needs have been identified, then it’s a matter of succinctly identifying the specific requirements while minimizing any assumptions. Sometimes an iterative approach helps the process by continuously checking in with the stakeholders throughout the project to determine if the progress is meeting their requirements. The amount of iteration depends on the complexity of the project.


Requirements can be broken down into functional and non-functional requirements. A functional requirement specifies what the system should do. A non-functional requirement specifies how the system should behave. A method for requirement prioritization is the MoSCoW technique in which you break up the requirements into:

  • MUST (M)
  • SHOULD (S)
  • COULD (C)
  • WON’T or WOULD ( W )

This is a good step to help prioritize those requirements so that you know what to focus on the most, which is the must haves. On top of the requirements you also can’t forget the assumptions, constraints, and risks.