November 27, 2011

Assignment 3 - Practical Part






As I said in the class about one nachOS that I found but I couldn't handle, We leave here the link maybe you it's helpfully to you.

http://code.google.com/p/usc-cs402-nachos/source/browse/trunk/code/

This is the result of one of te execution with two terminals:


And this is another execution in the same terminal with the command ./nachos -m 0 -o 0 ./nachos -m 1 -o 0

In the last part of the image we can see, the information of the execution of nachos, and in the Network I/O say that we sent and received 2 packets.

Something else to add is a link where you can read more information about an introduction of Networking in nachOS.

Nachos Networking

In this file I read the history about Why in nachos the functions are named PostOffice or something like that.

November 18, 2011

Assignment 3 - Theoretical Part





More details about chmod.


What is chmod?


chmod is a Unix command that lets you tell the system how much (or little) access it should permit to a file.First let's see something about permissions.

As you see this columns at green highlighter is the permission that have every file.


If you see in the next picture the first set three letters after the file type tell what you, the owner of the file, have permission to do.An r in the first position means you are permitted to read the file. A w in the second position means you may write the file. This includes the ability to delete a file. An x in the third position means you may execute the file.

A hyphen in any position means that you don’t have that particular permission.
The last three letters in the permissions column tell us what everyone else in the world, the “others” may do.

The “others” lead highly restricted lives. They can’t write any files or directories, and they have absolutely no access to the topsecret.inf file.

We use the chmod command to change the access mode of a file. This command comes in many flavors, but we'll be talking primarily about one of them.
chmod who=permissions filename
This gives “who” the specified permissions for a given filename.















In this example publicity.html for reading and writing by anyone.




In this example we make all permissions for the group for topsecret.inf.




In this example we make a permission for one user archive.sh.



Pishing

What is phishing?

Phishing refers to online scams that attempt to trick consumers into revealing personal information, such as check and credit card account numbers, Social Security numbers, or bank account passwords. Most commonly, phishers target unsuspecting users with fake Internet sites or email messages that look startlingly similar to the real thing. This is sometimes referred to as “spoofing.” Scammers may also leverage social networking sites, where users are already accustomed to sharing information with others.


How does phishing work?

Phishing emails and websites typically use familiar logos and graphics to deceive consumers into thinking the sender or website owner is a government agency, bank, retailer or other company they know or do business with. Sophisticated phishers may include misleading details, such as using the company CEO’s name in the email “from” field. Another common phishing tactic is to make a link in an email (and the fake website where it leads) appear legitimate by subtly misspelling URLs or changing the “.com” to “.biz” or another easily overlooked substitution.

The origin of the SPAM from this video Monty Python - Spam

November 7, 2011

Extra: Análisis forense digital

Definición de análisis forense digital

Es un uso científico derivado y proveen métodos hacia la preservación, colección, validación, identificación, análisis, interpretación, documentación y presentación de una evidencia digital derivada de una fuente digital con el propósito de facilitar la reconstrucción de eventos encontrados para ser un criminal o ayudando a anticipar acciones desautorizados mostrando que pueden ser perjudiciales a operaciones planeadas.



Así es como lo define Digital Forensics Research Workshop (DFRWS) se dedica a compartir conocimientos e ideas acerca de la investigación forense digital. Para más información pueden visitar el sitio oficial.

Wietse Venema y Dan Farmer han hecho el argumento que algunas veces el examinador encuentra hechos como si fuera arqueología digital (Digital archaeology) y en otras veces geólogo digitales (Digital geology).

En la cual arqueología digital es acerca de los efectos directos de la actividad de usuario, como lo son el contenido de archivos,ultimo acceso, información desde archivos eliminados y los registros de flujo que hubo en la red. 

Geólogo digital (Digital geology) es acerca de los procesos autónomos que los usuarios no pueden controlar de manera directa como lo son la asignación de memoria y reciclado de bloques de disco,número de ID de archivo, memoria de pagina o número de ID de proceso.

El propósito de un análisis forense es encontrar los hechos y a partir de esos hechos recrear el evento. En otras palabras lo que se trata es de que el examinador revele la verdad de un evento resolviendo y exponiendo los restos de un evento que han sido dejados en el sistema. Y cuando lo revela el examinador la verdad, comúnmente a eso le llaman artefacto, que algunas veces es referenciado como evidencia.

Ahora referenciando con el principio de intercambio de Edmond Locard que dice lo siguiente "En el contacto de dos elementos,ahí habrá un intercambio." que en inglés es conocido como "With contact between two items, there will be an exchange".

Esto es un principio básico de el análisis forense, lo que significa que cualquier acción tomada por un usuario en un sistema informático dejará rastros de esa actividad en el sistema, por más sencillas que sea la acción que tome el usuario, dejará un registro de sus acciones.

El análisis forense puede ser dividida en tres procesos:

El primero proceso es la adquisición que se refiere a la colección de de los medios digitales que van a ser examinados, esto depende del tipo de examinación ya sea de disco duro,almacenamiento de datos (USB,SD,mini SD) de cámaras digitales, smartphones, teléfonos móviles, o como lo es un simple documento de word.

En cualquiera de los casos será examinado, tomando como consideración una replica exacta de bit por bit para tener poder examinarla replica y que la evidencia original quedé intacta.

Por medio de este tipo de dispositivos (imagen de abajo) es posible hacer una replica de la evidencia bit por bit, lo que se hace es evitar tocar la evidencia ya que si se toca ya no podra ser valida. Tal vez dirán por que recurir a este tipo de dispositivos si tenemos computadoras normales que pueden hacer dicha replica, y aquí hay una razón la primera es, cuando nosotros copiamos lo que hay en un disco duro, usb, mini SD entre otros nunca se copian exactamente como tales, la segunda es cuando nosotros conectamos cualquier dispositivo nuestro sistema operativo tratara de leerlo y guardara un log de uso, la cual hara que la evidencia sea invalida.


Si alguien tuvo interés en ver estos dispositivos para el análisis forense aquí les dejare un link de la página oficial.

El segundo proceso es el análisis que se refiere a la examinación de los medios digitales,de las cuales se pueden definir en 3 elementos según la DFRWS son la identificación, análisis y la interpretación. La identificación consiste en la localizacion de los elementos o elementos presentes en el medio,para luego reducir este conjunto de elementos o artefactos de interés.Una vez hecho la identificación se podrá someter al análisis.

El análisis puede ser del sistema de archivos, análisis de contenido de archivos, análisis de registros, análisis estadístico, o cualquier número de otros tipos de revisión. Por último tenemos la interpretación donde el examinador interpreta los resultados de el analisis basandose en la formación del examinador, la experiencia, la experimentación y la experiencia.

El tercer proceso es la presentación la cual se refiere al proceso en el cual un examinador comparte los resultados de la fase de análisis de las cuales fueron mayormente relevantes. Esto consiste generando reportes de las acciones tomadas por el examinador, como los artefactos descubiertos y el significado el mismo,de igual manera tendrá que defender el examinador lo encontrado.

A continuación verán un ejemplo de un log de todas las acciones tomadas, aunque en este tengo que destacar que lo hace un software.



Ahora hablemos de los conceptos de análisis del medio digital (Media Analysis Concepts). Todos los archivos borrados, en carpetas, en carpetas de carpetas estan almacenados en algún contenedor, y el objectivo de análisis del medio digital es identificar, extraer y analizar esos archivos.

Identificación es donde se determina cual archivo se encuentra como activo o eliminado en un volumen.
Extracción es la recuperación de archivos de datos y metadatos pertinentes.
Analización es el proceso en el cual el examinador aplica su inteligencia al conjunto de datos, por lo cual el objetivo ideal sería encontrar buenos resultados.

Ahora presentaremos la progresión lógica de cualquier sistema de archivos desde el nivel bajo al nivel mas alto:
  • Disco se refiere a un dispositivo de almacenamiento físico como lo podría ser un disco duro SCSI o SATA o una memoria SD de una cámara digital, etc. El análisis de los elementos a este nivel se necesita de un gran entrenamiento y conocimiento fuerte ya que es algo muy extenso, hay que destacar que también se necesita de alguna herramienta cara.
  • Volumen se refiere alguna parte o conjunto de partes de uno mas discos, por lo cual un disco puede contener demasiados volúmenes o puede ocurrir de manera inversa. El término de partición es usado mayormente al intercambio de volumen,el volumen describe un numero de sectores en un disco o discos dados en un sistema.
  • Sistema de archivos estos están establecidos en el volúmen y describen la disposición de los archivos y los metadatos asociados.
  • Unidad de datos es la más pequeña unidad independiente disponible de almacenamiento de datos disponibles en un sistema de archivo dado.
  • Metadatos son datos altamente estructurados que describen información, describen el contenido, la calidad, la condición y otras características de los datos. En los derivados de Unix también son llamados inodes.
  • Nombre de archivo es donde un usuario opera y es donde los artefactos están disponibles,en la cual cada nombre de archivo contiene su propia estructura de metadatos.


Herramientas de Cómputo Forense

  • Sleuth Kit (Forensics Kit) 
  • Py-Flag (Forensics Browser) 
  • Autopsy (Forensics Browser for Sleuth Kit) 
  • dcfldd (DD Imaging Tool command line tool and also works with AIR) 
  • foremost (Data Carver command line tool) 
  • Air (Forensics Imaging GUI) 
  • md5deep (MD5 Hashing Program) 
  • netcat (Command Line) 
  • cryptcat (Command Line) 
  • NTFS-Tools 
  • qtparted (GUI Partitioning Tool) 
  • regviewer (Windows Registry) 
  • Viewer 
  • X-Ways WinTrace 
  • X-Ways WinHex 
  • X-Ways Forensics 
  • R-Studio Emergency (Bootable Recovery media Maker) 
  • R-Studio Network Edtion 
  • R-Studio RS Agent 
  • Net resident 
  • Faces 
  • Encase 
  • Snort 
  • Helix


Buscando en la wikipedia encontre estas herrmientas de código forense pero basandome en un libro les recomiendo el llamado Sleuth Kit el cual lo pueden descargar de esta página.


Sleuth Kit soporta imágenes de disco sin procesar, despliega el tipo de volumen herramientas de código abierto digital de investigación (también conocido como herramientas digitales forenses) que se ejecutan en sistemas Windows y Unix (como Linux , OS X, Cygwin, FreeBS, OpenBSD y Solaris). 

Se pueden utilizar para analizar NTFS, FAT, HFS +, Ext2, Ext3, UFS1 y UFS2 sistemas de archivos y varios tipos de sistemas de volumen. 

Videotutoriales para usar Sleuth Kit
En este video muestra como hacer la instalación de Sleuth Kit.





En este video muestra como recuperar datos de una memoria USB con la misma herramienta.






November 5, 2011

Assignment 2 - Practical Part

We missed the presentation that we display the day of the presentation, but create a new one something better.
Assignment 2 Practical
View more presentations from Esteban Gonzalez

October 31, 2011

Assignment 2 - Theoretical Part

Here are the slides from our presentation.
Assignment 2 Theoretical
View more presentations from Esteban Gonzalez

September 14, 2011

Assignment 1 - Practical Part

Screenshots of the code and its execution in the terminal. At the end I put the same code, but I can't show whit syntax highligther because the Internet in the UANL is very bad, and I need to modify the HTML code.

File synch.cc.


File threadtest.cc with our code.




We don't have any error after compile.


Screenshot of Producer-Consumer execution with semaphores.


Screenshot of Producer-Consumer execution with locks.


Some code:
Lock * L = new Lock("Lock");
void ConsumerLock(int which) {
  while (1) {
    if (disponibles > 0) {
      L->Acquire();
      disponibles--;
      printf("Thread %d >> Consumidor >> disponibles %d\n",
              which, disponibles);
      L->Release();
    }
    if (disponibles == 0) {
      currentThread->Finish();
    }
    currentThread->Yield();
  }
}
void ProducerLock(int which) {
  while (1) {
    if (disponibles < 15) {
      L->Acquire();
      disponibles++;
      printf("Thread %d >> Productor >> disponibles %d\n",
              which, disponibles);
      L->Release();
    }
    if (disponibles == 15) {
      currentThread->Finish();
    }
    currentThread->Yield();
  }
}
void ThreadTestLocks() {
  DEBUG('t', "Entra al ThreadTestLocks");
  printf("Locks\n");
  
  Thread *t = new Thread("Consumer");
  t->Fork((VoidFunctionPtr)ConsumerLock, (void *)1);

  Thread *tr = new Thread("Productor");
  tr->Fork((VoidFunctionPtr)ProducerLock, (void *)1);

  ProducerLock(0);
}

September 12, 2011

August 24, 2011

How to compile NachOS on Ubuntu 10.10

Before starting it is recommended make a folder called nachos,once we will open the folder and type the following instructions to download NachOS source code and MIPS cross-compiler.
NachOS source code :

MIPS cross-compiler :

Or you can download directly from this server:
If you already download those files,now we will extract the files.
Extracting NachOS code

Extracting MIPS cross-compiler, you will need to be in super mode.

Now before execute NachOS and compiler to check that all be correct.We have to check if our architecture of  32 bits or in another case could be 64 bits,if we have an architecture of 64 bits, we have to follow a brief tutorial,in this moment if you don't know the architecture of yours computer you could check with the following command:

If the print is "x86_64" your architecture is 64 bits.
If the print is "i686" or  "i386" your architecture is 32 bits(like the picture).
If your architecture is 32 bits, skip the next two pictures,in another case, if your architecture is 64 bits follow this brief tutorial:
The first thing to do is go to the code's folder,if you are there, open the file "Makefile.dep" to comment the following:

After that, let's uncomment the following:

We will type the next command to compile NachOS from code's folder:

If is already compiled in the terminal, you will see something like this:

To check if this run correctly,we will open the folder /threads/ from code's folder, and we will type the next commands :

Must appears this:

To check if this really works our MIPS cross-compiler type the following commands:

And must print this:



This is all ,if you have a problem tell us and may be can help you to find a solution.
Link reference:

August 11, 2011

Team OS

We are the "Team OS", this semester we will work with Nachos.

The version that we use is 3.4
And the language of our choice is C++

Team members are:
Esteban González
Saúl Gausin