//

Páginas

miércoles, 7 de agosto de 2013

Rompiendo HTTPS en sólo 30 segundos

BREACH (Browser Reconnaissance and Exfiltration via Adaptive Compression of Hypertext) es una nueva herramienta que utiliza una técnica mediante la cual es posible extraer tokens de logins, IDs de sesión y otra información sensible a partir de tráfico web cifrado SSL/TLS y en ¡sólo 30 segundos!.

Esto significa que podría permitir a un atacante descifrar fácilmente un canal HTTPS de un banco o de un sitio de venta online. 

Fue presentada en la última conferencia Black Hat y se aprovecha varias vulnerabilidades de forma similar a lo que hacía CRIME con deflate; es decir, ataca al algoritmo de compresión aunque en las respuestas HTTP. Eso sí, como comentamos la información sensible ha de estar en las respuestas HTTP, el servidor por supuesto ha de utilizar compresión HTTP y el exploit requiere que la víctima visite primero un enlace malicioso.



Más información en:

lunes, 24 de junio de 2013

Dropbox Uploader

Es un script en BASH que puede ser utilizado para cargar, descargar, suprimir , catalogar archivos y mucho más en Dropbox, un archivo compartido online, sincronización y servicios de backup. Sólo necesita de cUrl (es una herramienta que sirve para transmitir información de o a un servidor), disponible para todos los sistemas operativos e instalado por omisión en muchas distribuciones Linux. Seguro: no requiere que proporciones sus identificaciones (username/password) a este script porque este utiliza el API oficial de Dropbox para el proceso de autenticación.


######################################Script:######################################
#!/usr/bin/env bash
# Dropbox Uploader
# Copyright (C) 2010-2013 Andrea Fabrizi <andrea.fabrizi@gmail.com>
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

#Default configuration file
CONFIG_FILE=~/.dropbox_uploader

#If you are experiencing problems establishing SSL connection with the DropBox
#server, try to uncomment this option.
#Note: This option explicitly allows curl to perform "insecure" SSL connections and transfers.
#CURL_ACCEPT_CERTIFICATES="-k"

#Default chunk size in Mb for the upload process
#It is recommended to increase this value only if you have enough free space on your /tmp partition
#Lower values may increase the number of http requests
CHUNK_SIZE=4

#Set to 1 to enable DEBUG mode
DEBUG=0

#Set to 1 to enable VERBOSE mode
VERBOSE=1

#Curl location
#If not set, curl will be searched into the $PATH
#CURL_BIN="/usr/bin/curl"

#Temporary folder
TMP_DIR="/tmp"

#Don't edit these...
API_REQUEST_TOKEN_URL="https://api.dropbox.com/1/oauth/request_token"
API_USER_AUTH_URL="https://www2.dropbox.com/1/oauth/authorize"
API_ACCESS_TOKEN_URL="https://api.dropbox.com/1/oauth/access_token"
API_CHUNKED_UPLOAD_URL="https://api-content.dropbox.com/1/chunked_upload"
API_CHUNKED_UPLOAD_COMMIT_URL="https://api-content.dropbox.com/1/commit_chunked_upload"
API_UPLOAD_URL="https://api-content.dropbox.com/1/files_put"
API_DOWNLOAD_URL="https://api-content.dropbox.com/1/files"
API_DELETE_URL="https://api.dropbox.com/1/fileops/delete"
API_MOVE_URL="https://api.dropbox.com/1/fileops/move"
API_METADATA_URL="https://api.dropbox.com/1/metadata"
API_INFO_URL="https://api.dropbox.com/1/account/info"
API_MKDIR_URL="https://api.dropbox.com/1/fileops/create_folder"
API_SHARES_URL="https://api.dropbox.com/1/shares"
APP_CREATE_URL="https://www2.dropbox.com/developers/apps"
RESPONSE_FILE="$TMP_DIR/du_resp_$RANDOM"
CHUNK_FILE="$TMP_DIR/du_chunk_$RANDOM"
BIN_DEPS="sed basename date grep stat dd printf mkdir"
VERSION="0.11.8"
umask 077

#Check the shell
if [ -z "$BASH_VERSION" ]; then
echo -e "Error: this script requires BASH shell!"
exit 1
fi

if [ $DEBUG -ne 0 ]; then
set -x
RESPONSE_FILE="$TMP_DIR/du_resp_debug"
fi

#Look for optional config file parameter
while getopts ":f:" opt; do
case $opt in

f)
CONFIG_FILE=$OPTARG
shift $((OPTIND-1))
;;

\?)
echo "Invalid option: -$OPTARG" >&2
exit 1
;;

:)
echo "Option -$OPTARG requires an argument." >&2
exit 1
;;

esac
done

#Print verbose information depends on $VERBOSE variable
function print
{
if [ $VERBOSE -eq 1 ]; then
echo -ne "$1";
fi
}

#Returns unix timestamp
function utime
{
echo $(date +%s)
}

#Remove temporary files
function remove_temp_files
{
if [ $DEBUG -eq 0 ]; then
rm -fr "$RESPONSE_FILE"
rm -fr "$CHUNK_FILE"
fi
}


#Returns the file size in bytes
# generic GNU Linux: linux-gnu
# windows cygwin: cygwin
# raspberry pi: linux-gnueabihf
# macosx: darwin10.0
# freebsd: FreeBSD
# qnap: linux-gnueabi
# iOS: darwin9
function file_size
{
#Some embedded linux devices
if [ "$OSTYPE" == "linux-gnueabi" -o "$OSTYPE" == "linux-gnu" ]; then
stat -c "%s" "$1"
return

#Generic Unix
elif [ "${OSTYPE:0:5}" == "linux" -o "$OSTYPE" == "cygwin" -o "${OSTYPE:0:7}" == "solaris" -o "${OSTYPE}" == "darwin9" ]; then
stat --format="%s" "$1"
return

#BSD or others OS
else
stat -f "%z" "$1"
return
fi
}

#USAGE
function usage
{
echo -e "Dropbox Uploader v$VERSION"
echo -e "Andrea Fabrizi - andrea.fabrizi@gmail.com\n"
echo -e "Usage: $0 COMMAND [PARAMETERS]..."
echo -e "\nCommands:"
echo -e "\t upload [LOCAL_FILE/DIR] <REMOTE_FILE/DIR>"
echo -e "\t download [REMOTE_FILE/DIR] <LOCAL_FILE/DIR>"
echo -e "\t delete [REMOTE_FILE/DIR]"
echo -e "\t move [REMOTE_FILE/DIR] [REMOTE_FILE/DIR]"
echo -e "\t mkdir [REMOTE_DIR]"
echo -e "\t list <REMOTE_DIR>"
echo -e "\t share [REMOTE_FILE]"
echo -e "\t info"
echo -e "\t unlink"
echo -e "\nOptional parameters:"
echo -e "\t-f [FILENAME] Load the configuration file from a specific file"
echo -en "\nFor more info and examples, please see the README file.\n\n"
remove_temp_files
exit 1
}

if [ -z "$CURL_BIN" ]; then
BIN_DEPS="$BIN_DEPS curl"
CURL_BIN="curl"
fi
#DEPENDENCIES CHECK
for i in $BIN_DEPS; do
which $i > /dev/null
if [ $? -ne 0 ]; then
echo -e "Error: Required program could not be found: $i"
remove_temp_files
exit 1
fi
done

#Urlencode
function urlencode
{
local string="${1}"
local strlen=${#string}
local encoded=""

for (( pos=0 ; pos<strlen ; pos++ )); do
c=${string:$pos:1}
case "$c" in
[-_.~a-zA-Z0-9] ) o="${c}" ;;
* ) printf -v o '%%%02x' "'$c"
esac
encoded+="${o}"
done
echo "$encoded"
}
#Generic upload wrapper around db_upload_file and db_upload_dir functions
#$1 = Local source file/dir
#$2 = Remote destination file/dir
function db_upload
{
local SRC="$1"
local DST="$2"

#It's a file
if [ -f "$SRC" ]; then
db_upload_file "$SRC" "$DST"

#It's a directory
elif [ -d "$SRC" ]; then
db_upload_dir "$SRC" "$DST"

#Unsupported object...
else
print " > Skipping not regular file '$SRC'"
fi
}

#Generic upload wrapper around db_chunked_upload_file and db_simple_upload_file
#The final upload function will be choosen based on the file size
#$1 = Local source file
#$2 = Remote destination file
function db_upload_file
{
local FILE_SRC="$1"
local FILE_DST="$2"

#Checking file size
FILE_SIZE=$(file_size "$FILE_SRC")

#Checking the free quota
FREE_QUOTA=$(db_free_quota)
if [ $FILE_SIZE -gt $FREE_QUOTA ]; then
let FREE_MB_QUOTA=$FREE_QUOTA/1024/1024
echo -e "Error: You have no enough space on your DropBox!"
echo -e "Free quota: $FREE_MB_QUOTA Mb"
remove_temp_files
exit 1
fi

if [ $FILE_SIZE -gt 157286000 ]; then
#If the file is greater than 150Mb, the chunked_upload API will be used
db_chunked_upload_file "$FILE_SRC" "$FILE_DST"
else
db_simple_upload_file "$FILE_SRC" "$FILE_DST"
fi
}

#Simple file upload
#$1 = Local source file
#$2 = Remote destination file
function db_simple_upload_file
{
local FILE_SRC="$1"
local FILE_DST=$(urlencode "$2")

#Show the progress bar during the file upload
if [ $VERBOSE -eq 1 ]; then
CURL_PARAMETERS="--progress-bar"
else
CURL_PARAMETERS="-s --show-error"
fi

print " > Uploading $FILE_SRC to $2... \n"
time=$(utime)
$CURL_BIN $CURL_ACCEPT_CERTIFICATES $CURL_PARAMETERS -i --globoff -o "$RESPONSE_FILE" --upload-file "$FILE_SRC" "$API_UPLOAD_URL/$ACCESS_LEVEL/$FILE_DST?oauth_consumer_key=$APPKEY&oauth_token=$OAUTH_ACCESS_TOKEN&oauth_signature_method=PLAINTEXT&oauth_signature=$APPSECRET%26$OAUTH_ACCESS_TOKEN_SECRET&oauth_timestamp=$time&oauth_nonce=$RANDOM" 2> /dev/null


#Check
grep "HTTP/1.1 200 OK" "$RESPONSE_FILE" > /dev/null
if [ $? -eq 0 ]; then
print " > DONE\n"
else
print " > FAILED\n"
print " An error occurred requesting /upload\n"
remove_temp_files
exit 1
fi
}

#Chunked file upload
#$1 = Local source file
#$2 = Remote destination file
function db_chunked_upload_file
{
local FILE_SRC="$1"
local FILE_DST=$(urlencode "$2")
print " > Uploading \"$FILE_SRC\" to \"$2\""
local FILE_SIZE=$(file_size "$FILE_SRC")
local OFFSET=0
local UPLOAD_ID=""
local UPLOAD_ERROR=0
#Uploading chunks...
while ([ $OFFSET -ne $FILE_SIZE ]); do

let OFFSET_MB=$OFFSET/1024/1024

#Create the chunk
dd if="$FILE_SRC" of="$CHUNK_FILE" bs=1048576 skip=$OFFSET_MB count=$CHUNK_SIZE 2> /dev/null

#Only for the first request these parameters are not included
if [ $OFFSET -ne 0 ]; then
CHUNK_PARAMS="upload_id=$UPLOAD_ID&offset=$OFFSET"
fi

#Uploading the chunk...
time=$(utime)
$CURL_BIN $CURL_ACCEPT_CERTIFICATES -s --show-error --globoff -i -o "$RESPONSE_FILE" --upload-file "$CHUNK_FILE" "$API_CHUNKED_UPLOAD_URL?$CHUNK_PARAMS&oauth_consumer_key=$APPKEY&oauth_token=$OAUTH_ACCESS_TOKEN&oauth_signature_method=PLAINTEXT&oauth_signature=$APPSECRET%26$OAUTH_ACCESS_TOKEN_SECRET&oauth_timestamp=$time&oauth_nonce=$RANDOM" 2> /dev/null

#Check
grep "HTTP/1.1 200 OK" "$RESPONSE_FILE" > /dev/null
if [ $? -ne 0 ]; then
print "*"
let UPLOAD_ERROR=$UPLOAD_ERROR+1

#On error, the upload is retried for max 3 times
if [ $UPLOAD_ERROR -gt 2 ]; then
print " > FAILED\n"
print " An error occurred requesting /chunked_upload\n"
remove_temp_files
exit 1
fi

else
print "."
UPLOAD_ERROR=0
UPLOAD_ID=$(sed -n 's/.*"upload_id": *"*\([^"]*\)"*.*/\1/p' "$RESPONSE_FILE")
OFFSET=$(sed -n 's/.*"offset": *\([^}]*\).*/\1/p' "$RESPONSE_FILE")
fi

done

UPLOAD_ERROR=0

#Commit the upload
while (true); do

time=$(utime)
$CURL_BIN $CURL_ACCEPT_CERTIFICATES -s --show-error --globoff -i -o "$RESPONSE_FILE" --data "upload_id=$UPLOAD_ID&oauth_consumer_key=$APPKEY&oauth_token=$OAUTH_ACCESS_TOKEN&oauth_signature_method=PLAINTEXT&oauth_signature=$APPSECRET%26$OAUTH_ACCESS_TOKEN_SECRET&oauth_timestamp=$time&oauth_nonce=$RANDOM" "$API_CHUNKED_UPLOAD_COMMIT_URL/$ACCESS_LEVEL/$FILE_DST" 2> /dev/null

#Check
grep "HTTP/1.1 200 OK" "$RESPONSE_FILE" > /dev/null
if [ $? -ne 0 ]; then
print "*"
let UPLOAD_ERROR=$UPLOAD_ERROR+1

#On error, the commit is retried for max 3 times
if [ $UPLOAD_ERROR -gt 2 ]; then
print " > FAILED\n"
print " An error occurred requesting /commit_chunked_upload\n"
remove_temp_files
exit 1
fi

else
print "."
UPLOAD_ERROR=0
break
fi

done

print "\n > DONE\n"
}

#Directory upload
#$1 = Local source dir
#$2 = Remote destination dir
function db_upload_dir
{
local DIR_SRC="$1"
local DIR_DST="$2"

#Creatig remote directory
db_mkdir "$DIR_DST"

for file in "$DIR_SRC/"*; do

basefile=$(basename "$file")
db_upload "$file" "$DIR_DST/$basefile"

done
}

#Returns the free space on DropBox in bytes
function db_free_quota
{
time=$(utime)
$CURL_BIN $CURL_ACCEPT_CERTIFICATES -s --show-error --globoff -i -o "$RESPONSE_FILE" --data "oauth_consumer_key=$APPKEY&oauth_token=$OAUTH_ACCESS_TOKEN&oauth_signature_method=PLAINTEXT&oauth_signature=$APPSECRET%26$OAUTH_ACCESS_TOKEN_SECRET&oauth_timestamp=$time&oauth_nonce=$RANDOM" "$API_INFO_URL" 2> /dev/null

#Check
grep "HTTP/1.1 200 OK" "$RESPONSE_FILE" > /dev/null
if [ $? -eq 0 ]; then

quota=$(sed -n 's/.*"quota": \([0-9]*\).*/\1/p' "$RESPONSE_FILE")
used=$(sed -n 's/.*"normal": \([0-9]*\).*/\1/p' "$RESPONSE_FILE")
let free_quota=$quota-$used
echo $free_quota

else
#On error, a big free quota is returned, so if this function fails the upload will not be blocked...
echo 1000000000000
fi
}

#Generic download wrapper
#$1 = Remote source file/dir
#$2 = Local destination file/dir
function db_download
{
local SRC="$1"
local DST=$2

#Checking if it's a file or a directory
time=$(utime)
$CURL_BIN $CURL_ACCEPT_CERTIFICATES -s --show-error --globoff -i -o "$RESPONSE_FILE" "$API_METADATA_URL/$ACCESS_LEVEL/$SRC?oauth_consumer_key=$APPKEY&oauth_token=$OAUTH_ACCESS_TOKEN&oauth_signature_method=PLAINTEXT&oauth_signature=$APPSECRET%26$OAUTH_ACCESS_TOKEN_SECRET&oauth_timestamp=$time&oauth_nonce=$RANDOM" 2> /dev/null

#Check
grep "HTTP/1.1 200 OK" "$RESPONSE_FILE" > /dev/null
if [ $? -eq 0 ]; then

local IS_DIR=$(sed -n 's/^\(.*\)\"contents":.\[.*/\1/p' "$RESPONSE_FILE")

#It's a directory
if [ ! -z "$IS_DIR" ]; then

#If the DST folder is not specified, I assume that is the current directory
if [ -z "$DST" ]; then
DST="."
fi

#Checking if the destination directory exists
if [ ! -d "$DST" ]; then
echo -e "Error: Please specify a valid destination directory!"
remove_temp_files
exit 1
fi


local basedir=$(basename "$SRC")
print " > Creating local directory \"$DST/$basedir\""
mkdir -p "$DST/$basedir"


#Check
if [ $? -eq 0 ]; then
print "\n > DONE\n"
else
print "FAILED\n"
remove_temp_files
exit 1
fi


#Extracting directory content [...]
#and replacing "}, {" with "}\n{"
#I don't like this piece of code... but seems to be the only way to do this with SED, writing a portable code...
local DIR_CONTENT=$(sed -n 's/.*: \[{\(.*\)/\1/p' "$RESPONSE_FILE" | sed 's/}, *{/}\
{/g')

#Extracing files and subfolders
TMP_DIR_CONTENT_FILE="${RESPONSE_FILE}_$RANDOM"
echo "$DIR_CONTENT" | sed -n 's/.*"path": *"\([^"]*\)",.*"is_dir": *\([^"]*\),.*/\1:\2/p' > $TMP_DIR_CONTENT_FILE

#For each line...
while read -r line; do

local FILE=${line%:*}
FILE=${FILE##*/}
local TYPE=${line#*:}

if [ "$TYPE" == "false" ]; then
db_download_file "$SRC/$FILE" "$DST/$basedir/$FILE"
else
db_download "$SRC/$FILE" "$DST/$basedir/"
fi
print "\n"
done < $TMP_DIR_CONTENT_FILE


rm -fr $TMP_DIR_CONTENT_FILE

#It's a file
else
db_download_file "$SRC" "$DST"
fi

else
print "FAILED\n"
remove_temp_files
exit 1
fi
}

#Simple file download
#$1 = Remote source file
#$2 = Local destination file
function db_download_file
{
local FILE_SRC=$(urlencode "$1")
local FILE_DST=$2

#Show the progress bar during the file download
if [ $VERBOSE -eq 1 ]; then
local CURL_PARAMETERS="--progress-bar"
else
local CURL_PARAMETERS="-s --show-error"
fi


print " > Downloading \"$1\" to \"$FILE_DST\"... \n"
time=$(utime)
$CURL_BIN $CURL_ACCEPT_CERTIFICATES $CURL_PARAMETERS --globoff -D "$RESPONSE_FILE" -o "$FILE_DST" "$API_DOWNLOAD_URL/$ACCESS_LEVEL/$FILE_SRC?oauth_consumer_key=$APPKEY&oauth_token=$OAUTH_ACCESS_TOKEN&oauth_signature_method=PLAINTEXT&oauth_signature=$APPSECRET%26$OAUTH_ACCESS_TOKEN_SECRET&oauth_timestamp=$time&oauth_nonce=$RANDOM" 2> /dev/null


#Check
grep "HTTP/1.1 200 OK" "$RESPONSE_FILE" > /dev/null
if [ $? -eq 0 ]; then
print " > DONE\n"
else
print " > FAILED\n"
print " If the problem persists, try to unlink this script from your\n"
print " Dropbox account, then setup again ($0 unlink).\n"
rm -fr "$FILE_DST"
remove_temp_files
exit 1
fi
}
#Prints account info
function db_account_info
{
print "Dropbox Uploader v$VERSION\n\n"
print " > Getting info... \n"
time=$(utime)
$CURL_BIN $CURL_ACCEPT_CERTIFICATES -s --show-error --globoff -i -o "$RESPONSE_FILE" --data "oauth_consumer_key=$APPKEY&oauth_token=$OAUTH_ACCESS_TOKEN&oauth_signature_method=PLAINTEXT&oauth_signature=$APPSECRET%26$OAUTH_ACCESS_TOKEN_SECRET&oauth_timestamp=$time&oauth_nonce=$RANDOM" "$API_INFO_URL" 2> /dev/null

#Check
grep "HTTP/1.1 200 OK" "$RESPONSE_FILE" > /dev/null
if [ $? -eq 0 ]; then


name=$(sed -n 's/.*"display_name": "\([^"]*\).*/\1/p' "$RESPONSE_FILE")
echo -e "\nName:\t$name"


uid=$(sed -n 's/.*"uid": \([0-9]*\).*/\1/p' "$RESPONSE_FILE")
echo -e "UID:\t$uid"

email=$(sed -n 's/.*"email": "\([^"]*\).*/\1/p' "$RESPONSE_FILE")
echo -e "Email:\t$email"

quota=$(sed -n 's/.*"quota": \([0-9]*\).*/\1/p' "$RESPONSE_FILE")
let quota_mb=$quota/1024/1024
echo -e "Quota:\t$quota_mb Mb"

used=$(sed -n 's/.*"normal": \([0-9]*\).*/\1/p' "$RESPONSE_FILE")
let used_mb=$used/1024/1024
echo -e "Used:\t$used_mb Mb"

let free_mb=($quota-$used)/1024/1024
echo -e "Free:\t$free_mb Mb"
echo ""

else
print " > FAILED\n"
print " If the problem persists, try to unlink this script from your\n"
print " Dropbox account, then setup again ($0 unlink).\n"
remove_temp_files
exit 1
fi
}

#Account unlink
function db_unlink
{
echo -ne "\n Are you sure you want unlink this script from your Dropbox account? [y/n]"
read answer
if [ "$answer" == "y" ]; then
rm -fr "$CONFIG_FILE"
echo -ne "Done!\n"
fi
}

#Delete a remote file
#$1 = Remote file to delete
function db_delete
{
local FILE_DST=$(urlencode "$1")
print " > Deleting \"$1\"... "
time=$(utime)
$CURL_BIN $CURL_ACCEPT_CERTIFICATES -s --show-error --globoff -i -o "$RESPONSE_FILE" --data "oauth_consumer_key=$APPKEY&oauth_token=$OAUTH_ACCESS_TOKEN&oauth_signature_method=PLAINTEXT&oauth_signature=$APPSECRET%26$OAUTH_ACCESS_TOKEN_SECRET&oauth_timestamp=$time&oauth_nonce=$RANDOM&root=$ACCESS_LEVEL&path=$FILE_DST" "$API_DELETE_URL" 2> /dev/null

#Check
grep "HTTP/1.1 200 OK" "$RESPONSE_FILE" > /dev/null
if [ $? -eq 0 ]; then
print "DONE\n"
else
print "FAILED\n"
remove_temp_files
exit 1
fi
}

#Move/Rename a remote file
#$1 = Remote file to rename or move
#$2 = New file name or location
function db_move
{
local FILE_SRC=$(urlencode "$1")
local FILE_DEST=$(urlencode "$2")


print " > Moving \"$1\" to \"$2\" ... "
time=$(utime)
$CURL_BIN $CURL_ACCEPT_CERTIFICATES -s --show-error --globoff -i -o "$RESPONSE_FILE" --data "oauth_consumer_key=$APPKEY&oauth_token=$OAUTH_ACCESS_TOKEN&oauth_signature_method=PLAINTEXT&oauth_signature=$APPSECRET%26$OAUTH_ACCESS_TOKEN_SECRET&oauth_timestamp=$time&oauth_nonce=$RANDOM&root=$ACCESS_LEVEL&from_path=$FILE_SRC&to_path=$FILE_DEST" "$API_MOVE_URL" 2> /dev/null

#Check
grep "HTTP/1.1 200 OK" "$RESPONSE_FILE" > /dev/null
if [ $? -eq 0 ]; then
print "DONE\n"
else
print "FAILED\n"
remove_temp_files
exit 1
fi
}

#Create a new directory
#$1 = Remote directory to create
function db_mkdir
{
local MKDIR_DST=$(urlencode "$1")
print " > Creating Directory \"$1\"... "
time=$(utime)
$CURL_BIN $CURL_ACCEPT_CERTIFICATES -s --show-error --globoff -i -o "$RESPONSE_FILE" --data "oauth_consumer_key=$APPKEY&oauth_token=$OAUTH_ACCESS_TOKEN&oauth_signature_method=PLAINTEXT&oauth_signature=$APPSECRET%26$OAUTH_ACCESS_TOKEN_SECRET&oauth_timestamp=$time&oauth_nonce=$RANDOM&root=$ACCESS_LEVEL&path=$MKDIR_DST" "$API_MKDIR_URL" 2> /dev/null

#Check
if grep "HTTP/1.1 200 OK" "$RESPONSE_FILE" > /dev/null; then
print "DONE\n"
elif grep "HTTP/1.1 403 Forbidden" "$RESPONSE_FILE" > /dev/null; then
print "ALREADY EXISTS\n"
else
print "FAILED\n"
remove_temp_files
exit 1
fi
}

#List remote directory
#$1 = Remote directory
function db_list
{
local DIR_DST=$1

print " > Listing \"$1\"... "
time=$(utime)
$CURL_BIN $CURL_ACCEPT_CERTIFICATES -s --show-error --globoff -i -o "$RESPONSE_FILE" "$API_METADATA_URL/$ACCESS_LEVEL/$DIR_DST?oauth_consumer_key=$APPKEY&oauth_token=$OAUTH_ACCESS_TOKEN&oauth_signature_method=PLAINTEXT&oauth_signature=$APPSECRET%26$OAUTH_ACCESS_TOKEN_SECRET&oauth_timestamp=$time&oauth_nonce=$RANDOM" 2> /dev/null

#Check
grep "HTTP/1.1 200 OK" "$RESPONSE_FILE" > /dev/null
if [ $? -eq 0 ]; then

local IS_DIR=$(sed -n 's/^\(.*\)\"contents":.\[.*/\1/p' "$RESPONSE_FILE")

#It's a directory
if [ ! -z "$IS_DIR" ]; then
print "DONE\n"

#Extracting directory content [...]
#and replacing "}, {" with "}\n{"
#I don't like this piece of code... but seems to be the only way to do this with SED, writing a portable code...
local DIR_CONTENT=$(sed -n 's/.*: \[{\(.*\)/\1/p' "$RESPONSE_FILE" | sed 's/}, *{/}\
{/g')

#Extracing files and subfolders
echo "$DIR_CONTENT" | sed -n 's/.*"path": *"\([^"]*\)",.*"is_dir": *\([^"]*\),.*/\1:\2/p' > $RESPONSE_FILE

#For each line...
while read -r line; do

local FILE=${line%:*}
FILE=${FILE##*/}
local TYPE=${line#*:}

if [ "$TYPE" == "false" ]; then
printf " [F] $FILE\n"
else
printf " [D] $FILE\n"
fi
done < $RESPONSE_FILE

#It's a file
else
print "FAILED $DIR_DST is not a directory!\n"
remove_temp_files
exit 1
fi

else
print "FAILED\n"
remove_temp_files
exit 1
fi
}

#Share remote file
#$1 = Remote file
function db_share
{
local FILE_DST=$(urlencode "$1")

time=$(utime)
$CURL_BIN $CURL_ACCEPT_CERTIFICATES -s --show-error --globoff -i -o "$RESPONSE_FILE" "$API_SHARES_URL/$ACCESS_LEVEL/$FILE_DST?oauth_consumer_key=$APPKEY&oauth_token=$OAUTH_ACCESS_TOKEN&oauth_signature_method=PLAINTEXT&oauth_signature=$APPSECRET%26$OAUTH_ACCESS_TOKEN_SECRET&oauth_timestamp=$time&oauth_nonce=$RANDOM&short_url=false" 2> /dev/null

#Check
grep "HTTP/1.1 200 OK" "$RESPONSE_FILE" > /dev/null
if [ $? -eq 0 ]; then
echo $(sed -n 's/.*"url": "\([^"]*\).*/\1/p' "$RESPONSE_FILE")
else
print "FAILED\n"
remove_temp_files
exit 1
fi
}

############################################ SETUP ##############################

#CHECKING FOR AUTH FILE
if [ -f "$CONFIG_FILE" ]; then

#Loading data... and change old format config if necesary.
source "$CONFIG_FILE" 2>/dev/null || {
sed -i 's/:/=/' "$CONFIG_FILE" && source "$CONFIG_FILE" 2>/dev/null
}


#Checking the loaded data
if [ -z "$APPKEY" -o -z "$APPSECRET" -o -z "$OAUTH_ACCESS_TOKEN_SECRET" -o -z "$OAUTH_ACCESS_TOKEN" ]; then
echo -ne "Error loading data from $CONFIG_FILE...\n"
echo -ne "It is recommended to run $0 unlink\n"
remove_temp_files
exit 1
fi

#Back compatibility with previous Dropbox Uploader versions
if [ -z "$ACCESS_LEVEL" ]; then
ACCESS_LEVEL="dropbox"
fi

#NEW SETUP...
else

echo -ne "\n This is the first time you run this script.\n"
echo -ne " Please open this URL from your Browser, and access using your account:\n\n -> $APP_CREATE_URL\n"
echo -ne "\n If you haven't already done, click \"Create an App\" and fill in the\n"
echo -ne " form with the following data:\n\n"
echo -ne " App name: MyUploader$RANDOM$RANDOM\n"
echo -ne " App type: Core\n"
echo -ne " Permission type: App folder or Full Dropbox\n\n"
echo -ne " Now, click on the \"Create\" button.\n\n"
echo -ne " When your new App is successfully created, please type the\n"
echo -ne " App Key, App Secret and the Access level:\n\n"
#Getting the app key and secret from the user
while (true); do
echo -n " # App key: "
read APPKEY
echo -n " # App secret: "
read APPSECRET
echo -n " # Access level you have chosen, App folder or Full Dropbox [a/f]: "
read ACCESS_LEVEL

if [ "$ACCESS_LEVEL" == "a" ]; then
ACCESS_LEVEL="sandbox"
ACCESS_MSG="App Folder"
else
ACCESS_LEVEL="dropbox"
ACCESS_MSG="Full Dropbox"
fi

echo -ne "\n > App key is $APPKEY, App secret is $APPSECRET and Access level is $ACCESS_MSG, it's ok? [y/n]"
read answer
if [ "$answer" == "y" ]; then
break;
fi
done

#TOKEN REQUESTS
echo -ne "\n > Token request... "
time=$(utime)
$CURL_BIN $CURL_ACCEPT_CERTIFICATES -s --show-error --globoff -i -o $RESPONSE_FILE --data "oauth_consumer_key=$APPKEY&oauth_signature_method=PLAINTEXT&oauth_signature=$APPSECRET%26&oauth_timestamp=$time&oauth_nonce=$RANDOM" "$API_REQUEST_TOKEN_URL" 2> /dev/null
OAUTH_TOKEN_SECRET=$(sed -n 's/oauth_token_secret=\([a-z A-Z 0-9]*\).*/\1/p' "$RESPONSE_FILE")
OAUTH_TOKEN=$(sed -n 's/.*oauth_token=\([a-z A-Z 0-9]*\)/\1/p' "$RESPONSE_FILE")

if [ -n "$OAUTH_TOKEN" -a -n "$OAUTH_TOKEN_SECRET" ]; then
echo -ne "OK\n"
else
echo -ne " FAILED\n\n Please, check your App key and secret...\n\n"
remove_temp_files
exit 1
fi

while (true); do

#USER AUTH
echo -ne "\n Please visit this URL from your Browser, and allow Dropbox Uploader\n"
echo -ne " to access your DropBox account:\n\n --> ${API_USER_AUTH_URL}?oauth_token=$OAUTH_TOKEN\n"
echo -ne "\nPress enter when done...\n"
read

#API_ACCESS_TOKEN_URL
echo -ne " > Access Token request... "
time=$(utime)
$CURL_BIN $CURL_ACCEPT_CERTIFICATES -s --show-error --globoff -i -o $RESPONSE_FILE --data "oauth_consumer_key=$APPKEY&oauth_token=$OAUTH_TOKEN&oauth_signature_method=PLAINTEXT&oauth_signature=$APPSECRET%26$OAUTH_TOKEN_SECRET&oauth_timestamp=$time&oauth_nonce=$RANDOM" "$API_ACCESS_TOKEN_URL" 2> /dev/null
OAUTH_ACCESS_TOKEN_SECRET=$(sed -n 's/oauth_token_secret=\([a-z A-Z 0-9]*\)&.*/\1/p' "$RESPONSE_FILE")
OAUTH_ACCESS_TOKEN=$(sed -n 's/.*oauth_token=\([a-z A-Z 0-9]*\)&.*/\1/p' "$RESPONSE_FILE")
OAUTH_ACCESS_UID=$(sed -n 's/.*uid=\([0-9]*\)/\1/p' "$RESPONSE_FILE")

if [ -n "$OAUTH_ACCESS_TOKEN" -a -n "$OAUTH_ACCESS_TOKEN_SECRET" -a -n "$OAUTH_ACCESS_UID" ]; then
echo -ne "OK\n"

#Saving data in new format, compatible with source command.
echo "APPKEY=$APPKEY" > "$CONFIG_FILE"
echo "APPSECRET=$APPSECRET" >> "$CONFIG_FILE"
echo "ACCESS_LEVEL=$ACCESS_LEVEL" >> "$CONFIG_FILE"
echo "OAUTH_ACCESS_TOKEN=$OAUTH_ACCESS_TOKEN" >> "$CONFIG_FILE"
echo "OAUTH_ACCESS_TOKEN_SECRET=$OAUTH_ACCESS_TOKEN_SECRET" >> "$CONFIG_FILE"

echo -ne "\n Setup completed!\n"
break
else
print " FAILED\n"
fi
done;

remove_temp_files
exit 0
fi

################################## START ########################################

COMMAND=$1

#CHECKING PARAMS VALUES
case $COMMAND in

upload)

FILE_SRC=$2
FILE_DST=$3

#Checking FILE_SRC
if [ ! -f "$FILE_SRC" -a ! -d "$FILE_SRC" ]; then
echo -e "Error: Please specify a valid source file or directory!"
remove_temp_files
exit 1
fi

#Checking FILE_DST
if [ -z "$FILE_DST" ]; then
FILE_DST=/$(basename "$FILE_SRC")
fi

db_upload "$FILE_SRC" "$FILE_DST"
;;

download)

FILE_SRC=$2
FILE_DST=$3

#Checking FILE_SRC
if [ -z "$FILE_SRC" ]; then
echo -e "Error: Please specify a valid source file!"
remove_temp_files
exit 1
fi

#Checking FILE_DST
#if [ -z "$FILE_DST" ]; then
# FILE_DST=$(basename "$FILE_SRC")
#fi

db_download "$FILE_SRC" "$FILE_DST"
;;
share)
FILE_DST=$2

#Checking FILE_DST
if [ -z "$FILE_DST" ]; then
echo -e "Error: Please specify a valid dest file!"
remove_temp_files
exit 1
fi

db_share "$FILE_DST"

;;

info)
db_account_info

;;

delete|remove)

FILE_DST=$2

#Checking FILE_DST
if [ -z "$FILE_DST" ]; then
echo -e "Error: Please specify a valid destination file!"
remove_temp_files
exit 1
fi

db_delete "$FILE_DST"
;;

move|rename)
FILE_SRC=$2
FILE_DEST=$3

#Checking FILE_SRC
if [ -z "$FILE_SRC" -o -z "$FILE_DEST" ]; then
echo -e "Error: Please specify a valid source and destination file!"
remove_temp_files
exit 1
fi

db_move "$FILE_SRC" "$FILE_DEST"

;;

mkdir)

MKDIR_DST=$2

#Checking MKDIR_DST
if [ -z "$MKDIR_DST" ]; then
echo -e "Error: Please specify a valid destination directory!"
remove_temp_files
exit 1
fi

db_mkdir "$MKDIR_DST"

;;

list)

DIR_DST=$2

#Checking DIR_DST
if [ -z "$DIR_DST" ]; then
DIR_DST="/"
fi

db_list "$DIR_DST"
;;

unlink)
db_unlink

;;

*)
usage
;;
esac
remove_temp_files
exit 0
#################################################################################
Uso:

./dropbox_uploader.sh COMMAND [PARAMETERS]...

[%%]: Required param
<%%>: Optional param


Ejemplos:

 ./dropbox_uploader.sh upload /etc/passwd /myfiles/passwd.old
    ./dropbox_uploader.sh upload /etc/passwd
    ./dropbox_uploader.sh download /backup.zip
    ./dropbox_uploader.sh delete /backup.zip
    ./dropbox_uploader.sh mkdir /myDir/
    ./dropbox_uploader.sh upload "My File.txt" "My File 2.txt"   (File name with spaces...)
    ./dropbox_uploader.sh share "My File.txt"

Su Utización por Primera vez:
Lanzado el script por primera vez nos pedira que nos conectemos a la direccion web:
 https://www2.dropbox.com/developers/apps

introduce en la url proporcionada por el script (en cualquier navegador) y autenticate en Dropbox
crea una aplicación introduciendo los datos que te ofrece el script .
brindados la autenticación y los permisos procedemos a introducir al script el "app key" y el "app secret" y así accederá sin problemas a Dropbox luego tendras que escoger dos opciones: "a" (acceso a un fichero especifico ) o "f" (acceso full a Dropbox) y finalmente tendremos que introducir otra url a nuestro navegador y brindarle los permisos. Todos estos pasos se dan sólo una única vez.

Agradecimiento a : Andrea Farizi, por brindar ala comunidad un excelente script!
fuente: https://github.com/andreafabrizi/Dropbox-Uploader

La inteligencia británica espía todas las comunicaciones mundiales

Derivado del escándalo PRISM y de las mismas fuentes que lo destaparon, el diario The Guardian asegura que la agencia de inteligencia británica GCHQ tiene monitorizadas las mayores redes troncales de fibra óptica por las que circulan la mayoría del tráfico telefónico y de Internet mundial.
La operación de ciberespionaje británico, con nombre en código ‘Tempora’, incluye interceptores en los cables submarinos trasatlánticos bajo conocimiento y acuerdo con las empresas comerciales que construyen y operan los claves.
Según las fuentes, el alcance de Tempora es gigantesco, incluso mayor que el de la operación de vigilancia electrónica masiva llevada a cabo por la NSA estadounidense (aunque comparten información) bajo PRISM y que ha salpicado a las grandes tecnológicas del país como Google, Apple o Microsoft.
La cantidad de información a la que tendría acceso Tempora sería enorme ya que tendría monitorizado 200 cables de fibra por los que pasan 10 gigabits de datos por segundo.
Unas 850.000 empleados y contratistas públicos y privados tendrían acceso a esta enorme base de datos, aunque los informes de alto secreto serían de 750 analistas de GCHQ y NSA que trabajan específicamente en el filtrado de información entre llamadas, correo electrónico, documentos, redes sociales y todo lo que se mueva en Internet.
La información, con todos los indicios de ser cierta al igual que PRISM, reaviva el debate de hasta dónde debe alcanzar el ciberespionaje en aras de la seguridad y si es lícito una vigilancia generalizada y sin control de todas las redes de telecomunicaciones y de Internet, en un grave atentado a la privacidad de los ciudadanos.
Ironías del destino, Edward Snowden, filtrador de la información, acaba de ser acusado formalmente de espionaje por el gobierno de Estados Unidos.
autor: Juan Ranchal

jueves, 20 de junio de 2013

Microsoft will pay hard cash to coders who tell the company about the software holes

Microsoft will pay coders as much as $11,000 for discovering Web browser defects before hackers can serve up viruses through flawed dot-gov and other websites, the software giant announced on Tuesday.

Joining the "bug bounty" trend begun by Google and Mozilla, Microsoft will crowdsource error detection starting June 26, company officials said.
The firm wants to hear about "critical vulnerabilities” that affect Internet Explorer 11 Preview on Microsoft's new operating system, Windows 8.1 Preview. The direct cash payments for finding Internet Explorer defects only will be offered for one month, with a July 26 cutoff for submissions, according to the company's website. 
"Learning about critical vulnerabilities in Internet Explorer as early as possible during the public preview will help Microsoft make the newest version of the browser more secure," officials explained. 
In May researchers identified a "watering hole" assault on the Labor Department's “Site Exposure Matrices” website  that took advantage of an undetected vulnerability in certain IE browsers. The database lists nuclear-related illnesses linked to federal facilities and toxicity levels at each location that might have sickened employees developing atomic weapons. Watering hole attacks exploit glitches in websites to implant malicious software that then infiltrates the computers of people visiting the sites.
Under Microsoft’s program, $150,000 will be the top prize for programmers who discover and plug a hole in the new Windows operating system. Coders who discover "truly novel exploitation techniques against protections" in Windows 8.1 Preview will collect $100,000. Microsoft will shell out an additional $50,000 for "defensive ideas" that protect users from these threats.
Researchers at security firm Kaspersky Lab on Tuesday noted that for years Microsoft said it didn't need a bug bounty program
"Microsoft security officials say that the program has been a long time in development, and the factor that made this the right time to launch is the recent rise of vulnerability brokers. Up until quite recently, most of the researchers who found bugs in Microsoft products reported them directly to the company. That’s no longer the case,” according to anentry on the lab’s blog.
Vulnerability brokers include researchers who sell "zero day" viruses that wriggle through previously unknown software flaws.
Chris Wysopal, chief technology officer at Veracode, told the lab, “Mitigation bypasses are very valuable on the open market," adding, "Microsoft is clearly trying to steer that research to them so they can make defensive improvements." 
Wysopal said, “This should pay for itself as it would cost much more than the bounty to fix these in a patch.  They should do this for all their beta products.”
Pero ahora la pregunta es: realmente será de ayuda dicha propuesta, si sabemos muy bien que un " Zero Day " en el "black market"  llegan a medio millón! ... en fin es una medida en cierta forma tentadora 

miércoles, 19 de junio de 2013

Modelos de inteligencia computacional aplicados al diseño e investigación de detección de intrusos

El imparable crecimiento de internet en el mundo, y la integración de los diversos sistemas informáticos conectados a la red de Internet han hecho que la Seguridad de la Información alcance un papel de suma importancia actualmente. Desde el momento en que un equipo (bien un ordenador, una tableta o un “smartphone”) se conecta a Internet, se abren toda una serie de posibilidades; sin embargo, éstas traen consigo nuevos y en ocasiones complejos tipos de ataques. Para que  las informaciones sean protegidas de acciones maliciosas, es necesario hacer uso de herramientas especializadas en la protección de datos e informaciones, como antivirus, antispam, firewall, IDS, IPS, balanceadores de cargas, control de accesos, sistemas criptográficos tipos VPN y entre otras. Un sistema que auxilia y automatiza la protección de las informaciones es el sistema de detección de intrusos (IDS) que  tiene como intensión de detectar el uso no autorizado, ataques en ordenadores o en redes de ordenadores. Sin embargo, algunas funcionalidades de esos sistemas son limitadas, tales como la detección, el análisis y la respuesta instantánea de un nuevo ataque (Zero day attack).

La aplicación de técnicas basadas en Inteligencia Artificial para la detección de intrusos (IDS) fundamentalmente las redes neuronales artificiales (ANN), están demostrando ser un enfoque muy adecuado para paliar muchos de los problemas que se dan en esta área. Sin embargo, gran volumen de información que se requiere cada día para entrenar estos sistemas, junto con la necesidad exponencial de tiempo que requieren para asimilarlos, dificulta enormemente su puesta en marcha en escenarios reales.

Ante esta situación me propuse diseñar un sistema capaz de detectar situaciones anómalas en la red, basado en modelos de inteligencia computacional e instrumento complementario para visualizar la estructura interior de un conjunto de datos asociados al tráfico de redes, se aplicarán diversas técnicas EPP (Exploratory Proyection Pursuit) como PCA (Principal Component Analysis), MLHL (Maximum Likelihood Hebbian Learning) y CMLH (Cooperative Maximum Likelihood Hebian Learning), para analizar la estructura interna del conjunto de datos y de este modo identificar comportamiento anómalos asociados a situaciones de riesgo en la red (CORCHADO, HERRERO, 2013).

       Una vez definida la propuesta: “modelos de inteligencia computacional aplicados al diseño e investigación de sistema de detección de intrusos”; procedí a la realización de la fase de experimentación y de análisis de los resultados, por tal motivo me centré en la fase de análisis, debido a que la mencionada experimentación está igualmente orientada hacia dicha cuestión. Para las mencionadas pruebas, el autor en lo posible ha tratado de considerar un escenario real donde nuestro análisis no sólo se centrará en conocidos puertos, protocolos, direcciones IPV4, etc. sino que analizaremos todo el tráfico de datos generados por la red (los datos capturados fueron de 6 semanas llegando acumular un aproximado de 600 gb de tráfico de red), en donde se han hecho un sin número de pruebas de ataques tanto internos como externos suplantando inclusive algunas IP de los equipos de la red (señuelos), pero el mayor énfasis de estas pruebas cayó en los ataques internos (localmente) en vista que con las pruebas realizadas hemos podido ver que muchos de estos ataques son más difíciles de detectar y se confunden dentro del tráfico normal de la red lo cual muchas veces pasan desapercibidas por el administrador de redes. En la séptima edición del informe anual de seguridad en entidades financieras realizado por Deloitte[84], en la que han participado más de 350 entidades financieras de todo el mundo, 19 de ellas españolas y que analiza el estado de estas compañías en materia de seguridad de la información; concluyen que los “ataques internos” y “las “fugas de información” son, por tanto los problemas más detectados en las entidades. Las proyecciones de PCA, MLHL y en especial la de CMLHL permiten identificar situaciones anómalas, muchas de estas situaciones dependiendo de dónde proceda el ataque tendrán una particularidad que se diferenciará al del tráfico normal pudiendo ser la concentración de paquetes, direcciones no paralelas, el distanciamiento que tienen con el conjunto de paquetes y muchas más particularidades que se reflejaron en la experimentación y análisis nos dan indicios de situaciones anómalas, lo cual nos permite su identificación.

          En la Figura 1.1 se puede apreciar el scatter plot generado por la PCA, enfrentando las m (número de neuronas de salida) primeras componentes (columnas) del conjunto de datos entre sí. Dicha visualización representa el tráfico normal de la red por un tiempo de 10 minutos.
Figura 1.1 Scatter Plot, del tráfico normal.

             En la Figura 1.2  apreciamos el tráfico normal de la red en 3 dimensiones.


Figura 1.2 Tráfico normal de la red en 3D.

      En la Figura 1.3 apreciamos la proyección PCA en 2 dimensiones, del segmento simple(S1) conteniendo situaciones no anómalas (tráfico normal de la red)

Figura 1.3 Visualización del Segmento  simple-S1.(PCA)




A continuación visualizaremos el segmento simple (S9), en total tienen una duración de 10 minutos aproximadamente, donde el tipo de ataque fue una denegación de servicio que consistió en la inundación de paquetes UDP flags por un tiempo de sólo 8 segundos. Apreciaremos la proyección 2D del  PCA, MLHL y CMLHL respectivamente. El tamaño de los paquetes, que son diferenciados con el color magenta (S9) del tráfico normal; vemos que toman un direccionamiento  continuo contrario al del tráfico normal y es debido a que dicho ataque es del tipo spoofing en la cual la identidad del atacante es suplantada por un sin número de direcciones IPs (direcciones no locales).


Figura 1.4  Visualización del Segmento simple-S9. (PCA)


 Figura 1.5  Visualización del Segmento simple-S9. (MLHL)


Figura 1.6  Visualización del Segmento simple-S9. (CMLHL)


         De todos los experimentos presentados anteriormente, se ha podido ver que los ataques realizados localmente muchas veces se confunden con el del tráfico normal, pero la dirección,  la dimensión y la localización de los paquetes las distinguen de lo normal. Así mismo aquellos ataques realizados desde el exterior de nuestra red son representados como líneas no paralelas a la dirección en la cual el tráfico normal se desarrolla. Por lo tanto no es fácil el establecer exactamente que ocurre en un momento dado; es en este preciso instante donde el análisis cumple un papel sumamente importante por tal motivo nos apoyamos en uno de los paradigmas del presente estudio, que es el estudio de casos (CBR), donde el análisis incorpora dos comportamientos diferentes que son: “aprendiendo” y la “explotación”.
           
      Los resultados del estudio de pruebas demuestran la capacidad de  generalización, porque muestra "el modelo visual" de ataques nuevos incluso si el modelo neuronal no ha afrontado tales ataques antes. Debería ser notado que los atacantes emplean estrategias muy diferentes para poder pasar inadvertidos en la red haciendo uso de diversas técnicas como: la extensión de los paquetes de ataque con el tiempo o reduciendo la cantidad de paquetes en un ataque, el empleo de señuelos, etc; harán que  se visualicen menos claramente dichos ataques, pero con el empleo del CMLHL se pueden identificar dichos ataques con mayor efectividad como ha sido mostrado en las figuras anteriormente mostradas.
                       
         Comparando CMLHL con otros  modelos no supervisados, podemos concluir que PCA y MLHL en la identificación de situaciones anómalas son menos eficientes y eficaces. Por tal motivo CMLHL será el modelo a ser utilizado para próximos proyectos de investigación relacionados al campo de ID. Próximamente en: http://peromatech.com, http://peromatech.wordpress.com


referencias:

[1] CORCHADO, Emilio; HERRERO, Álvaro. RT-MOVICAB-IDS: Addressing real-time intrusion detection. Spain, 2013. University of Salamanca.


Educación y conocimiento como valor agregado en la economía


Quizás resulte extraño la siguiente publicación en un blog totalmente técnico en Seguridad de la Información, pero considero que me ha sido sumamente inspirador el presente artículo y de la cuál es dirigido a mis compatriotas esperando que muchas de estas líneas que leerán le sean de inspiración y fuerzas para el logro de ese ideal que como peruanos deseamos y lucharemos por lograrlo.

Los “expertos” dicen que los maestros no saben lo que deben saber. Pero, ¿qué deben saber? No lo dicen, porque tampoco lo saben. Lo intuyen pero no lo saben; actúan en base a corazonadas. Necesitamos conocer cuál es la clave de una educación moderna o seguiremos defendiendo la educación arcaica, imaginándola moderna o postmoderna.

Cuando tenemos entre las manos uno de los tantos teléfonos celulares u observamos maravillados los artefactos eléctricos que se exhiben en los mejores shopping centers, o cuando pensamos en la economía de los países tecnológicamente desarrollados, por ejemplo en la nanotecnología para realizar delicadísimas y exitosas operaciones quirúrgicas; en los satélites espaciales, o en las mega—máquinas, con las cuales se puede trasladar en un día una montaña de un lugar a otro; o bien los satélites y los vuelos espaciales; la cibernética y la gran variedad de sofisticados objetos como los radares o los aviones teledirigidos; y, en fin, el perfeccionamiento vertiginoso, incesante, infinito de los artefactos más vinculados o dependientes de la tecnología digital y, viendo que en los mismos términos, avanza la división del trabajo, nos preguntamos: ¿Por qué valen lo que cuestan estos objetos cada día más sofisticados? ¿Por qué tanto cambio? ¿Cuál es el secreto de todo esto? ¿Magia o milagro? La respuesta a la primera interrogante puede ser muy variada, podría decirse —por ejemplo— que lo que determina su valor es la belleza del objeto, su forma o su función. Y por supuesto, que esas respuestas son correctas, porque nadie pagaría lo que paga por un objeto que no le sirviera o que habiendo otros más bellos, funcionales y, a la vez baratos, eligiera el menos presentable, caro y técnicamente el menos acabado. Pero, ¿es eso lo que determina finalmente el valor de estos objetos? El valor de estos objetos lo determina el trabajo humano, porque son hechos por seres humanos. A estos objetos no lo produce la naturaleza. Si todos esos maravillosos objetos fueran producidos y abundantemente como el oxígeno por la naturaleza y más bien fabricaríamos oxígeno para vivir, ¿costarían lo que cuestan? La respuesta, obviamente es no. Entonces surge otra pregunta: ¿Cualquier persona o grupo de personas puede producir estos u otros objetos semejantes? Es obvio que no. Las personas que lo producen son seres con una preparación especializada. Se trata de seres humanos que representan lo más avanzado del conocimiento, de la creatividad y del ingenio humano.

Y ¿cómo es que estos seres humanos han llegado a tener esa pericia? ¿Cómo es que llegaron a tener esos conocimientos? Nacieron sabiendo, ¿o tuvieron que aprender a fabricarlos? Esos conocimientos se aprenden. Los individuos nacemos con un cerebro potencialmente capaz de aprender a hacer todo cuando ahora se hace y lo que en el futuro se hará, casi como si fuese obra de la magia o milagro. El aprendizaje es un proceso y la enseñanza corre a cargo de la educación.

La naturaleza pone lo que se ve, lo tangible. La Educación aporta los elementos intangibles. Si vemos un televisor funcionando, la naturaleza da la materia tangible, aquello que tiene tamaño, peso, color, olor, aspereza o suavidad, aquello que se puede observar mediante los sentidos. La verdad es que incluso en esto, el hombre ya ha introducido conocimiento y talento, pues lo tangible no es puramente naturaleza, sino naturaleza en la que el factor subjetivo, el hombre mediante su intelecto incorporado está presente. Es la mente humana objetivada con la ayuda de la naturaleza. O es la naturaleza moldeada por el hombre. Por eso cuando alguien rompe uno de estos objetos, suele justificarse diciendo que ha roto una cosa. Una cosa que es la vez el hombre objetivado, al parecer cosificado, hecho cosa, evidenciado a través de una cosa, pero no cosa pura, naturaleza pura. Y quien la compra obviamente está inserto en el mundo de las mercancías y para obtener el dinero con el que esa cosa compra, tiene que haberse primero objetivado en otras cosas o animales a los que cría, los debe haber vendido y mediante esa mercancía universal que es el dinero se enfrentan a los individuos objetivados en las cosas que los demás venden. Por eso, no diremos exactamente que la naturaleza aporta todo lo que podemos ver, porque lo tangible es ya naturaleza transformada por el hombre. Y si un televisor transmite imágenes de lo que en este momento sucede en un continente hasta otro continente, o si existen cámaras que nos permiten ver lo que hace un satélite espacial a muchos miles o millones de kilómetros de la tierra, esa capacidad lo da de manera exclusiva el hombre. La naturaleza solamente pone aquello que sirve de soporte, o envase. Nada más. Si un teléfono celular ayuda a recibir la voz de una persona y transforma en un lenguaje numérico, o sea digital, y lo transporta de ese modo por muy largo que sea el camino. Y cuando el receptor presiona una tecla para escuchar la llamada y su equipo celular transforma esos números nuevamente en la voz que salió del emisor, todas las potencialidades de estos objetos los ha puesto el hombre con su inteligencia, mediante un largo proceso de enseñanza—aprendizaje que es la educación.

De este modo, unos trozos de naturaleza —que por sí mismos solamente cuestan lo que se ha invertido en extraerlos y transportarlos—, se convierten en objetos con posibilidades que parecen ser fruto de la magia o milagro, la verdadera magia o milagro es la capacidad humana, la mente habilitada mediante la Educación.

Los conocimientos, las habilidades, las destrezas son producto de la Educación. Claro que cuando hablamos de educación, hay que aclarar que todo el mundo educa. Porque no solamente las instituciones formales educan. Educa también la familia, el grupo de amigos, el vecindario, la iglesia, el servicio militar. Sin proponérnoslo todos somos educadores.

Pero ¿qué clase de educación imparte quien no tiene título profesional de educador y, finalmente, ningún título profesional? Transmite los conocimientos y la cultura de su colectividad. Vale decir, transmite los hábitos, actitudes, lenguaje articulado y gestual, mitos, leyendas, conocimientos climatológicos, modos de relacionarse con las demás personas, con las autoridades. Transmite la cultura popular. Esta cultura popular crea un ambiente muy especial que sirve como trasfondo o back ground, sobre el que se desarrolla la educación formal. Pero no alcanza para producir objetos tan extraordinarios como los que hemos señalado.

Cada vez que uno ve en el mercado un objeto cualquiera hay que recordar que esos objetos pueden venderse y comprarse porque son útiles. No todos los objetos útiles son iguales entre sí, por el simple hecho de ser útiles. Sabemos que no es así. Cuando vamos de compras o simplemente a curiosear, tratamos de informarnos cuáles de ellos son los mejores. Tenemos siempre la idea de que entre los objetos que cumplen la misma función unos son mejores que otros. Además nos damos cuenta que cada día aparecen en los hipermercados objetos más bellos, de mejor calidad y muchas veces nos quedamos con la angustia de no poder comprarlos. Cuando el dinero no alcanza compramos alguno de los que no cuestan muy caro y nos quedamos con la angustia de no haber podido comprar el mejor. Y si compramos el mejor entonces no solamente sentimos satisfacción, sino que incluso hacemos alguna ostentación ante los que no tienen dinero como para comprar uno igual. Pero lo que nosotros rara vez nos ponemos a pensar es cómo, de qué manera, los que los producen han podido hacerlo. Simplemente nos conformamos con pensar o decir que estos maravillosos objetos lo han hecho las grandes empresas. O sea que sin darnos cuenta estamos personificando a las instituciones, vale decir las vemos como personas y simultáneamente obviamos a las personas naturales. Al pensar así, curiosamente pasamos por alto el hecho de que las grandes corporaciones, las grandes industrias están compuestas por seres humanos y quienes realmente hicieron esos a veces codiciados objetos son seres humanos reales, personas de carne y hueso. Para poder hacer esos objetos obviamente tienen un entrenamiento especial. Han sido capacitados para hacerlos. Han tenido que aprender hasta tener la posibilidad de producirlos. Ese aprendizaje significa que alguien hizo el papel de profesor mientras ellos cumplían el rol de alumnos. Entre quienes participan en el proceso productivo de esos maravillosos objetos intervienen cadenas generalmente muy largas de personas, algo de lo que nosotros ni siquiera atinamos a imaginar. Podemos pensar en los que usan las manos. Podemos imaginar muchas manos trabajando. Pero antes que se empleen las manos están los que ponen la mente, la teoría, el conocimiento. Aunque la tendencia es a que las manos que hagan los objetos sean las de los robots, porque el hombre tiende cada vez más a reemplazar el uso de las manos por el uso de la mente. Esto sucede, por supuesto, ahí donde la educación sirve para eso, para capacitar la mente no solamente para deletrear algunas palabras o saber firmar — -como se decía antes— sino para producir. La mente humana ha descubierto las leyes de la Física. También descubrió y hace avanzar la matemática, así como la química y demás ciencias. Esto sucede en los países donde la educación está orientada a capacitar a la gente para asimilar conocimiento y para aplicar esos conocimientos a la economía y también para producir más conocimientos. ¿Nuestra educación tiene esas características? ¿En qué se parece nuestra Educación a esa clase de educación? O, ¿en qué se diferencia? ¿Qué enseñamos los maestros del Perú? ¿Qué clase de preparación nos dieron nuestros catedráticos en las universidades o nuestros profesores en los institutos? Y ¿en qué nos capacitaron los que dijeron que nos estaban capacitando, por ejemplo, a través de PLANCAD? ¿Nos mentalizaron para pensar como profesores que deben enseñar a investigar, o incrementar nuestros conocimientos? ¿Dedicaron siquiera algún tiempo en hacernos pensar en cómo progresa el mundo? O ¿es que distrajeron nuestro tiempo simplemente en hacernos jugar a la ronda como si los maestros fuésemos niños en edad preescolar y con un cerebro todavía pre lógico? No enseñaron a dialogar, a leer, o ¿nos dijeron que lo único que interesa es la “práctica”, que hay que sentir vergüenza por la capacidad que nos ha dado la naturaleza al haber preparado nuestro cerebro para crear símbolos y transformar los conocimientos en palabras gramaticalmente ordenadas para intercomunicarnos mediante ese proceso que se conoce como socialización? ¿Nos enseñaron a pensar en la clase de socialización que es la Educación?

La Educación debe servir para hacer pensar. Pensar es otra gimnasia que necesita el cerebro para que no se atrofie. Porque el cerebro también se atrofia si es que no funciona. La calidad y cantidad de pensamientos que nos habituamos a tener alcanza un techo. Si amarramos nuestra mente y no la liberamos no va a crecer, el techo puede ser muy bajo. Nada existe en la naturaleza por gusto. Si no caminamos nos descalcificamos, sufrimos de osteoporosis. Nuestros huesos se vuelven frágiles y se pueden quebrar en cualquier circunstancia, porque nuestros huesos están diseñados para que actúen como respuesta a la ley de la gravedad. Si lo dejamos por mucho tiempo en reposo vamos perdiendo calcio sistemáticamente hasta que puede sobrevenir la osteoporosis. Una mala educación nos limita en el ejercicio físico y sobre todo nos limita en el ejercicio de la mente y lo más grave es creer que algunas dinámicas físicas cumplen su papel en lo físico y reemplazan exitosamente a las dinámicas mentales. Así como hay atletas que superan en salto alto las dos metros veinte, así también hay científicos que han hecho posible que los hombres salten hasta las estrellas, mientras en otros contextos se limita a formar a la gente para que siga trabajando con la hoz y el martillo o con el pico y la pala, o bien con lachaquitaclla.

La educación es funcional a cada época histórica. En la antigüedad los nobles se educaban para ser los mejores guerreros. Algunos como Alejandro Magno, tenía además una visión del mundo heredado de Aristóteles, su maestro. Si eran débiles y poco visionarios fácilmente podían perder el reino. En otro momento bastaba ser un buen artesano. Incluso en pleno siglo XX en el Perú bastaba saber comprar en las tiendas de los mayoristas algunos objetos, pararse a ofrecerlos al detalle en las puertas de las grandes tiendas o de los supermercados, pero ahora, desde que se implementaron los hipermercados, ese conocimiento es inútil, porque los hipermercados son más competitivos en cuanto a calidad, presentación, precio, confort, relax y seguridad, mientras que a la informalidad le rodeaba un ambiente tenso.

La educación debe tomar en cuenta las tendencias sociales, culturales, económicas, científicas y tecnológicas de cada momento de la historia. No es suficiente proponer la educación asociada al trabajo si es que no se sabe cómo es el trabajo y la economía en una época histórica determinada.

Hay que analizar cómo aparecieron las herramientas que se utilizan para producir los demás objetos. ¿Los dio la naturaleza? ¿Los hizo el hombre? Si el hombre los hizo, ¿cómo los hizo, de qué manera, que materiales primas usó y a parte de sus manos qué otros elementos empleó? ¿Bastaba tener conocimientos artesanales para hacerlo? ¿Necesitaba haberse formado simplemente en un CENECAPE1? ¿Exigía una formación propia de las universidades? ¿De qué clase de universidades? En el Perú, ¿formamos profesionales para producir teléfonos celulares, automóviles, tractores, satélites espaciales, computadoras?

¿Formamos profesionales capaces de producir esos objetos? Si las instituciones creadas para formar profesionales no producen esa clase de profesionales, ¿existe alguna otra institución que los forme aquí en el Perú? ¿Es nuestra educación igual, parecida o de la misma calidad que la educación que se imparte en los países que producen tecnología de punta? ¿Qué tipo de educación se necesita para producir esos objetos tan complejos? Desde que surgió la revolución industrial, los países que luego se conocieron como industrializados orientaron sus universidades para que tengan la competencia de formar expertos en producir objetos propios de la industria. Y la educación previa a la universitaria es de una estándar tal que puede eslabonarse fácilmente con la educación universitaria. Los norteamericanos en el 2005 hicieron un experimento: colisionar una nave espacial con un cometa. Esa nave espacial se desplazaba a una velocidad de 37,000 kilómetros hora. ¿Qué clase de conocimientos se necesita para producir esas sofisticadas naves espaciales? ¿De dónde salieron los profesionales que producen esas naves? Fueron formados por las universidades, pero ¿por las nuestras? ¿O como las nuestras? Y, al ingresar a las universidades que les dotaron de las competencias que tienen, estudiaron primero en colegios, pero ¿no como los nuestros? Nosotros también producimos herramientas, es cierto. Producimos picos y palas, por ejemplo. ¿Qué tienen en común un pico o pala con un tractor? Sirven para las labores agrícolas y los tres han sido producidos por el ser humanos y para eso se ha invertido conocimiento. Para hacer el pico y la pala el hombre debía tener cuando menos la cultura del hombre de la Edad de Hierro. Pero para producir tractores computarizados el conocimiento tiene que ser cualitativamente superior, muy superior. Sin educación aunque sea informal, el primer ser humano que descubrió el hierro no hubiese trasmitido ese conocimiento a las generaciones futuras. Pero para producir el tractor se necesitan no solamente hornos más complejos, sino el dominio de la matemática y de la física moderna. Esos conocimientos los da la Educación formal. Como se advierte claramente, una cosa es educar para producir picos y palas y otra es hacerlo para producir tractores. Y más diferente es todavía producir tractores que llevan componentes digitales, vale, decir elementos electrónicos del tipo de las computadoras. Para decirlo de otro modo, existe una distancia histórica muy considerable entre la Edad de Hierro y la Revolución Industrial. Y de esta revolución a la revolución digital existe otra etapa histórica. Y a propósito ¿estamos pensando en qué estado se encuentra nuestra educación? ¿Qué clase de conocimientos trasmitimos mediante la educación? ¿Formamos para ser productores de la Revolución Industrial o de la Edad de Hierro? Si ya produjésemos de acuerdo a la revolución industrial está claro que nos faltaría una etapa histórica para ingresar a la revolución digital. ¿Hemos llegado cuando menos a la revolución industrial que ya tiene más de dos siglos, o nos hemos quedado en la Edad de Hierro que tiene miles de años de antigüedad? Consumimos objetos modernos, ¿pero también los producimos? ¿Formamos profesionales para elaborar esos productos modernos? ¿Nuestra educación está a la altura de la educación de avanzada mundial? ¿O es que en la práctica nos hemos quedado casi en la Edad de Hierro? Recordemos que entre ambas maneras de producir existen miles de años de distancia. Porque suele existir un grave error, creer que estamos en una Era determinada de la historia tomando en cuenta lo que consumimos, cuando el verdadero criterio debe partir de lo que producimos. Mejor dicho con qué clase de conocimientos producimos. Nuestra educación en qué estado de evolución se encuentra, ¿qué enseñamos a producir?

Si hay que tomar en cuenta el estado histórico de los objetos que consumimos, que sirva para comparar qué tipo de educación compramos en los objetos que compramos y qué clase de educación vendemos a través de las mercancías que exportamos. Esto es fundamental. Es algo que no se entiende en nuestro país, como tampoco se entiende en los países vecinos, en Ecuador y peor aún en Bolivia.

Cuando compramos un televisor ¿qué compramos? ¿Compramos plásticos? ¿Compramos piececitas de cobre? ¿Compramos algunos tornillos de hierro? ¿Qué es lo que compramos realmente? Compramos conocimiento. Eso es lo que compramos. Mejor dicho las potencias nos venden su educación introyectada en sus mercancías. Y el grado de desarrollo de la educación es inversamente proporcional a la cantidad de naturaleza que se invierte; cuanto más componente mental encierran los productos, menos materia prima se invierte en ellos. Como bien lo indica la propaganda de una marca de televisores, los antiguos eran grandes, toscos y muy pesados. Estos televisores se han ido reduciendo en espesor y peso hasta convertirse en una pantalla plana. En esa pantalla plana en que se reduce el televisor hay cada vez mucho menos materia prima, pero más componente mental. La tendencia es a que la materia prima se reduzca prácticamente a la nada. Y ¿con qué se reemplaza esa materia prima que se deja de usar para que el televisor exista? Se lo sustituye con conocimiento, o sea con derivados de la educación. La tendencia de la industria moderna es a la sustitución casi total de las materias primas por el conocimiento. Dicho de otro modo, la naturaleza cede su lugar al conocimiento, a los derivados de la educación. El ejemplo más extraordinario es la nanotecnología, esa industria que consiste en producir máquinas microscópicas (como las que se usan para realizar operaciones quirúrgicas dentro del cuerpo humano, sin necesidad de abrir heridas). Estas máquinas forman parte de la nanotecnología y no miden ni siquiera un milímetro, sino millonésimas de milímetro.

Aquí en Perú, nuestro país, como en Bolivia, exhibimos como mayor orgullo las materias primas que existen en el suelo o subsuelo de nuestros territorios. Mostramos lo que la naturaleza ha hecho por nosotros, pero ¿tenemos algo maravilloso que hayamos hecho los hombres a favor de de la naturaleza y de nuestra economías? Para decirlo de otra manera, mostramos la obra de la naturaleza, riqueza de la que nos apropiamos por vivir en estos territorios. ¿Cuándo estaremos preparados para mostrar las maravillas que somos capaces de producir? ¿Cuándo estaremos preparados para sustituir la vanidad que mostramos al hablar de la riqueza que nos ha legado la naturaleza por la que produzca nuestra mente? Estamos mentalizados para privilegiar una economía parasitaria. ¿Y si la naturaleza no nos hubiese dejado nada o mucho menos de lo que nos ha legado qué haríamos para vivir? ¿Y qué haremos si la herencia de la Madre Naturaleza se acaba? ¿Qué harán, por ejemplo, los países árabes cuando se les acabe el petróleo? ¿Qué hará Venezuela?

Esta mentalidad forma parte de una cultura que fomenta el inmovilismo, inflama la imaginación, la esperanza en soluciones milagrosas o mágicas. Y de paso fomenta el ocio, la pobreza y la pérdida de la autoestima. No se ve la riqueza en las potencialidades del hombre, sino que se despierta la ambición por los tesoros escondidos que se expresan en tantos mitos. Este imaginario coincide con la de algún personaje famoso de la televisión peruana que aparentaba ante el mundo poseer una riqueza inagotable, nietas bien establecidas en Miami, pero hijos sin trabajo conocido, hasta que él murió y los hijos quedaron en la indigencia porque no se habían preparado para vivir de su trabajo. Así se fomenta una idea falsa, aquella de la herencia inagotable. Luego cuando la fortuna se acaba, o cuando el árbol genealógico se extiende y la herencia tiene que dividirse cada vez en mayor número de herederos, la parte alícuota, o sea aquella que corresponda a cada individuo, resulta insignificante. Si miramos el conjunto la suma puede parecer extraordinaria. Perú exportó en minerales entre junio del 2004 y junio del 2005 la cifra récord de unos seis mil millones de dólares. Traducidos a nuevos soles representa alrededor de 20 mil millones. De esta manera si nuestro país tuviera 20 millones de habitantes le correspondería aproximadamente mil soles anuales, cerca de noventa soles mensuales a cada habitante. Pero Perú no tiene 20 millones de peruanos sino cerca de treinta millones, de manera que lo que correspondería a cada habitante seria un tercio menos, o sea algo así como sesenta soles mensuales. Esta cifra sería real, sin embargo, si los costos de extracción de los minerales fuesen igual a cero. Si nadie gastara en las carreteras de acceso hasta las minas. Si el coste de las máquinas con las que se explotan los minerales fuese también igual a cero soles. Si no costaran nada las viviendas donde habitan los trabajadores mineros. Si las empresas que explotan las minas no gastaran en escuelas o en hospitales y si los trabajadores trabajaran gratis. Además si los capitales fuesen nuestros o si fueran prestados sin pagar intereses.

Es obvio que con criterio nacionalista desearíamos que todo fuera diferente, que nuestro Estado fuera poderoso, que tuviera recursos adecuados como para que pudiese explotar nuestros recursos naturales, sin necesidad de recurrir a la empresa privada y menos a las multinacionales. Que desapareciera para siempre el pedido de que inviertan en nuestro país los empresarios extranjeros. Y que los gobernantes fuesen de lo más competentes y honrados, que las empresas públicas produjeran ganancias y no las pérdidas que produjeron en las décadas pasadas. Y para lograr estos objetivos nuestros gobernantes deberían ser intelectual y éticamente de los más competentes, que fueran capaces de emplear los conocimientos más avanzados que existen en el planeta. Sería deseable que los contratos con las empresas extranjeras fueran las más convenientes al país; y que los mayores ingresos fiscales por concepto de la exportación de minerales sirvieran para mejorar la salud del pueblo y relanzar la educación con un nuevo criterio, con aquel que permitiera que nuestro país fuese también productor y exportador de intangibles, o sea de conocimiento, que es un derivado de la educación. Claro todo eso sería deseable, pero lo que nosotros queremos que suceda no existe en la realidad. No podemos confundir deseos con realidades. Y si queremos que cambie en el futuro, necesitamos saber cómo hacerlo, mejor dicho necesitamos de conocimientos que ahora la población no tiene. Que estos conocimientos no solamente lo tuvieran un reducido número de personas, que no fuera patrimonio de las élites sino de dominio más amplio. Mejor dicho necesitamos de una nueva educación. No solamente diferente en valores como ahora se insiste sino en ciencia y tecnología. Porque si bien quizá siempre existan delincuentes de cuello y corbata, cuando menos necesitamos un pueblo educado de diferente manera, que sepa actuar con conocimiento. Que sepa usar el corazón, pero también el cerebro. Repito, necesitamos de una nueva educación. Países como Corea, o los llamados Tigres Asiáticos, fueron tan pobres como el nuestro y ahora sus destinos son diferentes. China Popular, en estos momentos camina a pasos agigantados a convertirse en la primera potencia no solamente comercial del mundo, sino también industrial. No es cierto que sus precios son competitivos solamente por la mano de obra barata, sino que paralelamente inyectan conocimiento de última generación a sus productos. Su éxito depende del conocimiento y el conocimiento es un derivado de la educación. Es imprescindible saber cómo actuar. Cómo resolver problemas, cómo salir de la pobreza, cómo afrontar dificultades. Es imprescindible tener una nueva educación que no solamente sirva para hacer cantar a los niños, para fomentar las rupestres dinámicas y para esperar que por arte de magia o milagro tengamos la lucidez necesaria para afrontar los grandes retos que nos plantea la Historia.

Las materias primas son eso, materias primas, o sea naturaleza, cuya verdadera importancia va a depender de qué hagamos con ellas, en qué productos acabados los transformemos, qué tipo de conocimiento les inyectemos. ¿Seguimos pensando en la magia de resolver nuestros problemas económicos inyectándoles cero conocimiento? Con eso solamente estamos justificando el tipo de educación que tenemos. Aquella que nos induce a suponer que somos mendigos sentados en un imaginario banco de oro.

Por la década de los sesenta del siglo pasado estaba de moda quejarse contra el imperialismo., porque según decíamos se llevaban toneladas de minerales por insignificantes sumas de dinero y nos lo devolvían ya industrializados pequeños trocitos de nuestros minerales a precios caros. ¿Por qué no decíamos que a esas materias primas, a esos insumos le habían inyectado conocimiento y que estábamos comprando conocimiento introducido en pequeñas porciones de los minerales que vendimos?

Estas preguntas no van contra algo que es obvio, valorar y cuidar nuestras materias primas. La crítica va contra esa cultura parasitaria de pretender vivir exclusiva o fundamentalmente de recursos naturales. El propio término lo dice, son recursos naturales. El problema está en qué hacer con ellos. ¿Venderlos? Su precio obviamente será el que corresponde a las materias primas y en todo caso su precio está fijado por las leyes de la oferta y la demanda. En este caso, mientras el progreso científico determina que entre cada objeto se utilice cada vez menos materias primas, por otra parte, con la presencia de China en la industria mundial, la demanda crecerá. Pero no crecerá de manera absoluta, porque no hay que perder de vista que el conocimiento tiende inevitablemente a ocupar el espacio de la materias primas, de manera que el mismo objeto, pero más perfeccionado requiere de menos de cantidad de materia prima.

El conocimiento incide en la revalorización de las materias primas, en el contexto actual y probablemente en el futuro se irá acentuando, al ritmo de las innovaciones tecnológicas. Cada vez que se producen progresos tecnológicos y unos artefactos quedan desfasados, entonces se hace necesario más materia prima para seguir produciendo los objetos que reemplazan a los obsoletos y aquellos nuevos productos que aparecen en el mercado. En este aspecto, la tendencia a la diversificación parece infinita. Por tanto, aun cuando el conocimiento reemplaza exitosamente a las materias primas, éstas se vuelven necesarias como recipiente de las nuevas invenciones. Esta tendencia incide también en la proliferación de basura, como desechos de los productos industriales que caen en desuso, salvo que se establezca el reciclaje masivo. ¿Hasta qué punto, para evitar problemas ecológicos progresarán las tecnologías relativas al reciclaje de los objetos ya convertidos, repentinamente en basura?

El caso es que la competencia empresarial genera una tendencia compulsiva hacia la innovación, la cual se expresa no solamente como el sobredimensionamiento de las capacidades de lo inventado sino en la diversificación o sustitución. Así vimos como elbetamax fue reemplazado por el VH, luego éste por el DVD, pero de ninguna manera las tendencias terminarán ahí. Mejor dicho no se anuncia un fin de la historia en esta guerra tecnológica. Y salvo las mentes incautas o ideologizadas afirmarán que las innovaciones son innecesarias, que de lo que se trata es simplemente de fomentar el consumismo. Si ese fuera el propósito de los empresarios, los consumidores no tendrían por qué someterse a ese juego. Lo que sucede es que cada innovación genera nuevas capacidades tecnológicas de los que los usuarios quieres disponer, sea que se aplique a fines simplemente lúdicos, a objetivos científicos, académicos o tecnológicos.

Las innovaciones en términos de software y hardware, según la ley de Moore, se producen exponencialmente2. Esto trae como consecuencia que así como se avanza hacia lananotecnología, o sea hacia la minimización absoluta en el uso de materias primas debido a la sustitución del ingrediente naturaleza por el conocimiento, fruto de la educación, la exponencialidad en el progreso tecnológico, trae como consecuencia la obsolescencia vertiginosa de los objetos de manera que, como consecuencia se producen dos hechos: a) mayor demanda de materias primas y b) incremento del cementerio de los desechos tecnológicos, con sus consecuencias medioambientales.

Esta tendencia implica que el precio de las exportaciones de los minerales crezca de manera considerable, permitiendo que por primera vez las exportaciones se duplicaran en una gestión gubernamental, entre el 2004 y el 2005, aunque en este caso, no se debió a que se doblara el volumen de la demanda sino sobre todo por el incremento de los precios, pero la variable precios estuvo determinada por la variable demanda.

Sin embargo hay que diferenciar el valor que el conocimiento agrega al introyectarse en el producto, al convertirse en el alma los productos y la otra, los efectos repotenciadores de precio al incrementar la demanda. Pero, en todo caso, el incremento de la demanda está determinado por las innovaciones tecnológicas, o sea por el conocimiento; y esta variable está inevitablemente asociada a la variable educación, independientemente de que esta educación se administre de manera privada o pública, por empresas directamente relacionadas con la educación o con la producción.

Los educadores no solamente debemos sentir orgullo de la naturaleza de nuestro territorio sino —sobre todo— de nuestro trabajo, de las posibilidades que tenemos de competir sanamente con la naturaleza, o de aliarnos con ella. Porque el conocimiento que transforma y —en cierto modo— reemplaza a las materias primas es un derivado de la educación. La educación crea conocimiento y éste apuntala el desarrollo de la educación. Ambos como aliados de la economía. Y la economía como una de las variables del bienestar humano.

Para decirlo de otro modo, la economía tiende a depender —de modo creciente— del conocimiento. Esta es la mercancía de moda y lo seguirá siendo, con tendencia creciente. Los países que venden más conocimiento son más ricos. En el siglo XX se consideraba como el magnate representativo de la economía norteamericana a Rockefeller, cuya fortuna dependía del petróleo. Incluso a mediados de los 70 del siglo pasado los magnates más grandes del mundo estaban vinculados a la propiedad de grandes pozos petroleros. En la actualidad, luego de la invasión Norteamérica a Irak, el mundo ha tomado conciencia que el petróleo es un recurso natural que pronto se agotará y en tal circunstancia puede multiplicar su precio o crecer en mayor medida, mejorando la posición económica de los empresarios del petróleo3. Pero esto tocará su fin. Por el momento de la fortuna personal más grande, correspondiente en los sesenta a Rockefeller, hemos pasado a la fortuna de un empresario norteamericano aún joven, cuyo nombre es Bill Gates, vinculado a la producción de Software, o sea de conocimiento. Para lo cual utiliza como principal herramienta su cerebro dotado de capacidad creativa.

Considerando las premisas antes planteadas, necesitamos diferenciar entre medios y fines en el proceso educativo. Si bien el fin último es el bienestar humano, existe un fin intermedio que debe establecerse si es la Pedagogía o el conocimiento.

Por el énfasis que siempre suele ponerse entre los educadores pareciera que el fin es la Pedagogía, o sea la técnica de cómo enseñar, más no los resultados de ese proceso. Los educadores nos hemos pasado la vida hablando de Pedagogía como si fuese la meta final y al tocar este tema, nos hemos reducido a un fin instrumentalista.


Es imprescindible reorientar la Pedagogía hacia la búsqueda incesante de conocimientos de punta y no pedagogía por la pedagogía. Así como ha existido un conocimiento funcional a los estados imperiales de la antigüedad que privilegiaba la fuerza del guerrero, en la actualidad la Educación debe estar orientada a la búsqueda del conocimiento acorde a los estándares internacionales. Esto implica que los maestros formados tanto en los institutos pedagógicos como en las universidades para transmitir conocimientos válidos en una sociedad agropecuario—artesanal se mentalicen para formar estudiantes capaces de resolver problemas en un mundo tecnológico cuyo entorno es el software. Esto implica entender primero de qué estamos hablando. Porque cuando usualmente hablamos con profesores, la primera reacción es pensar en las cabinas de Internet o en las computadoras domésticas y suponer que se les obliga a comprar alguna PC. No se trata de eso. Es importante que los educadores entiendan que el computador sirve no solamente para redactar textos, sino para realizar planos, organizar bibliotecas, realizar cálculos estadísticos y matemáticos en general, aprender idiomas, para la investigación científica, la producción de los objetos más sofisticados, vuelos espaciales, ingeniería genética, fábrica de aviones, armas de guerra, automóviles, hornos digitales, micro y mega máquinas, industria del entretenimiento, agricultura y ganadería y prácticamente para todas las actividades de la vida puesto que hoy el software es un entorno básico incluso en los juguetes más elementales. Ha llegado momento en que para ganarse la vida como simple técnico, el que no entienda sobre este nuevo y absorbente entorno quedará excluido y, por tanto, desempleado. Y quien quiera diseñar o producir a la manera tradicional no podrá competir en calidad o, en todo caso, empleará un tiempo mucho mayor al promedio y, por tanto, sus costos serán tan grandes que venderá sus servicios a precios muy caros, o en todo caso, utilizando más del tiempo necesario, cobrará precios muy exiguos, condenándose a vivir en la indigencia. Pero finalmente, debemos tener una visión clara: No existe hoy objeto pequeño o grande, incluso juguetes, que no lleven internamente un microprocesador, con su correspondiente software. ¿Estamos preparados para participar en este tipo de producción? ¿Está orientada nuestra educación para afrontar estos retos?

Los países que tienen la capacidad para producir estos prodigios han diseñado su educación para que su población tenga la capacidad de producirlos.

En Perú la economía está orientada a la extracción de minerales, a la deforestación de la selva, a la pesca. En suma, nuestra economía depende de lo que produce la naturaleza, no el hombre. Se trata de una economía parasitaria, al igual que Venezuela y los países árabes que viven de la extracción y venta de petróleo, o sea de la explotación de la naturaleza y no de la capacidad creativa de la gente.

La solución correcta sería aprovechar racionalmente los recursos naturales, pero no depender tan extraordinariamente de ellos. Hemos visto ya que el vender un objeto tan simple aparentemente, como un teléfono celular, el país que lo produce está vendiendo conocimiento, el transforma insignificantes cantidades de materias primas para construir un objeto que puede costar cientos o miles de dólares. Cuando vendemos conocimientos inserto en los objetos estamos generando trabajo, a la vez que estamos potenciando la capacidad de la gente y potenciando también su capacidad adquisitiva. Depender de los recursos mineros como sucede históricamente en la república peruana, depender de las regalías que nos dejan las empresas extractoras de esos recursos es consecuencia de una inadecuada educación.

Notas
______________________

1 Institución educación pre universitaria, de mando medio.
2 Cf. Bill Gates: Camino al futuro. McGRAW-HILL. Segunda Edición Internacional, 1997.
3 Según Rifkin, el fin de la era del petróleo podría llegar dentro de unas tres décadas, cuando este recurso fósil se agote. Cf. Jeremy Rifkin: La economía del hidrógeno. La creación de la red energética mundial y la redistribución del poder en la tierra. Piados Estado y Sociedad 102. Barcelona, 2002.

Fuente: Dr. Gerardo Alcántara Salazar

Te ha sido de gran ayuda este Blog?

//