1-)Security and its Components
In this video offered by MIT OpenCourseWare, the presenter presents topics on security, by breaking it down into many components. He also uses many examples to explain the presented topics. The concepts learned from this video are security, its three components and security problems.
According to the presenter, security means achieving a goal of disabling an attack. An attack can be disabled by creating obstacles for the attacker. No matter what type of an attack is being conducted making it difficult for the attacker to reach its target easily can stop the attack from being successful. In order to create obstacles it is important to identify the vulnerabilities and potential threats to a system (Zeldovich, 2015, July 15).
Three Components of Security
Security is broken down into three components, the three components are implementing policy, the Threat Model and the mechanism involved. When implementing policy it is important to consider the CIA triad, a model used to guide information security policies. CIA stands for confidentiality, integrity and availability. Confidentiality prevents unauthorized viewing of system files or documents. Integrity prohibits unauthorized changes and Availability allows access to authorized users at all times. The Threat Model the second component of security is assuming the intention or the capability of the attacker so that potential threats and vulnerabilities can be identified and the final component the mechanism involves the system or a part of the system, for which the policy is, designed (Zeldovich, 2015, July 15).
Factors that can lead to security problems are policy guidelines and requirements, Threat Models and mechanisms. When designing system or security policy, it is important to consider access requirements so that an unauthorized user is not able to make changes to the account. When considering Threat Models strong assumptions should not be made. Strong assumptions can negatively alter the security decisions making process. The purpose of mechanisms is to guide the implementation of security policies successfully to prevent compromising of systems. (Zeldovich, 2015, July 15).
Security is important to protect systems and devices connected to a network from people with malicious intent. Achieving security can get difficult because attackers are getting smarter and are able to compromise systems very easily. Implementing and following the security policy diligently can enable to improve security and strengthen security of systems.
2-)In the shared video from MIT, professor Zeldovich had discussed about many web security aspects in three categories as Security Policy, Threat Models and Mechanisms.
Security policy provides rules and regulation which need to follow to keep system and infrastructure safe from the outside and inside threats.
Threat model helps to figure out all possible existing threats. Finally, professor had discussed about the mechanisms like software, hardware and system which are the major elements in the web security. (Zeldovich, 2015).
HTTPS and SSL:
HTTPS stands for Hyper Text Transfer Protocol Secure. This provides secure connection between browser and webs server over the internet. To have any web application secure, it is required to buy SSL (Secure Socket Layer) certificate from SSL providers.
For that web application needs to have dedicated IP address. So that SSL is installed for that specific IP address. In short, HTTPS provide public key infrastructure to have encryption and decryption of data which is exchanged between the browser and the web server.
For https website, we can see green icon at the browser’s URL section, which provides assurance to have secure communication between the browser and the web server. (Zeldovich, 2015).
Buffer overflow is one of the limitations where security compromise happens. Buffers are the areas where data is stored when programs execution happens. So, there is dedicated memory allocated for buffer to execute a program.
But, if the predication of required memory is incorrect and it is more than the required data size then buffer overflow occurs. Buffer overflow means overwriting of data into the same memory due to lack of memory availability.
Buffer overflow can cause erratic program behavior, memory access errors, wrong results and crashes. (Zeldovich, 2015).
Sandboxing is a security mechanism to run unsecured programs into separate part of disk and memory such that execution of a such program will not create any issue to the host machine and its operating system.
This mechanism is started to run a program which come from unsecured sources like unsecured website, users, suppliers and so on. This mechanism helps to keep host machine and OS safe from virus and other malicious code.
Virtualization is considered as an example of sandboxing. (Zeldovich, 2015).
3-)Information Security Components:
Building an information system which is resilient to attacks from external sources is important because a security attack may happen in order to steal files, erase the content of hardware, access confidential information, etc. Implementing security to an information system can be broken down into different categories. They are
The policy indicates the goal we would like to achieve in the system. For example, An information system should provide conditional access of data to the users like only Professors should be able to access grades of all the students of a session. Availability of data to an authorized user is the main focus of a Policy. Hackers might also perform a Denial Of Service attack on a website. If a DOS attack occurs then the website should still be resilient to be available to set of authorized users who can debug and neutralize the attack. “The big reason why security tends to be a difficult problem is that what we have here is sort of negative goal meaning that we have to make sure our security policy is followed regardless of what the attacker can do” (Zeldovich, 2014).
An Application is usually connected to a large volume of data in the backend. An application holds a lot of privileges related to the data. An application can read files, write files and delete files in the backend. Any vulnerability in the application automatically becomes a vulnerability for the data in the backend. To minimize the risk, we can slice the application into multiple pieces and ensure that every piece of an application can access a particular section of data. This way if there is any vulnerability in a piece of application, it will impact only the corresponding section of data and not the whole data. This is called privilege separation. Virtual machine or UNIX can be used to achieve this kind of isolation.
An existing library like a GPE or legacy code can be run efficiently
Any other programing language code like Python can be converted to native code and executed in native client.