Center for Applied IT launches new online tool for Maryland’s 1200 veterinarians

May 21, 2012

Timothy

Maryland’s veterinarians will have an easier time renewing their licenses this year – because for the first time they will be able to renew them on line.  This month marks the opening of a new website that will allow Maryland veterinarians to renew their licenses by submitting the required information and payments.  The website was developed by DECO’s Center for Applied Information Technology (CAIT) and the Maryland Department of Agriculture, which is the state agency charged with licensing and regulating Maryland’s over 1200 veterinarians, as well as veterinary technicians, and veterinary hospital facilities.

The website can be accessed by veterinary professionals using an address that is provided with their license renewal information.  Once they are logged into the site they can update required information that is associated with their license, and make a payment using a credit card.  When the information and payment are submitted the payment record is processed and the license renewal is recorded.

The new internet application was primarily developed by Genna Melamed, one of CAIT’s application developers, who worked closely with Courtney Stevens, a software developer at MDA.  Genna leveraged experience he has gained during his decade working on CAITS projects in support of numerous other state licensing and regulating agencies such as the MVA.

Genna used Microsoft .NET based technologies to develop the application and supported it with a SQL Server database.  Working together with Courtney, a data synchronization process was developed to keep the applications data base coordinated with the master veterinary database maintained by MDA.

The application has been online since earlier in the month and has already been used by several veterinary professionals for license renewal.


How Secure is Your Computer Network? Find Out with This Tool

April 30, 2012

Matt

Is your network PCI (Payment Card Industry) compliant, are you sure?  If you are like most of us you have heard of this and other similar regulations but don’t really know what it means without taking a course on the subject.

I have been researching some tools to perform a network vulnerability assessment for a graduate class and found one worth mentioning.  It comes from a reputable company based in Columbia, Maryland called Tenable Network Security and it can be downloaded here.

The Nessus Professional Feed from Tenable Network Security is a lightweight, no-frills network vulnerability scanner. It features the ability to scan local and remote systems for the latest vulnerabilities. With the Professional Feed, users also get access to a compliance configuration audit pack, which can add credential-based auditing for NIST FDCC/SCAP, DISA STIG, CIS, and PCI compliance, along with many others.  I really liked the idea of being able to add plug-ins for regulations that I am not an expert in, such as PCI compliance.

This tool is a very straightforward install. The small server component can be installed on a medium-size machine with at least 2 GB of memory. The installation itself is easy and only takes a few minutes after launching the executable installer. After the server is installed, licensed and started, it instantly downloads the latest vulnerability checks and is ready to go. The web GUI can be accessed from any machine on the network, and scanning can begin.  I really like this product and it was simple and straightforward to get up and running.  I learned a lot and it didn’t require me to know cryptic Linux commands or jump through hoops to get it running.

Check it out if you get a chance.  They now have a cloud-based option if you don’t want to maintain a Nessus server.  Download it and run a test scan against your network.  You can scan your home network for free.  You can run a scan using a default out of the box policy or get creative and create your own scanning policies.  Start looking at the reports and fixing the high priority items in your environment.   Be pro-active about network security and cut the “low hanging fruit” off the security tree.  Then get a ladder and go after the rest.

The downside to this tool is that it is not free for business use.  It costs $1,200 a year for a subscription.  However, this is a small cost compared to what you may pay in fines and loss of reputation when a hacker penetrates your network.  For instance, banks can be fined up to $100,000 per month for PCI compliance violations.  For a little upfront effort and cost to comply with PCI, you greatly reduce your risk from facing these extremely unpleasant and costly consequences.

Happy and Safe Computing!


Strategic Planning 101: Prioritizing Objectives

April 9, 2012

Guest Blogger, Larry Martin

In my previous blog (Strategic Planning 101—taking the first step), strategic objectives were captured from all levels of the organization.  So what do you do with those strategic objectives?  The next task in Strategic Planning is to create a smaller list of no more than ten (10) objectives.  These 10 objectives will be narrowed down even further, creating a “Priority List” of 5 objectives that the organization can begin to implement.

How to do it?
One way to create this “Priority List” is to have all those involved with creating the original list divide into groups.  Then, depending on the number of groups, subdivide the large list of strategic objectives by the number of groups.  Each group will be responsible for reducing their list down to 1 or 2 objectives they feel are important for your organization.  One of the benefits of dividing up the list is that it mixes up the objectives such that a group may not be working on an objective they created.

After the smaller groups have completed their reductions, all the groups will reconvene. With the larger group assembled, the facilitator will lead the discussion, asking each smaller group to provide a reason why an objective should be placed on the “Priority List.”  The group as a whole will come to a consensus as to what objectives will make it to the “Priority List.”

Image credit: David Castillo Dominici

Why do it?
Having ten objectives that are important to the organization is great, but implementing all ten can be overwhelming.  Further narrowing the objectives down to a “Priority List” consisting of three (3) to five (5) objectives will allow your organization to gain success through implementation.

How to make it fun?
Control over the group discussion is critical, so that everyone is given an opportunity to speak without interruption. 

Your facilitator will need to manage and control the discussion in order to reduce the stress of a large group discussion.  This is where the group can have a little FUN.  I have seen sessions where the use of props such as stuffed toys are used to indicate a person has the floor and no one else can speak.  Conversely, I have also seen it where everyone has a stuffed animal and can throw into the center of the room to call the current conversation to a close (or if someone has been talking WAY to long).  The point is, make the discussion fun, light and productive.  You know your organizations culture, work with what you know to make the sessions count.

As external events, market forces, and the economy can change the course of the plan, it is recommended that a Strategic Plan not project any further out than five (5) years.  Also, all of these factors are a good reason to revisit the plan in validating that the objectives remain important and relevant.  If not, update the plan to project out another 5 years.  It is important to remember however not to discard any objective that does not make it to the “Priority List”.  As the organization successfully implements the priority objectives, or external/internal events affect the Strategic Plan, the organization can then decide what remaining objectives to implement next.

Now that we have a Priority List of strategic objectives, we are ready to create the . . . Action Plans.  Action Plans will provide the road map on how objectives will be implemented and the topic for my next blog.  Stay Tuned . . .


What does “platform” really mean when it comes to IT?

April 2, 2012

Timothy

The “IT” definition of a platform is very similar to the traditional one – It is a foundation software system which supports and provides services to other programs.  Those programs are said to be “built upon” the foundation software or “platform”.  That supported application may well be a platform for another application and so on up the line.

 

The lowest level of platform that is likely to affect most people is the choice of an Operating System.  An Operating System (OS) is a program (more accurately a group of programs) that performs low level chores such as handling keyboard and other input managing the screen display and providing access to devices such as disk drives, printers and network interfaces.   The OS also presents the basic user interface that allows human users as well as other outside processes to interact with the computer or any other microprocessor based device.  It is, in effect the devices “personality”.  In the PC world early examples of Operating Systems would include Control Program/Monitor (CP/M) from Digital and Microsoft Disk Operating System (MS-DOS).  Contemporary operating systems include LINUX, iOS, Windows, Android, UNIX, and others.

Like other software platforms, different operating systems provide the same sort of services; however they often provide them in different ways and communicate through different protocols.  These differences are reflective of the difference of the processor chip they are designed to be run.  As an example, some operating systems communicate with users by means of a visual user interface using point and click tools such as a mouse or a touch-screen.  Others communicate through commands which are typed in from a keyboard.  A program that required a visual interface would be much easier to implement operating system such as iOS or Windows which provide services.  Conversely a program which communicates with users in a much simpler fashion, such as the programs that allow the dashboard clock in a car to be set, only need to react to a couple of buttons and would be able to get everything it needs from a streamlined OS.

As we said earlier, software platforms often support other platforms.  Types of software that can be thought of as platforms include Web Servers such as IIS and APACHE, database servers such as Oracle and DB2, Content Management Systems (CMS) such as Drupal and DotNetNuke and other software that enables or supports the operation of other programs.  These different layers of platform software are sometimes referred to as a “software stack”

As an example of this, a program that performs some function on a computer or other device, for like  allowing users to log-in to a web site, is written to expect that some sort of data service, and web server are available for it to use to store and retrieve data and to present its output as web pages.  The data service assumes that a database is available to evaluate and respond to its requests.  All of these components require services provided by the operating system.  Individually each piece of software is a platform for the ones above it; taken together they represent the software stack used to provide the required function.

Many software packages are required to run on several different platforms, which means that versions must be developed that provide identical functionality on different operating systems or when being supported by different databases.

A good example of this is mobile applications.  A program that has been written to work under one mobile operating system, for example Android, must be written differently in order to work under iOS or WindowsPhone.  This means that choice of platform and support of additional platforms are decisions which should be evaluated from several perspectives.

In a commercial software development effort the choice of platform is often based, at least in part on marketing decisions in an attempt to develop a product that will run on platforms which have a large number of users in order to have a large potential market.  In the case of “in-house” development efforts, where a company or group is developing software for their own use, decisions about what platforms to use to support the application must take into consideration long term IT strategies and the impact of support and training required to introducing and support additional technologies.

At this point I have to acknowledge that, in some circles, discussions of the comparative strengths and weaknesses of various platforms have a dogmatic nature.  As this series of articles progresses please understand that I am not presuming to compare or evaluate any of these technologies or the development strategies and design patterns that they support.  It’s kind of like the traditional call and response between a customer and a waiter where the customer asks “What’s the best thing on the menu?”, and the waiter’s canonic reply is, “…it’s all good.”  My own philosophy is that “The right tool makes the right task successful”.  That is to say that all of these technologies exist to support applications by providing required functions.  Choosing an appropriate platform for a development project is a key factor in that projects success.

Next time we will continue by looking at some established software design patterns and classic combinations of platforms that support them – unless I think of something more interesting…


Guest Blogger – Cisco Academies: The World’s Largest 21st Century Classroom

March 19, 2012

Guest Blogger, Nancy Null

Imagine teaching over one million students in over 160 countries how to design, build, troubleshoot and secure computer networks.  The Cisco Networking Academy program operates over ten thousand academies worldwide in secondary, post-secondary, and alternate environments ranging from workforce development programs to prisons.  Towson’s IT Affiliate and Cisco Support and Training Centers, located at the Center for Professional Studies, manage and support over sixty academies throughout Maryland and the District of Columbia, providing technical support and professional development resources.

How is Towson helping Cisco Academies to support educational reform?
Academy curricula are aligned to the STEM National Career Cluster Standards and Common Core Anchor Standards in Language Arts and Mathematical Practices.  This summer, Towson’s Cisco Instructor Training Center will offer a three-day workshop for high school IT instructors in embedding Common Core experiences in IT instruction.  The activities and lessons produced from this workshop will be shared through video and other technologies. Three summer “boot camps” for Cisco instructors to earn A+, CCENT, and CCNA certification will continue to raise the bar on quality instruction.  National and state Common Career Technical Core Standards are due for release over the coming year, and professional development to support them will be a key future project for Towson’s Support and Training Centers.

What’s happening in Maryland’s Cisco Academies?
It’s an exciting time to be a Cisco Academy in Maryland:  in response to Governor O’Malley’s goal to make Maryland the “cyber hub of the nation,” the Maryland State Department of Education has designed a high school career and technology Cyber Security pathway partnering Cisco Academy and CyberWatch curricula.  Students following this pathway can earn up to three industry certifications (A+, CCENT, and Security+) along the way.  This new pathway, along with the two existing Network Engineer and Computer and Network Support pathways, provide Maryland students with a wide range of career and college opportunities.

Six two-year colleges were the first community colleges to be named National Centers of Academic Excellence (CAE) in Information Assurance recently by the National Security Agency (NSA) and the Department of Homeland Security (DHS). Three of the six institutions–Anne Arundel Community College, Hagerstown Community College and Prince Georges Community College—are Maryland Cisco Academies.

What “core beliefs” are driving all of this?
Career and technology programs everywhere need to meet the 21st century learners’ needs and expectations, and meet national goals of graduating secondary school students who are truly prepared for success in both college and career.  Towson’s Cisco Support and Training Centers’ goal is to understand and support what Cisco instructors are doing well, identify areas of need, and give instructors the resources to practice those skills in the classroom.

US Secretary of Education Arne Duncan stated in April, 2011, that, “Once CTE programs deliver on the promise of truly preparing students for success in college and careers, their successes will make a compelling case for further investment.”  Towson is helping to ensure that the world’s largest 21st century classroom can meet that challenge.

Nancy Null is a guest blogger for www.tuoutreach.com .  Nancy closed a 38-year career as a Baltimore County Public Schools educator, and opened a new career as co-director of the Towson University Maryland State Department of Education IT Affiliate, and lead contact for the Towson University Cisco Academy Support Center and Instructor Training Center.


Information Security: How to Select a Strong Password

February 27, 2012

Matt

Information security continues to be a prominent headline as more and more companies fall victim to hackers and social engineering attacks.  While many information security threats originate from outside of an organization’s network, most threats come from internal sources.  For instance, writing down passwords on Post-it notes and weak or easily guessed passwords are a big threat to the security of a system.  Getting into the habit of creating strong passwords for all of your online accounts is not a thing you should do, it’s something you MUST do.

What makes a strong password? Here are some password best practices:

  • It needs to contain special characters such as @#$%^&
  • It must be at least 8 characters long.
  • Avoid using common number combinations or words such as 123, password, your birth date, or your login name.
  • Avoid using words from a dictionary, common or clever misspellings of words, and foreign words.
  • Avoid using incrementing passwords with a digit.
  • Avoid preceding or appending passwords with a number.
  • Avoid using passwords that others can easily guess by looking at your desk (such as names of pets, sports teams, and family members).
  • Avoid using words from popular culture.
  • Avoid thinking of passwords as words per se; think secret codes.
  • Enforce using passwords that require you to type with both hands on the keyboard.
  • Enforce using uppercase and lowercase letters, numbers, and symbols in all passwords.
  • Enforce using space characters and characters that can be produced only by pressing the Alt key.
  • The most important password practice is to not give your password to anyone else.

Image credit: Salvatore Vuono

The following tool can be used to assess the strength of your password.  Plug in your password to see how secure it is:

http://www.passwordmeter.com

Generating and using a strong password is only your first line of defense against hackers.

The most important thing that you should take note of is your internet browsing habits. When you are using a public terminal, make sure that it has the proper firewall and anti-virus installed, make sure your network is secure, log out when you are done with your session and clear the cache once you are done.

Happy and safe computing!


SQL Injection: A Mid-Tech Explanation (Continued)

February 23, 2012

Timothy

Hi – welcome back to our discussion of SQL Injection, what it is and how to minimize an application’s exposure to this threat.  To quickly review from the previous article in November – “SQL Injection is a scheme whereby a hacker uses knowledge of database technology combined with flaws in a program’s design or construction to allow them a level of access to data that is beyond what was intended”.  This is accomplished by identifying user input that is going to be made into parts of a SQL statement that is created “on-the-fly” in the application and entering actual statements in the SQL language which the application unknowingly submits to the database for execution.

The article closed with the observation that there are three rules of thumb to make your database more difficult to access through a SQL Injection type of attack and promised examples of them were to come.

Minimize your exposure.
The single best way to keep an attacker from exploiting the dynamic SQL in an application is to simply not have any.  Most all contemporary database platforms such as Oracle, SQL Server, DB2, and MySQL support a type of function called a “Stored Procedure” (SP).  A stored procedure is a small program that is compiled and stored at the database.  An SP may expect input (known as parameters) which it uses as selection criteria and other input for a SQL statement.

In our context, the biggest difference between a stored procedure and Dynamic SQL is that with an SP, user input is not included in the syntax of a SQL statement that is submitted for execution.  This in itself is a significant deterrent to most SQL injection attacks.  Use of stored procedures can also allow a more robust error handling and easier front end maintenance.

For more detailed information on creating and executing stored procedures (in the SQL Server environment) check out this article at MSDN.

Examine user input.
There are numerous reasons for your programs to apply stringent validation rules to user input.  It just makes sense to do everything we can to make sure that any transaction that is submitted to the database is valid.  This gives us an opportunity to reject suspicious input before it gets submitted for storage or execution, which is the best time to deal with it.  To be effective, input must be examined in the context of what is expected.  If we are expecting the user to enter a basic “zip code” in a field, the field can be developed so it will reject any input that is not a number.  If the field is expected to contain a user’s name then input validation rules for the field will have to be looser, but we still have no reason to expect things like colons, or words like “ SELECT “ to be part of the input.

Be aware then input filtering is a sort of tug-o-war scenario between developers and would be intruders, with both sides keeping abreast of what the other side is doing and reacting to it.  To this end it is a good idea when possible to keep a log of both rejected and accepted user input so you can see what the intruders are up to.  Accepted input can be tracked through normal database log functions, but rejected input will have to have logic in the front end application to log the rejected material at the server for later inspection.

Don’t be too predictable.
The practice of obfuscating data by use of cryptic data and code structures is sometimes referred to as “security through obscurity”.   In a bygone day when the level of computer literacy in the general public was nothing like it is today, this sort of approach was all the security many systems had, or needed for that matter.  Although those days are long gone there is still a case that can be made for not giving database tables and fields names or formats that make it obvious that they contain sensitive information.  If an intruder is looking for a social security number and they find a database field that is named SSN, SocSecNum or anything similar they have had their task made much easier.  Even if the name was less obvious things like a length of 11 characters masked as “nnn-nn-nnnn” wouldn’t take very long to identify.  Imagine however if the intruder was confronted with a social security number that had been distributed between 3 fields that were 3, 2, and 4 characters respectively and were named “IDA”, “IDB” and “IDC”.  This is just a quick example but you can see how this sort of thing would complicate the intruder’s task.

Image Credit: David Castillo

Which Do I Use?
The short answer is, “all of them.”  They all work together to make your application smoother for the user, easier to maintain for the developers, and stronger in the face of potential intruders.

Another reality of data management is the periodic need to stand up to audits, both internal and external.  Whether you work for a public or private sector entity or if you are contractor or a an independent consultant, some of your designs and code will likely have to be audited.  Financial systems, critical records management systems such as those developed for the medical and insurance industry, and security applications can all be anticipated to be regularly audited.

If an application accepts user payments through credit cards (eCommerce) then it will be audited by, and held to standards developed and enforced by the Payment Card Industries (PCI).  These set required security standards for any merchant accepting credit card payments. Any eCommerce applications that you write will be subject to these standards .  Other outside organizations that impose security standards include HIPPA, State motor vehicle and social services records and many others.  Be aware of any security standards that may apply to your application and ensure that the applications design and implementation meet the requirements and that this compliance is documented and as easy to verify as possible.

Many auditors use automated scanning tools that can detect the presence of filtering code in the front end application, but do not have a view into the functions of stored procedures on the server side.  In order to facilitate these scans develop input filters and incorporate them into the front end application.  Other scans may access the database directly and require other sorts of security measures such as data encryption to be visible.

Don’t Turn Your Back On The Bad Guys
Cyber-Security is an ever evolving field.  The arena is filled with new technologies, system architectures and development tools which arrive almost daily, closing existing security gaps, and introducing new ones.  Stay informed. Use the information that you gather.  Periodically review your standard designs and development practices to makes sure nothing has changed to make them inappropriate.


Strategic Planning 101—taking the first step

February 21, 2012

Guest Blogger, Larry Martin

In her previous blog (It’s all in the Planning, Strategic that is), Dawn Bott started a discussion about Strategic Planning.  She mentioned the use of SWOT analysis as the beginning in order to start to the strategic planning process. Though a SWOT is part of a Strategic Plan, which can be a useful tool, I wanted to talk about the entire process of creating the Strategic Plan.

There is no one way in creating a Strategic Plan. There are many different approaches some can take a year other approaches can take a day.  What is common among them all is the inclusion of the organization at all levels. Strategic Planning is all about feedback and gaining the commitment from the organization’s employees to implement the plan created.

Image Credit: sheelamohan

In creating and implementing a Strategic Plan, by-in and input into the process from all levels of the organization is essential for successful implementation.  It starts by including a good cross section of employees at all levels to determine what is working and what is not.  To make an analogy, the TV show “Under Cover Boss” is a good example.  For those who have not seen the show, the CEO goes under cover for a week to see how their organization is functioning or implementing their goals.  They are disguised so no one will recognize them while they work alongside different employees in different departments over the next 5 days.  In almost all cases, the CEO learns that what he/she has implemented at the upper management level may not actually be the best strategies for improving the organization’s products or service.  And in some cases, what they thought was a good idea, turns out not to be a good idea at all.

So now let’s put this to practical use.  How do you get started?

One of the best ways to start a Strategic Plan is to take this cross section of employees I talked about earlier and move them into a room, preferably off-site to eliminate distractions such as email and phone calls, so they can develop a list of Strategic Objectives.  This process is led by a facilitator who has no connection to the organization and whose first job is to define a Strategic Objective for the group. Strategic Objectives are ideas and suggestions that will improve the organization in one form or another. The facilitator needs to challenge the group in developing these objectives.

Since the gathering of these Strategic Objectives is a brainstorming exercise, they do not need to be in any particular order; it’s just important to capture the ideas on paper.  The Strategic Planning process may end up revealing ways to improve existing products or services and/or ideas for new product and service offerings.   Just remember all of those ideas are captured through feedback from all levels of the organization, not just senior management.

So now that we have the Strategic Objectives, what do we do with them?   Stay tuned . . .

Larry Martin is a guest blogger for www.tuoutreach.com. Larry is a Senior Project Manager with Towson University’s Center for Applied IT.  During his 28 years in the project management field he has managed a wide-range of projects and has guided numerous state agencies and departments through the Strategic Planning process.    


(Videos) How can the TowsonGlobal Business Plan Competition Change your Life?

January 24, 2012

Clay

With the deadline for TowsonGlobal’s second business plan competition just around the corner, I sat down with several people to talk about the competition.  In the first video, I talked with Towson University’s Outreach and Partnerships Coordinator Kelsey Beckett about the competition’s purpose, how it impacts the region’s entrepreneurial community, the many ways it provides entrepreneurs with resources that will be beneficial over the long run, and what participants can expect if they win.

Additionally, I talked with the two winners of the 2011 competition, Ben Walsh, owner of PureBang Games and Lisa Drouillard, founder of My Hopeful Journey, to gain insights on how participating in and winning the competition impacted their business plans and helped move their businesses forward.   Both Lisa and Ben believe that part of what made them successful, was the mentoring and support from experts and guidance throughout the various stages of the competition.  Both also found that access to the broad range of resources and connections at the incubator were truly helpful.

Submissions already have started coming in for this year’s competition, so be sure to get those executive summaries in by February 6, 2012.  We are excited to see which innovative business ideas will advance to the final round, and we will announce the five finalists on February 20.

To ensure that each finalist has the best possible chance, they all will attend a presentation boot camp in March and each will be assigned an individual coach from SCORE, which will help prepare them for the final presentations to the judges on May 2.

For more information visit the Business Plan Competition page on our website or email us at info@towsonglobal.com


ArcGIS Server 10 Migration and WFS Services

December 20, 2011
Jeremy

Jeremy Monn

As readers of Ashley Buzzeo’s latest blog post already know, Towson University’s Center for GIS (CGIS) has migrated its hosted ArcGIS Servers from ArcGIS Server 9.3 to ArcGIS Server 10.  As the migration took place all GIS services were reviewed to make sure they were functioning properly.  While most services were converted without issue a handful would not start post-migration.  After several hours of troubleshooting, the problem was identified as being related to a unique subset of WFS-enabled map services.

What was interesting about this problem was that several WFS-enabled map services worked properly after the migration while a few did not.  Knowing this, I knew that the problem’s solution existed in understanding how the functioning and malfunctioning WFS-enabled map services differed.   By comparing the information contained in the REST endpoints for a functioning and malfunctioning WFS-enabled map service I noticed one difference: the functioning WFS-enabled map service had unique field aliases while the malfunctioning WFS-enabled map service had two fields that had the same alias.  Making the malfunctioning map service’s field aliases unique solved the problem as I was able to start the service and confirm it worked properly.   All the other malfunctioning WFS-enabled map services were also explained by duplicate field aliases.

While this blog touched on only one issue related to ArcGIS Server 10 migration, there are many other issues that one may experience.  Visit ESRI’s Migration to ArcGIS Server 10 page as a starting point for answers to other migration-related questions you may have.


Follow

Get every new post delivered to your Inbox.