aegis4j
jabel
aegis4j | jabel | |
---|---|---|
8 | 9 | |
14 | 790 | |
- | - | |
4.5 | 3.5 | |
over 2 years ago | 2 months ago | |
Java | Java | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
aegis4j
-
What's new in Java 18 for us, developers ?
The guys at Oracle have made this point on this forum quite often, but it never really hit home for me personally until the recent log4j vulnerability made me more interested in the topic and the available mitigation options (see https://github.com/gredler/aegis4j/).
-
CVE-2021-44832: New Log4j 2 vulnerability
If you've been impacted by these log4j vulnerabilities, have a look at aegis4j, a Java agent that completely disables platform features you don't use, before an attacker uses them against you (including e.g. JNDI and Java serialization).
https://github.com/gredler/aegis4j/
- Aegis4j: Avoid the Next Log4Shell Vulnerability
-
Log4j MEGATHREAD
Yep, this is why strategically patching InitialContext when the class is initially loaded will completely disable JNDI (and mitigate future JNDI-based exploits).
- aegis4j: Avoid the NEXT Log4Shell vulnerability!
-
Log4j 2.15.0 – Previously suggested mitigations may not be enough
The recent log4j vulnerability really piqued my interest, and I've spent the last few evenings working on a proof of concept Java agent that could mitigate similar vulnerabilities in the future, for applications that are able to completely forego platform features like JNDI, serialization or native process execution.
Link to the project: https://github.com/gredler/aegis4j
It's not a lot of code, but it uses parts of the platform that I think are a bit unusual for most devs, so it was quite interesting to implement. Happy to discuss details, ideas, and concerns.
One idea for a possible improvement is to make the feature block list adaptive, i.e. watch what the application uses in the first few minutes of execution, and then shut down all unused "dangerous" features for the remaining lifetime of the VM. Not sure how reliable this would be though, especially for services which have background jobs that might only run once a day.
jabel
-
What Are Senders Good For, Anyway?
Java has things like Jabel that let you use modern Java syntax and compile down to Java 8 for compatibility reasons.
https://github.com/bsideup/jabel
This is useful commercially, but also nice when building Minecraft mods for older versions of Minecraft.
-
How to use different Java versions for src/main/java and src/test/java in Maven
As for Java bytecode, you assume the differences are significant while in reality, they are not, as explained by the Jabel project:
-
What can I do with Java 1.4?
(Before realizing it'd already been done)
-
What's new in Java 18 for us, developers ?
If you want to use new language features (pattern matching, string templates, records etc.) then I highly recommend to take a look at https://github.com/bsideup/jabel
- Minecraft 1.18 Pre-Release 2: Minecraft 1.18 will require Java 17
-
What version should new Java libraries be written in?
I've never heard of somebody sticking to 9 or 10 as their primary JDK. AFAIK most people who could update waited for the 11 LTS. The rest of us are just stuck on 8. But we have some nice tricks.
-
Is it possible to any jre under 16 to recognise class ver 60 ?
https://github.com/bsideup/jabel - lets you use new Java syntax, because things like pattern matching are just syntatic sugar and dont change the class file specification
-
Eclipse Compiler supports -source 16 -target 8
I've found about the Jabel that tried to enable this feature in the Javac compiler.
- Are there byte code differences between different Java releases?
What are some alternatives?
Apache Log4j 2 - Apache Log4j 2 is a versatile, feature-rich, efficient logging API and backend for Java.
Mixin - Mixin is a trait/mixin and bytecode weaving framework for Java using ASM