Thursday, June 09, 2022

Vulnerability scanning


What is a vulnerability scan?

A vulnerability scan assesses the vulnerabilities of computers, internal and external networks, and communication devices that cybercriminals can exploit. This automated activity scans infrastructure targets such as IP addresses for known vulnerabilities and misconfigurations. The outcome Vulnerability Assessment Report helps you quickly identify security vulnerabilities that need to be repaired.


What is the vulnerability scan used for?

Vulnerability testing is an essential part of mitigating an organization's security risks. Using a vulnerability scanner to identify system vulnerabilities can reduce the attack surface that criminals can exploit and focus your security measures on the most likely target areas. The vulnerability Scan also helps to periodically scan the IP address range to determine if unauthorized services are exposed or if redundant IP addresses are being used.


How does the vulnerability test work?

There are two main types of vulnerability scans.

Unauthenticated scans detect security perimeter vulnerabilities. Authenticated scans use privileged credentials to further find security vulnerabilities in the internal network. Regardless of which type you choose, the vulnerability scanning tool uses a database of known vulnerabilities, bugs, anomalies, configuration errors, and potential routes to corporate networks that an attacker could exploit. These databases are continuously updated.


Why is vulnerability scanning necessary?

Vulnerabilities are common to organizations of all sizes. New ones are constantly being discovered or may be introduced due to system changes. Criminal hackers use automated tools to identify and exploit known vulnerabilities to access unsecured systems, networks, or data. It's easy to exploit the vulnerability with automated tools. Attacks are cheap, easy to carry out, and indiscriminate, putting all organizations connected to the Internet at risk. An attacker needs only one vulnerability to access the network. This is why it is essential to patch to address these vulnerabilities. Suppose you do not update your software, firmware, and operating system to the latest version immediately after release. In that case, your system's vulnerabilities will continue to be exploited, and your business will remain vulnerable. Worse, most intruders aren't found until it's too late.


What does the Vulnerability Scan test?

The automated vulnerability scanning tool scans open ports for standard services running on those ports. Identify configuration issues and other vulnerabilities in these services and ensure that you follow best practices: Use TLSv1.2 or later and strong encryption. Next, a vulnerability scan report is generated to highlight the identified item.


Who will perform the vulnerability scan?

IT departments typically perform vulnerability scans if they have the expertise and software. Alternatively, you may want to use an external security service provider such as IT Governance. IT governance scans are performed against targets for which the client has the required permissions for the scan, and users of the service must ensure that they have these permissions. The vulnerability scan is also performed by an attacker who scans the Internet to find entry points to the system or network.


Vulnerability Probe:

Vulnerability probes use scanning technology to scan your organization's network for signs of potential breach risk. However, not all probes are created the same. Doing so can expose your business to cyber risks. There are three ways to conduct vulnerability investigations that continuously discover hidden cyber risks.

1. Show your network like a hacker.

2. Use vulnerability assessment tools that highlight the most imminent risks.

3. Use a continuous vulnerability probe.


Vulnerability examples:

When your pc is attached to an unsecured community, your software program protection may be compromised without positive protocols in place. Forgetting updates, weak product points, and unresolved developer troubles leave your customers extensive open to pc protection vulnerabilities. Here is a listing of numerous vulnerabilities that compromise the integrity, availability, and confidentiality of your customers` products.

Critical mistakes to your customers` pc software program can depart statistics with inside the entire community liable to some malicious threats, including:

· Malware

· Phishing

· Proxies

· Spyware

· Adware

· Botnets

· Spam


Cyber attackers, hackers, and malware can take over your customers` software program, disable it and thieve statistics.

The most common software vulnerabilities are:

· Lack of data encryption

· OS command injection

· SQL injection

· Buffer overflow

· No authentication for important features

· Lack of permission

· Unlimited uploads of dangerous file types

· Rely on untrusted input when making security decisions

· Cross-site scripting and counterfeiting

· Download the code without consistency check

· Use of broken algorithms

· URL redirect to an untrusted website

· Path crossing

· error

· Weak password

· Software that is already infected with a virus

The list grows longer each year as new ways of stealing and corrupting data are discovered.


How to prevent computer vulnerabilities?

· Stay on top of bandwidth usage by sending alerts when your device crosses thresholds.

· Block users from accessing suspicious, confirmed, and insecure websites.

· Set unlock and blocklists to override category-based filters.

· Apply web bandwidth check.

· Filter web activity by tags, categories, and URLs to reveal trends, spikes, and irregularities.

· Conclude with a detailed reporting tool that can analyze browsing activity and demonstrate the effectiveness of web security.

· Identify the risk with iScan online software, show where it is, and rate the risk in dollars


OpenVAS (Open Vulnerability Assessment Scanner):

OpenVAS is a full-featured vulnerability scanner. Its features are powerful for implementing uncertified and certified tests, various high and low-level internet and industry protocols, significant scan performance optimization, and vulnerability testing. Scanners have a long history and get vulnerability detection tests from updated feeds. OpenVAS has been developed and promoted by Greenbone Networks since 2006. As part of the Greenbone Enterprise Appliance, a family of commercial vulnerability management products, scanners, and other open-source modules, form Greenbone Vulnerability Management.


Metasploit:

Metasploit is the world's leading open-source intrusion framework used by security engineers as a development platform for building penetration testing systems and security tools and exploits. This framework makes it easy for both attackers and defenders to hack. Metasploit's various tools, libraries, user interfaces, and modules allow users to configure exploit modules, connect to payloads, point to targets, and launch on target systems. Metasploit's extensive database contains hundreds of exploits and multiple payload options.


Metasploit Penetration Testing begins with the Intelligence Gathering Phase. During this phase, Metasploit integrates with various reconnaissance tools such as Nmap, SNMP scans, Windows patch enumeration, and Nessus to find system vulnerabilities. Once the vulnerability is identified, select the exploit and payload to penetrate the crack in the armor. If the exploit is successful, the payload runs on the target, and the user is given a shell to interact with the payload. One of the most common payloads for attacking Windows systems is Meterpreter. This is an interactive shell that is stored only in memory. Metasploit provides various exploit tools for privilege escalation, packet sniffing, pass-the-hash, keylogger, screen capture, and pivot tools when you access the target computer. The user can also set a permanent backdoor when the target computer restarts.


Networks Vulnerability Scanning:

Network vulnerability scanning identifies vulnerabilities in computers, networks, or other IT resources that are potential targets for exploitation by threat actors. Scan your environment for vulnerabilities to find out about your current risk situation, the effectiveness of your security measures, and the opportunity to improve your defenses by fixing vulnerabilities. Obtaining and deploying the Network Vulnerability Scanner is often the first step in creating a more proactive security program. Building high walls and waiting for a siege is no longer enough to counter modern attackers. Modern security programs need to identify and seal vulnerabilities that can be exploited before attackers can exploit them. The Network Vulnerability Scanner provides a good barometer of your security team's overall success and progress by quickly scanning your network for these vulnerabilities, prioritizing and fixing them.


Network vulnerability scanners should be designed to scan the entire IT infrastructure and identify potential vulnerabilities that could be exploited. To do this, the scanner needs (at least) the following features:

· Scan scheduling that does not affect network availability or performance

· Comprehensive scan based on the most comprehensive list of known vulnerabilities and misconfigurations

· Adaptability and scalability to unique network architectures-this also applies to cloud-based containerized assets

· Identify the greatest and most serious threat to the environment

· Prioritization and risk analysis to better inform vulnerability remediation strategies and report progress


NetCat vs. SoCat:

Netcat and Socat allow you to send simple messages between computers over your network interactively. The following settings allow the client and the server to send data to the other party. It works like a simple ad hoc chat program. Socat can communicate with Netcat, and Netcat can communicate with Socat. Netcat is a network utility that reads and writes data over a network connection. Socat is a relay for bidirectional data transmission between two independent data channels.


Monday, May 30, 2022

Formal Methods

Formal methods are system design techniques that create software and hardware systems using a strictly specified mathematical model. Unlike other design systems, formal methods use mathematical proofs as a complement to system testing to ensure correct operation. As systems become more complex and security becomes an increasingly important issue, a formal approach to system design provides another layer of assurance. It is very important to note that formal validation does not rule out the need for testing. Formal verification can't correct bad design assumptions, but it helps identify flaws in thinking that would otherwise remain unconfirmed. In some cases, engineers report finding a bug in the system after a formal review of the design. Broadly speaking, formal design can be thought of as a three-step process that follows the following scheme.

1. Formal Specification: In the formal specification phase, engineers use a modeling language to strictly define the system. A modeling language is a fixed grammar that allows users to model complex structures from predefined types. The process of this formal specification is similar to the process of converting a word problem into algebraic notation. In many respects, this step in the formal design process is similar to the formal software engineering techniques developed by Rumbaugh, Booch, and others. At the very least, both techniques help engineers clearly define problems, goals, and solutions. However, the formal modeling language is more tightly defined. The formal grammar distinguishes between WFF (a logical expression) and NonWFF (a syntactically incorrect instruction). Already at this stage, the difference between WFF and non-WFF helps specify the design. Several engineers who have used the formal specification have stated that the clarity itself created at this stage is an advantage.

2. Verification: As mentioned above, formal methods differ from other specification systems in that they focus on provability and accuracy. By building a system using a formal specification, the designer is actually developing a set of theorems about his system. By proving these theorems correct, the formal. Verification is a difficult process, largely because even the simplest system has several dozen theorems, each of which has to be proven. Even a traditional mathematical proof is a complex affair, Wiles` proof of Fermat's Last Theorem, for example, took several years after its announcement to be completed. Given the demands of complexity and Moore's law, almost all formal systems use an automated theorem proving tool of some form. These tools can prove simple theorems, verify the semantics of theorems, and provide assistance for verifying more complicated proofs.

3. Implementation: After the model is specified and validated, the model is implemented by converting the specification into code. As the distinction between software and hardware design became narrower, formal methods for designing embedded systems emerged. For example, LARCH has a VHDL implementation. Similarly, hardware systems such as VIPER and AAMP5 processors have been developed using a formal approach.


Key concepts of formal methods:

Provability and automated verification: Formal methods differ from other specification systems in that they focus on accuracy and proof. This is ultimately another measure of system integrity. Evidence is a supplement, not an alternative to testing. Testing is an important part of ensuring the suitability of any system, but it is finite. Testing cannot show that the system is functioning properly. It can only show that the system is working in the tested cases. Testing does not show that the system works outside the tested case, so formal proof is required. Formal proof of computer system is not a new idea. Knuth and Dijkstra have written extensively on this subject, but their proofs are based on traditional mathematical methods. In pure science, evidence is verified through extensive peer review prior to publication. Such techniques are time consuming and far from perfect. It is not uncommon for published proofs to contain errors. Given the cost and time requirements of system engineering, traditional testing techniques are not really applicable. Due to the cost of manual verification, most formal methods use an automated theorem proving system to validate the design. The automated theorem prover can best be described as a mathematical CAD tool. These automatically prove simple theorems and help check more complex theorems.


Advantages:

Formal methods offer additional benefits beyond provability, and these benefits are worth mentioning. However, most of these benefits are available from other systems and usually do not have the sharp learning curve required by formal methods.

Discipline- Formal systems require engineers to think more thoroughly about their designs because of their rigor. In particular, formal justification requires rigorous specification of goals, not just operations. This thorough approach helps identify defective inferences much faster than traditional designs. Formal specification discipline has also been proven in existing systems. For example, an engineer using a PVS system reported that one of the microprocessor designs identified multiple microcode errors.

Precision- Traditionally, as the weaknesses of natural language writing became more apparent, we moved to jargon and formal notation. There is no reason that systems engineering should differ, and there are several formal methods which are used almost exclusively for notation. For engineers designing safety critical systems, the benefits of formal methods lie in their clarity. Unlike many other design approaches, the formal verification requires very clearly defined goals and approaches. In a safety critical system, ambiguity can be extremely dangerous, and one of the primary benefits of the formal approach is the elimination of ambiguity.


Disadvantage:

Bowen points out that formal methods are generally suspected by the professional engineering community, and that preliminary case studies and dissertation tendencies advocating formal methods seem to favor his dissertation. [Bowen93]. There are several reasons why formal methods are not used so often, most of them due to the exaggeration of supporters of formal methods.

Cost- Due to the strict relationship, formal methods are always costlier than traditional approaches to engineering. However, it is arguable how expensive formal verification is, as software cost estimates are more art than science. Formal methods generally have higher initial costs and consume less as the project progresses. This is the opposite of the normal software development cost model.

Computation Model Limitations- This is not a universal problem, but most formal methods introduce some form of computation model and usually do the operations allowed to make the notation elegant and proof of the system. Limit. Unfortunately, from a developer's point of view, these design limitations are usually considered intolerable.

Usability- Traditionally, formal methods have been judged on the basis of their abundance of descriptive models. That is, "good" formal methods describe different systems, and "bad" formal methods have limited ability to describe them. From a theoretical point of view, a comprehensive formal explanation is appealing, but the goal has always been to develop an incredibly complex and subtle explanation language that takes advantage of the difficulties of natural language. Fully formal method case studies often recognize the need for a more comprehensive approach.


The Lightweight approach:

In recent years, the focus has been on formal specification flaws and several alternative approaches have emerged. The traditional view of formal methods as a comprehensive and highly abstracted scheme has led to formal methods being inclusive, very rigorous and very expensive. Although attractive in theory, formal methods have generally been ignored by engineers in this area. A lightweight approach to formal design recognizes that formal methods are not a panacea. There are areas where formal methods are useful and areas where formal specifications are not. Lightweight designs use formal methods in specific locations and can be used in different subsystems. Ideally, take advantage of each method. In such systems, Petri nets can be used to describe communication protocols and LARCH systems can be used to model data storage. For the rest of the system, the formal specification can be omitted altogether. For example, you can use the rapid prototyping system and customer interviews to improve the user interface.


Available tools, techniques, and metrics

Larch: Unlike most formal systems, LARCH provides two levels of specification. A general high-level modeling language, and a collection of implementation dialects designed to work with specific programming languages.

SML: Standard Meta-Language is a strongly typed functional programming language originally designed for exploring ideas in type theory. SML has become the formal methods workhorse because of its strong typing and provability features.

HOL: HOL, short for Higher Order Logic, is an automated theorem proving system. As with most automated theorem proving systems, HOL is a computer-aided proof tool: it proves simple theorems and assists in proving more complicated statements, but is still dependent on interaction with a trained operator. HOL has been extensively used for hardware verification, the VIPER chip being a good example.

Petri Nets: Petri Nets are a good example of a very 'light' formal specification. Originally designed for modeling communications, Petri Nets are a graphically simple model for asynchronous processes.

Search Aptipedia