6/06/2013

La nueva (vieja) moda de Big Data II


Requerimientos :
    1.   Para nuestro caso un maquina virtual con 2 GB de RAM
    2.   20 a 30 GB de Disco
    3.   Un sistema Operativo Ubuntu/Red Hat /Debian o en nuestro caso CentOS 6


Una vez instalado el CentOS 6 de 64 bit en nuestra VM vamos a instalar desde Oracle Java 6

En el siguiente link
En previus Release >> Java 6 >> aceptan la licencia de oracle ( que por supuesto todos leen ) y descargamos el paquete (este paquete es para nuestro caso) 
 Linux x64 65.65 MB   jdk-6u43-linux-x64-rpm.bin


Luego ajustamos las variables de entorno de JAVA


Despues de tener los Path de java bien configurados empezamos a instalar

Descargamos CDH4
$ chmod 777 cloudera-cdh-4.0.x86_64.rpm
$ yum --nogpgcheck localinstall cloudera-cdh-4-0.x86_64.rpm



Ojo con el siguiente comando no se debe instalar en producción ASI !!! cada paquete va en los servidores clientes o en otros segun requiera el modelo de nogocio.



ahora vamos a instalar el ecosistema de diferentes herramientas...( para este caso lo instalaremos todo no suele ser lo apropiado para instalaciones en ecosistemas mas grades y de producción) pero aqui instalaremos algunas de las herramientas descritas anteriormente



En total deberian dar una instalación de 35 paquetes de aproximadamente 498 MB de descargas.. 

ahora solo levantando servicios ya tenemos para nuestros developers un juguete nuevo

Una interfaz SQL de big data, una interfaz de Scripts, un sistema de archivos y otros muchos desde la GUI..
Ademas como ya tenemos Snoop podremos migrar nuestras bases de datos a SQL de hadoop



Seguiremos con las configuraciones de cada aplicativo que acabamos de instalar para Tunearlo y luego asegurar los aplicativos mas adelante..

* si buscas soporte, asesoramiento o implementación de centros de datos en hadoop y su ecosistema desde cyttek.com ofrecen instalación asesoramiento y soporte..

6/05/2013

La nueva (vieja) moda de Big Data I


Considerando que cada dia necesitamos mas procesamiento , para poder calcular operaciones, de analisis de negocios, en diferentes entornos como bancareos , telecomunicaciones, Salud entre otros,  cada dia mas se esta escuchando del ecosistema de Hadoop de Apache software fundation para resolver los grandes procesos “Time consuming” y “Hardware highcost” de las empresas 

Algunos ejemplos 
  • The New York Stock Exchange genera cerca de un Terabyte de datos sobre “Trade’s” por dia 
  • Facebook cada dia suben cerca a 10 billiones de fotos, requiriendo cerca de un petabyte de storadge.
  • Bank of America usa hadoop en su dia a dia para poder procesar mas de 2.2 Billones de USD de trasferencias y tener toda la información registrada para anti-fraude o incluso para atención al cliente
  • Amazon usa Hadoop para ofrecernos el conocido AWS y otros de sus servicios.
  • http://wiki.apache.org/hadoop/PoweredBy

Entre otro muchos usuarios del proyecto que google empezo por el 2004 con su GFS & Map Reduce (http://research.google.com/archive/mapreduce.html )


Entonces los problemas basicos que resuelve Hadoop y el ecosistema de aplicaciones que vamos a mostrar como instalarlas y mas adelante como utilizarlas en el dia a dia, es lo siguiente
    • Un ecosistema altamente redundante y distribuido independente de tipo de hardware basado en un sistema de archivos  Hadoop Distributed File System (HDFS )
    • Sistema de No-SQL , SQL  , “Batch process”, API’s  (y en algunos casos incluso NFS) para acceder a la información.
    • Altamente escalable y mas veloz de las tipicas Bases de datos Cliente servidor.
    • Multiples aplicativos para poder migrar Oracle, Teradata , Mysql ademas de Monitorizar, Reportar , Administrar y configurar el ecosistema de aplicativos .

Listado de aplicaciones Que trabajan con Hadoop mas conocidas (las explicaciones estan sacadas de cada web en ingles ) :

Flume — A distributed, reliable, and available service for efficiently moving large amounts of data as the data is produced. This release provides a scalable conduit to shipping data around a cluster and concentrates on reliable logging. The primary use case is as a logging system that gathers a set of log files on every machine in a cluster and aggregates them to a centralized persistent store such as HDFS.
Sqoop — A tool that imports data from relational databases into Hadoop clusters. Using JDBC to interface with databases, Sqoop imports the contents of tables into a Hadoop Distributed File System (HDFS) and generates Java classes that enable users to interpret the table's schema. Sqoop can also export records from HDFS to a relational database.
Sqoop 2 — A server-based tool for transferring data between Hadoop and relational databases. You can use Sqoop 2 to import data from a relational database management system (RDBMS) such as MySQL or Oracle into the Hadoop Distributed File System (HDFS), transform the data with Hadoop MapReduce, and then export it back into an RDBMS.
HCatalog — A tool that provides table data access for Hadoop components such as Pig and MapReduce.
Hue — A graphical user interface to work with Hadoop. Hue aggregates several applications which are collected into a desktop-like environment and delivered as a Web application that requires no client installation by individual users.
Pig — Enables you to analyze large amounts of data using Pig's query language called Pig Latin. Pig Latin queries run in a distributed way on a Hadoop cluster.
Hive — A powerful data warehousing application built on top of Hadoop which enables you to access your data using Hive QL, a language that is similar to SQL.
HBase — provides large-scale tabular storage for Hadoop using the Hadoop Distributed File System (HDFS). 
Zookeeper — A highly reliable and available service that provides coordination between distributed processes.
Oozie — A server-based workflow engine specialized in running workflow jobs with actions that execute Hadoop jobs. A command line client is also available that allows remote administration and management of workflows within the Oozie server.
Whirr — Provides a fast way to run cloud services.
Snappy — A compression/decompression library. You do not need to install Snappy if you are already using the native library, but you do need to configure it.
Mahout — A machine-learning tool. By enabling you to build machine-learning libraries that are scalable to "reasonably large" datasets, it aims to make building intelligent applications easier and faster.
Ambari - GUI hadoop manager through web interface to deploy, configure and manage hadoop Ecosystem instalations, and administrations day by day task’s
Sorl - blazing fast open source enterprise search platform from the Apache LuceneTM project. Its major features include powerful full-text search, hit highlighting, faceted search, near real-time indexing, dynamic clustering, database integration, rich document handling, and geospatial search. 
Ganglia & Nagios - Monitoring and alerting Tools that can be configure to work whit hadoop Ecosystem.
Serengeti - Opensource Virtual appliance to implemente Hadoop Ecosystems based in Vmware Inc. products.

Entonces ente tanta aplicación que es lo que se puede hacer con hadoop su aplicaciones reales (esta es una pequeña lista)..

Servicios Financieros
  • Consumidor y Modelo de riesgos de mercado 
  • Visualización de productos y control de productos  
  • Detección de Fraudes y Anti-lavado de dinero 
  • Aceleración de Inteligencia de negocios 
Gobierno
  • Ciber seguridad , Detección de fraudes, Aplicaciones de respuesta a incidentes 
  • Gobierno Electronico y descentralización de datos
  • Procesamiento de imagenes , video y datos Geoespaciales
Salud
  • Secuencia DNA y investigación
  • Analisis de casos  cuantitativos y procesamiento de casos masivos
Entretenimiento 
  • busqueda  & recomendación de contenidos optimizados
  • Analisis digital de contenido  y almacenamiento de contenido digital masivo con metodos eficientes
  • Enfoque de campañas de marketing basado en predicciones
Tecnologia
  • Invesitagación y Desarrollo  
  • Procesamiento de Datos masivos para imagenes , video o otros datos no estructurados
  • Servicios de Ciber seguridad, detección de fraudes, analisis de malware masivo o Detección de patrones de ataques masivos.
Telecomunicaciones 
  • Inteligencia de negocio
  • Invesitagación y Desarrollo  
  • Analisis de la capacidad del servicio de Red, Administración de servicios , Eficiencia y modelos predictivos de negocios de consumición 

Bueno ya con esta introducción creo que queda mas claro ese mundo de Big Data y sus aplicaciones , el concepto base que se debe de extraporar de esto es simple un trabajo distribuido entre 10 personas en fila siempre sera mas lento que un trabajo distribuido en 10 personas en paralelo y coordinadas para la ejecución, y ademas en modelos de bases de datos relacioneles (RDBMS) mas servidores generalemente no significa que el trabajo (Threads) se distribuyan eficientemente.

Es ahi donde entra a trabajar Hadoop y su ecosistema de aplicaciones para hacer todos esos procesos de IT mas eficientes a menor costo, mas redundantes y seguros.

¿Y entonces que pasa con IBM o ORACLE o TERADATA que dominan estos mundos de IT?
Simplemente que estan acoplando sus productos para trabajar con el estandar “Defacto” de la industria y en algunos casos ni siquiera teminan de acoplar sus productos como es el caso de oracle, o como es el caso vender a precios desorbitados una interfaz de Hadoop como IBM o no administrar eficientemente los Threads como TERADATA, bueno cada empresa tiene su modelo de negocio basado en la experiencia de uso y implementación pero al final y alcabo todo ... TOdo ...TODO -- que quiera adminitrar grandes cantidades de datos masivos reside en Hadoop ..

Generalmente existe una Fase de planteamiento del Cluster y planteamiento de servicios para la instalación del ecosistema de Hadoop que en este caso vamos a ir de frente a la instalación ( unicamente para las implementaciones empresariales, con alta resilencia, disponibilidad y Seguridad es que se debe de considerar unas fases de preparación , diseño del cluster y instalación de servicios para el sector especifico ):

Instalación I (vamos a hacer varias instalaciones de hadoop con multiples variaciones de las mismas, puesto que pueda ser que el ecosistema diferiera segun el sector) :

Esta instalación trabajaremos con la versión CDH 4.x distribución de hadoop modificada.
Luego pasaremos por la ultima versión de Hadoop de apache Fundation
y terminaremos con el Autoinstalador de Ambari 


**Obviamente antes de entrar a la parte divertita de la seguridad tendremos primero que pasar por toda la instalación y configuración ;)

1/17/2013

Infraestructura de clave publica II

Realmente debería de haber empezado por esta introducción pero ya que voy a comentar como configurar ahora nuestro EJBCA, entonces lo voy a denotar..

En cualquier infraestructura de clave publica, es muy importante la etapa de Diseño previa la cual se detallan las reglas de juego, como :

¿Como se llamara nuestra CA?
¿Cuantas sub-CA's va a tener?
¿Quien va  a ser el administrador?
¿A que entidad le pertenece la administración de la CA o Sub-CA's?
¿Que servicios va a ofrecer cada CA o Sub-CA?
¿Con que seguridad se va a permitir el acceso?
¿Cuanto tiempo de vida va a tener los Certificados emitidos o la propia CA?
¿Cuales van a ser los requerimientos para la emisión?
¿Que seguridad Perimetral va a contar la infraestructura?
¿Como se van o cual va a ser el procedimiento mas seguro para otorgar los certificados?
...
...etc.. etc

y algunas preguntas mas que tenemos que ir respondiendo enfocado en el negocio de la fase de producción que tendrá la infraestructura de clave publica antes incluso de la etapa de instalación en el diseño de la misma, Una implementación Correcta desde su etapa de diseño nos puede Resolver en un menor % de riesgo durante la fase de producción

Entonces vamos a empezar una vez ya instalada y dentro del Panel Administrador que lo deje en Post >> "Infraestructura de clave publica I" , creando  la CA root Inicial

(Ojo, los nombres de los paneles voy a dejarlos en ingles, aunque los pueden cambiar en la parte inferior a la izquierda en las configuraciones verán para poder modificar el lenguaje en Español o desde el Archivo que les comente en el primer post de esta serie)

Ahora con la Instalación , básica, dentro del panel de administración vamos a 
 Edit >>Certificate Authorities 
Después en en la pagina podemos  poner Cyttek Root CA como nuestro nombre de la Autoridad de certificación  y luego en el Boton "Create", Deberemos hacer los siguientes cambios :



Signing Algorithm: SHA256WithRSA
RSA key size: 4096
Description: Root CA de Cyttek Group.
Validity (*y *mo *d) or end date of the certificate: 20y
Subject DN: CN=Cyttek Root CA,O=Cyttek Group.,C=RS
Use Issuing Distribution Point on CRLs: On
Default CRL Dist. Point: http://crl.cyttek.com/rootca.crl
CRL Expire Period (*y *mo *d *h *m): 1y
CRL Overlap Time (*y *mo *d *h *m): 2d


Una vez que la información este rellenada, podemos darle al botón "Crear". una vez terminado el proceso ya veras que La CA esta dentro de la Lista de CA's Disponibles 

Una vez creada la CA root en este caso vamos a crear una Sub-CA por ejemplo o sí estamos en una instalación para alguna entidad o país deberemos delegar el Root para la entidad encargada de la administración y calcular cuantas Sub-CA's vamos a tener que implementar y quienes serán los destinatarios. en mi caso , solo voy a comentar una única instalación.


Uno de los parámetros que me gusta crear por seguridad es una Jerarquía de Sub-Ca que no sea Root, el cual ayuda para poder distinguir los permisos, y los perfiles.


En  Edit Certificate Profiles , Selecciona >>>  SUBCA (FIXED) de la lista
en la caja de texto puedes poner  "cyttek Sub-CA" , y luego lo vamos a usar como una plantilla para nuestro >>> Use selected as template . Esto creara un perfil de SubCA del perfial de SUBCA (FIXED) que anteriormente hemos seleccionado


Ahora en la nueva subCA que hemos creado seleccionamos y le damos click en el botón de >> Edit Certificate Profile . 
Vamos a ajustar algunas opciones para nuestro caso:


Available bit lengths: 4096 bits
Validity: 15y
Allow validity override: Off
CRL Distribution Points: On
Use CA defined CRL Dist. Point: On
Available CAs: Cyttek Root CA


Una vez ajustado estos prametros, le damos en el boton Save o Guardar ;)

Ok ahora vamos a la parte que mola, la creacion de la entidad de certificación la que sirve los Certificados a las entidades finales.

En >>Edit Certificate Authorities y en la caja de texto podemos escribir  "Cyttek-Bl4ckD4wn CA" (sin las comillas) y luego en el boton  Create...  .para crear la entidad de la cual deberemos ajustar algunos parametros según los necesitemos en nuestro caso serán los siguientes:


Signing Algorithm: SHA256WithRSA
RSA key size: 4096
Description: Example's CA in charge of issuing certificates for individuals within the organisation.
Validity (*y *mo *d) or end date of the certificat: 15y
Subject DN: CN=Cyttek-Bl4ckD4wn CA,O=Cyttek Group,C=RS
Signed By: Cyttek Root CA
Certificate Profile: Cyttek Sub-CA
Use Issuing Distribution Point on CRLs: On
Default CRL Dist. Point: http://crl.cyttek.com/personca.crl
CRL Expire Period (*y *mo *d *h *m): 14d
CRL Overlap Time (*y *mo *d *h *m): 12h
Default OCSP Service Locator: http://ocsp.cyttek.com/ejbca/publicweb/status/ocsp



Después de ajustar las opciones y crear la nueva CA, aparecerá en el apartado como nueva entidad de certificación disponible.

Ahora que ya tenemos quien se encargara de sacar los Certificados vamos a configurar la creación de perfiles para las entidades finales.  osea los perfiles necesario de los certificados de las entidades finales

Vamos a >>> Edit Certificate Profiles , Seleccionamos >> ENDUSER (FIXED) .
Metemos en la caja de texto el nuevo nombre que le queramos dar Cyttek-Bl4ckD4wn Signingy lo vamos a usar como base seleccionando en el boton "Use selected as template" ahora que lo tenemos como una plantilla vamos a ajustar unos parámetros dentro del "Cyttek-Bl4ckD4wn Signing " con los siguientes ajustes:



Available bit lengths: 1024, 2048, 4096
Validity (*y *mo *d) or end date of the certificate: 1y
Key Usage: Digital Signature, Non-repudiation
Extended Key Usage: Client Authentication, Email Protection
CRL Distribution Points: On
Use CA defined CRL Dist. Point: On
Authority Information Access: On
Use CA defined OCSP locator: On
Available CAs: Cyttek-Bl4ckDwn CA


Cuando la info este modificada, Guarda en el boton "Save"  en el inferior de la pagina de configuración (Ojo con la opcion " Key encipherment " que este apagada, si no lo podrá tomar para otro uso que por el momento no nos interesa).

Ahora le vamos a meter mano al perfil de  ENDUSER (FIXED) , vamos a darle el nombre de "Cyttek-bl4ckD4wn Encriptacion" como el nuevo perfile que vamos a cargar también.. Seleciona " Use selected as template" .
Luego le damos al perfil que le hemos dado nombre anteriormente y le damos a >> Edit Certificate Profile . Para hacer los siguientes ajustes:

Available bit lengths: 1024, 2048, 4096
Validity (*y *mo *d) or end date of the certificate: 1y
Key Usage: Key encipherment, Data encipherment
Extended Key Usage: Email Protection
CRL Distribution Points: On
Use CA defined CRL Dist. Point: On
Authority Information Access: On
Use CA defined OCSP locator: On

Available CAs: Example Person CA

Para Terminar lo guardamos con el botón en la parte inferior.

Añadiremos a esta configuración un perfil mas para Servidores llamado SERVER (FIXED) el cual sera el perfil que vamos a usar como template, ok repetimos otra vez las configuraciones anteriores., Escribimos "Bl4ckD4wn Server"  como el nombre del perfil que vamos a crear y lo seleccionamos como perfil con el botón  "Use selected as template." luego repetimos el proceso anterior con la plantilla  nueva creada, y le damos al boton  "Certificate Profile" . para ejecutar algunos ajustes:


Available bit lengths: 1024, 2048, 4096
CRL Distribution Points: On
Use CA defined CRL Dist. Point: On
Authority Information Access: On
Use CA defined OCSP locator: On
Available CAs: 
Cyttek-Bl4ckDwn CA


Para Terminar lo guardamos con el botón en la parte inferior. y con eso tenemos concluido la configuración de los perfiles de certificados para poder emitirlos ...

Ok, ahora estamos en fase Rambo II, creando perfiles de entidades final

Bueno los perfiles de los certificados definen para que van a ser usados los certificados, pero los perfiles de entidades finales  define el contenido del certificado , esta es una parte importante para mantener la información que se requiere para emitir el certificado, para su uso ya pueda ser SSL, VPN, Email , DNIe, etc...
Ahora vamos a crear 2 perfiles uno para la organización y otro para los servidores

Vamos al  Administration >> Edit End Entity Profiles . luego dentro del campo de texto escribimos el nombre de la persona Person y la agregamos con el botón "Add".  Seleccionamos el nuevo perfil creado y le damos en " Edit End Entity Profile " para poder agregar los atributos siguientes "Subject DN Attributes":
  • UID, Identificador Único     
  • O, Organización
  • C, País que en ingles es Country 
Con estos 3 Atributos agregas y modificables , tenemos que agregar un campo alternativo para Nombre  RFC 822 Name (e-mail address).

Entonces los ajustes del perfil persona seran los siguientes para nuestro caso:

E-mail Domain: cyttek.com
O, Organization: Cyttek Group.
C, Country (ISO 3166): CO
RFC 822 Name (e-mail address) Required: On
Default Certificate Profile: Cyttek-Bl4ckD4wn Signing
Available Certificate Profiles: 
Cyttek-Bl4ckD4wn Signing, Cyttek-Bl4ckD4wn Encryption
Default CA: 
Cyttek-Bl4ckD4wn CA
Available CAs: 
Cyttek-Bl4ckD4wn CA
Default Token: P12 file
Number of allowed requests: 2
Number of allowed requests use: On
Key Recoverable Use: On


Ok, para terminal el perfil lo guardamos como las anteriores.con el botón "Save".


Ok ahora vamos a configurar el segundo perfil de servidor. ( básicamente voy a repetir el proceso anterior para los que no lo pillen a la primera.)
Vamos atrás al panel de Administration >> Edit End Entity Profiles luego en el campo de texto agregamos el nombre " Server " y le damos al boton " Add ".
 Seleccionamos el nuevo perfil creado y le damos en " Edit End Entity Profile " para poder agregar los atributos siguientes "Subject DN Attributes":
  • O, Organización    
  • C, Pais que en ingles es Country  
 Tenemos que agregar un campo alternativo para Nombre  RFC 822 Name (e-mail address).

Ajustamos los campos del perfil servidor con:
Batch generation (clear text pwd storage) use: On
E-mail Domain: Cyttek.com
O, Organization: Cyttek Group.
C, Country (ISO 3166): RS
RFC 822 Name (e-mail address) Required: On
Default Certificate Profile: Bl4ckd4wn Server
Available Certificate Profiles: Bl4ckD4wnServer
Default CA: Cyttek-Bl4ckd4wn CA
Available CAs: 
Cyttek-Bl4ckd4w CA
Default Token: PEM file


 para terminal el perfil lo guardamos como las anteriores.con el botón "Save".

Ok ahora vamos a remplazar los valores para poder poner en producción nuestro PKI calvin klein
Vamos a remplazar los certificados del frontend por los certificados que tenemos que emitir desde nuestra CA configurada anteriormente con sus perfiles para poder autentificar al administrador.

Vamos a preparar el Certificado para el administrador de la interfaz administrativa y poder remplazarlo para la fase de producción:
Vamos a >> Administration >> Add End Entity . Selecionamos el perfil de la entidad final de Person y le metemos mano a estas configuraciones:

Username: {{admin_username}}
Password: {{admin_password}}
Confirm Password: {{admin_password}}
Email: {{admin_mail}} @ cyttek.com
CN, Common name: {{admin_name}} {{admin_surname}}
UID, Unique Identifier: {{user_id}}
O, Organization: Cyttek Group.
C, Country (ISO 3166): RS
Use data from E-mail address field: On
Certificate Profile: Example Person Signing
CA: Cyttek-Bl4ckD4wn CA
Token: P12 file
Number of allowed requests: 2
Key Recoverable: Off



Ojo, ajustar los parámetros con los valores que queráis.
Y terminamos este proceso con el botón "Add End Entity"

Ahora vamos a obtener los certificados que hemos configurado mediante la interfaz publica que se encontraba al principio . >> Public Web Seleccionamos la opcion del menu >> Create Browser Certificate  y dentro de las cajas de texto ponemos las credenciales que hemos escrito anteriormente para la entidad de administración final del Administrador.( Ten en cuenta que el perfil que tenemos que seleccionar para esta descarga debe de ser Cyttek-Bl4ckd4wn Signing ), y luego lle damos al "OK".

Ok ya tenemos el "Famoso" .p12 para poder importarlo en nuestro Firefox o browser de preferencia para poder a la próxima vez acceder a la consola de administración , el tema es que sera tan seguro como el password que hayamos configurado para la entidad final  . Obviamente el atacante debe de contar con el archivo .p12 y el user y password de accesos para poder logearse a la interfaz de administración.

Por el momento no le hemos metido mano a la terminal para ajustar y configurar no se desesperen, no todo se hace con clicks }:)


Ahora vamos a la page del >> Administration >> Edit Administrator Privileges .
Seleccionamos en el link de " Add " y podemos un super adminsitrador el cual el nombre puede ser >> "Super Administrator".  Ahora debemos hacer una configuración mas en el panel del Administrador en el link cercano al grupo de  Super Administrators y le metemos mano a esta información el cual sera necesari:

CA: Cyttek-Bl4ckD4wn CA
Match with: Certificate serial number (recommended)
Match type: Equals, case sens.
Match value: {{SERIAL_PARA_EL_CERTIFICADO}}

El campo {{SERIAL_PARA_EL_CERTIFICADO}}debe ser remplazado por el numero de serial del certificado que hemos emitido. Y para terminar con esta configuración le damos click al botón "Add" y luego >>> Edit Access Rules en la misma pagina , con el Rol de Super Administrator, para terminar guardando la información que acabamos de configurar.

Ahora dentro del perfil de Servidor en la configuración de >> Administration >> Add End Entity , vamos a ajustar unos parámetros básicamente para ajustar la entrada:

Username: ca.cyttek.com_ejbca
Password: {{
CONTRASEÑA_Keystore_CA}}
Confirm Password: {{CONTRASEÑA_Keystore_CA}}
Batch generation (clear text pwd storage): On
E-mail address: ejbca @ cyttek.com
CN, Common name: Cyttek CA Server
O, Organization: Cyttek Group.
C, Country (ISO 3166): RS
DNS Name: ca.cyttek.com
Use data from E-mail address field: On
Certificate Profile: Example Server
CA: Cyttek.Bl4ckD4wn CA
Token: JKS file

Ojo el password debe ser el mismo que el que especificamos en el archivo  web.properties de la primera serie ( Infraestructura de clave publica I ) en el archivo >>  ejbca_https_keystore_password . Una vez terminado estos ajustes repetimos con el botón  Add.

Luego despues de volvernos a logear , añadimos al final del archivo siguiente la linea especificada
# /opt/ejbca/bin/batchtool.properties
----BEGIN----
keys.spec=4096
-----END-----

Y generamos el keystore con el siguiente comando:

$ su ejbca
$ cd /opt/ejbca/
$ bin/ejbca.sh batch

Ahora después de generar el Keystore, también sera necesario crear un nuevo truststore, el cual servirá para identificar que certificados se deben de creer en la cadena de confianza para poder acceder a la interfaz de administración del nuestra infraestructura Calvin Klein.

----BEGIN----$
cd /opt/ejbca/
bin/ejbca.sh ca getrootcert 'Cyttek Root CA' rootca.der -der
bin/ejbca.sh ca getrootcert 'Cyttek-Bl4ckD4wn CA' personca.pem
openssl x509 -in personca.pem -out personca.der -outform DER
keytool -importcert -alias cyttekrootca -file rootca.der -keystore p12/truststore_new.jks
keytool -importcert -alias cyttekbl4ckd4wnca -file personca.der -keystore p12/truststore_new.jks
-----END-----$

Ojo, la contraseña que le metimos al nuevo truststore debe ser la misma que le metimos en el archivo  web.properties dentro de la configuración de ejbca_truststore_password

Antes de seguir con el nuevo Keystore y truststore vamos a bajar el servicio:

$ su root
$ service ejbca stop

Y para hacer el deploy con el servicio abajo debemos hacer ;

$ su ejbca
$ cd /opt/ejbca/p12/
$ cp ca.cyttek.com_ejbca.jks /opt/jboss/server/ejbca/conf/keystore/keystore.jks
$ cp truststore_new.jks /opt/jboss/server/ejbca/conf/keystore/truststore.jks

y luego levantando el servicio

$ su root
$ service ejbca start

Ok ahora ya tenemos nuestros ajustes por seguridad para poder acceder a la pantalla de adminstracion de nuestro PKI necesitaremos la nueva llave y certificado , Ojo, con el cache del browser y el antiguo certificado que no les dejaran entrar a la pantalla de administración.
para comodidad aremos que esta llave y certificado sea por defecto en futuras llamadas o extensiones de EJBCA:

% su ejbca
$ cd /opt/ejbca/p12/
$ mv ca.example.com_ejbca.jks tomcat.jks
$ mv truststore_new.jks truststore.jks


Para ir terminado esto , por que supongo que estaréis mas cansados que Rambo en bilmania. ahora para ir finalizando vamos a terminar con nuestras configuraciones de seguridad,Vamos a >> Administration >>; Edit Administrator Privileges  y en esa pagina le damos a >> delete en el grupo>> Temporary Super Administrator Group. y cuando tengamos eso vamos a la pagina de Administración >> CA Activation,>>> Make off-line  en la caja seleccionamos Off para la caja de monitoreo cercana a  ExampleTempAdminCA. y le damos a aplicar >> Apply .

ademas de Revocar el certificado anterior, para la configuración inicial como lo hacemos??

Ahí vamos en la configuración de panel >>  Administration >> Search/Edit End Entities .Vamos a buscar las entidades con un estatus generado, en el checkbox cercano a superadmin y Tomcat las entidades , le damos click a Revoke and Delete(revocar y eliminar )  

**Esta ultima configuración la vamos a hacer para entornos de producción mas exigentes


Todavía no tenemos el servicio 100% habilitado, ahora vamos a configurar el cola de procesos para publicar, en caso de que el certificado y las CRL's  fallen por lo menos cuando consigamos resolver esos errores siga el proceso de emisión..

Vamos a >> Administration >>>; Edit Services . En >>Publis Queue Process Service  y lo agregamos con el botón de >> "Add"  y con el servicio creado lo vamos a editar con la siguiente información :


Select Worker: Publish Queue Process Service
Select Interval: Periodical Interval
Period: 1 minutes
Select Action: No Action
Active: On
Pin to Specific Node(s): ca.cyttek.com
Description: Publish certificates and CRL's from the publisher queue.


Y para terminar como todo le damos al botón Guardar


Charlyyyy no siento los botones del Ratón.. no te preocupes que vamos a automatizar un poco esto..

Configurando el Actualizador de la CRL se encargara  de cuando la CRL se expire pueda ser regenerada periódicamente   Todavía no me voy a meter en la publicación de la CRL por que debemos de configurar la correctamente, Entonces en la pagina de >> Administration >>> Edit Services >>. CRL Updater y en le damos al botón >> Add . luego con este servicio creado lo vamos a configurar con unos ajustes:

Select Worker: CRL Updater
CAs to Check: Cyttek Root CA, Cyttek-Bl4ckD4wn CA, cyttek Server CA
Select Interval: Periodical Interval
Period: 5 minutes
Select Action: No Action
Active: On
Pin to Specific Node(s): ca.cyttek.com
Description: Updates the CRL's if necessary. Checks are made every 5 minutes.


Luego después de guardar esta ultima configuración terminamos con nuestro ajuste y configuración de EJBCA nuestra PKI calvin klein por este capitulo



Saludos

Bl4ckD4wn

1/13/2013

HoneyDark Opensource

En que consiste este HoneyDark bueno básicamente necesitaba una red donde poder recolectar info , analizarla y correr trabajos predefinidos donde se analicen algunos patrones, (lo podéis usar para análisis de ataques malware, virus,gusanos etc.. ) y la idea me vino de la DarkNet de Chile . Pero me apetecía darle un enfoque mas practico y adelantando un poco lo que les faltaba de implementar honeypots y trabajar con mas trafico y identificar a quien están atacando  ,

Es una red diseñada para poder inicialmente soportar un trafico de 9 a 10GB ( en el caso de mi DC la tengo cableado con fibra ) poder detectar y procesar incidentes en ese trafico, analizarlo  y reportar diferentes eventos y analizarlos.

En que consiste la idea que se me paso para resolver unas cosas.... :) ( y el esqueleto de la red que les voy  a pasar )


Algunos requisitos:
1) En que consiste bueno necesitamos que cualquier trafico entre a la red pero que no salga nada,
2) Necesitamos almacenar el trafico
3) Necesitamos procesarlo 
4) Necesitamos buscar eventos de seguridad generados por ese trafico.
5) Que sea esclable, y que soporte cualquier cantidad de trafico desde donde venga 
6) Evidenciarlo
7) Reportarlo

Entonces en el archivo lo podrán descargar la estructura básica de la red, no es el que tengo para producción pero algo con las ideas que les voy a dejar seguro que algunos lo pillan por donde van los tiros.

Entonces Con:
El pfsense ya le instale  Cron's, Tcpdump, Snort, countryblocker, ntop
En el Server (ubuntu) tenemos NOVA , etherape, Moncube, AfterGlow
OSSIM no creo que necesite presentación.
El servidor de evidencias es simplemente recolectar información de las tools y procesarla

La idea inicial es simple de conceptualizar no tiene ninguna complicación, entonces entremos al detalle de como esa la versión beta que :

___________________________________________________________________________
Servidor Pfsense:
IP:192.168.3.51
user : admin
Pass : 1q2w3e

Mediante el TCPdump podemos capturar el trafico que queramos y almacenarlo donde necesitemos.
El Cron nos ayudara a automatizar unas tareas, 
Contryblocker como dice el nombre nos permite bloquear por país el Trafico que queremos que NO entre a la red  (lo podríamos hacer por IP pero por tiempo es mejor tener una app que te maneje eso para casos que posiblemente tenga a futuro de revisión en tiempo real)
y el Ntop podemos adquirir muy buena información de trafico bien detallada..
El Pfflowd nos ayudara para generar los Netflows y reportarlos al Ossim. 
Las reglas que cada uno ponga en el firewall ya es vuestra Configuración.
Ojo la interfaz WAN del Pfsense deben cambiar la IP ;)

HoneyDark::
IP:192.168.3.53
user: HoneyDark
pass: 1q2w3e

En el Servidor llamado "HoneyDark" para correr NOVA simpelmente en la termial tipear "$ quasar" y listo en https://localhost:8080 se encontrara NOVA ,
 Etherape, es mas simple desde la terminal tipear "etherape" y listo

Con Nova el cual nos permiten generar una red de honeypots mediante el haystack de nova y mediante las otra herramientas no solo monitorizamos lo que llega a nuestro server sino a todas las conexiones peticiones y trafico de nuestra red de honeypots con la configuración que le queramos dar dentro de la interfaz grafica Web

OSSIM 4.1:
Datos de acceso a la interfaz Web.
IP:192.168.3.50
user: admin
Pass: 1q2w3e


Bueno como dije no creo que necesite presentación pero para esta red, yo personalmente lo usare por la parte de recolleción de logs, OCS, OSSEC  para poder monitorizar al detalle los eventos y si algún tipo de trafico que entre a la red, puede llegar a instalar algún archivo o instalar algún rootkit etc..

Evidencias:

IP:192.168.3.52
user: evidencias
pass: 1q2w3e

En este Debian cuentan con un servidor SSH y Los aplicativos instalados en /opt Moncube y Afterglow
 le pueden mandar los Pcaps del TCpdump del Pfsense o los Pcaps del  Ossim, para que los grafique bien bonito..

La Red de la Darknet se llama "NetProperties" >> 192.168.3.0/24
_________________________________________________________________________________

Los aplicativos ya están instalados y listo para poder usarse en sus ultimas versiones , simplemente en cada aplicativo se debe ajustar a tus requerimientos de producción pero el esqueleto lo dejo ya para descarga.. (ojo asumo por falta de tiempo conocimientos en uso de las diferentes herramientas.. es por eso que no me alargo con sus instalaciones y configuraciones)
Me gustaría haber tenido un poco mas de tiempo, para poder documentar cada procedimiento, pero hacer un documental de 100 hojas todavía no estoy tan loco.. así que si te animas solo escríbeme un correo o un twitt  y te echo una mano.

La idea de esta red en forma de agujero negro, es que cualquier trafico que se enrute hacia el pfsense entre dentro de la red, y mediante las diferentes herramientas poder extraerlo , analizarlo y reportar el todo tipo de eventos, sin importar la magnitud de conexiones ni trafico.

Otra cosa lo tengo echo en un Datacenter en Vmware vCloud 5.1 así que todavía estoy trabajando para bajarle los requisitos ..

Luego la que versión que les dejo para descargar  sigo adelantando; corrigiendo la automatización y la capacidad de escalabilidad y procesamiento de trafico masivo.., el cual la red me esta quedando así multiplico por mas de 10 la capacidad de poder soportar trafico almacenarlo, pintarlo con las gráficas bonitas, generar  honeypots, almacenar sus logs, y otras funciones que quiera con trabajos pre echos en Mapreduce.
Básicamente se rutea en esta red desde la ip publica del exterior hacia el pfsense el pfsense rutea el trafico hacia un honeypot especifico de la plantilla del haystack luego el ossim hace otro trabajo con los netflows, y el nova colecciona todo el ataque aparte de la redundancia del Tcpdump en el pfsense , luego todo lo mando para una partición montada de hadoop le añado los Slave que quiera al master y corro los trabajos finales eliminan la data tal cual encontraran en el PDF de la Darknet de chile , pero desde NOVA y pfsense y ossim puedo tener un control mucho mas especifico de a que supuesto cliente le están atacando mediante alias pre definidos y como le están atacando su frecuencia y otras cosas que quiera ver..

No se si sera mejor o peor pero es un acercamiento que el de Chile pero es diferente para poder solucionar el problema de los análisis de ataques masivos,  pero fue interesante montarla como pasatiempo..



Así que si eres un Cert, Csirt, Banco o ISP ya pueden usarlo para que dejen de tocarse las #$%#&"  y empezar a analizar trafico  y intercambiaros incidentes y no delegar todo a las redes inteligentes esas de los antivirus.. :)
(ojo para entornos de producción el BETA que les dejo no esta diseñado  para poder soportar cargas masivas analizar mas de 10G de trafico en una futura versión posiblemente haga el release de producción que soporta cualquier trafico y colección mediante HDFS)

Saludos

Bl4ckD4wn

PD.El link de Descarga de la HoneyDark es: HoneyDark

1/12/2013

Cumpliendo el criptograma de shannon por partida doble

Bueno para que luego digan que los Valencianos no podemos hacer cosas chulas,acaso no les basto con el post anterior de infraestructura de clave publica , ahora viene otro valenciano y monta una patente..

Según la explicación corta de la patente dice lo siguiente:

Inventor/es: MARTINEZ SANCHO, Vicent (ES);





Resumen: Una invención en el ámbito de la sociedad de la información para dotar una inaccesibilidad de los datos y de información frente a personas no autorizadas para proteger la privacidad en la transmisión electrónica de datos e información mediante un procedimiento de criptografía para un cifrado fiable, rápido y seguro de amplia aplicación industrial ( sectores privados y públicos de las telecomunicaciones, informática, Defensa nacional, programas de ordenador, transacciones de pagos electrónicos y operaciones bancarias, criptografía de obras musicales y audiovisuales, y firmas y certificados digitales ) mediante el empleo de medios técnicos por orden secuencial y sucesivo de: 1º.Una matriz alfanumérica, 2º. una matriz base de residuos numéricos, 3º. una clave de equivalencias, 4º. una tabla de equivalencias, 5º. un criptograma reducido de residuos o plantilla, 6º.una clave de protocolo, 7º. un algoritmo de codificación, 8º. un criptograma final de residuos y 9º. un algoritmo de decodificación.

Ok, vamos a explicar un poco en que consiste esta patente y en que se diferencia o basa la patente para asegurar que puede ser mas robusto que AES, DES o 3DES entre otros sistemas de cifrado.

Inicialmente es un sistema de cifrado simétrico la criptografía de residuos del Señor Vicent Martinez,
el cual se usan 2 tipos de claves una clave de Equivalencias y otra clave de protocolo (según la nomenglatura dentro de la patente).

Bueno pues el Sr Vicent para su publicación se basa en la teoría de shannon el cual se puede decir que la criptografía moderna se inició después de tres hechos: el primero fue la publicación de la "Teoría de la Información" por Shannon; el segundo, la aparición del estándar del sistema de cifrado DES (Data Encryption Standard) en 1974 y finalmente con la aparición del estudio realizado por Whitfield Diffie y Martin Hellman sobre la aplicación de funciones matemáticas de un solo sentido a un modelo de cifrado, denominado cifrado de llave pública en 1976.

Entonces como ya sabemos existen 2 big brothers en las familias de cifrados  cifrado simétrico y cifrado asimétrico, Bueno pues este sistema se basa en que en sus procedimientos iniciales matriciales puede parir en una versatilidad casi inexpugnable.. (ahora explicamos que es)
Bueno Segun el Sr Vicent los sistemas actuales se basan en haber cumplido 2 condiciones de Claude shannon la Confusión ( a confusión la podemos entender como el proceso de sustituciones )  y Difusión (la podemos entender como el proceso tranposición) y en eso basan la seguridad actual.

OK de donde parte su idea de cumplir el criptograma seguro de shannon,  que la parte del texto cifrado Tenga una entropia de 0. Entonces vamos a detallar como el cifrado de residuos cumple a diferencia de otros cifrados famosos como AES y DES en las bases de seguridad de Shannon, entonces este sistema de cifrado cumple con la teoría por que aplica los principios Difusión, Confusión y Trasformación  . Entonces como Bien dice el Sr Vicent para este doble cumplimiento usa los siguientes procedimientos

1º. Una matriz alfanumérica, 
2º. Una matriz base de residuos numéricos, 
3º. Una clave de equivalencias, 
4º. Una tabla de equivalencias, 
5º. Un criptograma reducido de residuos o plantilla, 
6º. Una clave de protocolo, 
7º. Un algoritmo de codificación, 
8º. Un criptograma final de residuos 
9º. Un algoritmo de decodificación.


1º. Una matriz alfanumérica

Basicamente esta matriz se basa en crear una matrix de "X" por "X"  en el cual los caracteres alfanumericos esten definidos en un espectro limitado por el limite que se entiende entre las partes de la comunicación
Algo asi como si solo entendemos numeros y letras entonces la matriz  lo interesante de esta matriz es que permite la inserccion de caracteres en blanco en espacios limitantes a las filas finales o espacios prediseñados con los caracteres que necesitemos para la conversión entre las partes.

2º. Una matriz base de residuos numéricos

La segunda fase de basa en una creación de una matriz de residuos numericos de los cuales puede ser de "N" residuos pero la matrix debe de cumplir la regla de "X" ( Filas ) por "Y" (Columnas ), el cual N puede ser cualquier muestra finita de numero Reales que se deseen entre las partes de la conversación, obievmente cuando N tienda a un numero Real muy muy Grande podemos asegurar una mayor compeljidad matematica. (en nuestro caso la matriz sera cuadrada)
ejemplo N=3
       
11 12 13  1
21 22 23  2
31 32 33  3
 1   2    3


3º. Una clave de equivalencias, 

Basicamente esta clave actuara sobra la matriz de residuos  numeros reordenando  los residuos 
Entonces nuestra clave elejida con una complejidad Conjunto Finito ={a1,a2,a3.....aN} el cual el conjunto sea par  actuara dentro de la matriz como un permutador de filas entre las filas designadas dentro de la clave , Algo como cuando en la universidad haciamos calculo vectorial :P

Ejemplo de clave:
2,3,4,5,6,7,33,66,

Entonces separamos los grupos

Primer grupo {2,3}
Segundo grupo {4,5}
Tercer grupo {6,7}
Cuarto grupo {33,66}

Si contasemos con esas filas simplemente las desplazariamos entre si.

Que pasa con esta seguridad que si nos damos cuenta con una matriz de N con residuos de agrupaciones de 3 tendriamos  N elevado a los 3 elementos, que significa que existirian
N^3=B  entonces existirian B! ( "B" factorial cantidad  de residuos ) que significa que se empiez a poner chungo el numero de cantidad de matrices de residuos que podemos tener ..comparado con otros sistemas de cifrado se empieza a complicar.


4º. Una tabla de equivalencias


Mediante una regla pactada entre las partes se usa una equivalencia entre las matrices  de residuos numericos y la alfanumerica, teniendo en cuenta solamente una regla que no exista ninguna equilateralididad entre las mismas ( que no se repitan numeros joder)..
Conexiones del tipo :
Matriz A11 <-> Matriz B4,3
Matriz A0,5 <-> Matriz B2,2
etc..etc..etc.
Se pactan conexiones entre las matrices A y B y sus correspondientes filas columnas.


5º. Un criptograma reducido de residuos o plantilla

 En el quinto paso se toman el mensaje entre el emisor y el receptor y te asocian a las letras a las ternas permutadas de la matriz de residuos , algo como el cifrado por asociación

Ejemplo :
Pepe ven a comer 

P=23 e=44 p=11 e=64  =55  v=92   e=25  n=14  =57 a=9   =37  c=13 o=26 m=43 e=41 r=39

Para este caso estamos tomando que nuestra matriz numerica del 2 paso fuese mas grande , Ojo tambine se cuentan los espacios Vacios y de pueden otorgar difenes valores}:)


6º. Una clave de protocolo

La clave pactada entre las partes (excluyendo el numero 0) de  para esta fase de codificación tendra una función de actuación ciclica entre la calve B={a1,a2,a3,....aN}y la matriz {MxN} el cual  segun el ejemplo


Lo interesante es que se puede reiniciar la secuencia de la clave que se pacta usar tantas veces queramos si la secuencia elegida no es lo sificiente mente grandes como Campos en la matriz, entonces esto se vuelve como una cantidad indigente de posibilidades de cifrado .


7º. Un algoritmo de codificación

Pero se usa los indices del protocolo utilizados anteriormente para poder identificar si su valor es menor o igual a 3 o mayo a 3 para poder aplicar la formula que se ve en la siguiente imagen
  
En la cual si  el numero del protocolo usado anteriormente es menor o igual a 3 generara un numero aleatorio entre 1 y 9 llamado "A" y remplazara R por el residuo natural y J el indice del protocolo en el caso que el indice del protocolo llamado J sea igual o mayor a 4 el programa debera generar:

 
un numero entre 1 y (j-2) , luego en las operaciones para poder definir un numero estable para "J" se ejecutan basadas en la

8º. Un criptograma final de residuos


Al final después de todo este procedimiento sobre los datos en formato que necesitamos terminamos con el Sistema de cifrado por residuos, cumpliendo por partida doble el criptograma de shannon, haciendo uso de los tres método de cifrados y asegurando la seguridad entre la comunicación entre el usuario A y el usuario B .


La observación que veo reside en que se toma como asumido que la Función RGN que le dará el Sistema dentro del Paso 7 va a ser completamente aleatoria el cual hubiese detallado mejor como psealeatoria , sabiendo que es difícil encontrar algo aleatorio dentro de esas funciones llamas directamente en seco al método. y deja demasiadas variables entre los entes de la comunicación , me parece para una aplicación especifica que las partes sean entendidas, puede ser pero para una seguridad en producción masiva no lo veo claro.

Pero mola mazo que la patente sea Valenciana!...

P.D que mas podemos pedir,patentes criptograficas,  La mejor paella , todo tipo de apoyo a deportes, aaaah si políticos que no sean corruptos 

Saludos 
Bl4ck_D4wn