Sunday, December 15, 2013

Scientific Computing: Bioinformatics and the Role of Computers in Modern Biology


Currently, computers are using largely in most of the fields in science. There should not be any arguments about how sufficient benefits of applying computational technology bring to our lives. Bioinformatics and computational biology are where scientific computing lands its touch into the biology field in which computers are used to gather, analyze the biological information. Computational biology is the study about biology by using computer tools and techniques, and  its goal of learning is about new biology, species, or living system. Bioinformatics, however, uses computer as a powerful tool to solve its complex biological data such as Human Genome project. Both are very important under aspects of science and engineering.

In this post, I would like focus more on Bioinformatics’ applications and how computer plays an important role in modern biology.

DNA Sequence in analyzing computer tool
1. Collect and process data: biological data is one of the most complicated data that human can be able to analyze with the help from computer. For example, DNA sequencer and spectrophotometer are common lab equipment that can get connected to a computer to convert its analog to digital data.

2. Track and manage experiments: without computer running restlessly in most of the labs nowadays, it is impossible to get the data tracked and managed. Most automated lab management works are using computational software to maintain all the result records.

3. Store and unify data: database references are very important in biology research. It is a need of having a public database that can easily access and get updated throughout for all scientists within the field. A public biological database can be built and managed as same as any computational database.

Molecular Dynamics Simulation
4. Analyze and predict from collected data: this is all about bioinformatics can do. A computational tool can help to recognize and extract a pattern from experimental data.

5. Annotation and simulation: when finding a new uncharacteristic data, an annotation tool can use automated sequence to compare with a pattern to identify any new potential molecules such as proteins, acid amides, DNA, RNA in a genome system. In addition, a simulation tool can help to draw a biochemical model of interactive molecules in a testing system.


References:
1. Bioinformatics & Computational Biology

2. Computers + Biology = Bioinformatics


Sunday, December 8, 2013

Computer Graphics

Computer graphics are changing the world in all aspects of our lives. It is used today in many different areas of science, business, education, entertainment, medicine, etc. Behind the algorithms for generating visual images synthetically; computer graphics are used as a tool that can be able to bring all people visual information sampled from the real world. In this post, I would like to discuss how computer graphics benefits to us in 4 of the following areas.

1. User interface
From the very first personal computer in 1970s, user interface was a big invention of computer history. Without a user interface, we might now have to type a very complex command to run some normal tasks. All computers’ operation systems and applications implement the user interface to manage and operate multiple task activities. For example, point-and-click facility via a user interface can help users to select a menu, an icon on the computer screen. It clearly changes the way how people interact with a device.

First User Interface of Computer History - Apple Lisa I

2. Computer aided drafting and design (CADD)
Currently, computer graphics really help in designing electronic components, architectural design, mechanical devices, etc. The designer can generate an engineering drawing using 2-dimensional and 3-dimensional via computer graphics software. As a result, it can increase the productivity and improves the quality of the work.

Computer Graphics is wildly used in CADD

3. Simulation and modeling
Computer graphics can help to simulate any condition, which is encountered in the real world. Through simulation, people can learn how to react via the programmed environment that they might have to face in the real one. For example, a training program can really help the pilot react with a rough environment condition in a simulated flight, or astronauts can practice in a non-gravity simulator to get used to with the feeling of weightlessness. A video graphics simulator can also help to improve and optimize of a system or product via the reaction of the trainee.

A flight simulator for pilot training

4. Entertainment
Computer Generated Imagery (CGI) rendering technology is currently being used in most movies. From the 2D to 3D cartoon such as Lion King and Toy Stories series, or scientific movies like Jurassic Park and Avatar, CGI rendering effect was an important key to their success. Meanwhile, all games in Xbox, Play Station and PC are built from graphic software programming. Without computer graphics, our entertainment world would have been so different right now. It changes everything.

CGI is present in most of modern film nowadays


References:
Computer Graphics
http://computegraphics.blogspot.com/2012/10/v-behaviorurldefaultvmlo.html



Sunday, December 1, 2013

Communications and Security

Communications and Security are a challenge for most computer scientists, who are trying to build a secure and reliable system against attack from outsiders. There are too many technologies that applying for such different services in a communication system like VoIP, video conferences, chat, and email. The problem is how a security system can handle all of them and protect users at a time. As the way people connect together through computers has become more complex and more accessible, the security threat clearly has increased.

In this post, I would like to discuss the solution that can make our communication system more secure and reliable in connecting people-to-people.


1. Setting up properly a network firewall


One of the best solutions to against attack is to block all unrecognized traffic come in and out the network. The system should only allow traffic from trusted sources. Most of the firewall software has a blacklist of websites, and IP addresses that are being used to attack common users. Firewall will block all traffic from those ones in the list. It is important that users need to get the list updated because the malicious sites always increase by the time.





2. Deploy a Virtualized Private Network (VPN) for remote users 
Currently, most of the routers and firewalls support VPN. As the devices that support VPN are now very common and affordable, the system needs to get the VPN deployed properly for all remote users. This is one way to make the connected devices from any public Internet services can go through an encrypted tunnel to the system securely. As a result, VPN will keep all the traffic in-out the system safe.


3. Turn off all unused features and services in the system
One of the easy ways to protect the network is to turn off all unused features and services. It likes a house that has a lot of doors, and the owner cannot handle all guests come in and out if all the doors are open at once. If a feature or service is not being used, we should turn it off to reduce the potential attacks and improve network security. Another benefit from this is to improve the system performance, as the system will use fewer resources to operate all activities. Using each feature and service in intended purpose will keep the network securely.


4. Monitor all the call logs
For a communication system, monitoring all the call logs is very important to track down the attack and take action early. In network security, reading the system logs is only way to know what is going on in the system. Setting a baseline for a normal activity is also important. When pulling a call log report, the system can notice users if all recorded activities exceed the baseline. It will help to avoid the system getting compromised from outsiders.



References:
1. Tips for an Effective Unified Communications Security Strategy
http://www.smbnation.com/content/news/entry/guest-blog-7-tips-for-an-effective-unified-communications-security

2. Communication Security (COMSEC)
http://www.securestate.com/Federal/ESS/Pages/Communication-Security-COMSEC.aspx


Sunday, November 24, 2013

How Artificial Intelligence Benefits Our Lives

Artificial Intelligence (AI) is one of the most interesting fields of computer science. For example, human can use AI to make machines such as robots and security systems to perform human jobs. These machines even have feelings, thoughts, and can be able to understand the human command.

Asimo by Honda
Currently, people can make robots, which are able to replicate the actions of humans. Therefore, it will not take too long to develop the techniques on teaching robots to self-thinking and react to the changing of environments. For example, Asimo robot by Honda is such an incredible AI robot recently with flexible movements, and reactions against environment conditions. By applying the revolution of artificial intelligence field, scientists now can promise to make machines the ability to think and react like human.



This is a full potential of artificial intelligence to have the effects on human life, at least, in the years to come. In some surprising ways in which AI impacts our life today and changes the future. I will discuss more the benefits that Artificial Intelligence can bring to our lives.

How an AI helps solving a problem in real lfe.
  • Solution Provider – this is the most important benefit from AI as all problems can be easily solved without spending much time.
  • Efficiency and Productivity – increasing efficiency and productivity is what artificial intelligence can make a huge difference in manufacturing because it reduces manual tasks without hitches in the process line.
  • Time Saving – when applying AI to solve a problem, people can reduce the time consumption to do the task.
  • Errors Minimizing – The more AI uses in manufacturing, the less defects and errors occur.

References:
1. ASIMO by Honda
http://asimo.honda.com/‎

2. Artificial Intelligence: A Modern Approach
http://aima.cs.berkeley.edu/

Sunday, November 17, 2013

History of Computer Science and Enabling Technologies

Computer science is one of the most important fields that applies to the success of modern technology nowadays. It is a base for the integration of enabling technology. Computer scientist and interface designer had been concealed numerous issues between human and computer. As a result, people are able to make better products that use in more aspects of our lives.

For example, by applying the algorithms and fundamentals of hardware, the evolution of data storage was a dramatic development from the punch card in 1930s to magnetic tape, hard drive, CD, flash memory, and cloud service recently.

Punch card is one of the first data storage in computer history


This is how human and computer interact nowadays


Another example, at the beginning time of computer science, the interaction between human and a computer machine was via punch cards. Through time, people found more ways that make easier on working with computer, such as typewriter-style terminal, command line (DOS), graphic user interface (GUI), and multi-touch screen.












In many ways, computer scientists also focus on making and developing free software and hardware that apply for people with special needs. For instance, people use computers to make tools and devices that are accessible to as many people as possible like radio, smart TV, musical devices, smart phones, etc.

The most significant role of computer science is to increase the usability and easiness of computers for people in daily activities. With an extreme effort, computer scientist makes more steps closer to the goals of changing people lives and working styles, such as distance working and learning, data input via voice and gesture, paperless schooling, and control the living environment.


References:
1. Enabling Technology for Users with Special Needs
http://www.sigchi.org/chi95/proceedings/tutors/edm1bdy.htm

2. The Evolution of Computer Science and Enabling Technologies
http://blog.inovasolutions.com/2010/the-evolution-of-computer-science-and-enabling-technologies

Sunday, November 10, 2013

File sharing and Security

Sharing file nowadays is very easy and popular. It doesn’t require people to have the knowledge of computer to do sharing tasks. Currently, iCloud, Google Drive and Dropbox can provide a very simple way to make sharing simply just “click-n-drag” into a shared folder. Your files will be synced onto the cloud right away. However, one of the most issues from sharing files is security. If you are trying to share a confidential document by sending emails in a closed group, you will not want them floating on the Internet back and forth without any kind of protection.

In this post, I will discuss 3 solutions for sharing files securely.

1. Email encryption on both ends is important.

This is not a new technology. However, it is not being used in free email services because the email provider wants to charge money for extra security. As a result, hacker is able to catch your emails and read them easily. With encrypted email, it becomes a very difficult task for hacking an email without the encryption key. With the email encryption on both ends, your files will be on a maximum protection because only the other end can be able to read the files.

Hushmail.com is a popular email provider with encrypted email service. It is very easy to use without installing an email client. Users can either use the hushmail’s web client or download an outlook plug-in.





2. Using a paid email service for better protection.

For business, people likely never believe that any free services are able to protect them. Email appliances like Sophos Email Appliance, Mimecast, Cisoc’s Ironport, PGP might be one of the best choices. They are usually more expensive; however, they are rich features with focusing on data loss prevention.

For example, PGP is widely used in most top corporations. It offers a lot of different tools to protect your data in all operation systems like Windows, Mac, Linux.

3. Sharing file by expert client products is recommended.


As mentioned at the beginning of this post, Dropbox and Google Drive are popular in this area. Instead of using email to share your files, they provide an easy way of accessing your shared folder right on your computer. The data in the shared folder will be put on the cloud, from here only a list of authorized people can access the files anywhere and anytime. At entry level, they are free for everyone with limited storage. However, if you want to share a large amount of data and big files, you will have to pay for those extra features.









Reference:
http://readwrite.com/2011/05/23/how-to-share-files-securely#awesm=~onuAgBOZgMx8QM

Sunday, November 3, 2013

Count-Min Sketch Data Structure

Data structure is the core of any software program. Without an appropriate data structure, any algorithm might suffer in accessing stored data and optimizing the running time. For example, the following tasks that need to build for a best timing in a data set:
  • To estimates frequencies of particular elements
  • To finds top-K most frequent elements
  • To performs a range of queries
  • To make a percentiles estimation. 
As we can see, they are all related to a frequency or a range of queries in a data set. So, one of the structures sets up to get the best optimization for the tasks above is Count-Min Sketch, a method estimates frequency-related properties of a data set.

What is Count-Min Sketch Data Structure?
Count-Min Sketch is one of members in the family of memory efficient data structures to optimize the counting of the rate of an element in its lifetime.

Problem statement:
We have a set of duplicated values, and the issues is to estimate the frequency for each value. The estimation for relatively rare values can be imprecise, however, frequent values and their absolute frequencies should be determined accurately.

The basic idea of Count-Min Sketch:
As similar to Linear Counting, Count-Min sketch is designed as:
  • A 2-D array (d x w) of integer counters.
  • When a value is set, it is mapped to one position at each of d rows using d difference and an independent hash code.
  • Counters on each position will increase for the next arriving values.
  • Algorithm estimates the frequency of given value as a minimum of the corresponding counters in each row.



Below is an animation for Count-Min sketch data structure:


Below is a practical implementation of Count-Min sketch:
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
class CountMinSketch {
    long estimators[][] = new long[d][w]   // d and w are design parameters
    long a[] = new long[d]
    long b[] = new long[d]
    long p      // hashing parameter, a prime number. For example 2^31-1

    void initialize() {
        for(i = 0; i < d; i++) {
            a[i] = random(p)    // random in range 1..p
            b[i] = random(p)
        }
    }

    void add(value) {
        for(i = 0; i < d; i++)
            estimators[i][ hash(value, i) ]++
    }

    long estimate(value) {
        long minimum = MAX_VALUE
        for(i = 0; i < d; i++)
            minimum = min(
                minimum,
                estimators[i][ hash(value, i) ]
            )
        return minimum
    }

    hash(value, i) {
        return ((a[i] * value + b[i]) mod p) mod w
    }
}

Accuracy

Accuracy of the Count-Min sketch depends on the ratio between the sketch size and the total number inserting values (not duplicated values). This means that Count-Min technique provides significant memory gains only for skew values, for example, the values have very different probabilities.


It is clear that Count-Min sketch can't track frequencies of 5900 elements using only 152 counters, in the case of low skewed values with high frequencies, so the histogram will be very inaccurate.

In general, the applicability of Count-Min sketches is not a straightforward question that can be recommended in the real life of experimental evaluation, but it can be use for some particular cases. However, the theory of Count-Min sketch is a base for accuracy on skewed data and measurements on a real data set.


References:
1. Count-Min Sketch
http://en.wikipedia.org/wiki/Count–min_sketch

2. Streaming Algorithms and Sketches
http://blog.aggregateknowledge.com/tag/count-min-sketch/

3. Count-min sketch & its applications
https://sites.google.com/site/countminsketch/


Sunday, October 27, 2013

Google Hacking

Google is a very important tool for all people nowadays. For business, it helps to improve profit for business owner by paying Google an amount of money in order to get in the top results of a search query. For school, there is no argument that Google will be the best tool for studying, researching, gathering information and so on. However, Google is also a very powerful tool for hackers to seek vulnerabilities of a system.

In this article, I would like to discuss about Google Hacking.

WHAT IS GOOGLE HACKING?
Google Hacking is the term used when a hacker tries to seek vulnerabilities of a system and its sensitive data by using Google search engines. In Google search engine, the queries that help to filter the results (sensitive data) from a search line store in Google Hacking Database. Although Google blocks some of their famous hacking queries, hacker is still able to attack a website by launching the Google Hacking Database queries.

Google Hacking Database is able to identify these below information:
  • Advisories and server vulnerabilities
  • Error messages that contain too much information
  • Files that contain unencrypted passwords
  • Sensitive directories which should never show to outsider
  • Pages that contain login portals

WHAT ARE COMMON KEYWORDS IN A GOOGLE SEARCH QUERY?

allintext - occurrences of all the keywords given
intext - occurrences of keywords all at once or one at a time



inurl - a URL matching one of the keywords
allinurl - a URL matching all the keywords in the queryi
intitle - occurrences of keywords in URL
allintitle - occurrences of keywords all at a time
site - a particular site and lists all the results for that site
filetype - a particular filetype in the query
link - external links to pages
numrange - specific numbers in your searches
daterange - a particular date range



Some Sample Simple Google Search Queries: 

intext:@gmail.com filetype:xls

Spammer can use Google to troll email addresses across the Internet.  A huge list of emails is that they need in succeeding their goals.



inurl:group_concat(username, filetype:php intext:admin


As above, hackers are able to hack some of the SQL injection results that other users made on the sites. Unfortunately, username and password combinations are still in a search result.

After that the md5 hash might be easily cracked by using any simple tool. The combination is bcheramy : 130270


HOW TO PREVENT GOOGLE HACKING ATTACKS?
First, we should verify the pages that identified by Google hacking queries. If pages provide information that could not be found on the website, we should remove such pages from the site. However, if site requires these pages, we should re-arrange them and their wording so that they are not indexed and detected by Google hacking queries.


References:

1. Google Hacking:
http://www.acunetix.com/websitesecurity/google-hacking/

2. Google Hacking Database (GHDB)
http://www.hackersforcharity.org/ghdb/


Wednesday, October 9, 2013

Open-Source Software Is Our Future

Nowadays, open-source software and code are everywhere, especially in an open project that we can find easily in the Internet like SourceForge or Google Code. The term “new frontiers” of programming does not apply for today anymore. Most of the best algorithms that need for coding have already been written. Spending time to rewrite a code or algorithm that it has been done is a waste of time since they are given free as open-source. In addition, some programmers have generously donated their code for free to help improve on a specific project.

So, open-source seems to be a good point we should do. In my opinion, however, before you use an open-source software, I want to discuss about how open-source will be our future.


1. Stability - Is open-source software stable?

Stability is really important for any software program, and there should be no argument about that. The community is a base of any open-source software. A good open-source community should have hard-working developers, and users support infrastructure. Most communities offer such things like: 


Open source middleware
Closed circle of open-source industry
  • releases that are recent enough to be useful
  • up to date and helpful documentation 
  • a helpful and active mailing list 
  • automated tests 
  • well maintained change notes 
  • well managed issue tracker 
  • well managed version control system  

As a result, the community is the stability of any open-source software. Unlike commercial software, the open-source one gets updated quickly when a bug or a security hole is found. Yet the size of an open-source community will be reflex its stability.




2. Support -  Can I get the help I need?

Some people say that they couldn’t reach any support when they need because there are no free toll numbers and support teams. It seems to be right since open-source software doesn’t have direct support. Again, open-source is all about its community. In fact, it can be a lot easier to get the help you need through the vast community of open-source users. I suggest that you should register to any supported forum, then ask questions, and get the help you need almost right away.

3. Cost - What's it going to cost me?


Unlike any commercial software with the same features and functionality, the open-source software is usually free. In some complex open-source software system, users will need supported for implementation with a fee such as RedHat Linux, CMS system. However, it is way cheaper when comparing to the commercial one.
Low cost open source
Low cost open-source vs. commercial software

4. Flexibility - Can I move it, change it, or tweak it?

The beauty of the open-source program is its ability to become exactly what you want it to be. For example, we can easily see what difference between android and iOS. People are changing to android more and more because iOS doesn’t give to its users the ability to customize the system. People like android because of its flexibility and customization. As a result, open-source software frees users from the grip of being out dated.

5.
Security - Will my stored data be safe?


First, I will say that the “open” term in open-source is to only refer to the source code itself, not the data stored in the system. Because of the constant update, open-source seems to be safer. If an open-source system is well implemented and followed correctly security procedures, your data in the system will be just fine. There is no difference between an open-source and commercial program from being attacked by hackers. The rate is same for both.

Open source is wildly used
Open Source Wildly Used


Because of all advantages above, I will say “YES” to open-source because it benefits for the community in many ways. In short, open-source will be the best choice for small business or a start-up company with short budget. However, users must stay in the community to get the support when they need.


  
References:

1. Good or Bad? The Verdict on Open Source CMS
http://www.cmscritic.com/good-or-bad-the-verdict-on-open-source-cms/

2. Balancing stability and innovation in open source
http://blog.startifact.com/posts/older/balancing-stability-and-innovation-in-open-source.html


Sunday, October 6, 2013

Agile and 3 most important portions of the agile process

While agile is a general philosophy regarding software production, scrum is an implementation of that philosophy pertaining specifically to project management. So agile scrum defines a set of recommendations that the whole team should follow. There are 3 main portions in the agile process that we need to concentrate on when applying agile into project management in real life.

1. The scrum master is no. 1 role in an agile process.

Besides the product owner who is responsible for defining the users' stories, and maintaining the whole product backlog, scrum master is the most important roles in the agile process. This person has to be a bridge of communication between the product owner and the rest of the implementation team.

Scrum master
Scrum Master is most important in an Agile process

Because of the important role, scrum master should be a person who possesses a strong technical knowledge with good communication skills, and proactively participates in all development processes. In short, it is a hard role that requires many skills. In addition, any modification about users' stories and product backlog from the product owner must be completed through the scrum master.









2. Planning board is the backbone of an agile process.

Currently, the planning board now accommodates the Lean Development Process that we use in agile today. The benefit of the planning board is to help adapting any changes throughout the process.

There are four main columns must be present in the board:

The Planning Table
  • Release backlog – it shows all the current release after each sprint or all what we have archived.
  • Sprint backlog – in each sprint, it shows what product owner wants to be done. Any undone from previous sprint will keep showing in the sprint backlog, and yet moving to the release backlog when they are done.
  • Working on – work divided mostly is listed here for teamwork control. The whole team will know what they and other members are working on.
  • Done – all completed stories will be here. However, all bugs and changes from the sprint backlog also need to list here.

3. Continuous Improvement Model helps push up performance.

After a few sprints, the scrum master needs to gather the whole team to discuss any good and bad things has happened in the team. This is very important to improve the team performance. At first, it might not be comfortable to talk about what really go wrong in the team, yet it will give big awareness for the whole process. In retrospectives meeting, all team members need to give their open opinions about what are happening in the team.

Improving Circle

  • Bad things – like fighting between team members, not collaborating in pair work, or spending too much time on minor things. Solutions to these problems should be given immediately to help avoiding  them in the future.
  • Good things – like finishing on time, giving the best suggestions and ideas. It is also important to list all the good things because it encourages the team to do it more and more.







The adaption of the agile process may be different for each time and each team. However, we can embrace the whole process by concentrating on 3 important portions of the process above. We should never follow blindly the rules because adaption to the changes is more important.


References:
1. SCRUM: The Story of an Agile Team
http://net.tutsplus.com/articles/editorials/scrum-the-story-of-an-agile-team/

2. Agile Development
http://www.versionone.com/agile101/agile_development.asp


Friday, September 20, 2013

LinkedIn and Branding: Build Your Personal Brand 101


It is no doubt that personal brand is very important to job seekers. One of the most effective ways to sell YOU to potential employees is to build an impressive online personal brand on a social network. However, each social media tool has different targets; for example, Facebook may be great for graduate students, and Twitter is good for media recruitment. In contrast, LinkedIn generally is the best choice for anyone who is searching for a job. Currently, most recruiters and HR departments are searching their candidates through 225 million LinkedIn accounts.


LinkedIn Logo 
“LinkedIn is not just a virtual resume that should be tucked away for a rainy day. Instead, it acts as a resume, cover letter, references document, database of your contacts throughout your life and a place where you can learn, share and interact in a professional manner.”




Following are 2 very first steps to build an impressive brand on LinkedIn.

1. BRAND YOUR PROFILE

Let think that LinkedIn is an incredible asset to your entire career, so we have to make it perfectly errors free. The more you keep your LinkedIn profile professional, the more you can sell YOU to all people in the network. A professional profile is likely to attract all potential employees.

Below are some important things to brand a profile:
  • Custom URL: A "http://linkedin.com/in/yourfullname” is an easy way to find you in the network.
  • Picture: Your picture should be professional to reflect your brand. In fact, you get 30% more clicks if your file has a picture.
  • Headline: It should display your desired job or the last job.
  • Summary: A brief summary, which is about your work experiences, unique abilities, awards and career aspirations is most important in the profile
  • Keywords: It is good to add as much as you can to get found easily.
  • Applications: You put your blog here because it is good if people know more about you.
  • Recommendations: Significant recommendations that are from people in your trusted the network is a plus for the profile.

2. DEVELOP YOUR NETWORK

Your career opportunities depend on how big your professional trusted network. Because LinkedIn is a network of people, any contact you add will help you link to their contacts. So, you should add all your friends as contacts in order to link to their contacts.

Below are things you should do to develop your network:
  • Be open and available: It helps on accepting the contact requests.
  • Leave an email address: It is the only way to communicate with other friends.
  • Promote your URL: You should let people know your works, experiences, or even your thoughts, feelings and emotions.

As long as you keep your LinkedIn profile updated, you will have a great chance to get hired.


References:

1. How To Build Your Personal Brand on LinkedIn [21 Useful Tips] 
http://theundercoverrecruiter.com/how-build-your-personal-brand-linkedin-21-useful-tips/

2. HOW TO: Build Your Personal Brand on LinkedIn 
http://mashable.com/2009/07/27/linkedin-personal-brand/


Friday, September 13, 2013

QR Codes and 2 Common Issues of Security Risks


Generally, all we know about QR codes are encoded messages that contain information such as URL, phone number, text, or even a Wi-Fi access password. This information can be used to market a business or to provide further information about the company’s products and services. A tool such as QR codes scanner, or a smartphone QR codes scanner application can easily decode it. However, scammers might use these QR codes to redirect users to websites, which may contain viruses or malwares, via malicious links. From here, incautious users may become cyber-attack victims when scanning untrusted QR codes.

In this post, I will discuss about 2 common issues of security risks and solutions to avoid when using QR codes.
1. Shortened URL in QR code is really dangerous:
SHORTENED URLS COULD BE MALICIOUS LINKS. Currently, most URLs in QR codes are decoded as shortened URL version because it is easier to save a short, simple URL than a long, complex one. For instance, tinyrul.com, bit.ly and goo.gl are some URL shortening services to help convert any long, complex URL to a shortened version.
For example:

Quang Pham blog's QR code

This is my full blog address: http://quangpham-cs100w.blogspot.com,
and its shortened URL is http://goo.gl/1JtEKN  




Scammers site's QR code



 

A website's link that may contain viruses or malwares: http://scammers.com,
and its shortened URL is
http://goo.gl/qEKd6Y





Are you able to see if the two shortened URLs above lead us to trusted websites? When we click to those shortened URLs to get access to webpages, we cannot know if the sites are viruses or malwares free or not. Are there any solutions for this problem?

YES! WE SHOULD PREVIEW THE SHORTENED URLS BEFORE USING THEM. Several website tools help us to get a full URL address from the shortened URL. In addition, some URL shortening services, such as goo.gl, give us an option to preview the shortened URL first by add a “+” at the end of the URL. 
As I type in “http://goo.gl/qEKd6Y+”, the preview page will show full address “http://scammers.com” in order to let us know if it is a trusted destination.


2. Scanning randomly malicious QR codes is an easy way to get attacked from scammers:
STAY AWAY FROM MALICIOUS QR CODES! Scanning QR codes in the form of stickers placed randomly on the street's walls is most dangerous. It is a very common way that scammers use to get people scan the code just because of curiosity. Reports say, “46% just said they were curious what this odd little jumbled cube could do. So, we should not scan any QR codes that are not from trusted sources. 
Malicious QR Codes everywhere on the street.
A malicious QR code on the street.

LOOK CLOSELY TO A QR CODE BEFORE DO ANYTHING ELSE! Another way to avoid getting hacked is to know if QR codes are legit codes or under a form of adhered stickers over other ones. Most trusted companies will market their products and services by publishing their posters in public areas. Usually, all QR codes are printed directly on these posters. However, scammers may produce malicious QR codes as stickers and adhere them onto legitimate ones.

QR Codes Sticker can be use to adhere on original one
QR Codes Sticker can be use to adhere on original one

There is no double that QR codes are on the upswing. In a near future, we may start to see more intuitive ways of deceiving people via QR codes. However, the two essential issues above are most common ways to attack users when incautiously scanning QR codes. So, everyone should be careful with those little black-and-white squares.

References: