[UPDATE] Log4j RCE 0-day vulnerability (CVE-2021-44228) mitigation actions

CVE-2021-44228 - Log4j RCE 0-day mitigation

UPDATE 14/12/2021

I had an update from my very good friend and excellent consultant Stella Varvarigou in which she explained me that setting com.sun.jndi.rmi.object.trustURLCodebase and com.sun.jndi.cosnaming.object.trustURLCodebase to false does not fully mitigate the threat as it is possible to send the exploit code with the request.  [2]

Introduction

Apache Log4j, the most popular logging system, has announced a zero-day exploit CVE-2021-44228 on December 9, 2021 that results in remote code execution. Let’s analyze whys this happened and what can be done in order to mitigate the risk. Continue reading “[UPDATE] Log4j RCE 0-day vulnerability (CVE-2021-44228) mitigation actions”

The Transient Keyword in Java and Its Use

This article is originally posted by me in Java Code Geeks with title

The Transient Keyword in Java and Its Use

I recently came a cross in a study project of one of my friends that are studding the basics of programming in Java some forgotten sensitive information printed in text files and remembered the transient keyword in Java.

The transient keyword in Java plays an important role in terms of security and can be very useful in “accidents” like the one above as it will prevent the transmission of sensitive information like for example passwords to files, JSON messages etc that will require serialization.

To cut the long story short, if you define any variable as transient, it will not be serialized unless you define it as static or final.

Lets see some examples bellow. Continue reading “The Transient Keyword in Java and Its Use”

Java Quiz no1

Consider the following code

[code language=”java”]

public class JavaApplication4 {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {

String testValue = "1";

try{
  testValue = "2";
return;
}catch(Exception e){

}finally{
testValue = "3";
}

}
}

[/code]

What will be the value of testValue at the end of execution?

Τα Java VM Options που πρέπει να ξέρεις τι κάνουν!

Είναι πάρα πολλές οι φορές που συναντώ στησίματα σε servers με JVM options και στην ερώτηση μου “γιατί είναι επιλεγμένα αυτά τα options?” η απάντηση είναι: “Γιατί το είχε πει ο “Θανάσης” “που ήξερε” ή “Τι να σου πω; έτσι το βρήκα και μου φάνηκε καλό”.

Αποφάσισα, λοιπόν, να γράψω αυτό το άρθρο, για να αναφέρω τις πιο συχνές παραμέτρους που χρησιμοποιώ εγώ για Java 6 μέχρι και 8, σε παραγωγικά και μη περιβάλλοντα.
Continue reading “Τα Java VM Options που πρέπει να ξέρεις τι κάνουν!”

Πως επιλέγω το κατάλληλο Implementation για το Collection μου

Java Collections Cheat Sheet

Συχνά στους junior programmers έρχομαι αντιμέτωπος με το πρόβλημα του να χρησιμοποιούν ένα  collection implementation, συνήθως  ArrayList ή HashSet, επειδή απλά αυτό βλέπουν συχνά χωρίς να ξέρουν τις ιδιαιτερότητές του με αποτέλεσμα διάφορα προβλήματα όπως να χάνεται η σειρά ενώ τη χρειάζονται, να χάνονται διπλές εγγραφές κλπ.

Οπότε αποφάσισα να γράψω αυτόν τον οδηγό για την κατάλληλη επιλογή του

Continue reading “Πως επιλέγω το κατάλληλο Implementation για το Collection μου”

Συνέδριο JavaOne 2016 – Live Streaming

Για άλλη μια χρονιά το Java One παραμένει η κορυφή στα συνέδρια γύρω απο τη Java!

Όταν πας στο Σαν Φρανσίσκο ξέρεις ότι  θα συναντήσεις τα καλύτερα μυαλά γύρω απο τη java και θα φύγεις απο εκεί καλύτερος προγραμματιστής.

Στον εκθεσιακό χώρο του Java One εχουν συγκεντρώσει τις πιο καινοτόμες εταιρείες που χρησιμοποιούν Java σήμερα-και αυτοί που διαμορφώνουν το μέλλον.

Για του άτυχους που δεν είναι εκεί υπάρχει live streaming που θα το δείτε εδώ http://www.oracle.com/javaone/live/index.html

[video] Lightweight JEE7 with JAX RS

Είχα την τύχη να παρακολουθήσω φέτος το εκπληκτικό συνέδριο JCrete μετά απο πρόσκληση για εκδήλωση ενδιαφέροντος του Java Champion και συνδιοργανωτή Dr Heinz Kabutz . Εκεί λοιπόν σε μια παρουσίαση του Java Champion Sebastian Daschner με αντίστοιχο θέμα είδα τη δυνατότητα με χρήση JEE χωρίς να κατασκευάζεις τεράστιες και “βαριές” εφαρμογές της δημιουργίας μικρών web εφαρμογών που γρήγορα σου δίνουν RESTfull endpoint exposure οπότε αποφάσισα να φτιάξω το παρακάτω βίντεο.

Όλος ο κώδικας του παρακάτω βίντεο είναι στο Github https://github.com/diakogiannis/LightJee7WithJaxRS

Σύντομα θα βγάλω και δεύτερο μέρος που να περιλαμβάνει persistence κλπ.