Archives

A medida que se fueron desarrollando los sistemas operativos, uno de los principales inconvenientes han sido los virus, hoy generalizados con el nombre de malware, por tratarse de distintas clases de códigos maliciosos que afectan a una determinada plataforma. Con el advenimiento de los primeros teléfonos celulares, la situación no cambió demasiado: en un principio, los ataques se limitaron a la ingeniería social, que creció con la masificación de las tecnologías de mensajes de texto (SMS). Cuando llegaron los smartphones y tablets, el mundo del malware se expandió a la movilidad.

Sistemas actuales

Si hablamos de casos específicos, podemos decir que en la plataforma Android es donde más se encuentra nuevo malware. Esto obedece principalmente a dos razones: la primera y más evidente es el liderazgo de Android frente a sus competidores, y la segunda se refiere a la posibilidad de que se puedan conocer sus características internas. Además, la mayoría de las aplicaciones son instaladas mediante la tienda de Google, que no sigue ningún lineamiento con respecto a la seguridad.

Según números de ESET, un 90% de las amenazas móviles se desarrollan para el sistema de Google. El mismo estudio indica que ya se registraron 36 variantes de troyanos y 156 variantes de SMS agent. Esto es posible gracias a variaciones en el código de un mismo virus: un caso es el de TrojanSMS.Boxer, que durante 2011 tuvo 5 variantes y en 2012 alcanzó las 36.

Otra forma común por la cual el malware alcanza los dispositivos es mediante la instalación de nuevas aplicaciones a través de tiendas de aplicaciones alternativas para Android. Se trata del caso contrario de iOS y Apple, en donde las restricciones para propagar malware son mayores debido a lo cerrado de la plataforma. Igualmente, los usuarios de iOS que hayan liberado su teléfono (Jailbreak) pueden acceder a tiendas alternativas como Cydia, que pueden incluir apps infectadas.

Windows Phone también utiliza el concepto de Marketplace para instalar aplicaciones que puedan ser controladas de manera centralizada por el proveedor, que en este caso es Microsoft. Blackberry tiene su lugar entre las plataformas, pero no es la más atacada debido a sus fuertes restricciones en el uso de la API. En cuanto a Symbian, si bien es una de las más antiguas y sólidas, el mercado cada vez la deja más al margen en pos de otras más modernas.

Pero entonces ¿existe una cantidad significativa de malware para dispositivos móviles? Lo cierto es que en proporción con el malware existente para plataformas de PC, la respuesta es negativa. Sin embargo, las amenazas para esta clase de sistemas no apuntan tanto al control del software de manera remota, sino más bien al robo de información del dueño del teléfono, en actividades que ponen en riesgo su identidad y privacidad.

Métodos de ataque

Como sugeríamos al principio, los ataques comenzaron con intentos de engaño a los usuarios vía SMS, buscando que éstos envíen mensajes a un determinado número pago o facilitando enlaces maliciosos. El paso siguiente es lograr que el usuario coloque sus datos de acceso y que los envíe a un servidor remoto.

Hoy en día, los atacantes viraron más hacia tratar de que el usuario instale una aplicación que le provee una funcionalidad real, pero que a su vez está encubiertamente enviando información de la víctima al atacante: ya sean contraseñas de los servicios habilitados, datos personales de la agenda, archivos almacenados y demás.

Como recomendaciones fundamentales, es importante tener en cuenta descargar aplicaciones sólo del sitio oficial, evitar colocar tarjetas de memoria que no fueron analizadas, no confiar en enlaces enviados por la plataforma SMS, realizar backups frecuentes, y en el caso de Android instalar un antivirus específico para la plataforma, que incorpora un Firewall y diversas capas de seguridad al sistema operativo.

Antes de instalar una nueva herramienta, la mejor estrategia es analizar los comentarios de la Play Store, verificar su reputación (y la de su desarrollador), y sobre todo los permisos que requiere la aplicación. Si un calendario requiere permisos para controlar procesos, lo más probable es que tenga intenciones ocultas.

 

BPM es más que una tecnología: en un sentido más general es una disciplina donde los procesos tienen un rol relevante a la hora de medir el rendimiento y productividad de una organización. BPM incluye un conjunto coherente de métodos, políticas, métricas y prácticas para optimizar los procesos de una empresa y así lograr maximizar su potencial y el retorno de inversión en cada producto encarado.

Existen en el mercado diferentes herramientas que asisten a la creación y monitoreo de actividades BPM. Generalmente las mismas se pueden agrupar en frameworks que proveen componentes y diversas funcionalidades predefinidas de manera de facilitar el modelado de procesos, son los llamados BPMS. Generalmente estas plataformas ofrecen funcionalidades que se pueden agrupar, tal como se menciona en [1], en:

Modelado de Negocios: diagramas gráficos al estilo UML que ayudan a plasmar de manera visual la interacción entre procesos. La notación más utilizada proviene del lenguaje Business Process Modeling Notation (BPMN). Herramientas como Intalio o Visual Paradigm (www.visual-paradigm.com/product/vpuml/editions) cuentan con la posibilidad de realizar este tipo de diagramas.

  • Ejecución de procesos de Negocios: Motor encargado de ejecutar o simular la ejecución de procesos de negocios a través de la interacción de usuarios, tareas y recursos.
  • Manejo de datos e información: El framework es el encargado de manejar y sincronizar los datos vinculados a las instancias de procesos.
  • Interacción con recursos externos: Distintos procesos de negocio pueden usar e interactuar con servicios fuera de la organización. El motor de ejecución se comunicará con los mismos generalmente a través de una capa de interacción, generalmente alineado a SOA y utilizando servicios web.
  • Adaptación a cambios: facilidades para adaptarse a cambios en los procesos de negocio.
  • Monitoreo de actividades: Registro de todo intercambio de datos, información y control producido entre los procesos.

Estos frameworks son sin duda de mucha ayuda y de gran utilidad en múltiples contextos y aplicaciones.

Sin embargo, existen situaciones donde no es fácil adaptar estas funcionalidades predefinidas a las necesidades particulares de una empresa u organización. En estos escenarios resulta difícil instanciar estas soluciones generales en un contexto concreto de una empresa. Esto puede determinar el abandonando técnicas de BPM que podrían facilitar enormemente los procesos de negocio de dicha organización.

Como respuesta a este problema surgió el enfoque conocido como “Tailoring BPM”, que propone personalizar la disciplina BPM de manera de lograr un match perfecto entre la metodología y las necesidades de la empresa.

Tailoring  BPM

El término proviene del inglés tailor, que significa sastre. Entonces tailoring BPM sería el proceso de encargar una técnica BPM a medida de la organización.

Una herramienta Tailoring BPM funciona de la siguiente manera. Existe una etapa de diseño donde se seleccionan, adaptan o incluso crean las técnicas, métricas y procesos a utilizar. Luego, esta información es la entrada a un motor que transformará estos modelos para generar una herramienta que cumple con lo requerido en el diseño.

En otras palabras, una herramienta tailoring BPM es una meta-herramienta, encargada de crear otras herramientas BPM más especializadas. Esta metodología es quizás comparable al Model-Driven Development (MDD), donde un sistema es desarrollado a partir de la iteración de modelos cada vez más cercanos a la implementación.  Naturalmente, estas meta-herramientas requieren usuarios idóneos en la etapa de diseño para lograr una configuración adecuada. Este hecho representa una de las mayores dificultades a la hora de adoptar una herramienta BPM hecha a medida.

Una de las herramientas más conocidas que funcionan con esta modalidad es WebRatio (http://www.webratio.com/). WebRatio corre en un entorno JAVA tradicional, lo que facilita su utilización. Otra característica interesante es la aplicación “front-end”  y el  motor BPM son completamente independientes. Esto permite integrar la capa front-end con otros motores BPM.  Otra herramienta que vale la pena mencionar es PerfectForms (http://www.perfectforms.com/ismwf/bpm-tools.php). Ofrece una gran cantidad de templates para poder personalizar el monitoreo y sincronización de los procesos de negocios.

[1] The tailor of BPM Applications. Web Ratio: http://www.webratio.com/Portal/documents/WebRatio_TheTailorOfBPMApplications.pdf

La relación entre las empresas y sus consumidores se ha modificado drásticamente en las últimas décadas, sobre todo gracias a la aparición de nuevos canales de comunicación con base en Internet, apoyados en redes de cientos de millones de usuarios que aportan opiniones a cada segundo. De lo que se trata ahora más que nunca es de gestionar directamente y con eficiencia la relación con los consumidores, que tienen una voz amplificada en este mundo interconectado. Las técnicas tradicionales de CRM apuntan a lograr este objetivo, implementando procesos para entablar interacciones directas y duraderas en el tiempo, apoyadas en la confianza.

El Social CRM, por su parte, concentra estos esfuerzos en las redes sociales, plataformas virtuales donde la interacción en tiempo real es la norma. Estos sitios permiten a la empresa administrar los contactos con sus consumidores de una manera directa, entablando conversaciones para transformar a los “clientes” en “personas”. Esto permite individualizar las necesidades y satisfacerlas en el momento que aparecen, lo que se traduce en una mejor experiencia con la marca.

En resumidas cuentas, las técnicas de Social CRM permiten a las empresas escuchar a sus consumidores y reaccionar acordemente para mantener o aumentar su base de clientes. Son técnicas ideales para mejorar la fidelidad a la marca y detectar potenciales nuevos clientes.

Herramientas disponibles

Existen diversos servicios que permiten administrar procesos de Social CRM, técnicas conocidas también como Social Listening. De lo que se trata, en definitiva, es de estar atentos a la actividad que puede registrarse en Internet sobre un tema o una marca particular. A partir de esta información, pueden implementarse procesos para atender consultas a pequeña escala, que tienen un impacto masivo por el poder de distribución de Internet.

Uno de los proyectos más reconocidos para Social CRM es la integración del CRM Salesforce con el motor de escucha Radian6, cuyas herramientas pueden encontrarse en www.radian6.com. Este servicio incluye un panel de control centralizado, desde el cual puede monitorearse la actividad en tiempo real sobre un tema dentro de redes sociales y otros miles de sitios de Internet. Radian6 posibilita un verdadero Social Listening, en tanto incluye más de 400 millones de fuentes de información, y mantiene una base de datos de 55 mil millones de mensajes. Todo esto se combina con una interfaz web que facilita el acceso a través de cualquier dispositivo.

Existen múltiples alternativas a Salesforce+Radian6, aunque todas siguen el mismo paradigma: escuchar las conversaciones mientras suceden para analizarlas en el tiempo y responder a ellas con eficacia y rapidez. Otros servicios interesantes son Nimble CRM, Rapportive, SugarCRM y RightNow, la apuesta de Oracle.

Casos de éxito

Las organizaciones que aplican este tipo de técnicas pueden mantener una relación más cercana con sus clientes, y mejorar la imagen de su marca. Entre los casos de éxito de Social CRM se destaca Gatorade, que decidió apostar de lleno a la administración de las redes sociales para adelantarse a las necesidades de los consumidores: la empresa mantiene un equipo dedicado a estas prácticas, que responden al instante cuando detectan una conversación pertinente. Se trata del “Mission Control”, un grupo de expertos preparado para lanzarse al epicentro de las conversaciones mediante el motor Radian6 y aplicaciones desarrolladas por IBM. Con este equipo de trabajo, Gatorade puede monitorear la imagen de su marca en tiempo real y tomar acciones destinadas a mejorar el engagement de los clientes.

La administración de Disney provee otro ejemplo de cómo el CRM está cambiando la manera de hacer negocios. Los reconocidos parques están sufriendo una transformación gracias a la inversión de mil millones de dólares de la compañía: lo que se busca es conocer mejor a los clientes, empleando información obtenida mediante chips RFID. Disney busca combinar información transaccional de compras, datos demográficos (como edad, tamaño de grupos, etc.) y patrones de comportamiento dentro del parque para adelantarse a las necesidades de sus clientes. El sistema le permitirá a la compañía saber si una familia todavía no hizo sus reservas para la cena, y ofrecer alternativas por diversos canales, como puede ser un smartphone.

Coca-Cola de Brasil es un muy buen caso de éxito de técnicas de CRM. La empresa implementó Oracle CRM On Demand para facilitar la comunicación con sus clientes, y logró aumentar en un 20% las interacciones mensuales dentro de las redes sociales. La compañía hoy tiene más de 60 millones de seguidores en Facebook, y debe administrar con eficiencia más de un millón de interacciones anuales.

Finalmente, Burberry es otra de las marcas que decidió apostar fuerte al Social CRM y salió ganando. La empresa se unió a Salesforce para hacer que la experiencia de su marca se hiciera permeable al mundo digital, permitiendo a los consumidores conocer la “cultura” de Burberry sin importar el dispositivo o el lugar en que se encuentren. La compañía tiene una gran presencia en redes sociales como Facebook, en las que acumula casi 15 millones de Likes.

Para la CEO de Burberry, Angela Ahrendts, el futuro es claro: “es indispensable que las empresas se relacionen con todos los clientes que entren en contacto con la marca; si no lo hacen, no sé cuál será su modelo de negocios dentro de cinco años”. Aquellas organizaciones que estén preparadas para manejar eficientemente sus interacciones serán las líderes indiscutidas de su rubro. Aquellas que no lo estén se habrán quedado en el tiempo.

Hoy en día solemos escuchar a usuarios comunes hablar sobre aquello de “rootear” el teléfono con Android, o hacerle un “jailbreak” al iPhone. En pocas palabras, estas acciones implican el control total del teléfono por medio del acceso como usuario administrador, y en definitiva lo que permiten es un acceso a funciones que de otra manera se encuentran deshabilitadas, como la instalación de software no validado por el fabricante, quien se reserva la capacidad de hacerlo a través las tiendas oficiales. Esto ya una tendencia en crecimiento entre los usuarios más avezados, que no están conformes con los límites que el software le impone a su hardware y con las restricciones que se incluyen de fábrica en el sistema operativo.

Los usuarios eligen aplicar esta técnica a sus equipos por ventajas concretas y bien claras. Por ejemplo, un smartphone rooteado puede instalar cualquier sistema operativo (y actualizar la versión de Android), instalar aplicaciones que requieren permisos de root, o deshacerse de funciones preinstaladas por los fabricantes (bloatware). En algunos casos estas técnicas logran aumentar el rendimiento del equipo mediante ajustes muy finos en el comportamiento del sistema, como puede ser el overclocking del procesador, aunque los resultados son variados debido a la heterogeneidad del hardware portátil.

Peligros y preocupaciones
No todas son buenas noticias: al tomar un control total nos obligamos a transformarnos en los responsables de la seguridad del equipo. El rooteo es capaz de exponer a los usuarios al malware portátil, ya que se sacrifica seguridad por un mayor acceso a funciones de software: los sistemas pueden sufrir ataques o volverse inestables, en tanto aplicaciones que no pasaron por los controles de los markets se integran al sistema. Finalmente, el peligro más grande es que el procedimiento de rooteo o jailbreak fracase, dejando al dispositivo sin un sistema con el cual sostenerse.

Uno de los puntos que suelen analizarse al hablar de este tipo de técnicas es el aspecto legal. Las modificaciones como el rooteo o el jailbreak suelen ser permitidas en muchos países, incluyendo Estados Unidos, que no se caracteriza por ser justamente flexible. En la enorme mayoría de los casos, la situación es que los fabricantes no pueden prohibir las modificaciones el sistema operativo del teléfono, pero sí pueden anular la garantía.

Todo lo anterior es cierto para smartphones teléfonos inteligentes, pero no para tablets, al menos en EE.UU.: bajo la ley DMCA (Digital Millenium Copyright Act), desde el 26 de enero de 2013, es ilegal aplicar jailbreak o un root a este tipo de dispositivos, ya que estas técnicas supuestamente pueden utilizarse para vulnerar derechos de autor.

El razonamiento de los legisladores norteamericanos es que cada vez más productos pueden entrar en la categoría de “tablet”, en tanto los límites del género se quiebran con dispositivos híbridos, que combinan pantallas táctiles y teclados ocultos. Los smartphones están por ahora a salvo de esta legislación, aunque las ventanas para la manipulación del software por parte de los usuarios parecen estar cerrándose.

Independientemente del modelo de implementación (esto es si la Nube es Pública, Privada o Híbrida), el modelo de servicio IaaS (Infrastracture as a Service) ofrece al consumidor capacidad de procesamiento, almacenamiento, redes y cualquier otro recurso de cómputo necesario para poder instalar software, incluyendo tanto el sistema operativo como las aplicaciones. El usuario no tiene control del hardware subyacente, pero sí del sistema operativo y de las aplicaciones.

Los modelos IaaS son aquellos servicios que se enfocan en ofrecer capacidades de cómputo a sus consumidores. Algunas de las implementaciones más ampliamente utilizadas por diversos niveles de usuarios (tanto los corporativos como los hogareños) son Amazon Web Services, Rackspace, y GoGrid. En la Figura 1 puede apreciarse la pantalla inicial del servicio de Amazon Web Services, Elastic Compute Cloud, también conocido como Amazon EC2.

Consideraciones de Seguridad
Tal como mencionamos, los modelos de servicios IaaS están enfocados en la provisión de capacidades de cómputo, ya sea procesamiento, almacenamiento o red entre otros. A partir de esto, rápidamente podemos intuir que este modelo es el más cercano al hardware y en particular a las tecnologías de virtualización, sin las cuales el Cloud Computing no podría existir como tal.

Por esta razón, la mayor parte de los controles de seguridad en relación a estos modelos están relacionados a la protección de las tecnologías de virtualización, ya que comprometiendo esta tecnología un usuario malicioso podría tener acceso al resto de los usuarios que contraten recursos de un proveedor de servicios IaaS. En esta línea el NIST ha identificado una serie de temas de seguridad a tener en consideración por parte de los proveedores de este tipo de servicios, siento los siguientes algunos de los más destacados:

• Vulnerabilidades en entornos Legacy: si el proveedor permite que los usuarios utilicen aplicaciones legacy, corren el riesgo de exponer al resto de los usuarios a dichas vulnerabilidades.
• VM Isolation: dado que las VM asignadas a los diferentes usuarios suelen venir de un mismo pool, es fundamental asegurar el aislamiento de máquinas virtuales entre usuarios, previniendo de esta forma ataques de eavesdropping y/o tampering.
• Borrado seguro de los datos: Dado que las VM comparten recursos de almacenamiento entre ellas, es importante garantizar que cuando un usuario libera recursos de almacenamiento, los mismos no puedan ser accedidos por un nuevo consumidor que utilice dicho recurso.

Para todos los proveedores de servicios IaaS, tanto de nubes públicas como privadas, se recomienda mínimamente alinearse con la Guía de Seguridad para Tecnologías de Virtualización publicada por el NIST, la cual presenta una serie de lineamientos que deben seguirse para reducir los riesgos de seguridad introducidos por estas tecnologías.

Finalmente, no olvidemos que tanto la virtualización como el Cloud Computing son tecnologías que sólo son efectivas cuando están alineadas con el negocio y sirven a éste.

El diseño de arquitecturas basadas en la interacción de servicios, comúnmente denominadas arquitecturas SOA, requiere de herramientas que ayuden y asistan al ingeniero de software para especificar, modelar y monitorear el comportamiento del sistema a desarrollar. Dentro de las herramientas se destacan los frameworks, los cuales proveen soluciones integrales para poder realizar todo el trabajo desde un solo lugar.

Así como se pasó de programar en simples procesadores de texto a tener sofisticados entornos de desarrollo, los frameworks SOA son la respuesta al desarrollo avanzado de arquitecturas SOA. Entre los mismos se destaca la propuesta de ORACLE, el Oracle SOA Suite [1].

Descripción General
Este producto es una solución completa a las necesidades SOA. No sólo se enfoca en la funcionalidad de los servicios, sino también en la administración y control de una arquitectura. Un claro punto a favor es que permite utilizar sólo lo necesario del framework, sin que las demás características se vuelvan una carga. Por ejemplo, es posible usarlo únicamente para desarrollar aplicaciones basadas en la interacción de servicios. Asimismo, pueden emplearse servicios adicionales para manejar la integración con servicios IT, o incluso la administración de procesos de negocios orientados a servicios. Es un framework que se adapta a las necesidades específicas del usuario.

Una ventaja adicional de controlar todos los aspectos bajo esta herramienta es que es posible para la empresa detectar tempranamente situaciones de cambios y reaccionar con la rapidez necesaria en entornos competitivos. En la misma línea de razonamiento, es también más que útil tener una visión coherente y cohesiva de la arquitectura SOA, guiada por estándares, y que favorezca la integración de aplicaciones heterogéneas, basadas en diferentes tecnologías.

SOA Oracle Suite posee estas características al unificar de manera consistente notación, gráficos, composición de servicios, y más: toda funcionalidad ofrecida al usuario respeta un mismo objetivo y diseño. En este punto es importante mencionar que su naturaleza abierta y modular es clave para aprovechar y reutilizar inversiones existentes.

Otra ventaja que cuenta la propuesta Oracle para arquitecturas SOA es que permite a la empresa adoptar las tecnologías de manera gradual, evitando tomar decisiones prematuras respecto a cambios de paradigma.

A una propuesta tan completa es difícil encontrarle puntos débiles. Quizás su manejo de métricas de retorno de inversión no es el más completo; como todo framework, su verdadero valor se aprecia con mayor facilidad en proyectos medianos y grandes, donde se justifica emplear todo su potencial.

Principales Componentes
Oracle SOA Suite basa todo su éxito en la sólida interacción entre componentes, los cuales pueden trabajar de manera aislada, pero también conectarse y sincronizarse para cumplir con un determinado objetivo. Incrementar la cantidad de componentes a coordinar no aumenta la carga en la herramienta, lo que permite fácilmente escalar en la complejidad del sistema.

Uno de los componentes estrella es Oracle BPEL Process Manager, un administrador basado en BPEL para componer servicios en los procesos de negocio. Bajo el mismo se pueden completar todo el ciclo de interacción, desde los objetivos técnicos hasta funciones de auditoría.

Por su parte, Oracle Business Activity Monitoring es un avanzado módulo de monitoreo, que da visibilidad a las actividades y el desempeño de los servicios y procesos de negocio. Todas las reglas de negocio son especificadas mediante Oracle Business Rules. La comunicación entre todos los componentes del sistema es responsabilidad de Oracle Service Bus, mientras que la gestión de cada servicio es llevada a cabo a través de Oracle Web Services Manager.

Oracle JDeveloper es un amigable entorno para el desarrollo de servicios sobre JAVA, abarcando todo el ciclo de desarrollo. Finalmente, existen soluciones predefinidas para incluir seguridad, autenticación y autorización en la utilización de servicios.

Referencias
[1] http://www.oracle.com/us/products/middleware/soa/suite/overview/index.html

Las metodologías ágiles causaron ciertamente una verdadera revolución dentro del manejo y seguimiento de proyectos de software. Dejaron atrás un paradigma de pesada documentación y extensas etapas inalterables con rígidos procedimientos y técnicas, para dar lugar a un nuevo horizonte, flexible, rápido, priorizando funcionalidad y satisfacción del cliente. En pocas palabras, se definen ciclos cortos, denominados iteraciones, en los cuales se desarrolla por completo una cierta funcionalidad, pasando por todas las etapas, desde el análisis hasta el testing. Dentro de marco, existen múltiples enfoques ágiles entre los cuales podemos destacar XP (Extreme Programming), Scrum, o FDD (Feature Driven Development).

Dado este enfoque es razonable analizar cómo se ajusta la filosofía ágil dentro de metodologías enfocadas en los procesos de negocio como BPM (Business process management), la cual permite especificar cada uno de los pasos involucrados en un proceso de negocio: su identificación, modelado, desarrollo, puesta en ejecución y administración.

¿Es BPM un modelo de negocios ágil?

Existe la postura que ya BPM, por su naturaleza y objetivos se ajusta a lo ágil: permite describir de una manera flexible y ágil procesos de negocio, todas las actividades BPM estimulan la interacción entre personas, se prioriza fuertemente entender el funcionamiento de cada proceso sin tener que esperar o depender de una extensa documentación general del sistema, y finalmente, se da mayor importancia a los individuos involucrados y a las iteraciones que a la tecnología y las herramientas. Con todos estos argumentos es posible vislumbrar una naturaleza ágil innata en BPM.

¿Siempre es posible combinar BPM con enfoque ágil?

Tim Huenemann, encargado de tecnologías en Trexing Consulting, describe en [1] distintos escenarios, analizando en cada caso la utilidad de utilizar metodologías ágiles.

Primero, es importante distinguir que BPM no es un ciclo con requerimientos seguido de implementación, es una metodologías de procesos. La naturaleza ágil se considerará entonces en cada proyecto en particular, y no como estrategia general. Proyectos sobre cambios dentro de la organización, o capacitación de recursos pueden modelarse de manera ágil, pero no es lo más conveniente dado que no poseen la estructura clásica de requerimientos más implementación. Sí es posible utilizar aspectos ágiles sobre procesos de negocio enfocados en funcionalidad, en especial cuando interactúan negocio e IT: ciclos cortos y precisos ayudan a identificar prioridades y funcionalidad. Sin embargo, el mayor beneficio de combinar metodologías ágiles se nota en proyectos pequeños de constante evolución y cambios. Desde un panorama más general,  la visión ágil aumenta las posibilidades de BPM facilitando la interacción entre recursos de negocio e IT y obteniendo resultados con impacto en el negocio con mayor antelación.

Un caso de estudio

Clay Richardson, desarrollador certificado IBM, menciona un atractivo ejemplo donde fue ampliamente exitosa la fusión ágil-BPM en su presentación “Applying Agile Development Strategies to BPM Initiatives” [2]. El caso de estudio se desarrolló en IBM para la Navy Federal Credit Union. El contexto era el siguiente: se necesitaban entregar soluciones de negocio en un período de dos meses, y se contaba con stakeholders de negocio comprometidos e involucrados, pero con requerimientos muy volátiles, tanto de stakeholders internos como externos. Se llegaron a soluciones satisfactorias utilizando FDD, con iteraciones de dos semanas de duración. Los requerimientos volátiles y los procesos claves fueron atacados con todo el potencial ágil: flexibilidad, participación de todos los stakeholders, y priorizando el desarrollo de prototipos con la funcionalidad esperada.

Referencias:

[1]     http://www.ebizq.net/blogs/bpm_theory/2011/12/agile-and-bpm.php
[2]     http://www.slideshare.net/TransformationInnovation/applying-agile-development-strategies-to-bpm-initiatives-368247

El modelo de servicio PaaS ofrece al consumidor la capacidad de ejecutar aplicaciones por éste desarrolladas o contratadas a terceros, a partir de los lenguajes de programación o interfaces (APIs) provistas por el proveedor. El usuario no tiene control ni sobre el sistema subyacente ni sobre los recursos de Infraestructura de nube.

Por esto podemos decir que el modelo PaaS provee al usuario de un Framework que puede incluir diversos lenguajes de programación, entornos de ejecución y debugging, y que permite a los consumidores desarrollar, implementar y administrar aplicaciones. Algunas de las implementaciones más ampliamente utilizadas son Google App Engine, Microsoft Azure, y force.com. En la Figura 1 puede apreciarse la pantalla de bienvenida de Google App Engine, la tecnología de Google que permite desarrollar y ejecutar una aplicación web utilizando la infraestructura de Google.

Cuestiones de Seguridad

A diferencia del modelo IaaS, los modelos de servicios PaaS están alejados del hardware y del sistema operativo pero más cerca del negocio. Es decir, se pone el foco en tecnologías de más alto nivel, pero cada vez más en Los Datos.

Al tener mayor cantidad de componentes que controlar, pero sin perder de vista el objetivo central que reside en la protección de Los Datos, los controles de seguridad se enfocan en varios aspectos diferentes. Estos controles son el acceso a la red, las interfaces de acceso, los controles criptográficos y controles específicos dependiendo de la tecnología entre otros. A continuación veremos algunas de estas consideraciones de seguridad que el NIST contempla para este modelo de servicios:

Acceso a la red: el acceso a la red por parte de los servicios PaaS es nativo al servicio, ya que sería inviable un modelo sin acceso a la red. Por esta razón, la protección mediante el uso de protocolos seguros, segmentación interna, por ejemplo mediante VLANs, etc.; se vuelven medidas indispensables.

Interfaces de acceso (API): la elección de la forma en que se accede a las diversas interfaces provistas por el proveedor no es un tema menor. Siempre es recomendable utilizar aquellas interfaces genéricas por sobre sus alternativas propietarias.

Controles criptográficos: son los controles por excelencia para proteger la confidencialidad de los datos almacenados, por ello se vuelve crítica la forma en que se generan y almacenan las claves.

Borrado seguro de los datos: el proveedor le debe proporcionar al consumidor mecanismos que garanticen el borrado seguro de los datos almacenados cuando éste lo requiera.

Controles en función de la tecnología: dependiendo de la tecnología y los lenguajes utilizados también surgirán recomendaciones y buenas prácticas asociadas. No es lo mismo si las aplicaciones utilizan MS-SQL que MySQL, Java o .NET, etc.

Database performance is one of the most challenging aspects of an organization’s database operations, and SQL tuning can help signficantly improve a system’s health and performance. This white paper demonstrates how to improve the performance of an organization’s structured query language.

SQL Performance Tuning

Un producto de software no es una aplicación aislada, sino que convive en un universo altamente conectado: se comunica, se integra, se relaciona y expande en busca de cumplir sus propósitos. Este hecho recrudece en ambientes distribuidos con alto grado de conexión y exposición como lo es de la las arquitecturas SOA, donde múltiples servicios son combinados, uniendo diferentes tecnologías y plataformas.

En estos contextos, las cuestiones de seguridad se vuelven decisivas. Dejan de ser un simple requerimiento no funcional para convertirse en una de las prioridades para el éxito del producto. La seguridad debe atacarse desde el inicio mismo del proyecto, y mantenerse activamente presente en todo el resto de las etapas.

En primera instancia, cada servicio debe cumplir con exigencias mínimas de seguridad. Entre ellas podemos nombrar integridad y confidencialidad de los datos, responder con precisión ante accesos no autorizados y considerar ataques clásicos como denial of service o non-repudation. Pero por encima de estas cuestiones, cualquier plan de seguridad en SOA debe analizar desde el momento cero la seguridad en los canales de comunicación. De nada sirve tener dos componentes invulnerables si el canal que los comunica es inseguro.

Se puede considerar la seguridad desde dos perspectivas: seguridad a nivel de la capa de transporte, y seguridad a nivel de mensajes. A nivel transporte tiene menores costos, y se basa en conceptos de seguridad ya desarrollados ya sea sobre TSL, SSL, O VPN. La segunda tiene la ventaja de poder adaptarse más a las necesidades particulares de un sistema. Las estrategias están enfocadas en la encriptación o firmado de mensajes, ya sea de manera total o parcial. Por ejemplo, los mensajes Request y Response del protocolo SOAP Envelope utiliza como algoritmos de encriptación y firma a: 3DES y Sha1WithRSA.

Entre los ataques más comunes a SOA se puede nombrar a SQL Injection. En este caso se inyecta código SQL en datos XML para obtener respuestas fraudulentas, o causar errores que revelen información sensible sobre la base de datos. Para que este ataque tenga efecto se requiere que los datos recibidos por un servicio SOA se inserten directamente en una sentencia SQL, y que la misma corra con los permisos suficientes.

Para combatir este ejemplo es importante evitar que datos de origen desconocido se anexen a sentencias SQL. Esto se logra con validación de contenidos y reglas de detección de amenazas. También el ataque “replay” es conocido, donde se busca ganar acceso respondiendo mensajes firmados y válidos. Para evitar esta modalidad es común la utilización de timestamps. Finalmente, otro punto a controlar adjuntos dañinos dentro de los mensajes SOAP. Los mismos pueden directamente bloquearse, o servirse de los servicios de un antivirus.

Un error común al intentar abordar cuestiones de seguridad es incluirla solamente al finalizar el proyecto siguiendo un esquema que prioriza la velocidad antes que la seguridad. Esto es grave porque recién con el proyecto terminado se pueden detectar amenazas serias que impiden culminarlo con éxito. Alcanza con imaginar una arquitectura compleja ya finalizada donde llevar a cabo las tareas de seguridad implica realizar cambios drásticos de funcionamiento.

Si en cambio el concepto de seguridad es tratado desde etapas tempranas, esto permitirá tener en cuenta posibles restricciones y limitaciones entre los componentes. Para tener esto en cuenta es fundamental que se incluyan el diseño de casos y pruebas de penetración al diseñar todo el esquema general de testing de la aplicación o producto.

  • URL copied!