<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Timetombs' blog</title>
	<atom:link href="http://blog.timetombs.org/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://blog.timetombs.org</link>
	<description>Different activities around sys admin and development sucking our time</description>
	<lastBuildDate>Tue, 05 May 2009 22:28:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Using rsync</title>
		<link>http://blog.timetombs.org/?p=56</link>
		<comments>http://blog.timetombs.org/?p=56#comments</comments>
		<pubDate>Tue, 05 May 2009 22:26:18 +0000</pubDate>
		<dc:creator>lerouge</dc:creator>
				<category><![CDATA[Documentation]]></category>
		<category><![CDATA[SysAd]]></category>
		<category><![CDATA[rsync]]></category>
		<category><![CDATA[tip]]></category>

		<guid isPermaLink="false">http://blog.timetombs.org/?p=56</guid>
		<description><![CDATA[I spent a bit of time playing around with rsync.
As an old machine (in 2.6.25, there is bug reported against 2.6.24, but it still is doing it) is regularly reseting the USB interface under heavy load, I wanted a solution checking out that file transfered are correct. rsync is doing a checksum control on each [...]]]></description>
			<content:encoded><![CDATA[<p>I spent a bit of time playing around with <em>rsync</em>.</p>
<p>As an old machine (in 2.6.25, there is bug reported against 2.6.24, but it still is doing it) is regularly reseting the USB interface under heavy load, I wanted a solution checking out that file transfered are correct. <em>rsync</em> is doing a checksum control on each transfert.<br />
So <a href="https://svn.timetombs.org/svn/tip/tip-nix-soft-rsync.html">here</a> is a small tip with what I am now using. I&#8217;ll add an alias to my Zsh.</p>
<p>Be warned that using <em>rsync</em> on a machine with cyphered volumes is putting an heavy load on the machine…</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.timetombs.org/?feed=rss2&amp;p=56</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using another usbstick to boot</title>
		<link>http://blog.timetombs.org/?p=52</link>
		<comments>http://blog.timetombs.org/?p=52#comments</comments>
		<pubDate>Mon, 27 Apr 2009 21:16:19 +0000</pubDate>
		<dc:creator>lerouge</dc:creator>
				<category><![CDATA[SysAd]]></category>
		<category><![CDATA[grub2]]></category>

		<guid isPermaLink="false">http://blog.timetombs.org/?p=52</guid>
		<description><![CDATA[A quick post copying part of my previous post about Grub2.
I just added a few precisions while re-testing those notes.
1. Use case


The goal is :





being able to use another usbstick than the dedicated one.





Your crafted Grub2 configuration on your dedicated usbstick is using the option search &#8211;fs-uuid &#8211;set &#60;UUID&#62;. So, when booting in your (fully [...]]]></description>
			<content:encoded><![CDATA[<p>A quick post copying part of my previous post about Grub2.</p>
<p>I just added a few precisions while re-testing those notes.</p>
<h2 id="_use_case">1. Use case</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The goal is :</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>
being able to use another <em>usbstick</em> than the dedicated one.
</p>
</li>
</ol>
</div>
<div class="paragraph">
<p>Your crafted <em>Grub2</em> configuration on your dedicated <em>usbstick</em> is using the option <em>search &#8211;fs-uuid &#8211;set &lt;UUID&gt;</em>. So, when booting in your (fully encrypted) hard drive the first stage (I do not know if it is the first or 1.5 one) is looking for this <em>UUID</em>. And, of course, it doesn&#8217;t find it as you plugged another <em>usbstick</em>.</p>
</div>
</div>
<h2 id="_variables">2. Variables</h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>
<tt>&lt;dev_hardisk&gt;</tt> [<tt>/dev/sda</tt>] : device of the main hard disk, fully encrypted and used to boot
</p>
</li>
<li>
<p>
<tt>&lt;dev_usbstick&gt;</tt> [<tt>/dev/sdb</tt>] : device of the usbstick used to boot</p>
</li>
<li>
<p>
<tt>&lt;dev_usbstick_bootpartition&gt;</tt> [<tt>/dev/sdb1</tt>] : device of the partition on the usbstick hosting the <em>/boot</em> partition
</p>
</li>
<li>
<p>
<tt>&lt;id_bootpartition&gt;</tt> [<tt>1</tt>] : id of the partition on the usbstick hosting the <em>/boot</em> partition. On my usbstick it is not the first partition as the first one is a FAT one dedicated to Windows that is unable to read a partition if it is not the firt one (on a removable mass storage)</p>
</li>
<li>
<p>
<tt>&lt;uuid_usbstick_bootpartition&gt;</tt> [<tt>46521b2b-b510-486c-bdef-ed62z0053c11</tt>] : UUID of <tt>&lt;dev_usbstick_bootpartition&gt;</tt>
</p>
</li>
<li>
<p>
<tt>&lt;dir_mount_usbstick_bootpartition&gt;</tt> [<tt>/media/tmp</tt>] : directory where <tt>&lt;dev_usbstick_bootpartition&gt;</tt> is mounted</p>
</li>
<li>
<p>
<tt>&lt;dev_root_kernel&gt;</tt> [<tt>/dev/mapper/vg_main-lv_slash</tt>] : the root device to which initrd pivots once is has done its job (including the opening of the cryptocontainer). In this case, I am using LVM on top of the cryptocontainer with one <em>volume group</em> and several <em>logical volumes</em>. FIXME- add the default naming convention of <em>Debian</em> -FIXME
</p>
</li>
</ul>
</div>
<div class="paragraph" id="id_get_uuid">
<p>To get <tt>&lt;uuid_usbstick_bootpartition&gt;</tt> value :</p>
</div>
<div class="listingblock">
<div class="content">
<pre><tt>$ sudo vol_id --uuid &lt;dev_usbstick_bootpartition&gt;
46521b2b-b510-486c-bdef-ed62z0053c11
$</tt></pre>
</div>
</div>
</div>
<h2 id="_to_boot_a_machine_when_its_dedicated_boot_usbstick_is_lost">3. To boot a machine when its dedicated boot usbstick is lost</h2>
<div class="sectionbody">
<div class="paragraph">
<p>As <em>Grub2</em> is not finding the <em>UUID</em> of the dedicated usbstick it should get the <em>/boot</em> directory from, it switches to <em>rescue mode</em>.</p>
</div>
<div class="listingblock">
<div class="title"><em>Grub2</em> shell</div>
<div class="content">
<pre><tt>[…]
grub rescue&gt; set                                               <b>&lt;1&gt;</b>
grub rescue&gt; prefix=UUID=&lt;uuid_usbstick_lost&gt;/grub             <b>&lt;2&gt;</b>
grub rescue&gt; root=UUID=&lt;uuid_usbstick_lost&gt;                    <b>&lt;2&gt;</b>

grub rescue&gt; set root=hd1,&lt;id_bootpartition&gt;                   <b>&lt;3&gt;</b>
grub rescue&gt; set prefix=(hd1,&lt;id_bootpartition&gt;)/boot/grub     <b>&lt;3&gt;</b> <b>&lt;4&gt;</b>
grub rescue&gt; set                                               <b>&lt;5&gt;</b>

grub rescue&gt; root=hd1,&lt;id_bootpartition&gt;
grub rescue&gt; prefix=(hd1,&lt;id_bootpartition&gt;)/boot/grub
grub rescue&gt; insmod /boot/grub/normal.mod                      <b>&lt;6&gt;</b> <b>&lt;7&gt;</b>
grub rescue&gt; normal                                            <b>&lt;8&gt;</b>

grub&gt; insmod /boot/grub/_linux.mod                             <b>&lt;9&gt;</b>
grub&gt; insmod /boot/grub/linux.mod                              <b>&lt;9&gt;</b>
grub&gt; linux /boot/&lt;machine_name&gt;/vmlinuz-2.6.28-1-amd64 root=&lt;dev_root_kernel&gt; ro quiet <b>&lt;10&gt;</b>

grub&gt; initrd /boot/&lt;machine_name&gt;/initrd.img-2.6.28-1-amd64    <b>&lt;11&gt;</b>
grub&gt; insmod /boot/grub/boot.mod                               <b>&lt;12&gt;</b>
grub&gt; boot                                                     <b>&lt;13&gt;</b></tt></pre>
</div>
</div>
<div class="colist arabic">
<ol>
<li>
<p>
Let see what variable are set to which value
</p>
</li>
<li>
<p>
Two variables are set to the UUID of the partition hosting the <em>Grub2</em> on the lost usbstick
</p>
</li>
<li>
<p>Set new value for <tt>root</tt> and <tt>prefix</tt> variable according to the usbstick used to boot
</p>
</li>
<li>
<p>
Parenthesis for the <tt>prefix</tt> variable are not mandatory. Actually, the whole step is optional
</p>
</li>
<li>
<p>
Check out which variable are set to which value ; values just set should be displayed
</p>
</li>
<li>
<p>
Load the <em>normal</em> module
</p>
</li>
<li>
<p>
There is no completion as the shell is the <em>rescue</em> one. Basic completion will work once in the <em>normal</em> mode</p>
</li>
<li>
<p>
<em>Grub2</em> is now switching to <em>normal</em> mode
</p>
</li>
<li>
<p>
Load the Linux modules. This adds the following commands to the shell : <em>initrd</em> and <em>linux</em></p>
</li>
<li>
<p>
Set the Linux kernel command and launch it. You better know the mounting point of your encrypted volume for <em>slash</em> (<em>/</em>). By default, if installed with <em>Debian Installer</em> (<em>DI</em>), this is the partition name (such as <em>sda1</em>) with <em>_crypted</em> as a suffix (<em>sda1_crypted</em>). If you are using <em>LVM</em>, I do not remember <em>DI</em> default naming scheme</p>
</li>
<li>
<p>
Set the initrd command and launch it
</p>
</li>
<li>
<p>
Load the <em>boot</em> module
</p>
</li>
<li>
<p>Actually launch the boot process
</p>
</li>
</ol>
</div>
<div class="paragraph">
<p>Enjoy !</p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.timetombs.org/?feed=rss2&amp;p=52</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ebios training</title>
		<link>http://blog.timetombs.org/?p=49</link>
		<comments>http://blog.timetombs.org/?p=49#comments</comments>
		<pubDate>Thu, 09 Apr 2009 23:53:47 +0000</pubDate>
		<dc:creator>lerouge</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[ebios]]></category>
		<category><![CDATA[methodology]]></category>

		<guid isPermaLink="false">http://blog.timetombs.org/?p=49</guid>
		<description><![CDATA[I attended a few weeks ago an Ebios training by the DCSSI.
Quite interresting and rather good trainers.
My notes are available here.
Oh, by the way, that&#8217;s in French… ;)
]]></description>
			<content:encoded><![CDATA[<p>I attended a few weeks ago an Ebios training by the DCSSI.<br />
Quite interresting and rather good trainers.<br />
My notes are available <a href="https://svn.timetombs.org/svn/presentation_conference/formation+dcssi+ebios+200903.html">here</a>.<br />
Oh, by the way, that&#8217;s in French… ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.timetombs.org/?feed=rss2&amp;p=49</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Building Zsh completion… at least, trying…</title>
		<link>http://blog.timetombs.org/?p=40</link>
		<comments>http://blog.timetombs.org/?p=40#comments</comments>
		<pubDate>Thu, 09 Apr 2009 23:38:14 +0000</pubDate>
		<dc:creator>lerouge</dc:creator>
				<category><![CDATA[Documentation]]></category>
		<category><![CDATA[SysAd]]></category>
		<category><![CDATA[completion]]></category>
		<category><![CDATA[figlet]]></category>
		<category><![CDATA[zsh]]></category>

		<guid isPermaLink="false">http://blog.timetombs.org/?p=40</guid>
		<description><![CDATA[Last week, I spent four days with a goal ; write Tripwire completion file for Zsh.
I have been working with Zsh version 4.3.2 (actually, I took those notes a few… months ago).
Short version
I failed. After discovering Zsh completion system and regex &#038; globing, I have been unable to get the command getting automatically commands and [...]]]></description>
			<content:encoded><![CDATA[<p>Last week, I spent four days with a goal ; write <em>Tripwire</em> completion file for <em>Zsh</em>.<br />
I have been working with <em>Zsh</em> version 4.3.2 (actually, I took those notes a few… months ago).</p>
<p><strong>Short version</strong></p>
<p>I failed. After discovering <em>Zsh</em> completion system and regex &#038; globing, I have been unable to get the command getting automatically commands and subcommands, as it is done for <em>Aptitude</em> or <em>Subversion</em>.<br />
See below, for references and what I have done, if it can be useful.</p>
<p><strong>Long version</strong></p>
<p>1/ &#8220;Dumb&#8221; way</p>
<p>I have been able to write a completion configuration for a script I wrote. But, this is a &#8220;dumb&#8221; version one, as I wrote all options in the file. If something change (new or modified option), this configuration file must also be changed.<br />
To do that, I used and.<br />
I produced a commented version of Figlet completion configuration. This configuration has changed a bit since <em>LinuxMag</em> used it for its article[2]. </p>
<p>2/ &#8220;Smart&#8221; way</p>
<p>The smart way to go is to write a command that get sub-commands and/or options directly from the program &#8211;help. Hence, the maintenance of the completion configuration is minimal.<br />
This is the way used by completion configuration of such program as <em>Perforce</em>, <em>Subversion</em> or <em>Aptitude</em>. I tried to understand the inerworking of this &#8220;smart&#8221; way of doing completion by reading thoses configurations. </p>
<p>I produced a commented version of <em>Subversion</em> and <em>Aptitude</em> completion configuration. Actually, what I commented is the command getting the result of &#8211;help to produce the array awaited by the _arguments or _description functions. It was a way for me learning <em>Zsh</em> language.</p>
<p>Hoping it can help others producing completion configurations.</p>
<p>3/ Documentation used</p>
<p>As already mentionned, I read the <em>LinuxMagazine</em> article &#8220;Writing Zsh Completion Functions&#8221;[2], quite good to write simple completion configurations.<br />
For advanced configuration, the <em>Perforce</em> completion and configuration is commented (I found no other). Moreover, chapter 6.8 of &#8220;A user&#8217;s Guide to the Z-shell&#8221; is dedicated to writing advanced completion configuration based on <em>Perforce</em> case.<br />
The &#8220;Zsh Reference Card&#8221; is a must have to help in the command jungle of zsh.<br />
To finish, &#8216;man zshcompsys&#8217; is the way to go&#8230; Good luck !</p>
<p>Now, what I think after spending a bit of time on that matter, is that there is a (very) few (very) bright people actually knowing the gory details of <em>Zsh</em> (and able to use its &#8211; huge &#8211; potential) and the vast majority is merely taking / copying what these people are doing, often, without even understand a single bit of what they are taking. And I am still part of the vast majority, even if I understand a bit more of <em>Zsh</em> now ! ;)</p>
<p>&#8212;<br />
[1] &#8211; https://svn.timetombs.org/svn/tagpix/dev/trunk/_tagpix<br />
[2] &#8211; Writing Zsh Completion Functions, Linux Magazine, 20020715, John Beppu<br />
[3] &#8211; /usr/share/zsh/4.3.2/functions/Completion/Unix/_figlet, on Debian<br />
[4] &#8211; https://svn.timetombs.org/svn/zsh/_figlet<br />
[5] &#8211; /usr/share/zsh/4.3.2/functions/Completion/Unix/_perforce<br />
[6] &#8211; /usr/share/zsh/4.3.2/functions/Completion/Unix/_subversion<br />
[7] &#8211; /usr/share/zsh/4.3.2/functions/Completion/Unix/_aptitude<br />
[8] &#8211; http://zsh.dotsrc.org/Guide/zshguide06.html#1177<br />
[9] &#8211; http://zsh.sourceforge.net/Refcard/                                              </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.timetombs.org/?feed=rss2&amp;p=40</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Booting secured systems with one usbstick ; playing again with Grub2</title>
		<link>http://blog.timetombs.org/?p=36</link>
		<comments>http://blog.timetombs.org/?p=36#comments</comments>
		<pubDate>Tue, 17 Mar 2009 21:26:06 +0000</pubDate>
		<dc:creator>lerouge</dc:creator>
				<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Documentation]]></category>
		<category><![CDATA[SysAd]]></category>
		<category><![CDATA[grub2]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[rescue]]></category>
		<category><![CDATA[tip]]></category>
		<category><![CDATA[usb stick]]></category>

		<guid isPermaLink="false">http://blog.timetombs.org/?p=36</guid>
		<description><![CDATA[Few notes taken after a day and a half fighting with Grub2.
Use case
The goal is simple :
   1. having systems with hard disk fully encrypted, therefore having a /boot partition on another media ;
   2. having a usbstick allowing to boot several systems including a live one (GRML) and a Debian [...]]]></description>
			<content:encoded><![CDATA[<p>Few notes taken after a day and a half fighting with Grub2.</p>
<p>Use case</p>
<p>The goal is simple :<br />
   1. having systems with hard disk fully encrypted, therefore having a /boot partition on another media ;<br />
   2. having a usbstick allowing to boot several systems including a live one (GRML) and a Debian Installer.</p>
<p>To boot a system with hard disk fully encrypted there are two solutions :<br />
   1. starting the boot on the hard disk and use a usbstick for hosting /boot ;<br />
   2. booting on the usbstick.</p>
<p>The decision is yours. It is decided either</p>
<p>    * in the bios ;<br />
    * or at the boot time by hitting a key (such as <escape>, F12 or F2, for example).</p>
<p>It is easy to have a dedicated boot usbstick for each machine having a totally encrypted hard disk. It can be handled at the installation time (just tell to Debian Installer to use the usbstick volume for the /boot mount point).</p>
<p>It is easy to build a bootable usbstick with the Debian Installer or any live system.</p>
<p>My goal was to mix both as usbstick are quite large nowadays :</p>
<p>    * if any of my fully encrypted hard disk machine was booting on its hard disk, it had to find its /boot on the usbstick. The same usbstick for all those machines ;<br />
    * I wanted to be able to boot any machine with the same usbstick and choose to boot a live system or the Debian Installer or any kernel/initrd of any of the fully encrypted machine.</p>
<p>Here is the whole process I followed to reach that goal :</p>
<p>   1. create a bootable usbstick : see § Usbstick boot ;<br />
   2. get its UUID (it will be useful at some point to know it) : see To get UUI D value ;<br />
   3. create a directory for each fully encrypted disk in the usbstick /boot directory and copy into it the kernel and initrd of the machine ;<br />
   4. edit the file boot/grub/grub.cfg on the usbstick and create an entry for each machine ;<br />
   5. re-install Grub2 on each fully encrypted machine so that it knows the /boot has changed (from a dedicated usbstick to a mutualised one that can boot itself) : see § Hard disk boot / With a mutualized usbstick.</p>
<p>To read more just click here : <a href="https://svn.timetombs.org/svn/tip/tip-nix-sysad-grub2_boot.html">Notes about using Grub2 during the boot process</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.timetombs.org/?feed=rss2&amp;p=36</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>c&amp;esar 2008 — compte-rendu</title>
		<link>http://blog.timetombs.org/?p=26</link>
		<comments>http://blog.timetombs.org/?p=26#comments</comments>
		<pubDate>Wed, 14 Jan 2009 00:03:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[cesar]]></category>
		<category><![CDATA[convention]]></category>

		<guid isPermaLink="false">http://blog.timetombs.org/?p=26</guid>
		<description><![CDATA[Début décembre avaient lieux les journées du Celar : C&#38;ESAR. Le thème 2008 était : « Informatique… de confiance ? ».



Ces notes sont la retranscription des notes prises par Yves-Alexis, Delphine et moi-même.

Elles ne sont qu&#8217;une vue (parfois très) partielle des présentations. Reportez-vous aux présentations mises à disposition par le CELAR. Ces présentations ne sont [...]]]></description>
			<content:encoded><![CDATA[<p>Début décembre avaient lieux les journées du Celar : C&amp;ESAR. Le thème 2008 était : « Informatique… de confiance ? ».</p>
<div id="preamble">
<div class="sectionbody">
<div class="para">
<p>Ces notes sont la retranscription des notes prises par Yves-Alexis, Delphine et moi-même.</p></div>
<div class="para">
<p>Elles ne sont qu&#8217;une vue (parfois très) partielle des présentations. Reportez-vous aux présentations mises à disposition par le CELAR. Ces présentations ne sont elles-mêmes qu&#8217;une synthèse sans les aspects les plus gore des papiers publiés dans les actes.</p></div>
<div class="para">
<p>Les parties <em>Avis / commentaire</em> n&#8217;engagent que moi.</div>
<div class="para">
<p>Enfin, toute erreur dans ces notes est mienne.</p></div>
<div class="para">
<p>Et pour finir, les actes prennent le temps d&#8217;expliquer plein de choses qui sont jugées connues lors des conférences.</p></div>
</div>
</div>
<h2 id="_introduction_conomie_num_rique_2025_s_curit_s_ret_et_confiance">1. Introduction – Économie numérique 2025 : Sécurité, sûreté et confiance</h2>
<div class="sectionbody">
<div class="para">
<p>Alain Bravo – Supélec</p></div>
<h3 id="_notes">1.1. Notes</h3>
<div class="para">
<p>Redéfinir les priorités politiques wrt. STIC</p></div>
<div class="para">
<p>Objectif : dépasser 2012</p></div>
<div class="para">
<p>Décomposition du système économie numérique en cinq composantes (contenant au total 43 variables) :</p></div>
<div class="olist">
<ol>
<li>technologies déterminantes pour l&#8217;avenir</li>
<li>marché
<div class="ilist">
<ul>
<li>échanges mondiaux, biens et services (93 % PIB mondial)</li>
<li>secteur de l&#8217;économie numérique (7 % PIB mondial)</li>
</ul>
</div>
</li>
<li>réglementation, régulation</li>
<li>contexte socio-économique</li>
<li>usages
<div class="ilist">
<ul>
<li>des personnes</li>
<li>des entreprises et organisations, publiques et privées</li>
<li>spécifiques de la puissance publique</li>
</ul>
</div>
</li>
</ol>
</div>
<h4 id="_technologies_d_terminantes">1.1.1. Technologies déterminantes</h4>
<div class="ilist">
<ul>
<li>conception et design</li>
<li>cognitives</li>
<li>sécurité et contrôle</li>
<li>intégration des réseaux (Internet) et systèmes</li>
<li>mobilité / ubiquité / systèmes embarqués</li>
<li>économie d&#8217;énergie</li>
<li>interfaces systèmes à systèmes</li>
<li>nano-technologies</li>
</ul>
</div>
<h4 id="_march">1.1.2. Marché</h4>
<div class="ilist">
<ul>
<li>échanges mondiaux
<div class="ilist">
<ul>
<li>secteurs potentiellement compétitifs</li>
<li>flux des échanges mondiaux (produits et services numériques)</li>
<li>contrôle et fiscalité des échanges de services numériques</li>
</ul>
</div>
</li>
<li>secteur de l&#8217;économie numérique
<div class="ilist">
<ul>
<li>secteurs potentiellement compétitifs du secteur TIC</li>
<li>modèles économiques</li>
<li>nouveaux entrants et nouveaux marchés</li>
<li>stratégies des puissances publiques</li>
</ul>
</div>
</li>
</ul>
</div>
<h4 id="_r_glementation_r_gulation">1.1.3. Réglementation, régulation</h4>
<div class="ilist">
<ul>
<li>périmètre du service universel</li>
<li>standards, normes, interopérabilité (y compris des contenus)</li>
<li>sécurité, confiance dans les transactions, gestion des données privées</li>
<li>sûreté et régime de responsabilité des TIC (impacts sanitaires   potentiels, cf. ondes radios)</li>
<li>droit commercial, de la concurrence, immatériel (propriété   intellectuelle)</li>
<li>gestion des ressources TIC (fréquences, positions orbitales, nommage…)</li>
<li>problème de gouvernance entre monde réel et monde virtuel</li>
</ul>
</div>
<div class="para">
<p>Règles du jeu restent encore à inventer.</p></div>
<h4 id="_contexte_socio_conomique">1.1.4. Contexte socio-économique</h4>
<div class="ilist">
<ul>
<li>problème d&#8217;individualisation</li>
<li>redéfinition des sphères publiques et privées</li>
</ul>
</div>
<div class="para">
<p>→ besoin d&#8217;interventions dans l&#8217;éducation → formations initiale et continue</p></div>
<h4 id="_usages">1.1.5. Usages</h4>
<div class="ilist">
<ul>
<li>personnes
<div class="ilist">
<ul>
<li>apprendre, communiquer, divertir, socialiser</li>
<li>commercer / acquérir</li>
<li>se soigner (cf. dossier numérique médical)</li>
<li>gérer et protéger <em>ses</em> identités et ses biens (dont les données)</li>
<li>maîtriser les multi-activités (dont se déconnecter)</li>
</ul>
</div>
</li>
<li>entreprises
<div class="ilist">
<ul>
<li>anticiper, identifier les risques et maîtriser les responsabilités</li>
<li>créer et innover</li>
<li>produire les biens et les services</li>
<li>prospecter, vendre et distribuer</li>
<li>puissance publique</li>
<li>démocratie et modes d&#8217;expression politique</li>
<li>sécurité, sûreté, justice et gestion des infrastructures critiques</li>
<li>gestion des risques et crises</li>
</ul>
</div>
</li>
</ul>
</div>
<div class="para">
<p>Dans 17 des 43 variables, les notions de sécurité, sûreté et confiance sont <em>a minima</em> sous-jacentes et elles sont au premier rang dans 5 des 43 variables.</div>
<h4 id="_conclusion">1.1.6. Conclusion</h4>
<div class="ilist">
<ul>
<li>Qu&#8217;est-ce qu&#8217;est la confiance ?
<div class="ilist">
<ul>
<li>penser qu&#8217;une entité va réaliser correctement une certaine action dans un      certain contexte (« ce que je demande est bien effectué ») ;</li>
<li>penser qu&#8217;il existe une <em>police</em> de l&#8217;économie numérique, qui veille à      ce que tout se passe bien, de façon juste et proportionnée.</li>
</ul>
</div>
</li>
<li>Comment créer cette confiance ?
<div class="ilist">
<ul>
<li>communiquer même si cela est difficile. Un travail est en cours avec des      personnes des sciences humaine et sociale (SHS) ;</li>
<li>travailler à la réputation des systèmes numériques.</li>
</ul>
</div>
</li>
<li>En qui avoir confiance : homme ou machine ?
<div class="ilist">
<ul>
<li>il faut construire une confiance entre homme, machine et réseau en      s&#8217;assurant que les machines et les réseaux aient un bon niveau de sûreté ;</li>
<li>mais on ne peut pas enlever le facteur humain.</li>
</ul>
</div>
</li>
</ul>
</div>
<h3 id="_avis_commentaire">1.2. Avis / commentaire</h3>
<div class="para">
<p>C&#8217;est bien ces approches haut-niveau et hors technique. On se demande juste si parfois c&#8217;est effectivement lu par des décideurs non-techniques ou si c&#8217;est juste pour faire croire aux techos qu&#8217;ils ne sont pas tout seul à ramer…</p></div>
</div>
<h2 id="_trusted_computing_objectives_and_roadmap">2. Trusted computing : objectives and roadmap</h2>
<div class="sectionbody">
<div class="para">
<p>Martin Sadler – HP Labs Bristol</p></div>
<h3 id="_notes_2">2.1. Notes</h3>
<div class="para">
<p>Trusted Computing Group multiple views about security (MS, Intel, IBM, HP, Dell…). Might be a little confused.</p></div>
<h4 id="_timeline">2.1.1. Timeline</h4>
<div class="ilist">
<ul>
<li>start mid 90s
<div class="ilist">
<ul>
<li>“smartcards”</li>
<li>secure Linux</li>
<li>lead into TCPA</li>
<li>concerns over control and ownership of the platform</li>
</ul>
</div>
</li>
<li>&#8217;00s
<div class="ilist">
<ul>
<li>TCPA → TCG</li>
<li>virtualization</li>
<li>openTC</li>
</ul>
</div>
</li>
<li>choice between servers, printers, PCs</li>
</ul>
</div>
<h4 id="_context_amp_risks">2.1.2. Context &amp; Risks</h4>
<div class="ilist">
<ul>
<li>challenges
<div class="ilist">
<ul>
<li>dependences on ICT</li>
<li>organized crime</li>
<li>changing threats     <tt> social networking </tt> firmwares (software everywhere: cars etc.)     + mobility</li>
<li>Moore&#8217;s law for surveillance</li>
<li>the pace of change</li>
</ul>
</div>
</li>
<li>limits
<div class="ilist">
<ul>
<li>how software are produced ?</li>
<li>how system are designed ?</li>
<li>how solutions are deployed ?</li>
<li>security mechanism</li>
<li>economy of security</li>
</ul>
</div>
</li>
<li>need to consider the whole lifecycle</li>
</ul>
</div>
<h4 id="_where_should_we_focus">2.1.3. Where should we focus ?</h4>
<div class="ilist">
<ul>
<li>server: utilisation, green IT, cloud computing</li>
<li>consumers: struggle to understand online privacy, trust &amp; security</li>
<li>HP:
<div class="ilist">
<ul>
<li>clients → collaboration → servers → assurance → homes</li>
<li>attestation rather than authentication</li>
<li>it should “just work” and people shouldn&#8217;t worry about security</li>
</ul>
</div>
</li>
<li>start by getting clients “right”
<div class="ilist">
<ul>
<li>devices = single clients, network centric</li>
<li>supporting multiple persons on a device (VMs, appliances, jails…)</li>
<li>virtualising the TPM</li>
<li>multiple profiles on the same device (personal/business)</li>
</ul>
</div>
</li>
<li>rapid evolution of personal services
<div class="ilist">
<ul>
<li>cloud services</li>
<li>devices convergence</li>
<li>trusted virtualization (one physical device, multiple logical ones)</li>
</ul>
</div>
</li>
<li>multiple worlds on the device
<div class="ilist">
<ul>
<li>freedom and highly controlled environment</li>
<li>ability to introduce new services rapidly</li>
<li>business continuity</li>
</ul>
</div>
</li>
<li>changing assurance requirement</li>
</ul>
</div>
<div class="tableblock">
<table border="0" cellspacing="0" cellpadding="4" frame="hsides" rules="all">
<col width="331"></col>
<col width="308"></col>
<thead>
<tr>
<th align="left"> pre-SOX world</th>
<th align="left"> SOX world</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">critical reviews</td>
<td align="left">ongoing assurance</td>
</tr>
<tr>
<td align="left">historical based</td>
<td align="left">strategic</td>
</tr>
<tr>
<td align="left">intrusive</td>
<td align="left">collaborative</td>
</tr>
<tr>
<td align="left">adherence to rules</td>
<td align="left"></td>
</tr>
</tbody>
</table>
</div>
<div class="ilist">
<ul>
<li>understand how much it costs
<div class="ilist">
<ul>
<li>driving security choices from economics</li>
</ul>
</div>
</li>
<li>trust economics
<div class="ilist">
<ul>
<li>how much I spend on security?</li>
<li>can we understand tradeoffs between:
<div class="olist">
<ol>
<li>risks</li>
<li>policy</li>
<li>employee compliance</li>
<li>technology enforcement
<div class="para">
<p>→ believe in a response by an analytical modelling</p></div>
</li>
</ol>
</div>
</li>
</ul>
</div>
</li>
<li>assurance
<div class="ilist">
<ul>
<li>model based on audit services separated from hypervisor, management and user space</li>
<li>handle :
<div class="olist">
<ol>
<li>what should we be collected ;</li>
<li>who can see it ;</li>
<li>how it should be collected.</li>
</ol>
</div>
</li>
</ul>
</div>
</li>
</ul>
</div>
<h4 id="_increasing_trustworthliness">2.1.4. Increasing trustworthliness</h4>
<div class="ilist">
<ul>
<li>need to move beyond discuss of :
<div class="ilist">
<ul>
<li>complexity trusted computer base ;</li>
<li>good service management ;</li>
<li>VM interface management.</li>
</ul>
</div>
</li>
<li>need to link TPM fonctionalities with :
<div class="ilist">
<ul>
<li>economic model of risk ;</li>
<li>automation of policy (and the home) ;</li>
<li>monitoring and surveillance ;</li>
<li>and the policies of certification.</li>
</ul>
</div>
</li>
</ul>
</div>
<h4 id="_roadmap">2.1.5. Roadmap</h4>
<div class="ilist">
<ul>
<li>using the market
<div class="ilist">
<ul>
<li>clients &gt; collaboration &gt; servers &gt; assurance &gt; homes</li>
</ul>
</div>
</li>
<li>should we trust trusted computing?
<div class="ilist">
<ul>
<li>probably not, but no alternative…</li>
</ul>
</div>
</li>
</ul>
</div>
<h3 id="_avis_commentaire_2">2.2. Avis / commentaire</h3>
</div>
<h2 id="_can_computer_security_live_with_the_human_notion_of_trust">3. Can computer security live with the human notion of trust</h2>
<div class="sectionbody">
<div class="para">
<p>Dr. Jean-Marc Seigneur – Université de Genève</p></div>
<h3 id="_notes_3">3.1. Notes</h3>
<h4 id="_intro">3.1.1. Intro</h4>
<div class="ilist">
<ul>
<li>trust is overused</li>
<li>trust in traditional computer security</li>
<li>human notion of trust</li>
</ul>
</div>
<h4 id="_trust_in_traditional_computer_security">3.1.2. Trust in traditional computer security</h4>
<div class="ilist">
<ul>
<li>security perimeter (external users untrusted, authentification, users   trusted)</li>
<li>authentication burden
<div class="ilist">
<ul>
<li>multiple security perimeters</li>
</ul>
</div>
</li>
<li>global computing: constraints
<div class="ilist">
<ul>
<li>no skilled and dedicated admin</li>
<li>no worldwide legitimate authority</li>
<li>large number of entities</li>
</ul>
</div>
</li>
</ul>
</div>
<h4 id="_computational_trust">3.1.3. Computational trust</h4>
<div class="para">
<p>Two main types of trust:</p></div>
<div class="olist">
<ol>
<li>system trust:
<div class="ilist">
<ul>
<li>law</li>
<li>insurance</li>
</ul>
</div>
</li>
<li>interpersonal trust:
<div class="ilist">
<ul>
<li>direct observation</li>
<li>recommendation</li>
<li>reputation (can be influenced, worst type of trust)</li>
</ul>
</div>
</li>
</ol>
</div>
<div class="para">
<p>Trust values:</p></div>
<div class="ilist">
<ul>
<li>count of positive and negative outcomes (p,n) (cf. ebay)</li>
<li>triple, including uncertainty (p,u,n)</li>
<li>manually set by the users: 75%</li>
</ul>
</div>
<div class="para">
<p>Trust metrics:</p></div>
<div class="ilist">
<ul>
<li>local → centralized
<div class="ilist">
<ul>
<li>group</li>
<li>scalar</li>
</ul>
</div>
</li>
<li>global
<div class="ilist">
<ul>
<li>distributed</li>
<li>centralized</li>
</ul>
</div>
</li>
</ul>
</div>
<h4 id="_conclusion_2">3.1.4. Conclusion</h4>
<div class="ilist">
<ul>
<li>Global computing can benefit from computational modelling of the human   notion of trust</li>
<li>needs to be scientifically evaluated and standardized to be used on a   large scale</li>
<li>EU project on that</li>
</ul>
</div>
<div class="para">
<p>trustcomp.org</p></div>
<h3 id="_avis_commentaire_3">3.2. Avis / commentaire</h3>
<div class="para">
<p>La pire conférence. Je m&#8217;attendais à une approche sociologique — ou « sciences molles » de manière générale. Rien n&#8217;était défini proprement, les modèles ultra-légers. Sans parler du catalogue de .com ayant essayé de se lancer sur ce secteur…</p></div>
<div class="para">
<p>Nul.</p></div>
</div>
<h2 id="_multiniveau_probl_matique_solutions_et_axes_d_tudes">4. Multiniveau : problématique, solutions et axes d&#8217;études</h2>
<div class="sectionbody">
<div class="para">
<p>David Boucart, Sébastien Gay – DGA/CELAR</p></div>
<h3 id="_notes_4">4.1. Notes</h3>
<h4 id="_probl_matique_besoin_et_contraintes">4.1.1. Problématique (besoin et contraintes)</h4>
<div class="para">
<p>Multiplication des sensibilités d&#8217;information:</p></div>
<div class="ilist">
<ul>
<li>OTAN, Européen, CD/SD/etc.</li>
</ul>
</div>
<div class="para">
<p>Existence de deux impératifs contradictoires :</p></div>
<div class="ilist">
<ul>
<li>besoin d&#8217;accéder aux différentes informations</li>
<li>mais besoin de compartimenter les différentes informations</li>
</ul>
</div>
<div class="para">
<p>Différentes approches :</p></div>
<div class="ilist">
<ul>
<li>accès simultané et permanent à plusieurs niveaux de sensibilité</li>
<li>accès alterné et raccordement ponctuel à des niveaux différents</li>
</ul>
</div>
<div class="para">
<p>→ besoin d&#8217;accès à plusieurs niveaux (mutualisation des moyens)</p></div>
<div class="ilist">
<ul>
<li>accès permet consultation/modification mais pas l&#8217;échange d&#8217;information</li>
<li>échanges nécessitent l&#8217;interconnexion des niveaux</li>
</ul>
</div>
<div class="para">
<p>→ besoin d&#8217;échange de données entre plusieurs niveaux (efficacité)</p></div>
<div class="ilist">
<ul>
<li>confidentialité : <em>no read up</em> (Bell Lapadula, 1975)</li>
<li>intégrité : <em>no write down</em> (Biba, 1977)</li>
<li>contrôles stricts des échanges entre niveaux.</li>
</ul>
</div>
<div class="para">
<p>Multi-niveau : ensemble des mécanismes et architectures de sécurité permettant l&#8217;accès et l&#8217;échange d&#8217;informations entre niveaux de sécurité différents.</p></div>
<div class="para">
<p>Pas de solution miracle générique mais des critères de choix :</p></div>
<div class="ilist">
<ul>
<li>comparaison des niveaux de sécurité à traiter : plus l&#8217;écart est grand, plus la solution doit être robuste. Pas toujours possible de hiérarchiser  « équivalence » des niveaux mais domaines de sécurité distincts.</li>
<li>vulnérabilités résiduelles : pas toujours quantifiable précisément. Nécessité de bien cadrer le besoin pour y répondre, sans plus.</li>
<li>facteur humain : problématique de l&#8217;acceptation de la solution par les utilisateurs.</li>
</ul>
</div>
<h4 id="_solutions">4.1.2. Solutions</h4>
<h5 id="_postes_multi_niveaux">Postes multi-niveaux</h5>
<div class="olist">
<ol>
<li>pas de mutualisation
<div class="ilist">
<ul>
<li>solution actuelle : un poste par niveau</li>
<li>pas très ergonomique</li>
<li>meilleures garanties de sécurité <strong>si</strong> on respecte quelques règles (règles Tempest, périphériques amovibles, respect des conditions d&#8217;utilisation)</li>
</ul>
</div>
</li>
<li>mutualisation des périphériques
<div class="ilist">
<ul>
<li>KVM</li>
<li><strong>attention</strong> aux problématiques Tempest</li>
<li>« KVM intelligent » disposent d&#8217;une logique embarquée, et donc de     vulnérabilités supplémentaires</li>
<li>périphériques sont communs, peuvent constituer des canaux cachés</li>
<li>KVM « sécurisé » (mais à creuser)</li>
</ul>
</div>
</li>
<li>mutualisation du hardware
<div class="ilist">
<ul>
<li>solutions « alternées » (multi-boot)
<div class="ilist">
<ul>
<li>problèmes de rémanence des zones mémoire ?</li>
</ul>
</div>
</li>
<li>solutions « simultanées » (virtualisation / cloisonnement)
<div class="ilist">
<ul>
<li>pas forcément pensées pour des besoins de sécurité et de       cloisonnement</li>
<li>matériel devrait être contrôlé par hyperviseur, pas toujours le cas (prendre de l&#8217;hyperviseur type I qui n&#8217;est pas hosté par une instance privilégiée d&#8217;OS)</li>
</ul>
</div>
</li>
</ul>
</div>
</li>
<li>mutualisation de l&#8217;OS
<div class="ilist">
<ul>
<li>système d&#8217;exploitation multi-niveau (MLS)</li>
<li>mécanismes internes (contrôle d&#8217;accèsi MAC, labellisation)</li>
<li>solution complexe à évaluer</li>
</ul>
</div>
</li>
</ol>
</div>
<h5 id="_flux_multi_niveaux">Flux multi-niveaux</h5>
<div class="olist">
<ol>
<li>réseaux physiques dédiés
<div class="ilist">
<ul>
<li>coûteuse en câblage et points d&#8217;accès</li>
<li>cloisonnement physique</li>
<li>bonne confiance à condition d&#8217;être protégé contre les attaques physiques</li>
</ul>
</div>
</li>
<li>réseaux virtuels VLAN
<div class="ilist">
<ul>
<li>cloisonnement et non confidentialité (pas de chiffrement)</li>
<li>cloisonnement niveau 2 :
<div class="ilist">
<ul>
<li>statique avec vlan par port,</li>
<li>dynamique avec 801.1X,</li>
<li>statique simultanée avec marquage 802.1q</li>
</ul>
</div>
</li>
<li>cloisonnement niveau 3 avec labellisation des paquets IP (utilisation des     options de sécurité IP)</li>
<li>un VLAN pour chaque niveau, sans routage inter-VLAN</li>
<li>pas plus mauvais que le physique (i.e. il faut maîtriser la sécurité     physique des locaux)</li>
<li>nécessite une confiance dans la commutation, label 802.1q, auth EAP et     dans la configuration des équipements</li>
<li>possibilité d&#8217;utiliser un « commutateur de confiance » (machine     externe, dédiée)</li>
</ul>
</div>
</li>
<li>réseaux virtuels VPN (ipsec / chiffrement niveau 3)
<div class="ilist">
<ul>
<li>protection contre les attaques physiques</li>
<li>multiplication des associations et politiques IPsec et des clés</li>
<li>quelle architecture pour un chiffreur multi-niveau ?</li>
<li>cloisonnement des interfaces <em>rouges</em> d&#8217;un chiffreur multi-niveau</li>
</ul>
</div>
</li>
<li>réseau unique
<div class="ilist">
<ul>
<li>chiffrement ou marquage applicatif</li>
<li>lié à un usage précis et difficile à généraliser</li>
<li>dépendant d&#8217;une application (et quelle confiance dans l&#8217;application ?)</li>
<li>comment apposer un marquage sûr sur de l&#8217;information ?</li>
<li>de façon automatique ?</li>
</ul>
</div>
</li>
</ol>
</div>
<h5 id="_changes_inter_niveaux">Échanges inter-niveaux</h5>
<div class="olist">
<ol>
<li>échanges hors-ligne (support de stockage externe)
<div class="ilist">
<ul>
<li>« pis-aller » mais difficile à utiliser pour faire fuire de l&#8217;information     à grande échelle</li>
<li>nécessite de sensibiliser les utilisateurs</li>
<li>support peut être piégé</li>
<li>amélioration à l&#8217;aide d&#8217;un sas de dépollution</li>
</ul>
</div>
</li>
<li>échanges uni-directionnels
<div class="ilist">
<ul>
<li>on raccorde, à l&#8217;aide d&#8217;une diode (<strong>physique</strong>)</li>
<li>intéressant pour la remontée d&#8217;information vers un niveau haut</li>
<li>très simple, donc confiance assez bonne</li>
<li>mais la diode ne protégera pas de code piégé donc nécessite une solution     pour protéger l&#8217;intégrité du niveau haut (voir sas de dépollution ci-dessus)</li>
</ul>
</div>
</li>
<li>échanges bi-directionnels avec contrôle des flux
<div class="ilist">
<ul>
<li>basée sur un firewall/DMZ</li>
<li>serveurs placés en coupure sur les flux applicatifs, filtrent le     contenu</li>
<li>confiance limitée, selon les systèmes émetteurs même avec de la défense en     profondeur (flux bien définis, maîtrise des applications source et maîtrise de la sécurité globale du système)</li>
<li>pour des échanges entre niveaux proches ou dans un contexte déterminé et     relativement restrictif</li>
</ul>
</div>
</li>
<li>échanges bidirectionnels avec contrôle des informations : labellisation
<div class="ilist">
<ul>
<li>plutôt pour la descente : « droit de sortie »</li>
<li>labellisation + signature de l&#8217;autorité ⇒ engagement de la responsabilité</li>
<li>passerelle en coupure, vérification du label et de la signature</li>
<li>comment s&#8217;assurer que de l&#8217;information n&#8217;est pas cachée ? i.e. labellise-t-on ce qui est visualisé ?</li>
<li>quelle confiance dans la passerelle ? (et non du système dans son ensemble     comme dans le cas précédent)</li>
<li>comment automatiser la solution ? (labellisation, signature, etc.)</li>
</ul>
</div>
</li>
</ol>
</div>
<h4 id="_conclusion_architecture_et_vuln_rabilit_s">4.1.3. Conclusion : architecture et vulnérabilités</h4>
<div class="ilist">
<ul>
<li>Solutions combinables (postes de travail, flux, échanges)</li>
<li>Implémentation dans la zone de confiance des postes s&#8217;ils en ont une ou bien boîtiers dédiés</li>
<li>Mécanismes d&#8217;échanges peuvent faire partie du poste (zone de confiance) ou bien passerelles dédiées</li>
</ul>
</div>
<div class="para">
<p>Mais :</p></div>
<div class="ilist">
<ul>
<li>quelle confiance dans la zone de confiance ? Que met-on dans la zone de confiance ? En mettre beaucoup réduit la maîtrise que l&#8217;on peut en avoir (quid des évolutions ?)</li>
<li>comment traiter en pratique les différents formats de données ? Les formats sont de plus en plus dynamiques et nombreux…</li>
<li>quelle confiance dans le matériel ?</li>
</ul>
</div>
<h3 id="_avis_commentaire_4">4.2. Avis / commentaire</h3>
<div class="para">
<p>Super présentation et synthèse du sujet.</p></div>
<div class="para">
<p>Ils ne sont toujours pas convaincus par SELinux à la DCSSI ;)</p></div>
</div>
<h2 id="_quelles_confidentialit_s_pour_quelles_confidences_et_avec_quelle_confiance">5. Quelles confidentialités, pour quelles confidences, et avec quelle confiance ?</h2>
<div class="sectionbody">
<div class="para">
<p>Gilles Trouessin – OPPIDA Sud</p></div>
<h3 id="_notes_5">5.1. Notes</h3>
<div class="para">
<p>Né du besoin de pouvoir mettre en place une solution fiable et sécurisée d&#8217;une version anonymisée du programme de médicalisation du système d&#8217;information (PMSI) pour suivre la trajectoire de soins hospitaliers et de remboursement des actes médicaux à la fin des années 90. Une fonction d&#8217;occultation d&#8217;information nominative (FOIN) a été élaborée à partir du numéro d&#8217;identification (NIR) au registre national d&#8217;identification des personnes physiques (RNIPP) et de la date de naissance de la personne. Celle-ci permet de générer toujours et partout le même identifiant anonyme pour un individu donné pour quiconque possède l&#8217;ultra-secret d&#8217;anonymisation.</p></div>
<h4 id="_d_finition_vie_priv_e">5.1.1. Définition : vie privée</h4>
<div class="para">
<p>Notions et périmètres variables :</p></div>
<div class="ilist">
<ul>
<li>privative</li>
<li>publique</li>
<li>citoyenne</li>
<li>internaute</li>
<li>professionnelle</li>
</ul>
</div>
<h4 id="_d_finition_confidentialit">5.1.2. Définition : confidentialité</h4>
<div class="ilist">
<ul>
<li>Propriété qui permet de garantir la divulgation des informations de façon autorisée.</li>
<li>Nature des informations
<div class="ilist">
<ul>
<li>confidentiel : besoin d&#8217;en connaître</li>
<li>secret médical : remplacé par le secret professionnel d&#8217;ordre médical</li>
<li>secret professionnel : obligation de réserve de manière générale. Relève de la déontologie.</li>
<li>discrétion professionnelle : respect de l&#8217;individu</li>
</ul>
</div>
</li>
</ul>
</div>
<div class="para">
<p>Dans le cadre du secteur de la santé, la confidentialité est particulière. Elle est au centre de la relation soigné-soignant, appelée <em>colloque singulier</em>. Dès lors, le patient peut confier toute l&#8217;information permettant au médecin de soigner complètement et globalement conformément aux bonnes pratiques de son art. Dès lors, les informations recueillies ne peuvent servir intégralement ni aux soins, ni aux remboursements, etc. De nombreux textes s&#8217;attachent à bien marquer la distinction entre :</div>
<div class="ilist">
<ul>
<li>la confidentialité-séclusion liée à la confidence du <em>colloque singulier</em></li>
<li>et la confidentialité-discrétion exigée pour toute information rendue non-médicale et utile pour l&#8217;administratif ou les statistiques.</li>
</ul>
</div>
<div class="para">
<p>Il est donc essentiel de pouvoir distinguer les lieux et contextes d&#8217;utilisation où :</p></div>
<div class="ilist">
<ul>
<li>l&#8217;on peut se contenter d&#8217;une confidentialité plus ou moins partageable et partagée (et donc en partie réversible) : il s&#8217;agit alors de confidentialité au sens de discrétion</li>
<li>et ceux où l&#8217;on doit imposer une confidentialité unique et absolue (irréversible) : il s&#8217;agit alors de confidentialité au sens de séclusion. Hors du cadre déclaré il faut pouvoir garantir l&#8217;anonymat.</li>
</ul>
</div>
<div class="para">
<p>Distinction de :</p></div>
<div class="ilist">
<ul>
<li>l&#8217;obligation éthique de confidentialité au sens moral du terme : adaptée à la confidentialité-discrétion</li>
<li>l&#8217;obligation déontologique  de confidentialité au sens très formel du terme : adaptée à la confidentialité-séclusion.</li>
</ul>
</div>
<div class="para">
<p>Dans le cadre de l&#8217;obligation déontologique — à rapprocher de l&#8217;exigence de confidentialité classique — on peut assurer la confidentialité par les mesures classiques :</p></div>
<div class="ilist">
<ul>
<li>juridiques : respect de la loi Informatique et liberté, Code de déontologie médicale</li>
<li>organisationnelles : définition (et révision permanente) de la politique   régissant les droits et contrôles d&#8217;accès aux données</li>
<li>technologiques / techniques : définition d&#8217;une politique   d&#8217;identification/authentification adaptée, chiffrement, etc.</li>
</ul>
</div>
<div class="para">
<p>Ces mesures s&#8217;appliquent à tous les secteurs manipulant une partie des données du soigné. Néanmoins, des environnements ne permettent pas une confiance absolue :</p></div>
<div class="ilist">
<ul>
<li>lors du passage depuis le cercle soin/médical vers le cercle   santé/remboursement ou statistique/épidémiologique</li>
<li>lors du passage entre la demande individuelle et l&#8217;attente collective.</li>
</ul>
</div>
<h4 id="_l_anonymisation">5.1.3. L&#8217;anonymisation</h4>
<div class="para">
<p>Vaste famille de solutions juridico-technico-organisationnelles qui permettent de rendre peu sensible une donnée hautement sensible auparavant.</p></div>
<div class="para">
<p>Toute la difficulté de la mise en place d&#8217;une démarche d&#8217;anonymisation consiste à bâtir une solution dont on puisse garantir la robustesse. Robustesse au sens :</p></div>
<div class="ilist">
<ul>
<li>cryptographique :
<div class="ilist">
<ul>
<li>réelle fonction à sens unique (hash)</li>
</ul>
</div>
</li>
<li>fonctionnelle et technique :
<div class="ilist">
<ul>
<li>effet d&#8217;avalanche ou différentiation</li>
<li>reproductibilité dans l&#8217;espace : pas de collision</li>
<li>reproductibilité dans le temps : pas de doublon</li>
</ul>
</div>
</li>
<li>à la réversion :
<div class="ilist">
<ul>
<li>directe : dépend de la fonction de hashage</li>
<li>indirecte : pas de table de correspondance</li>
</ul>
</div>
</li>
<li>organisationnelle :
<div class="ilist">
<ul>
<li>secret d&#8217;anonymisation : hautement confidentiel</li>
<li>chaînage :même anonymisation partout mais attention à la corrélation</li>
<li>(double-anonymisation à la source et à la réception)</li>
</ul>
</div>
</li>
<li>à l&#8217;inférence : reconstitution d&#8217;information personnelle à partir de   croisement d&#8217;information anonymisée (inférence par déduction, induction, abduction).</li>
</ul>
</div>
<div class="para">
<p>Toutes ces exigences ne sont pas obligatoirement applicable à tous les contextes. Cela dépend de la fonction de base retenue, des acteurs impliqués en amont et/ou aval de la procédure, la nature des données anonymisées, l&#8217;ampleur du chaînage, etc.</p></div>
<h4 id="_anonymisation_dans_le_secteur_de_la_sant">5.1.4. Anonymisation dans le secteur de la santé</h4>
<div class="para">
<p>Trois types chaînage pour constituer des trajectoires reliant des épisodes de soin, de santé, de remboursement, sociaux ou d&#8217;accidentologie :</p></div>
<div class="olist">
<ol>
<li>chaînage temporel, spatial et spatio-temporel : tous les épisodes sur une période de temps et/ou géographique (attention aux inférences)</li>
<li>chaînage thématique et spécialisé : seuls des épisodes appartenant à une thématique (soin xor médical xor social, etc.), voire à une discipline au sein d&#8217;une thématique</li>
<li>chaînage total / partiel / nul : le chaînage n&#8217;est fait que par période temporelle et/ou géographique</li>
</ol>
</div>
<h4 id="_conclusion_3">5.1.5. Conclusion</h4>
<div class="ilist">
<ul>
<li>pas de confidence médicale sans confiance singulière</li>
<li>distinction entre confidentialité-discrétion et confidentialité-séclusion</li>
<li>distinction entre pseudo-anonymisation reversible et véritable anonymisation irréversible</li>
<li>distinction entre pure anonymisation sans chaînage et pseudonymisation avec chaînage</li>
</ul>
</div>
<h4 id="_notions_de_donn_e_personnelle">5.1.6. Notions de donnée personnelle</h4>
<div class="ilist">
<ul>
<li>caractère personnel</li>
<li>atomique</li>
<li>agrégée</li>
<li>pseudonymisée</li>
<li>dépersonnalisée</li>
<li>anonymisée : suppression définitive (i.e. irréversible) des entités</li>
</ul>
</div>
<h4 id="_divers_types_de_donn_es_personnelles_et_nominatives">5.1.7. Divers types de données personnelles et nominatives</h4>
<div class="ilist">
<ul>
<li>de nature comportementale</li>
</ul>
</div>
<h4 id="_continuum_des_donn_es_personnelles_aux_donn_es_anonymes">5.1.8. Continuum des données personnelles aux données anonymes</h4>
<div class="ilist">
<ul>
<li>directement nominative (état civil)</li>
<li>indirectement nominative (numéro de sécu)</li>
<li>très indirectement anonymes</li>
<li>très, très indirectement anonymes</li>
<li>anonymisées</li>
<li>anonymes</li>
</ul>
</div>
<div class="para">
<p>Beaucoup de textes réglementaires.</p></div>
<h3 id="_avis_commentaire_5">5.2. Avis / commentaire</h3>
<div class="para">
<p>Présentation très intéressante. Touffue ; le fil conducteur n&#8217;est pas évident. Il était très difficile de prendre des notes car le fond était dense et rapide (et donc sans fil conducteur explicite). Les notes ci-dessus sont plutôt extraites du papier des actes.</p></div>
<div class="para">
<p>Menée par un passionné qui semble avoir réfléchi en profondeur et en largeur au sujet.</p></div>
<div class="para">
<p>Celui-ci rappelait aussi que dans le cadre de la santé on n&#8217;a pas le choix d&#8217;être enregistré ou non…</p></div>
</div>
<h2 id="_protection_des_infrastructures_vitales">6. Protection des infrastructures vitales</h2>
<div class="sectionbody">
<div class="para">
<p>Philippe Wolf – SGDN</p></div>
<h3 id="_notes_6">6.1. Notes</h3>
<h4 id="_dispositif_fran_ais_de_protection_des_infrastructures_vitales">6.1.1. Dispositif français de protection des infrastructures vitales</h4>
<div class="ilist">
<ul>
<li>Protection générale
<div class="ilist">
<ul>
<li>système d&#8217;alerte national (VIGIPIRATE) (en rouge depuis les attentats de Londres en 2005). Revu mensuellement pour adaptation mais au sein du même niveau.</li>
<li>mesures de protection publiques et privées</li>
</ul>
</div>
</li>
<li>Secteur d&#8217;Activité d&#8217;Importance Vitale (SAIV)
<div class="ilist">
<ul>
<li>service indispensable au maintien des fonctions sociétales</li>
<li>menaces malicieuses (attentat) et menaces naturelles (pandémie)
<div class="olist">
<ol>
<li>évaluation de la menace (premier ministre) → code couleur (niveaux   d&#8217;alerte)</li>
<li>plans de protections</li>
</ol>
</div>
</li>
</ul>
</div>
</li>
</ul>
</div>
<h5 id="_pourquoi_une_r_forme">Pourquoi une réforme ?</h5>
<div class="ilist">
<ul>
<li>ordonnance de 1958 (« installation d&#8217;importance vitale »)</li>
<li>IGI 4600 : points et réseaux sensibles</li>
<li>système hétérogène, type guerre froide, trop de points (6 600)</li>
</ul>
</div>
<h5 id="_objectifs_des_r_formes">Objectifs des réformes</h5>
<div class="ilist">
<ul>
<li>faciliter l&#8217;application du plan Vigipirate face aux nouvelles menaces</li>
<li>associer les opérateurs privés à l&#8217;effort de vigilance</li>
<li>sélectionner les points à protéger selon le niveau de menace : protéger plus   efficacement des points moins nombreux</li>
<li>procédures juridiquement plus solides (plus de poids qu&#8217;une IGI)</li>
</ul>
</div>
<h5 id="_contexte_international">Contexte international</h5>
<div class="ilist">
<ul>
<li>OTAN</li>
<li>programme européen de protection des infrastructures vitales (site   « siwin »)
<div class="ilist">
<ul>
<li>principe de subsidiarité</li>
<li>une nouvelle directive pour le secteur du transport et de l&#8217;énergie</li>
</ul>
</div>
</li>
</ul>
</div>
<h4 id="_nouveau_dispositif_en_quatre_volets">6.1.2. Nouveau dispositif en quatre volets</h4>
<div class="olist">
<ol>
<li><strong>des</strong> Directives Nationales de Sécurite (DNS) pour chaque SAIV (20 sur 21 sont approuvées). Chacune est pilotée par un ministère régalien</li>
<li><strong>un</strong> Plan de Sécurité Opérateur (PSO) élaboré par chaque Opérateur d&#8217;Importance Vitale (OIV)</li>
<li><strong>des</strong> Plans Particuliers de Protection (PPP) élaborés par l&#8217;opérateur pour   chaque Point d&#8217;Importance Vitale (PIV)</li>
<li><strong>des</strong> Plans de Protection Externe (PPE) élaborés par les pouvoirs publics avec  l&#8217;opérateur pour chaque PIV</li>
</ol>
</div>
<h5 id="_le_nouveau_dispositif">Le nouveau dispositif</h5>
<div class="ilist">
<ul>
<li>liste des secteurs d&#8217;activité
<div class="ilist">
<ul>
<li>dominante régalienne : activités civiles, judiciaires, militaires de l&#8217;État</li>
<li>dominante humaine : alimentation, eau, santé</li>
<li>dominante économique : énergie, finances, transports</li>
<li>dominante technologique : communications électroniques et     audiovisuelles, industrie, espace &amp; recherche</li>
</ul>
</div>
</li>
<li>méthodes d&#8217;analyse</li>
</ul>
</div>
<h5 id="_les_textes">Les textes</h5>
<div class="ilist">
<ul>
<li>ordonnance du 29 décembre 1958</li>
<li>décret du 23 février 2006 relatif aux PIVs</li>
<li>trois arrêtés classifiés :
<div class="olist">
<ol>
<li>liste des secteurs</li>
<li>méthode d&#8217;analyse</li>
<li>plan type des PSO</li>
</ol>
</div>
</li>
</ul>
</div>
<h5 id="_dns">DNS</h5>
<div class="ilist">
<ul>
<li>élaborées par un ministre coordonateur</li>
<li>pour un secteur ou un sous-secteur</li>
<li>fixent le cadre, les objectifs, en fonction des menaces</li>
<li>tiennent compte des inter-dépendances</li>
<li>fixent des mesures spécifiques et rappellent les mesures vigipirate</li>
</ul>
</div>
<div class="para">
<p>20/21 approuvées</p></div>
<h5 id="_laboration_des_pso">Élaboration des PSO</h5>
<div class="olist">
<ol>
<li>identifier les scénarii de menaces</li>
<li>conduire une analyse de risque</li>
<li>identifier les PIV</li>
<li>identifier les mesures permanentes et graduées</li>
</ol>
</div>
<h5 id="_oiv">OIV</h5>
<div class="ilist">
<ul>
<li>critères dans les DNS</li>
<li>consultation interministérielle</li>
<li>consultation de l&#8217;opérateur</li>
<li>avis de la Commission Interministérielle de Défense et de Sécurité</li>
<li>désignation par le ministre (arrêté)</li>
</ul>
</div>
<div class="para">
<p>actuellement : 220 dans sept secteurs</p></div>
<div class="para">
<p>Coopération entre opérateurs et autorités publiques, décentralisation</p></div>
<h5 id="_obligations_des_oiv">Obligations des OIV</h5>
<div class="ilist">
<ul>
<li>désigner des délégués pour la défense et la sécurité</li>
<li>rédiger le PSO, à partir de l&#8217;analyse de risque, en prenant en compte   les DNS</li>
<li>repérer les PIV</li>
<li>rédiger les PPP</li>
</ul>
</div>
<h5 id="_piv">PIV</h5>
<div class="ilist">
<ul>
<li>installation, établissement, ouvrage</li>
<li>dans un secteur d&#8217;importance vitale</li>
<li>en cas d&#8217;indisponibilité :
<div class="ilist">
<ul>
<li>conséquence grave ou danger grave</li>
</ul>
</div>
</li>
</ul>
</div>
<h5 id="_zones_d_importances_vitales_ziv">Zones d&#8217;importances vitales (ZIV)</h5>
<div class="para">
<p>Ensemble de PIVs proches relevant d&#8217;opérateurs différents et interdépendants sous autorité du préfet de zone.</p></div>
<h4 id="_plans_de_d_tection_et_d_intervention">6.1.3. Plans de détection et d&#8217;intervention</h4>
<div class="ilist">
<ul>
<li>NRBC : piratome, biotox, piratox</li>
<li>liés à un milieu : piranet, metropirate, piratemer, etc.</li>
<li>sanitaire : pandémie</li>
</ul>
</div>
<div class="para">
<p>Tous classifiés, sauf le plan pandémie.</p></div>
<div class="para">
<p>Ces plans sont déclinés au niveau ministériel et local.</p></div>
<h5 id="_pr_paration">Préparation</h5>
<div class="ilist">
<ul>
<li>validation des plans</li>
<li>formation des nouveaux joueurs</li>
<li>exercices nationaux / locaux (quatre par an)</li>
<li>retour d&#8217;expérience (RETEX)</li>
</ul>
</div>
<h4 id="_communication_lectronique_un_secteur_transverse">6.1.4. Communication électronique : un secteur transverse</h4>
<div class="ilist">
<ul>
<li>quoi protéger ?
<div class="ilist">
<ul>
<li>téléphonie fixe et mobile</li>
<li>transport de données</li>
<li>internet</li>
</ul>
</div>
</li>
<li>acteurs :
<div class="ilist">
<ul>
<li>grands opérateurs</li>
<li>FAI</li>
</ul>
</div>
</li>
<li>spécificités
<div class="ilist">
<ul>
<li>effet dominos</li>
<li>PIV</li>
<li>toutes les menaces de l&#8217;EBIOS</li>
<li>difficultés des mesures d&#8217;impact</li>
<li>fort impact de la compétitivité, dimension internationale</li>
</ul>
</div>
</li>
<li>interdépendances des secteurs (énergie)</li>
<li>beaucoup de points critiques dans les réseaux (liaisons, équipements actifs etc.)</li>
<li>paquet télécom : obligation des opérateurs d&#8217;informer les utilisateurs sur les mesures de sécurité et sur les incidents</li>
</ul>
</div>
<div class="para">
<p>Travaux de la CICREST : guide pédagogique pour aider les services de l&#8217;État</p></div>
<div class="para">
<p>Directive numéro 4 MinDef / DGSIC</p></div>
<div class="para">
<p>Lire aussi the ARECI report de l&#8217;UE.</p></div>
<div class="para">
<p>Attention aux systèmes SCADA.</p></div>
<h5 id="_r_seaux_de_souverainet">Réseaux de souveraineté</h5>
<div class="ilist">
<ul>
<li>ISIS : réseau gouvernemental data homologué CD
<div class="ilist">
<ul>
<li>échange et partage en temps réel d&#8217;informations qualifiées</li>
</ul>
</div>
</li>
<li>RIMBAUD : téléphonie</li>
</ul>
</div>
<h3 id="_avis_commentaire_6">6.2. Avis / commentaire</h3>
<div class="para">
<p>Excellente présentation et super intéressant.</p></div>
<div class="para">
<p>Comme le disait une personne lors des questions, « si le but des terroristes est de foutre le bordel dans la tête des gens, pourquoi ne pas généraliser ce genre de présentation qui montre que l&#8217;on essaie de se préparer, voire d&#8217;anticiper ? ». Et je pense effectivement que ce genre de présentation ferait un excellent premier niveau de défense.</p></div>
</div>
<h2 id="_assurance_et_s_curit_interpr_tation_du_vla_4_van_5_dans_le_domaine_du_logiciel">7. Assurance et sécurité : Interprétation du vla.4/van.5 dans le domaine du logiciel</h2>
<div class="sectionbody">
<div class="para">
<p>Pascal Chour – SGDN/DCSSI</p></div>
<h3 id="_notes_7">7.1. Notes</h3>
<h4 id="_r_f_rentiel_d_valuation">7.1.1. Référentiel d&#8217;évaluation</h4>
<div class="para">
<p>Principes directeurs pour accepter/refuser des demandes d&#8217;évaluations. Évaluation de la confiance dans la sécurité de produits grâce à des référentiels (CC, CSPN…). Ces référentiels donnent une mesure :</p></div>
<div class="ilist">
<ul>
<li>sur la façon de développer</li>
<li>sur la conformité par rapport aux spécifications</li>
<li>sur l&#8217;efficacité des fonctionnalités de sécurité (vla/van)</li>
</ul>
</div>
<div class="para">
<p>Rappel vla.4/van.5 des critères communs : analyse des vulnérabilités.</p></div>
<h4 id="_niveaux_de_confiance">7.1.2. Niveaux de confiance</h4>
<div class="para">
<p>Les niveaux de confiance en critères communs (CC) s&#8217;étalent de EAL2 à EAL7 :</p></div>
<div class="ilist">
<ul>
<li>EAL2 : produit testé structurellement</li>
<li>EAL3 : produit concu, testé et vérifié de manière méthodique</li>
<li>EAL4+ : le « plus » indique un résistance avancée aux attaques en plus du   niveau 4</li>
<li>EAL6/7 : van.5</li>
<li>EAL7 : conception formelle</li>
</ul>
</div>
<div class="para">
<p>Difficulté : estimer le coût.</p></div>
<div class="para">
<p>Pas de définition pour le « basic » : accord tacite.</p></div>
<div class="para">
<p>« Beaucoup de cartes ne résistent pas aux attaques de niveau élémentaire ».</p></div>
<h4 id="_analyse_des_vuln_rabilit_s">7.1.3. Analyse des vulnérabilités</h4>
<div class="para">
<p>Schéma d&#8217;analyse des vulnérabilités :</p></div>
<div class="olist">
<ol>
<li>vulnérabilité potentielle</li>
<li>tests d&#8217;attaque
<div class="ilist">
<ul>
<li>échoue : vulnérabilite potentielle</li>
<li>réussite : cotation
<div class="ilist">
<ul>
<li>&gt; niveau visé : vulnérabilité résiduelle</li>
<li>&lt; niveau visé : vulnérabilite exploitable</li>
</ul>
</div>
</li>
</ul>
</div>
</li>
</ol>
</div>
<div class="para">
<p>Existence de tables permettant la classification.</p></div>
<h4 id="_diff_rence_d_valuation_de_s_curit_des_cartes_puces_par_rapport_au_logiciel">7.1.4. Différence d&#8217;évaluation de sécurité des cartes à puces par rapport au logiciel</h4>
<div class="para">
<p>Les cartes à puces sont traitées de façon spéciale (à cause de l&#8217;historique, Bull CP8 etc., et de la présence des deux premiers acteurs mondiaux en France).</p></div>
<div class="para">
<p>L&#8217;auditeur souligne la sensibilité du secteur des cartes à la sécurité : un peu plus de la moitié des produits sont passés aux CC. Ce qui n&#8217;est pas vrai dans le logiciel mais est probablement dû à quelques différences fondamentales :</p></div>
<div class="olist">
<ol>
<li>les cartes sont probablement la catégorie de produit la plus testée. Les logiciels de leur côté se répartissent en de nombreuses sous-catégories. Il est donc très difficile de synthétiser un retour d&#8217;expérience ; les schémas d&#8217;évaluation pouvant être très différents ;</li>
<li>les cartes évaluées sont en général au niveau VLA4. Les logiciels sont au niveau VLA2 ou VLA3, sauf s&#8217;il y a de nombreuses hypothèses simplificatrices qui vident la certification de son sens ;</li>
<li>les profils de protection de la catégorie carte sont peu nombreux. Ce qui n&#8217;est pas le cas de la catégorie logiciel où des mêmes types de matériel peuvent avoir de nombreux profils. Donc pas de comparaison possible ;</li>
<li>les acteurs du monde des cartes se sentent concernés par les évaluations. Les éditeurs perçoivent plutôt ça comme la façon de disposer d&#8217;un avantage concurrentiel ;</li>
<li>les hypothèses simplificatrices permettent au logiciel d&#8217;atteindre quasi-systématiquement la certification de niveau VLA4, de nombreux chemins d&#8217;attaques étant mis de côté. Ce qui n&#8217;est pas le cas en général pour les cartes ;</li>
<li>la communauté qui travaille sur l&#8217;évaluation des cartes est très active dans la spécification des méthodes d&#8217;évaluation des cartes. Ce qui permet de définir un état de l&#8217;art. Chose qui n&#8217;existe pas dans le logiciel ;</li>
<li>le monde des cartes accepte mal le principe « d&#8217;erreur de construction ». Ce qui est largement accepté dans le logiciel, au mieux comme une fatalité.</li>
</ol>
</div>
<div class="para">
<p>Tout cela pour dire que la certification VLA4 dans le monde du logiciel en particulier mais aussi de manière générale peut être <strong>très</strong> relative puisque deux produits fonctionnellement identiques peuvent avoir la même certification VLA. Mais l&#8217;un grâce à des hypothèses techniques et/ou organisationnelles très fortes, l&#8217;autre non.</div>
<h4 id="_illustration">7.1.5. Illustration</h4>
<div class="para">
<p>S&#8217;ensuivit une illustration présentant une même application, l&#8217;une monolithique, l&#8217;autre modulaire (schéma dans les actes).</p></div>
<div class="para">
<p>L&#8217;idée étant que la conception modulaire inspire une plus grande confiance (à iso-périmètre d&#8217;hypothèses) puisqu&#8217;intuitivement il est plus difficile de compromettre les autres modules à partir d&#8217;une faille dans le premier que dans le cas de l&#8217;architecture monolithique.</p></div>
<div class="para">
<p>Mais d&#8217;autres cas sont possibles :</p></div>
<div class="ilist">
<ul>
<li>complexité du produit (notion toute relative, néanmoins) ;</li>
<li>le multi-couche : un bug en couche <em>n</em> pouvant invalider des  fonctions de sécurité de la couche <em>n+1</em>.</li>
</ul>
</div>
<h4 id="_acceptation_des_demandes_de_certification_vla4">7.1.6. Acceptation des demandes de certification VLA4</h4>
<div class="para">
<p>Pour éviter des dérives, le but est de fournir des règles (appliquées par les schémas français et allemand d&#8217;évaluation). Ces règles sont traduites en huit principes :</p></div>
<div class="olist">
<ol>
<li>la DCSSI peut refuser une demande de certification si elle estime que cela serait trompeur ;</li>
<li>l&#8217;architecture du produit doit contribuer à la sécurité en faisant en sorte que les fonctions de sécurité du produit ne puissent être mises en défaut que si au moins deux vulnérabilités distinctes sont exploitées (voir exemple ci-dessus de défense en profondeur grâce à la modularité) ;</li>
<li>les hypothèses sur l&#8217;environnement technique doivent être réalistes et en tout ou en partie vérifiables ;</li>
<li>les hypothèses sur l&#8217;environnement technique doivent être détaillées. Le développeur doit fournir la preuve du réalisme des hypothèses ;</li>
<li>les hypothèses sur l&#8217;environnement organisationnel doivent être réalistes pour le type de produit concerné (on peut avoir plusieurs niveaux) ;</li>
<li>un produit dont la résistance aux attaques de fonction de sécurité VLA4 ne reposant que sur des hypothèses d&#8217;environnement n&#8217;est pas acceptable ;</li>
<li>une mesure de la complexité du logiciel évalué devrait être fournie et vérifiée par le laboratoire ;</li>
<li>l&#8217;existence de compétences couvrant les fonctionnalités de sécurité du produit chez le développeur devrait être validée ;</li>
<li>avant toute demande de certification de niveau VLA4, le commanditaire devrait valider avec la DCSSI l&#8217;acceptabilité de sa cible de sécurité.</li>
</ol>
</div>
<div class="para">
<p>Des composants TPM sont maintenant évalués : <em>Infinéon</em> et <em>ST</em>. Groupe de travail pour faire la même chose que dans les cartes à puces dans la monétique.</div>
<h3 id="_avis_commentaire_7">7.2. Avis / commentaire</h3>
<div class="para">
<p>Présentation claire et facile à suivre malgré la sécheresse des normes abordées. En substance, « dans les cartes c&#8217;est bien cadré, tout le monde est au niveau et continue à l&#8217;entretenir, on (les laboratoires français et allemand) a réussi à définir un cadre méthodologique qui tient la route et prend le meilleur des CC. Venez pas mettre la bazar en ouvrant la possibilité de certification à des laboratoires qui ne suivraient pas ces règles. Et essayez de les appliquer dans le logiciel, ça lui ferait pas de mal… ».</p></div>
<div class="para">
<p>Les principes me semblent un peu utopiques. Mais plein de bon sens. En tout cas, il est clair qu&#8217;il ne faut pas que cela devienne (plus) un outil marketing.</p></div>
</div>
<h2 id="_s_curit_s_safety_security_multi_niveaux_en_avionique">8. Sécurités (safety/security) multi-niveaux en avionique</h2>
<div class="sectionbody">
<div class="para">
<p>Yves Deswarte – CNRS/LAAS Toulouse</p></div>
<h3 id="_notes_8">8.1. Notes</h3>
<h4 id="_probl_matique">8.1.1. Problématique</h4>
<div class="ilist">
<ul>
<li>Constructeurs s&#8217;occupent surtout de <em>safety</em> (ils ne laissent pas décoller   un avion s&#8217;ils ne sont pas sûrs qu&#8217;il va atterrir). Mais depuis 9/11 ils s&#8217;occupent de <em>security</em>, en particulier vis à vis d&#8217;une malveillance (prise de contrôle).</li>
<li>Approche multi-niveau « naturelle » :
<div class="ilist">
<ul>
<li>toutes les tâches n&#8217;ont pas la même criticité (<em>failure severity</em>)</li>
<li>dépend des systèmes, des moments etc.</li>
</ul>
</div>
</li>
<li>Quelle confiance dans quelles tâches ?
<div class="ilist">
<ul>
<li>validation de la conception (en fonction de la criticité des tâches)</li>
<li>validation crédibilité de l&#8217;implémentation</li>
<li>intégrité (protection des systèmes contre les corruptions)</li>
</ul>
</div>
</li>
<li>cohérence des niveaux entre « <em>task failure severity</em> » (FSL) et   « <em>confidence level</em> » (CL) :
<div class="ilist">
<ul>
<li>pour une tâche : CL(T) ≳ FSL(T)</li>
<li>architecture modulaire : contraintes sur les modules
<div class="olist">
<ol>
<li>pas de tolérance aux fautes : CL(M) ≳ FSL(T)</li>
<li>tolérance aux fautes : M = Σ(composants redondants)       CL(c) ≳ FSL(T) -1 si les défaillances sont indépendantes</li>
</ol>
</div>
</li>
</ul>
</div>
</li>
<li>Isolation et interactions :
<div class="ilist">
<ul>
<li>plusieurs tâches de criticités différentes doivent interagir</li>
<li>de façon sécurisée</li>
</ul>
</div>
</li>
</ul>
</div>
<h4 id="_solutions_2">8.1.2. Solutions</h4>
<div class="olist">
<ol>
<li>Certifier tous les modules au niveau le plus haut (infaisable)</li>
<li>Utiliser des pare-feux unidirectionnels, diodes (trop restrictif, mais fait en pratique, ex. A380) mais dans certains cas, besoin de contourner la diode (le cockpit peut avoir besoin d&#8217;informations venant de la cabine)</li>
<li>Contrôle de flux spécifique (Flow Control Model – Totel 98) :
<div class="ilist">
<ul>
<li>niveaux d&#8217;intégrité</li>
<li>des tâches de même niveau peuvent communiquer entre elles</li>
<li>des tâches de haut niveau peuvent communiquer vers des tâches de bas   niveau</li>
<li>des tâches de bas niveau ne peuvent pas communiquer vers des tâches de   haut niveau (cf. Biba, on peut faire ça avec des diodes)</li>
<li>mais certaines tâches ne sont pas critiques en tant que telles (capteurs,     qui pris séparément ne sont pas crédibles, mais ensemble, suffisamment     de redondance)</li>
<li>passage par des objets spéciaux qui vérifient les flux remontants, avec     des flux sortants dignes de confiance (éventuellement « rien de     confiance ») (validé au niveau qu&#8217;elle traite)</li>
<li>TCB vérifie que ces flux sont bien les seuls qui transitent du bas vers     le haut (validé au niveau le plus haut qu&#8217;elle traite)</li>
</ul>
</div>
</li>
</ol>
</div>
<h4 id="_exemple_pour_la_maintenance">8.1.3. Exemple : pour la maintenance</h4>
<div class="ilist">
<ul>
<li>Plusieurs niveaux de criticité croissants :
<div class="olist">
<ol>
<li>Calculateur de maintenance (embarqué à bord de l&#8217;avion)</li>
<li>Maintenance</li>
<li>Aircraft Information System</li>
<li>Aircraft Control</li>
<li>Flight Control</li>
</ol>
</div>
</li>
<li>Tâches ne communiquent pas entre les niveaux</li>
<li>TCB contrôle les échanges</li>
<li>Complexité inversement proportionnelle à la criticité</li>
<li>Diversification par virtualisation :
<div class="ilist">
<ul>
<li>moniteur de machines virtuelles validées au bon niveau</li>
<li>hardware validé</li>
<li>plusieurs VM, avec plusieurs OS auxquels on ne fait pas confiance   séparément, mais qu&#8217;on estime sûrs ensemble (difficulté de réaliser les   mêmes attaques sur deux OS différents)</li>
</ul>
</div>
</li>
</ul>
</div>
<h4 id="_exemple_pilot_laptop_application">8.1.4. Exemple : pilot laptop application</h4>
<div class="ilist">
<ul>
<li>Laptop non trusté :
<div class="ilist">
<ul>
<li>utilisé par le pilote (internet, etc.)</li>
<li>configuré par les compagnies</li>
<li>pré-chargé en données de vol</li>
</ul>
</div>
</li>
<li>Comment le brancher sur le flight control ?
<div class="ilist">
<ul>
<li>utilisation d&#8217;un moniteur de machines virtuelles ?     → mais validation au niveau « rouge » relativement impossible</li>
<li>passage par un proxy (deux étapes de validation, voire trois)</li>
</ul>
</div>
</li>
</ul>
</div>
<h4 id="_exemple_arsec_project_airbus_laas">8.1.5. Exemple : ArSec Project (Airbus-LAAS)</h4>
<div class="ilist">
<ul>
<li>Mécanismes de tolérance aux fautes implémentés dans des « <em>Validation   Objects</em> »</li>
<li>Mécanismes de contrôle de flux :
<div class="ilist">
<ul>
<li>applications</li>
<li>passerelles</li>
<li>middleware</li>
<li>OS
<div class="olist">
<ol>
<li>comment être sûr que le même code tourne sur des OS différents, et      qu&#8217;ils font bien la même chose ?</li>
</ol>
</div>
</li>
<li>hyperviseur</li>
<li>entrées/sorties</li>
</ul>
</div>
</li>
</ul>
</div>
<h3 id="_avis_commentaire_8">8.2. Avis / commentaire</h3>
<div class="para">
<p>On retrouve plein de concepts liés au MLS avec des cas non seulement concrets mais aussi réels.</p></div>
<div class="para">
<p>Très intéressant.</p></div>
<div class="para">
<p>Et belle présentation, d&#8217;autant qu&#8217;elle n&#8217;était pas prévue.</p></div>
</div>
<h2 id="_panorama_des_architectures_informatiques_s_curis_es_et_de_confiance">9. Panorama des architectures informatiques sécurisées et de confiance</h2>
<div class="sectionbody">
<div class="para">
<p>Guillaume Duc – Orange/FT R&amp;D Ronan Keryel – Institut Telecom/ENSTB</p></div>
<h3 id="_notes_9">9.1. Notes</h3>
<h4 id="_probl_matique_2">9.1.1. Problématique</h4>
<div class="para">
<p>En informatique il existe de nombreux angles d&#8217;attaques (virus, spam, vol/corruption de données, etc.) car structure en plusieurs couches (matériel, OS, protocoles, applications, etc.).</p></div>
<div class="para">
<p>De nombreux travaux ont été réalisés au niveau logiciel :</p></div>
<div class="ilist">
<ul>
<li>algos de chiffrements, intégrité, auth</li>
<li>protocoles (SSL/TLS)</li>
<li>OS sécurisés (micro-noyaux, etc.)</li>
<li>logiciels de sécurité</li>
</ul>
</div>
<div class="para">
<p>Mais quelle sécurité pour le support d&#8217;exécution ?</p></div>
<div class="ilist">
<ul>
<li>informatique de confiance (TCG) : milieu industriel</li>
<li>architectures <em>sécurisées</em> : milieu académique et militaire</li>
</ul>
</div>
<h4 id="_informatique_de_confiance_tcg">9.1.2. Informatique de confiance (TCG)</h4>
<div class="ilist">
<ul>
<li>s&#8217;assurer que le système informatique se comporte de façon bien définie</li>
<li>s&#8217;assurer de la résistance à des attaques logiques et <em>quelques</em> attaques   physiques</li>
<li>exemples d&#8217;utilisation :
<div class="ilist">
<ul>
<li>vérification si un système distant est « de confiance » (e-banking, VPN     etc.)</li>
<li>protection de données locales contre le vol (logique/physique)</li>
</ul>
</div>
</li>
</ul>
</div>
<h5 id="_tcg">TCG</h5>
<div class="ilist">
<ul>
<li>produit des spécifications de composants pour l&#8217;établissement d&#8217;une certaine   confiance</li>
<li>différents groupes de travail pour les différents domaines (laptops,   serveurs, mobiles, virtualisation…)</li>
<li>fonctions de base (racines de confiance) :
<div class="ilist">
<ul>
<li>prise de mesures sur des composants susceptibles d&#8217;avoir un impact sur     la sécurité (BIOS, boot loader…)</li>
<li>stockage sécurisé de ces mesures (sécurité physique et logique) et     d&#8217;autres informations</li>
<li>besoin de certifier ces valeurs vis à vis d&#8217;un demandeur, y compris à     distance</li>
</ul>
</div>
</li>
</ul>
</div>
<h5 id="_tpm">TPM</h5>
<div class="ilist">
<ul>
<li>puce soudée à la carte mère (protection physique)</li>
<li>mesures incrémentales des éléments intervenants lors du boot</li>
<li>rapport des mesures à une entité distante</li>
<li>stockage sécurisé, éventuellement lié à l&#8217;état de la plate-forme (afin de   ne pas le divulguer si l&#8217;état n&#8217;est pas sûr)</li>
<li>prise en compte de la privacy (différentes clés pour différentes actions)</li>
</ul>
</div>
<h5 id="_autres_groupes">Autres groupes</h5>
<div class="ilist">
<ul>
<li>mobile : TPM = MTM
<div class="ilist">
<ul>
<li>plusieurs propriétaires (constructeur, opérateur, utilisateur)</li>
<li><em>secure boot</em> pour garantir la voie radio</li>
</ul>
</div>
</li>
<li>« <em>trusted network connect</em> »
<div class="ilist">
<ul>
<li>spécifications pour permettre/interdire   l&#8217;accès à un réseau en fonction de la confiance dans la plate-forme cliente (802.1X)</li>
</ul>
</div>
</li>
<li>« <em>Trusted Execution Computing</em> »
<div class="ilist">
<ul>
<li>plus large que TPM, étendu à tout le système : protection de l&#8217;exécution,   des entrées/sorties, de l&#8217;affichage, etc.</li>
<li>utilise TPM + autres composants protégés :
<div class="olist">
<ol>
<li>chipset : DMA</li>
<li>CPU : partitionnement</li>
<li>chiffrement des entrées/sorties (et donc intégration dans les     périphériques)</li>
</ol>
</div>
</li>
</ul>
</div>
</li>
</ul>
</div>
<h5 id="_critiques">Critiques</h5>
<div class="ilist">
<ul>
<li>image sulfureuse (TCPA/Palladium, DRM, Microsoft)</li>
<li>fournisseurs de services peuvent décider quels programmes l&#8217;utilisateur   peut exécuter pour y accéder (qui fait les listes, etc.)</li>
<li>compatibilité avec modes de distributions des logiciels libres   (recompilation des sources, comment certifier ?)</li>
<li>entrave à l&#8217;interopérabilité</li>
</ul>
</div>
<h4 id="_architectures_s_curis_es">9.1.3. Architectures sécurisées</h4>
<h5 id="_motivations">Motivations</h5>
<div class="ilist">
<ul>
<li>Confiance relative dans le logiciel (OS très gros, etc.)</li>
<li>Attaques matérielles possibles :
<div class="ilist">
<ul>
<li>lecture/modification mémoire</li>
<li>espionnage des bus du CPU</li>
<li>attaques directes contre le CPU</li>
<li>moyens importants mais pas irréalisable (cf. MIT/Xbox)</li>
</ul>
</div>
</li>
<li>Peu de supports d&#8217;exécution sécurisés</li>
<li>Attaquant = contrôle total (sauf le CPU)</li>
<li>Application : cloud computing (peu de confiance dans les nœuds)
<div class="ilist">
<ul>
<li>perturbations (résultats erronnés)</li>
<li>espionnage</li>
</ul>
</div>
</li>
</ul>
</div>
<h5 id="_mod_le_de_s_curit">Modèle de sécurité</h5>
<div class="ilist">
<ul>
<li>Il doit :
<div class="ilist">
<ul>
<li>garantir la confidentialité</li>
<li>garantir l&#8217;intégrité</li>
<li>garder des performances raisonnables</li>
</ul>
</div>
</li>
</ul>
</div>
<h5 id="_deux_grandes_cat_gories">Deux grandes catégories</h5>
<div class="olist">
<ol>
<li>Co-processeurs :
<div class="ilist">
<ul>
<li>environnement d&#8217;exécution blindé (smartcards, etc.)</li>
<li>problèmes de performances</li>
<li>peu évolutif</li>
</ul>
</div>
</li>
<li>Exécution de programmes chiffrés, chiffrement de bus
<div class="ilist">
<ul>
<li>tout ce qui rentre dans le processeur est chiffré (rappel : on fait     confiance au CPU)</li>
<li>interface de chiffrement/déchiffrement entre le processeur et le reste     du monde</li>
<li>gros ajouts par rapport à un système classique</li>
<li>performances très honnêtes (~ 3.8% de perte)</li>
<li>Ex : CryptoPAGE</li>
</ul>
</div>
</li>
</ol>
</div>
<h5 id="_synth_se">Synthèse</h5>
<div class="ilist">
<ul>
<li>architectures sécurisées <em>peuvent</em> répondre aux problématiques de   l&#8217;informatique de confiance</li>
<li>mécanisme d&#8217;attestation</li>
<li>pas besoin de mesurer l&#8217;état de la plate-forme (processus sécurisé ne   peut s&#8217;exécuter que sur processeur sécurisé)</li>
</ul>
</div>
<h4 id="_conclusion_4">9.1.4. Conclusion</h4>
<div class="ilist">
<ul>
<li>sujet d&#8217;actualité</li>
<li>nombreuses applications potentielles</li>
<li>architectures de confiance déjà disponibles (TPM)</li>
<li>augmentation du nombre de transistors (Loi de Moore), possibilité d&#8217;en   dédier à la sécurité</li>
<li>beaucoup de travail restant pour l&#8217;industrialisation</li>
<li>garder une éthique sur les usages
<div class="ilist">
<ul>
<li>cf. problèmes TCPA/Palladium</li>
<li>acceptabilité des technologies</li>
<li>perturbation de l&#8217;écosystème informatique (renforcement de monopoles, etc. ?)</li>
<li>dé-responsabilisation de l&#8217;utilisateur, est-ce qu&#8217;il reste libre de ce     qu&#8217;il peut exécuter ?</li>
</ul>
</div>
</li>
</ul>
</div>
<h3 id="_avis_commentaire_9">9.2. Avis / commentaire</h3>
<div class="para">
<p>Présentation pas inintéressante car reprenant des points présentés dans d&#8217;autres conférences. De même le croisement TCG / architecture sécurisée est intéressant.</p></div>
<div class="para">
<p>Néanmoins, et ce sont les questions/réponses qui l&#8217;ont fait apparaître, le projet d&#8217;architecture sécurisée à la base de cette présentation est complètement « virtuelle » (i.e. <strong>rien</strong> de concret) : il s&#8217;agit d&#8217;une architecture dérivée de l&#8217;architecture CryptoPAGE testée en simulateur (ce qui n&#8217;enlève rien à la performance technique). De manière générale, la moitié des architectures sécurisées présentées sont purement virtuelles.</div>
<div class="para">
<p>Enfin, la motivation derrière ce projet d&#8217;architecture sécurisée est de pouvoir appliquer les DRM sans risque de reverse-engineering…</p></div>
<div class="para">
<p>Bref, le papier est plus intéressant que le projet lui-même, que je perçois comme plein de vide.</p></div>
</div>
<h2 id="_apports_de_la_virtualisation_pour_une_plate_forme_informatique_de_confiance">10. Apports de la virtualisation pour une plate-forme informatique de confiance</h2>
<div class="sectionbody">
<div class="para">
<p>Sébastien Gay – DGA/CELAR</p></div>
<h3 id="_notes_10">10.1. Notes</h3>
<div class="ilist">
<ul>
<li>réalisation d&#8217;une architecture de confiance très difficile (difficile de rendre un OS constitué de millions de lignes digne de confiance s&#8217;appuyant lui-même sur des plate-formes physiques dont les mécanismes de sécurité sont pour le moins discutables [voir en particulier la conférence § <em>Quelle confiance dans les composants matériels ?</em>])</li>
<li>amélioration grâce à la virtualisation :
<div class="ilist">
<ul>
<li>fonctionnalité de cloisonnement proche du matériel et hors OS</li>
<li>possibilité de se placer en coupure d&#8217;appels aux périphériques</li>
</ul>
</div>
</li>
</ul>
</div>
<h4 id="_virtualisation">10.1.1. Virtualisation</h4>
<h5 id="_historique">Historique</h5>
<div class="ilist">
<ul>
<li>vieille technologie (IBM dans les années 60, mainframes)</li>
<li>boom depuis 2000</li>
</ul>
</div>
<h5 id="_objectifs">Objectifs</h5>
<div class="ilist">
<ul>
<li>abstraction entre matériel et OS</li>
<li>plusieurs OS sur une machine physique (partage de ressources physiques)</li>
<li>sous contrôle d&#8217;un moniteur (hyperviseur…)</li>
</ul>
</div>
<h5 id="_diff_rents_principes">Différents principes</h5>
<div class="ilist">
<ul>
<li>isolation (chroot, jail, vserver) de contextes d&#8217;exécutions au sein d&#8217;un   même OS. Difficile d&#8217;avoir un bon niveau d&#8217;assurance au niveau du cloisonnement, difficulté d&#8217;auditer tout le noyau (le noyau est commun à l&#8217;ensemble des partitions)</li>
<li>émulation
<div class="ilist">
<ul>
<li>plate-forme matérielle (qemu) : simulation intégrale de l&#8217;architecture.       Intéressant mais grosses pertes de performances</li>
<li>émulation d&#8217;APIs (wine, cygwin) : trop intégré à l&#8217;OS hôte</li>
</ul>
</div>
</li>
<li>virtualisation : partage d&#8217;un pool de ressources matérielles, on n&#8217;émule que   ce qui est vraiment nécessaire
<div class="ilist">
<ul>
<li>même architecture matériel host/guest</li>
<li>performances acceptables, bon niveau de cloisonnement</li>
<li>bonne solution a priori pour la sécurité</li>
<li>pas de développement avec des soucis de sécurité</li>
</ul>
</div>
</li>
</ul>
</div>
<h5 id="_virtualiseur">Virtualiseur</h5>
<div class="ilist">
<ul>
<li>abstraction mise en place par un moniteur de machines   virtuelles ou un hyperviseur ou <em>virtual machine monitor</em> (VMM)</li>
<li>il doit respecter trois principes :
<div class="ilist">
<ul>
<li>équivalence : le comportement d&#8217;une application exécutée dans le VMM doit être le même que s&#8217;il était exécuté directement sur le matériel → transparence</li>
<li>performance : la très large majorité des instructions doit être exécutée directement sur la machine physique sans intervention du VMM</li>
<li>cloisonnement : VMM doit gérer l&#8217;ensemble des accès au matériel</li>
</ul>
</div>
</li>
</ul>
</div>
<h5 id="_diff_rents_types_de_partage_des_ressources">Différents types de partage des ressources</h5>
<div class="ilist">
<ul>
<li>partage temporel de certaines ressources (CPU)</li>
<li>partitionnement de certaines autres (mémoire, stockage)</li>
<li>gestion de l&#8217;attribution des interfaces d&#8217;entrée/sortie</li>
</ul>
</div>
<h5 id="_plusieurs_types_d_hyperviseurs">Plusieurs types d&#8217;hyperviseurs</h5>
<div class="olist">
<ol>
<li><em>type I</em> : directement au dessus de la machine physique avec une instance de contrôle</li>
<li><em>type II</em> : lancé par un OS hôte dont il utilise les services
<div class="ilist">
<ul>
<li>moins bien d&#8217;un point de vue sécurité</li>
</ul>
</div>
</li>
</ol>
</div>
<h4 id="_fonctionnement_de_la_virtualisation">10.1.2. Fonctionnement de la virtualisation</h4>
<div class="para">
<p>Le principe dit « trap and emulate » :</p></div>
<div class="ilist">
<ul>
<li>possibilité d&#8217;interrompre l&#8217;exécution d&#8217;un programme en cas de   modification de l&#8217;état du processeur
<div class="ilist">
<ul>
<li>exécution d&#8217;un code dans un environnement non privilégié</li>
<li>interruption lors du passage en mode privilégié, et passage à l&#8217;hyperviseur</li>
</ul>
</div>
</li>
<li>noyau d&#8217;un OS
<div class="ilist">
<ul>
<li>besoin de changer l&#8217;état du CPU</li>
</ul>
</div>
</li>
</ul>
</div>
<h4 id="_application_sur_l_architecture_x86">10.1.3. Application sur l&#8217;architecture x86</h4>
<div class="para">
<p>Quatre niveaux d&#8217;exécution (<em>ring</em>) :</div>
<div class="ilist">
<ul>
<li>ring 0 : instructions privilégiées</li>
<li>trap &amp; emulate : déplacement du noyau de l&#8217;OS virtualisé (ring 1 en x86_32,   ring3 en x86_64)</li>
</ul>
</div>
<h5 id="_limites">Limites</h5>
<div class="ilist">
<ul>
<li>17 instructions privilégiées qui ne trappent pas correctement si exécutées ailleurs qu&#8217;en ring0</li>
<li>pas « classiquement virtualisable »</li>
<li>pertes de performances importantes dues aux changements de contexte</li>
</ul>
</div>
<h5 id="_solutions_3">Solutions</h5>
<div class="ilist">
<ul>
<li>traduction binaire dynamique
<div class="ilist">
<ul>
<li>analyse et modification du code à la volée (remplacement des 17 instructions pénibles)</li>
<li>permet de faire tourner n&#8217;importe quel OS sans adaptation</li>
<li>complexe à réaliser, complexe à évaluer, aggrave les problèmes de performances</li>
<li>quelques cas difficiles à traiter (codes automodifiants)</li>
</ul>
</div>
</li>
<li>para-virtualisation (xen, hyper-v, paravirt-ops Linux)
<div class="ilist">
<ul>
<li>OS hôte coopère avec hyperviseur (noyau modifié)</li>
<li>hyperviseur fournit une API pour ne pas avoir à appeler les 17 instructions</li>
<li>moins de lignes de code, plus facile à évaluer</li>
<li>mutualisation des appels aux modes privilégiés</li>
</ul>
</div>
</li>
<li>virtualisation matérielle (VT / AMD-V)
<div class="ilist">
<ul>
<li>traiter les limitations x86 au niveau de la puce (ajout d&#8217;un mode « VMX root »</li>
<li>fonctionnalités complémentaires facilitant la virtualisation</li>
<li>amélioration des performances</li>
<li>mécanismes de sécurité supplémentaire</li>
<li>hyperviseur beaucoup plus léger</li>
<li>pas de modification des OS</li>
<li>besoin d&#8217;un matériel adapté</li>
<li>niveau de confiance à apporter au matériel plus important et mécanismes dédiés</li>
</ul>
</div>
</li>
</ul>
</div>
<h4 id="_vuln_rabilit_s_tat_de_l_art">10.1.4. Vulnérabilités / État de l&#8217;art</h4>
<div class="ilist">
<ul>
<li>OS virtualisé est soumis aux même menaces qu&#8217;un OS normal</li>
<li>limite pire, parce que les gens y font moins attention (un OS virtualisé   doit donc être sécurisé de la même manière qu&#8217;un OS normal)</li>
<li>problématiques de détection (cf. analyse des malwares)
<div class="ilist">
<ul>
<li>différences de comportement (analyse temporelle, résultats d&#8217;exécution)</li>
</ul>
</div>
</li>
<li>impossible à rendre complètement transparent</li>
</ul>
</div>
<h5 id="_mise_en_d_faut_du_cloisonnement">Mise en défaut du cloisonnement</h5>
<div class="ilist">
<ul>
<li>entre deux machines</li>
<li>entre l&#8217;host et le guest</li>
<li>entre le guest et le VMM</li>
<li>type de virtualisation important (type I en coupure, alors que type II tout est mélangé)</li>
<li>mécanismes de communication (vmware-tools, etc.)</li>
<li>problèmes d&#8217;implémentation
<div class="ilist">
<ul>
<li>mécanisme complexe</li>
<li>partage des ressources</li>
<li>partage des périphériques</li>
<li>nombreux problèmes et vulnérabilités reportés (fuzzing, etc.) (y compris   sur des type I)</li>
</ul>
</div>
</li>
<li>problèmes de conception : pas fait pour la sécurité dès le départ
<div class="ilist">
<ul>
<li>Xen permet l&#8217;établissement de canaux cachés entre instances</li>
<li>trade-off performances. vs. sécurité</li>
<li>augmentation de la taille et des fonctionnalités</li>
<li>API généraliste pour tous les types d&#8217;OS hôtes</li>
</ul>
</div>
</li>
</ul>
</div>
<h5 id="_s_curit_mat_rielle">Sécurité matérielle</h5>
<div class="para">
<p>Hyperviseur repose au final sur le matériel qui peut poser problème</p></div>
<div class="ilist">
<ul>
<li>DMA</li>
<li>bugs CPU et en particulier quid de la documentation de modification du microcode des CPU ?, instructions non documentées, mode de fonctionnement (mode de maintenance SMM, ce mode autorisant un accès complet à la mémoire).</li>
<li>détournement de fonctionalités du chipset (même avec des fonctionnalités IOMMU)</li>
<li>périphériques (commandes constructeur des disques durs)</li>
<li>mémoire rémanente (pas ou peu de documentation sur les protocoles d&#8217;accès   aux mémoires des écrans, clavier, souris, etc.)</li>
<li>firmwares : boîtes (très) noires (et UEFI n&#8217;améliorera pas forcément les   choses)</li>
</ul>
</div>
<h5 id="_zone_de_confiance">Zone de confiance</h5>
<div class="para">
<p>Besoin d&#8217;un OS pour piloter (type I) ou héberger (type II) le mécanisme de virtualisation : cet OS est critique.</p></div>
<div class="ilist">
<ul>
<li>attention particulière</li>
<li>deux optiques
<div class="olist">
<ol>
<li>réutilisation d&#8217;un micro-noyau minimaliste implémentant uniquement les fonctions souhaitées</li>
<li>réutilisation d&#8217;un OS complet durci et sans fonctionnalités inutiles</li>
</ol>
</div>
</li>
<li>« découpage » de l&#8217;OS en domaines</li>
</ul>
</div>
<h5 id="_rootkits_base_de_m_canismes_de_virtualisation">Rootkits à base de mécanismes de virtualisation</h5>
<div class="ilist">
<ul>
<li>très à la mode (bluepill etc.)</li>
<li>malware se transforme en hyperviseur pour virtualiser l&#8217;OS</li>
<li>détection difficile
<div class="ilist">
<ul>
<li>depuis l&#8217;OS, possible mais difficile</li>
<li>virtualiser le plus tôt possible (course)</li>
<li>utilisation du TPM (mais virtualisation du TPM ?)</li>
</ul>
</div>
</li>
</ul>
</div>
<h4 id="_exemples_d_utilisation">10.1.5. Exemples d&#8217;utilisation</h4>
<div class="ilist">
<ul>
<li>renforcement de la sécurité d&#8217;un OS : isoler certaines fonctions   critiques (AV, crypto, I/O sensibles). Deux possibilités :
<div class="olist">
<ol>
<li>intégration de ces fonctionalités dans l&#8217;hyperviseur (mais augmentation de sa taille et puis il faudrait aussi mettre les drivers)</li>
<li>utilisation d&#8217;une zone de confiance avec un OS dédié et minimaliste avec modules de sécurité et drivers (solution plus réaliste)</li>
</ol>
</div>
</li>
<li>multiplications d&#8217;instances invitées (MLS) (généralisation de la solution 2   précédente)
<div class="ilist">
<ul>
<li>une instance par niveau de sécurité</li>
<li>voir les actes pour les produits/projets</li>
</ul>
</div>
</li>
<li>durcissement de serveur : niveau d&#8217;assurance moindre puisqu&#8217;aux faiblesses   liées au matériel, il faut ajouter celles liées au VMM…</li>
<li>virtualisation de DMZ (appliances)
<div class="ilist">
<ul>
<li>gain en granularité</li>
<li>mais en cas de faille dans le mécanisme de virtualisation, toute la DMZ     est compromise</li>
</ul>
</div>
</li>
</ul>
</div>
<h4 id="_conclusion_5">10.1.6. Conclusion</h4>
<div class="ilist">
<ul>
<li>technologies « pleine de promesses »</li>
<li>cloisonnement local, proche du matériel, plus facile à évaluer que les autres</li>
<li>hyperviseurs grands publics pas vraiment développés avec des objectifs de sécurité</li>
<li>problématique commence à être prise en compte</li>
</ul>
</div>
<h3 id="_avis_commentaire_10">10.2. Avis / commentaire</h3>
<div class="para">
<p>Encore une super présentation. Bien complémentaire des conférences multi-niveau et confiance dans le matériel.</p></div>
<div class="para">
<p>Pas de secret : la virtualisation peut ajouter de la sécurité si le reste est là. Sans être la solution ultime. Mais bien combinée avec du durcissement avancé, ça peut commencer à faire des trucs sympas (un des produits en MLS est en cours d&#8217;évaluation EAL6+).</p></div>
</div>
<h2 id="_composant_cryptographique_tpm_retours_d_exp_rience_et_perspectives">11. Composant cryptographique TPM : retours d&#8217;expérience et perspectives</h2>
<div class="sectionbody">
<div class="para">
<p>Frédéric Rémi – AMOSSYS Goulven Guiheux – AMOSSYS</p></div>
<h3 id="_notes_11">11.1. Notes</h3>
<div class="para">
<p>La <em>trusted computing platform alliance</em> (TCPA) devenue le <em>trusted computing group</em> (TCG) a plus de 130 sociétés membre.</div>
<h4 id="_revue_du_tpm_et_services_intrins_ques">11.1.1. Revue du TPM et services intrinsèques</h4>
<div class="para">
<p>Composant cryptographique esclave sur carte mère, sur bus LPC (bas débit) et maintenant south bridge dans le ICH10 et bientôt dans le CPU.</p></div>
<div class="para">
<p>Soudé ou non.</p></div>
<div class="para">
<p>Principaux constructeurs : STElectronic, Infinéon, Atmel, Broadcom, Intel.</p></div>
<div class="para">
<p>USD5 pièce.</p></div>
<div class="para">
<p>Très très répandu.</p></div>
<h5 id="_architecture_interne">Architecture interne</h5>
<div class="ilist">
<ul>
<li>durcissement de la puce</li>
<li>module I/O (chiffre/déchiffre les flux)</li>
<li>module <em>non-volatile storage</em> : contient
<div class="ilist">
<ul>
<li>la <em>endorsment key</em> (EK) : clé asymétrique dont la partie publique est     certifiée par le fabricant. Donc ID unique du TPM</li>
<li>la <em>storage root key</em> (SRK) : clé racine dont la partie privée est    stockée dans une partie protégée de la mémoire non-volatile et la partie    publique est utilisée pour le chiffrement de données ou de  clés filles</li>
<li><em>owner authorization data</em> : hash de 160 bits créé (comme la SRK) lors    de l&#8217;initialisation / appropriation. Sert de mot de passe entre le composant    et son propriétaire légitime</li>
</ul>
</div>
</li>
<li>module <em>volatile storage</em></li>
<li>module <em>plateform configuration register</em> (PCR) :  registres de 160 bits   permettant de stocker l&#8217;état de la plate-forme</li>
<li>module <em>attestation identity key</em> (AIK) : les clés AIK ne sont que des   alias pour protéger l&#8217;EK et peuvent être stockées hors du TPM</li>
<li>moteurs cryptographiques : RSA, HMAC, SHA1, RNG</li>
<li>communications internes chiffrées</li>
</ul>
</div>
<h5 id="_services_intrins_ques">Services intrinsèques</h5>
<div class="ilist">
<ul>
<li>unicité de la plate-forme</li>
<li>stockage sécurisé</li>
<li>création de clés cryptographiques</li>
<li>chiffrement/signature (asymétrique)</li>
<li>génération d&#8217;aléa</li>
</ul>
</div>
<h5 id="_avantages_inconv_nients">Avantages/inconvénients</h5>
<div class="ilist">
<ul>
<li>opération crypto et stockage sécurisé de la clé privée dans le chip</li>
<li>protection matérielle et logicielle (selon les spécifications…)</li>
<li>mais fonctionnement en boîte noire, difficile à auditer (quid du RNG ?)</li>
</ul>
</div>
<h5 id="_utilisations">Utilisations</h5>
<div class="para">
<p>TCG Software Stack (TSS)</p></div>
<div class="ilist">
<ul>
<li>communications</li>
<li>synchronisation (pas de multi-threading)</li>
<li>gestion des clés</li>
<li>authentification</li>
<li>multi-plate-forme (Windows/Linux)</li>
</ul>
</div>
<h4 id="_service_de_haut_niveau">11.1.2. Service de haut niveau</h4>
<h5 id="_mesure_de_l_int_grit_de_la_plate_forme">Mesure de l&#8217;intégrité de la plate-forme</h5>
<div class="para">
<p>Chaîne de confiance depuis la phase de boot : chaque élément effectue des mesures et les vérifie sur son successeur avant de lui passer la main.</p></div>
<div class="olist">
<ol>
<li>CRTM : racine de confiance (premiers octets du BIOS) se mesure lui-même, puis le reste du BIOS, et lui passe la main</li>
<li>BIOS</li>
<li>boot-loader</li>
<li>OS</li>
<li>applications</li>
</ol>
</div>
<div class="para">
<p>Mesure ?</p></div>
<div class="ilist">
<ul>
<li>stockée dans le SML</li>
<li>SHA-1 (processus)</li>
<li>extension d&#8217;un registre PCR
<div class="ilist">
<ul>
<li>permet de chaîner l&#8217;ensemble des mesures</li>
<li>vérification de l&#8217;intégrité du fichier SML</li>
</ul>
</div>
</li>
</ul>
</div>
<div class="para">
<p>Sécurité du schéma repose sur la sécurité de SHA-1 (collision en 2<sup>63</sup>)</div>
<h5 id="_attestation_distance">Attestation à distance</h5>
<div class="ilist">
<ul>
<li>offre l&#8217;opportunité à un tiers distant de vérifier l&#8217;état d&#8217;une plate-forme</li>
<li>principe de challenge/response (envoi des fichiers SML et PCR signés avec   une clé AIK)</li>
<li>génération pour chaque vérifieur de clés filles RSA, <em>attestation identity   key signée</em> (AIK) par EK</li>
<li>deux protocoles :
<div class="olist">
<ol>
<li>v1.1 : AC privée pour la certification des AIK
<div class="ilist">
<ul>
<li>anonymat (collusion AC privées et vérifieurs)</li>
<li>disponibilité, gestion des AC</li>
</ul>
</div>
</li>
<li>v1.2: DAA (Direct Anonymous Attestation)
<div class="ilist">
<ul>
<li>protocoles zero-knowledge</li>
</ul>
</div>
</li>
</ol>
</div>
</li>
</ul>
</div>
<h5 id="_stockage_s_curis_trousseau_de_cl_s">Stockage sécurisé, trousseau de clés</h5>
<div class="para">
<p>Plusieurs types de clés RSA :</p></div>
<div class="olist">
<ol>
<li>signature</li>
<li>chiffrement</li>
<li>scellement / stockage</li>
</ol>
</div>
<div class="para">
<p>Certaines clés non transférables d&#8217;une plate-forme à une autre (unicité du TPM).</p></div>
<div class="ilist">
<ul>
<li>Chaque clé est protégée (scellée) par une clé mère</li>
<li>Clé racine (SRK, <em>storage root key</em>) peut protéger une infinité de clés stockées à l&#8217;extérieur du TPM (chiffrées)</li>
<li>utilisation d&#8217;une clé peut être conditionnée :
<div class="ilist">
<ul>
<li>passphrase</li>
<li>passphrase clé parente</li>
<li>état du TPM</li>
</ul>
</div>
</li>
</ul>
</div>
<h4 id="_retex">11.1.3. RETEX</h4>
<div class="para">
<p>TrouserS, integrity measurement architecture (IMA), trusted grub, ecryptfs</p></div>
<div class="para">
<p>Expertise technique, temps contraint, aspects logiciels (inspiré du schéma de certification CSPN de la DCSSI).</p></div>
<h5 id="_trusted_grub">Trusted grub</h5>
<div class="para">
<p>boot-loader, mesure de l&#8217;OS qui va être lancé ne fait que des mesures, prend pas de décisions (dans la branche testée)</p></div>
<div class="ilist">
<ul>
<li>se mesure lui-même (stage 1.5 et 2, 1 est mesuré par le bios)</li>
<li>fichier de config</li>
<li>noyau et initrd</li>
<li>possibilité de donner des fichiers à mesurer</li>
<li>problèmes de programmation : processus d&#8217;extension non-réalisé donc il ne   peut pas vérifier l&#8217;intégrité du SML</li>
</ul>
</div>
<h5 id="_ima">IMA</h5>
<div class="para">
<p>Patch du noyau Linux fait par IBM</p></div>
<div class="ilist">
<ul>
<li>mesure automatique à l&#8217;exécution (exe, pilotes, shared libs)</li>
<li>transparent pour l&#8217;utilisateur</li>
<li>pas de mécanisme de vérification des mesures vs. une base de référence (pas   de prise de décision)</li>
</ul>
</div>
<h5 id="_trousers">Trousers</h5>
<div class="ilist">
<ul>
<li>implémentation libre de TSS (85 % des spécifications de la v1.2 : le   DAA/zero-knowledge reste à implémenter)</li>
<li>dédié au pilotage TPM</li>
<li>stade prototype</li>
<li>pas de protection contre les attaques de la littérature</li>
<li>API hooking pour récupérer des infos sensibles</li>
</ul>
</div>
<h5 id="_ecryptfs">eCryptfs</h5>
<div class="ilist">
<ul>
<li>couche de chiffrement symétrique FS</li>
<li>une clé de chiffrement symétrique par fichier</li>
<li>chaque clé est scellée par TPM (y compris au niveau de l&#8217;état des registres :   le scellement est donc conditionné à l&#8217;état des PCR)</li>
<li>auth avec TPM non conforme aux spécifications</li>
<li>outil d&#8217;expert (connaissances approfondies du TPM, registres PCR, etc.)</li>
<li>quelques bugs</li>
<li>pas assez mature pour de la production</li>
</ul>
</div>
<h4 id="_conclusion_6">11.1.4. Conclusion</h4>
<div class="ilist">
<ul>
<li>Technologie prometteuse pour la sécurisation des architectures
<div class="ilist">
<ul>
<li>services cryptos à bas coût</li>
<li>attestation distante avec anonymat</li>
</ul>
</div>
</li>
<li>Manque de maturité
<div class="ilist">
<ul>
<li>non conformité par rapport aux spécifications</li>
<li>problèmes de compatibilité matérielles de certains composants</li>
<li>opacité des spécifications (« boîte noire ») et trop haut-niveau permettant trop d&#8217;interprétations</li>
</ul>
</div>
</li>
</ul>
</div>
<div class="para">
<p>Est-il réaliste de partir du principe que les CRTM soient immuables ? (problème d&#8217;accès physique à la machine).</p></div>
<div class="para">
<p>La génération RNG en usage interne est noire. Elle est analysée pour la certification qui est faite pour les puces, mais quid des autres ?</p></div>
<div class="para">
<p>Le principal reproche porte sur la partie d&#8217;attestation à distance qui peut être utilisée pour empêcher l&#8217;utilisation de logiciels « concurrents ».</p></div>
<h3 id="_avis_commentaire_11">11.2. Avis / commentaire</h3>
<div class="para">
<p>Encore une présentation super intéressante. J&#8217;avais l&#8217;impression de nettement mieux comprendre ce qu&#8217;est le TPM et donc une partie des enjeux derrière. Ceci dit, la partie évaluation de la présentation, me laisse le sentiment que tout cela n&#8217;est pas encore prêt à être mis en production.</p></div>
<div class="para">
<p>C&#8217;est clairement le genre de présentation qui peut aider à faire tomber des <em>a priori</em>.</div>
</div>
<h2 id="_efficient_techniques_for_securing_off_chip_memory">12. Efficient techniques for securing off-chip memory</h2>
<div class="sectionbody">
<div class="para">
<p>Vladimir Kolesnikov – Bell Labs NJ</p></div>
<h3 id="_notes_12">12.1. Notes</h3>
<h4 id="_challenge">12.1.1. Challenge</h4>
<div class="ilist">
<ul>
<li>Hardware operation in hostile environment. Protect against attacker which   has full control over the device (cf. iphone, xbox, etc.)</li>
<li>Protection of:
<div class="ilist">
<ul>
<li>software and other IP</li>
<li>device entrusted secrets</li>
<li>integrity of operation of device</li>
</ul>
</div>
</li>
<li>Enforcement :
<div class="ilist">
<ul>
<li>DRM</li>
<li>business model</li>
</ul>
</div>
</li>
</ul>
</div>
<h4 id="_solution_system_on_chip_soc">12.1.2. Solution : system on chip (SoC)</h4>
<div class="ilist">
<ul>
<li>assumed infeasible to break inside standard SoC</li>
<li>protection of interfaces ?</li>
<li>sufficient hardware support to provide :
<div class="ilist">
<ul>
<li>secure boot</li>
<li>secure execution with insecure ram</li>
</ul>
</div>
</li>
<li>but SoC cannot embed enough memory so it must work with off-ship DRAM</li>
</ul>
</div>
<h5 id="_lightweight_crypto_based_memory_controller">Lightweight crypto-based memory controller</h5>
<div class="ilist">
<ul>
<li>protect against RE and tampering</li>
<li>strong security, minimal hardware overhead</li>
<li>rigorous crypto design &amp; analysis</li>
<li>very small footprint → FPGA</li>
</ul>
</div>
<div class="para">
<p>protection against replay attacks</p></div>
<h5 id="_design">Design</h5>
<div class="ilist">
<ul>
<li>fast, small, suitable for FPGA</li>
<li>minimal performance impact
<div class="ilist">
<ul>
<li>no on-chip verification data</li>
<li>no hash-tree mac</li>
<li>small DRAM overhead (15 %) : each bit of MAC stored in DRAM represents    overhead from a user point of view</li>
</ul>
</div>
</li>
<li>security trade-off (not full protection against replay attacks)
<div class="ilist">
<ul>
<li>heuristics to minimize the risk</li>
</ul>
</div>
</li>
<li>symmetric equivalent of public key signature
<div class="ilist">
<ul>
<li>secret key to sign and verify</li>
<li>cannot sign without secret key</li>
</ul>
</div>
</li>
<li>None-based MAC</li>
<li>PRNG AES-based (output undistinguishable from random)</li>
</ul>
</div>
<h3 id="_avis_commentaire_12">12.2. Avis / commentaire</h3>
<div class="para">
<p>Solution probablement intéressante pour un certain nombre de constructeurs.</p></div>
<div class="para">
<p>Le principal de la présentation était de démontrer la faisabilité d&#8217;une solution légère et adaptable à des environnements dont le CPU n&#8217;est pas un quad-core. Le papier présente toutes les astuces et algorithmes utilisés pour arriver à une solution efficace, voire efficiente.</p></div>
<div class="para">
<p>Je dois reconnaître que passé les dix premières minutes mon attention fut « suspended ».</p></div>
</div>
<h2 id="_environnement_mat_riel_de_confiance_et_s_curit_des_protocoles_distribu_s">13. Environnement matériel de confiance et sécurité des protocoles distribués</h2>
<div class="sectionbody">
<div class="para">
<p>Céline Burgod – XLIM</p></div>
<h3 id="_notes_13">13.1. Notes</h3>
<div class="ilist">
<ul>
<li>nœud
<div class="ilist">
<ul>
<li>hôte non digne de confiance car sous le contrôle de l&#8217;utilisateur : H (<em>hardware</em>)</li>
<li>utilisation de plate-forme matérielle de confiance (carte à puce) : TH (<em>trusted hardware</em>)</li>
</ul>
</div>
</li>
<li>H : responsable des communications entre TH</li>
<li>TH possèdent un identifiant unique ID et une clé secrète commune
<div class="ilist">
<ul>
<li>soit permanente et fournie par le constructeur</li>
<li>soit obtenue lors de l&#8217;entrée d&#8217;un nœud dans le réseau et se présente comme un TH valide</li>
</ul>
</div>
</li>
<li>HMAC en en-tête des messages</li>
</ul>
</div>
<div class="para">
<p>Modèle du réseau :</p></div>
<div class="ilist">
<ul>
<li>nœuds statiques</li>
<li>communications sans fil</li>
<li>liens symétriques</li>
<li>liens fiables (pas de perte de messages)</li>
</ul>
</div>
<div class="para">
<p>Objectif : assurer le bon fonctionnement du protocole distribué. Mais assurer l&#8217;intégrité de son exécution n&#8217;est <strong>pas</strong> suffisant.</div>
<div class="para">
<p>Problème : comment le matériel de confiance peut il avoir confiance dans l&#8217;hôte qui l&#8217;embarque ? Puisque si l&#8217;on maîtrise H celui-ci peut supprimer, fabriquer ou rejouer des messages destinés à d&#8217;autres TH.</p></div>
<div class="para">
<p>Approche :</p></div>
<div class="ilist">
<ul>
<li>détection d&#8217;actes non conformes dans les actes d&#8217;émission/réception au   niveau des couches basses</li>
<li>acquittements explicites pour chaque message</li>
<li>croisement des informations</li>
<li>hypothèse : au moins un nœud avec un comportement conforme</li>
</ul>
</div>
<h4 id="_tude_de_la_transmission_d_un_message_de_u_son_voisinage">13.1.1. Étude de la transmission d&#8217;un message de U à son voisinage</h4>
<div class="olist">
<ol>
<li>TH génère m<sub>u</sub>,id<sub>u</sub>,sn<sub>u</sub>,hmac<sub>u</sub> (hmac<sub>u</sub> = (hmac(m<sub>u</sub>,id<sub>u</sub>,sn<sub>u</sub>))</li>
<li>m<sub>u</sub> est transmis à H</li>
<li>TH attend l&#8217;acquittement</li>
<li>H diffuse le message</li>
<li>chaque voisin transmet le message à son TH</li>
<li>chaque TH génère un ack id,</li>
<li>chaque TH envoie l&#8217;ack à son H</li>
<li>chaque voisin renvoie l&#8217;ack à H</li>
<li>H envoie l&#8217;ack à TH</li>
</ol>
</div>
<div class="ilist">
<ul>
<li>Difficultés pour identifier de manière précise l&#8217;origine d&#8217;une faute</li>
<li>Mais permet d&#8217;avoir des infos fiables sur la qualité du lien entre deux H
<div class="ilist">
<ul>
<li>protocoles de routage</li>
<li>réputation</li>
</ul>
</div>
</li>
</ul>
</div>
<h4 id="_application_dans_les_r_seaux_ad_hoc">13.1.2. Application dans les réseaux ad-hoc</h4>
<div class="para">
<p>Soit les nœuds A, B, C, D et E.</p></div>
<div class="para">
<p>Si H<sub>B</sub> omet de transmettre m à sont TH, TH<sub>A</sub> ne recevra pas d&#8217;ACK.</div>
<div class="para">
<p>Si H<sub>B</sub> transmet bien m à TH<sub>B</sub>, qui donc génère un ACK mais que H<sub>B</sub> ne retransmet pas m ni à A (source du premier message) ni aux autres nœuds (par conséquent TH<sub>B</sub> ne reçoit jamais les ACK de ces autres nœuds et donc A ne peut pas non plus recevoir l&#8217;ACK<sub>B</sub> transmis par un autre nœud), d&#8217;un point de vue de TH<sub>A</sub> la qualité du lien entre A et B est mauvaise. Et d&#8217;un point de vue TH<sub>B</sub> les liens avec l&#8217;ensemble des autres nœuds est mauvais (aucun retour d&#8217;ACK).</div>
<h4 id="_co_t">13.1.3. Coût</h4>
<div class="para">
<p>En volume, l&#8217;utilisation de HMAC ajoute le hash (160 bits pour du SHA-1) plus les ID de séquence et de l&#8217;émetteur.</p></div>
<div class="para">
<p>En puissance, le calcul des hash (négligeable pour une carte à puce).</p></div>
<div class="para">
<p>En traffic, les ACK de chaque nœud pour un message augmente significativement le nombre de messages.</p></div>
<div class="para">
<p>En mémoire, puisque chaque nœud maintient en mémoire une table avec les ID de séquence et leur temps d&#8217;expiration pour tous les messages en attente d&#8217;ACK.</p></div>
<h3 id="_avis_commentaire_13">13.2. Avis / commentaire</h3>
<div class="para">
<p>Présentatrice sous Prozac et probablement un cas d&#8217;école en terme de contre-exemple à tout ce qu&#8217;il faut faire lors d&#8217;une présentation.</p></div>
<div class="para">
<p>Fonds nettement moins intéressant que la conférence (au périmètre beaucoup plus large aussi) sur les systèmes distribués du SSTIC2008.</p></div>
</div>
<h2 id="id_confiance_composant_materiel">14. Quelle confiance dans les composants matériels ?</h2>
<div class="sectionbody">
<div class="para">
<p>Lorïc Duflot – SGDN/DCSSI</p></div>
<h3 id="_notes_14">14.1. Notes</h3>
<div class="para">
<p>Sécurité et confiance dans les composants génériques (processeurs et chipsets).</p></div>
<h4 id="_x86">14.1.1. x86</h4>
<div class="para">
<p>CPU et Chipset (northbridge + southbridge)</p></div>
<div class="para">
<p>Privilèges :</p></div>
<div class="ilist">
<ul>
<li>ring0 = privilèges maximum (noyau)</li>
<li>ring3 = privilèges restreints (applications)</li>
</ul>
</div>
<div class="para">
<p>Base de la séparation espace applicatif / espace noyau, cloisonnement</p></div>
<div class="para">
<p>Mémoire :</p></div>
<div class="ilist">
<ul>
<li>segmentation (obligatoire) → par processus</li>
<li>pagination (optionnelle, mais systématique en pratique) → page de RAM</li>
</ul>
</div>
<div class="para">
<p>Les applications n&#8217;ont jamais accès aux adresses physiques.</p></div>
<h4 id="_prise_en_compte_de_la_s_curit_limit_e">14.1.2. Prise en compte de la sécurité limitée</h4>
<div class="ilist">
<ul>
<li>maintien de la compatibilité descendante</li>
<li>héritage de fonctionnalités des ancêtres</li>
<li>impensable de retirer la moindre fonctionnalité</li>
<li>fonctions de sécurité « à la demande » et parfois redondantes
<div class="ilist">
<ul>
<li>assurer la non exécutabilité des données pouvait se faire avec le segmentation</li>
<li>mais en fait ça a été fait avec la pagination, avec le flag <tt>NX/XD</tt></li>
<li>mécanismes concurrents</li>
</ul>
</div>
</li>
<li>fonctions juxtaposées sans étude de risques liés à l&#8217;introduction de   nouvelles fonctions</li>
</ul>
</div>
<h5 id="_absence_de_mod_le_de_s_curit">Absence de modèle de sécurité</h5>
<div class="ilist">
<ul>
<li>impossible de trouver des analyses de sécurité d&#8217;un composant</li>
<li>pas de vision globale, à l&#8217;échelle de la machine</li>
<li>persistence des modes (réel, protégé, 8086 virtuel, system management, ia32e…)</li>
<li>mode system management :
<div class="ilist">
<ul>
<li>mode de maintenance privilégié (equivalent ring0)</li>
<li>utilisé pour la gestion matérielle</li>
<li>chaque événement se produisant sur la carte mère déclenche une     interruption qui entraîne l&#8217;exécution en mode SMM d&#8217;une routine de la     carte mère</li>
<li>attaquant peut remplacer la routine de traitement de la SMI
<div class="olist">
<ol>
<li>escalade de privilèges</li>
<li>camouflage de rootkit</li>
</ol>
</div>
</li>
<li>mécanismes de contrôle d&#8217;accès existent dans le CPU  mais sont   contournables par des fonctions des chipsets (prouvé)</li>
</ul>
</div>
</li>
<li>DMA (connu depuis longtemps et exploitable via USB/firewire et   contre-mesures peu utilisées)</li>
</ul>
</div>
<h5 id="_complexification_des_cpu">Complexification des CPU</h5>
<div class="ilist">
<ul>
<li>plus d&#8217;un milliard de portes électroniques</li>
<li>multi-cœur avec partage de cache et de ressources</li>
<li>possède des coprocesseurs crypto intégrés (RSA, SHA1, AES)</li>
<li>multiples modes de fonctionnement</li>
<li>instructions non documentées
<div class="ilist">
<ul>
<li><tt>salc</tt> et <tt>loadall</tt> (permettaient le chargement de tous les registres CPU en un cycle d&#8217;horloge)</li>
</ul>
</div>
</li>
</ul>
</div>
<h5 id="_chipsets">Chipsets</h5>
<div class="ilist">
<ul>
<li>CPUs</li>
<li>contrôleur mémoire</li>
<li>contrôleur graphique</li>
<li>USB, réseau, SATA, etc.</li>
<li>manageability engine
<div class="ilist">
<ul>
<li>teχ ASF &amp; AMT</li>
<li>remontée d&#8217;alarme sur le réseau, administration à distance</li>
<li>technologies implantées dans le chipset (https, soap…)</li>
<li>en quoi ils seraient moins vulnérables que les logiciels classiques ?</li>
</ul>
</div>
</li>
<li>fonctions AV dans le chipset (Blackhat, Deepwatch, Yuriy Bulygim)
<div class="ilist">
<ul>
<li>confiance dans le dispositif ?</li>
</ul>
</div>
</li>
<li>fonctions d&#8217;administration, supervision, sécurité directement dans les chipsets</li>
<li>code logiciel s&#8217;exécutant dans le chipset, niveau de confiance pas supérieur au code de « dehors »</li>
<li>toujours plus de fonctions sous prétexte que c&#8217;est dans le matériel (« de confiance »)</li>
<li>problème de cohérence globale</li>
</ul>
</div>
<div class="para">
<p><em>Changement de paradigme</em></div>
<h4 id="_impact_d_un_bug_ou_pi_gage_sur_la_s_curit_des_os_et_vmm">14.1.3. Impact d&#8217;un bug ou piégage sur la sécurité des OS et VMM</h4>
<div class="ilist">
<ul>
<li>attaquant: capable d&#8217;exécuter du code dans une application non privilégiée (browser par exemple ?)</li>
<li>objectifs :
<div class="ilist">
<ul>
<li>discret</li>
<li>exploitable avec un minimum de privilèges</li>
<li>doit donner les privilèges maximums</li>
<li>exploitable dans tous les cas</li>
</ul>
</div>
</li>
<li>exemple : piège dans l&#8217;instruction <tt>salc</tt>, si le CPU est dans un état   particulier (registres)
<div class="ilist">
<ul>
<li>permet de prendre la main car les OS n&#8217;utilisent pas la segmentation au maximum de ses possibilités</li>
<li>mais marche moyen sur les VMM</li>
</ul>
</div>
</li>
<li>exécution de code en ring0 ne suffit pas, il faut pouvoir accéder à la mémoire qu&#8217;on veut (contournement pagination et segmentation)</li>
</ul>
</div>
<div class="para">
<p>En pratique :</p></div>
<div class="ilist">
<ul>
<li>rapports de bugs Intel/AMD</li>
<li>juin 2007, Theo de Raadt (OpenBSD) : bugs sans doute exploitables</li>
<li>octobre 2008, Kris Kaspersky FUD, 2 bugs exploitables à distance, 14 localement (aucune démo, proof of concept)</li>
</ul>
</div>
<h4 id="_contre_mesures">14.1.4. Contre-mesures</h4>
<div class="ilist">
<ul>
<li>virtualisation la plus lourde possible (pour éviter les bugs matériels)</li>
<li>réduire la surface d&#8217;attaque
<div class="ilist">
<ul>
<li>réduire les applications qui tournent</li>
<li>supprimer les moyens de compilation/exécution de code (macros)</li>
<li>bonnes pratiques de sécurité au niveau réseau</li>
</ul>
</div>
</li>
<li>redondance de processeurs différents et comparaison comportementale (peu réaliste actuellement)</li>
</ul>
</div>
<h4 id="_conclusion_7">14.1.5. Conclusion</h4>
<div class="ilist">
<ul>
<li>piégeage exploitable assez facile à réaliser
<div class="ilist">
<ul>
<li>quelles que soient les mesures de sécurité au niveau OS/VMM</li>
</ul>
</div>
</li>
<li>réalité de la menace</li>
<li>complexification des matériels</li>
</ul>
</div>
<h4 id="_notes_15">14.1.6. Notes</h4>
<div class="para">
<p>« Une dizaine de personnes chez Intel doivent savoir comment ça marche ».</p></div>
<div class="para">
<p>Les transitions vers les modes « dangereux » sont spécifiques à la carte mère ; il n&#8217;est donc pas possible d&#8217;intégrer cela à une politique de sécurité.</p></div>
<h3 id="_avis_commentaire_14">14.2. Avis / commentaire</h3>
<div class="para">
<p>Toujours aussi intéressant.</p></div>
<div class="para">
<p>On attend la suivante ;)</p></div>
</div>
<h2 id="_un_panorama_des_techniques_de_furtivit_et_de_leur_d_tection">15. Un panorama des techniques de furtivité et de leur détection</h2>
<div class="sectionbody">
<div class="para">
<p>Jean-Marie Fraygefond – DGA/CELAR</p></div>
<h3 id="_notes_16">15.1. Notes</h3>
<div class="ilist">
<ul>
<li>malware furtif : compilateur C infecté par un virus. Tout fichier source C compilé avec ce compilateur serait infecté.</li>
<li>racine de confiance ?</li>
</ul>
</div>
<h4 id="_d_finitions">15.1.1. Définitions</h4>
<h5 id="_malware">Malware</h5>
<div class="ilist">
<ul>
<li>logiciel développé dans le but de nuire à un système</li>
<li>« un machin informatique nuisible »</li>
<li>Il porte atteinte à :
<div class="ilist">
<ul>
<li>la confidentialité</li>
<li>l&#8217;intégrité</li>
<li>la disponibilité</li>
</ul>
</div>
</li>
<li>On l&#8217;utilise à des fins :
<div class="ilist">
<ul>
<li>d&#8217;espionnage</li>
<li>de chantage</li>
<li>de sabotage</li>
</ul>
</div>
</li>
</ul>
</div>
<h5 id="_sph_re_informationnelle">Sphère informationnelle</h5>
<div class="ilist">
<ul>
<li>informatique : ensemble des systèmes d&#8217;information, de façon très large</li>
<li>toute transformation de l&#8217;information</li>
<li>sphère informationnelle
<div class="ilist">
<ul>
<li>stockage</li>
<li>traitement</li>
<li>acheminement</li>
</ul>
</div>
</li>
</ul>
</div>
<div class="para">
<p>Malware peut être tout et n&#8217;importe quoi dans la sphère informationnelle (code, thread, processus, application, OS, CPU, machine, sphère)</p></div>
<h4 id="_les_m_chants">15.1.2. Les méchants</h4>
<div class="ilist">
<ul>
<li>différents niveaux
<div class="ilist">
<ul>
<li>compétences</li>
<li>moyens</li>
</ul>
</div>
</li>
<li>différents objectifs
<div class="ilist">
<ul>
<li>statistiques</li>
</ul>
</div>
</li>
<li>postures (global/local)</li>
</ul>
</div>
<h4 id="_o_il_est">15.1.3. Où il est ?</h4>
<div class="para">
<p>Du méchant dépend de où on peut trouver le malware</p></div>
<div class="ilist">
<ul>
<li>rootkit sony
<div class="ilist">
<ul>
<li>installation automatique (autorun)</li>
<li>camouflage, modification SSDT</li>
<li>finalité = DRM, mais couche de service aux autres malwares</li>
</ul>
</div>
</li>
<li>bluepill (<em>much ado about nothing</em>)
<div class="ilist">
<ul>
<li>fonctionnalité hyperviseur utilisant virtualisation AMD</li>
<li>virtualise l&#8217;OS « à la volée »</li>
<li>cohabite avec l&#8217;OS, n&#8217;interagit pas. couche de virtualisation</li>
<li>prototype</li>
</ul>
</div>
</li>
</ul>
</div>
<h4 id="_d_tection">15.1.4. Détection</h4>
<div class="para">
<p>Détecter quoi ?</p></div>
<div class="ilist">
<ul>
<li>code (mais quel type de code ?)</li>
<li>quelque chose qui s&#8217;installe sans le consentement (impossible à dire)</li>
<li>fuite d&#8217;information (mises à jour automatiques ?)</li>
<li>nuisance ? (notion éminemment subjective)</li>
<li>bluepill : bataille d&#8217;experts</li>
<li>confusion entre détecter de la virtualisation et détecter un malware</li>
<li>qu&#8217;est ce qu&#8217;on <strong>sait</strong> détecter ?</li>
<li>qu&#8217;est ce qu&#8217;on <strong>veut</strong> détecter ?</li>
</ul>
</div>
<h4 id="_conclusion_8">15.1.5. Conclusion</h4>
<div class="para">
<p>Le malware ultime existe-t-il ?</p></div>
<div class="ilist">
<ul>
<li>oui → on ne sait pas, car on ne sait pas le détecter</li>
<li>non → ouf</li>
</ul>
</div>
<div class="para">
<p>Vraie question : peut-on continuer à vivre en sachant ça ?</p></div>
<div class="para">
<p>⇒ question de la confiance (où est le curseur ?)</p></div>
<h3 id="_avis_commentaire_15">15.2. Avis / commentaire</h3>
<div class="para">
<p>La présentation faisait plus rump session que « vraie » présentation. Son contenu est aussi plutôt trivial. Mais le papier est <strong>très</strong> bien et offre un panorama des techniques de furtivité accessible (allez le lire).</div>
</div>
<h2 id="_mobile_transactions_trust_and_privacy_aspects">16. Mobile transactions : trust and privacy aspects</h2>
<div class="sectionbody">
<div class="para">
<p>Jean-Claude Paillès – Orange Labs</p></div>
<h3 id="_notes_17">16.1. Notes</h3>
<h4 id="_contexte">16.1.1. Contexte</h4>
<div class="para">
<p>Mobile = outil à tout faire (identification, paiement, contenus, internet, etc.).</p></div>
<h4 id="_plate_forme_mobile_approche_tcg">16.1.2. Plate-forme mobile : approche TCG</h4>
<div class="ilist">
<ul>
<li>configuration : différences TPM/MTM :
<div class="ilist">
<ul>
<li>MTM peut vérifier les mesures en local</li>
<li>protocole de mise à jour des références de mesures</li>
<li>car le réseau n&#8217;est pas trustable</li>
</ul>
</div>
</li>
<li>gestion de clés</li>
<li>stockage sur TPM</li>
</ul>
</div>
<div class="para">
<p>Besoin d&#8217;un standard sur le sujet (solutions propriétaires posent de vrais problèmes wrt. confiance et preuve de confiance).</p></div>
<h4 id="_architecture_mobile_trust_e">16.1.3. Architecture mobile « trustée »</h4>
<div class="para">
<p>Plusieurs fonctions sous différents niveaux de responsabilités</p></div>
<div class="ilist">
<ul>
<li>radio → constructeur</li>
<li>réseau opérateur</li>
<li>opérations de paiement</li>
<li>applications diverses → éditeur</li>
</ul>
</div>
<div class="para">
<p>Approche virtualisation : un MTM physique, 4 MTM virtuels (un par responsable).</p></div>
<div class="para">
<p>MTM (TCG de manière générale) assure l&#8217;intégrité de l&#8217;OS, pas son caractère trusté (intégrité d&#8217;une passoire est pas très intéressante).</p></div>
<div class="para">
<p>MTM = petit bout du problème</p></div>
<div class="para">
<p>MTM séparé ou intégré ?</p></div>
<div class="ilist">
<ul>
<li>séparé :
<div class="ilist">
<ul>
<li>plus simple</li>
<li>liaison attaquable</li>
<li>packaging compliqué</li>
</ul>
</div>
</li>
<li>intégré :
<div class="ilist">
<ul>
<li>dur à auditer (CC)</li>
<li>liaison sûre</li>
<li>packaging plus simple</li>
</ul>
</div>
</li>
</ul>
</div>
<div class="para">
<p>TCG ∾ EAL3. Or certaines applications nécessitent beaucoup plus de confiance (cartes bancaires sont EAL4+).</p></div>
<div class="para">
<p>Déporter les opérations en question sur un <em>secure element</em> (SE) de confiance (la SIM en général).</div>
<div class="para">
<p>⇒ besoin d&#8217;un secure channel SIM ↔ plate-forme.</p></div>
<div class="para">
<p>“Global Bootstrap Architecture” : envoi d&#8217;une clé commune dans la SIM et dans une cible à côté (après vérification que le mobile est sain).</p></div>
<h4 id="_privacy">16.1.4. Privacy</h4>
<div class="ilist">
<ul>
<li>mobile = moyen de paiement, accès, identification universel</li>
<li>sécurisé</li>
<li>mais quid du contenu des données échangées wrt. privacy ?   → contactless (NFC)</li>
</ul>
</div>
<div class="para">
<p>Éco-système de la <em>privacy</em></div>
<div class="ilist">
<ul>
<li>réglementation (CNIL, OCDE, CC)</li>
<li>publications</li>
<li>forums &amp; projets</li>
<li>produits</li>
</ul>
</div>
<div class="para">
<p>Privacy dans les transactions mobiles ?</p></div>
<div class="ilist">
<ul>
<li>NFC : connexions doivent être très rapides (300 → 500 ms)</li>
<li>pas moyen de contacter un ID provider extérieur dans l&#8217;intervalle</li>
<li>NFC :pas besoin de données invariantes
<div class="ilist">
<ul>
<li>certaines applications ont <em>besoin</em> d&#8217;une identification (CB)</li>
<li>certaines autres non (cf. métro ou porte monnaie électronique) : seul un contrôle de droit / propriété / crédit est nécessaire</li>
</ul>
</div>
</li>
<li>solutions
<div class="ilist">
<ul>
<li>TCG / DAA (Direct Anonymous Attestation, basé sur zero-knowledge)</li>
<li>projets européens (PBSS, PRIME etc.)</li>
</ul>
</div>
</li>
<li>on doit pouvoir repérer une attaque et <strong>révoquer</strong> les faux</li>
</ul>
</div>
<div class="admonitionblock">
<table border="0">
<tbody>
<tr>
<td class="icon">
<div class="title">Note :</div>
</td>
<td class="content">
<div class="para">
<p>L&#8217;anonymat complet n&#8217;est pas vraiment possible, un minimum de traçabilité doit être possible (rôle de la variable γ de DAA).</p></div>
</td>
</tr>
</tbody>
</table>
</div>
<h4 id="_trusted_secure_computing_tsc">16.1.5. Trusted Secure Computing (TSC)</h4>
<div class="ilist">
<ul>
<li>Consortium d&#8217;industriels (EADS, FT, STM, Bull, etc.)</li>
<li>basé sur TCG, proposition d&#8217;améliorations</li>
<li>France, Espagne, Hollande</li>
<li>jusqu&#8217;à fin 2009</li>
<li>Orange : AACA (<em>Anonymous Access Control Application</em>)</li>
<li>requêtes fines demandées à la SIM sans dévoiler trop d&#8217;information (en fait   le strict minimum nécessaire)
<div class="ilist">
<ul>
<li>utilise PBSS (moins coûteux que ZKPK)</li>
</ul>
</div>
</li>
</ul>
</div>
<h4 id="_conclusion_9">16.1.6. Conclusion</h4>
<div class="ilist">
<ul>
<li>mobile → potentiel d&#8217;usage important</li>
<li>gros problèmes de privacy à résoudre très rapidement (anticiper ?)</li>
<li>solutions standardisées existent (TCG)</li>
<li>France Numérique 2012 ? cf. action 69</li>
</ul>
</div>
<h3 id="_avis_commentaire_16">16.2. Avis / commentaire</h3>
<div class="para">
<p>Présentation claire.</p></div>
<div class="para">
<p>Grosso modo, il existe, <em>a minima</em>, des pistes permettant de faire d&#8217;un téléphone mobile un véritable couteau suisse digne de confiance <strong>et</strong> respectant la « privacy » <strong>mais</strong> il n&#8217;y a guère de motivation autre que la peur d&#8217;un clash futur.</div>
</div>
<h2 id="_panorama_of_secure_contactless_communications">17. Panorama of secure contactless communications</h2>
<div class="sectionbody">
<div class="para">
<p>François Vacherand et al. – CEA/LETI</p></div>
<h3 id="_notes_18">17.1. Notes</h3>
<h4 id="_introduction">17.1.1. Introduction</h4>
<div class="para">
<p>RFID :</p></div>
<div class="ilist">
<ul>
<li>identification de personnes (coopératif)</li>
<li>identification de produits</li>
<li>bandes de fréquences normalisées (il en existe cinq mais une seule pour les cartes à puce)</li>
</ul>
</div>
<div class="para">
<p>Carte à puce :</p></div>
<div class="ilist">
<ul>
<li>particularités du lien sans contact :
<div class="ilist">
<ul>
<li>distance ~ 10 cm</li>
<li>alimentation de la carte</li>
<li>singulation / identification / inventory des objets dans le champ (concurrences d&#8217;accès)</li>
</ul>
</div>
</li>
<li>trois fonctions : power+clock+data
<div class="ilist">
<ul>
<li>pas de bouton on/off, uniquement par entrée dans le champ à 13.56 MHz</li>
</ul>
</div>
</li>
<li>bases de sécurité :
<div class="ilist">
<ul>
<li>confidentialité</li>
<li>identification (mutuelle)</li>
<li>intégrité</li>
<li>disponibilité</li>
</ul>
</div>
</li>
<li>caractéristiques majeures :
<div class="ilist">
<ul>
<li>passif (pas d&#8217;énergie embarquée, donc pas de moyen de défense)</li>
<li>low power</li>
<li>low resources (pas de MIPS sur les tags qui s&#8217;étendent de quelques microW   à quelques dizaines de miliW pour les plus grosses)</li>
<li>low cost : trade-off security/cost</li>
<li>one reader, many tags → dispositifs anti-collision</li>
</ul>
</div>
</li>
</ul>
</div>
<h4 id="_menaces">17.1.2. Menaces</h4>
<div class="para">
<p>Deux grandes catégories de menaces :</p></div>
<div class="ilist">
<ul>
<li>économique (fraude, etc.)</li>
<li>privée (espionnage, traçabilité de la personne, etc.)</li>
</ul>
</div>
<div class="para">
<p>Vulnérabilités :</p></div>
<div class="ilist">
<ul>
<li>over the air communications</li>
<li>over the air power</li>
<li>over the air clock</li>
<li>passive devices (sans défenses)</li>
<li>no on/off switch</li>
<li>load based retro-modulation</li>
<li>singulation protocol (anti-collision)</li>
<li>“kill command” (désactivation de l&#8217;étiquette)</li>
</ul>
</div>
<div class="para">
<p>Menaces :</p></div>
<div class="ilist">
<ul>
<li>hypothèse souvent admise : carte/tag dans le champ du lecteur (cf. attaque par proxy, antennes, etc.)</li>
<li>substitution d&#8217;objets (carte ou reader)</li>
<li>RF jammers (dispo)</li>
<li>perturbations RF (power, data, clock)</li>
<li>destructions d&#8217;antennes (résonance)</li>
<li>écoute</li>
<li>skimming (activation non voulue)</li>
<li>analyse de la consommation par retro-modulation</li>
<li>utilisation malicieuse de la “kill command”</li>
</ul>
</div>
<h4 id="_attaques">17.1.3. Attaques</h4>
<div class="para">
<p>Trois grandes familles d&#8217;attaques :</p></div>
<div class="olist">
<ol>
<li>passive listening : analyse de la consommation de la carte (nécessite un laboratoire)</li>
<li>remote activation : attaque relais, injection de perturbations</li>
<li>DoS : jammer, blocker</li>
</ol>
</div>
<div class="para">
<p>Grandes attaques :</p></div>
<div class="olist">
<ol>
<li>eavesdropping</li>
<li>RFA (SPA-DPA-CPA through RF Channel)</li>
<li>relay &amp; MITM</li>
<li>injection de faute</li>
</ol>
</div>
<h4 id="_contre_mesures_2">17.1.4. Contre-mesures</h4>
<div class="ilist">
<ul>
<li>singulation phase : read (U)ID
<div class="ilist">
<ul>
<li>anti-collision based on Aloha protocol</li>
<li>binary tree search</li>
</ul>
</div>
</li>
<li>travaux côté du lecteur (beaucoup plus puissant, beaucoup moins de contraintes)</li>
<li>énergie à bord de la puce pour avoir quelques fonctions de défense,   détection d&#8217;intrusion, effacement de données sensibles.</li>
</ul>
</div>
<h4 id="_conclusion_10">17.1.5. Conclusion</h4>
<div class="ilist">
<ul>
<li>sécurité reste quand même très proche de la sécurité de la carte à puce</li>
<li>mais dispositifs très peu complexes, peu de moyens de défense</li>
</ul>
</div>
<div class="para">
<p>Il reste des choses à faire :</p></div>
<div class="ilist">
<ul>
<li>précaution particulière pour les low profile devices</li>
<li>improve singulation protocol</li>
<li>tests d&#8217;attaques réelles</li>
<li>robustesse aux DoS</li>
<li>standards</li>
<li>améliorer la confiance et privacy</li>
</ul>
</div>
<h3 id="_avis_commentaire_17">17.2. Avis / commentaire</h3>
<div class="para">
<p>Encore un autre domaine ouvrant plein de nouvelles utilisations possibles mais nécessitant aussi de la confiance. Or la dissymétrie entre les deux acteurs ne facilite pas les choses.</p></div>
<div class="para">
<p>À l&#8217;heure actuelle c&#8217;est bien l&#8217;attaque relais qui reste la plus problématique.</p></div>
<div class="para">
<p>Accessoirement, mettre ses cartes RFID dans un étui blindé coupe court au skimming.</p></div>
</div>
<h2 id="_eman_un_cheval_de_troie_dans_une_carte_puce">18. EMAN : Un cheval de Troie dans une carte à puce</h2>
<div class="sectionbody">
<div class="para">
<p>Jean-Louis Lanet – Université de Limoges</p></div>
<h3 id="_notes_19">18.1. Notes</h3>
<h4 id="_principe">18.1.1. Principe</h4>
<div class="para">
<p>Mettre un cheval de Troie dans une javacard (v.3.0, version restreinte).</p></div>
<h4 id="_les_s_curit_s_dans_la_carte">18.1.2. Les sécurités dans la carte</h4>
<div class="ilist">
<ul>
<li>Java : fortement typé, vérification au niveau du bytecode, pas possible de   manipuler les références. Propriétés vérifiées au niveau du bytecode (garantie d&#8217;isolation).</li>
<li>Firewall : isolation entre les différentes applets de la carte (uniquement   au sein de contextes de sécurité ou via des interfaces très spécifiées). Mais cela est seulement valable pour les instances, pas pour les classes (donc pas pour les variables globales).</li>
<li>Chargement d&#8217;une application uniquement possible en passant par la   plate-forme globale et donc prouver qu&#8217;on a les droits de chargement (clé de chargement). Applet loading only if authenticated (SCP01).
<div class="ilist">
<ul>
<li>ok sur des cartes de développement</li>
</ul>
</div>
</li>
</ul>
</div>
<div class="para">
<p>Javacard ~ java sauf que le vérificateur de bytecode est externalisé</p></div>
<h4 id="_objectif_de_l_attaque">18.1.3. Objectif de l&#8217;attaque</h4>
<div class="para">
<p>Cheval de Troie, qui modifie de façon non autorisée une application qui n&#8217;appartient pas à son contexte de sécurité Par exemple, supprimer le lancement d&#8217;une exception si le PIN est mauvais (au niveau du bytecode)</p></div>
<div class="para">
<p>Le firewall ne peut pas (par construction) vérifier les contextes quand on utilise les instructions <tt>putstatic</tt>, <tt>getstatic</tt>, <tt>invokestatic</tt> (car ça touche des variables globales, de classe).</div>
<div class="para">
<p>Reste de la présentation = plan de l&#8217;attaque, description du processus, etc.</p></div>
<h3 id="_avis_commentaire_18">18.2. Avis / commentaire</h3>
<div class="para">
<p>Waouh.</p></div>
<div class="para">
<p>Présentation faite par un prof, extrêmement didactique.</p></div>
<div class="para">
<p>Cette attaque, comme les autres attaques de type logique citées, repose sur des faiblesses des spécifications ou des implémentations de JavaCard.</p></div>
<div class="para">
<p>La norme JavaCard 3.0 ne permet plus la réalisation de l&#8217;attaque présentée.</p></div>
</div>
<h2 id="_trusted_software_within_focal">19. Trusted software within Focal</h2>
<div class="sectionbody">
<div class="para">
<p>François Pessaux et al. – LIP6</p></div>
<h3 id="_notes_20">19.1. Notes</h3>
<h4 id="_probl_matique_3">19.1.1. Problématique</h4>
<div class="ilist">
<ul>
<li>présence croissante de logiciels dans les systèmes (firmwares, etc.)</li>
<li>questions sur la fiabilité des logiciels ?</li>
<li>méthodes empiriques insuffisantes</li>
<li>méthodes formelles difficiles (problème du passage à l&#8217;échelle)</li>
<li>outils séparés → problèmes aux interfaces</li>
<li>fiabilité/sûreté/sécurité du logiciel valable à tout moment du cycle de vie</li>
</ul>
</div>
<h4 id="_projet_focal">19.1.2. Projet FoCaL</h4>
<div class="para">
<p>IDE pour le développement de « logiciel de sécurité »</p></div>
<div class="ilist">
<ul>
<li>langage de programmation</li>
<li>langage de propriétés</li>
<li>langage de preuves</li>
</ul>
</div>
<div class="para">
<p>soit un IDE « formel »</p></div>
<div class="ilist">
<ul>
<li>outils d&#8217;aides à la preuve</li>
<li>même outil pour le code et les propriétés → pas de problèmes de ponts</li>
<li>modélisation des spécifications à l&#8217;implémentation</li>
</ul>
</div>
<div class="para">
<p>Donc propriétés et preuve des spécifications à l&#8217;implémentation.</p></div>
<h4 id="_ing_ni_rie_logicielle_et_philosophie_focal">19.1.3. Ingéniérie logicielle et philosophie FoCaL</h4>
<div class="ilist">
<ul>
<li>cahier des charges → expression des besoins du client</li>
<li>spécifications → fonctionnalités sans référence aux solutions pratiques</li>
<li>implémentation → solution</li>
<li>cahier des charges de systèmes critiques ont des propriétés de « sécurité », exigences
<div class="ilist">
<ul>
<li>propagées ou changées au long du cycle de vie</li>
<li>au final doivent être vérifiées / satisfaites</li>
</ul>
</div>
</li>
<li>FoCaL :
<div class="ilist">
<ul>
<li>déclarations ↔ spécifications</li>
<li>construction algorithmiques ↔ implémentation</li>
</ul>
</div>
</li>
<li>base : espèce, enregistrement (record) regroupant structure de données et   opérations</li>
<li>modularité</li>
<li>opérations (méthodes) :
<div class="ilist">
<ul>
<li>type support</li>
<li>déclarations (signatures) = nom + type</li>
<li>définitions (let) = implémentation calculatoire des fonctions</li>
<li>propriétés (property) = nom + formule logique du 1<sup>er</sup> ordre</li>
<li>théorème = propriété + preuve</li>
<li>preuve : preuve retardée de propriétés</li>
</ul>
</div>
</li>
</ul>
</div>
<h3 id="_avis_commentaire_19">19.2. Avis / commentaire</h3>
<div class="para">
<p>Trop technique pour mes compétences tant en développement qu&#8217;en formalisme.</p></div>
<div class="para">
<p>Néanmoins super intéressant. En tout cas pour l&#8217;objectif et les moyens mis en œuvre (pour ceux que j&#8217;ai compris). J&#8217;aime beaucoup l&#8217;idée d&#8217;utiliser le même langage des spécifications à l&#8217;implémentation en étant capable de prouver que l&#8217;implémentation répond bien aux spécifications. J&#8217;aime bien aussi l&#8217;idée que la problématique de l&#8217;établissement de la preuve fasse appel à des outils externes déjà existants.</p></div>
<div class="para">
<p>Et cela a semblé intéresser des industriels dans la salle.</p></div>
</div>
<h2 id="_digital_rights_management_and_trust">20. Digital Rights Management and trust</h2>
<div class="sectionbody">
<div class="para">
<p>Éric Diehl – Thomson R&amp;D</p></div>
<h3 id="_notes_21">20.1. Notes</h3>
<div class="para">
<p>Quatre couches :</p></div>
<div class="olist">
<ol>
<li>trust management</li>
<li>rights management</li>
<li>right enforcement</li>
<li>content protection</li>
</ol>
</div>
<h4 id="_trust_your_model">20.1.1. Trust your model</h4>
<div class="ilist">
<ul>
<li>tous les pouvoirs à l&#8217;attaquant (pas de alice/bob/eve du modèle OpenSSL)</li>
<li>Rule n1 : les attaquants gagnent toujours à la fin</li>
<li>nouveau types de DRM : contenus en clair, avec tatouage, et observation <em>a   posteriori</em></li>
<li>problèmes de privacy</li>
<li>si bob se fait voler le contenu, on est dans le vent</li>
</ul>
</div>
<h4 id="_trust_your_implementation">20.1.2. Trust your implementation</h4>
<div class="olist">
<ol>
<li>compliance rules : la boîte fait-elle ce qu&#8217;elle doit ?</li>
<li>robustness rules : à quoi la boîte doit-elle résister ?</li>
<li>means for compliance : comment faire respecter les règles (une technique étant de placer un algorithme bidon mais breveté car si il est désossé, il n&#8217;y a pas seulement viol de licence mais aussi de brevet…).</li>
</ol>
</div>
<div class="para">
<p>Avec quels outils tester notre implémentation pour avoir confiance ?</p></div>
<div class="para">
<p>→ outils simples pour vérifier que l&#8217;implémentation résiste au moins aux attaques les plus connues (key management, buffer overflow…)</p></div>
<h4 id="_trust_the_greed">20.1.3. Trust the greed</h4>
<div class="ilist">
<ul>
<li>problèmes d&#8217;alignement entre les différents acteurs qui ne cherchent pas la   même chose (hardware/software)
<div class="para">
<p>→ alignement des intérêts des parties en présence (intérêt <strong>économique</strong>). Pour cela :</div>
<div class="olist">
<ol>
<li>étude du retour sur investissement</li>
<li>étude du retour de non perte</li>
<li>étude du facteur humain
<div class="ilist">
<ul>
<li>tenir compte de la psychologie (prospect theory)</li>
<li>théorie du jeu (game theory) : ajuster les paramètres pour changer les   équilibres</li>
</ul>
</div>
</li>
</ol>
</div>
</li>
</ul>
</div>
<h4 id="_conclusion_11">20.1.4. Conclusion</h4>
<div class="ilist">
<ul>
<li>confiance fondamentale</li>
<li>modèle de confiance pas encore trouvé</li>
</ul>
</div>
<h3 id="_avis_commentaire_20">20.2. Avis / commentaire</h3>
<div class="para">
<p>Un gros bullshit bien présenté, le conférencier étant bon.</p></div>
<div class="para">
<p>De mon point de vue, le problème est <strong>fondamentalement</strong> mal posé concernant les DRM. Le but n&#8217;est pas de trouver un « nouvel » équilibre comme dit par le conférencier mais d&#8217;aligner tous les acteurs du marché sur les intérêts des studios.</div>
<div class="para">
<p>De manière générale, le discours est fondamentalement malsain. Je recommande la lecture de <a href="http://www.techdirt.com/">http://www.techdirt.com/</a>.</div>
</div>
<h2 id="_vote_lectronique_constats_questions_et_certitudes">21. Vote électronique : constats, questions et certitudes</h2>
<div class="sectionbody">
<div class="para">
<p>Chantal Enguehard – Université de Nantes/LINA</p></div>
<h3 id="_notes_22">21.1. Notes</h3>
<div class="para">
<p>L&#8217;anonymat est la différence avec tout le reste.</p></div>
<div class="para">
<p>Différentes solutions de vote électronique (nomenclature UE) :</p></div>
<div class="ilist">
<ul>
<li>ordinateur de vote avec bulletin dématérialisé (DRE)</li>
<li>ordinateur de vote avec bulletin dématérialisé puis matérialisé (VVAT)</li>
<li>comptage automatique des bulletins matérialisé (scanner)</li>
<li>kiosque (centralisation)</li>
<li>internet</li>
<li>hybride</li>
</ul>
</div>
<h4 id="_constats">21.1.1. Constats</h4>
<div class="para">
<p>Élections présidentielles et législatives 2007, municipales et cantonales 2008.</p></div>
<div class="para">
<p>Données recueillies : 21 000 journées de bureaux de vote (dont ⅓ électronique).</p></div>
<div class="para">
<p>Observation de la différence entre nombre de votes (V) et nombre d&#8217;émargements (E) :</p></div>
<div class="para">
<p>K = (|V-E|/V)×1 000</p></div>
<div class="para">
<p>En gros, un peu plus d&#8217;erreur sur les votes électroniques que les votes à l&#8217;urne.</p></div>
<h4 id="_recherche_de_corr_lations">21.1.2. Recherche de corrélations</h4>
<div class="ilist">
<ul>
<li>pas lié à la participation (K n&#8217;est pas lié au nombre de votes)</li>
<li>pas d&#8217;effet d&#8217;apprentissage (pas de différence de K entre le premier et   second tour)</li>
<li>indépendance entre les remarques portées sur les PVs et les bureaux en   erreur.</li>
</ul>
</div>
<h4 id="_certitudes_en_ce_qui_concerne_la_solution_dre">21.1.3. Certitudes en ce qui concerne la solution DRE ?</h4>
<div class="ilist">
<ul>
<li>vérification par approximation (sondages ou résultats antérieurs)   → ne marche pas puisque si les sondages ou les votes précédents étaient fiables, on ne voterait pas…</li>
<li>garanties apportées par les traitements (tests) : on ne peut prouver que la   machine est inaltérable ou immune de fautes</li>
<li>preuves de résultats
<div class="ilist">
<ul>
<li>marche si c&#8217;est bien inaltérable (voir ci-dessus)</li>
<li>il est impossible de prouver l&#8217;adéquation entrée / résultat puisque l&#8217;entrée, par définition, est inconnue</li>
</ul>
</div>
</li>
</ul>
</div>
<h4 id="_certitudes_en_ce_qui_concerne_la_solution_vvat">21.1.4. Certitudes en ce qui concerne la solution VVAT ?</h4>
<div class="para">
<p>Production d&#8217;un bulletin de vote imprimé vérifié par l&#8217;électeur et stocké pour vérification</p></div>
<div class="ilist">
<ul>
<li>mise en œuvre variable</li>
<li>vérification <strong>optionnelle</strong></li>
<li>pas de preuve de l&#8217;intention de vote (seul le juge peut valider ou non un   résultat ; pas l&#8217;électeur ou le candidat)</li>
</ul>
</div>
<h4 id="_recomptage_manuel">21.1.5. Recomptage manuel</h4>
<div class="para">
<p>Cela se fait aux États-Unis d&#8217;Amérique et au Vénézuela.</p></div>
<div class="ilist">
<ul>
<li>barrière légales</li>
<li>difficultés organisationnelles
<div class="ilist">
<ul>
<li>déplacement et stockage des urnes</li>
<li>choix des urnes (protocoles, validité scientifique)</li>
<li>traitement juridique</li>
</ul>
</div>
</li>
<li>si ça ne change pas le résultat, rien n&#8217;est fait</li>
</ul>
</div>
<h4 id="_e2e_end_to_end_verifiable_and_auditable">21.1.6. E2E : end to end verifiable and auditable</h4>
<div class="ilist">
<ul>
<li>électeur peut vérifier que son vote est bien enregistré
<div class="ilist">
<ul>
<li>complexe</li>
<li>vérification optionnelle</li>
<li>pas de preuve matérielle</li>
</ul>
</div>
</li>
<li>électeur peut vérifier que le total est correct
<div class="ilist">
<ul>
<li>complexe</li>
<li>compréhensible</li>
</ul>
</div>
</li>
<li>électeur est à l&#8217;abri de la cœrcition (pas de preuve matérielle de vote)</li>
</ul>
</div>
<h4 id="_conclusion_12">21.1.7. Conclusion</h4>
<div class="para">
<p>Gros problèmes, deux contraintes</p></div>
<div class="olist">
<ol>
<li>anonymat pour tous</li>
<li>dématérialisation (discontinuite physique de la représentation du vote)</li>
</ol>
</div>
<div class="para">
<p>Risques effectifs :</p></div>
<div class="olist">
<ol>
<li>perte de sincérité</li>
<li>perte de confiance</li>
<li>atteinte à la sûreté nationale (ingérence étrangère)</li>
</ol>
</div>
<h3 id="_avis_commentaire_21">21.2. Avis / commentaire</h3>
<div class="para">
<p>Conférence passionnante, pleine de bon sens, rappelant, avant toute considération technique, les fondations de notre société concernant la définition d&#8217;élections libres et honnêtes. Considérations que mêmes nos décideurs politiques semblent parfois oublier.</p></div>
</div>
<h2 id="_secured_and_practical_voting_machines">22. Secured and practical voting machines</h2>
<div class="sectionbody">
<div class="para">
<p>Florent Chabaud – SGDN/DCSSI</p></div>
<h3 id="_notes_23">22.1. Notes</h3>
<h4 id="_fondements_scientifiques">22.1.1. Fondements scientifiques</h4>
<div class="para">
<p>Doutes sur les machines.</p></div>
<div class="para">
<p>Apparition de fausses bonnes idées :</p></div>
<div class="olist">
<ol>
<li>ne pas recourir aux machines à voter (pas très constructif)</li>
<li>bulletins classiques à scanner
<div class="ilist">
<ul>
<li>problème juridique :
<div class="ilist">
<ul>
<li>qu&#8217;est ce qui prévaut en cas de différence ?</li>
<li>les bulletins sont détruits sous 24 heures</li>
</ul>
</div>
</li>
<li>problème de fond :
<div class="ilist">
<ul>
<li>ça ne dissipe pas les doutes…</li>
</ul>
</div>
</li>
</ul>
</div>
</li>
<li>protocoles cryptographiques de vote
<div class="ilist">
<ul>
<li>coût élevé</li>
<li>compréhension par le citoyen</li>
</ul>
</div>
</li>
</ol>
</div>
<div class="para">
<p>Idée intéressante :</p></div>
<div class="ilist">
<ul>
<li>séparer le processus de configuration du scrutin et le vote</li>
</ul>
</div>
<h4 id="_architecture">22.1.2. Architecture</h4>
<div class="para">
<p>Machine à voter :</p></div>
<div class="ilist">
<ul>
<li>automate minimal (interface)</li>
<li>IHM</li>
<li>module cryptographique</li>
<li>logiciel de décompte</li>
<li>sécurité physique</li>
</ul>
</div>
<h5 id="_principe_de_l_interface">Principe de l&#8217;interface</h5>
<div class="para">
<p>Application au cas français (il existe de nombreux systèmes de votes).</p></div>
<div class="para">
<p>Principe : assurer la transparence</p></div>
<div class="ilist">
<ul>
<li>interface (publié par la mairie, certifiée par le ministère de l&#8217;intérieur)</li>
<li>vérifiable</li>
<li>permettant de s&#8217;entraîner</li>
</ul>
</div>
<h5 id="_principe_de_l_automate">Principe de l&#8217;automate</h5>
<div class="para">
<p><strong>Doit</strong> être <strong>uniquement</strong> capable de :</div>
<div class="ilist">
<ul>
<li>afficher les images du fichier d&#8217;interface</li>
<li>affecter des liens à certaines portions</li>
<li>passer d&#8217;une page à l&#8217;autre</li>
<li>comptabiliser certaines transitions</li>
</ul>
</div>
<div class="para">
<p>Code doit être public (source et binaire) prouvé et certifié cryptographiquement, vérifié par le module cryptographique de la machine.</p></div>
<h5 id="_module_cryptographique">Module cryptographique</h5>
<div class="ilist">
<ul>
<li>ne participe <strong>pas</strong> au comptage (pas de chiffrement dans le dépouillement)</li>
<li>ne vérifie <strong>que</strong> la certification</li>
<li>dispose d&#8217;un affichage autonome et indépendant</li>
</ul>
</div>
<h5 id="_s_curit_physique">Sécurité physique</h5>
<div class="para">
<p>La sécurité logique est assurée par le le module cryptographique.</p></div>
<div class="ilist">
<ul>
<li>scellé externe numéroté
<div class="ilist">
<ul>
<li>protège contre l&#8217;ouverture de la machine</li>
</ul>
</div>
</li>
<li>capot interne transparent
<div class="ilist">
<ul>
<li>protège l&#8217;accès aux composants</li>
<li>protège les connecteurs d&#8217;interface</li>
</ul>
</div>
</li>
<li>scellé interne numéroté
<div class="ilist">
<ul>
<li>protège contre l&#8217;ouverture du capot</li>
</ul>
</div>
</li>
<li>deux clés physiques pour les opérations sensibles</li>
</ul>
</div>
<h4 id="_le_jour_j">22.1.3. Le jour J</h4>
<div class="olist">
<ol>
<li>vérification du paramétrage
<div class="ilist">
<ul>
<li>preuve formelle <em>a priori</em> du logiciel</li>
<li>certification cryptographique des logiciels</li>
<li>vérification de la certification <strong>le jour J</strong></li>
<li><em>a posteriori</em> contrôle de la sécurité physique</li>
<li>suivi de la maintenance</li>
<li>vérifications :
<div class="ilist">
<ul>
<li>scellé physique externe,</li>
<li>autotest du module cryptographique,</li>
<li>empreintes cryptographiques des logiciels certifiés</li>
<li>nombre nul de votants</li>
</ul>
</div>
</li>
</ul>
</div>
</li>
<li>déroulement du scrutin
<div class="ilist">
<ul>
<li>président active un droit de vote après vérification de l&#8217;identité</li>
<li>confirmation du vote, désactive la machine à voter</li>
<li>si pas de validation :
<div class="ilist">
<ul>
<li>on le rattrape ?</li>
<li>sinon, président et assesseur <strong>à distance</strong>, activent la fonction « vote nul »</li>
</ul>
</div>
</li>
<li>panne : machine de secours</li>
<li>toute anomalie signalée</li>
</ul>
</div>
</li>
<li>fermeture du scrutin
<div class="ilist">
<ul>
<li>vérifications :
<div class="ilist">
<ul>
<li>preuve cryptographique d&#8217;origine du résultat du vote,</li>
<li>scellé interne,</li>
<li>contrôle visuel de la zone de sécurité (par rapport au cahier de suivi)</li>
</ul>
</div>
</li>
</ul>
</div>
</li>
<li>affichage des résultats</li>
<li>vérification des résultats</li>
</ol>
</div>
<h4 id="_contr_le_par_le_citoyen">22.1.4. Contrôle par le citoyen</h4>
<div class="para">
<p>Les systèmes de contrôle actuels sont mauvais.</p></div>
<div class="ilist">
<ul>
<li>contrôle de l&#8217;agrément des machines</li>
<li>en fonction de ses compétences
<div class="ilist">
<ul>
<li>intégrité physique</li>
<li>cahier de suivi</li>
<li>signatures de l&#8217;automate et du fichier d&#8217;interface (certificat)</li>
<li>logiciel d&#8217;interface (contenu et preuve formelle)</li>
<li>résultats affichés</li>
</ul>
</div>
</li>
</ul>
</div>
<div class="para">
<p><strong>Pas</strong> d&#8217;usage de cryptographie en confidentialité (<strong>uniquement</strong> preuve d&#8217;origine et intégrité).</div>
<div class="para">
<p>Gestion de clés minimaliste, publication des certificats racine.</p></div>
<h4 id="_conclusion_13">22.1.5. Conclusion</h4>
<div class="ilist">
<ul>
<li>on peut trouver des architectures qui soient transparentes</li>
<li>sécurité pas absolue, mais attaques ont un coût important, et attaque globale est relativement improbable</li>
</ul>
</div>
<h3 id="_avis_commentaire_22">22.2. Avis / commentaire</h3>
<div class="para">
<p><strong>Excellent</strong> complément à la conférence précédente.</div>
<div class="para">
<p>Le conférencier a bien indiqué dès le début que le but n&#8217;était pas de dire si le vote électronique était bien ou mal, s&#8217;il fallait l&#8217;implémenter ou non, mais de disposer d&#8217;une solution saine en cas de décision d&#8217;implémentation.</p></div>
<div class="para">
<p>La solution proposée m&#8217;a clairement convaincu. Et sans être contre <em>a priori</em> le vote électronique, j&#8217;étais largement dubitatif du fait du non respect de principes de bases liés à notre démocratie des solutions existantes.</div>
<div class="para">
<p>Encore une conférence montrant que notre administration publique peut être brillante.</p></div>
<div class="para">
<p>J&#8217;ai oublié de demander s&#8217;il y avait eu un « proof of concept ».</p></div>
</div>
<h2 id="_cl_ture_des_journ_es_ssi">23. Clôture des journées SSI</h2>
<div class="sectionbody">
<div class="para">
<p>François Fayard – ex-DGA/OTAN</p></div>
<h3 id="_notes_24">23.1. Notes</h3>
<div class="para">
<p>n/a</p></div>
<h3 id="_avis_commentaire_23">23.2. Avis / commentaire</h3>
<div class="para">
<p>Hors-sujet du début à la fin. Mais on a eu un bon brief sur l&#8217;OTAN ;)</p></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.timetombs.org/?feed=rss2&amp;p=26</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[apt] &#8211; to change installation status</title>
		<link>http://blog.timetombs.org/?p=25</link>
		<comments>http://blog.timetombs.org/?p=25#comments</comments>
		<pubDate>Sun, 16 Nov 2008 17:48:19 +0000</pubDate>
		<dc:creator>lerouge</dc:creator>
				<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Documentation]]></category>
		<category><![CDATA[SysAd]]></category>
		<category><![CDATA[apt]]></category>
		<category><![CDATA[status]]></category>

		<guid isPermaLink="false">http://blog.timetombs.org/?p=25</guid>
		<description><![CDATA[When installing a package foobar, all its dependencies are installed automatically.
These packages are marked as installed automatically.
If you do an &#8216;apt-get install blarf&#8216;, blarf being a dependence of foobar, it won&#8217;t be installed (as it has been installed automatically). But, its installation status is changed ; it is now set to &#8220;manually installed&#8221;.
To change that [...]]]></description>
			<content:encoded><![CDATA[<p>When installing a package <em>foobar</em>, all its dependencies are installed automatically.</p>
<p>These packages are marked as installed automatically.</p>
<p>If you do an &#8216;<em>apt-get install blarf</em>&#8216;, <em>blarf</em> being a dependence of <em>foobar</em>, it won&#8217;t be installed (as it has been installed automatically). But, its installation status is changed ; it is now set to &#8220;manually installed&#8221;.</p>
<p>To change that back :</p>
<ol>
<li>edit the file <em>/var/lib/apt/extended_states</em></li>
<li>change the value <em>0</em> to <em>1</em> on the line &#8216;<em>auto-installed: </em>&#8216; for the package <em>blarf</em>.</li>
</ol>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.timetombs.org/?feed=rss2&amp;p=25</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>After ssh-keys, try OTP</title>
		<link>http://blog.timetombs.org/?p=23</link>
		<comments>http://blog.timetombs.org/?p=23#comments</comments>
		<pubDate>Wed, 29 Oct 2008 23:18:02 +0000</pubDate>
		<dc:creator>lerouge</dc:creator>
				<category><![CDATA[Documentation]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[one time password]]></category>
		<category><![CDATA[opie]]></category>

		<guid isPermaLink="false">http://blog.timetombs.org/?p=23</guid>
		<description><![CDATA[I wrote a short introduction to one time password (OTP) usage a while ago.
As I said usage, there is no howto install the solution. First, that is quite easy and there are a few pages well done on the Net explaining that part.
My point is about use case.
So here is the document :
https://svn.timetombs.org/svn/tip/tip-nix-soft-opie.html
The solution is [...]]]></description>
			<content:encoded><![CDATA[<p>I wrote a short introduction to one time password (OTP) usage a while ago.</p>
<p>As I said usage, there is no howto install the solution. First, that is quite easy and there are a few pages well done on the Net explaining that part.</p>
<p>My point is about use case.</p>
<p>So here is the document :</p>
<p><a href="https://svn.timetombs.org/svn/tip/tip-nix-soft-opie.html">https://svn.timetombs.org/svn/tip/tip-nix-soft-opie.html</a></p>
<p>The solution is using <em>OPIE</em> on a <em>Debian</em>.</p>
<p>Let me know which generator you are using !</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.timetombs.org/?feed=rss2&amp;p=23</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Generate strong passwords with APG</title>
		<link>http://blog.timetombs.org/?p=22</link>
		<comments>http://blog.timetombs.org/?p=22#comments</comments>
		<pubDate>Wed, 03 Sep 2008 20:14:15 +0000</pubDate>
		<dc:creator>lerouge</dc:creator>
				<category><![CDATA[Documentation]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[SysAd]]></category>
		<category><![CDATA[apg]]></category>
		<category><![CDATA[password]]></category>

		<guid isPermaLink="false">http://blog.timetombs.org/?p=22</guid>
		<description><![CDATA[I just reworked a bit on PAM and especially with pam-craklib.
As I was writing my rules to enforce strong passwords, I thought it would be nice to have an utility to generate password that would match my cracklib rules.
Here is my command line to generate secure passwords using APG [1].
$ apg \
    -a 0 \ [...]]]></description>
			<content:encoded><![CDATA[<p>I just reworked a bit on PAM and especially with pam-craklib.</p>
<p>As I was writing my rules to enforce strong passwords, I thought it would be nice to have an utility to generate password that would match my cracklib rules.</p>
<p>Here is my command line to generate secure passwords using APG [1].</p>
<pre>$ apg \
    -a 0 \      ## default algorithm to generate pronounceable password
    -m 10 \     ## minimum length of ten characters
    -x 12 \     ## maximum length of twelve characters
    -M SNCL \   ## mode used. There must be special symbol (S), numeral
                ##  symbol (N), capital symbol (C), small letters symbol (L)
    -E \" \     ## excluded character '"' (escaped for the shell)
    -y \        ## also print crypted passwords (crypt())
    -l \        ## also spell the password for reading it to someone
    -t \        ## print pronounciation
    -s \        ## ask user for random sequence for password generation
</pre>
<pre>$ apg -a 0 -m 10 -x 12 -M SNCL -E \" -y -l -t -s
$ apg -a 0 -m 10 -x 12 -M SNCL -E \" -t -s
</pre>
<p>One drawback : you cannot specify how many of each kind of symbol you want. So tweak the password you pick (apg generates five ones) to pass your cracklib rules.</p>
<p>Nothing special here ; I just read the man page [2].</p>
<p>[1] http://www.adel.nursat.kz/apg/download.shtml<br />
[2] man apg</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.timetombs.org/?feed=rss2&amp;p=22</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Playing with the last layer before bare metal ; Grub2</title>
		<link>http://blog.timetombs.org/?p=21</link>
		<comments>http://blog.timetombs.org/?p=21#comments</comments>
		<pubDate>Wed, 02 Jul 2008 21:42:15 +0000</pubDate>
		<dc:creator>lerouge</dc:creator>
				<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[SysAd]]></category>
		<category><![CDATA[grub2]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[rescue]]></category>

		<guid isPermaLink="false">http://blog.timetombs.org/?p=21</guid>
		<description><![CDATA[I screwed up my machine and spent almost two days trying to repair it…
Context
My machine&#8217;s hard drive is fully encrypted. This volume is then the PV of an LVM with one VG and several LVs. As the whole hard drive is encrypted, the /boot partition is on a usbkey. So the idea is that Grub [...]]]></description>
			<content:encoded><![CDATA[<p>I screwed up my machine and spent almost two days trying to repair it…</p>
<h4>Context</h4>
<p>My machine&#8217;s hard drive is fully encrypted. This volume is then the PV of an LVM with one VG and several LVs. As the whole hard drive is encrypted, the <em>/boot</em> partition is on a usbkey. So the idea is that Grub is installed on the hard drive (<em>/dev/sda/</em>) MBR, boot with the <em>/boot</em> on a usbkey, then open the crypto container and then activate the LVM and finally mount all the partitions.</p>
<p>My machine is using Sid and therefore <em>Grub2</em>. And this configuration was fully achieve just by using <em>Debian Installer</em>.</p>
<h4>Problem</h4>
<p>The first thing I tried was to remove the usbkey without unmounting <em>/boot</em>. The system was fully functional but it was then impossible to regain access to <em>/boot</em>.</p>
<p>Then one day, I rebooted… (actually, this was an error ;))</p>
<h4>Solution</h4>
<p>After the reboot, I was welcomed with <em>Grub</em> message « Welcome to Grub! » (in rescue mode).</p>
<p>So first, I rebooted on my usbkey (not the one with the <em>/boot</em> partition) which has a Debian installed (see FIXME for details about this usbkey). The idea was to</p>
<ol>
<li>boot,</li>
<li>open the crypto-container,</li>
<li>activate the LVM,</li>
<li>mout all partitions (including <em>/boot</em> on the other usbkey),</li>
<li>chroot</li>
<li>and re-generate an initramfs.</li>
</ol>
<p>Except that this system is i386 and my machine is amd64 ; no way to chroot…</p>
<p>So, Corsac generated an amd64 <em>LiveDebian</em> cd.</p>
<p>This time, I was able to follow the plan (see <em>§ chroot operation</em> below for details). And I rebooted… to get the same message from <em>Grub</em>.</p>
<p>At that stage, we worked together with Corsac (I still did not find a better solution than working with a friend to solve problems ! It&#8217;s good to keep moral up, exchange ideas, get help… ;))</p>
<p>So, now we had to play with <em>Grub</em>…</p>
<p>The first thing to know is that <em>Grub2</em> does not work like <em>Grub</em>.</p>
<p><em>root</em>, <em>kernel</em> and <em>initrd</em> are variables to set. And <em>Grub2</em> has lots of modules that must be loaded before being able to actually do something. Making long story short, the <em>prefix</em> variable was set to <em>(fd1,0)/grub/</em>. Which is totally wrong as I do not even have a floppy drive…</p>
<p>So first, all variables ware unset.</p>
<pre style="padding-left: 30px;">unset prefix
unset root
</pre>
<p>Then the right ones were set.</p>
<pre style="padding-left: 30px;">set root=(hd1,1)
set prefix=(hd1,1)/grub/
</pre>
<p>Then the <em>normal.mod</em> module was loaded and the normal mode launched.</p>
<pre style="padding-left: 30px;">insmod /grub/normal.mod
normal
</pre>
<p>At that stage, the <em>Grub</em> menu was launched and my machine booted normally.</p>
<h4>What we tried within Grub2 « shell »</h4>
<p>But we tried <strong>lots</strong> of things before finding this. Before finding those two culprits we</p>
<ul>
<li>loaded manually <em>ls.mod</em>, <em>_linux.mod</em> and then <em>linux.mod</em> modules and set <em>linux</em> variable to the right value</li>
</ul>
<pre style="padding-left: 60px;">insmod /grub.ls.mod
insmod /grub/_linux.mod
insmod linux.mod
set linux=/boot/vmlinuz-2.6.24-1-amd64 root=/dev/mapper/sda1_crypt
</pre>
<ul>
<li>then <em>initrd.mod</em> module and set <em>initrd</em> variable to the right value</li>
</ul>
<pre style="padding-left: 60px;">insmod /grub/initrd.mod
set initrd=/boot/initrd.img-2.6.24</pre>
<ul>
<li> finaly booting</li>
</ul>
<pre style="padding-left: 60px;">insmod /grub/boot.mod
boot</pre>
<h4>chroot operation</h4>
<p>During the chroot operation, the following steps were done.</p>
<p>Open the cryptocontainer (the name of the unencrypted logical volume <span style="text-decoration: underline;"><strong>must</strong></span> be the one from the system to be rescued. Indeed, it will be exported to the chrooted system and be used when generating the initramfs. If it is not the same unencrypted LV as the system to be rescued, when booting the initramfs won&#8217;t have the name actually used by the system ; it will fail)</p>
<pre style="padding-left: 30px;"># cryptsetup luksOpen /dev/sda5 sda5_crypted</pre>
<p>Activate the LVM using the (now unencrypted) encrypted partition</p>
<pre style="padding-left: 30px;"># lvm vgchange -a y</pre>
<p>Mount the root LV somewhere to chroot within</p>
<pre style="padding-left: 30px;"># mount /dev/mapper/vg_main-slash /mnt/toberescued</pre>
<p>Mount /dev within the chroot so that other LVs are available</p>
<pre style="padding-left: 30px;"># mount --bind /dev /mnt/toberescued/dev</pre>
<p>Actually chroot</p>
<pre style="padding-left: 30px;"># chroot /mnt/toberescued</pre>
<p>Mount the other partitions (the chrooted system <em>/etc/fstab</em> is available)</p>
<pre style="padding-left: 30px;">&lt;toberescued&gt;# mount /proc
&lt;toberescued&gt;# mount /sys
&lt;toberescued&gt;# mount /home
&lt;toberescued&gt;# mount /var
&lt;toberescued&gt;# mount /usr
&lt;toberescued&gt;# mount /tmp
&lt;toberescued&gt;# mount /var/log
&lt;toberescued&gt;# mount /boot
</pre>
<p>Regenerate the initramfs</p>
<pre style="padding-left: 30px;">&lt;toberescued&gt;# update-initramfs -u -t</pre>
<p>Re-install Grub</p>
<pre style="padding-left: 30px;">&lt;toberescued&gt;# grub-install --recheck /dev/sda
</pre>
<p>Unmount everything and exit the chrooted system.</p>
<p style="padding-left: 60px;">
]]></content:encoded>
			<wfw:commentRss>http://blog.timetombs.org/?feed=rss2&amp;p=21</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>sstic 2008 &#8211; compte-rendu</title>
		<link>http://blog.timetombs.org/?p=20</link>
		<comments>http://blog.timetombs.org/?p=20#comments</comments>
		<pubDate>Thu, 19 Jun 2008 20:16:19 +0000</pubDate>
		<dc:creator>lerouge</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[convention]]></category>
		<category><![CDATA[sstic]]></category>

		<guid isPermaLink="false">http://blog.timetombs.org/?p=20</guid>
		<description><![CDATA[Ces notes sont la retranscription de mes notes prises lors des conférences, complétées de celles de mes camarades Yves-Alexis et Delphine.

Elles ne sont qu'une vue (parfois très) partielle des présentations. Reportez-vous aux présentations mises à disposition par le SSTIC. Ces présentations ne sont elles-mêmes qu'une synthèse sans les aspects les plus gore des papiers publiés dans les actes.

Les parties Avis / commentaire n'engagent que moi.

Enfin, toute erreur dans ces notes est mienne.

Sinon, vous pouvez aussi consulter http://sid.rstack.org/blog/index.php/279-le-sstic-2008-en-live qui est un compte-rendu live des conférences.

Et pour finir, les actes prennent le temps d'expliquer plein de choses qui sont jugées connues lors des conférences. Les actes comme les présentations sont disponibles là : http://actes.sstic.org/sstic08/.]]></description>
			<content:encoded><![CDATA[<div id="preamble">
<div class="sectionbody">
<div class="para">
<p>Ces notes sont la retranscription de mes notes prises lors des conférences, complétées de celles de mes camarades Yves-Alexis et Delphine.</p></div>
<div class="para">
<p>Elles ne sont qu&#8217;une vue (parfois très) partielle des présentations. Reportez-vous aux présentations mises à disposition par le SSTIC. Ces présentations ne sont elles-mêmes qu&#8217;une synthèse sans les aspects les plus gore des papiers publiés dans les actes.</p></div>
<div class="para">
<p>Les parties <em>Avis / commentaire</em> n&#8217;engagent que moi.</div>
<div class="para">
<p>Enfin, toute erreur dans ces notes est mienne.</p></div>
<div class="para">
<p>Sinon, vous pouvez aussi consulter <a href="http://sid.rstack.org/blog/index.php/279-le-sstic-2008-en-live">http://sid.rstack.org/blog/index.php/279-le-sstic-2008-en-live</a> qui est un compte-rendu live des conférences.</div>
<div class="para">
<p>Et pour finir, les actes prennent le temps d&#8217;expliquer plein de choses qui sont jugées connues lors des conférences. Les actes comme les présentations sont disponibles là : <a href="http://actes.sstic.org/sstic08/">http://actes.sstic.org/sstic08/</a>.</div>
</div>
</div>
<h2>1. Sécurité, anatomie d&#8217;un désastre annoncé</h2>
<div class="sectionbody">
<div class="para">
<p>par Marcus Ranum / CSO Tenable Network Security, Inc.</p></div>
<h3 id="_notes">1.1. Notes</h3>
<div class="para">
<p>“La sécurité n&#8217;est pas prise en compte”…</p></div>
<div class="para">
<p>Le logiciel est désormais plus complexe qu&#8217;un système tel que la navette spatiale. &#8220;C&#8217;est un miracle que ça marche un peu&#8221;.</p></div>
<div class="para">
<p>D&#8217;un autre côté, l&#8217;informatique n&#8217;a pas (encore) provoqué de morts ; seulement des millions de dollars de perte.</p></div>
<div class="para">
<p>La position générale est qu&#8217;&#8221;il n&#8217;y a pas de problème puisque ça marche&#8221;. Mais la question n&#8217;est pas de savoir <strong>si</strong> il va y avoir une catastrophe, mais <strong>quand</strong>.</div>
<div class="para">
<p>Le cheminement habituel est :</p></div>
<div class="olist">
<ol>
<li>Une mauvaise idée est proposée</li>
<li>Des warnings sont levés pour stopper cette idée</li>
<li>L&#8217;idée survit à ces warnings</li>
<li>On procède à des ajustements pour s&#8217;accommoder des warnings levés. En fait ces accommodements rendent l&#8217;idée moins manifestement dangereuse et surtout compliquent la solution. L&#8217;idée est toujours mauvaise et une catastrophe aura lieu.</li>
<li>L&#8217;écart entre les objectifs et la réalité augmente. L&#8217;écart est de l&#8217;ordre du gouffre.</li>
<li>La catastrophe se produit</li>
<li>On cherche les responsables et on retrouve les mémos</li>
<li>Massacre des innocents</li>
<li>On n&#8217;apprend pas de l&#8217;expérience</li>
<li>Et on recommence</li>
</ol>
</div>
<div class="para">
<p>Une fois qu&#8217;il y a eu beaucoup d&#8217;investissements sur une idée, même mauvaise, elle ne sera plus stoppée. L&#8217;inertie intellectuelle et financière est quasi-infinie.</p></div>
<div class="para">
<p>Les décideurs n&#8217;assumeront pas, malgré les discours.</p></div>
<div class="para">
<p>Une solution possible est que les équipes de sécurité puissent avoir accès au numéro 1 directement. Dès lors, on évite la création artificielle d&#8217;un gouffre entre réalité et perception.</p></div>
<div class="para">
<p>Souligne la perversité des statistiques utilisées pour dire n&#8217;importe quoi.</p></div>
<div class="para">
<p>Les organisations n&#8217;apprennent quasiment jamais de leurs catastrophes…</p></div>
<h3 id="_avis_commentaire">1.2. Avis / commentaire</h3>
<div class="para">
<p>La position de Ranum est clairement le fruit de (très) nombreuses années d&#8217;expérience, et son constat est assez désabusé.</p></div>
<div class="para">
<p>Ranum complète beaucoup son analyse à l&#8217;aide de l&#8217;analyse de Feyman sur la catastrophe de la navette Columbia. Ce qui a le mérite d&#8217;éclairer la problématique de la sécurité plus largement. Ce n&#8217;est pas (qu&#8217;)une problématique informatique. C&#8217;est une problématique générale entre les gens qui comprennent les technologies utilisées et le management.</p></div>
<div class="para">
<p>Néanmoins, il faut bien &#8220;faire des choses&#8221; et donc prendre des décisions. De mon point de vue, tant que les décisions intègrent l&#8217;état de l&#8217;art au moment où elle est prise, il est difficile de faire des reproches a posteriori. Même, si à terme, cette décision s&#8217;avère mauvaise.</p></div>
</div>
<h2 id="_identification_et_exploitation_des_failles_humaines_par_les_pr_dateurs">2. Identification et exploitation des failles humaines par les prédateurs</h2>
<div class="sectionbody">
<div class="para">
<p>informationels : un risque sous-estimé par les entreprises ?</p></div>
<div class="para">
<p>par Michel Iwochewitsch</p></div>
<h3 id="_notes_2">2.1. Notes</h3>
<div class="para">
<p>Prédateurs</p></div>
<div class="ilist">
<ul>
<li>one shot : social engineer, escroc, journaliste</li>
<li>long terme : établissement longue dans l&#8217;entreprise. Discret et bien formé.   Peut viser <strong>tout le monde</strong>. Renseignement, activiste, criminalité organisée.</li>
</ul>
</div>
<div class="para">
<p>Valeurs de l&#8217;information</p></div>
<div class="ilist">
<ul>
<li>pécuniaire : connaître une information avant, même quelques heures</li>
<li>intégrité :</li>
<li>confidentialité : en fusion/acquisition par exemple</li>
<li>disponibilité : non accès au système Sabre pour tout l&#8217;aéroport de Londres</li>
<li>nuisance : temps passé à reconstituer l&#8217;information (vol de laptop)</li>
<li>pour l&#8217;opposition</li>
</ul>
</div>
<div class="para">
<p>Vulnérabilité</p></div>
<div class="para">
<p>L&#8217;exploitation de vulnérabilité n&#8217;a rien d&#8217;un art depuis le développement des sciences cognitives. Pour les russes, le cerveau humain est un système sans firewall.</p></div>
<div class="olist">
<ol>
<li>exploitation de la personne</li>
<li>capacité décisionnelle</li>
<li>besoins sociaux : reprogrammation d&#8217;un fax pour copie systématique (4/10)</li>
<li>loi d&#8217;influence, manipulation, psychologie sociale</li>
<li>heuristiques et biais cognitif</li>
</ol>
</div>
<div class="para">
<p>Disposer des outils pour mieux appréhender la cible.</p></div>
<div class="para">
<p>Failles</p></div>
<div class="olist">
<ol>
<li>la personnalité</li>
<li>la perception et la capacité de réflexion : elle influent sur les décisions et les heuristiques</li>
<li>l&#8217;environnement social : <strong>universel</strong></li>
</ol>
</div>
<div class="para">
<p>Heuristique (modèle mental appliqué dans des situations de danger ou même quotidienne permettant des décisions rapides en environnement incertain)</p></div>
<div class="ilist">
<ul>
<li>de disponibilité : estimation d&#8217;une fréquence en fonction de la facilité des   exemples qui nous viennent à l&#8217;esprit. <em>Ex:</em> un attaquant veut avoir des numéros. Il appelle d&#8217;abord la  standardise et demande des petites choses sans importance, et ce régulièrement. Puis pour la standardiste c&#8217;est normal qu&#8217;il appelle et elle lui donne les numéros.  Mémoire de ce qui s&#8217;est déjà passé.</li>
<li>de représentativité : comparaison cas particulier et cas général. <em>Ex:</em> un   médecin comparant nos symptômes à des listes de combinaisons.</li>
<li>d&#8217;ancrage : estimation de valeurs. On rapproche des valeurs incertaines de   valeurs déjà connues. <em>Ex:</em> nombre de pays dans l&#8217;OTAN → environ 30. En appel, l&#8217;attaquant devient sympathique, il pose des questions, habitude de l&#8217;avoir en ligne. <em>Ex:</em> chat sur internet, on connaît les individus sans les avoir rencontrés.</li>
<li>d&#8217;émotions (primaires et secondaires) : raccourcis heuristiques   fondamentaux. Simple à provoquer et facile à exploiter. Une amorce de base est de demander de l&#8217;aide. Échanger des émotions avec son interlocuteur. <em>Ex:</em> un attaquant appelle est dit que son patron a absolument besoin d&#8217;une information sinon il va se faire lyncher. Mais pour cela il doit se connecter au réseau.  Influence la prise de décision par la pitié.</li>
</ul>
</div>
<div class="para">
<p>Biais cognitif</p></div>
<div class="ilist">
<ul>
<li>effet de primauté : ce biais est lié à l&#8217;archi-cortex. On retient mieux la première information que celles qui suivent (&#8220;oui mais…&#8221;)</li>
<li>effet de Halo : on applique à l&#8217;ensemble d&#8217;un raisonnement un premier   jugement (positif ou négatif) non lié. La 1<sup>ère</sup> chose qu&#8217;on fait, va déterminer le reste de la journée. <em>Ex:</em> un escroc va faire se sentir mal un employé dans son entreprise et lui présenter une porte de sortie</li>
<li>connaissance rétrospective : auto-manipulation de la mémoire. Se   ré-approprier des choses du passé alors qu&#8217;on ne les a pas vécues</li>
<li>complaisance égocentrique : on s&#8217;approprie la réussite et on refuse l&#8217;échec.   <em>Ex:</em> Lors d&#8217;un match, si la France gagne, les supporters s&#8217;exclament &#8220;On a gagné!&#8221;, lorsque la France perd : &#8220;Ils ont perdu!&#8221;</li>
</ul>
</div>
<div class="para">
<p>De manière générale, une perception se forme facilement et est difficile à changer.</p></div>
<div class="para">
<p>La personnalité et son exploitation</p></div>
<div class="ilist">
<ul>
<li>comportement passé</li>
<li>prise de décision</li>
<li>bain culturel</li>
<li>heuristiques et biais cognitif</li>
<li>émotions</li>
<li>personnalité</li>
</ul>
</div>
<div class="para">
<p>Définition des humains (publicité et politique le font)</p></div>
<div class="para">
<p>On utilise plusieurs outils</p></div>
<div class="ilist">
<ul>
<li><em>big five factors</em> : en moins d&#8217;une heure et par téléphone il est possible   d&#8217;avoir le profil de quelqu&#8217;un.  (utilisé par les psy, étoile a 5 branches (schéma))</li>
<li>système de défense de l&#8217;Ego</li>
<li>besoins sociaux de base</li>
</ul>
</div>
<div class="para">
<p>L&#8217;EDS objectif bloquer le processus de décision. Augmenter le stress de décisions.</p></div>
<div class="para">
<p>Les boutons universels</p></div>
<div class="ilist">
<ul>
<li>besoins de reconnaissance</li>
<li>tendance naturelle à l&#8217;effacement</li>
<li>tendance naturelle à corriger les autres</li>
<li>tendance naturelle à vouloir que l&#8217;autre se trompe (l&#8217;ego)</li>
<li>absence d&#8217;oreilles dans ce monde …</li>
</ul>
</div>
<div class="para">
<p>Manipulation des sources</p></div>
<div class="ilist">
<ul>
<li>MICE</li>
<li>ASIE</li>
<li>SANSOUCIS</li>
</ul>
</div>
<div class="para">
<p>Prédateur “one shot”</p></div>
<div class="ilist">
<ul>
<li>social engineer : peu formé, peu de méthodologie</li>
<li>con artist : très bien formé exploite bien les failles simples</li>
<li>opérateur IE</li>
</ul>
</div>
<div class="para">
<p>Il choisit le maillon le plus fragile, et agit rapidement et agressivement.</p></div>
<div class="para">
<p>Élicitation : action d&#8217;obtenir une information sans l&#8217;avoir explicitement demandée.</p></div>
<h3 id="_avis_commentaire_2">2.2. Avis / commentaire</h3>
<div class="para">
<p>Une grosse reprise de son article dans le Misc.</p></div>
<div class="para">
<p>J&#8217;ai trouvé les slides plus intéressantes car moins méthodologiques et plus proches des outils psy / neuro-science. [les slides sont maintenant disponibles].</p></div>
<div class="para">
<p>Grosso-modo, le cerveau humain est facilement manipulable dès que placé en situation de stress ou flatté. Les taux de réussite sont significatifs.</p></div>
</div>
<h2 id="_contactless_smartcard_activation_without_cardholder_agreement">3. Contactless smartcard activation without cardholder agreement</h2>
<div class="sectionbody">
<div class="para">
<p>par Carine Boursier, Pierre Girard, Christophe Mourtel / Menalto</p></div>
<h3 id="_notes_3">3.1. Notes</h3>
<div class="para">
<p>Présentation des cartes à puce (avec un micro-processeur) et non des RFID.</p></div>
<div class="para">
<p>Constituants :</p></div>
<div class="ilist">
<ul>
<li>antenne</li>
<li>chip : micro-processeur</li>
<li>portée : de 0 à 10 cm</li>
<li>champs magnétique : 14 &#8211; 19 MHz</li>
<li>pas de batterie</li>
</ul>
</div>
<div class="para">
<p>La carte et l&#8217;émetteur modulent le champs magnétique pour communiquer (en half-duplex).</p></div>
<div class="para">
<p>Norme ISO1443.</p></div>
<div class="para">
<p>La carte à 250 ms maximum pour tout faire (y compris la sécurité donc).</p></div>
<div class="para">
<p>La bande passante est de 106 kb.s<sup>-1</sup>.</div>
<div class="para">
<p>L&#8217;UID de la carte fait de 4 à 10 octets. C&#8217;est cet UID que l&#8217;on peut tracer.</p></div>
<div class="para">
<p>Deux catégories de risques :</p></div>
<div class="ilist">
<ul>
<li>passif : pas d&#8217;action sur le système. Pas de modification de données   possible. <em>Soft attack</em> (bug) et <em>side channel analysis</em> (on capte le signal, on enregistre et l&#8217;on en déduit ce que fait la carte)</li>
<li>actif : <em>fault attack</em> (perturbation physique), <em>invasive attack</em> (modification du circuit imprimé)</li>
</ul>
</div>
<div class="para">
<p>Les risques :</p></div>
<div class="ilist">
<ul>
<li>listen and eavesdrop data exchanged between the reader and the smart card   during the transaction</li>
<li>tracking : the same during the samrtcard activation. On e-passport there is   a mandatory random value for the UID…</li>
<li>active scanning : unauthorized reader</li>
<li>relay attack : ability to propagate an information over the physical   limitation distance</li>
</ul>
</div>
<div class="para">
<p>Les attaques</p></div>
<div class="ilist">
<ul>
<li>RFID de TI</li>
<li>augmentation de la distance de lecture jusqu&#8217;à 50 cm</li>
<li>Mifare (puce Philips représentant environ 90 % du marché) cracking. Un   algorithme propriétaire a été reversé et craqué.</li>
</ul>
</div>
<div class="para">
<p>Solutions :</p></div>
<div class="ilist">
<ul>
<li>carte dans une cage de Faraday (le papier aluminium est effectif)</li>
<li>action par l&#8217;utilisateur signifiant son accord (push-button)</li>
<li>authentification du lecteur et <em>secure channel</em> (vraies solutions à long   terme)</li>
</ul>
</div>
<div class="para">
<p>Évocation des téléphones NFC (near field communication) qui vont être émetteur et carte… Il existe déjà une attaque publiée…</p></div>
<h3 id="_avis_commentaire_3">3.2. Avis / commentaire</h3>
<div class="para">
<p>Présentation claire de l&#8217;état de l&#8217;art.</p></div>
<div class="para">
<p>Diminue les fantasmes mais montre aussi que des &#8220;attaques&#8221; ne sont pas difficiles à monter. Semble montrer que la solution e-passport est relativement robuste.</p></div>
<div class="para">
<p>Le problème fondamental est d&#8217;avoir un moyen de solliciter l&#8217;accord explicite de l&#8217;utilisateur. Quid d&#8217;une box se souvenir de ma décision à la FF pour les cookies. Ainsi l&#8217;utilisateur pourrait choisir.</p></div>
</div>
<h2 id="_expertise_judiciaire_des_t_l_phones_mobiles">4. Expertise judiciaire des téléphones mobiles</h2>
<div class="sectionbody">
<div class="para">
<p>par David Naccache</p></div>
<h3 id="_notes_4">4.1. Notes</h3>
<div class="para">
<p>Statistiques (attention de 2004)</p></div>
<div class="ilist">
<ul>
<li>Motorola <tt> Nokia </tt> Siemens + Samsung = 70 % marché</li>
<li>types
<div class="ilist">
<ul>
<li>basiques = 22 %</li>
<li>améliorés = 72 %</li>
<li>intelligents = 5 %</li>
<li>pda = 1 %</li>
</ul>
</div>
</li>
<li>~ 1 500 modèles</li>
</ul>
</div>
<div class="para">
<p>Trois types de données</p></div>
<div class="ilist">
<ul>
<li>utilisateur : répertoire, appels, marqueur WAP. Pré-requis : code PIN. Les fabriquants fournissent des outils pour gérer ces données (i.e. <strong>pas</strong> les analyser). Leurs utilisations modifient l&#8217;état du téléphone.</li>
<li>opérateur : IMSI, paramètres SMS, géo-localisation (dernière balise accrochée)</li>
<li>mobile : IMEI (tracé dans l&#8217;envoi de SMS…) et paramétrage</li>
</ul>
</div>
<div class="para">
<p>Deux problèmes :</p></div>
<div class="ilist">
<ul>
<li>PIN : papier officiel du juge le demandant à l&#8217;utilisateur (art. 164 CPC). Sinon pour récupérer un PIN/PUK on peut :
<div class="ilist">
<ul>
<li>se baser sur les papiers d&#8217;ouverture de la ligne (perquisition)</li>
<li>demander à l&#8217;opérateur</li>
<li>demander au fabriquant de carte</li>
<li>craquer la carte</li>
</ul>
</div>
</li>
<li>analyser <strong>sans</strong> modifier l&#8217;état du téléphone</li>
</ul>
</div>
<div class="para">
<p>Techniques d&#8217;extraction</p></div>
<div class="ilist">
<ul>
<li>téléphone cassé = extraction de la flash</li>
<li>piratage légal (extraction du PIN)
<div class="ilist">
<ul>
<li>ver légal</li>
<li>attaque par faute</li>
<li>attaque par consommation de courant</li>
<li>cheval de Troie sur portable (expérimental)</li>
</ul>
</div>
</li>
<li>injection de faute
<div class="ilist">
<ul>
<li>objectif = extraction de PIN, données, etc.</li>
<li>outils = lecteur de précision, oscilloscope, traitement du signal, microscope,     laser (écrasement du PIN), logiciels spécifiques…</li>
<li>deux étapes :
<div class="olist">
<ol>
<li>identifier où et quand injecter la faute</li>
<li>analyser les données fausses obtenues</li>
</ol>
</div>
</li>
</ul>
</div>
</li>
<li>cheval de Troie
<div class="ilist">
<ul>
<li>code hostile dans une applet attractive/innocente et/ou “faussement”     certifiée (comme un jeu)</li>
<li>se déclenche sur sms reçu</li>
<li>demande le code PIN (“error SIM…”)</li>
<li>stocke le PIN, puis l&#8217;envoie</li>
</ul>
</div>
</li>
</ul>
</div>
<div class="para">
<p>Un outil : <em>GemXplore CASE lite</em></div>
<div class="para">
<p>Passage à la présentation et démonstration qu&#8217;une machine peut <strong>toujours</strong> communiquer quoique l&#8217;on fasse. Basé sur un exemple “rigolo” : c&#8217;est le ventilateur qui communique en jouant sur l&#8217;échauffement des composants et un “thermo-bug” récupère l&#8217;information. L&#8217;autre exemple est le passage d&#8217;information entre deux zones isolées par des “pont-levis” (“norme” NSA) sur un FPGA. Tout est fait numériquement…</div>
<h3 id="_avis_commentaire_4">4.2. Avis / commentaire</h3>
<div class="para">
<p>Une bonne introduction / présentation du contexte.</p></div>
<div class="para">
<p>Un long point sur l&#8217;utilisation d&#8217;applet malicieuses. Qui pose toujours la même question : qui signe quoi pour qui ?</p></div>
<div class="para">
<p>Je n&#8217;ai toujours pas compris la digression sur la communication par canal caché mais c&#8217;était rigolo et très impressionnant.</p></div>
</div>
<h2 id="_outils_d_intrusion_automatis_e_risques_et_protections">5. Outils d&#8217;intrusion automatisée : risques et protections</h2>
<div class="sectionbody">
<div class="para">
<p>par Mathieu Blanc /</p></div>
<h3 id="_notes_5">5.1. Notes</h3>
<div class="para">
<p>Outils :</p></div>
<div class="ilist">
<ul>
<li><em>Matasploit</em></li>
<li><em>CoreImpact</em></li>
<li><em>Canvas</em></li>
</ul>
</div>
<div class="para">
<p>Tous intègrent :</p></div>
<div class="ilist">
<ul>
<li>une base d&#8217;exploits</li>
<li>des vulnérabilités distantes, locales et “client side”</li>
<li>une exécution des exploits fiabilisée</li>
<li>la possibilité d&#8217;intégrer des <em>zero days</em> (payant)</li>
</ul>
</div>
<div class="para">
<p>Ces outils passent par les étapes suivantes :</p></div>
<div class="ilist">
<ul>
<li>découverte des systèmes</li>
<li>identification des versions des systèmes</li>
<li>tentative d&#8217;exploitation des vulnérabilités trouvées</li>
<li>déploiement d&#8217;agents sur les machines compromises</li>
<li>élévation des privilèges éventuellement</li>
</ul>
</div>
<div class="para">
<p>Risques :</p></div>
<div class="ilist">
<ul>
<li>erreurs de manipulation</li>
<li>une utilisation d&#8217;un exploit peut déclencher un DoS</li>
</ul>
</div>
<div class="para">
<p>→ il faut connaître les détails des exploits et ses conséquences</p></div>
<div class="para">
<p>Ils ciblent surtout et avant tout Windows.</p></div>
<div class="para">
<p>Pas de furtivité : ces outils sont bruyants et les communications ne sont pas chiffrées</p></div>
<div class="para">
<p>Il y a deux étapes :</p></div>
<div class="olist">
<ol>
<li>la découverte et l&#8217;exploitation d&#8217;une faille pour installer un agent</li>
<li>la mise en place du-dit agent et son utilisation.</li>
</ol>
</div>
<div class="para">
<p>Il est proposé d&#8217;utiliser des signatures de ces agents puisque cela indique 1/ que l&#8217;attaque a réussie et 2/ que l&#8217;outil utilisé est connu.</p></div>
<div class="para">
<p>Cette signature est basée soit :</p></div>
<div class="ilist">
<ul>
<li>sur les traces réseaux de l&#8217;envoi de l&#8217;agent. Ces signatures sont intégrables à <em>Snort</em>, ce qui permet d&#8217;être pro-actif (à condition d&#8217;être rapide ;) ;</li>
<li>sur les appels systèmes de l&#8217;agent et leur séquence. La solution est nettement plus lourde.</li>
</ul>
</div>
<div class="para">
<p>Dans les deux cas, elle est indépendante de la vulnérabilité utilisée en phase 1/.</p></div>
<div class="para">
<p>En conditions réelles, il n&#8217;y a jamais eu de faux-positif sur un mois et demi d&#8217;analyse.</p></div>
<div class="para">
<p>FIXME- syscall proxying</p></div>
<div class="para">
<p>En contre-mesures, l&#8217;habituel :</p></div>
<div class="ilist">
<ul>
<li>la mise à jour des systèmes…</li>
<li>bloquage avec un IDS à partir des signatures détectées ou re-routage dans un environnement confiné</li>
<li>contre-attaque de l&#8217;outil utilisé (eux aussi ont des failles et la machine qui fait tourner l&#8217;outil est en général en petite culotte)</li>
</ul>
</div>
<h3 id="_avis_commentaire_5">5.2. Avis / commentaire</h3>
<div class="para">
<p>Présentation intéressante de ces outils.</p></div>
<div class="para">
<p>J&#8217;en retiens qu&#8217;un bon audit requiert une bonne utilisation de ces outils “automatiques” qui exige toujours une (très) bonne compétence générale et surtout l&#8217;utilisation d&#8217;outils maison. Ouf ! ;)</p></div>
</div>
<h2 id="_bogues_ou_pi_geages_des_processeurs_quelle_cons_quence_sur_la_s_curit">6. Bogues ou piégeages des processeurs : quelle conséquence sur la sécurité ?</h2>
<div class="sectionbody">
<div class="para">
<p>par Loïc Duflot / DCSSI</p></div>
<h3 id="_notes_6">6.1. Notes</h3>
<div class="para">
<p>Toute la présentation s&#8217;appuie sur la réalisation de l&#8217;hypothèse suivante : une machine boguée ou piégée, c&#8217;est la même chose.</p></div>
<div class="para">
<p>Est aussi rappelé que les bogues CPU ont tendance à s&#8217;empiler d&#8217;une génération à une autre et qu&#8217;un CPU lorsqu&#8217;il bogue a un comportement complètement aléatoire.</p></div>
<div class="para">
<p>Petits rappels sur l&#8217;architecture x86 :</p></div>
<div class="ilist">
<ul>
<li>les privilèges vont du ring0 au ring3</li>
<li>deux niveaux de traduction dans le CPU :
<div class="ilist">
<ul>
<li>la segmentation : traduit les adresses physiques en adresses virtuelles utilisées par les programmes. Elle permet le contrôle d&#8217;accès en désignant des modes sur des blocs (adresse de base + taille)</li>
<li>la pagination : présente l&#8217;adressage mémoire pour chaque processus et gère derrière (mémoire principale vs. swap). Des droits sont aussi gérables sur les pages.</li>
</ul>
</div>
</li>
</ul>
</div>
<div class="para">
<p>Objectif du bogue/piège :</p></div>
<div class="ilist">
<ul>
<li>exploitable avec le minimum de droits</li>
<li>donner accès au ring0</li>
<li>fonctionne quelque soient les couches supérieures</li>
<li>discret</li>
</ul>
</div>
<div class="para">
<p>Il est alors démontré en partant de l&#8217;hypothèse d&#8217;un bogue sur l&#8217;instruction “salc”, qu&#8217;en positionnant des registres à une valeur particulière, le champs CPL du processeur est passé à zéro (soit un passage en ring0 pour la tâche courante).</p></div>
<div class="para">
<p>Les démonstrations sont faites avec un QEMU modifié afin d&#8217;émuler un bogue.</p></div>
<div class="para">
<p>Démonstration que cela peut même fonctionner sur des machines virtuelles…</p></div>
<div class="para">
<p>Contre-mesures pour réduire (i.e. pas supprimer) le risque :</p></div>
<div class="ilist">
<ul>
<li>réduire la surface d&#8217;attaque</li>
<li>pas d&#8217;outils de compilation ou d&#8217;exécution de code (macro)</li>
<li>respect des bonnes pratiques de sécurité (accès réseaux…)</li>
</ul>
</div>
<h3 id="_avis_commentaire_6">6.2. Avis / commentaire</h3>
<div class="para">
<p>De manière générale, présentation nettement trop bas niveau pour mes compétences. Ce qui me laisse perplexe, c&#8217;est comment on se débrouille pour planquer du code déclenchant le piège dans une application… Je sais, ce n&#8217;est pas le plus dur, mais n&#8217;empêche.</p></div>
<div class="para">
<p>C&#8217;est flippant. Et pour ceux qui se posent encore la question, ni SELinux, ni TPM ne sont des barrières.</p></div>
<div class="para">
<p>Une autre contre-mesure : disposer de ses propres fondeurs… Au moins, il n&#8217;y a pas de bogue volontaire ;)</p></div>
</div>
<h2 id="_autopsie_et_observation_in_vivo_d_un_em_banker_em">7. Autopsie et observation in vivo d&#8217;un <em>banker</em></h2>
<div class="sectionbody">
<div class="para">
<p>par Frédéric Charpentier et Yannick Hamon</p></div>
<h3 id="_notes_7">7.1. Notes</h3>
<div class="para">
<p>Présentation du virus <em>anserin</em>, spécialisé dans le vol d&#8217;information bancaire.</div>
<div class="para">
<p>Ce virus s&#8217;accroche à IE.</p></div>
<div class="para">
<p>Deux types de serveur dans l&#8217;architecture :</p></div>
<div class="olist">
<ol>
<li><em>collector</em> :
<div class="ilist">
<ul>
<li>mise à jour</li>
<li>collecte des identifiants</li>
<li>sécurisation des flux entre les agents et le back-office (URL chiffré, blacklistage d&#8217;agent “méchant”)</li>
</ul>
</div>
</li>
<li><em>injector</em> :
<div class="ilist">
<ul>
<li>fonctionnalité optionnelle</li>
<li>distribution de formulaires malicieux avec injections simples et évoluées (cartes multi-entrées, clavier virtuel, etc.)</li>
</ul>
</div>
</li>
</ol>
</div>
<div class="para">
<p>Le processus est le suivant :</p></div>
<div class="olist">
<ol>
<li>l&#8217;utilisateur accède à sabank.com</li>
<li><em>anserin</em> demande à son <em>injector</em> s&#8217;il connaît cette banque</li>
<li><em>injector</em> répond oui et envoie le formulaire malicieux qui va bien</li>
<li><em>anserin</em> récupère les données saisies et les envoie sur son <em>collector</em> à un moment ou à un autre</li>
</ol>
</div>
<div class="para">
<p>Les communications sont chiffrées (inversées, hexadécimalisées, XORées avec l&#8217;ID de l&#8217;agent).</p></div>
<div class="para">
<p>Les formulaires (pour 500 et des brouettes banques) sont mis à jour quasi quotidiennement et proprement localisés.</p></div>
<div class="para">
<p>Ce virus est extrêmement résilient au chambardement de l&#8217;architecture (coupure des serveurs) : par un mécanisme de FQDN pseudo-aléatoire il saura retrouver un serveur avec un peu de temps. L&#8217;architecture est aussi capable d&#8217;utiliser des fast-flux DNS. Tout cela est hébergé chez des providers bullet-proof (i.e. ne coupant pas les services même quand la police leur demande) et l&#8217;hébergeur change toutes les semaines. Basé sur la documentation de ces hébergeurs, le coût de fonctionnement mensuel est estimé à 1 000 USD par mois. <em>anserin</em> a commencé en étant hébergé sur le RBN, et utilise des registrar au Panama et Nassau, ce dernier semblant être le pivot. Il est très lié au “secure hosting” et affiche fièrement un blason “hacker free” de FIXME.</div>
<div class="para">
<p>La conclusion est la suivante :</p></div>
<div class="ilist">
<ul>
<li>la course aux signatures anti-virus est perdue</li>
<li>Firefox est aussi concerné (une rump précisera même que Firefox dispose de fonctionnalités (sans hack) au moins aussi dangereuses que celles d&#8217;IE…)</li>
<li>l&#8217;authentification double canal devient impératif (SMS, OTP, etc.)</li>
<li>l&#8217;authentification deux-tiers pour les paiements par CB (3DSecure, SecureCode, etc.)</li>
<li>quid du filtrage par les FAI des serveurs C&amp;C ?</li>
</ul>
</div>
<h3 id="_avis_commentaire_7">7.2. Avis / commentaire</h3>
<div class="para">
<p>Présentation extrêmement visuelle et accessible.</p></div>
<div class="para">
<p>Après ça, on peut se demander pourquoi les banques ne font pas <strong>systématiquement</strong> de l&#8217;authentification forte / double canal…</div>
<div class="para">
<p>Cette présentation illustre bien un sentiment de fond de “professionalisation” (j&#8217;ai horreur de ce terme ; il est employé au sens de “pour faire de l&#8217;argent”) des méchants.</p></div>
<div class="para">
<p>Le dernier point de la conclusion laisse un goût amer…</p></div>
</div>
<h2 id="_gendbg_un_d_bogueur_g_n_rique">8. GenDbg : un débogueur générique</h2>
<div class="sectionbody">
<div class="para">
<p>par Jean-Marie Fraygefond et Didier Eymery / Cellar</p></div>
<h3 id="_notes_8">8.1. Notes</h3>
<div class="para">
<p>Présentation d&#8217;un débogueur multi-plateforme, multi-architecture et multi-OS.</p></div>
<div class="para">
<p>Le but étant de disposer du meilleur de ce qui existe pour chaque point : IHM, scripting, etc.</p></div>
<div class="para">
<p>Les fonctionnalités :</p></div>
<div class="ilist">
<ul>
<li>IHM en mode texte pour l&#8217;efficacité</li>
<li>moteur de script &#8220;maison&#8221; pour rester cohérent avec leurs applications</li>
<li>architecture client/serveur</li>
</ul>
</div>
<div class="para">
<p>L&#8217;architecture est minimaliste. Elle est essentiellement composée de :</p></div>
<div class="ilist">
<ul>
<li>framework : permet de communiquer entre les différents modules</li>
<li>stub : code exécuté sur la machine cible. Il implémente les primitive et est   chargé des interruptions/exceptions de la machine cible.</li>
<li>module ASM : assembleur/désassembleur lié à l&#8217;architecture.</li>
<li>modules optionnels :
<div class="ilist">
<ul>
<li>modules de commande liés à l&#8217;architecture (IA-32, etc.)</li>
<li>modules d&#8217;OS helper (propre à l&#8217;OS cible)</li>
<li>module de symboles</li>
<li>module BT (<em>breakpoint extenders</em> lié à l&#8217;architecture cible)</li>
</ul>
</div>
</li>
</ul>
</div>
<div class="para">
<p>GenDbg permet de mettre plusieurs stub sur une même application. Ce qui est très pratique pour les applications sur VM.</p></div>
<h3 id="_avis_commentaire_8">8.2. Avis / commentaire</h3>
<div class="para">
<p>Encore très bas niveau.</p></div>
<div class="para">
<p>Y&#8217;a des gens comme les opérateurs dans Matrix ; ils lisent l&#8217;assembleur en direct-live… Pas moi ;)</p></div>
</div>
<h2 id="_s_curisation_tat_de_l_art_et_nouveaux_enjeux_des_green_data_center">9. Sécurisation, état de l&#8217;art et nouveaux enjeux des green data center</h2>
<div class="sectionbody">
<div class="para">
<p>par Christophe Weiss / APL France</p></div>
<h3 id="_notes_9">9.1. Notes</h3>
<div class="para">
<p>Présentation des mesures de protection des data centers (DC) : sécurité physique, disponibilité, supervision, etc.</p></div>
<div class="para">
<p>Un DC est un bâtiment sûr et sécurisé avec <strong>personne</strong>.</div>
<div class="para">
<p>Périmètre :</p></div>
<div class="ilist">
<ul>
<li>terrain et environnement</li>
<li>coque (on laisse les générateurs à l&#8217;air libre ?)</li>
<li>architecture intérieure adaptée à l&#8217;exploitation</li>
<li>des installations lourdes et complexes (courants forts…)</li>
<li>supervision en temps réel</li>
</ul>
</div>
<div class="para">
<p>Avant 2004 : 500 W.m<sup>-2</sup> maximum. Redondance n+1</div>
<div class="para">
<p>À partir de 2004 : les serveurs 2U et autres pizza-box arrivent. 500 à 800 W.m<sup>-2</sup></div>
<div class="para">
<p>À partir de 2005 : arrivée des blades. 700 à 1 000 W.m<sup>-2</sup> . Passage à une redondance 2n ou 2(n+1). Introduction de charges capacitives.</div>
<div class="para">
<p>2006 - 2007 : généralisation des charges capacitives. Généralisation des blades. On passe à plus de 1 000 W.m<sup>-2</sup>. Classification des DC par tiers (4).</div>
<div class="para">
<p>2008 : jusqu&#8217;à 12 à 15 kW par baie haute densité.</p></div>
<div class="para">
<p>Les questions sont :</p></div>
<div class="ilist">
<ul>
<li>refroidir le matériel</li>
<li>état capacitaire et marge d&#8217;évolution réelle</li>
<li>quid du tiers IV</li>
<li>solution d&#8217;extinction en cas d&#8217;incendie</li>
<li>optimisation énergétique</li>
</ul>
</div>
<div class="para">
<p><em>Sustainability</em> : aspects liés à la bonne gestion du site</div>
<div class="para">
<p>Marier l&#8217;efficience énergétique et la continuité de service (raison d&#8217;être des DC) est très délicat, ces deux objectifs étant antinomiques.</p></div>
<div class="para">
<p>La climatisation d&#8217;un site représente 63 % de la consommation électrique d&#8217;un DC (33 % pour l&#8217;équipement IT).</p></div>
<div class="para">
<p>Ration PUE (power unit efficiency) = consommation globale du site sur un an (lissage de l&#8217;effet saison) / consommation des équipement IT (sans prise en compte de la charge CPU)</p></div>
<div class="para">
<p>Les PUE sont aux environs de 2,5. La cible est de 1,8 voire 1,6.</p></div>
<div class="para">
<p>Ordre de grandeur du coût de l&#8217;électricité (en France où elle est très peu chère) d&#8217;un DC de 2 000 m<sup>2</sup>, à 1 kW.m<sup>-2</sup> avec un PUE de 2,3 : 1,3 M€ par an.</div>
<div class="para">
<p>La recherche de la redondance exige une multiplication des équipements, donc une augmentation de la consommation et de pertes à faible charge.</p></div>
<div class="para">
<p>La classification par tiers est faite par l&#8217;<em>uptime institute</em>.</div>
<div class="para">
<p>L&#8217;idéal est le tiers IV où <strong>tout</strong> est doublé, y compris l&#8217;alimentation secourue. Ce qui exige plus de surface générale pour moins de surface utile. Un DC appartenant à cette catégorie souffrira d&#8217;une interruption de 0,8 heure par an, soit un arrêt tous les quatre ans.</div>
<div class="para">
<p>Les valeurs des dissipations des constructeurs sont fausses : il faut les diviser par deux.</p></div>
<div class="para">
<p>Listage des besoins et contraintes ÷</p></div>
<div class="ilist">
<ul>
<li>surface</li>
<li>puissance</li>
<li>niveau de service / continuité</li>
<li>évolutions envisageables</li>
<li>modalités d&#8217;exploitation futures</li>
</ul>
</div>
<div class="para">
<p>80 % des DC vont devoir être restructurés dans les cinq ans à venir. Vaut-il mieux restructurer ou reconstruire ?</p></div>
<div class="para">
<p>Les réserves de fioul sont pour une durée de 3 à 5 jours. C&#8217;est une denrée périssable, à renouveler donc.</p></div>
<div class="para">
<p>A priori, seule l&#8217;armée a été intéressée par des DC faradaysés, à sa connaissance.</p></div>
<h3 id="_avis_commentaire_9">9.2. Avis / commentaire</h3>
<div class="para">
<p>Une présentation un peu plus éloignée du CPU (encore que…).</p></div>
<div class="para">
<p>De mon point de vue, un super état de l&#8217;art avec des ratios remis à jour (par rapport à ce que l&#8217;on trouve dans la littérature). Clairement, le monsieur semble savoir de quoi il parle.</p></div>
</div>
<h2 id="_d_protection_semi_automatique_de_binaire">10. Déprotection semi-automatique de binaire</h2>
<div class="sectionbody">
<div class="para">
<p>par Alexandre Gazet et Yoann Guillot</p></div>
<h3 id="_notes_10">10.1. Notes</h3>
<div class="para">
<p>On repart dans du bas niveau.</p></div>
<div class="para">
<p>Rappels sur l&#8217;outil <em>Metasm</em> et en particulier les fonctionnalités de backtracing (fonction limitée dans IDA).</div>
<div class="para">
<p>En fait, toute la présentation repose sur deux exemples tirés de challenges de sécurité.</p></div>
<div class="para">
<p>Avant de présenter leurs exemples, ils présentent ce qui est la base de leur raisonnement / façon de faire. Trouver la sémantique de tout morceau de code et donc pouvoir le factoriser au maximum.</p></div>
<div class="para">
<p>Ils présentent ensuite tout un tas de techniques d&#8217;obfuscation (insertion d&#8217;éléments neutres, expansion de constantes, obfuscation structurelle et complexification à l&#8217;envie).</p></div>
<div class="para">
<p>Le premier exemple (pouet.exe) leur permet de présenter les fonctionnalités de détection de sauts conditionnels biaisés ainsi que le nettoyage/factorisation du code, enfin du graphique présentant le code. On passe d&#8217;un truc impossible à un code exploitable ; il est réduit de près de 80 %.</p></div>
<div class="para">
<p>Le second exemple présente les capacités de nettoyage de junk code inséré par un packer pour rendre illisible/inexploitable le code. Y compris lorsque le-dit code utilise une machine virtuelle (interpréteur)…</p></div>
<h3 id="_avis_commentaire_10">10.2. Avis / commentaire</h3>
<div class="para">
<p>Présentation très claire. Limite j&#8217;avais l&#8217;impression de pouvoir me lancer dans un débogage pour le prochain challenge sécurité…</p></div>
<div class="para">
<p>Ah, aussi, y&#8217;a vraiment des gens vicieux et pas bien dans leur tête quand on voit l&#8217;obfuscation qui peut être faite…</p></div>
</div>
<h2 id="_eresi_une_plate_forme_d_analyse_binaire_au_niveau_noyau">11. ERESI : une plate-forme d&#8217;analyse binaire au niveau noyau</h2>
<div class="sectionbody">
<div class="para">
<p>par Anthony Desnos et Sébastien Roy</p></div>
<h3 id="_notes_11">11.1. Notes</h3>
<div class="para">
<p>Ne prenez pas l&#8217;ascenseur, on reste en bas…</p></div>
<div class="para">
<p>Il s&#8217;agit d&#8217;un ensemble d&#8217;outils dédiés au reverse du noyau. Il assemble de quoi faire du débogage statique et dynamique, ainsi que du scripting. Le tout utilisant un langage propre et commun à toutes les fonctionnalités offertes.</p></div>
<div class="para">
<p>ERESI se compose de :</p></div>
<div class="ilist">
<ul>
<li>logiciels scriptables</li>
<li>librairies+API</li>
</ul>
</div>
<div class="para">
<p>ERESI supporte :</p></div>
<div class="ilist">
<ul>
<li>les architectures : IA-32, Sparc, Mips</li>
<li>les plateformes : Linux, BSD, Solaris</li>
</ul>
</div>
<div class="para">
<p>Il ont ressuscité <em>Kernsh</em> pour l&#8217;occasion et l&#8217;intégrer (aussi). Et puis comme <em>Kernsh</em> il s&#8217;exécute en contexte utilisateur, ils ont écrit <em>Ke2dbg</em> qui lui tourne entièrement en contexte kernel (ça va plus vite, mais c&#8217;est potentiellement plus instable et puis ça peut modifier l&#8217;état du chat…).</div>
<div class="para">
<p>Pour imager tout ça, ils présentent le tout dans le contexte d&#8217;un rootkit (injection de code, détournement de fonctions kernel non-exportées, etc.).</p></div>
<div class="para">
<p>Les fonctionnalités sont entre autres :</p></div>
<div class="ilist">
<ul>
<li>lecture/écriture dans la mémoire kernel (utilisation de <tt>get_raw</tt>, surcharge   des fonctions de <em>libkernsh</em>)</li>
<li>possibilité d&#8217;allouer/libérer de la mémoire (<tt>kmalloc</tt> et/ou syscall   existant)</li>
<li>injection de code</li>
<li>redirection de fonctions (<tt>jump</tt>)</li>
</ul>
</div>
<div class="para">
<p>Les inconvénients :</p></div>
<div class="ilist">
<ul>
<li>le changement de contexte induit des problèmes de performance et de   fiabilité des informations obtenues</li>
<li>bogues</li>
</ul>
</div>
<h3 id="_avis_commentaire_11">11.2. Avis / commentaire</h3>
<div class="para">
<p>Impressionnant mais pas utile tous les jours pour moi ;)</p></div>
</div>
<h2 id="_cryptographie_attaques_tous_azimuts">12. Cryptographie : attaques tous azimuts</h2>
<div class="sectionbody">
<div class="para">
<p>par Jean-Baptiste Bédrune / ESAT</p></div>
<h3 id="_notes_12">12.1. Notes</h3>
<div class="para">
<p>Le but est de présenter comment craquer du chiffrement sans avoir recours à la cryptanalyse lourde.</p></div>
<div class="para">
<p>Présentation de deux cas :</p></div>
<div class="ilist">
<ul>
<li>application web / client lourd Java : les clefs (privées) étaient dans des fichiers…</li>
<li>MacOSX : mot de passe en clair (dans le swap, puis après un fix, dans la RAM)</li>
</ul>
</div>
<div class="para">
<p>L&#8217;idée est qu&#8217;il y a beaucoup de fonctions cryptographiques un peu partout. Le but est alors de retrouver les primitives  puis d&#8217;analyser leur utilisation et enchaînements afin d&#8217;isoler une faiblesse.</p></div>
<div class="para">
<p>Les primitives sont retrouvées à l&#8217;aide de patterns tels que les constantes utilisées (fonction de hash) :</p></div>
<div class="olist">
<ol>
<li>analyse statique : identification des primitives</li>
<li>analyse dynamique : appel à quelle primitive identifiée en 1/ et où.</li>
</ol>
</div>
<h3 id="_avis_commentaire_12">12.2. Avis / commentaire</h3>
<div class="para">
<p>Bref, pas besoin de disposer d&#8217;un centre de calcul en peta flops pour s&#8217;attaquer à la cryptographie. Néanmoins, une connaissance avancée des principales fonctions cryptographiques est requise.</p></div>
</div>
<h2 id="_s_curit_dans_les_r_seaux_de_capteurs">13. Sécurité dans les réseaux de capteurs</h2>
<div class="sectionbody">
<div class="para">
<p>par Jean-Claude Castellucia / INRIA</p></div>
<h3 id="_notes_13">13.1. Notes</h3>
<div class="para">
<p>Capteurs : ensemble de nœuds déployés plus ou moins aléatoirement. Chaque nœud est un capteur et un routeur.</p></div>
<div class="para">
<p>Architecture en arbre : les capteurs sont les feuilles et la station de base la racine</p></div>
<div class="para">
<p>Applications :</p></div>
<div class="ilist">
<ul>
<li>militaire</li>
<li>surveillance de l&#8217;environnement</li>
<li>structure de bâtiment</li>
<li>conditions routières</li>
<li>médicale</li>
</ul>
</div>
<div class="para">
<p>Problème difficile :</p></div>
<div class="ilist">
<ul>
<li>capacités <strong>très</strong> restreintes (cpu et mémoire en quantité limitée)</li>
<li>énergie très limitée et lorsqu&#8217;elle est épuisée, le nœud est out (énergie = 2 × 1,5 V). Utilisation de protocoles très économes</li>
<li>nœud facilement accessible</li>
<li>protection physique difficile</li>
<li>contrainte de prix</li>
</ul>
</div>
<div class="para">
<p>Sécurité</p></div>
<div class="ilist">
<ul>
<li>passif : écoute de ce qui se passe. Mise en place de capteurs dans le même environnement</li>
<li>actif : re-routage des capteurs.</li>
</ul>
</div>
<div class="para">
<p>→ Bambi contre Godzilla.</p></div>
<div class="para">
<p>Résolution</p></div>
<div class="para">
<p>Problématiques diverses selon les usages ÷</p></div>
<div class="ilist">
<ul>
<li>intégrité confidentialité des données</li>
<li>protocole d&#8217;échange de clefs efficaces : comment échanger des clefs entre capteurs sans utilisation d&#8217;un protocole à clefs publiques (trop coûteux)</li>
<li>sécurité du routage (attaquant peut entrer dans le réseau car réseau ad-hoc)</li>
<li>sécurité de localisation du nœud</li>
<li>agrégation sécurisée</li>
</ul>
</div>
<div class="para">
<p>Deux illustrations</p></div>
<div class="ilist">
<ul>
<li>application médicale avec le <em>pacemaker</em>
<div class="ilist">
<ul>
<li>1 ou 2 nœuds non accessible car dans le patient</li>
</ul>
</div>
</li>
<li>application militaire : surveillance</li>
</ul>
</div>
<h4 id="_m_dicale">13.1.1. Médicale</h4>
<div class="para">
<p>Interface sans fil. Le médecin configure l&#8217;implant à distance. Stockage d&#8217;informations dans l&#8217;implant. Récupération des mesures par le médecin. Surveillance, monitoring du patient et réaction en temps réel.</p></div>
<div class="para">
<p>Implant cardiaque (défibrillateur et pacemaker)</p></div>
<div class="para">
<p>Stimulateur cardiaque : stimuli électriques faible périodiquement Défibrillateur : émet des stimuli quand le cœur ne va plus, et hop un stimulus plus fort pour permettre au cœur de reprendre un rythme normal.</p></div>
<div class="para">
<p>Systèmes actuels</p></div>
<div class="ilist">
<ul>
<li>ultra low power cpu + 128ko de RAM</li>
<li>communication par induction (donc proche)</li>
<li>bande passante limitée</li>
</ul>
</div>
<div class="para">
<p>Nouveaux systèmes</p></div>
<div class="ilist">
<ul>
<li>fréquence radio portée de 2 à 3 m. Surveillance à distance, facilité de programmation et d&#8217;installation</li>
<li>bande passante plus importante (400 bits.s<sup>-1</sup>)</li>
</ul>
</div>
<div class="para">
<p>Aspect sécurité</p></div>
<div class="para">
<p>Les systèmes actuels n&#8217;ont aucune sécurité : pas de mécanisme de contrôle d&#8217;accès, pas de confidentialité des données. Un attaquant peut facilement lire les données mesurées et stockées, lire les données personnelles du patient et du médecin, modifier les paramètres et désactiver l&#8217;implant.</p></div>
<div class="para">
<p>Pourquoi ce manque de sécurité ?</p></div>
<div class="ilist">
<ul>
<li>les fabricants jugent cela inutile. Il faut être proche du patient. Mais un attaquant peut utiliser un équipement non standard et donc accéder à  une distance plus importante aux données (cf. conférence Gemalto)</li>
<li>coûteux en terme de ressources (cpu, bande passante, énergie)</li>
</ul>
</div>
<div class="para">
<p>→ compromis sécurité/sûreté : la sécurité ne doit pas mettre en danger le patient en cas d&#8217;urgence. Pas d&#8217;accès aux données par les attaquants mais dans ce cas les données sont aussi inaccessibles aux médecins en cas d&#8217;urgence ? Un attaquant ne doit pas désactiver l&#8217;appareil mais un urgentiste doit pouvoir le faire…</p></div>
<div class="para">
<p>Il faut pouvoir authentifier le lecteur : gestion de clés (données au médecin traitant mais en cas d&#8217;urgence ?) carte a puce ? Comment révoquer les clefs ? PKI ?</p></div>
<div class="para">
<p>Solution contre DoS : combiner RFID et capteur. La puce RFID sert de parefeu. RFID implémente le contrôle d&#8217;accès et vérifie que le lecteur est autorisé. Si le lecteur est accepté alors la communication est rendue possible avec le capteur sinon RFID bloque. Comme RFID est passif il ne consomme pas d&#8217;énergie. Le RFID pourrait émettre un son pour avertir le patient de l&#8217;interaction.</p></div>
<div class="para">
<p>L&#8217;authentification passive est prometteuse. Mais la cryptographie ne suffit pas car le fait d&#8217;émettre des signaux révèle en soi des informations : le patient porte un pacemaker, information intéressante pour un assureur ou un employeur… Il y a déjà atteinte à la protection de la vie privée.</p></div>
<div class="para">
<p>Besoin de protocole qui ne s&#8217;active qu&#8217;en présence de lecteur autorisé mais détectable et accessible en cas d&#8217;urgence. Le patient doit être mis dans la boucle (conscience de ce qui se passe, ça le rassure).</p></div>
<h4 id="_surveillance">13.1.2. Surveillance</h4>
<div class="para">
<p>Un avion envoie des capteurs sur une zone. Le passage d&#8217;un char est détecté et les capteurs préviennent. <em>Ex:</em> feu de foret, routes…</div>
<div class="para">
<p>Caractéristiques</p></div>
<div class="ilist">
<ul>
<li>nombre important de capteurs</li>
<li>capteurs bon marché</li>
</ul>
</div>
<div class="para">
<p>Problème de sécurité</p></div>
<div class="ilist">
<ul>
<li>capteurs facilement accessibles (ils sont dans la nature)</li>
<li>sécurité de l&#8217;infrastructure</li>
<li>distribution et échange de clefs</li>
<li>agrégation des données chiffrées
<div class="ilist">
<ul>
<li>besoin de minimiser les transmissions (consomme beaucoup : 1 bit transmit = 1 000 opérations CPU)</li>
<li>agrégation : données compressées/traitées dans le réseau</li>
</ul>
</div>
</li>
</ul>
</div>
<div class="para">
<p>Agrégation triviale sans sécurité mais devient difficile avec. Confidentialité ? Assurer l&#8217;authenticité ? Intégrité des données ?</p></div>
<div class="ilist">
<ul>
<li>approche saut à saut : chaque noeud chiffre et authentifie les données avec la clef qu&#8217;il partage avec l&#8217;agrégateur.
<div class="ilist">
<ul>
<li>nécessite un protocole d&#8217;échange de clef</li>
<li>coûteux</li>
<li>sécurité faible (agresseur compromis peut accéder aux données)</li>
</ul>
</div>
</li>
<li>approche bout en bout : chaque noeud partage une clef avec la station de base, l&#8217;agrégateur manipule les données chiffrées sans les déchiffrer.
<div class="ilist">
<ul>
<li>besoin d&#8217;un algorithme de chiffrement homomorphe par l&#8217;addition (un peu magique mais ça marche)</li>
<li>l&#8217;agrégateur additionne les données chiffrées</li>
<li>la station de base reconnaît les clefs</li>
</ul>
</div>
</li>
</ul>
</div>
<h3 id="_avis_commentaire_13">13.2. Avis / commentaire</h3>
<div class="para">
<p>Mon seul endormissement pendant quelques slides mais un gros regret. Super, super intéressant. J&#8217;ai lu les actes et les recommande.</p></div>
</div>
<h2 id="_d_p_rim_trisation_futur_de_la_s_curit_r_seau_ou_pis_aller_passager">14. Dépérimétrisation : futur de la sécurité réseau  ou pis aller passager ?</h2>
<div class="sectionbody">
<div class="para">
<p>par Cédric Blancher / EADS</p></div>
<h3 id="_notes_14">14.1. Notes</h3>
<div class="para">
<p>L&#8217;idée serait de sécuriser les données elles-mêmes.</p></div>
<div class="para">
<p>La think-tank derrière le buzz est le <em>Jericho forum</em>.</div>
<div class="para">
<p>Périmètre :</p></div>
<div class="ilist">
<ul>
<li>vieux</li>
<li>ne protège pas</li>
<li>contre productif</li>
</ul>
</div>
<div class="para">
<p>→ il faut donc :</p></div>
<div class="ilist">
<ul>
<li>ouvrir les réseaux</li>
<li>remonter la sécurité vers les applications</li>
</ul>
</div>
<div class="para">
<p>Tout cela pose beaucoup de questions :</p></div>
<div class="ilist">
<ul>
<li>réalité technique ?</li>
<li>réel apport ?</li>
<li>pour quelle cible ?</li>
</ul>
</div>
<div class="para">
<p>D&#8217;un point de vue réseau, l&#8217;objectif est le réseau plat :</p></div>
<div class="ilist">
<ul>
<li>moins de firewall</li>
<li>plus de connectivité (principe IPv6)</li>
<li>sécurité de bout en bout</li>
<li>fonctionnalités telles que l&#8217;overlay (réseau logique over réseau IP, tel que  Skype)</li>
</ul>
</div>
<div class="para">
<p>On voit que l&#8217;on ne supprime pas le périmètre mais qu&#8217;on le reconstruit. Le problème est déplacé sur une couche logique.</p></div>
<div class="para">
<p>La situation n&#8217;évolue pas trop :</p></div>
<div class="ilist">
<ul>
<li>mêmes moyens de sécurité</li>
<li>menaces client-side</li>
<li>problématique de confinement</li>
</ul>
</div>
<div class="para">
<p>→ la question reste de savoir comment gérer l&#8217;exposition des systèmes en terme de résilience, en particulier par rapport au reste du périmètre.</p></div>
<div class="para">
<p>En fait la problématique reste la même :</p></div>
<div class="ilist">
<ul>
<li>mêmes services</li>
<li>mêmes données</li>
<li>mêmes accès</li>
<li>plus une gestion de l&#8217;impact de l&#8217;exposition accrue…</li>
</ul>
</div>
<div class="para">
<p>Le fond du problème réside dans la gestion des données</p></div>
<div class="ilist">
<ul>
<li>la valeur réside dans les données</li>
<li>comment protéger efficacement les données ?</li>
</ul>
</div>
<div class="para">
<p>Et quid de toutes les données ne transitant pas sur un réseau (clef USB) ?</p></div>
<h3 id="_avis_commentaire_14">14.2. Avis / commentaire</h3>
<div class="para">
<p>Probablement la conférence la moins technique.</p></div>
<div class="para">
<p>Une bonne synthèse sur un sujet <em>hot</em> en ce moment qui évite de se taper pas mal de lecture pour se forger son opinion.</div>
<div class="para">
<p>Surtout à faire lire à des n+<em>x</em> pour tuer le zombie avant qu&#8217;il ne s&#8217;élance…</div>
<div class="para">
<p>Pas de solution miracle concernant la protection de la donnée elle-même (étonnant ;)). Et même, ce qu&#8217;il faudrait c&#8217;est une protection de la donnée selon le contexte d&#8217;utilisation… /dream_off</p></div>
</div>
<h2 id="_pentests_r_veillez_moi_je_suis_en_plein_cauchemar">15. Pentests : réveillez-moi, je suis en plein cauchemar !</h2>
<div class="sectionbody">
<div class="para">
<p>par Marie Barel / Orange business service</p></div>
<h3 id="_notes_15">15.1. Notes</h3>
<div class="para">
<p>Mission du <em>pen-testeur</em> : détecter et exploiter des vulnérabilités d&#8217;un SI.</div>
<div class="para">
<p>Démarche en boite noire :</p></div>
<div class="olist">
<ol>
<li>recueil d&#8217;information sur la cible et cartographie</li>
<li>identification des vulnérabilités</li>
<li>exploit</li>
<li>collecte des preuves</li>
</ol>
</div>
<div class="para">
<p>Risques liés à la cible :</p></div>
<div class="ilist">
<ul>
<li>tests sur un système sans autorisation (avant-vente…)</li>
<li>erreur sur la cible</li>
<li>test sur une partie SI hors du champs de responsabilité du signataire du  contrat</li>
<li>dépassement du périmètre contractuel des tests</li>
<li>SI cible hébergé par un tiers</li>
<li>test impliquant l&#8217;attaque de systèmes tiers pour faire un rebond</li>
</ul>
</div>
<div class="para">
<p>Article 323.1 du CP. Pour <em>prouver</em>, il faut :</div>
<div class="ilist">
<ul>
<li>un fait matériel</li>
<li>une intention frauduleuse
<div class="ilist">
<ul>
<li>sans droit</li>
<li>en connaissance de cause</li>
</ul>
</div>
</li>
</ul>
</div>
<div class="para">
<p>Protections :</p></div>
<div class="ilist">
<ul>
<li>caractère obligatoire du contrat “mandat express”</li>
<li>durée et modalités des tests</li>
<li>étapes de validation :
<div class="ilist">
<ul>
<li>qualité et pouvoir du signataire</li>
<li>périmètre de la cible (validation de la cartographie après la première      étape)</li>
<li>collecte de l&#8217;autorisation des tiers</li>
</ul>
</div>
</li>
</ul>
</div>
<h3 id="_avis_commentaire_15">15.2. Avis / commentaire</h3>
<div class="para">
<p>Encore une bonne synthèse sur le sujet.</p></div>
<div class="para">
<p>Évidemment, l&#8217;intervenant (le masculin ne marque pas le genre en français, faites pas iech…) n&#8217;approuve pas les contrats type. On se doute que chaque cas est unique et qu&#8217;il faille adapter, mais éviter de repartir à zéro à chaque fois, ça fait gagner un peu de temps et des gens capables d&#8217;inventer l&#8217;eau chaude, il n&#8217;y en a pas beaucoup…</p></div>
</div>
<h2 id="_une_architecture_de_workspaces_ubiquitaires_s_curis_e_et_distribu_e">16. Une architecture de workspaces ubiquitaires, sécurisée et distribuée</h2>
<div class="sectionbody">
<div class="para">
<p>par <em>J. Rouzaud-Cornabas</em> / LIFO</div>
<h3 id="_notes_16">16.1. Notes</h3>
<div class="para">
<p>L&#8217;idée du bureau distant part du constat suivant :</p></div>
<div class="ilist">
<ul>
<li>augmentation bande passante</li>
<li>clients légers</li>
<li>centralisation du SI (mutualisation, économies d&#8217;énergie…)</li>
<li>augmentation de la sécurité</li>
</ul>
</div>
<div class="para">
<p>Le projet est pensé avec la sécurité en premier plan depuis la conception.</p></div>
<div class="para">
<p>La solution s&#8217;appuie sur :</p></div>
<div class="ilist">
<ul>
<li>KDE</li>
<li>technologie NX : 10 kb.s<sup>-1</sup> par utilisateur</li>
<li>sécurisation des flux avec openssh</li>
<li>authentification sur la base du couple <em>Kerberos</em> et <em>LDAP</em>. Solution de SSO.</li>
<li>virtualisation : virtualisation légère utilisant la solution <em>OpenVZ</em> (gestion de quotas poussée)</li>
</ul>
</div>
<div class="para">
<p>Migration à chaud et répartition de charge (dynamique de par l&#8217;utilisation d&#8217;un système P2P) et reprise automatique sur panne. Pas encore en production.</p></div>
<div class="para">
<p>Le système est très surveillé à l&#8217;aide <em>SNORT</em>, <em>NAGIOS</em>, <em>OSIRIS</em>. De nombreuses alarmes sont générées ; ce n&#8217;est pas gérable par un humain. Aussi, y a-t-il des machines à état pour corréler toutes ces alertes :</div>
<div class="olist">
<ol>
<li>nœud = événement</li>
<li>arc = transition chronologique, à autoriser sous conditions</li>
</ol>
</div>
<div class="para">
<p>L&#8217;architecture est entièrement composée d&#8217;élément en GPL.</p></div>
<div class="para">
<p>Actuellement en production sur quatre machines physiques avec chacune 6 à 7 workspaces.</p></div>
<div class="para">
<p>Sont passés de <em>MySQL</em> à <em>PostgreSQL</em> à cause d&#8217;un problème de mise à l&#8217;échelle.</div>
<h3 id="_avis_commentaire_16">16.2. Avis / commentaire</h3>
<div class="para">
<p>Intéressant.</p></div>
<div class="para">
<p>Je ne suis pas sûr qu&#8217;une présentation de 30 minutes permette de se rendre compte de la quantité de travail que ce projet représente…</p></div>
<div class="para">
<p>Je serai curieux de connaître le résultat de la mise en production lors de la rentrée 2009.</p></div>
</div>
<h2 id="_take_a_walk_on_the_wild_side">17. Take a walk on the wild side</h2>
<div class="sectionbody">
<div class="para">
<p>par <em>G. Arcas</em></div>
<h3 id="_notes_17">17.1. Notes</h3>
<div class="para">
<p>La papier s&#8217;appuie sur l&#8217;analyse de 6 Go de traces réseaux (juillet 2007 à mars 2008). Pas de reverse.</p></div>
<div class="para">
<p><em>Stormworm</em> : cheval de Troie, rootkit.</div>
<div class="para">
<p>Apparu fin 2006.</p></div>
<div class="para">
<p>Premier botnet avec un C&amp;C en P2P fiable.</p></div>
<div class="para">
<p>Principalement utilisé pour :</p></div>
<div class="ilist">
<ul>
<li>du spam</li>
<li>DDoS</li>
<li>proxification web/DNS</li>
</ul>
</div>
<div class="para">
<p>Utilise du fast-flux hosting.</p></div>
<div class="para">
<p>Suspect numéro 1 ruse | en russie (au choix). Utilisation des infrastructures RBN jusqu&#8217;en octobre 2007.</p></div>
<h3 id="_avis_commentaire_17">17.2. Avis / commentaire</h3>
<div class="para">
<p>Pour ceux qui ne se seraient pas tapés la lecture de la tonne de littérature sur le sujet, ben c&#8217;est un bon point d&#8217;entrée ;).</p></div>
<div class="para">
<p>J&#8217;ai beaucoup aimé la question de l&#8217;ajout de certificats sur les postes infectés ou de l&#8217;utilisation de capacités de stockage, suite à l&#8217;ajout de la capacité DNS dans l&#8217;architecture de <em>storm</em>.</div>
</div>
<h2 id="_em_sinfp_em_unification_de_la_prise_d_empreinte_active_et_passive_des_syst_mes_d_exploitation">18. <em>SinFP</em>, unification de la prise d&#8217;empreinte active et passive des systèmes d&#8217;exploitation</h2>
<div class="sectionbody">
<div class="para">
<p>par P. Auffret /</p></div>
<h3 id="_notes_18">18.1. Notes</h3>
<div class="para">
<p>OSFP = art d&#8217;identifier la nature d&#8217;un OS par l&#8217;analyse de la manière dont il construit ses paquets réseaux</p></div>
<div class="para">
<p>Deux modes :</p></div>
<div class="ilist">
<ul>
<li>actif : provoquer des réponses à l&#8217;aide de requêtes construites</li>
<li>passif : écoute seule des requêtes et des réponses</li>
</ul>
</div>
<div class="para">
<p>→ les empreintes sont différentes dans les deux modes.</p></div>
<div class="para">
<p>Outils actuels ont de nombreuses limitations :</p></div>
<div class="ilist">
<ul>
<li>très détectable par les IDS</li>
<li>utilisation de nombreux protocoles souvent filtrés</li>
<li>utilisation de paquets non standard avec dommages collatéraux (crash et détection)</li>
<li>utilisation de ports différents : une autre machine en coupure peut répondre à la place</li>
<li>souvent IPv4 seulement</li>
<li>utilisation de bases de signatures (grosses) différentes pour l&#8217;actif et le passif</li>
</ul>
</div>
<div class="para">
<p>Les principes de <em>SinFP</em> :</div>
<div class="ilist">
<ul>
<li>utilisation de trois paquets standards sur un même port ouvert maximum (mais il est tout à fait possible de faire une prise d&#8217;empreinte avec seulement le deuxième paquet)
<div class="olist">
<ol>
<li>1 paquet TCP SYN sans option TCP</li>
<li>1 TCP SYN avec options TCP</li>
<li>1 TCP SYN+ACK (pour RST+ACK)</li>
</ol>
</div>
</li>
<li>une seule base de signatures (les signatures passives sont dérivées)</li>
<li>IPv6 compliant</li>
</ul>
</div>
<div class="para">
<p>en se plaçant toujours dans les pires conditions possibles. (un seul port ouvert, filtrage state-full, packet scrubbing, etc.)</p></div>
<div class="para">
<p>Une empreinte peut varier en fonction :</p></div>
<div class="ilist">
<ul>
<li>des conditions réseau</li>
<li>des dispositifs de filtrage</li>
<li>de la personnalisation de la pile IP</li>
</ul>
</div>
<div class="para">
<p>→ on utilise donc des masques pour redresser les distortions</p></div>
<div class="para">
<p>Ces masques se basent sur cinq éléments :</p></div>
<div class="ilist">
<ul>
<li>binary</li>
<li>flags</li>
<li>window size</li>
<li>options</li>
<li>mss</li>
</ul>
</div>
<h3 id="_avis_commentaire_18">18.2. Avis / commentaire</h3>
<div class="para">
<p>Avec mes maigres connaissances en la matière, je trouvais que des réponses différentes à des sollicitations de ports différents dues à des répondeurs en coupure ou re-routés permettaient justement d&#8217;avoir une bonne cartographie…</p></div>
<div class="para">
<p>Le type présente ça avec une simplicité déconcertante alors qu&#8217;il doit pouvoir directement parler sur le réseau…</p></div>
<div class="para">
<p>Je ne connaissais pas et je vais essayer (ce n&#8217;est pas dans la <em>Debian</em>).</div>
</div>
<h2 id="_le_recueil_de_la_preuve_num_rique">19. Le recueil de la preuve numérique</h2>
<div class="sectionbody">
<div class="para">
<p>par Nicolas Duvinage / département informatique-électronique de l&#8217;IRCGN (i.e. les experts au pays merveilleux…)</p></div>
<h3 id="_notes_19">19.1. Notes</h3>
<div class="para">
<p>IRCGN :</p></div>
<div class="ilist">
<ul>
<li>25 % de 3<sup>ème</sup> cycle</li>
<li>50 % de 2<sup>ème</sup> cycle</li>
</ul>
</div>
<div class="para">
<p>Département : 15 personnes dont 12-13 ingénieurs</p></div>
<div class="para">
<p>L&#8217;institut répond aux normes ISO 17025.</p></div>
<div class="para">
<p>Quotidien : très peu de piratage. C&#8217;est du basique :</p></div>
<div class="ilist">
<ul>
<li>très peu d&#8217;intrusion/compromission mènent à des affaires judiciaires</li>
<li>90 % de Windows, très peu de chiffrement (zip avec mots de passe)</li>
<li>communications email et MSN</li>
</ul>
</div>
<div class="para">
<p>Trois types de crimes &amp; délits :</p></div>
<div class="ilist">
<ul>
<li>ceux où l&#8217;objet numérique est accessoire (mails, sms)</li>
<li>ceux où l&#8217;objet numérique est utilisé de façon principale (contenu illicite sur le net)</li>
<li>ceux où l&#8217;objet numérique est l&#8217;objet de l&#8217;infraction (craquage de carte téléphonique)</li>
</ul>
</div>
<div class="para">
<p>Les deux premiers types, le suspect a une faible connaissance (voire nulle) des objets numériques en cause.</p></div>
<div class="para">
<p>Dans <strong>tous</strong> les cas, le travail d&#8217;analyse de la preuve doit être scientifique et indiscutable.</div>
<div class="para">
<p>Preuve numérique :</p></div>
<div class="ilist">
<ul>
<li>tout élément matériel ou immatériel</li>
<li>recueilli et analysé dans le respect de la législation</li>
<li>apportant un indice (disculpant, incriminant, autre)</li>
</ul>
</div>
<div class="para">
<p>En pratique, il s&#8217;agit de :</p></div>
<div class="ilist">
<ul>
<li>supports de stockage numérique : magnétique, (les plus ennuyeux étant les cassettes de sauvegarde), flash, optique, magnéto-optique, micro-contrôleur, carte à puce</li>
<li>informations stockées chez des tiers : logs des FAI</li>
</ul>
</div>
<div class="para">
<p>Le recueil se fait de manière :</p></div>
<div class="ilist">
<ul>
<li>directe : perquisition</li>
<li>indirecte : réquisition judiciaire</li>
</ul>
</div>
<div class="para">
<p>Difficultés :</p></div>
<div class="ilist">
<ul>
<li>objets numériques très répandus, qui peuvent tous contenir quelque chose d&#8217;intéressant, mais les enquêteurs ne peuvent pas être partout</li>
<li>preuve peut être stockée sur un serveur distant (hors de France)</li>
<li>très grande variété de formes</li>
<li>ordinateur allumé, comment l&#8217;éteindre
<div class="ilist">
<ul>
<li>extinction propre ou arrache de prise ?</li>
<li>transporter sans l&#8217;éteindre ?</li>
</ul>
</div>
</li>
<li>GSM et sim en fonctionnement
<div class="ilist">
<ul>
<li>extinction avec risques de non accès ultérieur ?</li>
<li>transport allumé avec risque de réception de messages ?</li>
<li>cage de faradayø?</li>
</ul>
</div>
</li>
</ul>
</div>
<div class="para">
<p>Exploitation :</p></div>
<div class="ilist">
<ul>
<li>l&#8217;exploitation <strong>ne</strong> doit <strong>pas</strong> modifier l&#8217;élément de preuve car :
<div class="ilist">
<ul>
<li>il faut pouvoir rendre indiscutable ce qui est trouvé</li>
<li>il faut, si il y a contre-expertise, qu&#8217;elle trouve les mêmes résultats</li>
</ul>
</div>
</li>
<li>mais :
<div class="ilist">
<ul>
<li>booter modifie pleins de choses (logs, etc.)</li>
<li>même en montant le disque dur en esclave sur un autre système, il y a des   précautions à prendre (<tt>-ro</tt> est un peu court) Quid de <em>SMART</em> et <em>GListRemapper</em> ?</li>
</ul>
</div>
</li>
<li>risques de pannes matériel</li>
</ul>
</div>
<div class="para">
<p>Donc, on travaille <strong>systématiquement</strong> (autant que possible) sur une copie :</div>
<div class="ilist">
<ul>
<li>blocage (matériel &#8211; voir <a href="http://tableau.com/">http://tableau.com</a> &#8211; ou logiciel - again <tt>-ro</tt> ne suffit pas) en écriture</li>
<li>ordre des examens (empreintes sur un CD, etc.)</li>
<li>connectique trop ancienne ou trop rare</li>
<li>connectique ne supportant pas la copie bit à bit</li>
<li>copie bit à bit qui modifie l&#8217;originale (dessoudage)</li>
<li>secteurs défectueux</li>
<li>supports endommagés / en panne</li>
</ul>
</div>
<div class="para">
<p>La copie est ensuite (techniquement) analysée :</p></div>
<div class="ilist">
<ul>
<li>analyse semi-automatique de systèmes de fichiers avec divers outils   commerciaux ou pas (<em>PhotoRec</em> pour le carving)</li>
<li>FS rares ou pas documentés (GSM etc.)</li>
<li>formats bizarres</li>
<li>problèmes non techniques
<div class="ilist">
<ul>
<li>quoi chercher</li>
<li>comment les mettre à disposition (format de fichier et support physique)</li>
</ul>
</div>
</li>
<li>capacité des disques croissante, mais temps de GAV ne bouge pas</li>
<li>problèmes de tri et de temps d&#8217;analyse</li>
</ul>
</div>
<div class="para">
<p>Mais l&#8217;analyse technique ne suffit pas :</p></div>
<div class="ilist">
<ul>
<li>mettre les données en perspective, wrt. reste de l&#8217;enquête</li>
<li>rendre les analyses compréhensibles par un non-spécialiste</li>
<li>exprimer clairement les limites de l&#8217;analyse</li>
</ul>
</div>
<div class="para">
<p>Conseils lors de la découverte de ce que l&#8217;on pense être une infraction :</p></div>
<div class="ilist">
<ul>
<li>ce n&#8217;est pas forcément une infraction</li>
<li>le suspect n&#8217;est pas forcément responsable</li>
<li>un responsable n&#8217;est pas forcément coupable (pour de vrai)</li>
<li>même coupable, il ne sera peut-être pas forcement condamné</li>
<li>attention aux fausses accusations</li>
<li>prudence et discrétion
<div class="ilist">
<ul>
<li>attention aux complicités internes</li>
</ul>
</div>
</li>
<li>pas de jugements hâtifs (<strong>présomption d&#8217;innocence</strong>)</li>
<li>réagir vite, mais en respectant le droit
<div class="ilist">
<ul>
<li><strong>pas</strong> de perquisition sauvage, analyse de fichiers personnels, etc.</li>
</ul>
</div>
</li>
<li>préserver les éléments de preuves
<div class="ilist">
<ul>
<li>changer le pc (en prétextant une maintenance, une mise à jour, une infraction moins grave, etc.)</li>
</ul>
</div>
</li>
</ul>
</div>
<h3 id="_avis_commentaire_19">19.2. Avis / commentaire</h3>
<div class="para">
<p>Une présentation carrée, structurée, claire, intéressante. Non pas que les autres ne l&#8217;étaient pas aussi, mais là je pense que c&#8217;est un modèle d&#8217;école.</p></div>
<div class="para">
<p>Sinon, pensez à regarder des séries françaises. Le monsieur a dit que ça a tendance à énerver le gendarme qui débarque à 0600 quand on lui demande un mandat…</p></div>
<div class="para">
<p>Je vous invite à lire les papiers concernant les <em>cold boot attack</em> pour certaines questions levées ici.</div>
</div>
<h2 id="_voyage_au_c_ur_de_la_m_moire">20. Voyage au cœur de la mémoire</h2>
<div class="sectionbody">
<div class="para">
<p>par D. Aumaître</p></div>
<h3 id="_notes_20">20.1. Notes</h3>
<div class="ilist">
<ul>
<li>présentation orientée Windows</li>
<li>mémoire physique = vue indépendante de l&#8217;OS</li>
<li>multiples points d&#8217;accès</li>
</ul>
</div>
<div class="para">
<p>Mais :</p></div>
<div class="ilist">
<ul>
<li>besoin de reconstruire les structures de l&#8217;OS</li>
<li>base de la mémoire pour un process stocké dans la structure _KProcess</li>
<li>la structure _KProcess est retrouvable en cherchant les structures  _Dispatcher_header qui ont une signature fixe puis en éliminant les  mauvaises possibilités</li>
</ul>
</div>
<h4 id="_comment_acc_der_la_m_moire_physique">20.1.1. Comment accéder à la mémoire physique ?</h4>
<div class="ilist">
<ul>
<li>firewire</li>
<li>VMWare</li>
<li>fichiers d&#8217;hybernation</li>
<li>forensic</li>
<li>coldboot attack</li>
</ul>
</div>
<div class="para">
<p>Le firewire permet l&#8217;accès direct à la mémoire physique via DMA.</p></div>
<div class="para">
<p>L&#8217;accès à la mémoire est contrôlé par deux registres dans le contrôleur firewire qui est interdit par défaut sous Windows <strong>sauf</strong> pour certains périphériques (stockage de masse). La carte d&#8217;identité d&#8217;un ordinateur est modifiable, on peut donc la transformer et faire passer son Linux pour un iPod…</div>
<h4 id="_acc_s_direct_la_m_moire">20.1.2. Accès direct à la mémoire</h4>
<div class="ilist">
<ul>
<li>en lecture :
<div class="ilist">
<ul>
<li>utilisation de <em>Process Explorer 101</em>, clone de <em>Process Explorer</em>.      Utilise les informations suivantes : voir papier</li>
<li>utilisation de <em>Regedit 101</em>, clone de <em>Regedit</em>. Utilise les      informations suivantes : voir papier</li>
<li>→ forensic, récupération de données « sensibles »</li>
</ul>
</div>
</li>
<li>en écriture :
<div class="ilist">
<ul>
<li>patch de deux octets dans la base de registre</li>
<li>→ login sans mot de passe</li>
</ul>
</div>
</li>
<li>en exécution
<div class="ilist">
<ul>
<li>détournement de pointeurs de fonctions. Si l&#8217;adresse d&#8217;un gestionnaire      d&#8217;interruption est modifiée par du code contrôlé, celui-ci est exécuté      à chaque fois que l&#8217;interruption est appelée</li>
<li>démonstration en exécutant un shell alors que la machine attaquée à la      fenêtre de login</li>
<li>→ whatever ;)</li>
</ul>
</div>
</li>
</ul>
</div>
<h3 id="_avis_commentaire_20">20.2. Avis / commentaire</h3>
<div class="para">
<p>Impressionnant. Je pense que tout le monde était relativement pantois devant la démonstration ;)</p></div>
<div class="para">
<p>Pourquoi, puisque les *nix autorisent par défaut l&#8217;accès directe à la mémoire (en r pour Linux, en rw pour BSD et OSX), l&#8217;exploit n&#8217;est pas (aussi) présenté sur les *nix ?</p></div>
</div>
<h2 id="_recherche_et_d_veloppement_en_s_curit_des_syst_mes_d_information_orientations_et_enjeux">21. Recherche et développement en sécurité des systèmes d&#8217;information : orientations et enjeux</h2>
<div class="sectionbody">
<div class="para">
<p>par F. Chabaud / DCSSI</p></div>
<h3 id="_notes_21">21.1. Notes</h3>
<h4 id="_enjeux_de_souverainet">21.1.1. Enjeux de souveraineté</h4>
<div class="ilist">
<ul>
<li>autonomie</li>
<li>protection du citoyen</li>
</ul>
</div>
<h4 id="_la_s_curit">21.1.2. La sécurité</h4>
<div class="para">
<p>Se base sur l&#8217;article « the six dumbest ideas in computer security » par Marcus Ranum (<a href="http://www.ranum.com/security/computer_security/editorials/dumb/">http://www.ranum.com/security/computer_security/editorials/dumb/</a>)</div>
<div class="ilist">
<ul>
<li>autorisation par défaut : principe de la démocratie mais… Un utilisateur  utilise moins de trente applications…</li>
<li>recenser les vulnérabilités</li>
<li>pénétrer et corriger</li>
<li>le hacking c&#8217;est super : quid d&#8217;enseigner à faire des systèmes sûrs…</li>
<li>sensibiliser l&#8217;utilisateur : si l&#8217;on compte sur l&#8217;utilisateur, c&#8217;est que  l&#8217;on est en autorisation par défaut… Si ça avait dû marcher, ça aurait  déjà marché…</li>
<li>il vaut mieux agir que de ne rien faire : « il est plus facile de ne pas  faire quelque chose d&#8217;idiot que de faire quelque chose d&#8217;intelligent »</li>
</ul>
</div>
<div class="para">
<p>Tout ça, mais avec quelques nuances.</p></div>
<h4 id="_d_fense_en_profondeur">21.1.3. Défense en profondeur</h4>
<div class="para">
<p>Olivier Gobelin</p></div>
<div class="para">
<p>Travailler sur tous les points suivants qui définissent la défense en profondeur :</p></div>
<div class="ilist">
<ul>
<li>prévenir</li>
<li>bloquer</li>
<li>renforcer</li>
<li>détecter</li>
<li>réparer</li>
</ul>
</div>
<div class="para">
<p>Mais, de manière générale :</p></div>
<div class="ilist">
<ul>
<li>on est mauvais en prévention</li>
<li>on mise trop sur le blocage (firewall), systèmes très connectés</li>
<li>on est mauvais en tolérance aux agressions</li>
<li>on commence à peine à faire de la détection</li>
<li>capacité de réparation très faible
<div class="olist">
<ol>
<li>cycle de réparation très long</li>
<li>quid de la réparation d&#8217;une puce de téléphone «ømauvaiseø»ø?</li>
</ol>
</div>
</li>
</ul>
</div>
<div class="para">
<p>La plupart des problèmes est liée à des erreurs de conception.</p></div>
<div class="para">
<p>La priorité devrait être au développement d&#8217;OS moins vulnérable et plus tolérant.</p></div>
<div class="para">
<p>Point sur le concept du honeypot. Pourquoi ne pas utiliser le principe mais pour des systèmes en production ?</p></div>
<h4 id="_forces_amp_faiblesses_de_la_recherche_fran_aise">21.1.4. Forces &amp; faiblesses de la recherche française</h4>
<div class="ilist">
<ul>
<li>atouts
<div class="ilist">
<ul>
<li>bonne école de cryptographie</li>
<li>bonne école de méthodes formelles</li>
</ul>
</div>
</li>
</ul>
</div>
<div class="para">
<p>Mais les systèmes sont déjà bien standardisés aux niveau de la cryptographie et utilisent rarement les méthodes formelles. La qualité de la recherche française dans ces domaines a peu d&#8217;impact sur les systèmes opérationnels.</p></div>
<div class="ilist">
<ul>
<li>faiblesses
<div class="ilist">
<ul>
<li>déséquilibre grave. Des compétences cruciales ne sont pas couvertes :
<div class="olist">
<ol>
<li>OS</li>
<li>protocoles réseaux</li>
<li>architectures matérielles</li>
</ol>
</div>
</li>
<li>bonne expertise dans l&#8217;analyse, mais pas dans la conception</li>
<li>recherches académiques sont peu connues des industriels</li>
<li>sensibilisation des décideurs</li>
<li>ré-équilibration de la recherche dans les domaines de la SSI (vastes domaines : cryptographie, informatique, électronique, protocoles, physique, etc.)</li>
<li>problème du retour sur investissement</li>
<li>besoin d&#8217;une communauté SSI</li>
<li>industriels doivent pouvoir identifier facilement les chercheurs   susceptibles de les aider</li>
<li>structure d&#8217;échange</li>
</ul>
</div>
</li>
</ul>
</div>
<h4 id="_th_matiques_prioritaires">21.1.5. Thématiques prioritaires</h4>
<div class="para">
<p>Issues du rapport d&#8217;orientation du 10/04/2008</p></div>
<div class="ilist">
<ul>
<li>architectures des produits et des systèmes
<div class="ilist">
<ul>
<li>enseigner à concevoir des architectures saines</li>
<li>les architectures sont beaucoup plus pérennes que les technologies (IP)</li>
<li>utiliser les compétences en architecture auto-organisante</li>
</ul>
</div>
</li>
<li>informatique de confiance
<div class="ilist">
<ul>
<li>TCG = futur des architectures de PC (qu&#8217;on le veuille ou non)</li>
<li>impact sur toutes les technologies</li>
<li>industrie de la carte à puce en première ligne (trois entreprises françaises sur 180)</li>
<li>représentation française insuffisante</li>
<li>initiative de la DCSSI en cours pour faire mieux connaître les travaux et y participer</li>
<li>éviter la politique de l&#8217;autruche / les approches idéologiques</li>
</ul>
</div>
</li>
<li>cryptographie et gestion de clefs
<div class="ilist">
<ul>
<li>ne pas se reposer sur ses lauriers</li>
<li>« la cryptographie c&#8217;est ce qui reste quand toutes les protections ont     disparu »</li>
<li>le plus difficile à changer dans un système opérationnel</li>
</ul>
</div>
</li>
<li>faciliter la SSI : ergonomie et supervision
<div class="ilist">
<ul>
<li>l&#8217;amélioration de l&#8217;ergonomie faciliterait l&#8217;adoption de solutions     sécurisées</li>
</ul>
</div>
</li>
<li>fédération d&#8217;identités
<div class="ilist">
<ul>
<li>réponse à une problématique d&#8217;ergonomie</li>
<li>crucial pour l&#8217;identification distante</li>
<li>éviter la politique de l&#8217;autruche</li>
<li>vraiment de la recherche à faire
<div class="olist">
<ol>
<li>référentiel de la DCSSI pour l&#8217;authentification distante (proposé à l&#8217;AFNOR)</li>
</ol>
</div>
</li>
</ul>
</div>
</li>
</ul>
</div>
<h4 id="_fondations_de_la_ssi">21.1.6. Fondations de la SSI</h4>
<div class="ilist">
<ul>
<li>formats de données et protocoles</li>
<li>systèmes d&#8217;exploitation
<div class="ilist">
<ul>
<li>anti-virus doivent être « éradiqués » (pas la réponse appropriée)</li>
</ul>
</div>
</li>
<li>développer une masse critique pour avoir une communauté à même d&#8217;avoir de l&#8217;influence. Communauté mêlant recherche et industriels</li>
<li>défi SEC&amp;SIø: Système d&#8217;Éxploitation Cloisonné et Sécurisé pour l&#8217;Internaute
<div class="ilist">
<ul>
<li>appel à projet de l&#8217;ANR</li>
<li>6 mois de conception pour proposer une configuration linux
<div class="olist">
<ol>
<li>dédiée à l&#8217;internaute</li>
<li>dédiée aux opérations sensibles (banque, télé-déclaration, messagerie       signée)</li>
</ol>
</div>
</li>
<li>6 mois d&#8217;évaluation
<div class="olist">
<ol>
<li>par attaque théorique ou pratique</li>
<li>arbitrage DCSSI</li>
</ol>
</div>
</li>
</ul>
</div>
</li>
<li>trois challengers :
<div class="ilist">
<ul>
<li>OSOSOSOS</li>
<li>Safe OS</li>
<li>SPACLik</li>
</ul>
</div>
</li>
<li>bientôt site de référence</li>
</ul>
</div>
<h3 id="_avis_commentaire_21">21.2. Avis / commentaire</h3>
<div class="para">
<p>Comme pour la première conférence, toute ressemblance avec des situations connues ne serait que purement fortuite…</p></div>
<div class="para">
<p>J&#8217;ai bien aimé la mise en exergue de l&#8217;importance de l&#8217;OS… SELinux rulez ;)</p></div>
<div class="para">
<p>Je me demande dans quelle mesure le développement de politiques SELinux pour faire un kiosque (contexte propre à Iceweasel et les deux ou trois plugins autorisés) de Dan Walsh répondrait au défi.</p></div>
<div class="para">
<p>Très intéressant.</p></div>
<div class="para">
<p>On sent l&#8217;intervenant légèrement désabusé par un certain nombre de comportements de nos dirigeants.</p></div>
</div>
<h2 id="_dynamic_malware_analysis_for_dummies">22. Dynamic malware analysis for dummies</h2>
<div class="sectionbody">
<div class="para">
<p>par Philippe Lagadex / NATO/NC3A</p></div>
<h3 id="_notes_22">22.1. Notes</h3>
<div class="para">
<p>Scénario type : gestion d&#8217;incidents &#8211; fichier infecté, on veut savoir ce que fait le code malveillant rapidement,   sans avoir besoin d&#8217;une analyse exhaustive &#8211; temps réduit, pas forcément expert ASM</p></div>
<div class="para">
<p>But de l&#8217;analyse</p></div>
<div class="ilist">
<ul>
<li>est-ce vraiment malveillant ?</li>
<li>est-ce un fichier connu ou une attaque ciblée ?</li>
<li>etc.</li>
</ul>
</div>
<div class="para">
<p>Etapes de l&#8217;analyse</p></div>
<div class="ilist">
<ul>
<li>désassemblage
<div class="ilist">
<ul>
<li>vue complète et détaillée du code</li>
<li>mais besoin d&#8217;un expert, et ça peut prendre du temps</li>
</ul>
</div>
</li>
<li>débogage
<div class="ilist">
<ul>
<li>vision pas à pas de l&#8217;exécution</li>
<li>complémentaire du désassemblage</li>
</ul>
</div>
</li>
<li>exploration de fichier
<div class="ilist">
<ul>
<li>éditeur hexa</li>
<li>recherche de chaînes</li>
<li>explorateur de formats</li>
<li>file carving / forensic</li>
<li>anti-virus</li>
<li>scanners d&#8217;exploits</li>
<li>extraction simple, mais ne fonctionne pas si camouflage</li>
</ul>
</div>
</li>
<li>analyse dynamique runtime : exécuter le code pour observer son   fonctionnement
<div class="ilist">
<ul>
<li>aperçu rapide et « facile »</li>
</ul>
</div>
</li>
</ul>
</div>
<div class="para">
<p>Exemple</p></div>
<div class="para">
<p>En cas d&#8217;attaque   . exploration de fichier   . analyse dynamique</p></div>
<div class="para">
<p>On obtient des résultats partiels mais rapides.  Si on a plus de temps, on passe au désassemblage et au débogage.</p></div>
<div class="para">
<p>Pour ce genre d&#8217;ananlyse un laboratoire détient (au moins) :</p></div>
<div class="ilist">
<ul>
<li>sandnet = sandbox + internet simulé</li>
<li>deux machines (virtuelles ou non) connectées</li>
<li>un serveur
<div class="ilist">
<ul>
<li>passerelle par défaut</li>
<li>serveur DNS</li>
<li>répond sur toutes les IPs</li>
<li>faux serveurs</li>
<li>enregistre toute l&#8217;activité réseau</li>
</ul>
</div>
</li>
<li>une machine victime
<div class="ilist">
<ul>
<li>OS brut, pas d&#8217;AV/firewall</li>
<li>compte administrateur</li>
<li>enregistrement des actions locales en temps réel ou par delta avant/après</li>
</ul>
</div>
</li>
</ul>
</div>
<div class="para">
<p>Outils :</p></div>
<div class="ilist">
<ul>
<li>rescan</li>
<li>scalpel</li>
<li>hachoir</li>
<li>fess / officecat</li>
<li>sysanalyzer</li>
<li>anubis</li>
<li>cwsandbox</li>
<li>norman sandbox</li>
<li>joelbox</li>
<li>decalogue.info/sstic08/</li>
</ul>
</div>
<h3 id="_avis_commentaire_22">22.2. Avis / commentaire</h3>
<div class="para">
<p>Conférence m&#8217;ayant donné l&#8217;impression que je n&#8217;étais peut-être pas si nul. Bon en même temps c&#8217;est pour dummies ;)</p></div>
<div class="para">
<p>D&#8217;autant que pas mal des techniques proposées sont largement utilisables pour d&#8217;autres besoins du SI.</p></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.timetombs.org/?feed=rss2&amp;p=20</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Scuttle collaborative bookmarks manager needs a captcha</title>
		<link>http://blog.timetombs.org/?p=19</link>
		<comments>http://blog.timetombs.org/?p=19#comments</comments>
		<pubDate>Tue, 06 May 2008 11:14:07 +0000</pubDate>
		<dc:creator>Jean-Marc Liotier</dc:creator>
				<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://blog.timetombs.org/?p=19</guid>
		<description><![CDATA[We operate a nice collaborative bookmarking site for our little community. We use the &#8217;scuttle&#8217; Debian package of the Scuttle social bookmarking system and it serves our needs well. But lately we have seen it inundated by torrents of spam unchecked by the slightest user registration control. Not checking whether the poster is human was [...]]]></description>
			<content:encoded><![CDATA[<p>We operate <a href="http://bookmarks.grabeuh.com/">a nice collaborative bookmarking site for our little community</a>. We use the <a href="http://packages.debian.org/sid/scuttle">&#8217;scuttle&#8217; Debian package</a> of the Scuttle social bookmarking system and it serves our needs well. But lately we have seen it inundated by torrents of spam unchecked by the slightest user registration control. Not <a href="http://en.wikipedia.org/wiki/Captcha">checking whether the poster is human</a> was all right twenty years ago, but in an age where most of the traffic is spam it is looking for trouble.</p>
<p><a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1169880&amp;group_id=134378&amp;atid=729863">Some sort of registration validation has been requested more than three years ago</a>, but progress of the project has been quite slow &#8211; <a href="http://sourceforge.net/forum/forum.php?forum_id=749062">apparently in part because Marcus Campbell prefers working alone to avoid having to manage other developers and conflicting agendas</a>.</p>
<p>Last year, <a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1716524&amp;group_id=134378&amp;atid=729862">Telgorn submitted a patch to add captcha for user registration</a>. But is probably stands no chance of inclusion into the main branch : <a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1169880&amp;group_id=134378&amp;atid=729863">Marcus Campbell has stated two years ago that he &#8220;will not be adding captcha&#8221; to Scuttle</a>.</p>
<p>For now, having no patience for spam and only having to support a tiny community, I resorted to remove user registration from Scuttle and manage the registrations manually. The result can be witnessed at <a href="http://bookmarks.grabeuh.com/register/">the modified registration page</a>, and I&#8217;ll post this trivial patch if anyone asks. But for any significant community this is not an acceptable fix.</p>
<p>As <a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1716524&amp;group_id=134378&amp;atid=729862">Telgorn&#8217;s captcha patch</a> shows, adding that functionality to Scuttle is simple. The question is rather about the future of Scuttle. Scuttle is a very nice tool, and compatibility with the <a href="http://del.icio.us/help/api/">del.icio.us API</a> is a wonderful way to open it to a world of interactions. But not including <a href="http://en.wikipedia.org/wiki/Captcha">CAPTCHA</a> is a death wish for a tool that can only thrive if larger community can use it without overwhelming their administrative staff with spam cleanup duties.</p>
<p>The network effect inherent to <a href="http://en.wikipedia.org/wiki/Social_bookmarking">social bookmarking</a> grows faster than the number of users &#8211; which means that larger sites are the one who benefit the most from Scuttle. Scuttle is quite fast and I guess it could handle large crowds&#8230; If only it was capable of dealing with spam.</p>
<p>Will someone fork Scuttle or will it be soon confined to small communities ? Time will tell, but for now the future is incertain as far as I can see.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.timetombs.org/?feed=rss2&amp;p=19</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
