• About Me
    • Bios
  • Professional
    • Resumes
      • Data Security Resume
      • Full Consulting Resume
      • Skills List
    • Certifications
      • Certified Information Systems Security Professional (CISSP)
      • GIAC Certified Incident Handler (GCIH)
      • GIAC Security Leadership (GSLC-Gold)
      • Novell Certified Linux Professional (NCLP)
      • Red Hat Certified Engineer (RHCE)
    • Communities
      • A Ticket, A Task Kit
      • Infragard
      • Central Iowa Area Linux Users Group
      • SANS Community
    • HOWTOs
      • How To Configure Firefox – 2005 Version
      • How To Configure FreeBSD
      • How To Configure Mediawiki
      • How To Configure NetBSD – 2004
      • How To Configure Palm Treos
      • How To Migrate Red Hat 6.1 server to VMWare
  • Fun Stuff
    • Allergies
    • Book Reviews
    • Coyote Signs – The Inspiration
    • How to make s’mores
    • How to ship a tiger to Canada
    • Photography
    • Strained Geometries
  • Categories
    • Business Security
    • Coyote Signs
    • Mythology
    • Natural History
    • Psychology
    • Sprint
  • Contact
Menu

Announcement

  • At March 13, 2009
  • By Josh More
  • In Business Security
  • 0

I am giving some presentations over the next few months

  • Group: Infragard
  • Topic: Linux and Security
  • Time: Wednesday, March 18th at 8:00 AM
  • Place: FBL – 5400 University Avenue – West Des Moines, Iowa 50266

Infragard is a joint effort of businesses and the FBI. At this monthly meeting, I will be giving a talk on Linux and Security. The talk is aimed at security professionals who may not be very familiar with Linux. This is an open meeting, so anyone may attend, but they have to RSVP. If you wish to RSVP, please leave me a comment and I will get your information to the person running it.

  • Group: ISSA
  • Topic: Virtualization and Security
  • Time: Monday, March 23rd at 11:30 AM
  • Place: Buccaneer Computer Systems – 1401 50th St – West Des Moines, IA 50266

ISSA is a group of security professionals.  At this monthly meeting, I will be giving a talk on Virtualization and Security.  The talk is aimed at security professionals who may not be very familiar with virtualization.  Anyone may attend an ISSA meeting as a guest, but to attend several, you must join.  Leave a comment if you wish to be my guest.

  • Group: Des Moines Web Geeks
  • Topic: Web Applications and Security
  • Time: Monday, April 6th at 7:00 PM
  • Place: Impromptu Studio – 300 Southwest Fifth Street – Suite 220 – Des Moines, Iowa 50309

The Des Moines Web Geeks are a group of web developers.  At this monthly meeting, I will be giving a talk on web applications and security.  The talk is aimed at experienced web developers and technologists.  We will talk about basic attacks and then play with some tools and hopefully run attacks on some web sites.  We’ll try to have some sample sites running, but for a really good time, get permission from your companies to attack your own sites.


After each presentation, I will post the materials on my website.  However, the more the merrier, so please come and join the discussion.

Small Business Defense – Encryption

  • At March 12, 2009
  • By Josh More
  • In Business Security
  • 0

I think we can probably all agree that the right way to deal with yesterday’s attack is to build a system where only the right and trusted individuals have access to sensitive data. I think we can probably also agree that this will never happen in your average small business. Rearchitecting your data storage system, doing data classification and identifying user roles is just too much work, and any project that requires that much churn and does not impact the bottom line will never get approved.

So, let’s accept the reality that you’re not going to follow my advice and you are fully committed to an insecure paradigm. How can you minimize your losses?

They key here is to look for a system that allows your data to be readable by the right people, and unreadable by the wrong people. Naturally, this means encryption. There are a lot of encryption solutions out there. Lots of people will tell you that theirs is better than the others. Some will throw bit length at you, some will talk algorithms, some will focus on speed.

None of this should matter to you.

You want a solution to a problem, not a fight over mathematical intricacies, so here’s the deal.

  • The system has to be publicly verified. If the word “proprietary” appears anywhere in the marketing material, it has probably been unverified and is too weak to use.
  • The system should be inexpensive. If you have to count where you’re using it and pay accordingly, you won’t use it everywhere you need to.
  • The system should handle key management. If an attacker can get the key to unlock the data, you’ve lost.  If the valid users lose the key to unlock the data, you’ve lost.

That’s it.  Three simple rules.  Nothing else matters, because right now you don’t have encryption technology in place so any encryption technology that you deploy will be a win.  Don’t spin your wheels picking solutions.  Get a list together, throw out everything that doesn’t fit these three rules and randomly pick one of the very few solutions remaining.

Then, after you’ve used it for a year or three, you should know enough about encryption to pick a solution that truly matches your business needs.  Best of all, you won’t be out much money and you won’t have lost much data during the learning process.


As a quick note to get you started, TrueCrypt is free and can encrypt entire hard drives and GnuPG is free and can do a lot (it can be hard to use though). On the commercial side, PGP has a 30 day free trial, after which is cripples itself. It’s still usable, but not quite as usable as it used to be.

Small Business Attack – Type of Data: Proprietary Information

  • At March 11, 2009
  • By Josh More
  • In Business Security
  • 0

All businesses have it. There’s information that is important to the business. Maybe it’s a contract. Maybe it’s a client list. Maybe it’s a product roadmap. Whatever it is, odds are that you’d lose tons of money if a competitor got it. However, it’s also vital to your operations. There are employees that need access to the information to do their jobs. So, there is likely one of to scenarios at work:

1) There’s a shared drive somewhere that has the proprietary information on it, and is open to all people in the company.

2) Each employee has their own copy of the information, so there are multiple versions on multiple workstations.

So, if someone can access your network as a user or even just take an employee’s workstation, they get your data and you lose tons of money.  How likely is that?

  • Have you ever had a virus/malware infection in your business?
  • Have you ever lost a laptop?  A smartphone?
  • Have you ever had an employee that worked for a week or two and then left suddenly?
  • Have you ever had a breech of a web server?
  • Have you ever received an email with a funny attachment?  Did you launch it?

Odds are, that if an attacker wanted that data, they could get it easily. But with so many attack vectors, how do you protect the data and still allow people to access it?

Security lessons from Nature – Playing Dead

  • At March 10, 2009
  • By Josh More
  • In Natural History
  • 0

The natural world is resplendent with stories of animals that play dead. Some are well known, such as the opossum and the hognose and grass snakes. Others, such as the lemon shark, parasitic wasps and brittle stars are less well known. What is interesting, though, is that this behavior is common across many families of animals.

The root of this behavior is that an animal that is dead is likely less appetizing to an attacking predator than one that is alive. Some even go so far as to foul themselves and release blood from their mouths to be very convincing. In many cases, it works. The attacker looks at the critter, maybe paws it a bit, and then wanders off to find something better.

Wouldn’t it be nice if we could use this same technique in our everyday businesses?

Well, in a way we can. Many systems are built to detect attacks and deny traffic. This is much like a turtle hiding in it’s shell. The attacker knows that the attack was detected, and all it has to do is wait or attack from a different direction when it’s blocked. However, if you can make the system unpalatable, the attacker might just stop altogether. What if, instead of just doing a deny, you redirected that traffic to a honeypot or system in an error state. If the attacker started getting back error pages or saw services stopping, they might conclude that they broke something. Thus, instead of constantly trying, they might go on to something else.

Now, it’s important to note that, like most defenses, this one is not perfect. Some attackers would just break into the system faster than you could “play dead”. Others might persist in the attack until they get in, whether or not you are dead. This defense, much like in nature, would only function against non-persistent attackers. It might, however, be a good way to identify which attackers are persistent. That might help you determine and reasonable and targeted defense system.

Mythic Monday – Cupid, Psyche and Detection

  • At March 09, 2009
  • By Josh More
  • In Mythology
  • 0

So I was relaxing last night reading a bit of Lucius Apuleius, and got to the story of Cupid and Psyche.  Like many myths that have grown over the ages, this one is terribly long and complex, but I think we only have to look at the first part to learn the important lesson.

Leaving out all the important mythological bits about Venus being jealous and controlling love and Cupid’s arrows having a similar, but subtly different power, let’s get right to the point where Cupid and Psyche are living together.  Cupid and Psyche love one another (mostly due to certain arrow errors early in their acquaintance), but Cupid doesn’t want Psyche to know who he is, or it’ll upset his mom (Venus). Therefore, the rule is “Cupid gets to sleep with Psyche every night, but she’s not allowed to know who he is”. The second rule is “Cupid gets to abandon Psyche during daytime.” Though I may not personally agree with the rule, the point is that a security rule was in place.

Of course, this being a mythological tale, I’m sure that it shall surprise no one to learn that Psyche decides to spy on Cupid as he sleeps. She wanted to know that he wasn’t a snake (hey, who wouldn’t?), and lights a lamp (or candle, variations differ). Then, as would be expected, a drop of oil (or wax) falls on Cupid who wakes up and flies off, leaving her bereft. The reason being that “love cannot exist with suspicion”.

So, what we have here is a story where a rule was in place, the rule was violated and consequences occurred. By now, we as an industry are pretty good at making security rules. We’re harden systems, put up firewalls and write policy. We have all sorts of rules.  Examples:

  • No personal email at work
  • Only administrators may access production systems
  • No wireless connections allowed, this includes 802.11*, cellular devices and FM radio
  • All passwords must be a 48 characters long, contain a mix of upper case and lower case characters, numbers, punctuation and ǝpoɔıun

But, how good are we at checking that the rules are being followed? How often do you check firewall logs?  Do you regularly review which users have which permissions?  Do you scan for rogue wireless access points?  Do you run regular password audits?

Despite how stupid we may think Cupid’s rule may have been, he had a detection system in place, and was alerted to the spying.  Thus, he was able to take action.  Though I personally would have used a light-triggered system instead of waiting for my flesh to be burned, his system worked for him and he was able to enforce policy.

Can you?

Site Review – Plaxo

  • At March 06, 2009
  • By Josh More
  • In Business Security
  • 1

At first glance, Plaxo looks like a strange clone of Facebook and LinkedIn.  The second glance looks much like the first.  It identifies people you may now, allows you to make micro-bloggish updates and tries to organize your contacts for you.  All in all, a useful site, but nothing particularly special when compared to the many other sites that do that.

If you dig deeper though, you discover that it’s really more of a hybrid than you thought.  Plaxo takes the idea of “mash-up” to a whole new level.  When you setup your profile, you can link to numerous other social media sites.  It can tie into Flickr, Delicious, Live Journal, MySpace, Google, Facebook and more.  You can use it to keep track of your friends’ updates all in one place.

Of course, to do this, it also allows your friends to keep track of your updates.  Which sounds nice until you realize that you are basically also giving an unknown company complete access to your data on multiple sites… effectively making isolating a data leak impossible.

There are some security features in Plaxo that should help minimize this.  However, like most things, it all comes down to how much you trust the company.

On the plus side, Plaxo doesn’t list very many partners, just Comcast, WebIS Mobile Sync and Yahoo, so your data is likely safer than at some services.  The privacy policy is pretty good (the permanent opt-out is particularly nice), as are the terms of service.

On the negative side, Plaxo only functions well if all your other friends are also using Plaxo, so it tends to be a bit spammy.  It also requires ongoing maintenance for managing security settings.  It’s all well and good to post an update tagged as “friends-only”, but having to manage which people are in which friends groups on different sites is troublesome enough.  When you have an aggregator that has it’s own permissions model and doesn’t stay in sync with the groupings on other sites, the security concerns get far more complex.

So, unsurprisingly, it’s another one of those tools that has some risk, but the benefit may outweigh the risk… but only for a small percentage of the people out there.  If you decide to use Plaxo, go for it… but be careful.

Small Business Defense – Source Repositories and Honey Tokens

  • At March 05, 2009
  • By Josh More
  • In Business Security
  • 0

As mentioned yesterday, source code is a nice juicy target for an attacker. So, what can you do about it?

The first thing to do is to make sure that you have the ability to detect whether an attacker was able to make changes to your code. To do this, you need a way to ensure that you have a good clean reference copy of what the code should be. The easiest way to do this is to use a revision control system. Though there are many, I prefer subversion, as it is both free and fairly easy to use. Once your code is checked into your revision control system, it’s easy to look for differences in running code and stored code. In addition, if you are compiling your code (or converting it into bytecode), you can keep all the code in the system. Then, you can add strict access rules to the repository and gain an extra layer of defense.

So, that takes care of protecting your assets and helps you confirm if they are stolen, but how do you detect the theft in the first place in case someone does get through? That’s where a “honey token” system comes in. This sort of system is often installed at the edge of your network and simply checks all outgoing traffic for certain key words and phrases. It’s fairly easy to come up with specific strings to embed into your source code (or other intellectual property of interest), and then set these systems to look for them. They’re not perfect and may miss transfers that are compressed or encrypted, but they’re better than nothing.

And after all, protecting your assets is a matter of incremental improvement.

Small Business Attack – Type of Data: Source Code

  • At March 04, 2009
  • By Josh More
  • In Business Security
  • 0

One of the types of data that may exist on your network is that of source code. Though it’s more likely to be there if you are an I.T. company, a great many companies out there have custom written business applications. Though users will generally use the application either by clicking an icon on their desktop or accessing it via a web browser, the real “nuts and bolts” of the application likely lays in the source code.

Traditionally, the term “source code” refers to the raw code that is written by people and later compiled into another format to be used by a computer. There are other forms of code, like bytecode, interpreted code, etc. However, the point of this entry is not about the differences. For the purposes of this post, “source code” means “business logic that both humans and computers can read”. (I’m sure I just upset some tech purists that read this blog.)

The important thing to realize, as a business owner, is that the applications that you use often reveal a huge amount of data about how you do business. There are likely flowcharts and checklists out on a shared drive somewhere. There may be a technical manual or five somewhere. However, we are in a digital age, and a lot of effort is being put forth to automate repetitive tasks and use technology to accelerate the speed with which business can be done. In short, more and more of the key business activities are being move to the computer. This is great for efficiency… but it also provides a great target for an attacker.

If an attacker gets a checklist, they might learn what problems your business commonly has. They might be able to misrepresent themselves as a client and abuse the checklist to gain further information about your business. They might find their own flaws in your procedure and use it to make your competitors more efficient. But if they can get the source code to one of your systems, they gain much much more.

The code that runs your systems might contain usernames and passwords that interface with other systems. It contains detailed business logic. It might even mention identified, but not repaired problems in your business. An attacker could not only duplicate much of your business, but they might also be able to integrate with your billing and sales systems, and steal money and client lists. They might be able to access exist customer accounts and take anything they want.

In short, they’d be able to do anything that you can do, and since they don’t have the overhead to develop it in the first place, they could to it better, faster and cheaper.

How are you protecting yourself?

Security lessons from Nature – The Pacific Barreleye

  • At March 03, 2009
  • By Josh More
  • In Natural History
  • 0

How could I not read about the Pacific Barreleye without mentioning it here?  The fish, like most, lives in the water.  Like many, it lives in the deep water.  Like very few, it likes to eat siphonophores, a type of stringy jellyfish with lots of stinging cells. Like no others I know, it has a transparent head.

Really.

The theory here is that it uses the transparent head and scales to protect it’s eyes from it’s stinging prey.  The video (which is here) looks a bit like computer rendering to me, but I know that there are transparent fish (boring link here) and mentions of this fish predate the recent news, so odds are that it’s real.  What’s fascinating is that this critter is using transparency as a defense as well as an attack.

For years, people in the I.T. industry have been saying that we need to be more transparent in our business dealings.  Attempts to make transparent software have resulted in open source software that is taking the market by storm.  Opening up business processes have shown similar results.

In the security field, “transparency” often refers to security controls that the user doesn’t notice.  These may be subtle barriers around the wrong actions tied with subtle rewards around the right actions. Sometimes it involves considerable monitoring and reaction only to known danger. In the physical world, these can be RFID tags and sensors that help prevent theft. In the electronic world, it can involve “watermarking” intellectual property or encrypting data for archival purposes. Security doesn’t have to get in the way, and making it as unobtrusive as possible can often make it more effective.

Of course, nature figured this out long ago.

Ten Stupid Ideas to Harm Iowa

  • At March 02, 2009
  • By Josh More
  • In Business Security
  • 1

As I was reading the March 2, 2009 edition of the Des Moines Business Record this morning, I was surprised to read the editorial section “Iowans offer ideas on budget”. The gist of the article is that the Democrats and Republicans are soliciting ideas for ways to save money. The general tone seemed to be that Iowans have some good ideas, and express some doubt as to whether the legislators would actually listen to them.

Now, this isn’t a political blog, it’s about security (as well as nature, technology, business and mythology… but mostly about security). The hardest thing about working in security is that it’s impossible to be perfect. In many cases, one has to look at the problem and pick the least horrible solution. If you’re really really lucky, you can align technology and security with the business goals and work towards a common goal. Mostly though, it’s about looking at tradeoffs.

Reading this list of suggestions is a wonderful exercise in this type of thinking. Let’s take a look at the tradeoffs around what seems to be passing for “prudent thinking” among today’s Iowans.

“Set up toll booths on the interstate highways. One variation: Only charge out-of-state drivers.”

The intent here seems to be to raise revenue for the state by leveraging our interstate system which, if I recall, was largely funded by Federal dollars. Assuming that it is even legal to do this, is it wise to effectively to institute a tax on mobility? For years I’ve heard concerns about the “brain drain” in Iowa. Do you really think that smart kids will stick around in a state that actively hampers their movement?

Also, even if it’s only a tax on out-of-state drivers (which has some implementation difficulties), is it a good idea to make it economically worthwhile for truckers and travelers to re-route through Minnesota or Missouri?

Lastly, how would we pay for all the toll booths?

“Suspend maintenance of bicycle trails for a year and concentrate on the roads and sidewalks instead”

Right. We are living in a state with increasing numbers of people who are out of work. With a growing population who can’t afford to repair failing vehicles. Where pollution is on the rise and gas prices are expected to follow soon. And lastly, where obesity and heart disease are leading health concerns… and the solution is to take away the bike paths?

We’d be saving tens of dollars now and then paying thousands of dollars to repair the ecological damage and deal with the health impact.

“I am a 30-year DOT (Iowa Department of Transportation) employee. … There are far too many do-nothing positions in the DOT that could easily be eliminated, saving millions of dollars.”

I’m all in favor of efficiencies, but I have to wonder how shifting millions of dollars from minimally productive work towards unemployment benefits would be a net gain for the state. Maybe, it might make a bit more sense to turn the “do-nothing positions” into “do-something positions” instead?

“Audit the recent tax returns of the upper 10 percent of Iowa’s taxpayers.”

This logic only holds up if you believe that the upper 10 percent of Iowa’s taxpayers are crooks. In fact, if you’re in the upper 10 percent, you’re likely NOT a crook. The crooks would be the ones who find the loopholes to appear in the lower 90 instead. The really big crooks would be the ones that have managed to not show up on the tax rolls at all.

I suspect that this suggestion would result in a lot of busywork for the auditors and, in the end, would result in MORE crooks getting away, not boosting the state’s coffers.

“Establish a whistle-blowers committee to reward everyone who reports waste of public money.”

Um, reward them how exactly? With public money? With tax credits? Who pays for the committee?

I think I have some waste to report.

More seriously, security is all about checks and balances and there ought to be a good way to report such wastes. Personally, I think that reporting such things to the media and our elected officials is working pretty well.

“The salaries of Iowa’s elective officials are generally the second or third highest (compared with the seven surrounding states), and the judges are consistently the second highest. … The salaries need to be reigned in.”

Suppose I’m the CEO of a large company make $500,000 a year and am engaged in some sort of illegal business practice. Suppose this practice puts you out work and you have to sue me. Now suppose that you have very little money, and your only hope at economic survival is for justice to be served.

Now suppose the judge makes so little that I can spend ten percent of my yearly income ($50,000) to bribe the judge to rule in my favor. Suppose I could spend less than one percent of my yearly income ($5,000) and give “campaign contributions” to our elected officials to change the laws in my favor.

I don’t know about you, but I’d much rather live in a society where our elected officials and judges are as hard to corrupt as possible.  If this means paying them more, then by all means, let the dollars flow.

“A 10 percent pay cut for every state employee making a salary of more than $100,000.”

OK, so there’s something magical about the $100,000 figure. I can understand that. I can also understand how people that make substantially less can be upset that many people are making more than that. However, the thing to remember is that people don’t tend to just step into such jobs. Such a high salary is often the result of years of hard work and compromise in other areas of their life. A sudden drop in salary from $100,000 to $90,000 is a really good way to tell employees “you’re not valued here and you should go back to the private sector where you could both be valued and make around $200,000”.

The follow-on question to ask here is whether or not we could afford to replace all of the $100,000 workers at the state, and what that would cost. I bet it’d be a heck of a lot higher than the savings that we would get by cutting their salaries.

“Stop allowing state employees to drive state vehicles to and from work.”

As I understand it, such a perk is one of the reasons that state employees accept lower salaries than the private sector. If we take them away, are we prepared to raise their salary to compensate? Are we prepared to replace them entirely should they leave?

Also, might it not make sense to encourage people to drive the state vehicles as often as possible? The more ethanol consumed the more our farmers make. The more cars that need repair, the more work the dealerships make. The more cars we buy, the more the car factories make.

“I recently read that the state wants to provide ‘diversity’ training to all 21,000 state employees at the cost of $250,000. Surely the state can come up with a better way to spend $250,000.”

The United States of America was founded on immigration (along with other, less pleasant realities). No one person can do everything, and no one culture can be the best at everything. Immigration provides for an inexpensive workforce that is also often skilled in special ways. Immigrants will often make the tradeoff of a lower salary for a better (or different) way of life. Some will work hard at multiple low-wage jobs simply to provide a better life for their children. In short, immigration is a wonderful thing and an often-overlooked driver for our economy.

The states on the coasts benefit from this more than Iowa, because they’re easier to get to. As such, they’ve developed a culture that is perceived as more welcoming of others than the Midwestern states. “Diversity Training”, as dumb as it sounds, is intended to counter this perception.

Like it or not, Iowa has a branding problem. If we want to be the fast-moving, accepting, challenging environment that I’ve been hearing about. You know, the state that won’t drive all the kids away after college, we have to change the perception. If such training lets us attract just five young people earning $50,000 a year (or ten at $25,000), we’re making progress.

“Use more videoconferencing, rather than sending state employees to meetings that require driving and overnight stays.”

I actually like this one. Iowa has a wonderful distance-learning solution with the ICN. That could be leveraged to reduce travel and overnight stays, and save money across the board.

What I like most about it is the phrasing “use more”, as opposed to “require” or “use only”. There are certain areas where face-to-face meetings are often most effective. We should not have to give up effective meetings and trainings to save money. We should simply use the technology where it makes sense to do so.

“Eliminate most mowing along roads and highways.”

Wow. Just wow.

I grew up in the country. I’m used to unmown ditches where the weeds and grasses use our prairie soil to reach truly amazing heights. I love nature. I love the sound of the tall grasses rustling in the breeze. I love animals. I love deer. I do not love hitting them when I’m moving at 70mph. I’m also not a fan of rats, ticks and opossums.

We mow along roads and highways for a reason. Public safety should not be compromised to save a few bucks. Besides the salaries that we would save would, again, be converted directly into unemployment benefits.


Surprisingly, there’s no suggestion for the one logical step towards a budget shortfall. Taxes will have to go up. No one likes paying taxes, but if the alternatives are:

  • Driving away interstate commerce
  • Having an unhealthy population and environment
  • Laying off tons of people
  • Producing busywork for tax auditors
  • Spending money to track where our money went
  • Having corruptible judges and congresspeople
  • Driving away the high performers
  • Owning a fleet of never-used state vehicles
  • Driving away energetic immigrants who could jumpstart our economy
  • Increasing interstate deer-related fatalities and intra-city disease

I’ll gladly pay more.

Luckily, I live in a representative democracy that, like security, is based on checks and balances.  I trust my representatives to do what is best for the state.  And they, in turn, trust me not to vote them out if they decide to make unwise cuts to produce short-term gains that will cause larger long-term losses.  After all, it was that sort of thinking that got us into this mess in the first place.

And we’ve all learned our lessons, right?

« Previous
Other Sites: Business, Photos/Conservation
Search

Get the feed (RSS):



Josh More - Entropologist
Expert in removing chaos from
I.T. and business systems.

Recent Posts

  • Thinking about enterprises
  • New Book: Breaking In to Information Security
  • Security Metaphors
  • Book Review: All Yesterdays
  • Book Review – Blackhatonomics
  • Three Stories about Growing Up
  • Internet Theft and the Holidays
  • Sophos: Pushing the Boundaries
  • Controlling the Security Story
  • Video – OWASP – July 16th, 2012

Archives

Categories

  • Business Security
  • Coyote Signs
  • Mythology
  • Natural History
  • Psychology
  • Sprint
  • Uncategorized
Copyright © 2013 by Josh More