Unknown's avatar

About hvivani

Systems Engineer, Developer, Technical Leader, IT Manager

log4j vulnerability – quick notes


This issue may lead to remote code execution (RCE) via use of JNDI.

  • Vendor: Apache Software Foundation
    • Product: Apache Log4j
      • <=2.14.1: affects 2.14.1 and prior versions

Fix: log4j 2.15.0

To list all JAR files on your system containing the vulnerable class file (including fat JARs), you can use:

for f in $(find . -name '*.jar' 2>/dev/null); do echo "Checking $f…"; unzip -l "$f" | grep -F org/apache/logging/log4j/core/lookup/JndiLookup.class; done

Additional details here:

https://www.cve.org/CVERecord?id=CVE-2021-44228

[FOR SALE] Colnago Superissimo SLX 1988 – Superconfex team


Restoration work finished in: 12/2021

Original white/green retinato superconfex team paint design: This rather unusual white and green colour scheme with “retinato” webbing pattern is the paintjob of the Dutch team Superconfex. It was the famous predecessor of Buckler, Rabobank and Jumbo Visma teams.

Superconfex team

Size: Top Tube 55cm (center to center). Seat Tube 55cm (center to center). Head Tube: 13cm.

ALL Campagnolo Chorus 1st Gen components.

Columbus SLX Reinforced tubing (photos of the SLX riffling visible on the bottom bracket are available).

Frame weight: 2010 grams. Perfectly straight.

Additional details: Headset (Campagnolo Super Record), Handlebar/Stem (Cinelli Gir D’Italia), new Rims (Mavic CXP Pro), new Tyres (Continental Ultra Sport II), Saddle (Selle San Marco).


Colnago Catalogue reference

Ballester Molina Año 1946


Hace un tiempo se me ha dado el privilegio de ser el custodio de un trozo de historia Argentina que ha servido al pais por muchos años.

Es una Ballester Molina (he encontrado que en Estados Unidos la llaman con gran respeto Ballester-Mollester) del año 1946 (numero de serie 50831 perteneciente a Gendarmeria Nacional)

Aqui van algunas fotos y un poco de historia:

Un poco de historia:

En 1927, Argentina adopta como arma reglamentaria la pistola Colt 1911 A1, comprando 10.000 unidades, obtiene la licencia de fabricación y llega a producir 74.866 pistolas más (sistema colt) en la fábrica estatal de Rosario a lo largo de décadas.

 En 1929 se forma la sociedad Hispano Argentina Fábrica de Automóviles S.A. (HAFDASA) por dos empresarios  españoles Arturo Ballester y su cuñado, el ingeniero Eugenio Molina.

Conscientes de lo caros y lentos de fabricar, que son los productos Colt, encargan el proyecto de una pistola de este tipo y calibre, a su familiar Carlos Ballester Molina ayudado por el francés Rigaud Rorice, como jefe de diseño.

 Se opta por producir una pistola inspirada en las españolas Llama y la Star model B español, copiando las simplicaciones de estas respecto a la original de Colt.

 Presentada ante la Dirección General de Material del Ejército, ante la amenaza de guerra mundial y la necesidad de producir armas propias, se acepta, pero el Ejército Argentino le pone como condición que los cargadores y cañones, sean intercambiables con los de la Colt 1911 A1.

Así nace la primera pistola semiautomática de HAFDASA: la “Pistola Automática Calibre .45 Ballester-Rigaud, Modelo DGME 1938.” Esta fue su primer nombre y posteriormente se realizaron pequeñas modificaciones en el exterior para acelerar la producción, denominándosela “Pistola Ballester-Rigaud.” empezando a fabricarse a final de 1937 y a ser distribuida en 1938 a las fuerzas armadas y seguridad.

En 1940 – 1942 Rigaud abandona la empresa por motivos poco claros, la fabrica HAFDASA cambia la nominación de su pistola llamándola “Ballester Molina”.

En 1942 el consulado británico se contacta con HAFDASA para la adquisición de 10.000 pistolas, lo cual hasta 1943 HAFDASA hace llegar gobierno británico una partida de 8 a 10.000 pistolas numeradas del 12.000 al 21.000, con una letra B delante, (pistolas que fueron utilizadas por los SOE y las ratas del desierto,  en el norte de áfrica ya que notaron que la colt 1911 se trababa con la arena, por el seguro de empuñadura lo cual con la Ballester no pasaba).

De 1943 hasta 1957 la Ballester molina fue dotando de una excelente arma a las diferentes fuerzas armadas y de seguridad.

HAFDASA en 1953 cerró, las últimas armas producidas datan de 1957.

Alrededor de los 1956 – 1960 se incorpora armamento moderno tanto largo como corto donde tanto para las fuerzas armadas y seguridad, la Ballester molina es dada de baja como arma de dotación y pasa remplazarla la pistola FN browning HP -35 que luego pagando la patentes se fabrica en argentina la browning.

Pero en 1982 es donde tropas de PM militar de ejército argentino y fuerza aérea argentina, morteristas, comunicaciones y fuerzas especiales se ve pistolas Ballester molina como dotación personal o a elección remplazaron la browning por la Ballester.

DATOS EXTRAS:

Los pocos ejemplares marcados con la leyenda “Pistola Automática Calibre .45 Ballester-Rigaud, Modelo DGME 1938.” Fueron producidos en 1937 y rápidamente se realizaron pequeñas modificaciones en el exterior para acelerar la producción, denominándosela “Pistola Ballester Rigaud.”

Los ejemplares marcados con la leyenda “Ballester Rigaud” fueron producidos entre 1938 y 1942.

Los ejemplares marcados con la leyenda “Ballester Molina” fueron producidos entre 1942 y 1953.

Fuerzas armadas y de seguridad que tuvieron como dotación la pistola “Ballester rigaud” fueron:

  • Policía Aduanera.
  • Policía de Territorio Nacionales.
  • Gendarmería Nacional.
  • Policía de la Capital.
  • Policía Marítima.
  • República Argentina Armada Nacional.
  • Ejército Argentino.
  • Ingleses y sin marcas.

Fuerzas armadas y de seguridad que tuvieron como dotación la pistola “Ballester Molina” fueron:

  • Policía Aduanera.
  • Gendarmería Nacional.
  • Policía de la Capital.
  • policia federal argentina.
  • Policía Marítima.
  • Policía de la Provincia de Buenos Aires.
  • República Argentina Armada Nacional.
  • Armada Argentina.
  • Ejército Argentino.
  • Aeronáutica Argentina.
  • Policía de la Provincia de San Juan.
  • Provincia Presidente Perón.
  • Provincia Eva Perón.
  • Fundación Eva Perón.
  • Secretaría de Comunicaciones.
  • Coordinación federal de seguridad.
  • Inglesas y sin marcas.
  • Chile compro alrededor de 400 pistolas Ballester molina.
  • Colombia compro alrededor de 350 pistolas Ballester molina.
  • Ecuador, Perú y Venezuela realizaron compras de Ballester sin marcas y pocas cantidades.

PRODUCCION POR AÑO:

“BALLESTER RIGAUD”.

Año 1938 – N° de serie 1 – 100 producción de 100 pistolas.

Año 1939 – N° de serie 101 – 1.357 producción de 1.257 pistolas.

Año 1940 – N° de serie 1.358 – 5.673 producción de 4.316 pistolas.

Año 1941 – N° de serie 5.674 – 7.090 producción de 1.417 pistolas.

Año 1942 – N° de serie 7.091 – 10.000 producción de 2.910 pistolas.

Un total de 9.900 pistolas Ballester rigaud desde 1938 hasta 1942.

“BALLESTER MOLINA”.

Año 1943 – N° de serie 10.001 – 13.972 producción de 3.972 pistolas.

Año 1944 – N° de serie 13.973 – 27.196 producción de 13.224 pistolas.

Año 1945 – N° de serie 27.197 – 40.939 producción de 13.743 pistolas.

Año 1946 – N° de serie 40.940 – 55.576 producción de 14.637 pistolas.

Año 1947 – N° de serie 55.577 – 64.366 producción de 8.790 pistolas.

Año 1948 – N° de serie 64.352 – 71.651 producción de 7.285 pistolas.

Año 1949 – N° de serie 71.652 – 73.701 producción de 2.049 pistolas.

Año 1950 – N° de serie 73.702 – 81.100 producción de 7.399 pistolas.

Año 1951 – N° de serie 81.101 – 95.527 producción de 14.427 pistolas.

Año 1952 – N° de serie 95.528 – 103.824 producción de 8.297 pistolas.

Año 1953 – N° de serie 103.825 – 105.000 producción de 1.175 pistolas.

Año 1954 – N° de serie 105.001 – 108.000 producción de 3.000 pistolas.

Año 1955 – N° de serie 108.001 – 110.063 producción de 2.064 pistolas.

Año 1956 – N° de serie 0 producción 0 de pistolas.

Año 1957 – N° de serie 110.064 – 113.034 producción de 2.970 pistolas.

Un total de 103.032 pistolas Ballester molina desde 1943 hasta 1957.

En la orden del día interna N° 108 del 10 de septiembre de 1968, correspondiente al ámbito de la Policía Federal Argentina, fue publicada la formación de una comisión verificadora para reemplazar las pistolas Ballester Molina calibre .45 ACP por la browning hp -35.

DIFERENTES PISTOLAS DE BALLESTER:

  • Pistola “Ballester Rigaud”.
  • Pistola “Ballester Molina”.
  • Pistola “Ballester molina con el kit a calibre 22 lr”.
  • Pistola “Ballester Molina con reforma venturini y baatan a calibre 22 lr” estos cambios de calibre eran para entrenamiento y practica en policía de la provincia de buenos aires y fuerza aérea argentina.
  • Pistola “Ballester Molina Mod. Campeón cal. 22lr”.
  • Pistola “Ballester molina Mod. Campeón caño largo de 7-1/2″cal. 22lr”.
  • Pistola “Ballester molina Mod. Súper campeón caño largo y moleteado a lo largo del caño cal. 22lr”.

FICHA TECNICA:

Calibre entre campos: 11,25 mm (.443).

Calibre entre fondos: 11,43 mm (.45).

Largo total: 212,00 mm.

Alto total: 137,00 mm.

Grueso de la empuñadura: 32,00 mm.

Largo del cañón: 127,80 mm.

Largo de la parte estriada: 105,00 mm.

Numero de estrías: 6.

Profundidad de estrías: 0,10 mm.

Ancho de las estrías: 3,87 mm.

Paso del estriado: 406,40 mm.

Sentido del estriado: derecha a izquierda.

Inclinación del estriado: 5º.

Largo de la línea de mira: 159,00 mm.

Peso de la pistola: 1.060,00 grs.

Peso del cargador: 70,00 grs.

Capacidad del cargador: 7 cartuchos + 1 en recamara.

Sistema operativo: simple acción.

CARACTERISTICAS DEL CARTUCHO:

Longitud del cartucho: 32 mm.

Peso del cartucho: 21 grs.

Peso de la munición (núcleo de plomo, envuelta de acero Cupro niquelado, de la época) 14,80 grs.

Alto total: 0, 39 grs.

Velocidad inicial: 245,00 mts/seg.

Fuerza viva en la boca: 45,00 Kgm.

Penetración en la madera de pino a 25 mts.(no especifica esp.): 16,00 cm.

Velocidad de fuego: 5 disparos por segundo.

ESPECIFICACIONES:

Las diferencias fundamentales con la pistola Colt son: la supresión del seguro de empuñadura; la modificación del sistema de disparo al estilo de la Star Modelo B; el alojamiento del resorte del martillo está integrado al armazón y no en una pieza aparte como la Colt; la corredera no tiene la muesca de desarme; el martillo tiene un diseño plano y más pequeño más simple de producir; y algunas diferencias en el reten del cargador, la aguja percutora y la palanca de seguro. Pero el look general es muy similar y recuerda inmediatamente a la famosa Colt .45.

Fuente: https://clubdearmas.com/la-historia-de-la-pistola-hafdasa-ballester-rigaud-y-ballester-molina/

Garlic Butter Oven Baked Tilapia


RECIPE INGREDIENTS

  • Tilapia Fillets: This recipe uses four medium-sized fillets.
  • Salt and Pepper
  • Dried Thyme, Dried Oregano, and Ground Paprika: Use regular paprika, not hot or smoked paprika.
  • Butter: You’ll need 4 tablespoons, melted.
  • Fresh Garlic: Mince the garlic or put it through a garlic press.
  • Fresh Lemon Juice and Lemon Zest: You’ll need two tablespoons of juice and ¼ teaspoon of zest.
  • Lemon Slices, Red Pepper Flakes, and Chopped Parsley: For garnish.

HOW TO MAKE BAKED TILAPIA

  1. Prepare the Tilapia Fillets. Season tilapia with salt, pepper, paprika, thyme, and oregano; arrange fish in a 9×13 baking dish. In a mixing bowl, whisk together melted butter, garlic, lemon juice, and lemon zest; pour over tilapia.
  2. Bake the Fillets. Bake tilapia for 10 to 12 minutes, or until fish flakes and is fork-tender.
  3. Serve! Garnish with pepper flakes, parsley, and lemon slices and enjoy!

Raspberry Pi + Java R2D2 Robot – Part 1


This project was born as a Coronavirus project for my kids (you know how difficult could be to have your kids all day at home… oh school: please come back, we forgive you!)

On this post we cover the initial steps, including the full platform/chassis running, commanded by a Raspberry Pi and some Java code.

On this video we can see the chassis running:

The body of the R2D2 will be a 12″ cardboard tube from Home Depot. The chassis aluminum flat bars are also from HD:

2020-04-18 10.16.05

R2D2 head will be molded from a balloon, newspaper paper and paste (flour + water):

2020-04-18 11.46.58

Chassis design:

2020-04-18 11.47.28

Cutting, drilling and assembling:

2020-04-18 12.28.45

2020-04-18 12.34.452020-04-18 12.53.332020-04-18 12.57.15

This is how the chassis will fit into the tube:

2020-04-18 12.46.53

Soldering:

2020-04-18 13.09.55-4

Wheels in place:

2020-04-18 14.02.44

Preliminary setup and code testing:

2020-04-18 14.13.242020-04-19 11.05.302020-04-19 12.09.46-22020-04-19 12.09.46

Final assembly of the chassis:

2020-04-19 12.42.58

We are using two separate battery packs: one for the raspberry and a second one (more amps and 12V) for the motors and the L298n motor driver:2020-04-19 13.02.19

To be continued…..

2020-04-19 18.24.02

Part 2 is available here: https://vivani.net/2023/03/06/raspberry-pi-java-r2d2-robot-part-2/

Proyecto Raspberry Pi + Java R2D2 Robot – Parte 1


Este proyecto nacio a causa del Coronavirus como una manera de mantener entretenidos a mis hijos (me imagino que ya saben que complicado puede ser tener a los chicos todo el dia en casa… Escuela volve!!)

En este post les muestro los pasos iniciales, incluyendo la construccion de la plataforma/chasis, y su funcionamiento comandado por un Raspberry Pi y algo de codigo en Java

En este video, vemos como funciona hasta ahora con el chassis ya ensamblado:

 

El “cuerp” del R2D2 es un tubo de carton de 12″ de los que se usan en construccion. El chasis esta construido con barras planas de aluminio:

2020-04-18 10.16.05

 

La cabeza del R2D2 se moldea con un globo, papel de diario y engrudo (agua y harina):

2020-04-18 11.46.58

 

Diseño del chasis:

2020-04-18 11.47.28

 

Cortando, taladrando y ensamblando:

2020-04-18 12.28.45

2020-04-18 12.34.452020-04-18 12.53.332020-04-18 12.57.15

 

 

 

 

 

 

 

 

 

 

 

Asi quedara el chasis en el tubo:

2020-04-18 12.46.53

 

Soldando:

2020-04-18 13.09.55-4

 

Ruedas en su lugar:

2020-04-18 14.02.44

 

Armado preliminar y prueba de codigo:

2020-04-18 14.13.242020-04-19 11.05.302020-04-19 12.09.46-22020-04-19 12.09.46

 

 

 

 

 

 

 

 

 

 

Ensambrado final del chasis:

2020-04-19 12.42.58

 

Usamos dos paquetes de baterias recargables: una para el Raspberry y otra (con mas amperaje y de 12V) para los motores y el driver L298N:

2020-04-19 13.02.19

 

Continuara…..

2020-04-19 18.24.02

Linux Kernel Tuning: task blocked for more than 120 seconds


This might be old school, and maybe even boring reading. But, if you concern about performance on Linux servers, at some point, you will have to have a look to the kernel messages.

The problem:

When we run very stressful jobs running on large servers (large number of CPU’s and RAM memory), where IO activity is very high. It is pretty common to start seeing these messages on the ‘dmesg’ kernel output:

[24169.372862] INFO: task kswapd1:1140 blocked for more than 120 seconds.
[24169.375623] Tainted: G E 4.9.51-10.52.amzn1.x86_64 #1
[24169.378445] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[24169.382533] kswapd1 D 0 1140 2 0x00000000
[24169.385066] ffff8811605c5a00 0000000000000000 ffff8823645dc900 ffff882362844900
[24169.389208] ffff882371357c00 ffffc9001a13ba08 ffffffff8153896c ffffc9001a13ba18
[24169.393329] ffff881163ac92d8 ffff88115e87f400 ffff882362844900 ffff88115e87f46c
[24169.445313] Call Trace:
[24169.446981] [<ffffffff8153896c>] ? __schedule+0x23c/0x680
[24169.449454] [<ffffffff81538de6>] schedule+0x36/0x80
[24169.451790] [<ffffffff8153907e>] schedule_preempt_disabled+0xe/0x10
[24169.454509] [<ffffffff8153a8d5>] __mutex_lock_slowpath+0x95/0x110
[24169.457156] [<ffffffff8153a967>] mutex_lock+0x17/0x27
[24169.459546] [<ffffffffa0966d00>] xfs_reclaim_inodes_ag+0x2b0/0x330 [xfs]
[24169.462407] [<ffffffffa0967be3>] xfs_reclaim_inodes_nr+0x33/0x40 [xfs]
[24169.465203] [<ffffffffa0978f59>] xfs_fs_free_cached_objects+0x19/0x20 [xfs]
...

Why is this happening?

This indicates that the process requested a block device such as a disk/swap, and wasn’t able to be fulfilled for more than 120 seconds and subsequently abandoned by the kernel.

As mentioned before, the probability of observing this behavior will increase when we use instances with large number of vCores (e.g. 64+ vCores), given that the volume of IO requests could be higher, and, the kernel buffer queues not configured for such load.

This is also very common on clustered environments. Even though the framework will retry, on Hadoop/YARN environments, this will impact in performance, and, might also lead to application failures.

The Solution:

To solve this problem, we have to increase the ‘dirty_background_bytes‘ kernel setting  to higher values to be able to accommodate the throughput.

As a base formula, we usually consider a value of dirty_background_bytes=10MB for 40MB/Sec throughput.

The goal is to have the page cache to allow the OS to write asynchronously to disk whenever possible. Otherwise, when the write becomes synchronous, it would involve a waiting time.

Additionally to the dirty_background_bytes kernel parameter, we can also set:

  • dirty_background_ratio = 10 (represents the percentage of system memory which when dirty then system can start writing data to the disks. When the dirty pages exceed ratio 10, I/O starts, i.e they start getting flushed / written to the disk)
  • dirty_ratio = 15 (is percentage of system memory which when dirty, the process doing writes would block and write out dirty pages to the disks. When total number of dirty pages exceed ratio 15, all writes get blocked until some of the dirty pages get written to disk. This is like an upper limit)

We try to keep these two values low to avoid  I/O bottlenecks. We can experiment setting both down to zero, to force fast flushes on high stress environments.

Another parameter we can use is dirty_bytes, which represents the amount of dirty memory at which a process generating disk writes will itself start writeback. We should set dirty_ratio = 0 if we set dirty_bytes, as only one of these might be specified at a time.

e.g.

dirty_bytes = 2147483648

More details on these parameters is available here.

Linux Kernel Tuning: failed to alloc buffer for rx queue


If we put enough pressure over the ENA network driver, we’ll start seeing these “failed to alloc buffer for rx queue” messages on the ‘dmesg‘ output.

[56459.833033] ena 0000:00:05.0 eth0: failed to alloc buffer for rx queue 4
[56459.836477] ena 0000:00:05.0 eth0: refilled rx qid 4 with only 85 buffers (from 168)

This message will raise when the napi handler fails to refill new Rx descriptors, typically due to lack of memory. This situation might lead to performance decrease, given that some requests would have to be rescheduled. 

The code handling these situations can be found here.

The solution for this is related to a memory increase on “min_free_kbytes” kernel parameter. As example:

vm.min_free_kbytes = 1048576

Place the following commands in /etc/sysctl.conf. And load the new setting with:

sysctl -p

It is recommended to have at least 512MB, with a minimum of 128MB for constrained environment. On large instance types running stress jobs (e.g. 64+ vCores + 256GiB + RAM), this value can typically be set to 10MB.

 

 

 

 

Count and Say


/*Lets write an algorithm that, given an initial value, will produce the next 'count and say' sequence:
1, 11, 21, 1211, 111221, 312211, 13112221, 1113213211, …
*/

public class CountAndSay{

  public static void main(String[] args){

     System.out.println("Count and Say algorithm");

     System.out.println("next sequence is: " + countAndSay(args[0].toString()));

  }

  public static String countAndSay(String input){

     Boolean change=false;
     String output="";
     int count=1;

     char[] str = input.toCharArray();

     System.out.println("Input is: " + input);

     for (int i=0;i<str.length;i++){

       if (i+1<str.length && str[i]==str[i+1]){
          count++;
       }
       else{
          output = output + count + str[i];
          count=1;
       }

     }

     return output;

  }

}

 

 

Listen on a port/Send data to a port


Listening with nc:

nc -l 8089

Checking that 8089 port is listening:

netstat -nap|grep 8089
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 0.0.0.0:8089 0.0.0.0:* LISTEN 27543/nc
tcp 0 0 127.0.0.1:8089 127.0.0.1:43592 TIME_WAIT -

Sending data to 8089 port:

telnet localhost 8089
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
hello

 

listeningOnAPort_SendingDataToAPort