commit
9135940340
24
.github/workflows/add-contributors.yml
vendored
24
.github/workflows/add-contributors.yml
vendored
@ -1,24 +0,0 @@
|
|||||||
name: Add contributors
|
|
||||||
on:
|
|
||||||
schedule:
|
|
||||||
- cron: '0 12 * * *'
|
|
||||||
# push:
|
|
||||||
# branches:
|
|
||||||
# - master
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
add-contributors:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- uses: BobAnkh/add-contributors@master
|
|
||||||
with:
|
|
||||||
REPO_NAME: 'MichaelCade/90DaysOfDevOps'
|
|
||||||
CONTRIBUTOR: '### Other Contributors'
|
|
||||||
COLUMN_PER_ROW: '6'
|
|
||||||
ACCESS_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
|
||||||
IMG_WIDTH: '100'
|
|
||||||
FONT_SIZE: '14'
|
|
||||||
PATH: '/Contributors.md'
|
|
||||||
COMMIT_MESSAGE: 'docs(Contributors): update contributors'
|
|
||||||
AVATAR_SHAPE: 'round'
|
|
@ -1,7 +1,7 @@
|
|||||||
# Fuzzing
|
# Fuzzing
|
||||||
|
|
||||||
Fuzzing, also known as "fuzz testing," is a software testing technique that involves providing invalid, unexpected, or random data as input to a computer program.
|
Fuzzing, also known as "fuzz testing," is a software testing technique that involves providing invalid, unexpected, or random data as input to a computer program.
|
||||||
The goal of fuzzing is to identify security vulnerabilities and other bugs in the program by causing it to crash or exhibit unintended behavior.
|
The goal of fuzzing is to identify security vulnerabilities and other bugs in the program by causing it to crash or exhibit unintended behaviour.
|
||||||
|
|
||||||
Fuzzing can be performed manually or by using a testing library/framework to craft the inputs for us.
|
Fuzzing can be performed manually or by using a testing library/framework to craft the inputs for us.
|
||||||
|
|
||||||
@ -32,13 +32,13 @@ However, in more complex systems such fail points may not be obvious, and may be
|
|||||||
|
|
||||||
This is where fuzzing comes in handy.
|
This is where fuzzing comes in handy.
|
||||||
|
|
||||||
The Go Fuzzing library (part of the standard language library since Go 1.18) generates many inputs for a test case, and then based on the coverage and the results determines which inputs are "interesting".
|
The Go Fuzzing library (part of the standard language library since Go 1.18) generates many inputs for a test case, and then based on the coverage and the results determine which inputs are "interesting".
|
||||||
|
|
||||||
If we write a fuzz test for this function what will happen is:
|
If we write a fuzz test for this function what will happen is:
|
||||||
|
|
||||||
1. The fuzzing library will start providing random strings starting from smaller strings and increasing their size.
|
1. The fuzzing library will start providing random strings starting from smaller strings and increasing their size.
|
||||||
2. Once the library provides a string of lenght 4 it will notice a change in the test-coverage (`if (len(s) == 4)` is now `true`) and will continue to generate inputs with this lenght.
|
2. Once the library provides a string of length 4 it will notice a change in the test-coverage (`if (len(s) == 4)` is now `true`) and will continue to generate inputs with this length.
|
||||||
3. Once the library provides a string of lenght 4 that starts with `f` it will notice another change in the test-coverage (`if s[0] == "f"` is now `true`) and will continue to generate inputs that start with `f`.
|
3. Once the library provides a string of length 4 that starts with `f` it will notice another change in the test-coverage (`if s[0] == "f"` is now `true`) and will continue to generate inputs that start with `f`.
|
||||||
4. The same thing will repeat for `u` and the double `z`.
|
4. The same thing will repeat for `u` and the double `z`.
|
||||||
5. Once it provides `fuzz` as input the function will panic and the test will fail.
|
5. Once it provides `fuzz` as input the function will panic and the test will fail.
|
||||||
6. We have _fuzzed_ successfully!
|
6. We have _fuzzed_ successfully!
|
||||||
@ -56,7 +56,7 @@ Fuzzing is a useful technique, but there are situations in which it might not be
|
|||||||
|
|
||||||
For example, if the input that fails our code is too specific and there are no clues to help, the fuzzing library might not be able to guess it.
|
For example, if the input that fails our code is too specific and there are no clues to help, the fuzzing library might not be able to guess it.
|
||||||
|
|
||||||
If we change the example code from the previoud paragraph to something like this:
|
If we change the example code from the previous paragraph to something like this:
|
||||||
|
|
||||||
```go
|
```go
|
||||||
func DontPanic(s input) {
|
func DontPanic(s input) {
|
||||||
|
@ -1,17 +1,17 @@
|
|||||||
# IAST (Interactive Application Security Testing)
|
# IAST (Interactive Application Security Testing)
|
||||||
|
|
||||||
IAST is a type of security testing tool that is designed to identify vulnerabilities in web applications and help developers fix them. It works by injecting a small agent into the application's runtime environment and monitoring its behavior in real-time. This allows IAST tools to identify vulnerabilities as they occur, rather than relying on static analysis or simulated attacks.
|
IAST is a type of security testing tool that is designed to identify vulnerabilities in web applications and help developers fix them. It works by injecting a small agent into the application's runtime environment and monitoring its behaviour in real-time. This allows IAST tools to identify vulnerabilities as they occur, rather than relying on static analysis or simulated attacks.
|
||||||
|
|
||||||
IAST works through software instrumentation, or the use of instruments to monitor an application as it runs and gather information about what it does and how it performs. IAST solutions instrument applications by deploying agents and sensors in running applications and continuously analyzing all application interactions initiated by manual tests, automated tests, or a combination of both to identify vulnerabilities in real time Instrumentation.
|
IAST works through software instrumentation, or the use of instruments to monitor an application as it runs and gather information about what it does and how it performs. IAST solutions instrument applications by deploying agents and sensors in running applications and continuously analyzing all application interactions initiated by manual tests, automated tests, or a combination of both to identify vulnerabilities in real time Instrumentation.
|
||||||
IAST agent is running inside the application and monitor for known attack patterns. As it is part of the application, it can monitor traffic between different components (either as classic MVC deployments and in microservices deployment).
|
IAST agent is running inside the application and monitoring for known attack patterns. As it is part of the application, it can monitor traffic between different components (either as classic MVC deployments and in microservices deployment).
|
||||||
|
|
||||||
## For IAST to be used, there are few prerequisites.
|
## For IAST to be used, there are few prerequisites.
|
||||||
- Application should be instrumented (inject the agent).
|
- Application should be instrumented (inject the agent).
|
||||||
- Traffic should be generated - via manual or automated tests. Another possible approach is via DAST tools (OWASP ZAP can be used for example).
|
- Traffic should be generated - via manual or automated tests. Another possible approach is via DAST tools (OWASP ZAP can be used for example).
|
||||||
|
|
||||||
## Advantages
|
## Advantages
|
||||||
One of the main advantages of IAST tools is that they can provide detailed and accurate information about vulnerabilities and how to fix them. This can save developers a lot of time and effort, as they don't have to manually search for vulnerabilities or try to reproduce them in a testing environment. IAST tools can also identify vulnerabilities that might be missed by other testing methods, such as those that require user interaction or are triggered under certain conditions. Testing time depends on the tests used (as IAST is not a standalone system) and with faster tests (automated tests) can be include into CI/CD pipelines. It can be used to detect different kind of vulnerabilities and due to the nature of the tools (it looks for “real traffic only) false positives/negatives findings are relatively rear compared to other testing types.
|
One of the main advantages of IAST tools is that they can provide detailed and accurate information about vulnerabilities and how to fix them. This can save developers a lot of time and effort, as they don't have to manually search for vulnerabilities or try to reproduce them in a testing environment. IAST tools can also identify vulnerabilities that might be missed by other testing methods, such as those that require user interaction or are triggered under certain conditions. Testing time depends on the tests used (as IAST is not a standalone system) and with faster tests (automated tests) can be included into CI/CD pipelines. It can be used to detect different kind of vulnerabilities and due to the nature of the tools (it looks for “real traffic only) false positives/negatives findings are relatively rear compared to other testing types.
|
||||||
IAST can be used in two flavors - as a typical testing tool and as real-time protection (it is called RAST in this case). Both work at the same principals and can be used together.
|
IAST can be used in two flavours - as a typical testing tool and as real-time protection (it is called RAST in this case). Both work at the same principles and can be used together.
|
||||||
|
|
||||||
## There are several disadvantages of the technology as well:
|
## There are several disadvantages of the technology as well:
|
||||||
- It is relatively new technology so there is not a lot of knowledge and experience both for the security teams and for the tools builders (open-source or commercial).
|
- It is relatively new technology so there is not a lot of knowledge and experience both for the security teams and for the tools builders (open-source or commercial).
|
||||||
@ -21,7 +21,7 @@ IAST can be used in two flavors - as a typical testing tool and as real-time pro
|
|||||||
|
|
||||||
There are several different IAST tools available, each with its own features and capabilities.
|
There are several different IAST tools available, each with its own features and capabilities.
|
||||||
## Some common features of IAST tools include:
|
## Some common features of IAST tools include:
|
||||||
- Real-time monitoring: IAST tools monitor the application's behavior in real-time, allowing them to identify vulnerabilities as they occur.
|
- Real-time monitoring: IAST tools monitor the application's behaviour in real-time, allowing them to identify vulnerabilities as they occur.
|
||||||
- Vulnerability identification: IAST tools can identify a wide range of vulnerabilities, including injection attacks, cross-site scripting (XSS), and cross-site request forgery (CSRF).
|
- Vulnerability identification: IAST tools can identify a wide range of vulnerabilities, including injection attacks, cross-site scripting (XSS), and cross-site request forgery (CSRF).
|
||||||
- Remediation guidance: IAST tools often provide detailed information about how to fix identified vulnerabilities, including code snippets and recommendations for secure coding practices.
|
- Remediation guidance: IAST tools often provide detailed information about how to fix identified vulnerabilities, including code snippets and recommendations for secure coding practices.
|
||||||
- Integration with other tools: IAST tools can often be integrated with other security testing tools, such as static code analysis or penetration testing tools, to provide a more comprehensive view of an application's security.
|
- Integration with other tools: IAST tools can often be integrated with other security testing tools, such as static code analysis or penetration testing tools, to provide a more comprehensive view of an application's security.
|
||||||
|
Loading…
Reference in New Issue
Block a user