Showing posts with label Information Technology. Show all posts
Showing posts with label Information Technology. Show all posts

Saturday, May 18, 2013

Filter bubbles endangering Internet freedoms

The "filter bubble" is a kind of media bias ; resulting from over-personnalization, it tends to feed you only with "confortable" informations, isolating you inside your own bubble of filtered informations from the wide variety of opinions of the world.

In random graphs theory there is an interesting phenomenon called percolation. It basically says that when you have a very large random graph, depending on the average of the local structure (i.e. how many links each node have), you can determine some properties with respect to the general connectivity of the graph, and the number of hops you need to get from one node to the next. High percolation value means few hops are needed to navigate between to different ideas.
What the mathematical theory says is that depending on the local structure, there is a strong threshold effect where if you had just a little more local connectivity, you would need exponentially less hops to reach any other node in average.

"Filter bubbles" are appearing because by a clever choice of (search engine) personnalization policies we are now losing the high percolation value.

It results from the algorithms used inside search engines, which analyses your online behavior, and decides to push you the information, you will most likely enjoy. Infomation is now personalized so much that when you search for something, you will probably only find something that shares your point of view with regard to the subject you searched, which will tend to confort you on your own perspective, but at the same time, you are less and less confronted with opposite perspectives. 



This bias is particulary hard to avoid, and is self reinforcing, because of economic interest of various actors. I think it's becoming increasingly overwhelming these days mainly because of another bias of search engines, which is ultra-specialization. Most search-engine-visible websites, are now ultra specific to your query. This mean that when you have visited one page of the website you will most likely go back to the search engine, rather than following a link on the website to an unrelated surprisingly interessant subject.

It is getting harder and harder to escape from filter bubbles.

How to avoid them : As a user the cleanest way to avoid getting trapped in a filter bubble is to have control on the filter. Unfortunately, that's not something search-engines offer for now.
As a user, being aware of them and searching for a wide variety of point of views is a good step. You can also start following some website that spreads ideas on various unrelated subjects. Would the percolation number be higher would I recommend to follow links rather than using search engines.
Social medias, are not an answer to this phenomenon, as friends and communities typically show a strong cluster-like behaviour.
As a blogger, if you feel the courage (massive de-ranking is previsible), you can contribute by diversifying your blog so you could expose to a wider variety of subjects.

Saturday, January 12, 2013

Having fun with the java zero day vulnerability

One more time, there is a java zero day in the wild. There are not yet any fix except for disabling java plugin.

This vulnerability is a great introduction to computer security, for three reasons : First it is high level and very simple to use. Second, it's very effective, and lot of people are affected (Every one using java 1.7.xxx 100% of time, mac, windows, linux, any browser (even so some browser require the user to click "execute this applet" )). Third, it's not yet patched :-)

What you need to realise the attack : 
Have your target visit a webpage that displays a custom made java applet, this java applet will have full access, that's it, game almost over... (For it to be really game over : add privilege escalation then rootkit to the list)

How do you create the custom made java applet :

You copy paste from the code source avalaible on

(or https://gist.github.com/4506143 for line by line explanation)
in a file yourfilename.java (name of the file should match class name)
Fix the (intended) small mistakes ( add line 24 :

public class yourfilename extends Applet {

and fix the missing " in place of " in ByteArrayWithSecOff )

Compile with javac from a 1.7.010 JDK. You obtain a yourfilename.class that you should put somewhere on the web.
In the webpage source your target will see add 

<applet code="pathtoyourfilename.class" width="300" height ="300">

You can now test it. The victim should see a calculator opening when executing the applet.
(If you test it locally, you need a webserver to serve the html page in http(s) so that in the address bar there is 'localhost'  (instead of file:/// ) )
Depending on browser settings, it may not require any user interaction.


If you want to modify it, you just have to substitute 
Runtime.getRuntime().exec("calc.exe"); //Adapt on linux or mac
By any java code you want. 

Of course if you don't want to enter in so much details, you could just use metasploit (where there is more documentation).

Variating the source while keeping its spirit combined by serving from infected clients should allow to circumvent many antivirus. 
This vulnerability is itself a variant of a vulnerability from august 2012.

R.I.P Aaron Swartz

Tuesday, December 18, 2012

Killing the mouse with firefox

As part of a 10-foot experiment, I decided to use only a keyboard. 
I'm currently on Ubuntu 12.04. 

To use your computer efficiently from a distance, you will need a complete wireless keyboard with arrows and numerical pad. If it even has an included mouse it may help you to start and in some circumstances (like controlling some javascript buttons) but it is counterproductive in general.

I recommend you install firefox with the following add-ins : 

-AddBlock Plus (nothing more painful than a blinking add on your fullscreen TV with sound)

-Custom New Tab (so that the focus is not lost when you create a new tab)

-Stylish (so that you can install a style to remove the scrollbars (totally hide scrollbars) as they would now be useless)

-Vimperator (it will take a little time to get use to it except if you are a vim fan but it will allow you to easily follow links)

In firefox check that the option : Display, Zoom, Zoom Text-Only is disabled, it gives poor results when you need to often zoom in and out like you will in a 10-foot experiment.

Useful key for Vimperator : Insert : toggle vimperator
                                                  f : show hints to follow

Useful shortcut to learn for firefox : zoom-in (Ctrl + "+"), zoom-out (Ctrl + "-"), back (alt + left); forward (alt + right), home (alt + home), arrows, new tab (Ctrl + t), rotate tabs (Ctrl + tab), fullscreen F11

There probably exist a plugin to be able to use Vimperator to launch flash video but I have not yet found it.

Choosing a new computer

My computer, a mid-high range laptop from early 2009, was quite old, and couldn't handle the work he was required to do. So I needed a new computer. Choosing a new computer is somehow quite a strategic move. I could go a few different ways. I will here try to explain my reasoning.

First I could follow the consumer trend and go tablet, keyboard, cloud. The plan is renting a dedicated machine for 45$ a month, to have high bandwidth and a non restrictive computer remotely controlled by a cheap tablet when need be.

This solution has the advantage of being able to be fully mobile and quite cheap. The main inconvenient is that this solution is still restrictive, and require lot of work to do natural things. Mobile platforms like iOS or Android are quite restrictive by default. The second non negligible inconvenient is that I lost control over my computing and my data. Third inconvenient is that I lose the ability to play powerful games mainly for latency issues (though it should change in the future when higher bandwidth network will be available).

Second I could go the laptop way. It's the old fashion choice. I guess it's quite OK, but rather expensive. It's expensive because computer seller would rather sell you some tablets, so laptops are becoming more expensive. Would have I selected this option, I would have chosen a Retina Mac Book pro, mainly for the display. But it's very expensive and the disk is so small, it cannot handle a correct triple boot computer.

Third choice, and the one I have selected, is to have a home desktop computer, for use as a home server. If you buy it from distributors, it's quite expansive because they take such a large margin to compensate for the lost market due to the arrival of tablets. But if you assemble your computer from new computer parts, and that's so easy for anyone, it's really cheap (less than 1000$), powerful (4 core, 8thread @ 3.5Ghz, 16Go Ram, 3 To hard disk), and customizable. Concerning display, you can use the living room TV screen, to enjoy a 10 foot-experience, raspberry-pi for display on any screen, and remoting with Splashtop for a fully mobile tablet screen experience.

This third option is I believe the smartest choice for about any home computing need, it will allow efficient use of both tablets, and clouds.





Splashtop

Splashtop initiates the new generation of remoting. It's like VNC but with sound, and so much faster with such a low latency that you can even play video games. VNC should have evolved this way long ago.

This a partially closed source shareware which is its main problem especially with regards to security. It is designed so that you can use your tablet as a screen to your computer.

It still misses a lot of platforms but it is currently rapidly evolving over the course of a few months.

Inconvenient : you need a SplashTop account which you can currently only create with the use of a tablet.

My current tests : streamer (beta) on Ubuntu, client on android iconia tab over a wifi local network.
Positive points : -Impressive performance
                          -Very responsive.
Negative points : -usb keyboard by default only partially supported (although it maybe because of the tablet) ; in particular the navigation keys (which are supported through VNC on the same tablet)
                            -real mouse supported in an unintuitive fashion.
                          -Stability problems (but it's only beta), if you don't have a fix ip, it will not work for a long time, you will lost connection without being able to reconnect. Some keyboard input on the client make the streamer crash. It crashed 3 times in 30 minutes. It sometimes even crash the unity desktop when used in conjunction with x11vncserver. 

Assemble your computer

This is the smart thing to do when it comes to computers. You have to assemble them yourself. It's fast, easy and will save you thousands of dollars. Simple how to :
(Browse http://www.rue-montgallet.com/ to easily filter components)

1) Choose your processor brand : mainly Intel or Amd
This is a personal choice though Intel have easier to find linux drivers, and are the only way to go for hackintosh.

2) Choose your processor according to your budget and computer need. The best computer power per $ is around a 350$ processor. Each processor has a specific "Socket" that will allow to interface with the motherboard. For example for Intel i7 3770K the socket is 1155.

3) Choose the form factor of your computer. Should it be small or big. Should it possible to add lots of cards in it. What your computer should look like. For example if you want a small computer you can choose the mini-ITX format.

4) Choose the mother board : It must have a compatible socket, and a compatible format, and a compatible chipset. The mother board is what will allow you to connect your computer to the world, so choose one with the functionality you need (like hdmi output, wifi, bluetooth, pci16x ports, usb3). It will have a ram specification frequency and maximum ram memory. And an hard drive format.

5) Choose the ram, with a compatible frequency in the allowed sized range, Most important criterion is size, then frequency, higher frequency ram is faster but more expensive per dollar, and the best speed / $ is for ram around 1600Mhz.

6) Choose your disk. Solid State Drives are silent and fast but small, ideal for system disks. Hard-drive are bigger but noisy and slow.

7) Optionally, if neither your processor or mother board has a graphical unit, you will need a graphic card. Choose one that will interface with the mother board. Check the compatibility on-line on the graphic card manufacturer site.

8) Choose the power block and box.
Should be compatible with the mother board format. It will contribute a lot to the noise level of the computer. Should be able to provide enough power. If you don't use a graphic card, and don't use a lot of power, use a mini-itx format you can use a silent small power source from mini-box.

My configuration : 680€ all tax included (less than 1000$), in France, probably cheaper in the US.

Processor : Intel i7 3770k (4 cores - 8 threads @ 3.5Ghz overclockable up to 5Ghz with water-cooling)

Motherboard : Gigabyte Z77N-wifi It has the mini-ITX format, dual Gigabyte, dual HDMI, usb 3.0, 2 sata III ports, one pci 16x port, wifi, bluetooth. (This mother board is a really good bargain)

Memory : Kingston 1600Mhz 16Go

Hard-drive : Baracuda 3To 7500rpm (quite silent)

Box : Elite Advanced 120 (quite silent), mini itx could have a much more smaller box, but this one allow for about any graphic card.

Power : Be quiet 480 W (quite noisy) but I will soon buy picoPSU-160-XT from minibox so that it become more silent

Graphic card : None

Display : Any recent Tv, although you will need a DVI monitor to access BIOS if it does not recognize your TV.

Operating System : Tested on Ubuntu 12.04 fully operational. Should work on Windows 8. Should work for hackintosh except for the integrated wifi.
Please do not install Ubuntu 12.10, it is spy-ware.

Assembly in 30 minutes with experience and 4 hour with no experience including time to watch youtube video to learn how to assemble the pc, or reading the motherboard manual.
First elementary rule to follow to avoid frying a component : always plug off your computer when you insert or remove parts or components.

Second elementary rule : don't panic; there is no need to. Double-check when in doubt. Computer parts are quite robust (much more than you think), but yet avoid putting your finger on the processor connectors.

For the first boot you will need a bootable usb key which you can create with linux live usb key creator, or a windows 8 usb key which you can create via the microsoft site. You then just have to follow on-screen instructions.











Thursday, August 23, 2012

Monads


In your quest for genericity
In your quest for abstraction
In your quest for instanciation
But could you invoke their name

Saturday, May 12, 2012

P2P

Decentralized computation and communication
Scaling accordingly so that offer match demand.
A global public playground is being taken by private clouds.
Should P2P survive in hostile environment...


The times they are a-changin'...

Hashing

Converting a huge sparse space into a small dense one
An ancient key to new probabilistic treasures
Double murmuring into a bloom filter just about anything
To collide certainty, time and space, my dear neighbour.


Sunday, April 1, 2012

6r3y H4t

Neither good nor evil, both good and evil
Use this essence to free your mind
Keep it as stupid simple as law is
Be the mirror's edge

Cassandra

The gift of greater sight
Comes at a price you can foresee
Abandoning the query of sense
And accepting your fate

XML

<XML><Exchanging><Ideas>  
<Idea> Make your life easier </Idea>
</Ideas></Exchanging>
<Structuring><Concepts>
<Concept>In darkness bind them</Concept>
<Concept>And query them</Concept>
</Concepts></Structuring></XML>

Monday, March 5, 2012

Clouds

Connect stars to the earth
Through the power of the cloud
Draw from the well of endless possibilities
The one where we could dream free

Sunday, January 29, 2012

Evocation

An idea casted into being.
A feeling shaped into life.
Pumping the blood of the future economy.
So may it be.


Sunday, January 22, 2012

Dreams

Dreaming about dreams
Dreamless souls and soulless dreamers
The wanders of the mind
Make the mind wonder

The wizard inn

Building the look and feel of the web to come
Making visible the unseen skills
Giving back to visualization the place to express
The beauty of a faster js

Thursday, January 19, 2012

Knowledge

I won't tell you now what knowledge is.
But I will share some with you.
Should it be free ?

Enjoy !