Operating System Vulnerability Scorecard y las conclusiones apresuradas

Desde hace unos meses Jeff Jones, el Director de Estrategia en la Microsoft Security Technology Unit, viene publicando un reporte de vulnerabilidades en su blog en Microsoft TechNet. He leído sus reportes y en general presentan a Windows como la plataforma más segura, etc… lo cual no me parece mal, al fin y al cabo todo es marketing y es válido.

No voy a desacreditar los informes que este señor publica, por lo menos no yo pues no soy ningún especialista en el tema. El problema que yo encuentro aquí radica que cualquier desprevenido puede leerlos, sacar conclusiones erradas, y salir muy contento a pregonear que el Windows que tienen en casa es más seguro que todos esos linux que escuchan en la calle. Ya he visto algunos posts en blogs en castellano del estilo “al final teníamos razón”, “lo de la seguridad de linux era mentira”, bla, bla…

En realidad, voy a hacerles notar algunos recaudos que deben tener en cuenta antes de leer informes de este estilo, para no sacar conclusiones apresuradas y volver a caer siempre en el mismo engaño. Para ello me hago eco de un artículo de opinión de Davey Winder publicado en DaniWeb con el que coincido bastante. Transcribo aquí parte del artículo original (énfasis agregado por mi):

“… La suposición [que los lectores pueden desprender de los informes] está basada en datos de investigación concernientes a vulnerabilidades que requieren un parche, o para ser absolutamente claro luego de revisar la declaración de metodología cómodamente publicada por Jeff en un sitio diferente, que han sido arregladas por el proveedor.

“Y cito: «Las vulnerabilidades incluidas en el análisis solo incluyen aquellas para las cuales el proveedor ha confirmado aplicabilidad, típicamente vía una advertencia de seguridad o un parche. El análisis no incluye las vulnerabilidades reveladas públicamente durante el período que aún no han sido arregladas por el proveedor». Entonces, para ser breve, [el informe incluye] las vulnerabilidades que han sido arregladas por el proveedor, pero no los 0-day exploits ni las vulnerabilidades conocidas pero no oficialmente confirmadas vía advertencia, no importa hace cuanto se conozcan: sólo figuran las que el proveedor ha arreglado.”

En el artículo de DaniWeb hacen referencia a Secunia, un sitio que muchos conocemos desde hace bastante, pero que siempre es bueno volver a visitar. Cito: “Secunia publica informes independientes de vulnerabilidades listadas tanto por proveedor como por producto, y mantiene archivos históricos de ello, lo que lo hace una lectura interesante y brinda una perspectiva diferente al cuadro de seguridad [que vimos].”

De allí están tomadas los datos del artículo de opinión, y de ahí surgen los datos que publico a continuación (cabe aclarar que la información es del día 22/08/2007 y puede haber variado a la fecha).

Al día de hoy, Secunia informa que Windows XP Pro, presenta 188 advertencias, de las cuales 29 aún no han sido arregladas -un 15% del total- . En el caso de Windows Server 2003 Standard Edition, 8 vulnerabilidades de 135 aún no tienen parche -un 8% del total-.

Para comparar Red Hat Enterprise Linux 4 presenta en Secunia 314 vulnerabilidades todas ellas arregladas. Debian 4.0 Etch por su parte, presenta 68 advertencias, también todas arregladas.

Vuelvo al artículo de opinión:

“… Esto me sugeriría [dice Davey] que Red Hat es realmente más seguro que Windows, si queremos seguir el consejo de no simplificar la seguridad al punto de la inutilidad, pues la capacidad y voluntad de un proveedor para arreglar rápidamente las fallas encontradas debe tomarse en cuenta en cualquier observación seria al argumento de seguridad. Efectivamente, los tiempos de respuesta del proveedor son la clave cuando todos acuerdan que es prácticamente imposible escribir código 100% seguro. La métrica real de seguridad es cuán rápido llegan los parches al usuario: ignorar las vulnerabilidades que aún no han sido arregladas reduce el informe original a no ser más que FUD.

“… si uno se toma el tiempo de leer entre líneas y hurgar un poco más profundamente en lo que se está informando, puede descubrir que lo que realmente dice [el informe] es que los proveedores de Linux son más eficientes que Microsoft en lo que respecta a anunciar fallas y arreglarlas. ”

En concordancia al artículo, es innegable que todos los sistemas operativos tienen fallos (hasta OpenBSD tuvo los suyos), pero creo que no sólo importa cuántos tengan, sino también qué gravedad tienen y cuanto tarda el proveedor en arreglarlos.

En fin, lean dos veces lo que encuentran en Internet, que hasta este post tiene sus errores.

La molesta marca de agua del Starter Edition

En la informática siempre un poco de azar oculto en todas partes. A mí, en la lotería de equipos que se venden actualmente en el mercado me tocó uno con Windows Vista Starter Edition. No tardé mucho en instalarle Debian Etch, con lo cual trabajo y anda más que bien, pero dejé el sistema con arranque dual, al fin y al cabo la licencia ya está paga.

Para el que no lo conoce, el Starter Edition esta es una más de las distintas versiones de Windows Vista, precísamente la más recortada en funcionalidades, y sólo disponible en países en vías de desarrollo (como el nuestro). En El Francotirador le dicen “El Windows de los pobres” (y con justa razón).

Como sólo lo uso para probar los sitios con el IE7 (hasta hoy, que instalé ies4linux en el Debian) y jugar algún que otro juego sencillo, las limitaciones de funcionalidad no me han molestado mucho. Anda bastante rápido, salvo en la copia y eliminación de archivos (donde realmente no se sabe bien qué diablos está haciendo el sistema operativo, si eliminando los archivos con martillo o calculando los días que faltan para el próximo eclipse de sol). Hay una cosa que sí me molesta bastante, y es la marca de agua con la bandera o “watermark” que aparece abajo a la derecha de la pantalla. Sale siempre sobre todas las ventanas y no encontré forma de eliminarla.

Recurrí a Google para ver si alguien tenía una solución, pero nada apareció; en realidad, salieron un montón de resultados inservibles. Así que no me quedó otra que hacerlo a mano.

Finalmente terminé con este pequeño y sencillo código que he dado en llamar hideflag y con el cual es posible ocultar la marca de agua así nos queda la pantalla limpia (por ejemplo, para jugar al TypusPocus sin molestias) y sin modificar archivos raros ni nada de eso. Símplemente ejecuten hideflag.exe y desaparecerá la marca de agua. Ejecutándolo nuevamente volverá a aparecer. Lo ideal es ponerlo en el inicio de Windows asi ya la pantalla queda limpia desde el arranque.

Descargar: hideflag.zip (resubido dic-12)

Dado que han surgido diversas versiones de este programa en Internet, les dejo aquí las firmas del archivo original para que puedan validarlo si lo han bajado de otro lado:

MD5: a4111e0e6cc3db8a24e93d92c21b04cd
SHA1: a1e2278fcba475f94474795fafe6a2d67a38ce32

En el paquete les dejo el ejecutable y el código fuente, que está en FreePascal porque no tenía ganas de hacerlo en C. Si alguno tiene tiempo el port es bienvenido, lo mismo que las sugerencias.

Compiz Fusion en Debian Lenny con Nvidia o Intel

Actualización 06/10/2007: Chantanito nos ha acercado un excelente dato al apuntarnos con su comentario que los repositorios shame han sido separados por release. Yo no me había percatado de ello pues ya tengo compiz instalado 😉 En el repository of shame tienen toda la data de cual es la línea que deben agregar al sources.list. Para los impacientes que tenemos Debian Lenny 32 bits, es la siguiente:

deb http://download.tuxfamily.org/shames/debian-lenny/desktopfx/unstable/ ./
Mil gracias!!

Como ustedes saben, por junio de este año los proyectos de escritorios 3d Beryl y Compiz se unieron para dar nacimiento a Compiz Fusion, del cual pueden ver algunos videos, como es usual, en youtube.

Esta semana han dado a conocer la primer release de desarrollo, Compiz Fusion 0.5.2, que he probado en dos equipos y la verdad anda sin problemas incluso con una performance un poco mejor (al menos a mi juicio) que los proyectos originales. Algunas de las novedades que se incorporaron, además de los plugins de Compiz y Beryl originales, son:

  • Efectos de reflexión en el cubo
  • Un plugin de exposición de escritorios
  • Un nuevo selector de aplicaciones
  • Un completo gestor de configuración

Para los impacientes, aquí está la receta para tenerlo andando en Debian Lenny. La publico ahora (un poco tarde, por cierto) pues el repositorio de paquetes está más estable que hace unos días.

1. Instalación de los drivers de video

Para aquellos que poseen tarjetas de video nVidia, deben tener instalado y configurado el driver propietario, de lo cual ya hemos hablado en un post anterior. Con algunas modificaciones, las instrucciones son las mismas.

Por las dudas, si tenemos una placa de video nVidia, en el archivo /etc/X11/xorg.conf deberíamos tener:

...
Section "Device"
Identifier "Tarjeta de vídeo genérica"
Driver     "nvidia"
Option     "AllowGLXWithComposite" "true"
Option     "RenderAccel" "true"
EndSection
...
Section "Screen"
...
Option "AddARGBGLXVisuals" "True"
...
EndSection
...
Section "Extensions"
Option "Composite" "Enable"
EndSection
...

Para el caso de una placa de video Intel 915/945/9xx:

...
Section "Device"
...
Option "XAANoOffscreenPixmaps" "True"
...
EndSection
...
Section "Extensions"
Option "Composite" "Enable"
EndSection
...

2. Eliminar los paquetes antiguos de Beryl y Compiz

He tenido algunas dificultades al intentar actualizar los paquetes desde versiones antiguas, por lo que recomiendo remover y purgar todos los paquetes relacionados con Compiz y Beryl que estén instalados en el equipo.

# aptitude purge beryl… compiz… heliodor… emerald… etc, etc…

3. Agregar el repositorio shame

Esta buen alma caritativa se ha encargado de empaquetar Compiz Fusion para Debian, así que aprovecho para agradecer su laburo.

Agregar, entonces, las líneas siguientes a /etc/apt/sources.list

# Compiz Fusion development (shame)
deb http://download.tuxfamily.org/shames/debian-sid/desktopfx/unstable/ ./

Update 06/09/2007

Agrego dos repos más por si tienen problemas con el anterior. El siguiente es también de shame, pero contiene una versión más antigua y un poco más estable de compiz:

deb http://download.tuxfamily.org/shames/debian-sid/desktopfx/snapshot/ ./

Este último lo encontré de casualidad y proviene del O.S. Revolution Unnoficial Debian Repository:

deb http://download.tuxfamily.org/osrdebian unstable compiz-fusion-git

4. Agregar las llaves del repositorio

# wget http://download.tuxfamily.org/shames/A42A6CF5.gpg -O- | apt-key add –

5. Instalar los paquetes de Compiz Fusion

Dependiendo del entorno escritorio en el cual deseamos ver los efectos gráficos, es conveniente instalar…

# aptitude install compiz-fusion-kde (para KDE)
# aptitude install compiz-fusion-gnome (para Gnome)
# aptitude install compiz-gnome emerald emerald-themes (para XFCE)
# aptitude install compiz-fusion-all (todos los paquetes para cualquier entorno)

6. Iniciar Compiz Fusion

Como usuario normal, una vez iniciada la sesión en el escritorio de preferencia, ejecutar

$ fusion-icon

o bien

$ fusion-manager

Como he tenido algunos inconvenientes con gtk-window-decorator, les recomiendo iniciar con el decorador de ventanas emerald. Para ello en vez de ejecutar fusion-icon, ejecuten compiz y luego inicien emerald, de la siguiente forma:

$ compiz &
$ emerald &

Eso debería andar; o por lo menos en mi modesta pc con 256 de RAM y 256 de video anda muy lindo.
Bien, por ahora es todo, los dejo para que disfruten de los atractivos efectos y saquen sus propias conclusiones.

De cómo Linus escribió el fsck y comenzó a usar su propio sistema operativo

Un fragmento del artículo en KernelTrap sobre la release 0.10 [2] de Linux:

“… él [Linus] encontró la inspiración para escribir una utilidad fsck para Linux (originalmente sólo capaz de detectar problemas en el sistema de archivos, pero no arreglarlos) cuando accidentalmente escribió sobre su partición minix, «Escribí sobre mi partición minix ayer (no se les ocurra preguntar porqué – algunas cosas mejor olvidarlas :-), y si bien tuve minix-386 levantado y corriendo de nuevo, está algo flojo (sin bash, sin make). Parece que tendré que escribir fdisk/mkfs/fsck para linux así ya no necesitaría tener minix. Salió algo bueno de eso.» En una entrevista del año 2005 [que pueden ver en el cache de Google] Linus ofreció una explicación completa de lo que le pasó a su partición Minix:

“En los inicios cuando estaba haciendo Linux, una de las cosas que hacía era leer las news en Internet desde la computadora de la universidad. Yo discaba a la universidad y generalmente daba ocupado, así que programé un discador automático. [Ese programa] discaría y, si obtenía señal de ocupado, esperaría un minuto y luego discaría nuevamente. Aún no estaba utilizando Linux constantemente, pero estaba usándolo de todas formas. Por error, hice un discado automático a mi disco rígido y básicamente sobrescribí el sistema operativo con las cadenas de discado. Así que tuve que decidir si reinstalaba el sistema operativo que estaba utilizando, o comenzaba a utilizar Linux constantemente. Dije OK, es una señal, empezaré a usar Linux todo el tiempo.

¿habrá errado entre /dev/tty1 y /dev/hd1? geeeezzz.. nos pasa todo el tiempo…

ATZ
ATQ0 V1 E1 S0=0 &C1 &D2
ATDT06109...

PHPTAL: un lenguaje de plantillas para PHP basado en ZPT

Estos días estuve trabajando bastante en Python, Zope y Plone, un conjunto de tecnologías que me parecen atractivas y muy versátiles, y en el transcurso del aprendizaje natural encontré las Zope Page Templates (ZPT), que es un lenguaje para creación de plantillas diferente a los normales, pues en vez de crear tags HTML nuevas, añade atributos a las etiquetas existentes.

Según el Zope Book, “el objetivo de las Page Templates es permitir a los diseñadores y programadores trabajar en conjunto fácilmente. Un diseñador puede utilizar un editor HTML visual (el clásico WYSIWYG como Dreamweaver, NVU o Front*cofff*Page) para crear una plantilla, que luego el programador puede editar para hacerla parte de una aplicación. Si es necesario, el diseñador puede volver a cargar la plantilla en su editor visual y hacer cambios en la estructura y apariencia. Tomando ciertos recaudos, el trabajo de edición se puede realizar sin dificultades y no interfiere con la aplicación.

“Las Page Templates apuntan a lograr este objetivo adoptando tres principios:

  1. Permitir la creación y modificación de las páginas con herramientas visuales.
  2. Lo que ve es muy similar a lo que obtiene (WYSIVSTWYG).
  3. Mantiene el código fuera de las plantillas, salvo la lógica estructural.

Una Page Template es como un modelo de la página que generará. En particular *es HTML válido* (e incluso *XHTML válido*!)

Redondeando, quiere decir que nuestro editor visual no hará desastres con la plantilla, como suele ocurrir con otros lenguajes de plantillas, ya que no hay etiquetas extrañas sino atributos en nuevos las etiquetas actuales (y sólo dos namespaces opcionales).

Como me pareció muy cómodo me puse a buscar si en PHP había algo similar, y efectivamente unos buenos muchachos han portado esta idea creando el PHP Template Attribute Language (PHPTAL) que es una implementación de ZPT para PHP . En resúmen, es una librería de generación de plantillas XML/XHTML para PHP.

PHPTAL actualmente va por la versión 1.1.8 y se distribuye como standalone o empaquetado para PEAR. En la introducción hay un ejemplo muy ilustrativo de como funciona la herramienta.

Algunas ventajas:

  • impone mayor separación entre lógica y presentación,
  • advierte si se olvidó de cerrar alguna etiqueta HTML o si la página está malformada,
  • ya no es necesario utilizar htmlentities,
  • las plantillas quedan limpias y legibles,
  • permite insertar texto de ejemplo para previsualizar la plantilla sin necesidad de ejecutarla con PHP,
  • se integra bastante bien con editores visuales,
  • permite la abstracción de datos con un sistema similar a xpath.

Algunas desventajas:

  • es una dependencia de la aplicación,
  • hay que aprenderse los atributos,
  • hay que producir XHTML límpio (aunque esto no sería una desventaja).

Para mayor información les dejo el enlace a la guía de referencia de PHPTAL.

Minivacaciones en Dudignac

Bien, este último tiempo no he publicado nada ya que estuve de minivacaciones en Dudignac, mi querido pueblo natal. En general viajo seguido para visitar a la familia y amigos, y para respirar un poco de aire fresco de campo y despejarme del ambiente y el trajín de la ciudad (aunque Luján siempre es más tranquilo que Capital Federal).

Para quienes no lo conocen (lo que es, casi todo el mundo), Dudignac es una pequeña localidad de unos 2.500 hab. situada a 11 km. de la Ruta Provincial Nº 65, en el partido de Nueve de Julio, provincia de Buenos Aires, Argentina cuya economía se basa casi totalmente en la agricultura y ganadería.

La localidad data del año 1911 y su nombre es en honor a Don Exequiel Dudignac, dueño original de las tierras de la Estancia “La Avanzada”, quien donó parte de las mismas para la construcción de las plazas y edificios públicos.

En este instante no tengo fotos pero postear algunas pronto así se dan idea de lo lindo que es el pueblo. Igual desde allí mucho no puedo postear, no hay banda ancha cableada (ni ADSL ni cablemodem), así que solo me queda revisar correo una vez cada tanto por dial-up. ¿Actualizar el Debian de casa? por red ni de casualidad, por eso siempre llevo los paquetes en DVD.

Por ahora les dejo la vista en Google Maps (lamentablemente en baja resolución) y algunos datos geográficos más, para que lo vayan conociendo y no me miren raro cuando les pronuncio el nombre Dudignac. Ah! y lo van a escuchar como “dudignac” con ge y ene, o con eñe como “dudiñac” o también “dudiñá”; aunque los coterráneos le decimos, más familiarmente, El Dudi.

ACTUALIZACIÓN 2008: Si hacen clic en la vista en Google Maps, muy probablemente vean la etiqueta “Villa Eugenio Necochea” sobre la imagen de Dudignac. Esto se debe a un enorme error en la capa de etiquetas de google maps, donde se han intercambiado los nombres de Dudignac, 9 de Julio, y varias localidades más, por otros pueblos y ciudades de Argentina. Esta curiosa (y grave) falla está detallada en el post Un guía para Google Maps que escribí en septiembre de 2008. Por suerte, esto ya está arreglado.

ACTUALIZACIÓN 2009: En este post de hace dos años prometí poner fotos de la localidad. Promesa incumplida, lamentablemente, pues hasta recientemente no pude disponer de una cámara que saque fotografías de calidad (buena iluminación y mínimo 7 mp). A modo de disculpa, si pueden aceptarlo, dejo las excelentes fotos de Dudignac que unos dedicados coterráneos han publicado en el grupo de Facebook al efecto. Créditos a Sonia, Mariano y demás gente.

Línea de tiempo de distribuciones GNU/Linux

Leo en la edición 209 de Distrowatch Weekly que Andreas Lundqvist ha actualizado en su web la línea de tiempo de distribuciones GNU/Linux. La última edición publicada es la 7.6 y está disponible en formatos PNG y SVG bajo licencia GFDL.

Pueden visualizarla haciendo clic aquí (png, 587kb).

">

Esto es para los que picamos HTML seguido 😛

De icanhascheezburger.com vía Fabio.com.ar.

Un sencillo método para el desarrollo de sistemas web

Trevor Turton publicó recientemente en su blog un artículo titulado Use Cases on Steroids en el cual discurre sobre un posible método para encarar el desarrollo de software y no salir herido en el intento. Me tomo el atrevimiento de traducir informalmente una parte del texto de su autoría que resume el procedimiento:

  • Durante la fase de elicitación de requerimientos, los desarrolladores trabajan junto al cliente (como organización) para identificar los elementos debajo enumerados. Los desarrolladores representarán estos elementos en una herramienta de modelado acordada y consultarán al cliente para verificar que esto se ha realizado con precisión (esta parte del modelo es simple de controlar por no-especialistas) :
    • Los actores que juegan un rol en el sistema.
    • Una lista jerárquica de las acciones principales que estos actores ejecutarán.
    • Modelos de cada panel requerido para soportar las acciones identificadas; en HTML, si fuera un sistema basado en el navegador.
    • Casos de uso que describen en palabras las diversas acciones identificadas; en HTML si es un sistema basado en web, con enlaces a los paneles modelo.
    • Un modelo de datos que contiene todos los elementos de datos identificados en las acciones y paneles.
  • Durante la fase de diseño:
    • Los usuarios pueden manejarse a través de los casos de uso, viendo los paneles modelo en cada paso del proceso, pudiendo validarlos o corregirlos.
    • Los desarrolladores refinan el modelo de datos según las formas normales, produciendo un diseño de base de datos.
    • Los diseñadores incorporan al modelo las clases, atributos y métodos que serán necesarios para implementar el sistema.
  • Durante la fase de programación:
    • Los desarrolladores engrosan el modelo con el código requerido para implementar el sistema.
    • Los desarrolladores crean la base de datos y las clases requeridas para administrar los datos en ellas.
    • Puede añadirse lógica estándar sencilla a los paneles para propagar los datos ingresadas por los usuarios a los paneles subsecuentes.
    • Otros miembros del equipo de desarrollo refinan el estilo visual de los paneles modelos a fin de que los usuarios los sientan adecuados.
    • Se toman capturas de los paneles clave, que serán firmadas por los propietarios del sistema quienes acordarán que es el estilo visual que requieren.
    • El equipo de desarrollo debe asegurarse que el estilo acordado sea aplicado uniformemente a todos los paneles, preferentemente mediante hojas de estilo.
    • Los propietarios del sistema prueban y firman (o critican) los paneles modificados para asegurar que poseen la funcionalidad y apariencia requerida.
  • Durante la fase de prueba:
    • A medida que se implementan las distintas partes del sistema, se incorpora a los paneles modelo correspondientes la lógica embebida, según sea necesario.
    • Los casos de uso se convierten ahora en scripts de prueba. Los usuarios los utilizarán como guía para evaluar metódicamente el sistema, sólo que ahora la navegación entre paneles se realizará a través de lógica del software en el sistema de prueba, en vez de hacer clics en los enlaces en el caso de uso (aunque los enlaces de los casos de uso pueden utilizarse para navegar los paneles de software apropiados donde ésto tenga sentido, p.ej. donde no se requiere entrada desde un panel anterior).
    • La navegación entre secciones del sistema que no han sido desarrolladas aún puede realizarse a través de los casos de uso, de forma que los usuarios pueden evaluar los componentes en un contexto plausible, en vez ser en forma aislada.
    • Podría implementarse a través de hojas de estilo un esquema de colores convenido para distinguir los paneles en funcionamiento de los paneles en desarrollo.

En realidad no es nada nuevo, muchos de nosotros hemos optado por una metodología similar al desarrollar un sistema web. Lo bueno es que el muchacho se tomó el tiempo de documentarlo y darnos unos muy buenos consejos. So… Thank you very much, Trevor!

Hace 25 años se estrenaba Blade Runner

Hace 25 años se estrenaba en los EE.UU. una de mis películas favoritas: Blade Runner, dirigida por Ridley Scott (el mismo de Alien) y basada en la novela ¿Sueñan los androides con ovejas eléctricas? de Philip K. Dick. Para los que nos gusta la ciencia ficción clásica y las oscuras imágenes del cyberpunk, Blade Runner es un film obligado.

La película transcurre en un Los Ángeles distópico y aborda una temática amplia: la dependencia en la tecnología, la ingeniería genética y la clonación, la memoria, los simbolismos, la muerte y la inmortalidad, el ambiente y la globalización, y la búsqueda de la identidad, entre otros. La fotografía y la música juegan un rol fundamental en el film, basta decir que la banda de sonido fue compuesta por Vangelis.

Los que navegan bastante en la red, muy posiblemente hayan visto alguna de estas frases en algún foro o como firma de un email:

“The light that burns twice as bright, burns half as long. And you have burned so very very brightly, Roy.”
– Eldon Tyrell, a Roy.

“He visto cosas que la gente no creería. Naves de batalla incendiadas mas allá de Orión. Vi rayos C brillar en la oscuridad cerca de Tanhauser Gate. Todos esos momentos se perderán en el tiempo, como lágrimas en la lluvia. Es hora de morir.”
– Roy Batty, a Deckard.

Pues bien, ya saben de donde salieron. Si tienen un rato de ocio y la pueden conseguir, les recomiendo la vean de noche y con un buen equipo de audio. También les recomiendo leer el original de Sueñan los androides… ya que contiene elementos no explorados en la película.

Copyright © All Rights Reserved · Green Hope Theme by Sivan & schiy · Proudly powered by WordPress