Sprint 2 it’s over: End of week 6

--Originally published at That Class Blog

Sorry for uploading this week’s blog one day later. But I’ve been sick and yesterday was the worst of it. PLEASE, DON’T VACCINATE WHILE YOU HAVE THE FLU, EVEN IF THE MEDICS TELL YOU IT WONT AGGRAVATE YOUR CONDITION.


Last week we finalized the second sprint. It was a hevier sprint, for all of us. But progress and effort is getting reflected in the project. we are happy.

Sprint 2 it’s over: End of week 6
“Sprint” by Denis De Mesmaeker (CC BY-NC-ND). From https://www.flickr.com/photos/2ni/223990159

This last week, as I mentioned in the previous week, I mainly worked regarding two new issues. First, to create a database dummy for testing and applying hooks during testing. Second, to develop new tests applying the new features, such as hooks, for the new features (And more extensive tests for previuous done tests).

GitHub Issues:
1.- Hooks and Dummy DB
2.- Testing

Regarding the first issue:

I was reading a tutorial on Mocha/Chai testing (link below) and in a step, the guy talks about creating a different database to stop the pullution and unnecesary requests to the main DB. And that was the first part of this issue. I made a new cluster in Atlas for testing purposes, and implemented new enviroment variables and .ENV files for the connection (Which was in fact, the complicated part).

Then, I started reading in the same tutorial about hooks, and how weel those functions integrate with with database testing. The hooks available are: before(), after(), beforeEach() and afterEach(). The names basically describe everything those function do. The important thing to know is that these functions are written inside the describe() function. before() and after() esecute one time during each describe() and, if it’s an “each” function, it executes before or after each it().

Regarding the second issue:

This issue was quite simpler. Now that I uderstand hooks, I can start making more useful but simpler tests.

To summarize everything up, I made tests for the POST at /getLevel, a POST and GET at /score and the delivery of the static files.

We are almost at the middle of the available weeks! But not really…

Miguel Montoya
Esperanto enthusiast
ʕ•ᴥ•ʔ

More testing – Week 6 TO-DO

--Originally published at That Class Blog

As I was saying in my previous blog, I have two new issues for this week. And the main focus of them are to enhance current features, not to implement new ones. I will explain them quickly.

More testing – Week 6 TO-DO
“Test drive of first production Tesla” by Robert Scoble (CC BY). From https://www.flickr.com/photos/scobleizer/2276152067

The first issue is to create a hook for the testing. This means, to create a dummy DB to stop pollution and requests to the main DB.

The second one is to update the testing script to include the new and future features.

Let’s work, work, work!

Miguel Montoya
Esperanto enthusiast
ʕ•ᴥ•ʔ

I really did stuff

--Originally published at That Class Blog

So in my previous blog, I wrote that I didn’t have a lot of stuff to do. But I talked to my partners and discussed some self-assignments for this week (And next).

So, basically, I made 4 new issues, of which I completed 2 and left 2 for next week. We were given notice that we are going fast regarding the project development. So, these new issues don’t implement new stuff (Well, kinda of…), but most of them implement new and more efficient ways of doing what we already did.

I really did stuff
“Canada goose” by Yi-Lian (Lucas) Liu (CC BY-NC-ND). From https://www.flickr.com/photos/yiliangliu/13982774079/

The first new issue was to implement Mongoose as interface to connect to mLab. This would provide a more stable connection to the DB and schemes and models for document creation and finding. These new models have steps for verifying the content of the documents too. The only problem with this was that the campus’ network has proxies that wouldn’t let the connection to begin with mLab and Mongoose. This problem cause my second issue.

Move our database from mLab to MongoDB Atlas. This wouldn’t have been as complicated if Atlas provided a free interface to the database’s collections and documents. So instead, some scripts were necessary to create to feed the database and check the data that is already uploaded.

Everything was successful at the end. There were 1 or 2 hard complications (Like identifying the problem with mLab and the network). Now two more issues are pending. You can read about them in the next blog.

Miguel Montoya
Esperanto enthusiast
ʕ•ᴥ•ʔ

I want to become a pro – Security blog #4

--Originally published at That Class Blog

So you are a pro, you say…

You think you are good, you say…

But do you have a computer security certification?

No?, you say…

I want to become a pro – Security blog #4
“Professional” by Dan Taylor (CC BY-NC-ND). From https://www.flickr.com/photos/dantaylorphotography/11960608165

As many more data breaches are happening each year, with more size and quality of attack, cybersecurity skills are on very high demand. But not because there a lot of jobs available, means that the position is going to be given to anyone who tryes and aplyes (Mainly to make sure that the person know about the stuff, but also because there are so many areas of specialization in security). The company will ask you to have one or more certifications.

Let’s talk about some of them. In fact, just 8 of the more of 70 certifications that Wikipedia has mentioned (Only 10 of those have an individual entry).

ISSEP/CISSP

The Information Systems Security Engineering Professional certification was developed by the N.S.A. It cover security methodologies and practices into all information systems aswell as the proper and secure handling of data. This is the must-have certification if you want a career in IT security.
It’s issued by the (ISC)²

LPT

The EC-Council Licensed Penetration Tester certification demonstartes the person’s ability to audit network security and perform penetrations and develop proper corrective actions to the problems and weakness found in the test.
It’s issued by the EC-Council

GPEN

The GIAC Certified Penetration Tester certification it’s similar to the LPT (Above) but it demonstrate too the persons knowledge of legal issues regardiong penetration testing aswell as specific penetrations tests and practices.
It’s issued by the GIAC.

CSFA

The Cybersecurity Forensic Analyst certification provides the necessary knowledge to perform a deep analysis of computer systems and proper interpretation of investigation results in a short time frame.
It’s issued by the GIAC.

ECSP

The EC-Council Certified Secure Programmer issue assures that the programmer knows most f the security vulneravilities due to programming. The certification holder has developed the best practices and techniques against those vulnerabilities. This certifications it’s available for .NET and Java.
It’s issued by the EC-Council.

CSSLP

The Certified Secure Software Lifecycle Professional certification validates the holder’s ability to develop application and software security protocalsin the organization. It ensures that potential  breaches and vulnerabilities are reduced troughout the software development.
It’s issued by the (ISC)²

CEH

Certified Ethical Hacker. You can read more about this certification and ethical hacking in my previous post.
It’s issued by the EC-Council.

There are somo other certifications that I didn’t mention here.

 

Miguel Montoya
Esperanto enthusiast
ʕ•ᴥ•ʔ

404, level 2 not found.

--Originally published at That Class Blog

404, level 2 not found.
“404_madness” by Oliver Tacke (CC0). From https://www.flickr.com/photos/otacke/13990410803

I guess this post won’t be long. I already did all of my assigned issues (You can check the current and past issues here). I’ll be working alongside my partners in any way they need. And I will star doing some refactoring and code documentation. And I will talk with my parters in the project administration area regarding my working payload.

Miguel Montoya
Esperanto enthusiast
ʕ•ᴥ•ʔ

Wrapping up week 4 – End of week 4

--Originally published at That Class Blog

This week passed way too fast, and I feel there wasn’t a very stable calendar for working hours. Still, I enojoyed the developement, as always…

Wrapping up week 4 – End of week 4
“Mongo (and Mongo clone)” by spDuchamp (CC BY). From https://www.flickr.com/photos/duchamp/415211871

This week I worked with the database, succesfully. I helped with the development of a json’s format for level loading (It includes the coordinates for every object and text, as well as some strigified lambda functions to parse when the level is loaded. This last feature I didn’t know it could be applied.

Also with this topic, a back-end function to make a request to the mLab server was made, and a function to properly load the level when the client makes a request.

I also worked with my partners to clean the code and fix some damn bugs we hadn’t ecountered. Well, the truth is that most of them weren’t bugs, just tome minor functionalities that weren’t implemented and caused some undesired characteristics.

Miguel Montoya
Esperanto enthusiast
ʕ•ᴥ•ʔ

2nd sprint ready to ignite – To-Do week 4

--Originally published at That Class Blog

Okay, so I already have my assigned issue for this week. I found quite nice the idea of just having some assigned tasks, not bothering about what can or should do. Thank you project manager!

2nd sprint ready to ignite – To-Do week 4
“Milestones” by Professor Bop (CC BY-NC-ND). From https://www.flickr.com/photos/professorbop/2766103746/

Thiw week I’ll be focusing on getting the remote database up and feed it with levels designed by Gerardo. I estimate it will be an easy implementation. So I guess I will be available to assist any of my partners.

Miguel Montoya
Esperanto enthusiast
ʕ•ᴥ•ʔ

I understand testing now – End of week 3

--Originally published at That Class Blog

Okay. 3/15 done.

I felt quite more productive this week.

I finally cracked chai (Using mocha) and supertest. It just clicked somehow. Last week was a lot of confusion and then it just… worked. I can’t even remember the process I made to make it work. Hehe.

I understand testing now – End of week 3
“Drone First Test Flight” by Richard Unten (CC BY). From https://www.flickr.com/photos/unten44/9631706311

Part of the problem is that I didn’t worked with http requests before. I didn’t knew what a http mock request was, or if i needed one (After trying a lot I realized that I don’t). At the end I achieves victory. I made my description of the tests. I used supertest’s request to assert the main get request to the server and to check the JSON response of a post (Used to properly load the level).

So I’m happy about that.

After passing the JSON test, I helped Arturo making the level actually load from the JSON. It was difficult, again, because my poor HTML skills, and some poor documentation about which function is the adequate to make the request, whatshould the headers contain and how to encode the JSON trough the response.

I had fun.

The team, in general, worked hard to improve the gameplay and add functionalities. I think that a lot of bugs arose during this week’s development. A lot of them just from merging branches. That did also consume work time.

I’m proud of our GitHub more proffesional usage. Finally a full team that comprehends branches and the use of issues… YAY!

Let’ s keep it up!

Miguel Montoya
Esperanto enthusiast
ʕ•ᴥ•ʔ

Let’s be ethical – Security Blog #3

--Originally published at That Class Blog

This is the first time I hear about ethical hacking. Really, it is.

I mean, I knew that there are people who do that. But I never thought that they were called like that.

So let’s start learning ethically! Let’s be ethical – Security Blog #3

Ethical Hacking describes the action of hacking by an entity to help identify potential threats. The hacker tries to go around the security and search for weak points where a malicious hacker could exploit and cause an information breach. This information is later provided to the companies or individuals to fix and minimize future hazards.

Ethical hackers and penetrations testers have some perks. They might not reach the levels of adrenaline and badassery as a regular -nonethical- hacker, but they really do earn a nice economic remuneration and the nice assurance that you won’t end up in prison.

And how can you become an ethical hacker?

First, you might consider career/major in IT. You might even study alongside the military (If your country has a program) and they could even pay you to study your career and offer you a job regarding security.

You need to get some basic certifications (CCNA) and some more specialized (Security+, CISSP or TICSA). When doing your certifications, you should also work in tech support and move up to administrative roles, until you achieve an information security position. At this point, you can apply for the Certified Ethical Hacker (CEH) title by the International Council of Electronic Commerce Consultant.

To hack, network engineering skill are -of course- necessary, but UNIX/Linux, C, LISP, Perl, JAVA, and SQL are necessary concepts that you need to master. Oh, and let’s not forget about the soft skill (As any other IT job) and street smarts (People skills and talent for manipulations).

And can you just start hacking after that?

Nope.

Usually, you need expressed, written, permission to probe the network, respect individual’s and company’s privacy, close everything after testing (Let’s not leave open doors for anybody else), and record and report any finding you might have encountered.

That’s all folks…

Miguel Montoya
Esperanto enthusiast
ʕ•ᴥ•ʔ

The CIA Triad – Security Blog #2

--Originally published at That Class Blog

No, I’m not going to talk about the Central Intelligence Agency (Responsibles to provide national security intelligence to the US). This particual triad -which some people call AIC to avoid the confusion with the regular CIA- stands for Confidentiality, Integrity and Availability.

The CIA Triad – Security Blog #2
“CIA Bitchessss” by Erik bij de Vaate (CC BY-NC-ND). From https://www.flickr.com/photos/mediadeo/5762931134

In general, confidentiality is the property in charge to limit the information, integrity is the assurance of accurate and trustworthy information and availability  is the guarantee of authorized people to information. These concepts conform a model to help people think security-wise.

Confidentiality

The purpose of this is to ensure that every piece of information reaches the adequate people and that no sensitive information is breached.

And to make sure this is done, to enforce levels of authorization and authentication of information access is necessary. As well as creating categories and collections of information and stablish discretion functions.

Some methods used to ensure confidentiality are: Data encryption, two-factor authentication, biometric verification, security tokens. In extreme cases air gapping, or doing hard copies of the information is made.

Integrity

The purpose of this component is to protect data from unauthorized modifications or to make sure that an option to undone changes is always available. Also, integrity involves making sure that data is always consistent, accurate and trustworthy.

Some methods used to ensure integrity are: Typical system file permissions, user access control, version control. Data might include checksums. Backups and redundancy is important to restore breaches of integrity.

Availability

This is very straightforward. This property assures the availability of the data. All kinds of systems for protection must be up to provide the informationwhen requested. Power outages and hardware upgrade and failure must be taken into account when making the availability design. Attacks of the DoS and DDoS kind might compromise the service.

Some approaches to ensure availability are: Adequate bandwidth, redundancy, failover and high availability clusters. Disaster recovery is essential in case of loss of data. Backups are a must.

Now, I found an interesting article that talks about the challenges of the CIA paradigm.

It talks about 3 concepts that poses an extra challenge for the CIA

  • Big data

The high volume of data can pose a big challenge to make sure the information is safeguarded, mainly because the high quantity of differetn sources of the data and the high costs of mantaining dupplicates and disaster recovery plans.

  • IoT Privacy

One IoT device might not generate important information, but multiple devices can provide relevant data in case of a breach.

  • IoT Security

This topic has been mentioned in class many times. There are so many IoT devices that aren’t patched, updated or without safe passwords, that these devices are an excellent source for thingbots and eventual botnets.

And that’s it for this post.

Each topic is getting more related to each other now.

Miguel A. Montoya
Esperanto enthusiast
ʕ•ᴥ•ʔ