Alexey Vishnyakov

331 Followers
60 Following
54 Posts
PhD, Senior DevSecOps Engineer at Yandex Cloud, ex ISP RAS
Websitehttps://vishnya.xyz
Twitterhttps://twitter.com/VishnyaSweet
LinkedInhttps://linkedin.com/in/sweetvishnya
GitHubhttps://github.com/SweetVishnya

I'm happy to announce the release of a new open-source library we've been working on: Go library for structure-aware fuzzing, designed as an analogue to libprotobuf-mutator. Fuzz your gRPC APIs and integrate into SSDLC.

https://github.com/yandex-cloud/go-protobuf-mutator

#fuzzing #go #grpc #ssdlc

GitHub - yandex-cloud/go-protobuf-mutator: This is a go-protobuf-mutator library for random value mutations. This is a Go equivalent of libprotobuf-mutator, which is implemented in C++.

This is a go-protobuf-mutator library for random value mutations. This is a Go equivalent of libprotobuf-mutator, which is implemented in C++. - yandex-cloud/go-protobuf-mutator

GitHub
Discovering 12 new integer truncation #bugs (and generating PoC seeds) in LibTIFF, libpcap, nDPI, unbound, FreeImage with dynamic symbolic execution. https://arxiv.org/abs/2312.06425
Numeric Truncation Security Predicate

Numeric truncation is a widely spread error in software written in languages with static data typing, such as C/C++ or Java. It occurs when the significant bits of the value with a bigger type size are truncated during value conversion to the smaller type. Utilizing one of the most powerful methods for path exploration and automated bug detection called dynamic symbolic execution (DSE), we propose the symbolic security predicate for numeric truncation error detection, developed on top of DSE tool Sydr. Firstly, we execute the program on the data, which does not lead to any errors. During program execution we update symbolic shadow stack and shadow registers to track symbolic sizes of the symbolic variables to avoid false positives. Then, if we meet the instruction, which truncates the symbolic variable, we build the security predicate, try to solve it with the SMT-solver and in case of success save new input file to reproduce the error. We tested our approach on Juliet Dynamic test suite for CWE-197 and achieved 100% accuracy. We approved the workability of our approach by detecting 12 new errors of numeric truncation in 5 different real-world open source projects within OSS-Sydr-Fuzz project. All of the errors were reported, most of the reports were equipped with appropriate fixes, successfully confirmed and applied by project maintainers.

arXiv.org
Release Release v2.7.0 · ispras/casr

[casr-ubsan]: Tool for triaging Ubsan warnings. [casr-dojo]: Tool for exporting CASR reports to DefectDojo vulnerability management platform. [casr-java]: Tool for creating CASR reports for JAVA ap...

GitHub

Simply deduplicate and create reports for #UndefinedBehaviorSanitizer warnings with Casr: casr-ubsan -i corpus -o out -- /fuzz_target @@

https://github.com/ispras/casr/blob/master/docs/usage.md#casr-ubsan

#casr #defectdojo #vulnerabilitymanagement #VulnerabilityAssesment #AppSec #DevSecOps
Image

casr/docs/usage.md at master · ispras/casr

Collect crash reports, triage, and estimate severity. - ispras/casr

GitHub
casr/docs/usage.md at master · ispras/casr

Collect crash reports, triage, and estimate severity. - ispras/casr

GitHub
https://github.com/ispras/casr/releases/tag/v2.6.0
#casr 2.6.0, what's new:
casr-libfuzzer tool for triaging crashes found by libFuzzer based fuzzers (C/C++/go-fuzz/Atheris)
kodama crate for clustering instead of python scipy
RISCV support
#fuzzing
Release Release v2.6.0 · ispras/casr

casr-libfuzzer tool for triaging crashes found by libFuzzer based fuzzers (C/C++/go-fuzz/Atheris) kodama crate for clustering instead of python scipy riscv support clap 4.2 for options parsing

GitHub

casr-libfuzzer: triage crashes in C/C++/Go/Python code found by libFuzzer/Atheris/go-fuzz

casr-libfuzzer -o out -- /fuzz_target

https://github.com/ispras/casr

#casr #fuzzing #libfuzzer #atheris #go #python #cpp

GitHub - ispras/casr: Collect crash reports, triage, and estimate severity.

Collect crash reports, triage, and estimate severity. - GitHub - ispras/casr: Collect crash reports, triage, and estimate severity.

GitHub
https://github.com/ispras/casr/releases/tag/v2.5.0
#casr 2.5.0, what's new:
#libcasr: library for crash triage, stacktrace parsing, severity estimation, and collecting crash reports.
Crash triaging for Go panics
AARCH64 support
#fuzzing
Release Release v2.5.0 · ispras/casr

libCASR: a library for triaging and severity estimation of crashes crash triaging for Go panics crash triaging for AARCH64 binaries improved stacktrace filtering added environment variables to casr...

GitHub
My blog post about #fuzzing #go project golang/image: https://github.com/ispras/oss-sydr-fuzz/wiki/Fuzzing-golang-image-%28Go%29-project-with--sydr-fuzz-%28go-fuzz-backend%29
0. Changing existing fuzz target to find new bugs.
1. Creating target for symbolic execution.
2. Approach for code coverage collection after fuzzing with go-fuzz libFuzzer.
3. Go panic triage with #casr.
4. Fix: https://github.com/golang/image/pull/14
Fuzzing golang image (Go) project with sydr fuzz (go fuzz backend)

OSS-Sydr-Fuzz - OSS-Fuzz fork for hybrid fuzzing (fuzzer+DSE) open source software. - ispras/oss-sydr-fuzz

GitHub