Monday, January 16, 2017

Device Fingerprinting Challenge

A client requested to provide information about the visitors on a website I am working.

The client's request includes the following:

  • Add MAC address
  • Computer/device name
  • Local IP address
MAC address (machine access control address) is a unique identifier assigned to a network interface. Network interface could be physical or wireless. MAC address is also known as the physical address to a network device. (more info)

The computer/device name is the name of the device identified usually during installation.

Local IP address is the IP address defined for the network interface either statically or through a DHCP (dynamic host configuration protocol) server within a local area network (LAN).

Taking the "possibility" challenge, it lead me to many other information. The challenge involves the use of the browser and its relative technologies. The website is developed in PHP and Javascript. Imperatively, getting the above information can be done with PHP and Javascript.

Initial searches on Google lead me to answers leading to "not possible" outcome. However, it also lead me to a number of tools for future projects like: ClientJSBrowserSpy, DetecDevice, and a number of almost similar leading information.

Further in search for a solution, 3rd-party software are also considered including extension, plugins, and client-installed scripts.

With any breakthrough, it'll be posted here.

Friday, March 18, 2016

Failures, Mistakes, Errors.... Moving On

All my life, I have crossed so many mistakes, errors, and failures -- in one word: failures.

Most of these failures, I have observed, are unlikely to happen early on. Best intentions get the best of me, that these failures will not likely to happen. It is like going for a walk, a simple walk from one point to another, and out of nowhere, you are robbed or even worse.

Failure is evident when we don't have a plan, not all of us are like Indiana Jones whose adventure is mostly of luck. Failure is also while we're doing it -- say cooking, you wanted to put some salt so to blend the taste, but the lid of the shaker is loose letting all the contents out as you turn it over. Failure is also at the consequence -- the wrong spice/ingredients mixed up.

Coincidence, fate, destiny, or other words that they are called, I am blaming them. However, as I grew up and hurdled more and more of these failures, I had come face to face, in many instances, their nature. It is like facing a transparent glass that is so transparent, you cannot see the glare. You will not know that it exists until you bumped onto it. It is not like you are traveling in darkness, in fact, the light encourages you to walk or head on faster than you intend, you do it step by step.

The shimmering light, or simply a lamp or fire on a stick, is much needed in our travels through the dark -- to the most unlikely nature of life. We need confidence, encouragement, motivation, satisfaction, and all the nice words in the world of words, to keep moving. These words I refer to as light. Like the brightest natural light on earth -- the sun -- brings forth a lot of these words into concrete application. I'd like to jog when there is sunlight, but I hate the heat that it accords me -- the early sunrise or the late sunset is the better time to do it.

Going back to failures as transparent glasses ahead of our path, I had observed, that with the right angle of light -- seeing through or bouncing from the back -- provides a clearer view and begs caution as we approach it.

We need a change in perspective.

Perspective is how we see one thing from one location while trying to be on another. Normally, if you are looking at the same aspect and from another point of view -- perspective -- you will see differently. So, to change or influence someone, you have to change yourself -- change your own perspective.

With so many failures, I neglected to count them, I had tried many changes in perspective -- many of which made sense initially -- like out of a book or an author. But just like trading in the ForEx market, not all strategies will work over time, you have to adjust. Continually changing and proving one from the other, could already be a failure in itself -- none accomplished.

Perspective, or a change of it, should be done way before we head on, and not only at the moment of failure. Planning -- anticipating that failures will or may happen -- is now a requirement.

Planning is the best weapon in playing chess, after knowing the game of course. Before you do your next move, your mind will go through drills, situations, consequences, alternatives, and counter-attacks. The more moves you can muster in mind, that will likely happen in the future, will provide you with the better advantage.

Quick reaction -- efficient decision in an instant -- can be an output of effective planning. With the anticipated move, and the right conditions, you adjust your plan with the scenarios ahead of you.

If we stop, I have convinced myself, through the failures -- failure of planning, failure at scenario, failure on effect -- we will remain as a FAILURE. BUT, if we keep moving forward, planning ahead, deciding fast enough -- we may not avoid failure, but at least, by then, we should have accomplished something.

The failures are there to remind us that we are human. That we should learn by them, avoid them, plan for and against them. They will surely come, by fate or by other means. But by then, you are stronger, and you will know how to deal with them to better yourself.

Let's keep moving forward.

Tuesday, January 5, 2016

X and Y of Software Development

Software Development is one of the many things that never stay put. It gets to evolve and continue. Once it stops, it is the end of its life.

As software develops over time, there are distinct two directions that is tracing its progress:

  • X - this is the horizontal aspect of development. This is characterized by the number of features, functions, scope and reach of the output. As you add more to the growing number of functions and features, the X axis is drawn further from the origin. The further it goes denotes a number of modules or usage it contains.
  • Y - this is the vertical aspect of development. This is characterized by the quality, performance, speed, usability, friendliness, and security of the system. This aspect is also gearing to the non-visible part of the system. These developments may sometimes delay the deployment or may break the system all together.
A good balance of the X and Y axis is desired in any development. Any system that has many features but would require a great deal of power to operate is the same with a very secure system that is very hard to use.

At some point, prioritizing one axis over the other is inevitable specially for system developed by less than 3 people. Some features are held off in favor of performance or security. Some usability issues are sacrificed at some point for speed considerations. 

Many of the chances that I have gone through as a developer, is to take the Y axis more priority than the X's. That is, make sure that the system performs better than having to add more features. More features, at many instances, would mean more work for Ys. Say you need to upgrade to a new version of the programming language -- this is a Y -- this would mean that development for the Xs had to be postponed until all areas of the system, in Y, are checked.

Stress and penetration tests are very rarely done during development, not until there is some prototype or feature to specifically test. Imagine a huge system, after so many years of development, it may have covered all business operations and had them automated/integrated into the system, that may have not been tested for security? Chances are, this huge system may just be like trash after proving that it can easily break.

As you improve both axis, you may need to trace back to many of the basic functions for upgrade. At some point, many have to be re-written from a blank file. This is a hold off to the X axis, but making sure that the Y is stretched up to a quality you can be assured of.

To speed up development, one thing to keep in mind is, how much effort you put into the Ys, will lead you to a further stretch on the Xs. That is, with enough thought and consideration on the performance, quality, and security of the system, the easier you can expand the functionality and usage of the system.

Tuesday, September 22, 2015

Backup your copyrighted DVDs

I usually get this request from upstairs about backing up encrypted or copyrighted DVDs. I know I have done it many times but it fails to remind just how to do it every time.

Tools

  1. So I always have this Daemon Tools Lite that allows me to mount .iso file as virtual CD/DVD drives.
  2. I always have the codecs from CCP-Project to use the classic media player instead of the new one
  3. I also have Infrarecorder  to do copying and writing tasks
  4. For those copyrighted and encrypted DVDs, i have DVD Decrypter
  5. For some instances I also have imgBurn. This however may conflict with DVD Decrypter or Infrarecorder if not installed properly
Steps:
  1. Firstly, make sure that the DVD is worthy -- meaning readable and functional, void of physical damage that may ruin the show. You cannot copy if you can't play it.
  2. Copy the DVD to an .iso using InfraRecorder. The read speed may have to be tweaked to use below the maximum.
  3. Try mounting the .iso file using DaemonTools and make sure that it plays just like the original. If problems exist, it's time to call on the other tools.
  4. From the mounted .iso or virtual drive, right click and see "Decrypt using DVDDecrypter". Just follow the next steps, find a nice target location and proceed to extract the content. If it is a DVD video disc, it will copy just the .vob files.
  5. Write the .vob files to a DVD using imgBurn. You might want to save DVDs by writing them to another .iso file
  6. If all is well with the decryption, iso and playing the mounted iso, you're ready to burn to a physical DVD or to another media.
Feel free to post on the comments if you need assistance.


Wednesday, July 22, 2015

To my audience from way back

Hi!
I am not sure if you can still remember me. I was one of the speakers in one of the Lorma-hosted seminar sometime ago and had promised to send you "something" for asking a question during the Q&A portion. You may remember me with the bitcoin idea. I had been thinking about what I could really send to you as a token of my appreciation.

I apologize for the great delay. 

As you may have known recently, a bitcoin database had been hacked. This is now the challenge of the security of bitcoin and how it is digitally saved within networks. But, like some of the techos say, if a bank is robbed, you can discount saving to a bank a bad idea. But then again, let that be challenged even further.

It's like wildfire now about privacy and intrusion -- with the Hacking Team hacked, leaking information about how dubious and challenging making worthy of the systems we are building -- we have to become experts in our own field and be guided by the principles of security.

Here, I am sharing you a goldmine of security ebooks. I suggest you download what you can and keep it somewhere you can refer to sometime later. Some are already outdated but the knowledge and awareness they bring are priceless. 

https://drive.google.com/folderview?id=0B7jWflk4TmF3WEhqQVFmMHN3Q2s&usp=sharing

I hope these resources will be of help to you or the future generations under your ward.

Best wishes,

Friday, July 11, 2014

My Stress

Oh, Stress! 
You come every time 
So fresh! 
You swiftly become mine 
 
Each day you remind me 
The sweetness that glory can be 
By the end of the day 
You hinder the rest, 
I wanna be 

Let me love you 
Please work for me 
Though I hate you 
Please don't ruin me. 

You give these many gifts 
Silver hair, Wrinkles Worries and enemies 
In as much, as is my faith 
You come preparing me 

Be the best among my friends 
 Go on, I won't let your way 
By how much you love me 
You come and stay everyday 

Challenging me each and every way 
 You are the scorching sunlight 
Without you, I feel no might 
But if you lay not much I can do 
and thank you very much

Thursday, May 9, 2013

... and the election's almost over

Ugh! the trouble! the hazzle!... If you put the hype in a graph, statistics' normal curve almost does not apply. Pre-election time, it's way too long a time that the hype(equals preparation and campaign) is so intense. So intense that bans for guns and others are so commonly ignored and violated, with so little a number of apprehended and served justice. So intense that media -- paper, tv, radio, and the Internet -- is so undated with issues and concerns over and beyond election. Both incumbent and aspiring politicians have promises and so-called platforms they wish to bring forth to the governed public. So many that when elected, almost the same number wave through death and silence. And then, it gets used again on their next run for the same and so-much-acclaimed incomplete implementation of the plans. This next couple of days will be the height of the hype -- more noise and acts of baboons. And just before the days ends on May 13, the hype curve will dive... The next two days, it just plainly die... A few weeks come and we all forgot about the platforms and promises they uttered during the campaign --- and seemingly the candidate who were "asking" to be elected succumbed to amnesia and on to their personal goals. There are those that try to push for the suspension and even the stoppage of the election. There are those who just kill their opponents so there will be no sense of having the election. There are those who don't trust in the process of the election. There are those who don't trust the means and ways(ballot, paper, pen, ink, machines and people) of the election. There are those who don't even trust the results of the election. Well, here we are, afloat to the tide of how our election proceeds and done. At least, for the life of me, I see some changes: 1) Politicians no longer promise the very impossible. At least, they're now going practical and still seemingly odd promises. 2) Less use of pamphlets that clutter the streets and stickers on walls on every inch. They now hang tarpaulins. 3) People are more aware of whom they vote and the strategy to keeping the money the politician is giving and still vote for those they like ... actually, there are a lot more. BUT, let me end here while others can say more. I really hope the election's over so the elected politicians can really do more. (And so I hope)