Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryMid: #000091
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel='stylesheet' href='font-awesome/css/fontawesome.min.css' />
<link rel='stylesheet' href='font-awesome/css/all.css' />
— [[InterfaceOptions]] — [[AdvancedOptions]] —
<!--{{{-->
<div class='header' role='banner' macro='gradient vert [[0C4LCSS::BluFlag]]'> <a href='https://CSIRT.fr/' target='_blank'><img src="i/Logo_CSIRT-FR.jpg" height="70px" align="left"></a> <a href='https://CSIRT.fr/' target='_blank'><img src="i/CSIRTFR_Team.png" height="70px" align="right"></a>
  <div class='headerShadow'>
  </div>
  <div class='headerForeground'>
 <span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
 <span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
  </div>
</div>
<div id='mainMenu' role='navigation' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
  <div id='sidebarOptions' role='navigation' refresh='content' tiddler='SideBarOptions'></div>
  <div id='sidebarTabs' role='complementary' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea' role='main'>
<div id='messageArea' class='messageArea'></div>
<div style="text-align:left"><span class='FooterNews' refresh='content' tiddler='HeaderMenu'></span></div>
<div id='tiddlerDisplay'></div>
<div style="text-align:center"><span class='FooterNews' refresh='content' tiddler='FooterDisclaimer'></span></div>
</div>
<!--}}}-->
/*{{{*/
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]]; }
a {color:[[ColorPalette::PrimaryMid]]; }
a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]]; }
a img {border:0; }
h1, h2, h3, h4, h5, h6 { color: [[ColorPalette::SecondaryDark]]; }
h1 {border-bottom:2px solid [[ColorPalette::TertiaryLight]]; }
h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]]; }
.button {color:[[0C4LCSS::BluFlag]]; border:1px solid [[ColorPalette::Background]]; }
.button:hover {color:[[0C4LCSS::BluFlag]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]]; }
.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]]; }
.headerForeground {color:[[ColorPalette::Background]]; }
.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]]; }
.tabSelected { color:[[0C4LCSS::BluFlag]]; background:[[ColorPalette::TertiaryPale]]; border-left:1px solid [[ColorPalette::TertiaryLight]]; border-top:1px solid [[ColorPalette::TertiaryLight]]; border-right:1px solid [[ColorPalette::TertiaryLight]]; }
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]]; }
.tabContents {color:[[0C4LCSS::BluFlag]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]]; }
.tabContents .button {border:0; }
#sidebar { display: none; } /* 0C4L */
#sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]]; }
#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]]; }
#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]]; }
#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]]; }
#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]]; }
.wizard { background:[[ColorPalette::PrimaryPale]]; }
.wizard__title { color:[[0C4LCSS::BluFlag]]; border:none; }
.wizard__subtitle { color:[[ColorPalette::Foreground]]; border:none; }
.wizardStep { background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]]; }
.wizardStep.wizardStepDone {background:[[ColorPalette::TertiaryLight]]; }
.wizardFooter {background:[[ColorPalette::PrimaryPale]]; }
.wizardFooter .status {background:[[0C4LCSS::BluFlag]]; color:[[ColorPalette::Background]]; }
.wizard .button { color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid; border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]]; }
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]]; }
.wizard .button:active { color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid; border-color:[[0C4LCSS::BluFlag]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[0C4LCSS::BluFlag]]; }
.wizard .notChanged {background:transparent; }
.wizard .changedLocally {background:#80ff80; }
.wizard .changedServer {background:#8080ff; }
.wizard .changedBoth {background:#ff8080; }
.wizard .notFound {background:#ffff80; }
.wizard .putToServer {background:#ff80ff; }
.wizard .gotFromServer {background:#80ffff; }
#messageArea { border:20px solid [[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]]; }
.messageToolbar__button { color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none; }
.messageToolbar__button_withIcon { background:inherit; }
.messageToolbar__button_withIcon:active { background:inherit; border:none; }
.messageToolbar__icon { fill:[[ColorPalette::TertiaryDark]]; }
.messageToolbar__icon:hover { fill:[[ColorPalette::Foreground]]; }
.popup { background: [[ColorPalette::Background]]; color: [[ColorPalette::TertiaryDark]]; box-shadow: 1px 2px 5px [[ColorPalette::TertiaryMid]]; }
.popup li a, .popup li a:visited, .popup li a:hover, .popup li a:active { color:[[ColorPalette::Foreground]]; border: none; }
.popup li a:hover { background:[[ColorPalette::SecondaryLight]]; }
.popup li a:active { background:[[ColorPalette::SecondaryPale]]; }
.popup li.disabled { color:[[ColorPalette::TertiaryMid]]; }
.popupHighlight {color:[[ColorPalette::Foreground]]; }
.popup hr {color:[[0C4LCSS::BluFlag]]; background:[[0C4LCSS::BluFlag]]; border-bottom:1px; }
.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]]; }
.tiddler .defaultCommand {font-weight:bold; }
.shadow .title {color:[[ColorPalette::TertiaryDark]]; }
.title {color:[[ColorPalette::SecondaryDark]]; }
.subtitle {color:[[ColorPalette::TertiaryDark]]; }
.toolbar {color:[[ColorPalette::PrimaryMid]]; }
.toolbar a {color:[[ColorPalette::TertiaryLight]]; }
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]]; }
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]]; }
.tagging, .tagged { border: 1px solid [[ColorPalette::TertiaryPale]]; background-color: [[ColorPalette::TertiaryPale]]; }
.selected .tagging, .selected .tagged { background-color: [[ColorPalette::TertiaryLight]]; border: 1px solid [[ColorPalette::TertiaryLight]]; }
.tagging .listTitle, .tagged .listTitle {color:[[0C4LCSS::BluFlag]]; }
.tagging .button, .tagged .button {border:none; }
.footer {color:[[ColorPalette::TertiaryLight]]; }
.selected .footer {color:[[ColorPalette::TertiaryMid]]; }
.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]]; }
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]]; }
.lowlight {background:[[ColorPalette::TertiaryLight]]; }
.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]]; }
.imageLink, #displayArea .imageLink {background:transparent; }
.annotation { background:[[ColorPalette::SecondaryLight]]; color:[[0C4LCSS::RedFlag]]; border:2px solid [[0C4LCSS::RedFlag]]; }
.viewer .listTitle {list-style-type:none; margin-left:-2em; }
.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]]; }
.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]]; }
.viewer table, table.twtable {border:2px solid [[ColorPalette::TertiaryDark]]; }
.viewer th, .viewer thead td, .twtable th, .twtable thead td { background: [[ColorPalette::SecondaryMid]]; border:1px solid [[0C4LCSS::BluFlag]]; color: [[ColorPalette::Background]]; }
.viewer td, .viewer tr, .twtable td, .twtable tr { border: 1px solid [[0C4LCSS::BluFlag]]; }
.twtable caption { color: [[ColorPalette::TertiaryMid]]; }
.viewer pre {background:[[ColorPalette::SecondaryPale]]; }
.viewer code {color:[[ColorPalette::SecondaryDark]]; }
.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]]; }
.highlight, .marked {background:[[ColorPalette::SecondaryLight]]; }
.editor input {border:1px solid [[ColorPalette::PrimaryMid]]; }
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%; }
.editorFooter {color:[[ColorPalette::TertiaryMid]]; }
.readOnly {background:[[ColorPalette::TertiaryPale]]; }
#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]]; }
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none; }
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]]; }
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none; }
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none; }
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]]; }
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]]; }
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]]; }
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:alpha(opacity=60); }
.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]]; }
.popup { background: [[ColorPalette::Background]]; color: [[ColorPalette::TertiaryDark]]; box-shadow: 1px 2px 5px [[ColorPalette::TertiaryMid]]; }
/*}}}*/
/*{{{*/
/* 0C4L-Size */
body { font-size:0.8em; font-family:arial,helvetica,serif; margin:0; padding:0; }
* html .tiddler {height:1%; }
h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none; }
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em; }
h4,h5,h6 {margin-top:1em; }
h1 {font-size:1.35em; }
h2 {font-size:1.25em; }
h3 {font-size:1.1em; }
h4 {font-size:1em; }
h5 {font-size:.9em; }
hr {height:1px; }
dt {font-weight:bold; }
ol {list-style-type:decimal; }
ol ol {list-style-type:lower-alpha; }
ol ol ol {list-style-type:lower-roman; }
ol ol ol ol {list-style-type:decimal; }
ol ol ol ol ol {list-style-type:lower-alpha; }
ol ol ol ol ol ol {list-style-type:lower-roman; }
ol ol ol ol ol ol ol {list-style-type:decimal; }
.txtOptionInput {width:11em; }
#contentWrapper .chkOptionInput {border:0; }
.indent {margin-left:3em; }
.outdent {margin-left:3em; text-indent:-3em; }
code.escaped {white-space:nowrap; }
a {text-decoration:none; }
.externalLink {text-decoration:underline; }
.tiddlyLinkExisting {font-weight:bold; }
.tiddlyLinkNonExisting {font-style:italic; }
/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold; }
#mainMenu .tiddlyLinkExisting,
#mainMenu .tiddlyLinkNonExisting,
#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal; }
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal; }
.header {position:relative; }
.headerShadow {position:relative; padding:4.5em 0 1em 1em; left:-1px; top:-1px; }
.headerForeground {position:absolute; padding:4.5em 0 1em 1em; left:0; top:0; }
.siteTitle {font-size:3em; font-style:italic; }
.siteSubtitle {font-size:1em; }
#mainMenu {position:absolute; left:0; width:10em; text-align:right; line-height:1.6em; padding:1.5em 0.5em 0.5em 0.5em; font-size:1.1em; }
/**0c** #sidebar {position:absolute; right:3px; width:16em; font-size:.9em; } **0c**/
#sidebarOptions {padding-top:0.3em; }
#sidebarOptions a {margin:0 0.2em; padding:0.2em 0.3em; display:block; }
#sidebarOptions input {margin:0.4em 0.5em; }
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em; }
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0; }
#sidebarOptions .sliderPanel input {margin:0 0 0.3em 0; }
#sidebarTabs .tabContents {width:15em; overflow:hidden; }
.wizard { padding:0.1em 2em 0; }
.wizard__title { font-size:2em; }
.wizard__subtitle { font-size:1.2em; }
.wizard__title, .wizard__subtitle { font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em; }
.wizardStep { padding:1em; }
.wizardFooter { padding: 0.8em 0.4em 0.8em 0;  }
.wizardFooter .status { padding: 0.3em 1em; }
.wizardFooter .button { margin:0.5em 0 0; font-size:1.2em; padding:0.2em 0.5em; }
.messageArea { position:fixed; top:0; right:20; margin:0.5em; padding:0.7em 1em; z-index:2000; }
.messageToolbar { text-align:right; padding:0.2em 0; }
.messageToolbar__button { text-decoration:underline; }
.messageToolbar__icon { height: 1em; width: 1em; } /* width for IE */
.messageArea__text a { text-decoration:underline; }
.popup {position:absolute; z-index:300; font-size:.9em; padding:0.3em 0; list-style:none; margin:0; }
.popup .popupMessage, .popup li.disabled, .popup li a { padding: 0.3em 0.7em; }
.popup li a {display:block; font-weight:normal; cursor:pointer; }
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0; }
.listBreak {font-size:1px; line-height:1px; }
.listBreak div {margin:2px 0; }
.tiddlerPopupButton {padding:0.2em; }
.popupTiddler {position: absolute; z-index:300; padding:1em; margin:0; }
.tabset {padding:1em 0 0 0.5em; }
.tab {margin:0 0 0 0.25em; padding:2px; }
.tabContents {padding:0.5em; }
.tabContents ul, .tabContents ol {margin:0; padding:0; }
.txtMainTab .tabContents li {list-style:none; }
.tabContents li.listLink { margin-left:.75em; }
#contentWrapper {display:block; }
#splashScreen {display:none; }
/**0c** #displayArea {margin:1em 17em 0 14em; } **0c**/
#displayArea {margin:0 0 0 11em; }
.toolbar {text-align:right; font-size:.9em; }
.tiddler {padding:1em 1em 0; }
.missing .viewer,.missing .title {font-style:italic; }
.title {font-size:1.6em; font-weight:bold; }
.missing .subtitle {display:none; }
.subtitle {font-size:1.1em; }
.tiddler .button {padding:0.2em 0.4em; }
.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none; }
.isTag .tagging {display:block; }
.tagged {margin:0.5em; float:right; }
.tagging, .tagged {font-size:0.9em; padding:0.25em; }
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0; }
.tagged li, .tagging li { margin: 0.3em 0; }
.tagClear {clear:both; }
.footer {font-size:.9em; }
.footer li {display:inline; }
.annotation { padding: 0.5em 0.8em; margin: 0.5em 1px; }
.viewer {line-height:1.4em; padding-top:0.5em; }
.viewer .button {margin:0 0.25em; padding:0 0.25em; }
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em; }
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em; }
.viewer table, table.twtable { border-collapse: collapse; margin: 0.8em 0; }
.viewer th, .viewer td, .viewer tr, .viewer caption, .twtable th, .twtable td, .twtable tr, .twtable caption { padding: 0.2em 0.4em; }
.twtable caption { font-size: 0.9em; }
table.listView { margin: 0.8em 1.0em; }
table.listView th, table.listView td, table.listView tr { text-align: left; }
.listView > thead { position: sticky; top: 0; }
* html .viewer pre {width:99%; padding:0 0 1em 0; }
.viewer pre {padding:0.5em; overflow:auto; }
pre, code { font-family: monospace, monospace; font-size: 1em; }
.viewer pre, .viewer code { line-height: 1.4em; }
.editor {font-size:1.1em; line-height:1.4em; }
.editor input, .editor textarea {display:block; width:100%; box-sizing: border-box; font:inherit; }
.editorFooter {padding:0.25em 0; font-size:.9em; }
.editorFooter .button {padding-top:0; padding-bottom:0; }
.fieldsetFix {border:0; padding:0; margin:1px 0; }
.zoomer {font-size:1.1em; position:absolute; overflow:hidden; }
.zoomer div {padding:1em; }
* html #backstage {width:99%; }
* html #backstageArea {width:99%; }
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em; }
#backstageToolbar {position:relative; }
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em; }
#backstageButton {display:none; position:absolute; z-index:175; top:0; right:0; }
#backstageButton a {padding:0.1em 0.4em; margin:0.1em; }
#backstage {position:relative; width:100%; z-index:50; }
#backstagePanel { display:none; z-index:100; position:absolute; width:90%; margin-left:3em; }
.backstagePanelFooter {padding-top:0.2em; float:right; }
.backstagePanelFooter a {padding:0.2em 0.4em; }
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px; }
.whenBackstage {display:none; }
.backstageVisible .whenBackstage {display:block; }
/*}}}*/
body {font-size:1em; }
#sidebarOptions {font-size:1.05em; }
#sidebarOptions a {font-style:normal; }
#sidebarOptions .sliderPanel {font-size:0.95em; }
.subtitle {font-size:0.8em; }
.viewer table.listView {font-size:0.95em; }
/*{{{*/
@media print {
  #mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea { display: none !important; }
  #displayArea { margin: 1em 1em 0em; }}
/*}}}*/
>
<!--{{{-->
<div class='toolbar' role='navigation' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
/% |Author|Eric Shulman|License|http://www.TiddlyTools.com/#LegalStatements|
!show
<<tiddler {{
 var co=config.options;
 if (co.chkShowLeftSidebar===undefined) co.chkShowLeftSidebar=true;
 var mm=document.getElementById('mainMenu');
 var da=document.getElementById('displayArea');
 if (mm) {
 mm.style.display=co.chkShowLeftSidebar?'block':'none';
 da.style.marginLeft=co.chkShowLeftSidebar?'':'1em';
 }
''; }}>><html><nowiki><a href='javascript:;' title="$2"
onmouseover="
 this.href='javascript:void(eval(decodeURIComponent(%22(function(){try{('
 +encodeURIComponent(encodeURIComponent(this.onclick))
 +')()}catch(e){alert(e.description?e.description:e.toString())}})()%22)))';"
onclick="
 var co=config.options;
 var opt='chkShowLeftSidebar';
 var show=co[opt]=!co[opt];
 var mm=document.getElementById('mainMenu');
 var da=document.getElementById('displayArea');
 if (mm) {
 mm.style.display=show?'block':'none';
 da.style.marginLeft=show?'':'1em';
 }
 saveOptionCookie(opt);
 var labelShow=co.txtToggleLeftSideBarLabelShow||'&#x25BA;';
 var labelHide=co.txtToggleLeftSideBarLabelHide||'&#x25C4;';
 if (this.innerHTML==labelShow||this.innerHTML==labelHide)
 this.innerHTML=show?labelHide:labelShow;
 this.title=(show?'masquer':'montrer')+' le menu à gauche';
 var sm=document.getElementById('storyMenu');
 if (sm) config.refreshers.content(sm);
 return false;
">$1</a></html>
!end
%/<<tiddler {{
 var src='.ToggleLeftSidebar';
 src+(tiddler&&tiddler.title==src?'##info':'##show');
}} with: {{
 var co=config.options;
 var labelShow=co.txtToggleLeftSideBarLabelShow||'&#x25BA;&#x25C1;'; /%0C%/
 var labelHide=co.txtToggleLeftSideBarLabelHide||'&#x25C4;&#x25B7;'; /%0C%/
 '$1'!='$'+'1'?'$1':(co.chkShowLeftSidebar?labelHide:labelShow);
}} {{
 var tip=(config.options.chkShowLeftSidebar?'cacher':'montrer')+' le menu gauche'; /%0C%/
 '$2'!='$'+'2'?'$2':tip;
}}>>
/% |Author|Eric Shulman|License|https://www.TiddlyTools.com/#LegalStatements|
%/<html><nowiki><a href="javascript:;" title="masquer/montrer l'en-tête" /%0C%/
onmouseover="
 this.href='javascript:void(eval(decodeURIComponent(%22(function(){try{('
 +encodeURIComponent(encodeURIComponent(this.onclick))
 +')()}catch(e){alert(e.description?e.description:e.toString())}})()%22)))';"
onclick="
 var c=document.getElementById('contentWrapper'); if (!c) return;
 for (var i=0; i<c.childNodes.length; i++)
 if (hasClass(c.childNodes[i],'header')) { var h=c.childNodes[i]; break; }
 if (!h) return;
 config.options.chkHideSiteTitles=h.style.display!='none';
 h.style.display=config.options.chkHideSiteTitles?'none':'block';
 saveOptionCookie('chkHideSiteTitles');
 return false;
">&#x25b3;&#x25bc;</a></html>
/* |Author|Saq Imtiaz|License|Creative Commons Attribution-ShareAlike 3.0| */
// /%
config.formatters.unshift({name:"annotations",match:"\\(\\(",lookaheadRegExp:/\(\((.*?)\((\^?)((?:.|\n)*?)\)\)\)/g,handler:function(w){
this.lookaheadRegExp.lastIndex=w.matchStart;
var _2=this.lookaheadRegExp.exec(w.source);
if(_2&&_2.index==w.matchStart){
var _3=createTiddlyElement(w.output,"span",null,"annosub",_2[1]);
_3.anno=_2[3];
if(_2[2]){
_3.subject=_2[1];
}
_3.onmouseover=this.onmouseover;
_3.onmouseout=this.onmouseout;
_3.ondblclick=this.onmouseout;
w.nextMatch=_2.index+_2[0].length;
}
},onmouseover:function(e){
popup=createTiddlyElement(document.body,"div",null,"anno");
this.popup=popup;
if(this.subject){
wikify("!"+this.subject+"\n",popup);
}
wikify(this.anno,popup);
addClass(this,"annosubover");
Popup.place(this,popup,{x:25,y:7});
},onmouseout:function(e){
removeNode(this.popup);
this.popup=null;
removeClass(this,"annosubover");
}});
setStylesheet(".anno{position:absolute;border:2px solid #000;background-color:#DFDFFF; color:#000;padding:0.5em;max-width:15em;width:expression(document.body.clientWidth > (255/12) *parseInt(document.body.currentStyle.fontSize)?'15em':'auto' ); }\n"+".anno h1, .anno h2{margin-top:0;color:#000; }\n"+".annosub{background:#ccc; }\n"+".annosubover{z-index:25; background-color:#DFDFFF;cursor:help; }\n","AnnotationStyles");
// %/
/* |Author|Eric Shulman|License|http://www.TiddlyTools.com/#LegalStatements|
*/
//{{{
version.extensions.BreadcrumbsPlugin= {major: 2, minor: 1, revision: 4, date: new Date(2011,2,16)};
var defaults={
 chkShowBreadcrumbs: true,
 chkReorderBreadcrumbs: true,
 chkCreateDefaultBreadcrumbs: true,
 chkShowStartupBreadcrumbs: false,
 chkBreadcrumbsReverse: false,
 chkBreadcrumbsLimit: false,
 txtBreadcrumbsLimit: 5,
 chkBreadcrumbsLimitOpenTiddlers:false,
 txtBreadcrumbsLimitOpenTiddlers:3,
 chkBreadcrumbsHideHomeLink: false,
 chkBreadcrumbsSave: false,
 txtBreadcrumbsHomeSeparator: ' | ',
 txtBreadcrumbsCrumbSeparator: ' > '
};
for (var id in defaults) if (config.options[id]===undefined)
 config.options[id]=defaults[id];
config.macros.breadcrumbs = {
 crumbs: [], // the list of current breadcrumbs
 askMsg: "Save current breadcrumbs before clearing?\n"
 +"Press OK to save, or CANCEL to continue without saving.",
 saveMsg: 'Enter the name of a tiddler in which to save the current breadcrumbs',
 saveTitle: 'SavedBreadcrumbs',
 handler: function(place,macroName,params,wikifier,paramString,tiddler) {
 var area=createTiddlyElement(place,"span",null,"breadCrumbs",null);
 area.setAttribute("homeSep",params[0]||config.options.txtBreadcrumbsHomeSeparator);
 area.setAttribute("crumbSep",params[1]||config.options.txtBreadcrumbsCrumbSeparator);
 this.render(area);
 },
 add: function (title) {
 var thisCrumb = title;
 var ind = this.crumbs.indexOf(thisCrumb);
 if(ind === -1)
 this.crumbs.push(thisCrumb);
 else if (config.options.chkReorderBreadcrumbs)
 this.crumbs.push(this.crumbs.splice(ind,1)[0]); // reorder crumbs
 else
 this.crumbs=this.crumbs.slice(0,ind+1); // trim crumbs
 if (config.options.chkBreadcrumbsLimitOpenTiddlers)
 this.limitOpenTiddlers();
 this.refresh();
 return false;
 },
 getAreas: function() {
 var crumbAreas=[];
 // find all DIVs with classname=="breadCrumbs"
 var all=document.getElementsByTagName("*");
 for (var i=0; i<all.length; i++)
 try{ if (hasClass(all[i],"breadCrumbs")) crumbAreas.push(all[i]); } catch(e) {; }
 // or, find single DIV w/fixed ID (backward compatibility)
 var byID=document.getElementById("breadCrumbs")
 if (byID && !hasClass(byID,"breadCrumbs")) crumbAreas.push(byID);
 if (!crumbAreas.length && config.options.chkCreateDefaultBreadcrumbs) {
 // no crumbs display... create one
 var defaultArea = createTiddlyElement(null,"span",null,"breadCrumbs",null);
 defaultArea.style.display= "none";
 var targetArea= document.getElementById("tiddlerDisplay");
 targetArea.parentNode.insertBefore(defaultArea,targetArea);
 crumbAreas.push(defaultArea);
 }
 return crumbAreas;
 },
 refresh: function() {
 var crumbAreas=this.getAreas();
 for (var i=0; i<crumbAreas.length; i++) {
 crumbAreas[i].style.display = config.options.chkShowBreadcrumbs?"inline":"none";
 removeChildren(crumbAreas[i]);
 this.render(crumbAreas[i]);
 }
 },
 render: function(here) {
 var co=config.options; var out=""
 if (!co.chkBreadcrumbsHideHomeLink) {
 createTiddlyButton(here,"Accueil",null,this.home,"tiddlyLink tiddlyLinkExisting");
 out+=here.getAttribute("homeSep")||config.options.txtBreadcrumbsHomeSeparator;
 }
 for (c=0; c<this.crumbs.length; c++) // remove non-existing tiddlers from crumbs
 if (!store.tiddlerExists(this.crumbs[c]) && !store.isShadowTiddler(this.crumbs[c]))
 this.crumbs.splice(c,1);
 var count=this.crumbs.length;
 if (co.chkBreadcrumbsLimit && co.txtBreadcrumbsLimit<count) count=co.txtBreadcrumbsLimit;
 var list=[];
 for (c=this.crumbs.length-count; c<this.crumbs.length; c++) list.push('[['+this.crumbs[c]+']]');
 if (co.chkBreadcrumbsReverse) list.reverse();
 out+=list.join(here.getAttribute("crumbSep")||config.options.txtBreadcrumbsCrumbSeparator);
 wikify(out,here);
 },
 home: function() {
 var cmb=config.macros.breadcrumbs;
 if (config.options.chkBreadcrumbsSave && confirm(cmb.askMsg)) cmb.saveCrumbs();
 story.closeAllTiddlers(); restart();
 cmb.crumbs = []; var crumbAreas=cmb.getAreas();
 for (var i=0; i<crumbAreas.length; i++) crumbAreas[i].style.display = "none";
 return false;
 },
 saveCrumbs: function() {
 var tid=prompt(this.saveMsg,this.saveTitle); if (!tid||!tid.length) return; // cancelled by user
 var t=store.getTiddler(tid);
 if(t && !confirm(config.messages.overwriteWarning.format([tid]))) return;
 var who=config.options.txtUserName;
 var when=new Date();
 var text='[['+this.crumbs.join(']]\n[[')+']]';
 var tags=t?t.tags:[]; tags.pushUnique('story');
 var fields=t?t.fields:{};
 store.saveTiddler(tid,tid,text,who,when,tags,fields);
 story.displayTiddler(null,tid);
 story.refreshTiddler(tid,null,true);
 displayMessage(tid+' has been '+(t?'updated':'created'));
 },
 limitOpenTiddlers: function() {
 var limit=config.options.txtBreadcrumbsLimitOpenTiddlers; if (limit<1) limit=1;
 for (c=this.crumbs.length-1; c>=0; c--) {
 var tid=this.crumbs[c];
 var elem=story.getTiddler(tid);
 if (elem) { // tiddler is displayed
 if (limit <=0) { // display limit has been reached
 if (elem.getAttribute("dirty")=="true") { // tiddler is being edited
 var msg= "'"+tid+"' is currently being edited.\n\n"
 +"Press OK to save and close this tiddler\n"
 +"or press Cancel to leave it opened";
 if (confirm(msg)) {
 story.closeTiddler(tid);
 }
 }
 else story.closeTiddler(this.crumbs[c]);
 }
 limit--;
 }
 }
 }
};
//}}}
// // PreviousTiddler ('back') command and macro
//{{{
config.commands.previousTiddler = {
 text: 'back',
 tooltip: 'view the previous tiddler',
 handler: function(event,src,title) {
 var crumbs=config.macros.breadcrumbs.crumbs;
 if (crumbs.length<2) config.macros.breadcrumbs.home();
 else story.displayTiddler(story.findContainingTiddler(src),crumbs[crumbs.length-2]);
 return false;
 }
};
config.macros.previousTiddler= {
 label: 'back',
 prompt: 'view the previous tiddler',
 handler: function(place,macroName,params,wikifier,paramString,tiddler) {
 var label=params.shift(); if (!label) label=this.label;
 var prompt=params.shift(); if (!prompt) prompt=this.prompt;
 createTiddlyButton(place,label,prompt,function(ev){
 return config.commands.previousTiddler.handler(ev,this)
 });
 }
}//}}}
// // HIJACKS
//{{{
// update crumbs when a tiddler is displayed
if (Story.prototype.breadCrumbs_coreDisplayTiddler==undefined)
 Story.prototype.breadCrumbs_coreDisplayTiddler=Story.prototype.displayTiddler;
Story.prototype.displayTiddler = function(srcElement,tiddler) {
 var title=(tiddler instanceof Tiddler)?tiddler.title:tiddler;
 this.breadCrumbs_coreDisplayTiddler.apply(this,arguments);
 if (!startingUp || config.options.chkShowStartupBreadcrumbs)
 config.macros.breadcrumbs.add(title);
}
// update crumbs when a tiddler is deleted
if (TiddlyWiki.prototype.breadCrumbs_coreRemoveTiddler==undefined)
 TiddlyWiki.prototype.breadCrumbs_coreRemoveTiddler=TiddlyWiki.prototype.removeTiddler;
TiddlyWiki.prototype.removeTiddler= function() {
 this.breadCrumbs_coreRemoveTiddler.apply(this,arguments);
 config.macros.breadcrumbs.refresh();
}
//}}}
/* |Author|Doug Compton|Contributors|Lewcid/Saq Imtiaz, FND, Eric Shulman|License||
--
|<<showtoc>> |
To modifiy the appearance, you can use CSS similiar to the below.
//{{{
.dcTOC ul {
 color: red;
 list-style-type: lower-roman;
}
.dcTOC a {
 color: green;
 border: none;
}
.dcTOC a:hover {
 background: white;
 border: solid 1px;
}
.dcTOCTop {
 font-size: 2em;
 color: green;
}
//}}}
*/
//{{{
version.extensions.DcTableOfContentsPlugin= {
 major: 0, minor: 4, revision: 0,
 type: "macro",
 source: "http://devpad.tiddlyspot.com#DcTableOfContentsPlugin"
};
for (var n=0; n<config.formatters.length; n++) {
 var format = config.formatters[n];
 if (format.name == 'heading') {
  format.handler = function(w) {
   var e = createTiddlyElement(w.output, "h" + w.matchLength);
   w.subWikifyTerm(e, this.termRegExp); //updated for TW 2.2+
   if (w.tiddler && w.tiddler.isTOCInTiddler == 1) {
 var c = createTiddlyElement(e, "div");
 c.setAttribute("style", "font-size: 0.5em; color: blue;");
 createTiddlyButton(c, " [top]", "Retour à la table des matières", window.scrollToTop, "dcTOCTop", null, null);
   }
  }
  break;
 }
}
config.macros.showtoc = {
 handler: function(place, macroName, params, wikifier, paramString, tiddler) {
  var text = "";
  var title = "";
  var myTiddler = null;
  // Did they pass in a tiddler?
  if (params.length) {
   title = params[0];
   myTiddler = store.getTiddler(title);
  } else {
   myTiddler = tiddler;
  }
  if (myTiddler == null) {
   wikify("ERROR: Could not find " + title, place);
   return;
  }
  var lines = myTiddler .text.split("\n");
  myTiddler.isTOCInTiddler = 1;
  var r = createTiddlyElement(place, "div", null, "dcTOC");
  createTiddlyButton(r, "", "Masque/Affiche la Table des Matières",
//##0C##++
//createTiddlyButton(r, "?-? Masquer/Afficher ?-?", "Masque/Affiche la Table des Matières",
//##0C##--
   function() { config.macros.showtoc.toggleElement(this.nextSibling); },
   "toggleButton")
  var c = createTiddlyElement(r, "div");
  if (lines != null) {
//##0C##++
   text = "•• "
//##0C##--
   for (var x=0; x<lines.length; x++) {
 var line = lines[x];
 if (line.substr(0,1) == "!") {
  // Find first non ! char
  for (var i=0; i<line.length; i++) {
   if (line.substr(i, 1) != "!") {
 break;
   }
  }
  var desc = line.substring(i);
  // Remove WikiLinks
  desc = desc.replace(/\[\[/g, "");
  desc = desc.replace(/\]\]/g, "");
  text += line.substr(0, i).replace(/[!]/g, '');
//##0C##++
//  text += '<html><a href="javascript:;" onClick="window.scrollToHeading(\'' + title + '\', \'' + desc+ '\', event)">' + desc+ '</a></html>\n';
  text += '<html><a href="javascript:;" onClick="window.scrollToHeading(\'' + title + '\', \'' + desc+ '\', event)">' + desc+ '</a></html> •• ';
//##0C##--
 }
   }
  }
  wikify(text, c);
 }
}
config.macros.showtoc.toggleElement = function(e) {
 if(e) {
  if(e.style.display != "none") {
   e.style.display = "none";
  } else {
   e.style.display = "";
  }
 }
};
window.scrollToTop = function(evt) {
 if (! evt)
  var evt = window.event;
 var target = resolveTarget(evt);
 var tiddler = story.findContainingTiddler(target);
 if (! tiddler)
  return false;
 window.scrollTo(0, ensureVisible(tiddler));
 return false;
};
window.scrollToHeading = function(title, anchorName, evt) {
 var tiddler = null;
 if (! evt)
  var evt = window.event;
 if (title) {
  story.displayTiddler(store.getTiddler(title), title, null, false);
  tiddler = document.getElementById(story.idPrefix + title);
 } else {
  var target = resolveTarget(evt);
  tiddler = story.findContainingTiddler(target);
 }
 if (tiddler == null)
  return false;
 var children1 = tiddler.getElementsByTagName("h1");
 var children2 = tiddler.getElementsByTagName("h2");
 var children3 = tiddler.getElementsByTagName("h3");
 var children4 = tiddler.getElementsByTagName("h4");
 var children5 = tiddler.getElementsByTagName("h5");
 var children = new Array();
 children = children.concat(children1, children2, children3, children4, children5);
 for (var i = 0; i < children.length; i++) {
  for (var j = 0; j < children[i].length; j++) {
   var heading = children[i][j].innerHTML;
   // Remove all HTML tags
   while (heading.indexOf("<") >= 0) {
 heading = heading.substring(0, heading.indexOf("<")) + heading.substring(heading.indexOf(">") + 1);
   }
   // Cut off the code added in showtoc for TOP
   heading = heading.substr(0, heading.length-6);
   if (heading == anchorName) {
 var y = findPosY(children[i][j]);
 window.scrollTo(0,y);
 return false;
   }
  }
 }
 return false
};
//}}}
/* |Author|Eric Shulman|License|http://www.TiddlyTools.com/#LegalStatements|
!Configuration
<<<
<<option chkDisableWikiLinks>> Disable ALL automatic WikiWord tiddler links
<<option chkAllowLinksFromShadowTiddlers>> ... except for WikiWords //contained in// shadow tiddlers
<<option chkDisableNonExistingWikiLinks>> Disable automatic WikiWord links for non-existing tiddlers
Disable automatic WikiWord links for words listed in: <<option txtDisableWikiLinksList>>
Disable automatic WikiWord links for tiddlers tagged with: <<option txtDisableWikiLinksTag>>
<<<
!Code
*/
//{{{
version.extensions.DisableWikiLinksPlugin= {major: 1, minor: 6, revision: 0, date: new Date(2008,7,22)};
if (config.options.chkDisableNonExistingWikiLinks==undefined) config.options.chkDisableNonExistingWikiLinks= false;
if (config.options.chkDisableWikiLinks==undefined) config.options.chkDisableWikiLinks=false;
if (config.options.txtDisableWikiLinksList==undefined) config.options.txtDisableWikiLinksList="DisableWikiLinksList";
if (config.options.chkAllowLinksFromShadowTiddlers==undefined) config.options.chkAllowLinksFromShadowTiddlers=true;
if (config.options.txtDisableWikiLinksTag==undefined) config.options.txtDisableWikiLinksTag="excludeWikiWords";
// find the formatter for wikiLink and replace handler with 'pass-thru' rendering
initDisableWikiLinksFormatter();
function initDisableWikiLinksFormatter() {
 for (var i=0; i<config.formatters.length && config.formatters[i].name!="wikiLink"; i++);
 config.formatters[i].coreHandler=config.formatters[i].handler;
 config.formatters[i].handler=function(w) {
  // supress any leading "~" (if present)
  var skip=(w.matchText.substr(0,1)==config.textPrimitives.unWikiLink)?1:0;
  var title=w.matchText.substr(skip);
  var exists=store.tiddlerExists(title);
  var inShadow=w.tiddler && store.isShadowTiddler(w.tiddler.title);
  // check for excluded Tiddler
  if (w.tiddler && w.tiddler.isTagged(config.options.txtDisableWikiLinksTag))
   { w.outputText(w.output,w.matchStart+skip,w.nextMatch); return; }
  // check for specific excluded wiki words
  var t=store.getTiddlerText(config.options.txtDisableWikiLinksList);
  if (t && t.length && t.indexOf(w.matchText)!=-1)
   { w.outputText(w.output,w.matchStart+skip,w.nextMatch); return; }
  // if not disabling links from shadows (default setting)
  if (config.options.chkAllowLinksFromShadowTiddlers && inShadow)
   return this.coreHandler(w);
  // check for non-existing non-shadow tiddler
  if (config.options.chkDisableNonExistingWikiLinks && !exists)
   { w.outputText(w.output,w.matchStart+skip,w.nextMatch); return; }
  // if not enabled, just do standard WikiWord link formatting
  if (!config.options.chkDisableWikiLinks)
   return this.coreHandler(w);
  // just return text without linking
  w.outputText(w.output,w.matchStart+skip,w.nextMatch)
 }
}
Tiddler.prototype.coreAutoLinkWikiWords = Tiddler.prototype.autoLinkWikiWords;
Tiddler.prototype.autoLinkWikiWords = function()
{
 if (!config.options.chkDisableWikiLinks)
  return this.coreAutoLinkWikiWords.apply(this,arguments);
 return false;
}
Tiddler.prototype.disableWikiLinks_changed = Tiddler.prototype.changed;
Tiddler.prototype.changed = function()
{
 this.disableWikiLinks_changed.apply(this,arguments);
 var t=store.getTiddlerText(config.options.txtDisableWikiLinksList,"").readBracketedList();
 if (t.length) for (var i=0; i<t.length; i++)
  if (this.links.contains(t[i]))
   this.links.splice(this.links.indexOf(t[i]),1);
};
//}}}
/* |Author|Yakov Litvin|Forked from|[[abego.ForEachTiddlerPlugin|http://tiddlywiki.abego-software.de/#ForEachTiddlerPlugin]], by Udo Borkowski| */
//{{{
(function(){
// Only install once
if (version.extensions.ForEachTiddlerPlugin) {
 alert("Warning: more than one copy of ForEachTiddlerPlugin is set to be launched");
 return;
} else
 version.extensions.ForEachTiddlerPlugin = {
  source: "[repository url here]",
  licence: "[licence url here]",
  copyright: "Copyright (c) Yakov Litvin, 2012 [url of the meta page]"
 };
config.macros.forEachTiddler = {
 actions: {
  addToList: {},
  write: {}
 }
};
config.macros.forEachTiddler.handler = function(place,macroName,params,wikifier,paramString,tiddler) {
 var parsedParams = this.parseParams(params);
 if (parsedParams.errorText) {
  this.handleError(place, parsedParams.errorText);
  return;
 }//else
  parsedParams.place = place;
  parsedParams.inTiddler = tiddler? tiddler : getContainingTiddler(place);
 parsedParams.actionName = parsedParams.actionName ? parsedParams.actionName : "addToList";
 var actionName = parsedParams.actionName;
 var action = this.actions[actionName];
 if (!action) {
  this.handleError(place, "Unknown action '"+actionName+"'.");
  return;
 }
 var element = document.createElement(action.element);
 jQuery(element).attr({ refresh: "macro", macroName: macroName }).data(parsedParams);
 place.appendChild(element);
 this.refresh(element);
};
config.macros.forEachTiddler.refresh = function(element) {
 var parsedParams = jQuery(element).data(),
  action = this.actions[parsedParams.actionName];
 jQuery(element).empty();
 try {
  var tiddlersAndContext = this.getTiddlersAndContext(parsedParams);
  action.handler(element, tiddlersAndContext.tiddlers,
 parsedParams.actionParameter, tiddlersAndContext.context);
 } catch (e) {
  this.handleError(place, e);
 }
};
config.macros.forEachTiddler.getTiddlersAndContext = function(parameter) {
 var context = config.macros.forEachTiddler.createContext(parameter.place, parameter.filter, parameter.whereClause, parameter.sortClause, parameter.sortAscending, parameter.actionName, parameter.actionParameter, parameter.scriptText, parameter.tiddlyWikiPath, parameter.inTiddler);
 var tiddlyWiki = parameter.tiddlyWikiPath ? this.loadTiddlyWiki(parameter.tiddlyWikiPath) : store;
 context["tiddlyWiki"] = tiddlyWiki;
 var tiddlers = this.findTiddlers(parameter.filter, parameter.whereClause, context, tiddlyWiki);
 context["tiddlers"] = tiddlers;
 if (parameter.sortClause)
  this.sortTiddlers(tiddlers, parameter.sortClause, parameter.sortAscending, context);
 return {tiddlers: tiddlers, context: context};
};
config.macros.forEachTiddler.actions.addToList.element = "ul";
config.macros.forEachTiddler.actions.addToList.handler = function(place, tiddlers, parameter, context) {
 var p = 0;
 if (parameter.length > p) {
  config.macros.forEachTiddler.createExtraParameterErrorElement(place, "addToList", parameter, p);
  return;
 }
 for (var i = 0; i < tiddlers.length; i++) {
  var tiddler = tiddlers[i];
  var listItem = document.createElement("li");
  place.appendChild(listItem);
  createTiddlyLink(listItem, tiddler.title, true);
 }
};
var parseNamedParameter = function(name, parameter, i) {
 var beginExpression = null;
 if ((i < parameter.length) && parameter[i] == name) {
  i++;
  if (i >= parameter.length) {
   throw "Missing text behind '%0'".format([name]);
  }
  return config.macros.forEachTiddler.paramEncode(parameter[i]);
 }
 return null;
}
config.macros.forEachTiddler.actions.write.element = "span";
config.macros.forEachTiddler.actions.write.handler = function(place, tiddlers, parameter, context) {
 var p = 0;
 if (p >= parameter.length) {
  this.handleError(place, "Missing expression behind 'write'.");
  return;
 }
 var textExpression = config.macros.forEachTiddler.paramEncode(parameter[p]);
 p++;
 var beginExpression = parseNamedParameter("begin", parameter, p);
 if (beginExpression !== null)
  p += 2;
 var endExpression = parseNamedParameter("end", parameter, p);
 if (endExpression !== null)
  p += 2;
 var noneExpression = parseNamedParameter("none", parameter, p);
 if (noneExpression !== null)
  p += 2;
 var filename = null;
 var lineSeparator = undefined;
 if ((p < parameter.length) && parameter[p] == "toFile") {
  p++;
  if (p >= parameter.length) {
   this.handleError(place, "Filename expected behind 'toFile' of 'write' action.");
   return;
  }
  filename = config.macros.forEachTiddler.getLocalPath(config.macros.forEachTiddler.paramEncode(parameter[p]));
  p++;
  if ((p < parameter.length) && parameter[p] == "withLineSeparator") {
   p++;
   if (p >= parameter.length) {
 this.handleError(place, "Line separator text expected behind 'withLineSeparator' of 'write' action.");
 return;
   }
   lineSeparator = config.macros.forEachTiddler.paramEncode(parameter[p]);
   p++;
  }
 }
 if (parameter.length > p) {
  config.macros.forEachTiddler.createExtraParameterErrorElement(place, "write", parameter, p);
  return;
 }
 var func = config.macros.forEachTiddler.getEvalTiddlerFunction(textExpression, context);
 var count = tiddlers.length;
 var text = "";
 if (count > 0 && beginExpression)
  text += config.macros.forEachTiddler.getEvalTiddlerFunction(beginExpression, context)(undefined, context, count, undefined);
 for (var i = 0; i < count; i++) {
  var tiddler = tiddlers[i];
  text += func(tiddler, context, count, i);
 }
 if (count > 0 && endExpression)
  text += config.macros.forEachTiddler.getEvalTiddlerFunction(endExpression, context)(undefined, context, count, undefined);
 if (count == 0 && noneExpression)
  text += config.macros.forEachTiddler.getEvalTiddlerFunction(noneExpression, context)(undefined, context, count, undefined);
 if (filename) {
  if (lineSeparator !== undefined) {
   lineSeparator = lineSeparator.replace(/\\n/mg, "\n").replace(/\\r/mg, "\r");
   text = text.replace(/\n/mg,lineSeparator);
  }
  saveFile(filename, convertUnicodeToUTF8(text));
 } else
  wikify(text, place, null/* highlightRegExp */, context.inTiddler);
};
config.macros.forEachTiddler.parseParams = function(params) {
 var i = 0; // index running over the params
 var tiddlyWikiPath = undefined;
 if ((i < params.length) && params[i] == "in") {
  i++;
  if (i >= params.length)
   return { errorText: "TiddlyWiki path expected behind 'in'." };
  tiddlyWikiPath = this.paramEncode((i < params.length) ? params[i] : "");
  i++;
 }
 if ((i < params.length) && params[i] == "filter") {
  i++;
  var filter = (i < params.length) ? params[i] : undefined;
  i++;
 }
 var whereClause ="true";
 if ((i < params.length) && params[i] == "where") {
  i++;
  whereClause = this.paramEncode((i < params.length) ? params[i] : "");
  i++;
 }
 var sortClause = null;
 var sortAscending = true;
 if ((i < params.length) && params[i] == "sortBy") {
  i++;
  if (i >= params.length)
   return { errorText: "sortClause missing behind 'sortBy'." };
  sortClause = this.paramEncode(params[i]);
  i++;
  if ((i < params.length) && (params[i] == "ascending" || params[i] == "descending")) {
 sortAscending = params[i] == "ascending";
 i++;
  }
 }
 var scriptText = null;
 if ((i < params.length) && params[i] == "script") {
  i++;
  scriptText = this.paramEncode((i < params.length) ? params[i] : "");
  i++;
 }
 var actionName = "addToList";
 if (i < params.length) {
  if (!config.macros.forEachTiddler.actions[params[i]])
   return { errorText: "Unknown action '"+params[i]+"'." };
  else {
   actionName = params[i];
   i++;
  }
 }
 var actionParameter = params.slice(i);
 return {
   filter:   filter,
   whereClause:  whereClause,
   sortClause:  sortClause,
   sortAscending:  sortAscending,
   actionName:  actionName,
   actionParameter: actionParameter,
   scriptText:  scriptText,
   tiddlyWikiPath:  tiddlyWikiPath
  }
};
var getContainingTiddler = function(e) {
 while(e && !hasClass(e,"tiddler"))
  e = e.parentNode;
 var title = e ? e.getAttribute("tiddler") : null;
 return title ? store.getTiddler(title) : null;
};
config.macros.forEachTiddler.createContext = function(placeParam, filterParam, whereClauseParam, sortClauseParam, sortAscendingParam, actionNameParam, actionParameterParam, scriptText, tiddlyWikiPathParam, inTiddlerParam) {
 return {
  place  : placeParam,
  filter  : filterParam,
  whereClause : whereClauseParam,
  sortClause : sortClauseParam,
  sortAscending : sortAscendingParam,
  script  : scriptText,
  actionName : actionNameParam,
  actionParameter : actionParameterParam,
  tiddlyWikiPath : tiddlyWikiPathParam,
  inTiddler : inTiddlerParam, // the tiddler containing the <<forEachTiddler ...>> macro call.
  viewerTiddler : getContainingTiddler(placeParam) //the tiddler showing the forEachTiddler result
 };
};
config.macros.forEachTiddler.loadTiddlyWiki = function(path, idPrefix) {
 if (!idPrefix) {
  idPrefix = "store";
 }
 var lenPrefix = idPrefix.length;
 var content = loadFile(this.getLocalPath(path));
 if(content === null) {
  throw "TiddlyWiki '"+path+"' not found.";
 }
 var tiddlyWiki = new TiddlyWiki();
 if (!tiddlyWiki.importTiddlyWiki(content))
  throw "File '"+path+"' is not a TiddlyWiki.";
 tiddlyWiki.dirty = false;
 return tiddlyWiki;
};
config.macros.forEachTiddler.getEvalTiddlerFunction = function (javaScriptExpression, context) {
 var script = context["script"];
 var functionText = "var theFunction = function(tiddler, context, count, index) { return "+javaScriptExpression+" }";
 var fullText = (script ? script+";" : "")+functionText+";theFunction;";
 return eval(fullText);
};
config.macros.forEachTiddler.findTiddlers = function(filter, whereClause, context, tiddlyWiki) {
 var result = [];
 var func = config.macros.forEachTiddler.getEvalTiddlerFunction(whereClause, context);
 if(filter) {
  var tids = tiddlyWiki.filterTiddlers(filter);
  for(var i = 0; i < tids.length; i++)
   if(func(tids[i], context, undefined, undefined))
 result.push(tids[i]);
 } else
  tiddlyWiki.forEachTiddler(function(title,tiddler) {
   if(func(tiddler, context, undefined, undefined))
 result.push(tiddler);
  });
 return result;
};
config.macros.forEachTiddler.sortAscending = function(tiddlerA, tiddlerB) {
 return ((tiddlerA.forEachTiddlerSortValue == tiddlerB.forEachTiddlerSortValue)
   ? 0
   : ((tiddlerA.forEachTiddlerSortValue < tiddlerB.forEachTiddlerSortValue)
 ? -1
 : +1))
};
config.macros.forEachTiddler.sortDescending = function(tiddlerA, tiddlerB) {
 return ((tiddlerA.forEachTiddlerSortValue == tiddlerB.forEachTiddlerSortValue)
   ? 0
   : ((tiddlerA.forEachTiddlerSortValue < tiddlerB.forEachTiddlerSortValue)
 ? +1
 : -1))
};
config.macros.forEachTiddler.sortTiddlers = function(tiddlers, sortClause, ascending, context) {
 var func = config.macros.forEachTiddler.getEvalTiddlerFunction(sortClause, context);
 var count = tiddlers.length;
 var i;
 for (i = 0; i < count; i++) {
  var tiddler = tiddlers[i];
  tiddler.forEachTiddlerSortValue = func(tiddler,context, undefined, undefined);
 }
 tiddlers.sort(ascending ? this.sortAscending : this.sortDescending);
 for (i = 0; i < tiddlers.length; i++)
  delete tiddlers[i].forEachTiddlerSortValue;
};
config.macros.forEachTiddler.createErrorElement = function(place, exception) {
 var message = (exception.description) ? exception.description : exception.toString();
 return createTiddlyElement(place,"span",null,"forEachTiddlerError","<<forEachTiddler ...>>: "+message);
};
config.macros.forEachTiddler.handleError = function(place, exception) {
 if (place) {
  this.createErrorElement(place, exception);
 } else {
  throw exception;
 }
};
config.macros.forEachTiddler.createExtraParameterErrorElement = function(place, actionName, parameter, firstUnusedIndex) {
 var message = "Extra parameter behind '"+actionName+"':";
 for (var i = firstUnusedIndex; i < parameter.length; i++) {
  message += " "+parameter[i];
 }
 this.handleError(place, message);
};
config.macros.forEachTiddler.paramEncode = function(s) {
 var reGTGT = new RegExp("\\$\\)\\)","mg");
 var reGT = new RegExp("\\$\\)","mg");
 return s.replace(reGTGT, ">>").replace(reGT, ">");
};
config.macros.forEachTiddler.getLocalPath = function(originalPath) {
 var originalAbsolutePath = originalPath;
 if(originalAbsolutePath.search(/^((http(s)?)|(file)):/) != 0) {
  if (originalAbsolutePath.search(/^(.\:\\)|(\\\\)|(\/)/) != 0){// is relative?
   var currentUrl = document.location.toString();
   var currentPath = (currentUrl.lastIndexOf("/") > -1) ?
 currentUrl.substr(0, currentUrl.lastIndexOf("/") + 1) :
 currentUrl + "/";
   originalAbsolutePath = currentPath + originalAbsolutePath;
  } else
   originalAbsolutePath = "file://" + originalAbsolutePath;
  originalAbsolutePath = originalAbsolutePath.replace(/\\/mg,"/");
 }
 return getLocalPath(originalAbsolutePath);
};
setStylesheet(
 ".forEachTiddlerError{color: #ffffff;background-color: #880000; }",
 "forEachTiddler");
config.macros.fet = config.macros.forEachTiddler;
String.prototype.startsWith = function(prefix) {
 var n = prefix.length;
 return (this.length >= n) && (this.slice(0, n) == prefix);
};
String.prototype.endsWith = function(suffix) {
 var n = suffix.length;
 return (this.length >= n) && (this.right(n) == suffix);
};
String.prototype.contains = function(substring) {
 return this.indexOf(substring) >= 0;
};
})();
Tiddler.prototype.getSlice = function(sliceName,defaultText) {
 var re = TiddlyWiki.prototype.slicesRE;
 re.lastIndex = 0;
 var m = re.exec(this.text);
 while(m) {
  if(m[2]) {
   if(m[2] == sliceName)
 return m[3];
  } else {
   if(m[5] == sliceName)
 return m[6];
  }
  m = re.exec(this.text);
 }
 return defaultText;
};
Tiddler.prototype.getSection = function(sectionName,defaultText) {
 var beginSectionRegExp = new RegExp("(^!{1,6}[ \t]*" + sectionName.escapeRegExp() + "[ \t]*\n)","mg"),
  sectionTerminatorRegExp = /^!/mg;
 var match = beginSectionRegExp.exec(this.text), sectionText;
 if(match) {
  sectionText = this.text.substr(match.index+match[1].length);
  match = sectionTerminatorRegExp.exec(sectionText);
  if(match)
   sectionText = sectionText.substr(0,match.index-1); // don't include final \n
  return sectionText
 }
 return defaultText;
};
//}}}
/* |Author|Eric Shulman|License|http://www.TiddlyTools.com/#LegalStatements|
!Configuration
<<<
Use {{{<hide linebreaks> }}} within HTML content to wiki-style rendering of line breaks. To //always// omit all line breaks from the rendered output, you can set this option:
><<option chkHTMLHideLinebreaks>> ignore all line breaks
which can also be 'hard coded' into your document by adding the following to a tiddler, tagged with <<tag systemConfig>>
>{{{config.options.chkHTMLHideLinebreaks=true; }}}
<<<
!Code
*/
//{{{
version.extensions.HTMLFormattingPlugin= {major: 2, minor: 4, revision: 1, date: new Date(2010,5,7)};
// find the formatter for HTML and replace the handler
initHTMLFormatter();
function initHTMLFormatter()
{
 for (var i=0; i<config.formatters.length && config.formatters[i].name!="html"; i++);
 if (i<config.formatters.length) config.formatters[i].handler=function(w) {
  if (!this.lookaheadRegExp)
   this.lookaheadRegExp = new RegExp(this.lookahead,"mg");
  this.lookaheadRegExp.lastIndex = w.matchStart;
  var lookaheadMatch = this.lookaheadRegExp.exec(w.source)
  if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
   var html=lookaheadMatch[1];
   // if <nowiki> is present, just let browser handle it!
   if (html.indexOf('<nowiki>')!=-1)
 createTiddlyElement(w.output,"span").innerHTML=html;
   else {
 // if <hide linebreaks> is present, or chkHTMLHideLinebreaks is set
 // suppress wiki-style literal handling of newlines
 if (config.options.chkHTMLHideLinebreaks||(html.indexOf('<hide linebreaks>')!=-1))
  html=html.replace(/\n/g,' ');
 // remove all \r's added by IE textarea and mask newlines and macro brackets
 html=html.replace(/\r/g,'').replace(/\n/g,'\\n').replace(/<</g,'%%(').replace(/>>/g,')%%');
 // create span, let browser parse HTML
 var e=createTiddlyElement(w.output,"span"); e.innerHTML=html;
 // then re-render text nodes as wiki-formatted content
 wikifyTextNodes(e,w);
   }
   w.nextMatch = this.lookaheadRegExp.lastIndex; // continue parsing
  }
 }
}
// wikify #text nodes that remain after HTML content is processed (pre-order recursion)
function wikifyTextNodes(theNode,w)
{
 function unmask(s) { return s.replace(/\%%\(/g,'<<').replace(/\)\%%/g,'>>').replace(/\\n/g,'\n'); }
 switch (theNode.nodeName.toLowerCase()) {
  case 'style': case 'option': case 'select':
   theNode.innerHTML=unmask(theNode.innerHTML);
   break;
  case 'textarea':
   theNode.value=unmask(theNode.value);
   break;
  case '#text':
   var txt=unmask(theNode.nodeValue);
   var newNode=createTiddlyElement(null,"span");
   theNode.parentNode.replaceChild(newNode,theNode);
   wikify(txt,newNode,highlightHack,w.tiddler);
   break;
  default:
   for (var i=0;i<theNode.childNodes.length;i++)
 wikifyTextNodes(theNode.childNodes.item(i),w); // recursion
   break;
 }
}
//}}}
/* |Author|Eric Shulman|License|http://www.TiddlyTools.com/#LegalStatements|
!Code
*/
//{{{
version.extensions.ImageSizePlugin= {major: 1, minor: 2, revision: 2, date: new Date(2010,7,24)};
//}}}
//{{{
var f=config.formatters[config.formatters.findByField("name","image")];
f.match="\\[[<>]?[Ii][Mm][Gg](?:\\([^,]*,[^\\)]*\\))?\\[";
f.lookaheadRegExp=/\[([<]?)(>?)[Ii][Mm][Gg](?:\(([^,]*),([^\)]*)\))?\[(?:([^\|\]]+)\|)?([^\[\]\|]+)\](?:\[([^\]]*)\])?\]/mg;
f.handler=function(w) {
 this.lookaheadRegExp.lastIndex = w.matchStart;
 var lookaheadMatch = this.lookaheadRegExp.exec(w.source)
 if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
  var floatLeft=lookaheadMatch[1];
  var floatRight=lookaheadMatch[2];
  var width=lookaheadMatch[3];
  var height=lookaheadMatch[4];
  var tooltip=lookaheadMatch[5];
  var src=lookaheadMatch[6];
  var link=lookaheadMatch[7];
  var e = w.output;
  if(link) { // LINKED IMAGE
   if (config.formatterHelpers.isExternalLink(link)) {
 if (config.macros.attach && config.macros.attach.isAttachment(link)) {
  // see [[AttachFilePluginFormatters]]
  e = createExternalLink(w.output,link);
  e.href=config.macros.attach.getAttachment(link);
  e.title = config.macros.attach.linkTooltip + link;
 } else
  e = createExternalLink(w.output,link);
   } else
 e = createTiddlyLink(w.output,link,false,null,w.isStatic);
   addClass(e,"imageLink");
  }
  var img = createTiddlyElement(e,"img");
  if(floatLeft) img.align="left"; else if(floatRight) img.align="right";
  if(width||height) {
   var x=width.trim(); var y=height.trim();
   var stretchW=(x.substr(x.length-1,1)=='+'); if (stretchW) x=x.substr(0,x.length-1);
   var stretchH=(y.substr(y.length-1,1)=='+'); if (stretchH) y=y.substr(0,y.length-1);
   if (x.substr(0,2)=="{{")
 { try{x=eval(x.substr(2,x.length-4))} catch(e){displayMessage(e.description||e.toString())} }
   if (y.substr(0,2)=="{{")
 { try{y=eval(y.substr(2,y.length-4))} catch(e){displayMessage(e.description||e.toString())} }
   img.style.width=x.trim(); img.style.height=y.trim();
   config.formatterHelpers.addStretchHandlers(img,stretchW,stretchH);
  }
  if(tooltip) img.title = tooltip;
  if (config.macros.attach && config.macros.attach.isAttachment(src))
   src=config.macros.attach.getAttachment(src); // see [[AttachFilePluginFormatters]]
  else if (config.formatterHelpers.resolvePath) { // see [[ImagePathPlugin]]
   if (config.browser.isIE || config.browser.isSafari) {
 img.onerror=(function(){
  this.src=config.formatterHelpers.resolvePath(this.src,false);
  return false;
 });
   } else
 src=config.formatterHelpers.resolvePath(src,true);
  }
  img.src=src;
  w.nextMatch = this.lookaheadRegExp.lastIndex;
 }
}
config.formatterHelpers.imageSize={
tip: '', dragtip: 'DRAG=étirer/réduire, '
}
config.formatterHelpers.addStretchHandlers=function(e,stretchW,stretchH) {
 e.title=((stretchW||stretchH)?this.imageSize.dragtip:'')+this.imageSize.tip;
 e.statusMsg='width=%0, height=%1';
 e.style.cursor='move';
 e.originalW=e.style.width;
 e.originalH=e.style.height;
 e.minW=Math.max(e.offsetWidth/20,10);
 e.minH=Math.max(e.offsetHeight/20,10);
 e.stretchW=stretchW;
 e.stretchH=stretchH;
 e.onmousedown=function(ev) { var ev=ev||window.event;
  this.sizing=true;
  this.startX=!config.browser.isIE?ev.pageX:(ev.clientX+findScrollX());
  this.startY=!config.browser.isIE?ev.pageY:(ev.clientY+findScrollY());
  this.startW=this.offsetWidth;
  this.startH=this.offsetHeight;
  return false;
 };
 e.onmousemove=function(ev) { var ev=ev||window.event;
  if (this.sizing) {
   var s=this.style;
   var currX=!config.browser.isIE?ev.pageX:(ev.clientX+findScrollX());
   var currY=!config.browser.isIE?ev.pageY:(ev.clientY+findScrollY());
   var newW=(currX-this.offsetLeft)/(this.startX-this.offsetLeft)*this.startW;
   var newH=(currY-this.offsetTop )/(this.startY-this.offsetTop )*this.startH;
   if (this.stretchW) s.width =Math.floor(Math.max(newW,this.minW))+'px';
   if (this.stretchH) s.height=Math.floor(Math.max(newH,this.minH))+'px';
   clearMessage(); displayMessage(this.statusMsg.format([s.width,s.height]));
  }
  return false;
 };
 e.onmouseup=function(ev) { var ev=ev||window.event;
  if (ev.shiftKey) { this.style.width=this.style.height=''; }
  if (ev.ctrlKey) { this.style.width=this.originalW; this.style.height=this.originalH; }
  this.sizing=false;
  clearMessage();
  return false;
 };
 e.onmouseout=function(ev) { var ev=ev||window.event;
  this.sizing=false;
  clearMessage();
  return false;
 };
}
//}}}
/* |Author|Eric Shulman|License|http://www.TiddlyTools.com/#LegalStatements|!Code
*/
//{{{
version.extensions.InlineJavascriptPlugin= {major: 1, minor: 9, revision: 6, date: new Date(2010,12,15)};
config.formatters.push( {
 name: "inlineJavascript",
 match: "\\<script",
 lookahead: "\\<script(?: type=\\\"[^\\\"]*\\\")?(?: src=\\\"([^\\\"]*)\\\")?(?: label=\\\"([^\\\"]*)\\\")?(?: title=\\\"([^\\\"]*)\\\")?(?: key=\\\"([^\\\"]*)\\\")?( show)?\\>((?:.|\\n)*?)\\</script\\>",
 handler: function(w) {
  var lookaheadRegExp = new RegExp(this.lookahead,"mg");
  lookaheadRegExp.lastIndex = w.matchStart;
  var lookaheadMatch = lookaheadRegExp.exec(w.source)
  if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
   var src=lookaheadMatch[1];
   var label=lookaheadMatch[2];
   var tip=lookaheadMatch[3];
   var key=lookaheadMatch[4];
   var show=lookaheadMatch[5];
   var code=lookaheadMatch[6];
   if (src) { // external script library
 var script = document.createElement("script"); script.src = src;
 document.body.appendChild(script); document.body.removeChild(script);
   }
   if (code) { // inline code
 if (show) // display source in tiddler
  wikify("{{{\n"+lookaheadMatch[0]+"\n}}}\n",w.output);
 if (label) { // create 'onclick' command link
  var link=createTiddlyElement(w.output,"a",null,"tiddlyLinkExisting",wikifyPlainText(label));
  var fixup=code.replace(/document.write\s*\(/gi,'place.bufferedHTML+=(');
  link.code="function _out(place,tiddler){"+fixup+"\n};_out(this,this.tiddler);"
  link.tiddler=w.tiddler;
  link.onclick=function(){
   this.bufferedHTML="";
   try{ var r=eval(this.code);
 if(this.bufferedHTML.length || (typeof(r)==="string")&&r.length)
  var s=this.parentNode.insertBefore(document.createElement("span"),this.nextSibling);
 if(this.bufferedHTML.length)
  s.innerHTML=this.bufferedHTML;
 if((typeof(r)==="string")&&r.length) {
  wikify(r,s,null,this.tiddler);
  return false;
 } else return r!==undefined?r:false;
   } catch(e){alert(e.description||e.toString());return false; }
  };
  link.setAttribute("title",tip||"");
  var URIcode='javascript:void(eval(decodeURIComponent(%22(function(){try{';
  URIcode+=encodeURIComponent(encodeURIComponent(code.replace(/\n/g,' ')));
  URIcode+='}catch(e){alert(e.description||e.toString())}})()%22)))';
  link.setAttribute("href",URIcode);
  link.style.cursor="pointer";
  if (key) link.accessKey=key.substr(0,1); // single character only
 }
 else { // run script immediately
  var fixup=code.replace(/document.write\s*\(/gi,'place.innerHTML+=(');
  var c="function _out(place,tiddler){"+fixup+"\n};_out(w.output,w.tiddler);";
  try  { var out=eval(c); }
  catch(e) { out=e.description?e.description:e.toString(); }
  if (out && out.length) wikify(out,w.output,w.highlightRegExp,w.tiddler);
 }
   }
   w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
  }
 }
} )
//}}}
// // Backward-compatibility for TW2.1.x and earlier
//{{{
if (typeof(wikifyPlainText)=="undefined") window.wikifyPlainText=function(text,limit,tiddler) {
 if(limit > 0) text = text.substr(0,limit);
 var wikifier = new Wikifier(text,formatter,null,tiddler);
 return wikifier.wikifyPlain();
}
//}}}
// // GLOBAL FUNCTION: $(...) -- 'shorthand' convenience syntax for document.getElementById()
//{{{
if (typeof($)=='undefined') { function $(id) { return document.getElementById(id.replace(/^#/,'')); } }
//}}}
/* |Author|Eric Shulman|License|http://www.TiddlyTools.com/#LegalStatements|
!Configuration
<<<
<<option chkFloatingSlidersAnimate>> allow floating sliders to animate when opening/closing
<<<
!Code
*/
//{{{
version.extensions.NestedSlidersPlugin= {major: 2, minor: 4, revision: 9, date: new Date(2008,11,15)};
// options for deferred rendering of sliders that are not initially displayed
if (config.options.chkFloatingSlidersAnimate===undefined)
 config.options.chkFloatingSlidersAnimate=false; // avoid clipping problems in IE
// default styles for 'floating' class
setStylesheet(".floatingPanel { position:absolute; z-index:10; padding:0.5em; margin:0em; \
 background-color:#fff; color:#014; border:1px solid #000; text-align:left; }","floatingPanelStylesheet");
// if removeCookie() function is not defined by TW core, define it here.
if (window.removeCookie===undefined) {
 window.removeCookie=function(name) {
  document.cookie = name+'=; expires=Thu, 01-Jan-1970 00:00:01 UTC; path=/;';
 }
}
config.formatters.push( {
 name: "nestedSliders",
 match: "\\n?\\+{3}",
 terminator: "\\s*\\={3}\\n?",
 lookahead: "\\n?\\+{3}(\\+)?(\\([^\\)]*\\))?(\\!*)?(\\^(?:[^\\^\\*\\@\\[\\>]*\\^)?)?(\\*)?(\\@)?(?:\\{\\{([\\w]+[\\s\\w]*)\\{)?(\\[[^\\]]*\\])?(\\[[^\\]]*\\])?(?:\\}{3})?(\\#[^:]*\\:)?(\\>)?(\\.\\.\\.)?\\s*",
 handler: function(w)
  {
   lookaheadRegExp = new RegExp(this.lookahead,"mg");
   lookaheadRegExp.lastIndex = w.matchStart;
   var lookaheadMatch = lookaheadRegExp.exec(w.source)
   if(lookaheadMatch && lookaheadMatch.index == w.matchStart)
   {
 var defopen=lookaheadMatch[1];
 var cookiename=lookaheadMatch[2];
 var header=lookaheadMatch[3];
 var panelwidth=lookaheadMatch[4];
 var transient=lookaheadMatch[5];
 var hover=lookaheadMatch[6];
 var buttonClass=lookaheadMatch[7];
 var label=lookaheadMatch[8];
 var openlabel=lookaheadMatch[9];
 var panelID=lookaheadMatch[10];
 var blockquote=lookaheadMatch[11];
 var deferred=lookaheadMatch[12];
 // location for rendering button and panel
 var place=w.output;
 // default to closed, no cookie, no accesskey, no alternate text/tip
 var show="none"; var cookie=""; var key="";
 var closedtext=">"; var closedtip="";
 var openedtext="<"; var openedtip="";
 // extra "+", default to open
 if (defopen) show="block";
 // cookie, use saved open/closed state
 if (cookiename) {
  cookie=cookiename.trim().slice(1,-1);
  cookie="chkSlider"+cookie;
  if (config.options[cookie]==undefined)
   { config.options[cookie] = (show=="block") }
  show=config.options[cookie]?"block":"none";
 }
 // parse label/tooltip/accesskey: [label=X|tooltip]
 if (label) {
  var parts=label.trim().slice(1,-1).split("|");
  closedtext=parts.shift();
  if (closedtext.substr(closedtext.length-2,1)=="=")
   { key=closedtext.substr(closedtext.length-1,1); closedtext=closedtext.slice(0,-2); }
  openedtext=closedtext;
  if (parts.length) closedtip=openedtip=parts.join("|");
  else { closedtip="afficher "+closedtext; openedtip="masquer "+closedtext; }
 }
 // parse alternate label/tooltip: [label|tooltip]
 if (openlabel) {
  var parts=openlabel.trim().slice(1,-1).split("|");
  openedtext=parts.shift();
  if (parts.length) openedtip=parts.join("|");
  else openedtip="hide "+openedtext;
 }
 var title=show=='block'?openedtext:closedtext;
 var tooltip=show=='block'?openedtip:closedtip;
 // create the button
 if (header) { // use "Hn" header format instead of button/link
  var lvl=(header.length>5)?5:header.length;
  var btn = createTiddlyElement(createTiddlyElement(place,"h"+lvl,null,null,null),"a",null,buttonClass,title);
  btn.onclick=onClickNestedSlider;
  btn.setAttribute("href","javascript:;");
  btn.setAttribute("title",tooltip);
 }
 else
  var btn = createTiddlyButton(place,title,tooltip,onClickNestedSlider,buttonClass);
 btn.innerHTML=title; // enables use of HTML entities in label
 // set extra button attributes
 btn.setAttribute("closedtext",closedtext);
 btn.setAttribute("closedtip",closedtip);
 btn.setAttribute("openedtext",openedtext);
 btn.setAttribute("openedtip",openedtip);
 btn.sliderCookie = cookie; // save the cookiename (if any) in the button object
 btn.defOpen=defopen!=null; // save default open/closed state (boolean)
 btn.keyparam=key; // save the access key letter ("" if none)
 if (key.length) {
  btn.setAttribute("accessKey",key); // init access key
  btn.onfocus=function(){this.setAttribute("accessKey",this.keyparam); }; // **reclaim** access key on focus
 }
 btn.setAttribute("hover",hover?"true":"false");
 btn.onmouseover=function(ev) {
  // optional 'open on hover' handling
  if (this.getAttribute("hover")=="true" && this.sliderPanel.style.display=='none') {
   document.onclick.call(document,ev); // close transients
   onClickNestedSlider(ev); // open this slider
  }
  // mouseover on button aligns floater position with button
  if (window.adjustSliderPos) window.adjustSliderPos(this.parentNode,this,this.sliderPanel);
 }
 // create slider panel
 var panelClass=panelwidth?"floatingPanel":"sliderPanel";
 if (panelID) panelID=panelID.slice(1,-1); // trim off delimiters
 var panel=createTiddlyElement(place,"div",panelID,panelClass,null);
 panel.button = btn; // so the slider panel know which button it belongs to
 btn.sliderPanel=panel; // so the button knows which slider panel it belongs to
 panel.defaultPanelWidth=(panelwidth && panelwidth.length>2)?panelwidth.slice(1,-1):"";
 panel.setAttribute("transient",transient=="*"?"true":"false");
 panel.style.display = show;
 panel.style.width=panel.defaultPanelWidth;
 panel.onmouseover=function(event) // mouseover on panel aligns floater position with button
  { if (window.adjustSliderPos) window.adjustSliderPos(this.parentNode,this.button,this); }
 // render slider (or defer until shown)
 w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
 if ((show=="block")||!deferred) {
  // render now if panel is supposed to be shown or NOT deferred rendering
  w.subWikify(blockquote?createTiddlyElement(panel,"blockquote"):panel,this.terminator);
  // align floater position with button
  if (window.adjustSliderPos) window.adjustSliderPos(place,btn,panel);
 }
 else {
  var src = w.source.substr(w.nextMatch);
  var endpos=findMatchingDelimiter(src,"+++","===");
  panel.setAttribute("raw",src.substr(0,endpos));
  panel.setAttribute("blockquote",blockquote?"true":"false");
  panel.setAttribute("rendered","false");
  w.nextMatch += endpos+3;
  if (w.source.substr(w.nextMatch,1)=="\n") w.nextMatch++;
 }
   }
  }
 }
)
function findMatchingDelimiter(src,starttext,endtext) {
 var startpos = 0;
 var endpos = src.indexOf(endtext);
 // check for nested delimiters
 while (src.substring(startpos,endpos-1).indexOf(starttext)!=-1) {
  // count number of nested 'starts'
  var startcount=0;
  var temp = src.substring(startpos,endpos-1);
  var pos=temp.indexOf(starttext);
  while (pos!=-1) { startcount++; pos=temp.indexOf(starttext,pos+starttext.length); }
  // set up to check for additional 'starts' after adjusting endpos
  startpos=endpos+endtext.length;
  // find endpos for corresponding number of matching 'ends'
  while (startcount && endpos!=-1) {
   endpos = src.indexOf(endtext,endpos+endtext.length);
   startcount--;
  }
 }
 return (endpos==-1)?src.length:endpos;
}
//}}}
//{{{
window.onClickNestedSlider=function(e)
{
 if (!e) var e = window.event;
 var theTarget = resolveTarget(e);
 while (theTarget && theTarget.sliderPanel==undefined) theTarget=theTarget.parentNode;
 if (!theTarget) return false;
 var theSlider = theTarget.sliderPanel;
 var isOpen = theSlider.style.display!="none";
 // if SHIFT-CLICK, dock panel first (see [[MoveablePanelPlugin]])
 if (e.shiftKey && config.macros.moveablePanel) config.macros.moveablePanel.dock(theSlider,e);
 // toggle label
 theTarget.innerHTML=isOpen?theTarget.getAttribute("closedText"):theTarget.getAttribute("openedText");
 // toggle tooltip
 theTarget.setAttribute("title",isOpen?theTarget.getAttribute("closedTip"):theTarget.getAttribute("openedTip"));
 // deferred rendering (if needed)
 if (theSlider.getAttribute("rendered")=="false") {
  var place=theSlider;
  if (theSlider.getAttribute("blockquote")=="true")
   place=createTiddlyElement(place,"blockquote");
  wikify(theSlider.getAttribute("raw"),place);
  theSlider.setAttribute("rendered","true");
 }
 // show/hide the slider
 if(config.options.chkAnimate && (!hasClass(theSlider,'floatingPanel') || config.options.chkFloatingSlidersAnimate))
  anim.startAnimating(new Slider(theSlider,!isOpen,e.shiftKey || e.altKey,"none"));
 else
  theSlider.style.display = isOpen ? "none" : "block";
 // reset to default width (might have been changed via plugin code)
 theSlider.style.width=theSlider.defaultPanelWidth;
 // align floater panel position with target button
 if (!isOpen && window.adjustSliderPos) window.adjustSliderPos(theSlider.parentNode,theTarget,theSlider);
 // if showing panel, set focus to first 'focus-able' element in panel
 if (theSlider.style.display!="none") {
  var ctrls=theSlider.getElementsByTagName("*");
  for (var c=0; c<ctrls.length; c++) {
   var t=ctrls[c].tagName.toLowerCase();
   if ((t=="input" && ctrls[c].type!="hidden") || t=="textarea" || t=="select")
 { try{ ctrls[c].focus(); } catch(err){; } break; }
  }
 }
 var cookie=theTarget.sliderCookie;
 if (cookie && cookie.length) {
  config.options[cookie]=!isOpen;
  if (config.options[cookie]!=theTarget.defOpen) window.saveOptionCookie(cookie);
  else window.removeCookie(cookie); // remove cookie if slider is in default display state
 }
 // prevent SHIFT-CLICK from being processed by browser (opens blank window... yuck!)
 // prevent clicks *within* a slider button from being processed by browser
 // but allow plain click to bubble up to page background (to close transients, if any)
 if (e.shiftKey || theTarget!=resolveTarget(e))
  { e.cancelBubble=true; if (e.stopPropagation) e.stopPropagation(); }
 Popup.remove(); // close open popup (if any)
 return false;
}
//}}}
//{{{
// click in document background closes transient panels
document.nestedSliders_savedOnClick=document.onclick;
document.onclick=function(ev) { if (!ev) var ev=window.event; var target=resolveTarget(ev);
 if (document.nestedSliders_savedOnClick)
  var retval=document.nestedSliders_savedOnClick.apply(this,arguments);
 // if click was inside a popup... leave transient panels alone
 var p=target; while (p) if (hasClass(p,"popup")) break; else p=p.parentNode;
 if (p) return retval;
 // if click was inside transient panel (or something contained by a transient panel), leave it alone
 var p=target; while (p) {
  if ((hasClass(p,"floatingPanel")||hasClass(p,"sliderPanel"))&&p.getAttribute("transient")=="true") break;
  p=p.parentNode;
 }
 if (p) return retval;
 // otherwise, find and close all transient panels...
 var all=document.all?document.all:document.getElementsByTagName("DIV");
 for (var i=0; i<all.length; i++) {
   // if it is not a transient panel, or the click was on the button that opened this panel, don't close it.
  if (all[i].getAttribute("transient")!="true" || all[i].button==target) continue;
  // otherwise, if the panel is currently visible, close it by clicking it's button
  if (all[i].style.display!="none") window.onClickNestedSlider({target:all[i].button})
  if (!hasClass(all[i],"floatingPanel")&&!hasClass(all[i],"sliderPanel")) all[i].style.display="none";
 }
 return retval;
};
//}}}
//{{{
// adjust floating panel position based on button position
if (window.adjustSliderPos==undefined) window.adjustSliderPos=function(place,btn,panel) {
 if (hasClass(panel,"floatingPanel") && !hasClass(panel,"undocked")) {
  // see [[MoveablePanelPlugin]] for use of 'undocked'
  var rightEdge=document.body.offsetWidth-1;
  var panelWidth=panel.offsetWidth;
  var left=0;
  var top=btn.offsetHeight;
  if (place.style.position=="relative" && findPosX(btn)+panelWidth>rightEdge) {
   left-=findPosX(btn)+panelWidth-rightEdge; // shift panel relative to button
   if (findPosX(btn)+left<0) left=-findPosX(btn); // stay within left edge
  }
  if (place.style.position!="relative") {
   var left=findPosX(btn);
   var top=findPosY(btn)+btn.offsetHeight;
   var p=place; while (p && !hasClass(p,'floatingPanel')) p=p.parentNode;
   if (p) { left-=findPosX(p); top-=findPosY(p); }
   if (left+panelWidth>rightEdge) left=rightEdge-panelWidth;
   if (left<0) left=0;
  }
  panel.style.left=left+"px"; panel.style.top=top+"px";
 }
}
//}}}
//{{{
// TW2.1 and earlier:
// hijack Slider stop handler so overflow is visible after animation has completed
Slider.prototype.coreStop = Slider.prototype.stop;
Slider.prototype.stop = function()
 { this.coreStop.apply(this,arguments); this.element.style.overflow = "visible"; }
// TW2.2+
// hijack Morpher stop handler so sliderPanel/floatingPanel overflow is visible after animation has completed
if (version.major+.1*version.minor+.01*version.revision>=2.2) {
 Morpher.prototype.coreStop = Morpher.prototype.stop;
 Morpher.prototype.stop = function() {
  this.coreStop.apply(this,arguments);
  var e=this.element;
  if (hasClass(e,"sliderPanel")||hasClass(e,"floatingPanel")) {
   // adjust panel overflow and position after animation
   e.style.overflow = "visible";
   if (window.adjustSliderPos) window.adjustSliderPos(e.parentNode,e.button,e);
  }
 };
}
//}}}
/* |Author|Eric Shulman|License|http://www.TiddlyTools.com/#LegalStatements|
*/
//{{{
version.extensions.QuoteOfTheDayPlugin= {major: 1, minor: 4, revision: 1, date: new Date(2008,3,21)};
config.macros.QOTD = {
 clickTooltip: "click to view another item",
 timerTooltip: "auto-timer stopped... 'mouseout' to restart timer",
 timerClickTooltip: "auto-timer stopped... click to view another item, or 'mouseout' to restart timer",
 handler:
 function(place,macroName,params) {
 var tid=params.shift(); // source tiddler containing HR-separated quotes
 var p=params.shift();
 var click=true; // allow click for next item
 var inline=false; // wrap in slider for animation effect
 var random=true; // pick an item at random (default for "quote of the day" usage)
 var folder=false; // use local filesystem folder list
 var cookie=""; // default to no cookie
 var next=0; // default to first item (or random item)
 while (p) {
 if (p.toLowerCase()=="noclick") var click=false;
 if (p.toLowerCase()=="inline") var inline=true;
 if (p.toLowerCase()=="norandom") var random=false;
 if (p.toLowerCase().substr(0,7)=="cookie:") var cookie=p.substr(8);
 if (!isNaN(p)) var delay=p;
 p=params.shift();
 }
 if ((click||delay) && !inline) {
 var panel = createTiddlyElement(null,"div",null,"sliderPanel");
 panel.style.display="none";
 place.appendChild(panel);
 var here=createTiddlyElement(panel,click?"a":"span",null,"QOTD");
 }
 else
 var here=createTiddlyElement(place,click?"a":"span",null,"QOTD");
 here.id=(new Date()).convertToYYYYMMDDHHMMSSMMM()+Math.random().toString(); // unique ID
 // get items from tiddler or file list
 var list=store.getTiddlerText(tid,"");
 if (!list||!list.length) { // not a tiddler... maybe an image directory?
 var list=this.getImageFileList(tid);
 if (!list.length) { // maybe relative path... fixup and try again
 var h=document.location.href;
 var p=getLocalPath(decodeURIComponent(h.substr(0,h.lastIndexOf("/")+1)));
 var list=this.getImageFileList(p+tid);
 }
 }
 if (!list||!list.length) return false; // no contents... nothing to display!
 here.setAttribute("list",list);
 if (delay) here.setAttribute("delay",delay);
 here.setAttribute("random",random);
 here.setAttribute("cookie",cookie);
 if (click) {
 here.title=this.clickTooltip
 if (!inline) here.style.display="block";
 here.setAttribute("href","javascript:;");
 here.onclick=function(event)
 { config.macros.QOTD.showNextItem(this); }
 }
 if (config.options["txtQOTD_"+cookie]!=undefined) next=parseInt(config.options["txtQOTD_"+cookie]);
 here.setAttribute("nextItem",next);
 config.macros.QOTD.showNextItem(here);
 if (delay) {
 here.title=click?this.timerClickTooltip:this.timerTooltip
 here.onmouseover=function(event)
 { clearTimeout(this.ticker); };
 here.onmouseout=function(event)
 { this.ticker=setTimeout("config.macros.QOTD.tick('"+this.id+"')",this.getAttribute("delay")); };
 here.ticker=setTimeout("config.macros.QOTD.tick('"+here.id+"')",delay);
 }
 },
 tick: function(id) {
 var here=document.getElementById(id); if (!here) return;
 config.macros.QOTD.showNextItem(here);
 here.ticker=setTimeout("config.macros.QOTD.tick('"+id+"')",here.getAttribute("delay"));
 },
 showNextItem:
 function (here) {
 // hide containing slider panel (if any)
 var p=here.parentNode;
 if (p.className=="sliderPanel") p.style.display = "none"
 // get a new quote
 var index=here.getAttribute("nextItem");
 var items=here.getAttribute("list").split("\n--QOTD--\n");
 if (index<0||index>=items.length) index=0;
 if (here.getAttribute("random")=="true") index=Math.floor(Math.random()*items.length);
 var txt=items[index];
 // re-render quote display element, and advance index counter
 removeChildren(here); wikify(txt,here);
 index++; here.setAttribute("nextItem",index);
 var cookie=here.getAttribute("cookie");
 if (cookie.length) {
 config.options["txtQOTD_"+cookie]=index.toString();
 saveOptionCookie("txtQOTD_"+cookie);
 }
 // redisplay slider panel (if any)
 if (p.className=="sliderPanel") {
 if(anim && config.options.chkAnimate)
 anim.startAnimating(new Slider(p,true,false,"none"));
 else p.style.display="block";
 }
 },
 getImageFileList: function(cwd) { // returns HR-separated list of image files
 function isImage(fn) {
 var ext=fn.substr(fn.length-3,3).toLowerCase();
 return ext=="jpg"||ext=="gif"||ext=="png";
 }
 var files=[];
 if (config.browser.isIE) {
 cwd=cwd.replace(/\//g,"\\");
 // IE uses ActiveX to read filesystem info
 var fso = new ActiveXObject("Scripting.FileSystemObject");
 if(!fso.FolderExists(cwd)) return [];
 var dir=fso.GetFolder(cwd);
 for(var f=new Enumerator(dir.Files); !f.atEnd(); f.moveNext())
 if (isImage(f.item().path)) files.push("[img[%0]]".format(["file:///"+f.item().path.replace(/\\/g,"/")]));
 } else {
 // FireFox (mozilla) uses "components" to read filesystem info
 // get security access
 if(!window.Components) return;
 try { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); }
 catch(e) { alert(e.description?e.description:e.toString()); return []; }
 // open/validate directory
 var file=Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
 try { file.initWithPath(cwd); } catch(e) { return []; }
 if (!file.exists() || !file.isDirectory()) { return []; }
 var folder=file.directoryEntries;
 while (folder.hasMoreElements()) {
 var f=folder.getNext().QueryInterface(Components.interfaces.nsILocalFile);
 if (f instanceof Components.interfaces.nsILocalFile)
 if (isImage(f.path)) files.push("[img[%0]]".format(["file:///"+f.path.replace(/\\/g,"/")]));
 }
 }
 return files.join("\n----\n");
 }
}
//}}}
/% |Author|Eric Shulman|License|http://www.TiddlyTools.com/#LegalStatements|
!end
!show
<<tiddler {{
 var here=story.findContainingTiddler(place); if (here) {
  var nodes=here.getElementsByTagName("*");
  for (var i=0; i<nodes.length; i++) if (hasClass(nodes[i],"title"))
   { removeChildren(nodes[i]); wikify("$1",nodes[i]); break; }
 }
''; }}>>
!end
%/<<tiddler {{'.ReplaceTiddlerTitle##'+('$1'=='$'+'1'?'info':'show')}} with: [[$1]]>>
/* |Author|Eric Shulman|License|http://www.TiddlyTools.com/#LegalStatements|
*/
//{{{
version.extensions.SinglePageModePlugin= {major: 2, minor: 9, revision: 7, date: new Date(2010,11,30)};
//}}}
//{{{
config.paramifiers.SPM = { onstart: function(v) {
 config.options.chkSinglePageMode=eval(v);
 if (config.options.chkSinglePageMode && config.options.chkSinglePagePermalink && !config.browser.isSafari) {
 config.lastURL = window.location.hash;
 if (!config.SPMTimer) config.SPMTimer=window.setInterval(function() {checkLastURL(); },1000);
 }
} };
//}}}
//{{{
if (config.options.chkSinglePageMode==undefined)
 config.options.chkSinglePageMode=false;
if (config.options.chkSinglePagePermalink==undefined)
 config.options.chkSinglePagePermalink=true;
if (config.options.chkSinglePageKeepFoldedTiddlers==undefined)
 config.options.chkSinglePageKeepFoldedTiddlers=false;
if (config.options.chkSinglePageKeepEditedTiddlers==undefined)
 config.options.chkSinglePageKeepEditedTiddlers=false;
if (config.options.chkTopOfPageMode==undefined)
 config.options.chkTopOfPageMode=false;
if (config.options.chkBottomOfPageMode==undefined)
 config.options.chkBottomOfPageMode=false;
if (config.options.chkSinglePageAutoScroll==undefined)
 config.options.chkSinglePageAutoScroll=false;
//}}}
//{{{
config.SPMTimer = 0;
config.lastURL = window.location.hash;
function checkLastURL()
{
 if (!config.options.chkSinglePageMode)
 { window.clearInterval(config.SPMTimer); config.SPMTimer=0; return; }
 if (config.lastURL == window.location.hash) return; // no change in hash
 var tids=decodeURIComponent(window.location.hash.substr(1)).readBracketedList();
 if (tids.length==1) // permalink (single tiddler in URL)
 story.displayTiddler(null,tids[0]);
 else { // restore permaview or default view
 config.lastURL = window.location.hash;
 if (!tids.length) tids=store.getTiddlerText("DefaultTiddlers").readBracketedList();
 story.closeAllTiddlers();
 story.displayTiddlers(null,tids);
 }
}
if (Story.prototype.SPM_coreDisplayTiddler==undefined)
 Story.prototype.SPM_coreDisplayTiddler=Story.prototype.displayTiddler;
Story.prototype.displayTiddler = function(srcElement,tiddler,template,animate,slowly)
{
 var title=(tiddler instanceof Tiddler)?tiddler.title:tiddler;
 var tiddlerElem=story.getTiddler(title); // ==null unless tiddler is already displayed
 var opt=config.options;
 var single=opt.chkSinglePageMode && !startingUp;
 var top=opt.chkTopOfPageMode && !startingUp;
 var bottom=opt.chkBottomOfPageMode && !startingUp;
 if (single) {
 story.forEachTiddler(function(tid,elem) {
 // skip current tiddler and, optionally, tiddlers that are folded.
 if ( tid==title
 || (opt.chkSinglePageKeepFoldedTiddlers && elem.getAttribute("folded")=="true"))
 return;
 // if a tiddler is being edited, ask before closing
 if (elem.getAttribute("dirty")=="true") {
 if (opt.chkSinglePageKeepEditedTiddlers) return;
 // if tiddler to be displayed is already shown, then leave active tiddler editor as is
 // (occurs when switching between view and edit modes)
 if (tiddlerElem) return;
 // otherwise, ask for permission
 var msg="'"+tid+"' is currently being edited.\n\n";
 msg+="Press OK to save and close this tiddler\nor press Cancel to leave it opened";
 if (!confirm(msg)) return; else story.saveTiddler(tid);
 }
 story.closeTiddler(tid);
 });
 }
 else if (top)
 arguments[0]=null;
 else if (bottom)
 arguments[0]="bottom";
 if (single && opt.chkSinglePagePermalink && !config.browser.isSafari) {
 window.location.hash = encodeURIComponent(String.encodeTiddlyLink(title));
 config.lastURL = window.location.hash;
 document.title = wikifyPlain("SiteTitle") + " - " + title;
 if (!config.SPMTimer) config.SPMTimer=window.setInterval(function() {checkLastURL(); },1000);
 }
 if (tiddlerElem && tiddlerElem.getAttribute("dirty")=="true") { // editing... move tiddler without re-rendering
 var isTopTiddler=(tiddlerElem.previousSibling==null);
 if (!isTopTiddler && (single || top))
 tiddlerElem.parentNode.insertBefore(tiddlerElem,tiddlerElem.parentNode.firstChild);
 else if (bottom)
 tiddlerElem.parentNode.insertBefore(tiddlerElem,null);
 else this.SPM_coreDisplayTiddler.apply(this,arguments); // let CORE render tiddler
 } else
 this.SPM_coreDisplayTiddler.apply(this,arguments); // let CORE render tiddler
 var tiddlerElem=story.getTiddler(title);
 if (tiddlerElem&&opt.chkSinglePageAutoScroll) {
 // scroll to top of page or top of tiddler
 var isTopTiddler=(tiddlerElem.previousSibling==null);
 var yPos=isTopTiddler?0:ensureVisible(tiddlerElem);
 // if animating, defer scroll until after animation completes
 var delay=opt.chkAnimate?config.animDuration+10:0;
 setTimeout("window.scrollTo(0,"+yPos+")",delay);
 }
}
if (Story.prototype.SPM_coreDisplayTiddlers==undefined)
 Story.prototype.SPM_coreDisplayTiddlers=Story.prototype.displayTiddlers;
Story.prototype.displayTiddlers = function() {
 // suspend single/top/bottom modes when showing multiple tiddlers
 var opt=config.options;
 var saveSPM=opt.chkSinglePageMode; opt.chkSinglePageMode=false;
 var saveTPM=opt.chkTopOfPageMode; opt.chkTopOfPageMode=false;
 var saveBPM=opt.chkBottomOfPageMode; opt.chkBottomOfPageMode=false;
 this.SPM_coreDisplayTiddlers.apply(this,arguments);
 opt.chkBottomOfPageMode=saveBPM;
 opt.chkTopOfPageMode=saveTPM;
 opt.chkSinglePageMode=saveSPM;
}
//}}}
/* |Author|Eric Shulman|License|http://www.TiddlyTools.com/#LegalStatements| */
//{{{
version.extensions.WikifyPlugin= {major: 1, minor: 1, revision: 4, date: new Date(2009,3,29)};
config.macros.wikify={
 handler: function(place,macroName,params,wikifier,paramString,tiddler) {
  var fmt=params.shift();
  var values=[];
  var out="";
  if (!fmt.match(/\%[0-9]/g) && params.length) // format has no markers, just join all params with spaces
   out=fmt+" "+params.join(" ");
  else { // format param has markers, get values and perform substitution
   while (p=params.shift()) values.push(this.getFieldReference(place,p));
   out=fmt.format(values);
  }
  if (macroName=="wikiCalc") out=eval(out).toString();
  wikify(out.unescapeLineBreaks(),place,null,tiddler);
 },
 getFieldReference: function(place,p) { // "slicename::tiddlername" or "fieldname@tiddlername" or "fieldname"
  if (typeof p != "string") return p; // literal non-string value... just return it...
  var parts=p.split(config.textPrimitives.sliceSeparator);
  if (parts.length==2) {// maybe a slice reference?
   var tid=parts[0]; var slice=parts[1];
   if (!tid || !tid.length || tid=="here") { // no target (or "here"), use containing tiddler
 tid=story.findContainingTiddler(place);
 if (tid) tid=tid.getAttribute("tiddler")
 else tid="SiteSlices"; // fallback for 'non-tiddler' areas (e.g, header, sidebar, etc.)
   }
   var val=store.getTiddlerSlice(tid,slice); // get tiddler slice value
  }
  if (val==undefined) {// not a slice, or slice not found, maybe a field reference?
   var parts=p.split("@");
   var field=parts[0];
   if (!field || !field.length) field="checked"; // missing fieldname, fallback: checked@tiddlername
   var tid=parts[1];
   if (!tid || !tid.length || tid=="here") { // no target (or "here"), use containing tiddler
 tid=story.findContainingTiddler(place);
 if (tid) tid=tid.getAttribute("tiddler")
 else tid="SiteFields"; // fallback for 'non-tiddler' areas (e.g, header, sidebar, etc.)
   }
   var val=store.getValue(tid,field);
  }
  // not a slice or field, or slice/field not found... return value unchanged
  return val===undefined?p:val;
 }
}
//}}}
//{{{
// define alternative macroName for triggering pre-rendering call to eval()
config.macros.wikiCalc=config.macros.wikify;
//}}}
<!--{{{-->
<span class='yourSearchNumber' macro='foundTiddler number'></span>
<span class='yourSearchTitle' macro='foundTiddler title text 100'/></span> —
<span class='yourSearchTags' macro='foundTiddler field tags 0'/></span>
<!--}}}-->
/* |YourSearchPlugin v2.1.6 (2012-04-19)|http://tiddlywiki.abego-software.de/#YourSearchPlugin|https://github.com/abego/YourSearchPlugin|
|Author|UdoBorkowski (ub [at] abego-software [dot] de)|[[BSD open source license|http://www.abego-software.de/legal/apl-v10.html]]| */
///%
if(!version.extensions.YourSearchPlugin){version.extensions.YourSearchPlugin={major:2,minor:1,revision:6,source:"http://tiddlywiki.abego-software.de/#YourSearchPlugin",licence:"[[BSD open source license (abego Software)|http://www.abego-software.de/legal/apl-v10.html]]",copyright:"Copyright (c) abego Software GmbH, 2005-2012 (www.abego-software.de)" };if(!window.abego){window.abego={}}if(!Array.forEach){Array.forEach=function(c,e,d){for(var b=0,a=c.length;b<a;b++){e.call(d,c[b],b,c)}};Array.prototype.forEach=function(d,c){for(var b=0,a=this.length;b<a;b++){d.call(c,this[b],b,this)}}}abego.toInt=function(b,a){if(!b){return a}var c=parseInt(b);return(c==NaN)?a:c};abego.createEllipsis=function(a){var b=createTiddlyElement(a,"span");b.innerHTML="&hellip;" };abego.shallowCopy=function(b){if(!b){return b}var a={};for(var c in b){a[c]=b[c]}return a};abego.copyOptions=function(a){return !a?{}:abego.shallowCopy(a)};abego.countStrings=function(d,c){if(!c){return 0}var a=c.length;var f=0;var e=0;while(true){var b=d.indexOf(c,e);if(b<0){return f}f++;e=b+a}return f};abego.getBracedText=function(j,e,a){if(!e){e=0}var k=/\{([^\}]*)\}/gm;k.lastIndex=e;var d=k.exec(j);if(d){var l=d[1];var b=abego.countStrings(l,"{");if(!b){if(a){a.lastIndex=k.lastIndex}return l}var g=j.length;for(var f=k.lastIndex;f<g&&b;f++){var h=j.charAt(f);if(h=="{"){b++}else{if(h==" }"){b--}}}if(!b){if(a){a.lastIndex=f-1}return j.substring(d.index+1,f-1)}}};abego.select=function(d,c,b,a){if(!a){a=[]}d.forEach(function(e){if(c.call(b,e)){a.push(e)}});return a};abego.consumeEvent=function(a){if(a.stopPropagation){a.stopPropagation()}if(a.preventDefault){a.preventDefault()}a.cancelBubble=true;a.returnValue=true};abego.TiddlerFilterTerm=function(d,b){if(!b){b={}}var c=d;if(!b.textIsRegExp){c=d.escapeRegExp();if(b.fullWordMatch){c="\\b"+c+"\\b" }}var a=new RegExp(c,"m"+(b.caseSensitive?"":"i"));this.tester=new abego.MultiFieldRegExpTester(a,b.fields,b.withExtendedFields)};abego.TiddlerFilterTerm.prototype.test=function(a){return this.tester.test(a)};abego.parseNewTiddlerCommandLine=function(c){var a=/(.*?)\.(?:\s+|$)([^#]*)(#.*)?/.exec(c);if(!a){a=/([^#]*)()(#.*)?/.exec(c)}if(a){var d;if(a[3]){var b=a[3].replace(/#/g,"");d=b.parseParams("tag")}else{d=[[]]}var e=a[2]?a[2].trim():"";d.push({name:"text",value:e});d[0].text=[e];return{title:a[1].trim(),params:d}}else{return{title:c.trim(),params:[[]]}}};abego.parseTiddlerFilterTerm=function(queryText,offset,options){var re=/\s*(?:(?:\{([^\}]*)\})|(?:(=)|([#%!])|(?:(\w+)\s*\:(?!\/\/))|(?:(?:("(?:(?:\\")|[^"])+")|(?:\/((?:(?:\\\/)|[^\/])+)\/)|(\w+\:\/\/[^\s]+)|([^\s\)\-\"]+)))))/mg;var shortCuts={"!":"title","%":"text","#":"tags" };var fieldNames={};var fullWordMatch=false;re.lastIndex=offset;while(true){var i=re.lastIndex;var m=re.exec(queryText);if(!m||m.index!=i){throw"Word or String literal expected" }if(m[1]){var lastIndexRef={};var code=abego.getBracedText(queryText,0,lastIndexRef);if(!code){throw"Invalid {...} syntax" }var f=Function("tiddler","return ("+code+");");return{func:f,lastIndex:lastIndexRef.lastIndex,markRE:null}}if(m[2]){fullWordMatch=true}else{if(m[3]){fieldNames[shortCuts[m[3]]]=1}else{if(m[4]){fieldNames[m[4]]=1}else{var textIsRegExp=m[6];var text=m[5]?window.eval(m[5]):m[6]?m[6]:m[7]?m[7]:m[8];options=abego.copyOptions(options);options.fullWordMatch=fullWordMatch;options.textIsRegExp=textIsRegExp;var fields=[];for(var n in fieldNames){fields.push(n)}if(fields.length==0){options.fields=options.defaultFields}else{options.fields=fields;options.withExtendedFields=false}var term=new abego.TiddlerFilterTerm(text,options);var markREText=textIsRegExp?text:text.escapeRegExp();if(markREText&&fullWordMatch){markREText="\\b"+markREText+"\\b" }return{func:function(tiddler){return term.test(tiddler)},lastIndex:re.lastIndex,markRE:markREText?"(?:"+markREText+")":null}}}}}};abego.BoolExp=function(i,c,j){this.s=i;var h=j&&j.defaultOperationIs_OR;var e=/\s*\)/g;var f=/\s*(?:(and|\&\&)|(or|\|\|))/gi;var b=/\s*(\-|not)?(\s*\()?/gi;var a;var d=function(p){b.lastIndex=p;var l=b.exec(i);var o=false;var k=null;if(l&&l.index==p){p+=l[0].length;o=l[1];if(l[2]){var n=a(p);e.lastIndex=n.lastIndex;if(!e.exec(i)){throw"Missing ')'" }k={func:n.func,lastIndex:e.lastIndex,markRE:n.markRE}}}if(!k){k=c(i,p,j)}if(o){k.func=(function(m){return function(q){return !m(q)}})(k.func);k.markRE=null}return k};a=function(s){var n=d(s);while(true){var p=n.lastIndex;f.lastIndex=p;var k=f.exec(i);var o;var q;if(k&&k.index==p){o=!k[1];q=d(f.lastIndex)}else{try{q=d(p)}catch(r){return n}o=h}n.func=(function(t,m,l){return l?function(u){return t(u)||m(u)}:function(u){return t(u)&&m(u)}})(n.func,q.func,o);n.lastIndex=q.lastIndex;if(!n.markRE){n.markRE=q.markRE}else{if(q.markRE){n.markRE=n.markRE+"|"+q.markRE}}}};var g=a(0);this.evalFunc=g.func;if(g.markRE){this.markRegExp=new RegExp(g.markRE,j.caseSensitive?"mg":"img")}};abego.BoolExp.prototype.exec=function(){return this.evalFunc.apply(this,arguments)};abego.BoolExp.prototype.getMarkRegExp=function(){return this.markRegExp};abego.BoolExp.prototype.toString=function(){return this.s};abego.MultiFieldRegExpTester=function(b,a,c){this.re=b;this.fields=a?a:["title","text","tags"];this.withExtendedFields=c};abego.MultiFieldRegExpTester.prototype.test=function(b){var d=this.re;for(var a=0;a<this.fields.length;a++){var c=store.getValue(b,this.fields[a]);if(typeof c=="string"&&d.test(c)){return this.fields[a]}}if(this.withExtendedFields){return store.forEachField(b,function(e,g,f){return typeof f=="string"&&d.test(f)?g:null},true)}return null};abego.TiddlerQuery=function(b,a,d,c,e){if(d){this.regExp=new RegExp(b,a?"mg":"img");this.tester=new abego.MultiFieldRegExpTester(this.regExp,c,e)}else{this.expr=new abego.BoolExp(b,abego.parseTiddlerFilterTerm,{defaultFields:c,caseSensitive:a,withExtendedFields:e})}this.getQueryText=function(){return b};this.getUseRegExp=function(){return d};this.getCaseSensitive=function(){return a};this.getDefaultFields=function(){return c};this.getWithExtendedFields=function(){return e}};abego.TiddlerQuery.prototype.test=function(a){if(!a){return false}if(this.regExp){return this.tester.test(a)}return this.expr.exec(a)};abego.TiddlerQuery.prototype.filter=function(a){return abego.select(a,this.test,this)};abego.TiddlerQuery.prototype.getMarkRegExp=function(){if(this.regExp){return"".search(this.regExp)>=0?null:this.regExp}return this.expr.getMarkRegExp()};abego.TiddlerQuery.prototype.toString=function(){return(this.regExp?this.regExp:this.expr).toString()};abego.PageWiseRenderer=function(){this.firstIndexOnPage=0};merge(abego.PageWiseRenderer.prototype,{setItems:function(a){this.items=a;this.setFirstIndexOnPage(0)},getMaxPagesInNavigation:function(){return 10},getItemsCount:function(a){return this.items?this.items.length:0},getCurrentPageIndex:function(){return Math.floor(this.firstIndexOnPage/this.getItemsPerPage())},getLastPageIndex:function(){return Math.floor((this.getItemsCount()-1)/this.getItemsPerPage())},setFirstIndexOnPage:function(a){this.firstIndexOnPage=Math.min(Math.max(0,a),this.getItemsCount()-1)},getFirstIndexOnPage:function(){this.firstIndexOnPage=Math.floor(this.firstIndexOnPage/this.getItemsPerPage())*this.getItemsPerPage();return this.firstIndexOnPage},getLastIndexOnPage:function(){return Math.min(this.getFirstIndexOnPage()+this.getItemsPerPage()-1,this.getItemsCount()-1)},onPageChanged:function(a,b){},renderPage:function(a){if(a.beginRendering){a.beginRendering(this)}try{if(this.getItemsCount()){var d=this.getLastIndexOnPage();var c=-1;for(var b=this.getFirstIndexOnPage();b<=d;b++){c++;a.render(this,this.items[b],b,c)}}}finally{if(a.endRendering){a.endRendering(this)}}},addPageNavigation:function(c){if(!this.getItemsCount()){return}var k=this;var g=function(n){if(!n){n=window.event}abego.consumeEvent(n);var i=abego.toInt(this.getAttribute("page"),0);var m=k.getCurrentPageIndex();if(i==m){return}var l=i*k.getItemsPerPage();k.setFirstIndexOnPage(l);k.onPageChanged(i,m)};var e;var h=this.getCurrentPageIndex();var f=this.getLastPageIndex();if(h>0){e=createTiddlyButton(c,"Précédent","Page précédente (Raccourci: Alt-'<')",g,"prev");e.setAttribute("page",(h-1).toString());e.setAttribute("accessKey","<")}for(var d=-this.getMaxPagesInNavigation();d<this.getMaxPagesInNavigation();d++){var b=h+d;if(b<0){continue}if(b>f){break}var a=(d+h+1).toString();var j=b==h?"currentPage":"otherPage";e=createTiddlyButton(c,a,"Aller page %0".format([a]),g,j);e.setAttribute("page",(b).toString())}if(h<f){e=createTiddlyButton(c,"Suivant","Page suivante (Raccourci: Alt-'>')",g,"next");e.setAttribute("page",(h+1).toString());e.setAttribute("accessKey",">")}}});abego.LimitedTextRenderer=function(){var l=40;var c=4;var k=function(p,z,v){var q=p.length;if(q==0){p.push({start:z,end:v});return}var u=0;for(;u<q;u++){var w=p[u];if(w.start<=v&&z<=w.end){var o;var s=u+1;for(;s<q;s++){o=p[s];if(o.start>v||z>w.end){break}}var x=z;var y=v;for(var t=u;t<s;t++){o=p[t];x=Math.min(x,o.start);y=Math.max(y,o.end)}p.splice(u,s-u,{start:x,end:y});return}if(w.start>v){break}}p.splice(u,0,{start:z,end:v})};var d=function(n){var q=0;for(var p=0;p<n.length;p++){var o=n[p];q+=o.end-o.start}return q};var b=function(n){return(n>="a"&&n<="z")||(n>="A"&&n<="Z")||n=="_" };var f=function(p,r){if(!b(p[r])){return null}for(var o=r-1;o>=0&&b(p[o]);o--){}var q=o+1;var t=p.length;for(o=r+1;o<t&&b(p[o]);o++){}return{start:q,end:o}};var a=function(o,q,p){var n;if(p){n=f(o,q)}else{if(q<=0){return q}n=f(o,q-1)}if(!n){return q}if(p){if(n.start>=q-c){return n.start}if(n.end<=q+c){return n.end}}else{if(n.end<=q+c){return n.end}if(n.start>=q-c){return n.start}}return q};var j=function(r,q){var n=[];if(q){var u=0;do{q.lastIndex=u;var o=q.exec(r);if(o){if(u<o.index){var p=r.substring(u,o.index);n.push({text:p})}n.push({text:o[0],isMatch:true});u=o.index+o[0].length}else{n.push({text:r.substr(u)});break}}while(true)}else{n.push({text:r})}return n};var i=function(p){var n=0;for(var o=0;o<p.length;o++){if(p[o].isMatch){n++}}return n};var h=function(v,u,q,t,o){var w=Math.max(Math.floor(o/(t+1)),l);var n=Math.max(w-(q-u),0);var r=Math.min(Math.floor(q+n/3),v.length);var p=Math.max(r-w,0);p=a(v,p,true);r=a(v,r,false);return{start:p,end:r}};var m=function(r,y,o){var n=[];var v=i(r);var u=0;for(var p=0;p<r.length;p++){var x=r[p];var w=x.text;if(x.isMatch){var q=h(y,u,u+w.length,v,o);k(n,q.start,q.end)}u+=w.length}return n};var g=function(t,p,o){var n=o-d(p);while(n>0){if(p.length==0){k(p,0,a(t,o,false));return}else{var q=p[0];var v;var r;if(q.start==0){v=q.end;if(p.length>1){r=p[1].start}else{k(p,v,a(t,v+n,false));return}}else{v=0;r=q.start}var u=Math.min(r,v+n);k(p,v,u);n-=(u-v)}}};var e=function(p,x,w,n,o){if(n.length==0){return}var u=function(z,I,D,F,C){var H;var G;var E=0;var B=0;var A=0;for(;B<D.length;B++){H=D[B];G=H.text;if(F<E+G.length){A=F-E;break}E+=G.length}var y=C-F;for(;B<D.length&&y>0;B++){H=D[B];G=H.text.substr(A);A=0;if(G.length>y){G=G.substr(0,y)}if(H.isMatch){createTiddlyElement(z,"span",null,"marked",G)}else{createTiddlyText(z,G)}y-=G.length}if(C<I.length){abego.createEllipsis(z)}};if(n[0].start>0){abego.createEllipsis(p)}var q=o;for(var r=0;r<n.length&&q>0;r++){var t=n[r];var v=Math.min(t.end-t.start,q);u(p,x,w,t.start,t.start+v);q-=v}};this.render=function(p,q,o,t){if(q.length<o){o=q.length}var r=j(q,t);var n=m(r,q,o);g(q,n,o);e(p,q,r,n,o)}};(function(){function alertAndThrow(msg){alert(msg);throw msg}if(version.major<2||(version.major==2&&version.minor<1)){alertAndThrow("YourSearchPlugin requires TiddlyWiki 2.1 or newer.\n\nCheck the archive for YourSearch plugins\nsupporting older versions of TiddlyWiki.\n\nArchive: http://tiddlywiki.abego-software.de/archive")}abego.YourSearch={};var lastResults=undefined;var lastQuery=undefined;var setLastResults=function(array){lastResults=array};var getLastResults=function(){return lastResults?lastResults:[]};var getLastResultsCount=function(){return lastResults?lastResults.length:0};var matchInTitleWeight=4;var precisionInTitleWeight=10;var matchInTagsWeight=2;var getMatchCount=function(s,re){var m=s.match(re);return m?m.length:0};var standardRankFunction=function(tiddler,query){var markRE=query.getMarkRegExp();if(!markRE){return 1}var matchesInTitle=tiddler.title.match(markRE);var nMatchesInTitle=matchesInTitle?matchesInTitle.length:0;var nMatchesInTags=getMatchCount(tiddler.getTags(),markRE);var lengthOfMatchesInTitle=matchesInTitle?matchesInTitle.join("").length:0;var precisionInTitle=tiddler.title.length>0?lengthOfMatchesInTitle/tiddler.title.length:0;var rank=nMatchesInTitle*matchInTitleWeight+nMatchesInTags*matchInTagsWeight+precisionInTitle*precisionInTitleWeight+1;return rank};var findMatches=function(store,searchText,caseSensitive,useRegExp,sortField,excludeTag){lastQuery=null;var candidates=store.reverseLookup("tags",excludeTag,false);try{var defaultFields=[];if(config.options.chkSearchInTitle){defaultFields.push("title")}if(config.options.chkSearchInText){defaultFields.push("text")}if(config.options.chkSearchInTags){defaultFields.push("tags")}lastQuery=new abego.TiddlerQuery(searchText,caseSensitive,useRegExp,defaultFields,config.options.chkSearchExtendedFields)}catch(e){return[]}var results=lastQuery.filter(candidates);var rankFunction=abego.YourSearch.getRankFunction();for(var i=0;i<results.length;i++){var tiddler=results[i];var rank=rankFunction(tiddler,lastQuery);tiddler.searchRank=rank}if(!sortField){sortField="title" }var sortFunction=function(a,b){var searchRankDiff=a.searchRank-b.searchRank;if(searchRankDiff==0){if(a[sortField]==b[sortField]){return(0)}else{return(a[sortField]<b[sortField])?-1:+1}}else{return(searchRankDiff>0)?-1:+1}};results.sort(sortFunction);return results};var maxCharsInTitle=80;var maxCharsInTags=50;var maxCharsInText=250;var maxCharsInField=50;var itemsPerPageDefault=25;var itemsPerPageWithPreviewDefault=10;var yourSearchResultID="yourSearchResult";var yourSearchResultItemsID="yourSearchResultItems";var lastSearchText=null;var resultElement=null;var searchInputField=null;var searchButton=null;var lastNewTiddlerButton=null;var initStylesheet=function(){if(version.extensions.YourSearchPlugin.styleSheetInited){return}version.extensions.YourSearchPlugin.styleSheetInited=true;setStylesheet(store.getTiddlerText("YourSearchStyleSheet"),"yourSearch")};var isResultOpen=function(){return resultElement!=null&&resultElement.parentNode==document.body};var closeResult=function(){if(isResultOpen()){document.body.removeChild(resultElement)}};var closeResultAndDisplayTiddler=function(e){closeResult();var title=this.getAttribute("tiddlyLink");if(title){var withHilite=this.getAttribute("withHilite");var oldHighlightHack=highlightHack;if(withHilite&&withHilite=="true"&&lastQuery){highlightHack=lastQuery.getMarkRegExp()}story.displayTiddler(this,title);highlightHack=oldHighlightHack}return(false)};var adjustResultPositionAndSize=function(){if(!searchInputField){return}var root=searchInputField;var rootLeft=findPosX(root);var rootTop=findPosY(root);var rootHeight=root.offsetHeight;var popupLeft=rootLeft;var popupTop=rootTop+rootHeight;var winWidth=findWindowWidth();if(winWidth<resultElement.offsetWidth){resultElement.style.width=(winWidth-100)+"px";winWidth=findWindowWidth()}var popupWidth=resultElement.offsetWidth;if(popupLeft+popupWidth>winWidth){popupLeft=winWidth-popupWidth-30}if(popupLeft<0){popupLeft=0}resultElement.style.left=popupLeft+"px";resultElement.style.top=popupTop+"px";resultElement.style.display="block" };var scrollVisible=function(){if(resultElement){window.scrollTo(0,ensureVisible(resultElement))}if(searchInputField){window.scrollTo(0,ensureVisible(searchInputField))}};var ensureResultIsDisplayedNicely=function(){adjustResultPositionAndSize();scrollVisible()};var indexInPage=undefined;var currentTiddler=undefined;var pager=new abego.PageWiseRenderer();var MyItemRenderer=function(parent){this.itemHtml=store.getTiddlerText(".YourSearchItemTemplate");if(!this.itemHtml){alertAndThrow(".YourSearchItemTemplate not found")}this.place=document.getElementById(yourSearchResultItemsID);if(!this.place){this.place=createTiddlyElement(parent,"div",yourSearchResultItemsID)}};merge(MyItemRenderer.prototype,{render:function(pager,object,index,indexOnPage){indexInPage=indexOnPage;currentTiddler=object;var item=createTiddlyElement(this.place,"div",null,"yourSearchItem");item.innerHTML=this.itemHtml;applyHtmlMacros(item,null);refreshElements(item,null)},endRendering:function(pager){currentTiddler=null}});var refreshResult=function(){if(!resultElement||!searchInputField){return}var html=store.getTiddlerText("YourSearchResultTemplate");if(!html){html="<b>Tiddler YourSearchResultTemplate not found</b>" }resultElement.innerHTML=html;applyHtmlMacros(resultElement,null);refreshElements(resultElement,null);var itemRenderer=new MyItemRenderer(resultElement);pager.renderPage(itemRenderer);ensureResultIsDisplayedNicely()};pager.getItemsPerPage=function(){var n=(config.options.chkPreviewText)?abego.toInt(config.options.txtItemsPerPageWithPreview,itemsPerPageWithPreviewDefault):abego.toInt(config.options.txtItemsPerPage,itemsPerPageDefault);return(n>0)?n:1};pager.onPageChanged=function(){refreshResult()};var reopenResultIfApplicable=function(){if(searchInputField==null||!config.options.chkUseYourSearch){return}if((searchInputField.value==lastSearchText)&&lastSearchText&&!isResultOpen()){if(resultElement&&(resultElement.parentNode!=document.body)){document.body.appendChild(resultElement);ensureResultIsDisplayedNicely()}else{abego.YourSearch.onShowResult(true)}}};var invalidateResult=function(){closeResult();resultElement=null;lastSearchText=null};var isDescendantOrSelf=function(self,e){while(e!=null){if(self==e){return true}e=e.parentNode}return false};var onDocumentClick=function(e){if(e.target==searchInputField){return}if(e.target==searchButton){return}if(resultElement&&isDescendantOrSelf(resultElement,e.target)){return}closeResult()};var onDocumentKeyup=function(e){if(e.keyCode==27){closeResult()}};addEvent(document,"click",onDocumentClick);addEvent(document,"keyup",onDocumentKeyup);var myStorySearch=function(text,useCaseSensitive,useRegExp){lastSearchText=text;setLastResults(findMatches(store,text,useCaseSensitive,useRegExp,"title","excludeSearch"));abego.YourSearch.onShowResult()};var myMacroSearchHandler=function(place,macroName,params,wikifier,paramString,tiddler){initStylesheet();lastSearchText="";var searchTimeout=null;var doSearch=function(txt){if(config.options.chkUseYourSearch){myStorySearch(txt.value,config.options.chkCaseSensitiveSearch,config.options.chkRegExpSearch)}else{story.search(txt.value,config.options.chkCaseSensitiveSearch,config.options.chkRegExpSearch)}lastSearchText=txt.value};var clickHandler=function(e){doSearch(searchInputField);return false};var keyHandler=function(e){if(!e){e=window.event}searchInputField=this;switch(e.keyCode){case 13:if(e.ctrlKey&&lastNewTiddlerButton&&isResultOpen()){lastNewTiddlerButton.onclick.apply(lastNewTiddlerButton,[e])}else{doSearch(this)}break;case 27:if(isResultOpen()){closeResult()}else{this.value="";clearMessage()}break}if(String.fromCharCode(e.keyCode)==this.accessKey||e.altKey){reopenResultIfApplicable()}if(this.value.length<3&&searchTimeout){clearTimeout(searchTimeout)}if(this.value.length>2){if(this.value!=lastSearchText){if(!config.options.chkUseYourSearch||config.options.chkSearchAsYouType){if(searchTimeout){clearTimeout(searchTimeout)}var txt=this;searchTimeout=setTimeout(function(){doSearch(txt)},500)}}else{if(searchTimeout){clearTimeout(searchTimeout)}}}if(this.value.length==0){closeResult()}};var focusHandler=function(e){this.select();clearMessage();reopenResultIfApplicable()};var args=paramString.parseParams("list",null,true);var buttonAtRight=getFlag(args,"buttonAtRight");var sizeTextbox=getParam(args,"sizeTextbox",this.sizeTextbox);var txt=createTiddlyElement(null,"input",null,"txtOptionInput searchField",null);if(params[0]){txt.value=params[0]}txt.onkeyup=keyHandler;txt.onfocus=focusHandler;txt.setAttribute("size",sizeTextbox);txt.setAttribute("accessKey",this.accessKey);txt.setAttribute("autocomplete","off");if(config.browser.isSafari){txt.setAttribute("type","search");txt.setAttribute("results","5")}else{if(!config.browser.isIE){txt.setAttribute("type","text")}}var btn=createTiddlyButton(null,this.label,this.prompt,clickHandler);if(place){if(!buttonAtRight){place.appendChild(btn)}place.appendChild(txt);if(buttonAtRight){place.appendChild(btn)}}searchInputField=txt;searchButton=btn};var openAllFoundTiddlers=function(){closeResult();var results=getLastResults();var n=results.length;if(n){var titles=[];for(var i=0;i<n;i++){titles.push(results[i].title)}story.displayTiddlers(null,titles)}};var createOptionWithRefresh=function(place,optionParams,wikifier,tiddler){invokeMacro(place,"option",optionParams,wikifier,tiddler);var elem=place.lastChild;var oldOnClick=elem.onclick;elem.onclick=function(e){var result=oldOnClick.apply(this,arguments);refreshResult();return result};return elem};var removeTextDecoration=function(s){var removeThis=["''","{{{"," }}}","//","<<<","/***","***/"];var reText="";for(var i=0;i<removeThis.length;i++){if(i!=0){reText+="|" }reText+="("+removeThis[i].escapeRegExp()+")" }return s.replace(new RegExp(reText,"mg"),"").trim()};var getShortCutNumber=function(){var i=indexInPage;return(i>=0&&i<=9)?(i<9?(i+1):0):-1};var limitedTextRenderer=new abego.LimitedTextRenderer();var renderLimitedText=function(place,s,maxLen){limitedTextRenderer.render(place,s,maxLen,lastQuery.getMarkRegExp())};var oldTiddlyWikiSaveTiddler=TiddlyWiki.prototype.saveTiddler;TiddlyWiki.prototype.saveTiddler=function(title,newTitle,newBody,modifier,modified,tags,fields){oldTiddlyWikiSaveTiddler.apply(this,arguments);invalidateResult()};var oldTiddlyWikiRemoveTiddler=TiddlyWiki.prototype.removeTiddler;TiddlyWiki.prototype.removeTiddler=function(title){oldTiddlyWikiRemoveTiddler.apply(this,arguments);invalidateResult()};config.macros.yourSearch={label:"yourSearch",prompt:"Gives access to the current/last YourSearch result",handler:function(place,macroName,params,wikifier,paramString,tiddler){if(params.length==0){return}var name=params[0];var func=config.macros.yourSearch.funcs[name];if(func){func(place,macroName,params,wikifier,paramString,tiddler)}},tests:{"true":function(){return true},"false":function(){return false},found:function(){return getLastResultsCount()>0},previewText:function(){return config.options.chkPreviewText}},funcs:{itemRange:function(place){if(getLastResultsCount()){var lastIndex=pager.getLastIndexOnPage();var s="%0 - %1".format([pager.getFirstIndexOnPage()+1,lastIndex+1]);createTiddlyText(place,s)}},count:function(place){createTiddlyText(place,getLastResultsCount().toString())},query:function(place){if(lastQuery){createTiddlyText(place,lastQuery.toString())}},version:function(place){var t="YourSearch %0.%1.%2".format([version.extensions.YourSearchPlugin.major,version.extensions.YourSearchPlugin.minor,version.extensions.YourSearchPlugin.revision]);var e=createTiddlyElement(place,"a");e.setAttribute("href","http://tiddlywiki.abego-software.de/#YourSearchPlugin");e.innerHTML='<font color="black" weight="bold" face="Arial, Helvetica, sans-serif">'+t+"<font>" },copyright:function(place){var e=createTiddlyElement(place,"a");e.setAttribute("href","http://www.abego-software.de");e.innerHTML='<font color="black" face="Arial, Helvetica, sans-serif">&copy; 2005-2019 <b><font color="blue">abego</font></b> Software<font>'},newTiddlerButton:function(place){if(lastQuery){var r=abego.parseNewTiddlerCommandLine(lastQuery.getQueryText());var btn=config.macros.newTiddler.createNewTiddlerButton(place,r.title,r.params,"","",null,"text");var oldOnClick=btn.onclick;btn.onclick=function(){closeResult();oldOnClick.apply(this,arguments)};lastNewTiddlerButton=btn}},linkButton:function(place,macroName,params,wikifier,paramString,tiddler){if(params<2){return}var tiddlyLink=params[1];var text=params<3?tiddlyLink:params[2];var tooltip=params<4?text:params[3];var accessKey=params<5?null:params[4];var btn=createTiddlyButton(place,text,tooltip,closeResultAndDisplayTiddler,null,null,accessKey);btn.setAttribute("tiddlyLink",tiddlyLink)},closeButton:function(place,macroName,params,wikifier,paramString,tiddler){createTiddlyButton(place,"Fermer","Fermer la zone de recherche (touche \'ESC\')",closeResult)},openAllButton:function(place,macroName,params,wikifier,paramString,tiddler){var n=getLastResultsCount();if(n==0){return}var title=n==1?"open tiddler":"Ouvrir les %0 articles".format([n]);var button=createTiddlyButton(place,title,"Ouvrir tous les articles (Raccourci : Alt-O)",openAllFoundTiddlers);button.setAttribute("accessKey","O")},naviBar:function(place,macroName,params,wikifier,paramString,tiddler){pager.addPageNavigation(place)},"if":function(place,macroName,params,wikifier,paramString,tiddler){if(params.length<2){return}var testName=params[1];var negate=(testName=="not");if(negate){if(params.length<3){return}testName=params[2]}var test=config.macros.yourSearch.tests[testName];var showIt=false;try{if(test){showIt=test(place,macroName,params,wikifier,paramString,tiddler)!=negate}else{showIt=(!eval(testName))==negate}}catch(ex){}if(!showIt){place.style.display="none" }},chkPreviewText:function(place,macroName,params,wikifier,paramString,tiddler){var elem=createOptionWithRefresh(place,"chkPreviewText",wikifier,tiddler);elem.setAttribute("accessKey","P");elem.title="Prévisualisation des articles (Raccourci : Alt-P)";return elem}}};config.macros.foundTiddler={label:"foundTiddler",prompt:"Provides information on the tiddler currently processed on the YourSearch result page",handler:function(place,macroName,params,wikifier,paramString,tiddler){var name=params[0];var func=config.macros.foundTiddler.funcs[name];if(func){func(place,macroName,params,wikifier,paramString,tiddler)}},funcs:{title:function(place,macroName,params,wikifier,paramString,tiddler){if(!currentTiddler){return}var shortcutNumber=getShortCutNumber();var tooltip=shortcutNumber>=0?"Ouvrir l\'article (Raccourci : Alt-%0)".format([shortcutNumber.toString()]):"Open tiddler";var btn=createTiddlyButton(place,null,tooltip,closeResultAndDisplayTiddler,null);btn.setAttribute("tiddlyLink",currentTiddler.title);btn.setAttribute("withHilite","true");renderLimitedText(btn,currentTiddler.title,maxCharsInTitle);if(shortcutNumber>=0){btn.setAttribute("accessKey",shortcutNumber.toString())}},tags:function(place,macroName,params,wikifier,paramString,tiddler){if(!currentTiddler){return}renderLimitedText(place,currentTiddler.getTags(),maxCharsInTags)},text:function(place,macroName,params,wikifier,paramString,tiddler){if(!currentTiddler){return}renderLimitedText(place,removeTextDecoration(currentTiddler.text),maxCharsInText)},field:function(place,macroName,params,wikifier,paramString,tiddler){if(!currentTiddler){return}var name=params[1];var len=params.length>2?abego.toInt(params[2],maxCharsInField):maxCharsInField;var v=store.getValue(currentTiddler,name);if(v){renderLimitedText(place,removeTextDecoration(v),len)}},number:function(place,macroName,params,wikifier,paramString,tiddler){var numberToDisplay=getShortCutNumber();if(numberToDisplay>=0){var text="%0)".format([numberToDisplay.toString()]);createTiddlyElement(place,"span",null,"shortcutNumber",text)}}}};var opts={chkUseYourSearch:true,chkPreviewText:true,chkSearchAsYouType:true,chkSearchInTitle:true,chkSearchInText:true,chkSearchInTags:true,chkSearchExtendedFields:true,txtItemsPerPage:itemsPerPageDefault,txtItemsPerPageWithPreview:itemsPerPageWithPreviewDefault};for(var n in opts){if(config.options[n]==undefined){config.options[n]=opts[n]}}config.shadowTiddlers.AdvancedOptions+="\n<<option chkUseYourSearch>> Use 'Your Search' ";config.shadowTiddlers.YourSearchStyleSheet="/***\n!~YourSearchResult Stylesheet\n***/\n/*{{{*/\n.yourSearchResult {\n\tposition: absolute;\n\twidth: 800px;\n\n\tpadding: 0.2em;\n\tlist-style: none;\n\tmargin: 0;\n\n\tbackground: #f0f8ff;\n\tborder: 1px solid DarkGray;\n}\n\n/*}}}*/\n/***\n!!Summary Section\n***/\n/*{{{*/\n.yourSearchResult .summary {\n\tborder-bottom-width: thin;\n\tborder-bottom-style: solid;\n\tborder-bottom-color: #999999;\n\tpadding-bottom: 4px;\n}\n\n.yourSearchRange, .yourSearchCount, .yourSearchQuery   {\n\tfont-weight: bold;\n}\n\n.yourSearchResult .summary .button {\n\tfont-size: 10px;\n\n\tpadding-left: 0.3em;\n\tpadding-right: 0.3em;\n}\n\n.yourSearchResult .summary .chkBoxLabel {\n\tfont-size: 10px;\n\n\tpadding-right: 0.3em;\n}\n\n/*}}}*/\n/***\n!!Items Area\n***/\n/*{{{*/\n.yourSearchResult .marked {\n\tbackground: none;\n\tfont-weight: bold;\n}\n\n.yourSearchItem {\n\tmargin-top: 2px;\n}\n\n.yourSearchNumber {\n\tcolor: #0000FF;\n}\n\n\n.yourSearchTags {\n\tcolor: #3333ff;\n}\n\n.yourSearchText {\n\tcolor: #000080;\n\tmargin-bottom: 6px;\n}\n\n/*}}}*/\n/***\n!!Footer\n***/\n/*{{{*/\n.yourSearchFooter {\n\tmargin-top: 8px;\n\tborder-top-width: thin;\n\tborder-top-style: solid;\n\tborder-top-color: #999999;\n}\n\n.yourSearchFooter a:hover{\n\tbackground: none;\n\tcolor: none;\n}\n/*}}}*/\n/***\n!!Navigation Bar\n***/\n/*{{{*/\n.yourSearchNaviBar a {\n\tfont-size: 16px;\n\tmargin-left: 4px;\n\tmargin-right: 4px;\n\tcolor: black;\n\ttext-decoration: underline;\n}\n\n.yourSearchNaviBar a:hover {\n\tbackground-color: none;\n}\n\n.yourSearchNaviBar .prev {\n\tfont-weight: bold;\n\tcolor: blue;\n}\n\n.yourSearchNaviBar .currentPage {\n\tcolor: #0000FF;\n\ttext-decoration: none;\n}\n\n.yourSearchNaviBar .next {\n\tfont-weight: bold;\n\tcolor: blue;\n}\n/*}}}*/\n";config.shadowTiddlers.YourSearchResultTemplate='<!--\n{{{\n-->\n<span macro="yourSearch if found">\n<!-- The Summary Header ============================================ -->\n<table class="summary" border="0" width="100%" cellspacing="0" cellpadding="0"><tbody>\n  <tr>\n\t<td align="left">\n\t\tRésultat <span class="yourSearchRange" macro="yourSearch itemRange"></span>\n\t\t&nbsp;sur&nbsp;<span class="yourSearchCount" macro="yourSearch count"></span>\n\t\tpour&nbsp;<span class="yourSearchQuery" macro="yourSearch query"></span>\n\t</td>\n\t<td class="yourSearchButtons" align="right">\n\t\t<span macro="yourSearch newTiddlerButton"></span>\n\t\t<span macro="yourSearch openAllButton"></span>\n\t\t<span macro="yourSearch closeButton"></span>\n\t</td>\n  </tr>\n</tbody></table>\n\n<!-- The List of Found Tiddlers ============================================ -->\n<div id="yourSearchResultItems" itemsPerPage="25" itemsPerPageWithPreview="10"></div>\n\n<!-- The Footer (with the Navigation) ============================================ -->\n<table class="yourSearchFooter" border="0" width="100%" cellspacing="0" cellpadding="0"><tbody>\n  <tr>\n\t<td align="left">\n\t\tNombre de pages : <span class="yourSearchNaviBar" macro="yourSearch naviBar"></span>\n\t</td>\n\t<td align="right"><span macro="yourSearch version"></span>, <span macro="yourSearch copyright"></span>\n\t</td>\n  </tr>\n</tbody></table>\n<!-- end of the \'tiddlers found\' case =========================================== -->\n</span>\n\n\n<!-- The "No tiddlers found" case =========================================== -->\n<span macro="yourSearch if not found">\n<table class="summary" border="0" width="100%" cellspacing="0" cellpadding="0"><tbody>\n  <tr>\n\t<td align="left">\n\t\tRecherche infructueuse: aucun article trouvé pour <span class="yourSearchQuery" macro="yourSearch query"></span>.\n\t</td>\n\t<td class="yourSearchButtons" align="right">\n\t\t<span macro="yourSearch closeButton"></span>\n\t</td>\n  </tr>\n</tbody></table>\n</span>\n\n\n<!--\n}}}\n-->\n';config.shadowTiddlers.YourSearchItemTemplate="<!--\n{{{\n-->\n<span class='yourSearchNumber' macro='foundTiddler number'></span>\n<span class='yourSearchTitle' macro='foundTiddler title'/></span>&nbsp;-&nbsp;\n<span class='yourSearchTags' macro='foundTiddler field tags 50'/></span>\n<span macro=\"yourSearch if previewText\"><div class='yourSearchText' macro='foundTiddler field text 250'/></div></span>\n<!--\n}}}\n-->";config.shadowTiddlers.YourSearch="<<tiddler [[YourSearch Help]]>>";config.shadowTiddlers["YourSearch Result"]="The popup-like window displaying the result of a YourSearch query.";config.macros.search.handler=myMacroSearchHandler;var checkForOtherHijacker=function(){if(config.macros.search.handler!=myMacroSearchHandler){alert("Message from YourSearchPlugin:\n\n\nAnother plugin has disabled the 'Your Search' features.\n\n\nYou may disable the other plugin or change the load order of \nthe plugins (by changing the names of the tiddlers)\nto enable the 'Your Search' features.")}};setTimeout(checkForOtherHijacker,5000);abego.YourSearch.getStandardRankFunction=function(){return standardRankFunction};abego.YourSearch.getRankFunction=function(){return abego.YourSearch.getStandardRankFunction()};abego.YourSearch.getCurrentTiddler=function(){return currentTiddler};abego.YourSearch.closeResult=function(){closeResult()};abego.YourSearch.getFoundTiddlers=function(){return lastResults};abego.YourSearch.getQuery=function(){return lastQuery};abego.YourSearch.onShowResult=function(useOldResult){highlightHack=lastQuery?lastQuery.getMarkRegExp():null;if(!useOldResult){pager.setItems(getLastResults())}if(!resultElement){resultElement=createTiddlyElement(document.body,"div",yourSearchResultID,"yourSearchResult")}else{if(resultElement.parentNode!=document.body){document.body.appendChild(resultElement)}}refreshResult();highlightHack=null}})()};
//%/
/*** |TableSortingPlugin|Saq Imtiaz (lewcid)|v2.02_20080125|
|[[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]| ***/
// /%
//!BEGIN-PLUGIN-CODE
config.tableSorting = {
darrow: "\u2193",
uarrow: "\u2191",
getText : function (o) {
  var p = o.cells[SORT_INDEX];
  return p.innerText || p.textContent || '';
 },
sortTable : function (o,rev) {
  SORT_INDEX = o.getAttribute("index");
  var c = config.tableSorting;
  var T = findRelated(o.parentNode,"TABLE");
  if(T.tBodies[0].rows.length<=1) 
   return;
  var itm = "";
  var i = 0;
  while (itm == "" && i < T.tBodies[0].rows.length) {
   itm = c.getText(T.tBodies[0].rows[i]).trim();
   i++;
  }
  if (itm == "") 
   return;  
  var r = [];
  var S = o.getElementsByTagName("span")[0];  
  c.fn = c.sortAlpha; 
  if(!isNaN(Date.parse(itm)))
   c.fn = c.sortDate; 
  else if(itm.match(/^[$|£|€|\+|\-]{0,1}\d*\.{0,1}\d+$/)) 
   c.fn = c.sortNumber; 
  else if(itm.match(/^\d*\.{0,1}\d+[K|M|G]{0,1}b$/)) 
   c.fn = c.sortFile; 
  for(i=0; i<T.tBodies[0].rows.length; i++) {
 r[i]=T.tBodies[0].rows[i]; 
  } 
  r.sort(c.reSort);
  if(S.firstChild.nodeValue==c.darrow || rev) {
   r.reverse();
   S.firstChild.nodeValue=c.uarrow;
  } 
  else 
   S.firstChild.nodeValue=c.darrow;
  var thead = T.getElementsByTagName('thead')[0]; 
  var headers = thead.rows[thead.rows.length-1].cells;
  for(var k=0; k<headers.length; k++) {
   if(!hasClass(headers[k],"nosort"))
 addClass(headers[k].getElementsByTagName("span")[0],"hidden");
  }
  removeClass(S,"hidden");
  for(i=0; i<r.length; i++) { 
   T.tBodies[0].appendChild(r[i]);
   c.stripe(r[i],i);
   for(var j=0; j<r[i].cells.length;j++){
 removeClass(r[i].cells[j],"sortedCol");
   }
   addClass(r[i].cells[SORT_INDEX],"sortedCol");
  }
 },
stripe : function (e,i){
  var cl = ["oddRow","evenRow"];
  i&1? cl.reverse() : cl;
  removeClass(e,cl[1]);
  addClass(e,cl[0]);
 },
sortNumber : function(v) {
  var x = parseFloat(this.getText(v).replace(/[^0-9.-]/g,''));
  return isNaN(x)? 0: x;
 },
sortDate : function(v) {
  return Date.parse(this.getText(v));
 },
 sortAlpha : function(v) {
  return this.getText(v).toLowerCase();
 },
sortFile : function(v) {   
  var j, q = config.messages.sizeTemplates, s = this.getText(v);
  for (var i=0; i<q.length; i++) {
   if ((j = s.toLowerCase().indexOf(q[i].template.replace("%0\u00a0","").toLowerCase())) != -1)
 return q[i].unit * s.substr(0,j);
  }
  return parseFloat(s);
 },
reSort : function(a,b){
  var c = config.tableSorting;
  var aa = c.fn(a);
  var bb = c.fn(b);
  return ((aa==bb)? 0 : ((aa<bb)? -1:1));
 }
};
Story.prototype.tSort_refreshTiddler = Story.prototype.refreshTiddler;
Story.prototype.refreshTiddler = function(title,template,force,customFields,defaultText){
 var elem = this.tSort_refreshTiddler.apply(this,arguments);
 if(elem){
  var tables = elem.getElementsByTagName("TABLE");
  var c = config.tableSorting;
  for(var i=0; i<tables.length; i++){
   if(hasClass(tables[i],"sortable")){
 var x = null, rev, table = tables[i], thead = table.getElementsByTagName('thead')[0], headers = thead.rows[thead.rows.length-1].cells;
 for (var j=0; j<headers.length; j++){
  var h = headers[j];
  if (hasClass(h,"nosort"))
   continue;
  h.setAttribute("index",j);
  h.onclick = function(){c.sortTable(this); return false; };
  h.ondblclick = stopEvent;
  if(h.getElementsByTagName("span").length == 0)
   createTiddlyElement(h,"span",null,"hidden",c.uarrow); 
  if(!x && hasClass(h,"autosort")) {
   x = j;
   rev = hasClass(h,"reverse");
  }
 }
 if(x)
  c.sortTable(headers[x],rev);  
   }
  }
 }
 return elem; 
};
setStylesheet("table.sortable span.hidden {visibility:hidden; }\n"+
 "table.sortable thead {cursor:pointer; }\n"+
 "table.sortable .nosort {cursor:default; }\n"+
 "table.sortable td.sortedCol {background:#ffc; }","TableSortingPluginStyles");
function stopEvent(e){  var ev = e? e : window.event;  ev.cancelBubble = true;  if (ev.stopPropagation) ev.stopPropagation();  return false; } 
config.macros.nosort={ handler : function(place){ addClass(place,"nosort"); } };
config.macros.autosort={ handler : function(place,m,p,w,pS){ addClass(place,"autosort"+" "+pS); } };
//!END-PLUGIN-CODE
// %/
[[Accueil]]
{{floatL{
|ssTablN0|k
| @@color:#000091;<html><i class="fa fa-home" aria-hidden="true"></i></html>@@ |bgcolor:#E1000F;!|__[[Accueil]]__|
| @@color:#000091;<html><i class="fa fa-calendar-alt" aria-hidden="true"></i></html>@@ |~|__[[Evénements]]__|
| @@color:#000091;<html><i class="fa fa-graduation-cap" aria-hidden="true"></i></html>@@ |~|__[[Formations|Prochaines Formations]]__ |
| @@color:#000091;<html><i class="fa fa-graduation-cap" aria-hidden="true"></i></html>@@ |~|↪__[[TRANSITS-I|Prochaine Formation TRANSITS]]__ |
| @@color:#000091;<html><i class="fa fa-graduation-cap" aria-hidden="true"></i></html>@@ |~|↪__[[SIM3|Prochaine Formation SIM3]]__|
| @@color:#000091;<html><i class="fa fa-skull-crossbones" aria-hidden="true"></i></html>@@ |~|__[[APT/Attaquants|Groupes Attaquants]]__|
| @@color:#000091;<html><i class="fa fa-triangle-exclamation" aria-hidden="true"></i></html>@@ |~|__[[Vulnérabilités]]__|
| @@color:#000091;<html><i class="fa fa-address-book" aria-hidden="true"></i></html>@@ |~|__[[Liste CSIRTs|Liste de CSIRTs]]__|
| @@color:#000091;<html><i class="fa fa-handshake" aria-hidden="true"></i></html>@@ |~|↪__[[Associations|Associations de CSIRTs]]__|
| @@color:#000091;<html><i class="fa fa-podcast" aria-hidden="true"></i></html>@@ |~|__[[Podcasts]]__|
| @@color:#000091;<html><i class="fa fa-m" aria-hidden="true"></i></html>@@ |~|__[[MITRE|Référentiels MITRE]]__^^ATT&CK^^|
| @@color:#000091;<html><i class="fa fa-binoculars" aria-hidden="true"></i></html>@@ |~|[[Veille]]|
| @@color:#000091;<html><i class="fa fa-pencil" aria-hidden="true"></i></html>@@ |~|[[Contact]]|
@@bgcolor:#DDDDDD;color:#000091;▬▬▬@@@@bgcolor:#DDDDDD;color:#FFFFFF;▬▬▬@@@@bgcolor:#DDDDDD;color:#E1000F;▬▬▬@@
<<tiddler HeadlinesRoll>>@@bgcolor:#DDDDDD;color:#000091;▬▬▬@@@@bgcolor:#DDDDDD;color:#FFFFFF;▬▬▬@@@@bgcolor:#DDDDDD;color:#E1000F;▬▬▬@@
}}}
informations sur les //Computer Security Incident Response Team//
CSIRT.FR
[[0C4LCSS]]
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='viewer' macro='tiddler ReplaceDoubleClick'></div>
<div class='tagClear'></div>
<!--}}}-->
//{{{
config.options.txtUserName='CSIRT-FR';
config.options.chkAnimate=false;
config.options.chkRegExpSearch=false;
config.options.chkCaseSensitiveSearch=false;
config.options.chkOpenInNewWindow=true;
config.messages.tiddlerLinkTooltip="→ %0";
config.messages.externalLinkTooltip="→ %0";
config.options.chkHideSiteTitles=true;
config.macros.search.prompt="Recherche sur ce site";
config.macros.search.successMsg="%1 → %0 article(s)";
config.macros.search.failureMsg="%0 → Aucun article";
config.macros.search.label="Recherche";
merge(config.views.wikified,{ dateFormat: "0DD.0MM.YYYY",});
merge(config.macros.search,{ label: "", prompt: "Moteur de recherche local",});
config.options.chkUseYourSearch=true;
config.options.chkPreviewText=false;
config.options.chkSearchAsYouType=false;
config.options.chkSearchInTitle=true;
config.options.chkSearchInText=true;
config.options.chkSearchInTags=true;
config.options.chkSearchExtendedFields=false;
config.options.txtItemsPerPage=20;
config.options.txtItemsPerPageWithPreview=20;
config.options.chkShowLeftSidebar=true;
config.options.chkDisableWikiLinks=true;
config.options.chkAllowLinksFromShadowTiddlers=true;
config.options.chkDisableNonExistingWikiLinks=true;
config.options.chkSinglePageAutoScroll=true;
config.options.chkSinglePagePermalink=false;
config.options.chkSinglePageMode=false;
config.options.chkTopOfPageMode=true;
config.options.chkBottomOfPageMode=true;
config.options.chkShowBreadcrumbs=true;
config.options.txtBreadcrumbsLimit=8;
config.options.chkReorderBreadcrumbs=true;
config.options.txtBreadcrumbsCrumbSeparator="  <html><i class='fa fa-shoe-prints' aria-hidden='true'></i><i class='fa fa-shoe-prints' aria-hidden='true'></i></html>  ";
config.options.chkBreadcrumbsSave=false;
config.options.chkShowStartupBreadcrumbs=false;
config.options.chkBreadcrumbsReverse=false;
config.options.chkBreadcrumbsLimitOpenTiddlers=true;
config.options.txtBreadcrumbsLimitOpenTiddlers=20;
config.options.chkBreadcrumbsHideHomeLink=false;
config.options.chkCreateDefaultBreadcrumbs=true;
config.options.chkFramedLinks=false;
config.options.chkFramedLinksTag=true;
config.options.txtFramedLinksTag='_EmbedFrame';
config.options.txtFrameWidth='98%';
config.options.txtFrameHeight='33%';
readOnly=true;
config.options.chkHttpReadOnly=true;
config.options.chkBackstage=false;
showBackstage=false;
	merge(config.shadowTiddlers,{ ToolbarCommands: '|~ViewToolbar|closeTiddler closeOthers|\n|~EditToolbar|+saveTiddler -cancelTiddler deleteTiddler|',});
merge(config.commands.closeTiddler,{ text: "[fermer]", tooltip: "Fermer cet article" });
merge(config.commands.closeOthers,{ text: "[isoler]", tooltip: "Fermer les autres articles" });
config.views.wikified.dateFormat="0DD.0MM.YYYY";
config.commands.closeTiddler.text="fermer";
config.commands.closeTiddler.tooltip="fermer cet article";
config.commands.closeOthers.text="isoler";
config.commands.closeOthers.tooltip="fermer tous les autres articles";
config.messages.messageClose.text="fermer";
config.messages.messageClose.tooltip="fermer la zone de messages";
config.macros.search.label="";
config.macros.search.prompt="Rechercher sur le site";
config.macros.search.successMsg="%0 articles trouvés contenant %1";
config.macros.search.failureMsg="Aucun article ne contient %0";
config.messages.dates.months = ["Janvier", "Fevrier", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre","Decembre"];
config.messages.dates.days = ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"];
config.messages.dates.shortMonths = ["Jan", "Fev", "Mar", "Avr", "Mai", "Jun", "Jul", "Aou", "Sep", "Oct", "Nov", "Dec"];
config.messages.dates.shortDays = ["Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sa"];
config.messages.dates.daySuffixes = ["er","nd","eme","eme","eme","eme","eme","eme","eme","eme",
 "eme","eme","eme","eme","eme","eme","eme","eme","eme","eme",
 "eme","eme","eme","eme","eme","eme","eme","eme","eme","eme"];
//}}}
/*{{{*/
BluFlag: #000091
WhiFlag: #FFFFFF
RedFlag: #E1000F
.HeaderMenu .searchField {width:40em;text-align:center; }
/* compact form */
.smallform { white-space:nowrap; }
.smallform input, .smallform textarea, .smallform button, .smallform checkbox, .smallform radio, .smallform select { font-size:8pt; }
/* Alignement */
.floatL { display:block;text-align:left; }
.floatR { display:block;text-align:right; }
.floatC { display:block;text-align:center; }
.ssTabl99 {width:99%}
.ssTabl96 {width:96%}
.ssTabl2,
/* **0CA** .ssTabl2 td, */
/* **0CA** .ssTabl2 th, */
.ssTabl2 tbody
{ table-layout:fixed; width:98%; }
.ssTabl98N0,
.ssTabl98N0 table,
/* **0CA** .ssTabl98N0 td, */
/* **0CA** .ssTabl98N0 tr, */
/* **0CA** .ssTabl98N0 th, */
.ssTabl98N0 tbody
{ border:0 !important; width:98%; table-layout:fixed; }
.ssTabl98,
.ssTabl98 table,
/* **0CA** .ssTabl98 td, */
/* **0CA** .ssTabl98 tr, */
/* **0CA** .ssTabl98 th, */
.ssTabl98 tbody
{ border:1 !important; width:98%; table-layout:fixed; }
.ssCol30 {width:30%; float:left; margin-left:1%; margin-right:1%; border-color:#014; border-style:solid; border-width:3px; }
.ssCol45 {width:45%; float:left; margin-left:1%; }
/* multi-column tiddler content (not supported in Internet Explorer) */
.ss2col { display:block; -moz-column-count:2; -moz-column-gap:1em; -moz-column-width:50%; /* FireFox */ -webkit-column-count:2; -webkit-column-gap:1em; -webkit-column-width:50%; /* Safari */ column-count:2; column-gap:1em; column-width:50%; /* Opera */ }
.ss3col { display:block; -moz-column-count:3; -moz-column-gap:1em; -moz-column-width:33%; /* FireFox */ -webkit-column-count:3; -webkit-column-gap:1em; -webkit-column-width:33%; /* Safari */ column-count:3; column-gap:1em; column-width:33%; /* Opera */ }
.ss4col { display:block; -moz-column-count:4; -moz-column-gap:1em; -moz-column-width:24%; /* FireFox */ -webkit-column-count:4; -webkit-column-gap:1em; -webkit-column-width:24%; /* Safari */ column-count:4; column-gap:1em; column-width:24%; /* Opera */ }
.ss5col { display:block; -moz-column-count:5; -moz-column-gap:1em; -moz-column-width:16%; /* FireFox */ -webkit-column-count:5; -webkit-column-gap:1em; -webkit-column-width:16%; /* Safari */ column-count:5; column-gap:1em; column-width:16%; /* Opera */ }
.clear {clear:both; }
/* ssTablN0 : table without tr/th/td borders */
/* **0CA** .ssTablN0, .ssTablN0 table, .ssTablN0 tr, .ssTablN0 th, .ssTablN0 td, .ssTablN0 tbody { border:0 !important; } */
/* ssTablN0 : table without tr/td borders borders, but with th borders */
/* **0CA** .ssTablN0L, .ssTablN0L tr, .ssTablN0L td, .ssTablN0L tbody { border:0 !important; } */
/* {font-size:.70em; } */
body {font-size:.87em;font-family:Verdana,times,serif; margin:0; padding:0; }
pre, .tagged, .tagging, #messageArea, .popup, .tiddlyLink, .button { border-radius: 5px; }
.tiddlyLink { padding: 0px 2px; margin: 0 -2px; }
img[align="left"] { margin-right: .5em; }
img[align="right"] { margin-left: .5em; }
.toolbar {text-align:left; font-size:.7em; }img"
img {border:1px solid [[ColorPalette::Background]]; }
.headerShadow {position:relative; padding:0em 0em 0em 0; left:-1px; top:-1px; }
.headerForeground {position:absolute; padding:0em 0em 0em 0em; left:40em; top:0px; }
.headerShadow .right { position: absolute; top: 0; }
.headerShadow .right { right: 0; }
.headerForeground .right { display: none; }
/* InlineTabs */
.tabSelected {font-weight:bold; font-size:125%; color:[[0C4LCSS::BluFlag]]; background:[[ColorPalette::TertiaryPale]]; border-left:2px solid [[ColorPalette::PrimaryMid]]; border-top:2px solid [[ColorPalette::PrimaryLight]]; border-right:2px solid [[ColorPalette::PrimaryMid]]; border-bottom-style:2px solid [[ColorPalette::PrimaryMid]]; }
.tabContents {color:[[0C4LCSS::BluFlag]]; background:[[ColorPalette::Background]]; border:2px solid [[ColorPalette::PrimaryMid]]; }
/* StyleSheetRotate90 */
.ssRot90 { float:left; width:0.6em; font-size:100%; font-family:Verdana,times,serif; line-height:60%; color:#014 !important; background:inherit !important; transform: rotate(90deg); }
/* StyleSheetLetters */
.firstletter { width:0.6em; font-size:250%; font-family:Verdana,times,serif; line-height:60%; color:#014 !important; background:inherit !important; }
/* .firstletterC { float:center; width:0.6em; font-size:250%; line-height:60%; color:#014 !important; background:inherit !important; } */
.FirstLetter { width:0.6em; font-size:150%; font-family:Verdana,times,serif; line-height:60%; !important; background:inherit !important; }
.Blue250 { float:left; width:0.6em; font-size:250%; font-family:Verdana,times,serif; line-height:60%; color:#014 !important; background:inherit !important; }
/* StyleSheetTableList */
.viewer ul {margin-top:0; margin-bottom:0; }
.viewer {text-align:justify; }
.viewer th {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::PrimaryMid]]; }
/* NestedSlidersPlugin */
.floatingPanel { z-index:700; padding:1em; margin:0em; border:1px solid; -moz-border-radius:1em; font-size:8pt; text-align:left; }
.floatingPanel hr { margin:2px 0 1px 0; padding:0; }
#sidebarOptions .sliderPanel { margin:0; padding:0; font-size:1em; background:transparent; }
#sidebarOptions .sliderPanel a { font-weight:normal; }
#sidebarOptions .sliderPanel blockquote { margin:0;padding:0;margin-left:1em; border-left:1px dotted; padding-left:1em }
.selected .floatingPanel .button,
.selected .floatingPanel a:link,
.selected .floatingPanel a:hover,
.selected .floatingPanel a:visited,
.floatingPanel .button,
.floatingPanel a:link,
.floatingPanel a:hover,
.floatingPanel a:visited { color:[[0C4LCSS::BluFlag]] !important; }
.QOTD { color:#014 !important; background:inherit !important; }
.horizTag li.listTitle { display:none }
.horizTag li { display:inline; font-size:90%; }
.horizTag ul { display:inline; margin:0px; padding:0px; }
.viewer td { vertical-align:top; }
/* **0CA** .viewer th { vertical-align:top; } */
/* **0CA** .viewer dl { margin:0; } */
.size75 { font-size:75%; }
.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]]; }
.annotation {padding:0.5em; margin:0.5em; }
/*}}}*/
@@color:#000091;<html><i class="fa fa-exclamation" aria-hidden="true"></i> [[CSIRT ou CERT]] • @@color:#000091;<html><i class="fa fa-book" aria-hidden="true"></i> [[Référentiels CSIRT/PSIRT|CSIRT et PSIRT Frameworks]] • @@color:#000091;<html><i class="fa fa-bullseye" aria-hidden="true"></i> [[Maturité SIM3|SIM3]] • @@color:#000091;<html><i class="fa fa-traffic-light" aria-hidden="true"></i></html>@@ [[Traffic Light Protocol|TLP]] • @@color:#000091;<html><i class="fa fa-graduation-cap" aria-hidden="true"></i></html>@@ [[Formations TRANSITS et SIM3]] • • ⇒ <<search "Moteur de recherche">> ⇐ •
@@bgcolor:#DDDDDD;color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@@@bgcolor:#DDDDDD;color:#FFFFFF;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@@@bgcolor:#DDDDDD;color:#E1000F;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
@@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
© 1901.12.13@20:45:52 ←→ 2038.01.19@03:14:07
@@color:#404040;//No it never propagates if I set a gap or prevention//@@
@@color:#E1000F;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
/% ←→ %/
<<QOTD Headlines 2000 noclick norandom>>
{{floatC{[img(240px,auto)[i/T-CSIRTFR.png][https://csirt.fr]]
@@bgcolor:#DDDDDD;color:#000091;▬▬▬▬▬▬▬@@@@bgcolor:#DDDDDD;color:#FFFFFF;▬▬▬▬▬▬▬@@@@bgcolor:#DDDDDD;color:#E1000F;▬▬▬▬▬▬▬@@
Gestionnaire du site : Olivier Caleff
Courriel : __''contact''__ à __''csirt''__ point __''fr''__
version du site: @@font-size:75%;<<version>>[[ |.]]@@
@@bgcolor:#DDDDDD;color:#000091;▬▬▬▬▬▬▬@@@@bgcolor:#DDDDDD;color:#FFFFFF;▬▬▬▬▬▬▬@@@@bgcolor:#DDDDDD;color:#E1000F;▬▬▬▬▬▬▬@@
+++*[Concernant la protection des données sur ce site] 
|ssTabl98|k
|!Sur les aspects protection des données, RGPD et similaires, et pour les éléments suivants | !la réponse est simple |
| • Identité et coordonnées du responsable de traitement •
• Identité et coordonnées du délégué à la protection des données •
• Catégories de données collectées •
• Finalités du traitement •
• Base juridique du traitement •
• Destinataires des données •
• Transferts de données en dehors de l'UE •
• Conservation des données •
• Exercice des droits •
• Soumission d'une réclamation auprès de l'autorité de contrôle •
• Cookies • | ''c'est sans objet''
car ...
• aucune donnée n'est collectée sur le site •
• aucun cookie n'est utilisé •
^^(à part pour des aspects de présentation)^^
• aucun traitement de données n'est réalisé •
[img(50%,1px)[i/BluePixel.gif]]
Pour toute demande de précision, utilisez l'adresse
__rgpd__ à __csirt__ point __fr__
[img(50%,1px)[i/BluePixel.gif]] | === /% <html> <i class="fa fa-home" aria-hidden="true"></i> • <i class="fa fa-people-roof" aria-hidden="true"></i> • <i class="fa fa-people-arrows" aria-hidden="true"></i> • <i class="fa fa-people-group" aria-hidden="true"></i> • <i class="fa fa-people-line" aria-hidden="true"></i> • <i class="fa fa-people-pulling" aria-hidden="true"></i> • <i class="fa fa-0" aria-hidden="true"></i> • <i class="fa fa-1" aria-hidden="true"></i> • <i class="fa fa-2" aria-hidden="true"></i> • <i class="fa fa-3" aria-hidden="true"></i> • <i class="fa fa-4" aria-hidden="true"></i> • <i class="fa fa-5" aria-hidden="true"></i> • <i class="fa fa-6" aria-hidden="true"></i> • <i class="fa fa-7" aria-hidden="true"></i> • <i class="fa fa-8" aria-hidden="true"></i> • <i class="fa fa-9" aria-hidden="true"></i> • <i class="fa fa-graduation-cap" aria-hidden="true"></i> </html> %/ }}}
[img(140px,auto)[i/Logo_CSIRT-FR.jpg]]
--QOTD--
@@color:#000091;<html><i class="fa fa-graduation-cap" aria-hidden="true"></i></html>@@ ^^''Formation TRANSITS-I''
__7 au 9 novembre 2023__
► [[Détails/Inscription|T1FRNB]]^^
--QOTD--
@@color:#000091;<html><i class="fa fa-graduation-cap" aria-hidden="true"></i></html>@@ ^^''Formation TRANSITS-I''
__7 au 9 novembre 2023__
► [[Détails/Inscription|T1FRNB]]^^
--QOTD--
@@color:#000091;<html><i class="fa fa-users" aria-hidden="true"></i></html>@@ ^^''Formation Autoévaluation SIM3''
__13 décembre 2023__
► [[Détails/Inscription|S3FRNC]]^^
--QOTD--
@@color:#000091;<html><i class="fa fa-users" aria-hidden="true"></i></html>@@ ^^''Formation Autoévaluation SIM3''
__13 décembre 2023__
► [[Détails/Inscription|S3FRNC]]^^
--QOTD--
[img(140px,auto)[iCSIRT/OCSC_2024.jpg]] ^^''Conférence OCSC'24''
__26 fév / 1 mars 2024__
► [[Détails/Inscription|https://www.ocsc.info/]]
--QOTD--
[img(140px,auto)[i/T-CSIRTFR.png][https://csirt.fr]]
<<tiddler [[Prochaines Formations]]>>
<html><i class="fa fa-lock" aria-hidden="true"></i></html> Uniquement sur la partie privée du site
Plusieurs podcasts <html><i class="fa fa-podcast" aria-hidden="true"></i></html> ''NoLimitSecu'' +++^*[»] https://www.nolimitsecu.fr/ === traitent des sujets liés aux CSIRTs/PSIRTs.
|!Dates |!Numéros |!Titres |!Participants |!Sites |!Podcasts (MP3) |!|
|>|>|>|>|>| | [img(150px,auto)[iCSIRT/NolimitSecu.png]] |
|08.05.2023 | 410 |!Le FIRST |Olivier Caleff +++[»] https://fr.linkedin.com/in/caleff === |[[first|https://www.nolimitsecu.fr/first/]] |[[mp3|https://www.nolimitsecu.fr/wp-content/uploads/NoLimitSecu-410-FIRST.mp3]] |~|
|27.02.2023 | 401 |!SIM3, la maturité des CSIRTs/CERTs |Olivier Caleff +++[»] https://fr.linkedin.com/in/caleff ===, Marc-Frédéric Gomez +++[»] https://fr.linkedin.com/in/marcfredericgomez === |[[sim3|https://www.nolimitsecu.fr/sim3/]] |[[mp3|https://www.nolimitsecu.fr/wp-content/uploads/NoLimitSecu-401-SIM3.mp3]] |~|
|~|~|>|>|>|+++[Webographie] • OpenCSIRT Foundation (OCF) : [[le site|https://opencsirt.org/]] 
• SIM3 : le [[référentiel|https://opencsirt.org/csirt-maturity/sim3-and-references/]] ([[version 1|https://opencsirt.org/wp-content/uploads/2019/12/SIM3-mkXVIIIc.pdf]])
• SIM3 : outils d'auto-évaluation [[de l'OCF|https://sim3-check.opencsirt.org/]], de l'ENISA ([[version 1|https://www.enisa.europa.eu/topics/incident-response/csirt-capabilities/csirt-maturity/csirt-survey]] et [[version 2| https://www.enisa.europa.eu/topics/incident-response/csirt-capabilities/csirt-maturity/sim3-v2i]]) pour les CSIRTs nationaux === |~| |10.07.2022 | 375 |!Cyber Résilience |Olivier Caleff +++[»] https://fr.linkedin.com/in/caleff ===, Benoit Dupont +++[»] https://www.linkedin.com/in/benoit-dupont-9369702/ === |[[cyber-resilience|https://www.nolimitsecu.fr/cyber-resilience/]] |[[mp3|https://www.nolimitsecu.fr/wp-content/uploads/NoLimitSecu-375-cyber-resilience.mp3]] |~| |~|~|>|>|>|+++[Webographie] • ResearchGate : [[Cyber Resilience – Fundamentals for a Definition| https://www.researchgate.net/publication/283102782_Cyber_Resilience_-_Fundamentals_for_a_Definition]]
• SEI CMU [[CERT–RMM : CERT Resilience Management Model|https://www.sei.cmu.edu/search.cfm?q=Resilience+Management+Model]]
• US-CERT [[CRR : Cyber Resilience Review|https://www.us-cert.gov/ccubedvp/assessments]]
• MITRE : CREF (Cyber Resiliency Engineering Framework) [[Design Principles|https://www.mitre.org/publications/technical-papers/cyber-resiliency-design-principles]]
• MITRE : CREF (Cyber Resiliency Engineering Framework) [[Engineering Framework|https://www.mitre.org/publications/technical-papers/cyber-resiliency-engineering-framework]]
• NIST : [[Resilience|https://www.nist.gov/resilience]] et [[Security Engineering|https://csrc.nist.gov/Topics/Security-and-Privacy/systems-security-engineering/trustworthiness/resilience]]
• Global Risk Institute : [[The Cyber-Resilience of Financial Institutions: A preliminary working paper on significance and applicability of digital resilience|https://globalriskinstitute.org/publications/the-cyber-resilience-of-financial-institutions-a-preliminary-working-paper-on-significance-and-applicability-of-digital-resilience/]]
• Global Risk Institute : [[Withstanding Cyber-Attacks: Cyber-Resilience Practices in the Financial Sector|https://globalriskinstitute.org/publications/the-cyber-resilience-of-financial-institutions-a-preliminary-working-paper-on-significance-and-applicability-of-digital-resilience/]] === |~| |03.07.2022 | 374 |!Les ISACs |Olivier Caleff +++[»] https://fr.linkedin.com/in/caleff === |[[les-isacs|https://www.nolimitsecu.fr/les-isacs/]] |[[mp3|https://www.nolimitsecu.fr/wp-content/uploads/NoLimitSecu-374-Les-ISACs.mp3]] |~| |~|~|>|>|>|+++[Webographie] • Texte fondateur [[Presidential Decision Directive 63: Protecting America's Critical Infrastructures (Fact Sheet)|https://www.hsdl.org/?abstract&did=3544]]
• Groupement des ISACs : [[National Council of ISACs|https://www.nationalisacs.org/]] et la [[liste des membres|https://www.nationalisacs.org/member-isacs-3]] du Groupement des ISACs
• ENISA : Annonce [[ISAC in a BOX Toolkit|https://www.enisa.europa.eu/news/enisa-news/isac-in-a-box]], la [[boite à outils|https://www.enisa.europa.eu/topics/national-cyber-security-strategies/information-sharing/isacs-toolkit/view]] === |~| |21.11.2021 | 343 |!MITRE ATT&CK |Alexandre Dulaunoy +++[»] https://www.linkedin.com/in/adulau/ === |[[mitre-attck|https://www.nolimitsecu.fr/mitre-attck/]] |[[mp3|https://www.nolimitsecu.fr/wp-content/uploads/NoLimitSecu-343-MITRE-ATTACK.mp3]] |~|
<html><i class="fa fa-lock" aria-hidden="true"></i></html> Uniquement sur la partie privée du site /%
!@@color:#000091;<html><i class="fa fa-laptop-medical fa-2x" aria-hidden="true"></i></html> • @@Sites à consulter
Pour être informé au plus vite lors de la publicaton de correctifs de sécurité :
* Mise à jour de sécurité
** [[Bleeping Computer|https://www.bleepingcomputer.com/tag/security-update/]]
* Microsoft : Patch Tuesday
** [[SANS Diary|https://isc.sans.edu/diaryarchive.html]]
** [[Morphus Labs Patch Tuesday Board|https://patchtuesdaydashboard.com/]]
** [[Cyber Security Watch Patch Watch|https://cybersecurityworks.com/patchwatch/]]
** [[Bleeping Computer Patch Tuesday|https://www.bleepingcomputer.com/tag/patch-tuesday/]]
* Adobe
** [[Bleeping Computer|https://www.bleepingcomputer.com/tag/adobe/]]
%/
<html><i class="fa fa-lock" aria-hidden="true"></i></html> Uniquement sur la partie privée du site
<html><i class="fa fa-lock" aria-hidden="true"></i></html> Uniquement sur la partie privée du site
<html><i class="fa fa-lock" aria-hidden="true"></i></html> Uniquement sur la partie privée du site
<html><i class="fa fa-lock" aria-hidden="true"></i></html> Uniquement sur la partie privée du site
<html><i class="fa fa-lock" aria-hidden="true"></i></html> Uniquement sur la partie privée du site
<html><i class="fa fa-lock" aria-hidden="true"></i></html> Uniquement sur la partie privée du site
<html><i class="fa fa-lock" aria-hidden="true"></i></html> Uniquement sur la partie privée du site
<html><i class="fa fa-lock" aria-hidden="true"></i></html> Uniquement sur la partie privée du site
<html><i class="fa fa-lock" aria-hidden="true"></i></html> Uniquement sur la partie privée du site
|ssTabl2|k
|>| Pour mettre fin au débat sur la différence entre un ''CSIRT'' et un ''CERT'', la question vite tranchée : ce sont des termes ''similaires''. |
|!CERT (une marque) |!CSIRT (le terme générique) |
|<<tiddler CERT-Definition>> |<<tiddler CSIRT-Definition>> |
|>| !CERT ou CSIRT ? Une analogie |
|>| Un ''réfrigérateur''+++^*[»] https://fr.wikipedia.org/wiki/Réfrigérateur === est un terme ''générique''... comme l'est le terme ''CSIRT''
Un ''Frigidaire''+++^*[»] https://fr.wikipedia.org/wiki/Frigidaire === est un mot du langage courant, mais avant tout une marque... comme l'est le terme ''CERT''
Un ''frigo'' est un mot du langage courant, mais avant tout le diminutif d'une marque... comme l'est le terme ''CERT'' ^^
Le nom //Frigidaire// aussi familièrement appelé //frigo//, est devenu par antonomase+++^*[»] https://fr.wikipedia.org/wiki/Antonomase ===, un synonyme de //réfrigérateur//, comme pour des produits dont le nom commercial devient le nom générique^^ | |>| !__''Réfrigérateur''__ ou ''//Frigo//'' ?

Pour nous le choix est clair : __''réfrigérateur''__ et pas --frigo--, donc __''CSIRT''__ et pas --CERT-- !
  | /% |>| Poser la question à ceux qui se vantent de "//leur CERT reconnu et certifié par les américains//" :
"//votre CERT est-il aussi un CSIRT ?//" | %/
''CERT'' est le sigle de ''Computer Emergency Response Team'' et est __''une marque déposée''__ par l'Université de Carnegie Mellon (Pittsburgh, Pennsylvanie, Etats-Unis).
C'est là que le premier CERT a été créé, le CERT/CC, à l'initiative de la DARPA.
Jusqu'en 2021, il était nécessaire de faire une demande à son service juridique pour avoir le droit de l'utiliser dans le nom de son équipe de réponse à incidents.
* ''En aucun cas'' la délivrance du droit d'utiliser le sigle CERT n'était une qualification, une validation, ou une certification de l'équipe, ou une reconnaissance de son expertise ou de son sérieux.
Même si certaines personnes ont pu dire le contraire, ce n'est pas vrai. * L'accord n'était validé que par le ''service juridique''. __Depuis avril 2021__, le terme CERT est libre de droit ''en dehors des Etats-Unis''. @@bgcolor:#DDDDDD;color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@ __Documents de référence__ * ^^__SEI CMU :__ Utilisation du sigle 'CERT'®
→ [[Authorized Users of the CERT Mark|https://www.sei.cmu.edu/our-work/cybersecurity-center-development/authorized-users/]]^^ @@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
''CSIRT'' est le sigle de ''Computer Security Incident Response Team''
''Il a été créé par Don Stikvoort en 1998 pour disposer d'un __terme générique__ et éviter de devoir utiliser la marque CERT''.
La première utilisation du terme CSIRT se trouve dans le document "''Handbook for Computer Security Incident Response Teams (CSIRTs)''" co-rédigé par Moira J. West-Brown, Don Stikvoort, et Klaus-Peter Kossakowski.
@@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
Le terme ''PSIRT'' (''//Product Security Incident Response Team//'') désigne une entité qui se concentre sur l'identification, l'évaluation et l'élimination des risques associés aux failles de sécurité des produits, y compris les offres, les
solutions, les composants et/ou les services produits et/ou vendus par une organisation.
@@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
__Documents de référence__
* ^^__SEI CMU :__ ''Handbook for Computer Security Incident Response Teams (CSIRTs)''
→ version [[initiale de décembre 1998|https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=e878d38d04dd1717aaf9dd1e596ca9857756ad30]] /% https://apps.dtic.mil/sti/pdfs/ADA358945.pdf %/et [[mise à jour d'avril 2003|https://resources.sei.cmu.edu/library/asset-view.cfm?assetid=6305]]^^ @@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
|!Référentiel CSIRT |!|!Référentiel PSIRT |
|<<tiddler [[CSIRT Framework]]>> |~|<<tiddler [[PSIRT Framework]]>> |
<<tiddler .ReplaceTiddlerTitle with: [[Référentiel CSIRT et PSIRT]]>>
Le référentiel du FIRST pour les CSIRTs s'appelle le [[CSIRT Framework]]. Il a été défini par le groupe de travail (//SIG//) 'CSIRT Framework'. +++[»]> https://www.first.org/global/sigs/csirt/ === 
@@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
La dernière version à ce jour est la v2.1. Elle est disponible :
* en anglais aux formats [[HTML|https://www.first.org/standards/frameworks/psirts/psirt_services_framework_v1.1]] et [[PDF|https://www.first.org/standards/frameworks/psirts/FIRST_PSIRT_Services_Framework_v1.1.pdf]]
* en français : format [[PDF|https://www.first.org/standards/frameworks/psirts/FIRST_PSIRT_Services_Framework_v1.1_fr.pdf]]
@@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
Le référentiel du FIRST pour les PSIRTs s'appelle le [[PSIRT Framework]]. Il a été défini par le groupe de travail (//SIG//) 'PSIRT Framework'. +++[»]> https://www.first.org/global/sigs/psirt/ === 
@@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
La dernière version à ce jour est la v1.1. Elle est disponible :
* en anglais aux formats [[HTML|https://www.first.org/standards/frameworks/csirts/csirt_services_framework_v2.1]] et [[PDF|https://www.first.org/standards/frameworks/csirts/FIRST_CSIRT_Services_Framework_v2.1.0_bugfix1.pdf]]
* en français : format [[PDF|https://www.first.org/standards/frameworks/csirts/FIRST_CSIRT_Services_Framework_v2.1.0_fr.pdf]]
@@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
Cet article est en cours de construction. Il a pour vocation à servir de référence pour les différents CSIRTs et associations ou groupes de CSIRTs en France et dans le monde.
https://csirt.fr/go/CSIRTs
Pour le moment, il ne contient des informations que pour 2 pays : la [[France|CSIRTs en France]] et [[Monaco|CSIRTs à Monaco]].
<<tabs CSIRTs 'France' 'FR' [[CSIRTs en France]] 'Monaco' 'MC' [[CSIRTs à Monaco]]>>
!Liste (non exhaustive) des CSIRTs basés en France
|[<img[iCC/fr.png]][>img[iCC/fr.png]]Sources agrégées: [[InterCERT France|https://www.intercert-france.fr/]], [[TF-CSIRT/TI|https://www.trusted-introducer.org/directory/teams.html]], [[ENISA|https://www.enisa.europa.eu/topics/incident-response/csirt-inventory/certs-by-country-interactive-map]], [[FIRST|https://www.first.org/members/teams/]], connaissance personnelle
Pour trier les lignes, sélectionnez le critère dans la ligne d'en-tête, puis de nouveau pour inverser la sélection|c |sortable|k |Société ou région |CSIRT |^^Lien
CSIRT^^| InterCERT
France | TF-CSIRT | ^^Lien^^ | FIRST | ^^Lien^^ | Date de
création | ^^RFC
2350^^ | ^^Clé
PGP^^ |h |Accenture|ACN FR CERT| [[✔|https://github.com/ACNfrCERT/Files]] | Membre | !✗ | ! | !✗ | ! | 2022 |!|!| |Advens|CSIRT Advens| [[✔|https://advens.fr/fr/offre/services/csirt]] | Membre | !✗ | ! | !✗ | ! | ? |!|!| |AG2R La Mondiale|CERT-ALM| [[✔|https://www.ag2rlamondiale.fr/rfc2350-cert-ag2r-la-mondiale]] | Membre | !✗ | ! | !✗ | ! | 2020 | [[✔|https://www.ag2rlamondiale.fr/rfc2350-cert-ag2r-la-mondiale]] |!| |Air Liquide|CSIRT Air Liquide| !✗ | Membre | !✗ | ! | !✗ | ! | ? |!|!| |Airbus|Airbus CERT (Ai CERT)| [[✔|https://www.trusted-introducer.org//directory/teams/ai-cert.html]] | Membre | //Accredited// | [[✔|https://www.trusted-introducer.org/directory/teams/ai-cert.html]] | //Membre// | [[✔|https://www.first.org/members/teams/ai_cert]] | 2013 |!|!| |Akaoma|CERT-AKAOMA| [[✔|https://www.akaoma.com/cert-akaoma]] | !✗ | Listed | [[✔|https://www.trusted-introducer.org/directory/teams/cert-akaoma.html]] | !✗ | ! | 2016 |!|!| |Almond|CERT CWATCH| [[✔|https://almond.consulting/information-security/soc-cert-cwatch/]] | Membre | !✗ | ! | !✗ | ! | ? |!|!| |Amadeus|1A-CERT| !✗ | Membre | //Accredited// | [[✔|https://www.trusted-introducer.org/directory/teams/1a-cert-fr.html]] | !✗ | ! | 2015 |!|!| |Amossys|CERT-Amossys| [[✔|https://www.amossys.fr/fr/nos-prestations/cert/]] | Membre | !✗ | ! | !✗ | ! | ? |!|!| |ANS|CERT Santé| [[✔|https://www.cyberveille-sante.gouv.fr/]] | Membre | !✗ | ! | !✗ | ! | ? |!|!| |ANSSI|CERT-FR| [[✔|https://www.cert.ssi.gouv.fr]] | Membre | //Accredited// | [[✔|https://www.trusted-introducer.org/directory/teams/cert-fr.html]] | //Membre// | [[✔|https://www.first.org/members/teams/cert-fr]] | 1999 |!|!| |Association Cert-IST|Cert-IST| [[✔|https://www.cert-ist.com/public/]] | Membre | //Accredited// | [[✔|https://www.trusted-introducer.org/directory/teams/cert-ist.html]] | //Membre// | [[✔|https://www.first.org/members/teams/cert-ist]] | 1999 |!|!| |Atos|CERT ATOS-FR| [[✔|https://atos.net/fr/solutions/cybersecurite/services-cybersecurite/audit-conseil-services-manages#CERT-SOC]] | Membre | //Accredited// | [[✔|https://www.trusted-introducer.org/directory/teams/cert-atos-fr-fr.html]] | !✗ | ! | 2015 |!|!| |AXA Group Operations|AXA CERT| [[✔|https://cert.axa/]] | Membre | //Listed// | [[✔|https://www.trusted-introducer.org/directory/teams/axa-cert-fr.html]] | //Membre// | [[✔|https://www.first.org/members/teams/axa_cert]] | 2016 |!|!| |Axians|CERT Axians| !✗ | !✗ | //Listed// | [[✔|https://www.trusted-introducer.org/directory/teams/cert-axians-fr.html]] | //Membre// | [[✔|https://www.first.org/members/teams/cert_axians]] | 2012 |!|!| |Banque de France|CERT Banque de France (CERT-BDF)| [[✔|https://cert.banque-france.fr/static/index.html]] | Membre | //Accredited// | [[✔|https://www.trusted-introducer.org/directory/teams/cert-bdf.html]] | //Membre// | [[✔|https://www.first.org/members/teams/cert-bdf]] | 2012 |!|!| |BNP Paribas|CSIRT BNP Paribas| !✗ | Membre | //Listed// | [[✔|https://www.trusted-introducer.org/directory/teams/csirt-bnp-paribas-fr.html]] | //Membre// | [[✔|https://www.first.org/members/teams/csirt_bnp_paribas]] | 2009 |!|!| |Bouygues Telecom|CSIRT Bouygues Telecom| !✗ | Membre | !✗ | ! | !✗ | ! | ? |!|!| |BPCE|CERT Groupe BPCE| !✗ | Membre | //Accredited// | [[✔|https://www.trusted-introducer.org/directory/teams/cert-groupe-bpce.html]] | !✗ | ! | 2016 |!|!| |Brigade de sapeurs-pompiers de Paris|CERT-BSPP| [[✔|https://cert.pompiersparis.fr/]] | Membre | !✗ | ! | !✗ | ! | ? |!|!| |Brightway|BrightwayCERT| [[✔|https://www.brightway-consulting.com/?lang=en]] | !✗ | !✗ | ! | //Membre// | [[✔|https://www.first.org/members/teams/brightwaycert]] | 2016 |!|!| |Caisse des Dépôts|CERT-CDCFR| [[✔|https://cert.caissedesdepots.fr/CERT/]] | Membre | //Accredited// | [[✔|https://www.trusted-introducer.org/directory/teams/cert-cdcfr.html]] | !✗ | ! | 2013 |!|!| |Capgemini|CERT-C Capgemini Group| !✗ | Membre | //Accredited// | [[✔|https://www.trusted-introducer.org/directory/teams/cert-c-capgemini-group-fr.html]] | !✗ | ! | 2015 |!|!| |Capgemini|CERT-E CAPGEMINI CIS| !✗ | Membre | //Listed// | [[✔|https://www.trusted-introducer.org/directory/teams/cert-e-capgemini-cis-fr.html]] | !✗ | ! | 2015 |!|!| |Carrefour France|SOC/CSIRT Carrefour| !✗ | Membre | !✗ | ! | !✗ | ! | ? |!|!| |Colas|CSIRT Colas| !✗ | Membre | !✗ | ! | !✗ | ! | ? |!|!| |Crédit Agricole|CERT Credit Agricole (CERT AG)| [[✔|https://www.cert-ag.com]] | Membre | //Certified// | [[✔|https://www.trusted-introducer.org/directory/teams/cert-credit-agricole.html]] | //Membre// | [[✔|https://www.first.org/members/teams/cert_credit_agricole]] | 2006 |!|!| |Crédit Mutuel Arkéa|CERT Arkéa| [[✔|https://cert.arkea.com/]] | Membre | !✗ | ! | !✗ | ! | ? |!|!| |Crédit Mutuel Euro-Information|CERT CM EI| [[✔|https://www.creditmutuel.fr/fr/cert.html]] | Membre | //Accredited// | [[✔|https://www.trusted-introducer.org/directory/teams/cert-cm-ei-fr.html]] | //Membre// | [[✔|https://www.first.org/members/teams/cert_cm_ei]] | 2018 |!|!| |Cyberprotect|CERT CYBERPROTECT| [[✔|https://www.cyberprotect.one]] | !✗ | !✗ | ! | //Membre// | [[✔|https://www.first.org/members/teams/cert_cyberprotect]] | 2010 |!|!| |Danone|CERT Danone| [[✔|https://www.danone.com/content/dam/danone-corp/danone-com/about-us-impact/policies-and-commitments/en/2021/Danone-CERT-RFC-2350-2021.pdf]] | Membre | !✗ | ! | !✗ | ! | 2021 | [[✔|https://www.danone.com/content/dam/danone-corp/danone-com/about-us-impact/policies-and-commitments/en/2021/Danone-CERT-RFC-2350-2021.pdf]] |!| |Dassault Aviation|CSIRT Dassault Aviation| !✗ | Membre | !✗ | ! | !✗ | ! | ? |!|!| |Deloitte France|D-CSIRT| [[✔|https://www2.deloitte.com/fr/fr/pages/risque-compliance-et-controle-interne/solutions/computer-security-incident-response-team.html]] | Membre | !✗ | ! | !✗ | ! | ? |!|!| |Devoteam|CERT-Devoteam (CERT-DVT)| [[✔|https://www.cert-devoteam.fr/]] | Membre | //Accredited// | [[✔|https://www.trusted-introducer.org/directory/teams/cert-dvt.html]] | !✗ | ! | 2007 |!|!| |EDF|CERT EDF| [[✔|https://www.edf.fr/csirt/]] | Membre | //Listed// | [[✔|https://www.trusted-introducer.org/directory/teams/cert-edf.html]] | !✗ | ! | 2018 |!|!| |Education Nationale|COSSIM| !✗ | Membre | !✗ | ! | !✗ | ! | ? |!|!| |ENEDIS|CERT ENEDIS| [[✔|https://www.enedis.fr/cert/]] | Membre | !✗ | ! | !✗ | ! | ? |!|!| |ENGIE|CERT ENGIE| [[✔|https://www.engie.com/cert/]] | Membre | //Listed// | [[✔|https://www.trusted-introducer.org/directory/teams/engie-cert-fr.html]] | //En cours// |!| ? |!|!| |Equans|CERT-Equans| [[✔|https://www.equans.com/cert]] | Membre | !✗ | ! | !✗ | ! | ? |!|!| |ERIUM|CSIRT ERIUM| !✗ | !✗ | !✗ | ! | !✗ | ! | 2023 |!|!| |ExaTrack|CERT-ExaTrack| [[✔|https://exatrack.com/]] | Membre | !✗ | ! | !✗ | ! | ? |!|!| |FDJ|SOC FDJ| !✗ | !✗ | //Listed// | [[✔|https://www.trusted-introducer.org/directory/teams/soc-fdj-fr.html]] | !✗ | ! | 2015 |!|!| |Five9s|CERT-Five9s| !✗ | Membre | //Listed// | [[✔|https://www.trusted-introducer.org/directory/teams/cert-five9s-fr.html]] | !✗ | ! | 2019 |!|!| |France Cyber Maritime|M-CERT| [[✔|https://www.m-cert.fr]] | Membre | !✗ | ! | !✗ | ! | ? | [[✔|https://www.m-cert.fr/rfc/M-CERT_RFC_2350_v1.61.pdf]] | [[✔|https://www.m-cert.fr/key/M-CERT_public_key.asc]] | |Gendarmerie Nationale|CECYBER| [[✔|https://www.gendarmerie.interieur.gouv.fr/contact/cert]] | Membre | !✗ | ! | !✗ | ! | ? |!|!| |GENERALI|CSIRT-Generali| !✗ | Membre | !✗ | ! | !✗ | ! | 2023 |!|!| |GIE SI-nerGIE|CSIRT SI-nerGIE| !✗ | Membre | !✗ | ! | !✗ | ! | ? |!|!| |GIP RENATER|CERT RENATER| [[✔|https://www.renater.fr/fr/le%20cert]] | Membre | //Accredited// | ! | //Membre// | [[✔|https://www.first.org/members/teams/cert-renater]] | 1993 |!|!| |Groupe Nexter|CERT NEXTER| [[✔|https://www.nexter-group.fr/index.php/cert.html]] | Membre | !✗ | ! | !✗ | ! | ? |!|!| |GRTgaz|CERT GRTgaz| [[✔|https://www.grtgaz.com/cert]] | Membre | !✗ | ! | !✗ | ! | ? |!|!| |Hermes|CERT Hermes| [[✔|https://www.hermes.com/cert/rfc2350.pdf]] | Membre | !✗ | ! | !✗ | ! | ? | [[✔|https://www.hermes.com/cert/rfc2350.pdf]] | [[✔|https://www.hermes.com/cert/cert_hermes_public.asc]] | |Interpol|INTERPOL ISIRT| [[✔|http://www.interpol.int]] | !✗ | !✗ | ! | //Membre// | [[✔|https://www.first.org/members/teams/isirt]] | 2009 |!|!| |Intrinsec Sécurité|CERT Intrinsec| [[✔|https://www.intrinsec.com/cert-intrinsec/]] | Membre | //Listed// | ✔ | !✗ | ! | 2013 |!|!| |I-TRACING|CERT I-TRACING| !✗ | Membre | !✗ | ! | !✗ | ! | ? |!|!| |Kering|Kering-CERT| !✗ | Membre | !✗ | ! | !✗ | ! | ? |!|!| |La Poste Groupe|CERT La Poste| [[✔|https://www.trusted-introducer.org/directory/teams/cert-la-poste.html]] | Membre | //Accredited// | ! | //Membre// | [[✔|https://www.first.org/members/teams/cert_la_poste]] | 2012 |!|!| |Lexfo SAS|CSIRT Lexfo| !✗ | Membre | !✗ | ! | !✗ | ! | 2015 |!|!| |L'Oréal|CSIRT L'Oréal| !✗ | Membre | !✗ | ! | !✗ | ! | ? |!|!| |//Marc Frédéric Gomez//|IICRAI| [[✔|https://www.iicrai.org/]] | !✗ | !✗ | ! | //Liaison// | [[✔|https://www.first.org/members/liaisons/marc_frederic_gomez]] | 2018 |!|!| |MBDA France|CERT MBDA France| [[✔|https://www.mbda-systems.com/cert/fr]] | Membre | !✗ | ! | !✗ | ! | ? |!|!| |METSYS|CERT-CERT| [[✔|https://www.metsys.fr/expertises/managed-services/cert/]] | Membre | !✗ | ! | !✗ | ! | ? | [[✔|https://www.metsys.fr/wp-content/uploads/2023/05/CERT-METSYS_RFC2350.pdf]] | [[✔|https://www.metsys.fr/wp-content/uploads/2023/01/CERT-METSYS_public.asc]] | |Michelin|CERT Michelin| [[✔|https://cert.michelin.com/]] | Membre | //Listed// | ✔ | !✗ | ! | 2014 |!|!| |Ministère de l'Intérieur|C2MI| !✗ | Membre | !✗ | ! | !✗ | ! | ? |!|!| |Ministère des Armées|FR-MIL-CERT| [[✔|https://www.defense.gouv.fr]] | Membre | !✗ | ! | //Membre// | [[✔|https://www.first.org/members/teams/fr-mil-cert]] | 2010 |!|!| |Nameshield|CERT-Nameshield (CERT-NS)| [[✔|https://cert.nameshield.net/]] | Membre | //Listed// | ✔ | //Membre// | [[✔|https://www.first.org/members/teams/cert_nameshield]] | 2021 |!|!| |Naval Group|Naval Group CERT (NavCERT)| [[✔|https://www.naval-group.com/fr/computer-emergency-response-team-cert-73/]] | Membre | //Accredited// | ✔ | !✗ | ! | 2017 |!|!| |NEOSOFT|CSIRT-NEOSOFT| !✗ | !✗ | //Accredited// | ! | !✗ | ! | ? |!|!| |ODDO BHF|ODDO BHF CSIRT| [[✔|http://www.oddo-bhf.com]] | !✗ | !✗ | ! | //Membre// | [[✔|https://www.first.org/members/teams/oddo_bhf_csirt]] | 2019 |!|!| |//Olivier Caleff//|CSIRT.FR| [[✔|https://www.csirt.fr/]] | Liaison | // Associate// | [[✔|https://www.trusted-introducer.org/processes/associates.html]] | //Liaison// | [[✔|https://www.first.org/members/liaisons/olivier_caleff]] | 2018 |!|!| |ON-X Groupe|CERT ON-X| [[✔|https://www.on-x.com/cert]] | Membre | !✗ | ! | !✗ | ! | ? |!|!| |Orange|Orange-CERT-CC| [[✔|https://www.orange.com/fr/cert-orange]] | Membre | //Listed// | [[✔|https://www.trusted-introducer.org/directory/teams/orange-cert-cc.html]] | //Membre// | [[✔|https://www.first.org/members/teams/orange-cert-cc]] | 2011 |!|!| |Orange Cyberdefense|CERT Orange Cyberdefense| [[✔|https://cyberdefense.orange.com/fr/accueil/contactez-nous/]] | Membre | //Accredited// | ! | //Membre// | [[✔|https://www.first.org/members/teams/global_cert_orange_cyberdefense]] | 2003 |!|!| |OVH|CSIRT-OVH| [[✔|https://csirt.ovh.com]] | Membre | !✗ | ! | !✗ | ! | ? |!|!| |OWN|OWN-CERT| [[✔|https://www.own.security/rfc-2350]] | Membre | //Listed// | ✔ | !✗ | ! | ? | [[✔|https://www.own.security/rfc-2350]] |!| |Police nationale|CSIRT-PJ| !✗ | Membre | //Listed// | ✔ | !✗ | ! | 2014 |!|!| |PwC France|PwC FR CSIRT| !✗ | Membre | !✗ | ! | !✗ | ! | ? |!|!| |RTE|CERT-RTE| [[✔|https://cert-rte.rte-france.com/RFC2350_CERTR.pdf]] | Membre | //Listed// | [[✔|https://www.trusted-introducer.org/directory/teams/cert-rte-fr.html]] | !✗ | ! | 2014 | [[✔|https://cert-rte.rte-france.com/RFC2350_CERTR.pdf]] |!| |Safran|CERT Safran| [[✔|https://www.safran-group.com/media/402052/download]] | Membre | !✗ | ! | !✗ | ! | ? | [[✔|https://www.safran-group.com/media/402052/download]] |!| |Sagemcom|CSIRT-Sagemcom| [[✔|https://www.sagemcom.com/fr/sagemcom-csirt]] | Membre | !✗ | ! | !✗ | ! | ? | [[✔|https://www.sagemcom.com/sites/default/files/CSIRT-RFC2350_SC_SSI_0242_C.pdf]] |!| |Saint-Gobain|Saint-Gobain CSIRT| [[✔|https://www.saint-gobain.com/fr/csirt]] | Membre | !✗ | ! | !✗ | ! | ? | [[✔|https://www.saint-gobain.com/sites/saint-gobain.com/files/media/document/Saint-Gobain%20CSIRT%20RFC2350.pdf]] |!| |Schneider Electric|SE-CERT| !✗ | Membre | !✗ | ! | !✗ | ! | ? |!|!| |SEKOIA.IO|CERT SEKOIA.IO| [[✔|https://sekoia.io/rfc2350]] | Membre | !✗ | ! | !✗ | ! | ? | [[✔|https://sekoia.io/rfc2350]] |!| |SNCF|CERT-SNCF| [[✔|http://www.cert-sncf.fr/]] | Membre | //Listed// | ✔ | !✗ | ! | 2004 |!|!| |Société Générale|CERT Société Générale (CERT SG)| [[✔|https://cert.societegenerale.com/]] | Membre | //Accredited// | ✔ | //Membre// | [[✔|https://www.first.org/members/teams/cert_sg]] | 2004 | [[✔|https://cert.societegenerale.com/CERT_SG_RFC2350.pdf]] | [[✔|https://cert.societegenerale.com/CERT_SG_RFC2350.pdf.sig]] | |Sopra Steria Group|CERT Sopra Steria| !✗ | Membre | !✗ | ! | !✗ | ! | ? |!|!| |STMicroelectronics|ST CSIRT| [[✔|https://www.st.com/csirt]] | Membre | //Listed// | ✔ | !✗ | ! | 2013 | [[✔|https://www.st.com/content/dam/st/csirt/ST_CSIRT_RFC2350.pdf]] | [[✔|https://www.st.com/content/dam/report-vulnerabilities/pgpkey-csirt/csirt-st-csirt@st.com-2023-pub-sec.asc]] | |Stoïk|CERT-Stoïk| [[✔|https://www.stoik.io/cert]] | Membre | !✗ | ! | !✗ | ! | 2023 | [[✔|https://uploads-ssl.webflow.com/60be2330f31e471e6ee67e0c/63f38865d5d3dd311778120b_RFC2350%20-%20CERT%20Stoi%CC%88k.pdf]] |!| |SUEZ|CSIRT SUEZ| !✗ | Membre | //Listed// | ✔ | !✗ | ! | 2019 |!|!| |Synacktiv|CSIRT Synacktiv| !✗ | Membre | !✗ | ! | !✗ | ! | ? |!|!| |Synetis|CERT Synetis| [[✔|https://www.synetis.com/expertises/cert]] | Membre | !✗ | ! | !✗ | ! | 2022? |!|!| |SysDream|CERT SysDream| !✗ | Membre | //Accredited// | ✔ | !✗ | ! | 2021 |!|!| |Thales|Thales CERT (THA-CERT)| [[✔|https://www.thalesgroup.com/en/cert]] | Membre | //Accredited// | ✔ | !✗ | ! | 2013 | [[✔|https://www.thalesgroup.com/sites/default/files/database/document/2021-10/THALES%20CERT%20RFC%202350.pdf]] | [[✔|https://pgp.circl.lu/pks/lookup?op=get&search=0x4C520648026A9D84]] | |TotalEnergies SE|TotalEnergies CERT| [[✔|https://www.total.com/cert]] | Membre | //Listed// | ✔ | //Membre// | [[✔|https://www.first.org/members/teams/totalenergies_cert]] | 2020 | [[✔|https://totalenergies.com/sites/g/files/nytnzq121/files/documents/2021-06/CERT_TotalEnergies_RFC2350_EN.pdf]] | [[✔|https://pgp.circl.lu/pks/lookup?search=0xB2F5B2F5D0E4AE28&fingerprint=on&op=index]] | |Ubisoft|CERT-Ubisoft| !✗ | Membre | //Accredited// | [[✔|https://www.trusted-introducer.org/directory/teams/cert-ubisoft.html]] | !✗ | ! | 2019 |!|!| |Université de Strasbourg|CERT OSIRIS| [[✔|https://cert-osiris.unistra.fr/]] | Membre | //Listed// | ✔ | !✗ | ! | 2011 || [[✔|https://services-numeriques.unistra.fr/fileadmin/upload/Services_numeriques/Documents/Services_OSIRIS/CERT/cert-osiris.txt]] | |VINCI|VINCI-CERT| [[✔|https://www.vinci.com/cert]] | Membre | //Accredited// | ✔ | //Membre// | [[✔|https://www.first.org/members/teams/vinci-cert]] | 2019 | [[✔|https://www.vinci.com/cert/vinci-cert.nsf/bib/files/$file/RFC2350-VINCI-v2.pdf]] | [[✔|https://www.vinci.com/cert/vinci-cert.nsf/bib/files/$file/public_key_vinci_cert.txt]] | |Wavestone SA|CERT-W| [[✔|https://fr.wavestone.com/fr/offre/cybersecurite-resilience-operationnelle/cert-wavestone/#CERT]] | Membre | //Accredited// | ✔ | !✗ | ! | 2011 |!|!| |XMCO|CERT-XMCO| [[✔|https://www.xmco.fr/le-cert-xmco/]] | Membre | //Accredited// | ✔ | !✗ | ! | 2010 | [[✔|https://www.xmco.fr/cert-xmco/profile-rfc2350/]] | [[✔|https://pgp.circl.lu/pks/lookup?search=0x17587ED8&fingerprint=on&op=index]] | |!|!|!|!|!|!|!|!|!|!|!| |Auvergne-Rhône-Alpes|^^en cours de création^^| ! | !✗ | !✗ | ! | !✗ |!| 2022 |!|!| |Bourgogne-Franche-Comté|CSIRT Bourgogne-Franche-Comté| [[✔|https://www.csirt-bfc.fr/]] | !✗ | !✗ |!| !✗ |!| 2022 | [[✔|https://www.csirt-bfc.fr/rfc2350/ARNia-Cyber%20-%20RFC%202350%20V2.0.pdf]] |!| |Bretagne|^^en cours de création^^| ! | !✗ | !✗ | ! | !✗ |!| 2022 |!|!| |Centre-Val-de-Loire|CybeRéponse| [[✔|https://www.cybereponse.fr/]] | !✗ | !✗ |!| !✗ |!| 2022 |!|!| |Corse|^^en cours de création^^| ! | !✗ | !✗ | ! | !✗ |!| 2022 |!|!| |Grand-Est|Grand Est Cybersécurité| [[✔|https://cybersecurite.grandest.fr/]] | !✗ | !✗ |!| !✗ |!| 2022 | [[✔|https://www.cybersecurite.grandest.fr/wp-content/uploads/2023/08/Grand-Est-Cybersecurite-RFC2350.pdf]] |!| |Hauts-de-France|CSIRT Hauts-de-France| [[✔|http://csirt-hdf.fr/]] | !✗ | !✗ |!| !✗ |!| 2022 |!|!| |Ile-de-France|^^en cours de création^^| ! | !✗ | !✗ | ! | !✗ |!| 2022 |!|!| |Normandie|Normandie Cyber| [[✔|https://adnormandie.fr/besoin/normandie-cyber/]] | !✗ | !✗ |!| !✗ |!| 2022 | [[✔|https://adnormandie.fr/wp-content/uploads/2022/05/RFC2350-CSIRT-R-v1.2_FR-003.pdf]] |!| |Nouvelle-Aquitaine|Campus régional de Cybersécurité
et de Confiance numérique| [[✔|https://www.campuscyber-na.fr/]] | !✗ | !✗ |!| !✗ |!| 2022 | [[✔|https://www.campuscyber-na.fr/campus-api/uploads/RFC_2350_d4540f969c.pdf]] |!| |Occitanie|Cyber’Occ| [[✔|https://www.cyberocc.com/en-cas-durgence/]] | !✗ | !✗ |!| !✗ |!| 2022 |!|!| |Pays-de-Loire|^^en cours de création^^| ! | !✗ | !✗ | ! | !✗ |!| 2022 |!|!| |Sud – Provence-Alpes-Côte-d'Azur|^^en cours de création^^| ! | !✗ | !✗ | ! | !✗ |!| 2022 |!|!|
!Liste (non exhaustive) des CSIRTs basés à Monaco
|[<img[iCC/mc.png]][>img[iCC/mc.png]]Sources agrégées: [[TF-CSIRT/TI|https://www.trusted-introducer.org/directory/teams.html]], [[FIRST|https://www.first.org/members/teams/]], connaissance personnelle
Pour trier les lignes, sélectionnez le critère dans la ligne d'en-tête, puis de nouveau pour inverser la sélection|c |sortable|k |Société|CSIRT|Lien
CSIRT|InterCERT
France|TF-CSIRT|Lien|FIRST|Lien|Date de
création|!RFC
2350|!Clé
PGP|h |Société|CSIRT|^^Lien
CSIRT^^| InterCERT
France | TF-CSIRT |^^Lien
TF-CSIRT^^| FIRST |^^Lien
FIRST^^| Date de
création | ^^RFC
2350^^ | ^^Clé
PGP^^ |h |AMSN|CERT Monaco(CERT-MC)| [[✔|https://amsn.gouv.mc/CERT-MC/]] | !✗ | //Accredited// | [[✔|https://tiw.trusted-introducer.org/directory/teams/cert-mc-mc.html]] | //Membre// | [[✔|https://www.first.org/members/teams/cert-mc]] | 2015 | [[✔|https://amsn.gouv.mc/var/amsn/storage/original/application/888b4f296b9ba46bcc7ba5abe2acd0cc.pdf]] | [[✔|https://amsn.gouv.mc/var/amsn/storage/original/text/317dff3287336181ae38b010a1be64f8.asc]] | |Monaco Cyber Sécurité|CERT-MCS| [[✔|http://www.monacocyber.mc]] | !✗ | !✗ |!| !✗ |!| 2022 |!|!|
@@bgcolor:#DDDDDD;color:#000091;▬@@@@bgcolor:#DDDDDD;color:#FFFFFF;▬@@@@bgcolor:#DDDDDD;color:#E1000F;▬@@ Article en cours de rédaction @@bgcolor:#DDDDDD;color:#000091;▬@@@@bgcolor:#DDDDDD;color:#FFFFFF;▬@@@@bgcolor:#DDDDDD;color:#E1000F;▬@@
Liste ''non exhaustive'' de différentes associations - ouvertes ou non - de CSIRTs :
|!Zone |!Associations ouvertes |!Associations nationales
ou gouvernementales | |France |[[InterCERT France|https://www.intercert-france.fr/]] || |Europe |[[TF-CSIRT|https://tf-csirt.org/]], des [[ISACs|https://www.isacs.eu/]] |[[EGC Group|https://egc-group.org/]], [[CSIRTs Network|https://csirtsnetwork.eu/]] | |Afrique |[[AfricaCERT|https://www.africacert.org/]] || |Amériques |[[CSIRT Americas|https://csirtamericas.org/en]], LAC-CSIRT || |Asie |[[APCERT|https://www.apcert.org/]], [[Nippon CSIRT Association|https://www.nca.gr.jp/en/index.html]] || |Monde |[[FIRST|https://first.org]], des [[ISACs|https://www.nationalisacs.org/]] |[[NatCSIRTs|https://resources.sei.cmu.edu/news-events/events/natcsirt/]], IWWN |
!Traffic Light Protocol
La dernière version du ''TLP'' est la ''version 2.0'' :
* La version anglaise a été publiée par le FIRST en ''août 2022''.
* La traduction française est disponible depuis ''février 2023''.
* La traduction française de la version précédente (1.0) est aussi publiée ci-dessous à des fins historiques.
<<tabs TLP "TLP 2.0 en français" "français" [[TLP v2.0 FR]] "TLP 2.0 en Anglais" "Anglais" [[TLP v2.0 EN]] "TLP 1.0 en français" "français" [[TLP v1.0 FR]]>>
!TRAFFIC LIGHT PROTOCOL (TLP) Version 2.0 en français
* Version de référence au format PDF : https://www.first.org/tlp/docs/v2/tlp-v2-fr.pdf
* Version de référence au format RTF : https://www.first.org/tlp/docs/v2/tlp-v2-fr.rtf
 __''Définitions des Normes et Conseils d'Utilisation''__
!!1 - Introduction
# Le protocole TLP (Traffic Light Protocol) a été créé pour faciliter un plus grand partage d'informations potentiellement sensibles et une collaboration plus efficace. Le partage d'informations se fait à partir d'une source d'informations, vers un ou plusieurs destinataires. Le protocole TLP est un ensemble de quatre appellations utilisées pour indiquer les limites de partage à appliquer par les destinataires. Seules les appellations listées dans cette norme sont considérées comme valides par le FIRST.
# Les quatre appellations du protocole TLP sont : TLP:RED, TLP:AMBER, TLP:GREEN, et TLP:CLEAR. A l'écrit, ils NE DOIVENT pas contenir d'espaces et DOIVENT être en majuscules. Les appellations du protocole TLP DOIVENT rester dans leur forme originale, même lorsqu'ils sont utilisés dans d'autres langues : le contenu peut être traduit, mais pas les labels.
# Le protocole TLP fournit un schéma simple et intuitif pour indiquer avec qui les informations potentiellement sensibles peuvent être partagées. Le protocole TLP n'est pas un schéma de classification formel. Le protocole TLP n'a pas été conçu pour gérer les termes de licence, ni les règles de traitement de l'information ou de chiffrement. Les appellations du protocole TLP et leurs définitions ne sont pas destinées à avoir un quelconque effet sur la liberté d'accès aux documents administratifs ou les lois dites "sunshine" dans aucune juridiction.
# Le protocole TLP est optimisé pour la facilité d'adoption, la lisibilité humaine et le partage de personne à personne ; il peut être utilisé dans des systèmes automatisés d'échange d'informations, tels que MISP ou IEP.
# Le protocole TLP est distinct de la règle de Chatham House, mais peut être utilisé conjointement lorsque cela est approprié. Lorsqu'une réunion se tient selon la règle de Chatham House, les participants sont libres d'utiliser les informations reçues, mais ni l'identité ni l'affiliation du ou des intervenants, ni celle de tout autre participant, ne peuvent être révélées. 
# ''La source a la responsabilité de s'assurer que les destinataires des informations étiquetées avec le protocole TLP comprennent et sont en mesure de suivre les instructions de partage du protocole TLP.''
# ''La source est libre de spécifier des restrictions de partage supplémentaires. Celles-ci doivent être respectées par les destinataires.''
# ''Si un destinataire a besoin de partager l'information plus largement que ce qui est indiqué par le protocole TLP avec lequel elle a été fournie, il doit obtenir la permission explicite de la source.''
!!2 - Utilisation
# ''Comment utiliser le protocole TLP dans la messagerie (comme le courriel et le chat)''
** La messagerie étiquetée TLP DOIT indiquer le label TLP de l'information, ainsi que toute restriction supplémentaire, directement avant l'information elle-même. La mention du label TLP DOIT figurer dans la ligne d'objet du courriel. Si nécessaire, veillez également à indiquer la fin du texte auquel s'applique le label TLP.
# ''Comment utiliser le protocole TLP dans les documents''
** Les documents portant un label TLP DOIVENT indiquer le niveau de TLP de l'information, ainsi que toute restriction supplémentaire, dans l'en-tête et le pied de page de chaque page. La mention du protocole TLP DOIT être en caractères de 12 points ou plus pour les utilisateurs malvoyants. Il est recommandé d'ajuster les mentions TLP à droite.
# ''Comment utiliser le protocole TLP dans les échanges d'informations automatisés''
** L'utilisation du protocole TLP dans les échanges d'informations automatisés n'est pas définie : elle est laissée aux concepteurs de ces échanges, mais DOIT être conforme à la présente norme. 
# ''Codage couleur du TLP en RGB, CMYK et Hex.''
| |!|>|>| ''RGB:font'' |!|>|>| ''RGB:background'' |!|>|>|>| ''CMYK:font'' |!|>|>|>| ''CMYK:background'' |!| ''Hex'' | ''Hex'' |!|
|~|~| R | G | B |~| R | G | B |~| C | M | Y | K |~| C | M | Y | K |~| ''font'' | ''background'' |~|
|!|~|>|>|!|~|>|>|!|~|>|>|>|!|~|>|>|>|!|~|>|!|~|
|color:#FF2B2B;bgcolor:#000000;''TLP:RED'' |~| 255 | 43 | 43 |~| 0 | 0 | 0 |~| 0 | 83 | 83 | 0 |~| 0 | 0 | 0 | 100 |~| #FF2B2B | #000000 |~|
|color:#FFC000;bgcolor:#000000;''TLP:AMBER'' |~| 255 | 192 | 0 |~| 0 | 0 | 0 |~| 0 | 25 | 100 | 0 |~| 0 | 0 | 0 | 100 |~| #FFC000 | #000000 |~|
|color:#33FF00;bgcolor:#000000;''TLP:GREEN'' |~| 51 | 255 | 0 |~| 0 | 0 | 0 |~| 79 | 0 | 100 | 0 |~| 0 | 0 | 0 | 100 |~| #33FF00 | #000000 |~|
|color:#FFFFFF;bgcolor:#000000;''TLP:CLEAR'' |~| 255 | 255 | 255 |~| 0 | 0 | 0 |~| 0 | 0 | 0 | 0 |~| 0 | 0 | 0 | 100 |~| #FFFFFF | #000000 |~|
|!|~|>|>|!|~|>|>|!|~|>|>|>|!|~|>|>|>|!|~|>|!|~|
Remarque sur le codage couleur : lorsque le contraste entre le texte et le fond est trop faible, les personnes malvoyantes ont du mal à lire le texte ou ne le voient pas du tout. Le protocole TLP est conçu pour s'adapter aux personnes malvoyantes. Les sources DEVRAIENT adhérer au code couleur du protocole TLP pour assurer un contraste de couleur suffisant pour ces lecteurs.
!!3 - Définitions des appellations utilisées par le protocole TLP
''Communauté'' : Dans le cadre du protocole TLP, une communauté est un groupe qui partage des objectifs, des pratiques et des relations de confiance informelles. Une communauté peut être aussi large que tous les praticiens de la cybersécurité dans un pays (ou dans un secteur ou une région).
''Organisation'' : Dans le cadre du protocole TLP, une organisation est un groupe qui partage une affiliation commune par une adhésion formelle et qui est lié par des politiques communes définies par l'organisation. Une organisation peut être aussi large que tous les membres d'une organisation de partage d'informations, mais rarement plus large.
''Clients'' : Dans le cadre du protocole TLP, les clients sont les personnes ou entités qui reçoivent des services de cybersécurité d'une organisation. Les clients sont inclus par défaut dans l'appellation TLP:AMBER afin que les destinataires puissent partager des informations en aval pour que les clients prennent des mesures pour se protéger. Pour les équipes ayant une responsabilité nationale, cette définition inclut les parties prenantes et les électeurs.
@@font-size:125%;color:#FF2B2B;bgcolor:#000000;TLP:RED@@
* Pour les yeux et les oreilles des destinataires individuels uniquement, aucune autre divulgation. Les sources peuvent utiliser l'appellation TLP:RED lorsque les informations ne peuvent pas être traitées efficacement sans risque significatif pour la vie privée, la réputation ou les opérations des organisations concernées. Les destinataires ne peuvent donc pas partager les informations avec l'appellation TLP:RED avec qui que ce soit. Dans le contexte d'une réunion, par exemple, les informations mentionnées avec le label TLP:RED sont limitées aux personnes présentes à la réunion.
  @@font-size:125%;color:#FFC000;bgcolor:#000000;TLP:AMBER@@ * Divulgation limitée, les destinataires ne peuvent diffuser ces informations que sur la base du besoin d'en connaître au sein de leur organisation et de ses clients. Notez que le ''@@font-size:125%;color:#FFC000;bgcolor:#000000;TLP:AMBER+STRICT@@'' restreint le partage à l'organisation uniquement. Les sources peuvent utiliser le TLP:AMBER lorsque l'information nécessite un soutien pour être traitée efficacement, mais qu'elle présente un risque pour la confidentialité, la réputation ou les opérations si elle est partagée en dehors des organisations concernées. Les destinataires peuvent partager les informations avec la mention TLP:AMBER avec les membres de leur propre organisation et ses clients, mais ''uniquement'' sur la base du besoin d'en connaître, afin de protéger leur organisation et ses clients et d'éviter tout préjudice supplémentaire. ** Remarque : si la source souhaite restreindre le partage à l'organisation uniquement, elle doit spécifier TLP:AMBER+STRICT.
  @@font-size:125%;color:#33FF00;bgcolor:#000000;TLP:GREEN@@ Divulgation limitée, les destinataires peuvent la diffuser au sein de leur communauté. Les sources peuvent utiliser l'appellation TLP:GREEN lorsque l'information est utile pour accroître la sensibilisation au sein de leur communauté. Les destinataires peuvent partager les informations avec l'appellation TLP:GREEN avec leurs pairs et les organisations partenaires au sein de leur communauté, mais pas via des canaux accessibles au public. Les informations ayant la mention TLP:GREEN ne peuvent pas être partagées en dehors de la communauté. ** Remarque : lorsque le terme "communauté" n'est pas défini, il s'agit de la communauté de la cybersécurité/défense. @@font-size:125%;color:#FFFFFF;bgcolor:#000000;TLP:CLEAR@@ Les destinataires peuvent diffuser cette information dans le monde entier, il n'y a pas de limite à la divulgation. Les sources peuvent utiliser l'appellation TLP:CLEAR lorsque les informations présentent un risque minimal ou nul de mauvaise utilisation, conformément aux règles et procédures applicables à la diffusion publique. Sous réserve des règles standard de copyright, les informations mentionnées en TLP:CLEAR peuvent être partagées sans restriction. ---- __Notes__ # Ce document utilisent les termes DOIT (MUST) et DEVRAIT (SHOULD) tel que défini dans le [[RFC-2119|https://tools.ietf.org/html/rfc2119]]. # Tous les commentaires et ou suggestions peuvent être envoyées à l'adresse courriel suivante //tlp-sig @ first . org//. ---- __Translation__ * Marc-Frederic GOMEZ, CERT Credit Agricole (FR) * Louis Rouxel, CERT-FR (FR) * Olivier Caleff, FIRST Liaison member (FR) __Review__ * Don Stikvoort, FIRST Liaison member (NL)
!1 - TRAFFIC LIGHT PROTOCOL (TLP) Version 2.0
__''FIRST Standards Definitions and Usage Guidance -- Version 2.0''__
''TLP version 2.0 is the current version of TLP standardized by FIRST. It is authoritative from August 2022 onwards''
!!1.1 - Introduction
# The Traffic Light Protocol (TLP) was created to facilitate greater sharing of potentially sensitive information and more effective collaboration. Information sharing happens from an information //source//, towards one or more //recipients//. TLP is a set of four labels used to indicate the sharing boundaries to be applied by the recipients. Only labels listed in this standard are considered valid by FIRST.
# The four TLP labels are: TLP:RED, TLP:AMBER, TLP:GREEN, and TLP:CLEAR. In written form, they MUST not contain spaces and SHOULD be in capitals. TLP labels MUST remain in their original form, even when used in other languages: content can be translated, but the labels cannot.
# TLP provides a simple and intuitive schema for indicating with whom potentially sensitive information can be shared. TLP is not a formal classification scheme. TLP was not designed to handle licensing terms, nor information handling or encryption rules. TLP labels and their definitions are not intended to have any effect on freedom of information or 'sunshine' laws in any jurisdiction.
# TLP is optimized for ease of adoption, human readability and person-to-person sharing; it may be used in automated information exchange systems, such as [[MISP|https://www.misp-project.org]] or [[IEP|https://www.first.org/iep/]].
# TLP is distinct from the Chatham House Rule, but may be used in conjunction when appropriate. When a meeting is held under the Chatham House Rule, participants are free to use the information received, but neither the identity nor the affiliation of the speaker(s), nor that of any other participant, may be revealed.
# ''The source is responsible for ensuring that recipients of TLP-labeled information understand and can follow TLP sharing guidance.''
# ''The source is at liberty to specify additional sharing restrictions. These must be adhered to by recipients.''
# ''If a recipient needs to share information more widely than indicated by the TLP label it came with, they must obtain explicit permission from the source.''
!!1.2 - Usage
# ''How to use TLP in messaging (such as email and chat)''
** TLP-labeled messaging MUST indicate the TLP label of the information, as well as any additional restrictions, directly prior to the information itself. The TLP label SHOULD be in the subject line of email. Where needed, also make sure to designate the end of the text to which the TLP label applies.
# ''How to use TLP in documents''
** TLP-labeled documents MUST indicate the TLP label of the information, as well as any additional restrictions, in the header and footer of each page. The TLP label SHOULD be in ''12-point type or greater'' for users with low vision. It is recommended to right-justify TLP labels.
# ''How to use TLP in automated information exchanges''
** TLP usage in automated information exchanges is not defined: this is left to the designers of such exchanges, but MUST be in accordance with this standard.
# ''TLP color-coding in RGB, CMYK and Hex''
| |!|>|>| ''RGB:font'' |!|>|>| ''RGB:background'' |!|>|>|>| ''CMYK:font'' |!|>|>|>| ''CMYK:background'' |!| ''Hex'' | ''Hex'' |!|
|~|~| R | G | B |~| R | G | B |~| C | M | Y | K |~| C | M | Y | K |~| ''font'' | ''background'' |~|
|!|~|>|>|!|~|>|>|!|~|>|>|>|!|~|>|>|>|!|~|>|!|~|
|color:#FF2B2B;bgcolor:#000000;''TLP:RED'' |~| 255 | 43 | 43 |~| 0 | 0 | 0 |~| 0 | 83 | 83 | 0 |~| 0 | 0 | 0 | 100 |~| #FF2B2B | #000000 |~|
|color:#FFC000;bgcolor:#000000;''TLP:AMBER'' |~| 255 | 192 | 0 |~| 0 | 0 | 0 |~| 0 | 25 | 100 | 0 |~| 0 | 0 | 0 | 100 |~| #FFC000 | #000000 |~|
|color:#33FF00;bgcolor:#000000;''TLP:GREEN'' |~| 51 | 255 | 0 |~| 0 | 0 | 0 |~| 79 | 0 | 100 | 0 |~| 0 | 0 | 0 | 100 |~| #33FF00 | #000000 |~|
|color:#FFFFFF;bgcolor:#000000;''TLP:CLEAR'' |~| 255 | 255 | 255 |~| 0 | 0 | 0 |~| 0 | 0 | 0 | 0 |~| 0 | 0 | 0 | 100 |~| #FFFFFF | #000000 |~|
|!|~|>|>|!|~|>|>|!|~|>|>|>|!|~|>|>|>|!|~|>|!|~|
Note on color-coding: when there is too little color contrast between text and background, those with low vision struggle to read text or cannot see it at all. TLP is designed to accommodate those with low vision. Sources SHOULD adhere to the TLP color-coding to ensure enough color contrast for such readers.
!!1.3 - TLP definitions
''Community:'' Under TLP, a //community// is a group who share common goals, practices, and informal trust relationships. A community can be as broad as all cybersecurity practitioners in a country (or in a sector or region).
''Organization:'' Under TLP, an //organization// is a group who share a common affiliation by formal membership and are bound by common policies set by the organization. An organization can be as broad as all members of an information sharing organization, but rarely broader.
''Clients:'' Under TLP, clients are those people or entities that receive cybersecurity services from an //organization//. Clients are by default included in TLP:AMBER so that the recipients may share information further downstream in order for clients to take action to protect themselves. For teams with national responsibility this definition includes stakeholders and constituents.
# ''@@font-size:125%;color:#FF2B2B;bgcolor:#000000;TLP:RED@@'' = For the eyes and ears of //individual// recipients only, no further disclosure.
** Sources may use TLP:RED when information cannot be effectively acted upon without significant risk for the privacy, reputation, or operations of the organizations involved. Recipients may therefore not share TLP:RED information with anyone else. In the context of a meeting, for example, TLP:RED information is limited to those present at the meeting.
  # ''@@font-size:125%;color:#FFC000;bgcolor:#000000;TLP:AMBER@@'' = Limited disclosure, recipients can only spread this on a need-to-know basis within their //organization// and its //clients//. ** Note that ''@@font-size:125%;color:#FFC000;bgcolor:#000000;TLP:AMBER+STRICT@@'' restricts sharing to the //organization// only. ** Sources may use TLP:AMBER when information requires support to be effectively acted upon, yet carries risk to privacy, reputation, or operations if shared outside of the organizations involved. Recipients may share TLP:AMBER information with members of their own organization and its clients, but only on a need-to-know basis to protect their organization and its clients and prevent further harm. Note: if the source wants to restrict sharing to the organization ''only'', they must specify TLP:AMBER+STRICT.
  # ''@@font-size:125%;color:#33FF00;bgcolor:#000000;TLP:GREEN@@'' = Limited disclosure, recipients can spread this within their community. ** Sources may use TLP:GREEN when information is useful to increase awareness within their wider community. Recipients may share TLP:GREEN information with peers and partner organizations within their community, but not via publicly accessible channels. TLP:GREEN information may not be shared outside of the community. Note: when 'community' is not defined, assume the cybersecurity/defense community.
  # ''@@font-size:125%;color:#FFFFFF;bgcolor:#000000;TLP:CLEAR@@'' = Recipients can spread this to the //world//, there is no limit on disclosure. ** Sources may use TLP:CLEAR when information carries minimal or no foreseeable risk of misuse, in accordance with applicable rules and procedures for public release. Subject to standard copyright rules, TLP:CLEAR information may be shared without restriction. ---- ^^__Notes:__ # This document uses MUST and SHOULD as defined by [[RFC-2119|https://tools.ietf.org/html/rfc2119]]. # Comments or suggestions on this document can be sent to //tlp-sig @ first . org//. ^^
!TLP Version 1.0 en français
|Extrait de la Charte de l'InterCERT-FR, version 2.8 du 21/06/2018 ([[version PDF|https://www.cert.ssi.gouv.fr/uploads/Charte-InterCERT-FR-v2.8a.pdf]])
Document de référence faisant foi : [[la page TLP du FIRST|https://first.org/tlp/]]|c |!Code|!Couleur|!Détails| |[img(80px,auto)[iCSIRT/TLP-Red.png]]|color:#FF2B2B;bgcolor:#404040;Red
Rouge|''Ne pas divulguer, information restreinte uniquement aux récipiendaires''
Les émetteurs peuvent utiliser TLP:RED lorsque l'information ne doit pas être partagée à d'autres parties que les récipiendaires, et dont la divulgation ou le mauvais usage implique des risques pour la vie privée, la réputation ou les opérations si elle est partagée en dehors des récipiendaires.
Les récipiendaires ne peuvent pas partager les informations TLP:RED avec des parties en dehors de l'échange, de la réunion ou de la conversation spécifique dans laquelle elles ont été divulguées à l'origine.
Dans le cadre d'une réunion, par exemple, les informations TLP:RED sont limitées aux personnes présentes à la réunion.
Dans la plupart des cas, TLP:RED doit être échangé verbalement ou en personne.| |[img(80px,auto)[iCSIRT/TLP-Amber.png]]|color:#FFC000;bgcolor:#404040;Amber
Ambre|''Divulgation limitée, information limitée aux organisations et aux parties prenantes des participants sur la base du besoin d'en connaître''
Les émetteurs peuvent utiliser TLP:AMBER lorsque l'information requiert un partage pour son usage, mais dont la divulgation ou le mauvais usage implique des risques pour la vie privée, la réputation ou les opérations si elle est partagée en dehors des organisations impliquées.
Les récipiendaires ne peuvent partager les informations TLP:AMBER qu'avec les membres de leur propre organisation et les clients qui doivent connaître l'information pour se protéger ou prévenir de dommages.
Les émetteurs sont libres de spécifier des limites supplémentaires au partage : celles-ci doivent être respectées par les récipiendaires.| |[img(80px,auto)[iCSIRT/TLP-Green.png]]|color:#33FF00;bgcolor:#404040;Green
Vert|''Divulgation limitée, information restreinte à la communauté''
Les émetteurs peuvent utiliser TLP:GREEN lorsque l'information est utile pour la sensibilisation de toutes les organisations participantes ainsi que des pairs dans la communauté ou le secteur en général.
Les récipiendaires peuvent partager des informations TLP:GREEN avec des pairs et des organisations partenaires dans leur secteur ou leur communauté, mais pas via des canaux accessibles au public.
L'information dans cette catégorie peut circuler largement dans une communauté particulière.
Les informations TLP: GREEN ne peuvent pas être diffusées en dehors de la communauté.| |[img(80px,auto)[iCSIRT/TLP-White.png]]|color:#FFFFFF;bgcolor:#404040;White
Blanc|''La divulgation de l'information n'est pas limitée''
Les émetteurs peuvent utiliser TLP:WHITE lorsque les informations comportent un risque prévisible ou inexistant d'utilisation abusive, conformément aux règles et procédures applicables à la publication publique.
Sous réserve des règles de droit d'auteur standard, les informations TLP:WHITE peuvent être distribuées sans restriction.| /% |Document de référence faisant foi : [[la page TLP du FIRST|https://first.org/tlp/]]|c |!Code|!Couleur|!Synthèse|!Quand|!Comment| |[img(100px,auto)[iCSIRT/TLP-Red.png]]|Red
Rouge|''SECRET''
informations strictement réservées aux destinataires directs|Lorsque la fuite d'information est suceptible
• de causer un préjudice majeur à l'entreprise
• d'entrainer les sanctions les plus graves prévues (ex. RGPD)
• de nuire de manière irréversible à la réputation de l'entreprise|L'information doit bénéficier des plus fortes mesures en matière de sécurité
Le plus grand soin doit être apporté lors de son partage| |~|~|>|>|Extrait de la Charte de l'InterCERT-FR, version 2.8 du 21/06/2018 ([[version PDF|https://www.cert.ssi.gouv.fr/uploads/Charte-InterCERT-FR-v2.8a.pdf]])| |~|~|//Ne pas divulguer, information restreinte uniquement aux récipiendaires//|>|//Les émetteurs peuvent utiliser TLP:RED lorsque l'information ne doit pas être partagée à d'autres parties que les récipiendaires, et dont la divulgation ou le mauvais usage implique des risques pour la vie privée, la réputation ou les opérations si elle est partagée en dehors des récipiendaires. Les récipiendaires ne peuvent pas partager les informations TLP:RED avec des parties en dehors de l'échange, de la réunion ou de la conversation spécifique dans laquelle elles ont été divulguées à l'origine. Dans le cadre d'une réunion, par exemple, les informations TLP:RED sont limitées aux personnes présentes à la réunion. Dans la plupart des cas, TLP:RED doit être échangé verbalement ou en personne//| |[img(100px,auto)[iCSIRT/TLP-Amber.png]]|Amber
Ambre|''CONFIDENTIEL''
informations réservées aux destinataires ayant le besoin d'en connaître|Lorsque la fuite d'information est suceptible
• d'entrainer des risques non négligeables pour l'entreprise
• de nuire de manière certaine à l'image de l'entreprise|Le partage doit se faire selon des procédures bien établies impliquant un accès restreint aux seules personnes ayant le besoin d'en connaître (//Need to know//)
En cas d'échange avec des membres externes, il doit faire l'objet d'un accord préalable de l'émetteur ou d'une autorité (ex. hiérarchique)| |~|~|>|>|Extrait de la Charte de l'InterCERT-FR, version 2.8 du 21/06/2018 ([[version PDF|https://www.cert.ssi.gouv.fr/uploads/Charte-InterCERT-FR-v2.8a.pdf]])| |~|~|//Divulgation limitée, information limitée aux organisations et aux parties prenantes des participants sur la base du besoin d'en connaître//|>|//Les émetteurs peuvent utiliser TLP:AMBER lorsque l'information requiert un partage pour son usage, mais dont la divulgation ou le mauvais usage implique des risques pour la vie privée, la réputation ou les opérations si elle est partagée en dehors des organisations impliquées. Les récipiendaires ne peuvent partager les informations TLP:AMBER qu'avec les membres de leur propre organisation et les clients qui doivent connaître l'information pour se protéger ou prévenir de dommages. Les émetteurs sont libres de spécifier des limites supplémentaires au partage : celles-ci doivent être respectées par les récipiendaires.//| |[img(100px,auto)[iCSIRT/TLP-Green.png]]|Green
Vert|RESTREINT
informations diffusables en interne, mais pas sur Internet|Lorsqu'il est utile de diffuser une information à un cercle de confiance prédéterminé|Lorsque les mesures nécessaires de protection de l'information contre un accès public sont prises| |~|~|>|>|Extrait de la Charte de l'InterCERT-FR, version 2.8 du 21/06/2018 ([[version PDF|https://www.cert.ssi.gouv.fr/uploads/Charte-InterCERT-FR-v2.8a.pdf]])| |~|~|//Divulgation limitée, information restreinte à la communauté//|>|//Les émetteurs peuvent utiliser TLP:GREEN lorsque l'information est utile pour la sensibilisation de toutes les organisations participantes ainsi que des pairs dans la communauté ou le secteur en général. Les récipiendaires peuvent partager des informations TLP:GREEN avec des pairs et des organisations partenaires dans leur secteur ou leur communauté, mais pas via des canaux accessibles au public. L'information dans cette catégorie peut circuler largement dans une communauté particulière. Les informations TLP: GREEN ne peuvent pas être diffusées en dehors de la communauté//| |[img(100px,auto)[iCSIRT/TLP-White.png]]|White
Blanc|LIBRE
informations diffusables, y compris sur Internet, dans la limite d'autres obligations courantes|L'information peut être diffusée dans le domaine public sans faire courir de risques à l'entreprise, ou avec un niveau de risque acceptable|Il n'y a pas de contraintes spécifiques quant à la diffusion ou l'utilisation de l'information| |~|~|>|>|Extrait de la Charte de l'InterCERT-FR, version 2.8 du 21/06/2018 ([[version PDF|https://www.cert.ssi.gouv.fr/uploads/Charte-InterCERT-FR-v2.8a.pdf]])| |~|~|//La divulgation de l'information n'est pas limitée//|>|//Les émetteurs peuvent utiliser TLP:WHITE lorsque les informations comportent un risque prévisible ou inexistant d'utilisation abusive, conformément aux règles et procédures applicables à la publication publique. Sous réserve des règles de droit d'auteur standard, les informations TLP:WHITE peuvent être distribuées sans restriction//| %/
|<<showtoc>> |
!SIM3 - Security Incident Management Maturity Model
[>img(300px,auto)[iCSIRT/OpenCSIRT_Foundation.png][http://opencsirt.org/]]''SIM3'' est un ''modèle de maturité'' des CSIRTs qui vise à évaluer sur des critères objectifs leur organisation qui a été défini par l'''[[OpenCSIRT Foundation|https://opencsirt.org/]]''.
__L'openCSIRT Foundation :__
* Est une association à but non lucratif, basée aux NL.
* A défini le modèle ''SIM3'', le maintient, en fait la promotion, et travaille sur ses évolutions.
__Historique :__
* ''SIM3'' a commencé à être utilisé par la TF-CSIRT en Europe à la fin des années 2000, puis par la [[Nippon CSIRT Association|https://www.nca.gr.jp/en/]] (Japon).
* Au milieu des années 2010, l'ENISA (Europe), le [[GFCE|https://thegfce.org/initiatives/csirt-maturity-initiative/]] (Monde), l'interCERT France, le FIRST (Monde) et différentes initiatives visant au développements de CSIRTs ont choisi d'utiliser le ''modèle SIM3''.
* ''SIM3'' est un modèle gratuit et téléchargeable sous la forme d'un fichier PDF →https://opencsirt.org/csirt-maturity/sim3-and-references/
* ''SIM3'' est aussi disponible sous la forme d'un outil ''d'auto-évaluation en ligne'' → https://sim3-check.opencsirt.org/
** Cet outil très pratique permet de conserver l'évaluation en cours grace à un URL réutilisable.
* ''SIM3 version 2.0 a été publiée début mars 2023.'' Les évolutions entre la version 1.0 et la version 2.0 sont synthétisées +++[ici]>
|>|>| //1 nouveau paramètre (O-6) et 11 changements d'intitulés// |
|!Pamatètres |!Version 1.0 |!Version 2.0 |
| O-6 | Non défini | Public Media Policy |
| O-9 | Integration in Existing CSIRT Systems | Participation in CSIRT Systems |
|>|>|!|
| H-2 | Personnel Resilience | Staff Resilience |
| H-4 | Internal Training | Staff Development |
| H-5 | (External) Technical Training | Technical Training |
| H-6 | (External) Communication Training | Soft SKills Training |
|>|>|!|
| T-1 | IT Resources List | IT Assets and Configurations |
| T-3 | Consolidated E-mail System | Consolidated Messaging System(s) |
| T-5 | Resilient Phone | Resilient Voice Calls |
| T-6 | Resilient E-mail | Resilient Messaging |
|>|>|!|
| P-14 | Reporting Process | Governance Reporting Process |
| P-15 | Statistics Process | Constituency Reporting Process |
| P-17 | Peer-to-Peer Process | Peer Colloboration Process |
|>|>|!|
=== 
!Présentation SIM3
[>img(180px,auto)[iCSIRT/SIM3.jpg][https://opencsirt.org/csirt-maturity/sim3-and-references/]]Les principales caractéristiques de ''SIM3'' sont :
* 4 domaines
** ''Organization'', ''Human'', ''Tools'', ''Processes''.
* 45 paramètres répartis sur ces 4 domaines
** Organization : 11 -- Human : 7 -- Tools : 10 -- Processes : 17
* 5 niveaux de maturité pour chaque paramètre :
| !Niveau | !Prise en compte | !Rédigé | !Formalisé | !Validé | !Revu / Contrôlé |!Langage courant |
| 0 | NON | NON | NON | NON | NON |Non pris en compte |
| 1 | Implicite | NON | NON | NON | NON |Bouche à oreille, artisanal |
| 2 | Explicite | !OUI | NON | NON | NON |écrit |
| 3 | Explicite | !OUI | !OUI | !OUI | NON |Validé |
| ''4'' | Explicite | !OUI | !OUI | !OUI | !OUI |Audité, démarche qualité |
!Profils de maturité SIM3
Des profils de maturité ont été ajoutés par différents acteurs avec des niveaux d'exigences plus ou moins élevés. Ils sont classés ci-dessous par niveaux croissants d'exigences.
Afin de faciliter les comparaisons entre les exigences pour ces différents profils un tableau est disponible ci-dessous : 
|>|>|>|>|>|>| !SIM3 v2.0 |
|>|| !FIRST | !ENISA | !TF-CSIRT |>| !ENISA |
|!Identifiant|!Description| !Membership
Baseline | !     Basic      | !Certification | !Intermediate | ! Advanced  | |>| Niveau d'exigence| faible | simple | médian | élevé |très élevé | |>| Nombre de paramètres| 11 | 45 | 44 | 45 | 45 | |>| Nombre nécessaire de paramètres de niveau ''4''| //0// | //0// | //2// | //10// | //22// | |>| Total global| //29// | //97// | //109// | //138// | //157// | |>| //Moyenne (sur 4)//| //0,64// | //2,16// | //2,42// | //3,07// | //3,49// | |>| Visualisation sur le site [>img(100px,auto)[iCSIRT/OpenCSIRT_Foundation.png][http://opencsirt.org/]]| [[graphique|https://sim3-check.opencsirt.org/#/a/66C1o93t6-4FDFFafpy-veBVsiiM]] | [[graphique|https://sim3-check.opencsirt.org/#/a/aGzCGOPeK-9FL4RYgKk-adRxzYDKG]] | [[graphique|https://sim3-check.opencsirt.org/#/a/66CfIK5dt-5DCybjsrr-By3GohN4]] | [[graphique|https://sim3-check.opencsirt.org/#/a/bc7Nrriwb-abjfCB7rx-aJpIkBx31]] | [[graphique|https://sim3-check.opencsirt.org/#/a/bc7Ox7ePw-aGzOHVKGz-aMzjotM2u]] | |!Identifiant|!Description| !Membership
Baseline | !     Basic      | !Certification | !Intermediate | ! Advanced  | |>|>|>|>|>|>|!Organisation| |O-1 |!Mandate | 3 | 3 | 3 | ''4'' | ''4'' | |O-2 |!Constituency | 3 | 3 | 3 | ''4'' | ''4'' | |O-3 |!Authority | 3 | 3 | 3 | ''4'' | ''4'' | |O-4 |!Responsibility | 3 | 3 | 3 | ''4'' | ''4'' | |O-5 |!Service Description | 3 | 3 | ''4'' | ''4'' | ''4'' | |O-6 |!Public Media Policy | ! | 2 | ! | 3 | ''4'' | |O-7 |!Service Level Description | ! | 3 | 3 | ''4'' | ''4'' | |O-8 |!Incident Classification | ! | 2 | 1 | 3 | 3 | |O-9 |!Participation in CSIRT Systems | ! | 3 | 3 | ''4'' | ''4'' | |O-10 |!Organisational Framework | 3 | 3 | 3 | 3 | 3 | |O-11 |!Security Policy | ! | 2 | 2 | 3 | ''4'' | |>|//Total//| //18// | //30// | //28// | //40// | //42// | |!Identifiant|!Description| !Membership
Baseline | !     Basic      | !Certification | !Intermediate | ! Advanced  | |>|>|>|>|>|>|!Human| |H-1 |!Code of Conduct/Practice/Ethics | 2 | 2 | 3 | 3 | 3 | |H-2 |!Staff Resilience | 2 | 2 | 3 | 3 | ''4'' | |H-3 |!Skillset Description | ! | 2 | 2 | 2 | 3 | |H-4 |!Staff Development | ! | 2 | 2 | 3 | ''4'' | |H-5 |!Technical Training | ! | 1 | 3 | 2 | 3 | |H-6 |!Soft SKills Training | ! | 1 | 2 | 2 | 3 | |H-7 |!External Networking | 2 | 2 | 3 | 3 | 3 | |>|//Total//| //6// | //12// | //18// | //18// | //23// | |!Identifiant|!Description| !Membership
Baseline | !     Basic      | !Certification | !Intermediate | ! Advanced  | |>|>|>|>|>|>|!Tools| |T-1 |!IT Assets and Configurations | ! | 1 | 1 | 2 | 3 | |T-2 |!Information Sources List | ! | 2 | 2 | 3 | ''4'' | |T-3 |!Consolidated Messaging System(s) | ! | 1 | 3 | 2 | 3 | |T-4 |!Incident Tracking System | ! | 2 | 3 | 3 | 3 | |T-5 |!Resilient Voice Calls | ! | 2 | 2 | 3 | 3 | |T-6 |!Resilient Messaging | ! | 2 | 2 | 3 | 3 | |T-7 |!Resilient Internet Access | ! | 2 | 2 | 3 | 3 | |T-8 |!Incident Prevention Toolset | ! | 2 | 1 | 2 | 3 | |T-9 |!Incident Detection Toolset | ! | 2 | 1 | 3 | 3 | |T-10 |!Incident Resolution Toolset | ! | 2 | 2 | 3 | 3 | |>|//Total//| //0// | //18// | //19// | //27// | //31// | |!Identifiant|!Description| !Membership
Baseline | !     Basic      | !Certification | !Intermediate | ! Advanced  | |>|>|>|>|>|>|!Processes| |P-1 |!Escalation to Governance Level | 3 | 3 | 3 | ''4'' | ''4'' | |P-2 |!Escalation to Press Function | ! | 2 | 3 | 3 | 3 | |P-3 |!Escalation to Legal Function | ! | 2 | 3 | 3 | 3 | |P-4 |!Incident Prevention Process | ! | 2 | 2 | 3 | ''4'' | |P-5 |!Incident Detection Process | ! | 2 | 2 | 3 | ''4'' | |P-6 |!Incident Resolution Process | ! | 2 | 2 | 3 | ''4'' | |P-7 |!Specific Incident Processes | ! | 2 | 3 | 3 | ''4'' | |P-8 |!Audit/Feedback Process | ! | 3 | ''4'' | ''4'' | ''4'' | |P-9 |!Emergency Reachability Process | ! | 2 | 3 | 3 | 3 | |P-10 |!Best Practice Internet Presence | ! | 2 | 2 | 3 | 3 | |P-11 |!Secure Information Handling Process | 2 | 2 | 3 | 3 | 3 | |P-12 |!Information Sources Process | ! | 2 | 2 | 3 | ''4'' | |P-13|!Outreach Process | ! | 2 | 3 | 3 | ''4'' | |P-14 |!Governance Reporting Process | ! | 3 | 2 | ''4'' | ''4'' | |P-15 |!Constituency Reporting Process | ! | 2 | 3 | 3 | 3 | |P-16 |!Meeting Process | ! | 2 | 2 | 2 | 3 | |P-17|!Peer Colloboration Process | ! | 2 | 2 | 3 | ''4'' | |>|//Total//| //5// | //37// | //44// | //53// | //61// | |>|>|>|>|>|>|!| |>|Total global| //29// | //97// | //109// | //138// | //157// | |>|Moyenne (sur 4) | //0,64// | //2,16// | //2,42// | //3,07// | //3,49// | |>|>|>|>|>|>|!| !Acteurs SIM3 Outre les membres de l'OpenCSIRT Foundation, ''SIM3'' s'appuie sur 2 types d'acteurs : # Les ''auditeurs'' (//SIM3 Certified Auditors//) qui le deviennent après une formation de 3 jours et un examen. ** Ils doivent respecter une charte, effectuer au moins un audit SIM3 par an, fournir un retour d'expérience, et participer à l'évolution de SIM3. ** La liste des auditeurs est disponible sur le site de l'OpenCSIRT Foundation → https://opencsirt.org/csirt-maturity/auditors/ ** En moyenne 2 formations certifiantes sont organisées par an en anglais, une en français et une en japonais. Elles durent 3 jours. # Les ''formateurs'' (//SIM3 Certified Trainers//) qui sont des auditeurs qui suivent un cursus dédié ** Il y a actuellement 6 formateurs certifiés : 4 en Europe (DE, FR, NL, PL) et 2 au Japon. !SIM3 et l'ENISA * L'ENISA a retenu ''SIM3'' comme modèle de maturité pour le ''CSIRTs Network'' dès sa création et a défini 3 profils pour les CSIRTs nationaux et gouvernementaux. * L'ENISA a lancé un projet pour étendre ''SIM3'' aux aspects de gestion de crise. L'OpenCSIRT Foundation et plusieurs auditeurs ''SIM3'' ont participé à la constitution de ce document qui devrait être publié vers le milieu de l'année 2023. !SIM3 en français * [>img(100px,auto)[iCSIRT/NolimitSecu.png]] La traduction de SIM3 en français est en cours de réalisation et devrait être disponible durant l'été 2023. * //NoLimitSecu//, podcast en français, traite de ''SIM3'' dans son numéro 401 → https://www.nolimitsecu.fr/sim3/ !Liens SIM3 |!Source |!Description |!Langue |!Lien | |OpenCSIRT Foundation |Référentiel SIM3 |Anglais |https://opencsirt.org/csirt-maturity/sim3-and-references/ | |OpenCSIRT Foundation |Outil d'auto-évaluation SIM3 |Anglais |https://sim3-check.opencsirt.org/ | |ENISA |Outil d'auto-évaluation SIM3 v1 |Anglais |https://www.enisa.europa.eu/topics/incident-response/csirt-capabilities/csirt-maturity/csirt-survey | |ENISA |Outil d'auto-évaluation SIM3 v2 |Anglais |https://www.enisa.europa.eu/topics/incident-response/csirt-capabilities/csirt-maturity/sim3-v2i | |ENISA |Présentation 'ENISA Maturity Evaluation Methodology for CSIRTs' v2 |Anglais |https://www.enisa.europa.eu/publications/study-on-csirt-maturity-evaluation-process | |ENISA |Document 'ENISA Maturity Evaluation Methodology for CSIRTs' v2 |Anglais |https://www.enisa.europa.eu/publications/study-on-csirt-maturity-evaluation-process/@@download/fullReport | |ENISA |Présentation 'Maturity Reference for CSIRTs -- Executive Summary' v1 |Anglais |https://www.enisa.europa.eu/publications/maturity-reference-for-csirts-2013-executive-summary | |ENISA |Document 'Maturity Reference for CSIRTs -- Executive Summary' v1 |Anglais |https://www.enisa.europa.eu/publications/maturity-reference-for-csirts-2013-executive-summary/@@download/fullReport | |NoLimitSecu |Podcast 'SIM3' avec Marc-Frédéric Gomez et Olivier Caleff |Français |https://www.nolimitsecu.fr/sim3/ |
<<tabs Formations 'Formations TRANSITS' 'TRANSITS' [[Formations TRANSITS]] 'Formations SIM3' 'SIM3' [[Formations SIM3]] 'Formations en 2023 et 2024' 'Dates' [[Prochaines Formations]]>>
!TRANSITS-I et TRANSITS-II
||!TRANSITS-I |!TRANSITS-II |
|!Durée|2,5 jours|2,5 jours |
|!Certification|Oui, TRANSITS-I |Oui, TRANSITS-II |
|!Modules|6 : Organisationnel, Opérationnel, Technique, Réglementaire, Communication sécurisée, Exercice.
+++[Détails »]> <<tiddler [[T1FR-Contenu]]>> === |4 : forensique matériels, systèmes, réseaux, et communication dans la gestion d'incidents | |!Participants|Toute personne commençant à travailler dans un CSIRT ou dans un SOC ou souhaitant compléter son expérience|Tous les acteurs d'un CSIRT ou d'un SOC souhaitant approfondir ses connaissances et se perfectionner| |!Historique|Existe depuis 2001 |Existe depuis 2011| |!Personnes formées|Plusieurs centaines de formation, sur les 5 continents, plusieurs milliers de personnes formées |Plusieurs dizaines de sessions, sur les 5 continents, plusieurs centaines de personnes formées | |!Sessions en français|2 sessions par an en France |Aucune prévue à court terme | |!Sessions en anglais|2 sessions par an en Europe, d'autres ailleurs|Aucune avant septembre 2024 | |>|>| Ces 2 formations peuvent être délivrées en français ou en anglais, voire en d'autres langues (allemand, espagnol, japonais, néerlandais...) |
!Auto-Evaluation SIM3 et Auditeur SIM3[>img(auto,100px)[iCSIRT/SIM3.jpg]]
Il existe 2 formations concernant SIM3.
# Une ''formation non certifiante en 1 jour''
** Cette formation donne aux participants les bases pour réussir l'auto-évaluation SIM3 de son CSIRT ou réaliser des évaluations d'autres CSIRTs.
** Après avoir présenté les principes de SIM3, elle se focalise sur une dizaine des principaux paramètres et se termine avec un exercice de mise en oeuvre.
# Une ''formation certifiante en 3 jours'' pour devenir ''Auditeur SIM3''
** Cette formation détaille précisément tous les paramètres SIM3.
** Elle permet aux participants d'acquérir la bonne compréhension de chaque paramètre SIM3.
** Elle sert de préparation pour le passage de l'examen de certification
** A l'issue de cette formation, les participants ayant réussi leur exame de certification pourront réaliser des audits et des évaluations SIM3, dans le cadre d'un parcours encadré.
<<tiddler [[S3FRNC]]>>
<<tiddler [[S3FRNC]]>>
<<tiddler [[S3FRNC]]>>
|<<showtoc>> |
Le formulaire d'inscription pour la session de ''décembre 2023'' est disponible [[ici|S3FR1-Inscription-NC]].
!1 - Participants et pré-requis
<<tiddler [[S3FR1-Cibles]]>>
!2 - Contenu de la formation 
<<tiddler [[S3FR1-Contenu]]>>
!3 - Moyens pédagogiques
<<tiddler [[S3FR1-Moyens]]>>
!4 - Différences avec les formation SIM3 en 1 jour et en 3 jours
<<tiddler [[S3FR1-vs-S3FR3]]>>
!5 - Conditions pratiques
<<tiddler [[S3FR1-Conditions-N4]]>>
!6 - Présentation des formateurs
<<tiddler [[S3FR1-Formateurs]]>>
!7 - Contact
<<tiddler [[S3FR1-Contact]]>>
!8 - Inscription
<<tiddler [[S3FR1-Inscription-NC]]>>
<<tiddler .ReplaceTiddlerTitle with: [[Formation SIM3-1 - Décembre 2023]]>>
<<tiddler [[S3FRN4]]>>
Date : le ''vendredi 21 avril 2023 de 9h à 17h''. La formation ''SIM3-1 en français'' se déroulera ''uniquement en présentiel'' au Campus Cyber.
|<<showtoc>> |
!1 - Participants et pré-requis
<<tiddler [[S3FR1-Cibles]]>>
!2 - Contenu de la formation 
<<tiddler [[S3FR1-Contenu]]>>
!3 - Moyens pédagogiques
<<tiddler [[S3FR1-Moyens]]>>
!4 - Différences avec les formation SIM3 en 1 jour et en 3 jours
<<tiddler [[S3FR1-vs-S3FR3]]>>
!5 - Conditions pratiques
<<tiddler [[S3FR1-Conditions-N4]]>>
!6 - Présentation des formateurs
<<tiddler [[S3FR1-Formateurs]]>>
!7 - Contact
<<tiddler [[S3FR1-Contact]]>>
!8 - Inscription
<<tiddler [[S3FR1-Inscription-N4]]>>
<<tiddler .ReplaceTiddlerTitle with: [[Formation SIM3-1 - Avril 2023]]>>
La formation SIM3-1 s'adresse :
* aux personnels des équipes d'intervention et de traitement des incidents de sécurité informatique de CSIRT/CERT et de SOC
* aux responsables sécurité et RSSI
Les pré-requis pour les participants sont :
* Faire partie de l'InterCERT France, la TF-CSIRT ou le FIRST ou avoir l'intention de rejoindre un tel réseau de confiance
* Avoir un rôle opérationnel dans une équipe de type CSIRT/CERT ou SOC ou //a minima// avoir une expérience dans le domaine
* Respecter la confidentialité des échanges : toute la formation est ''TLP-AMBER''
* Connaître le principe du ''Traffic Light Protocol'' (//TLP//)
''Si l'une des conditions ci-dessus n'est pas respectée, un entretien préliminaire de 30 minutes pourra être organisé afin de valider la demande d'inscription à la formation.''
Les 5 parties de la formation SIM3-1 en 1 jour sont les suivantes :
''1 - Présentation SIM3''
* Notion de maturité et principes des modèles 
* Modèle de maturité SIM3, historique de SIM3
* Les échelles de valeurs et niveaux de maturité
''2 - Détails SIM3''
* Domaines, paramètres, niveaux
* Paramètres organisationnels
* Paramètres humains
* Paramètres outillage
* Paramètres de processus
''3 - études de cas''
* Analyses concrêtes de certains paramètres
''4 - Auto-évaluation SIM3 et erreurs à éviter''
* Démarche d'auto-évaluation
* Outils d'auto-évaluation de l'OpenCSIRT et de l'ENISA
* Erreurs à éviter
''5 - Démarche globale SIM3''
* Profils FIRST, TF-CSIRT, ENISA/CSIRTs Network
* Cas d'utilisation de SIM3 (InterCERT-France, NCA, TF-CSIRT, FIRST, projets)
@@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
* Séance de formation présentiel
* Pédagogie basée sur des présentations et des ateliers en groupe
* La formation de 1 journée est donnée en français
* Les supports de la formation SIM3-1 sont distribués à l'avance sous forme électrique (fichiers PDF) et à télécharger par les participants.
* ''Tous les supports de formation SIM3-1 (slides, documents annexes) sont exclusivement rédigés en anglais''.
* ''Aucun support de formation SIM3-1 (slides, documents annexes) ne sera rédigé en français''.
Les différences avec la formation SIM3 sur 3 jours sont les suivantes :
| !Formation SIM3 | !En __1__ jour | !En __3__ jours |
|Possibilité de passer l'examen de certification ''SIM3 Certified Auditor'' | ''NON'' | ''OUI'' |
|Analyse des paramètres SIM3 | ''8'' paramètres | ''Tous'' les paramètres |
|Ateliers de groupes | ''1 à 2'' | ''4 à 6'' |
|Durée des ateliers | ''15 à 30'' minutes | ''30 à 60'' minutes |
* Minimum de 10 participants, et maximum de 16 participants
** Si nécessaire un entretien individuel d'un maximum de 30 minutes sera organisé pour valider la demande d'inscription d'un participant.
* Montant de la formation de 1 journée :
** Membre InterCERT FRANCE : ''500 €uros HT / 600 €uros TTC par participant''.
** Autres : ''800 €uros HT / 960 €uros TTC par participant''.
* Horaires
** ''9h00 à 17h00'' avec 2 pauses par demie-journée et une pause déjeuner
@@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
Pour réserver une place à cette formation : télécharger le formulaire d'inscription, le (faire) remplir et le renvoyer à l'adresse de contact.
* Formulaire au format PDF : https://csirt.fr/SIM3/202304-SIM3-1-Inscription.pdf
* Formulaire au format DOCX : https://csirt.fr/SIM3/202304-SIM3-1-Inscription.docx 
Vous pouvez télécharger le bulletin d'inscription en différents formats :
|@@color:#000091;<html><i class="fa fa-file-lines fa-2x" aria-hidden="true"></i></html>@@| → [[Format ODT|S3NCdocs/202312-SIM3-1-Inscription.odt]] ← |
|@@color:#000091;<html><i class="fa fa-file-word fa-2x" aria-hidden="true"></i></html>@@| → [[Format DOCX|S3NCdocs/202312-SIM3-1-Inscription.docx]] ← |
|@@color:#000091;<html><i class="fa fa-file-pdf fa-2x" aria-hidden="true"></i></html>@@| → [[Format PDF|S3NCdocs/202312-SIM3-1-Inscription.pdf]] ← |
|@@color:#000091;<html><i class="fa fa-file-zipper fa-2x" aria-hidden="true"></i></html>@@| → [[Paquet ZIP contenant|S3NCdocs/202312-SIM3-1-Inscription.zip]] ←
→ [[les 3 formats (ODT, DOCX, PDF)|S3NCdocs/202312-SIM3-1-Inscription.zip]] ← | <<tiddler .ReplaceTiddlerTitle with: [[Inscription Formation SIM3]]>>
<<tiddler [[CV Olivier Caleff]]>>
<<tiddler [[CV Marc-Frédéric Gomez]]>>
!!Olivier CALEFF
<<<
[>img(150px,auto)[i/OlivierCaleff.jpg]]Olivier CALEFF travaille dans le domaine de la sécurité informatique depuis le début des années 90, et traite plus spécifiquement des problèmatiques de veille et de traitement des incidents de sécurité depuis la fin des années 90. Il est maintenant spécialisé dans le domaine de la cyber-résilience.
Il anime des sessions de formation SIM3 en anglais depuis 2015 et en français depuis 2020 avec plus de 300 personnes formées.
!!Résumé de carrière
* En 1986, il débute au sein de la société ''Dassault électronique'' comme ingénieur réseau.
* En 1992, il et l'un des co-fondateurs de la société de services ''APOGEE Communications''+++^*[»] [img(300px,auto)[i/APOGEE-Communications.png]] ===, et il y lance l'activité sécurité en 1994.
* En 1997, il participe au lancement de l'activité de Veille Sécurité ''APOGEE SecWatch'' et de réponse aux incidents.
* Après le rachat de la société par le groupe COLT puis par le groupe DEVOTEAM, l'activité devient le ''CERT DEVOTEAM'' et rejoint l'''InterCERT-FR''+++^*[»] Voir https://www.cert.ssi.gouv.fr/csirt/intercert-fr/ maintenant https://www.intercert-france.fr/ ===.
* Il intervient auprès de clients français pour la mise en oeuvre d'équipes CSIRT de réponse aux incidents de sécurité et de veille.
* En 2013, il rejoint l'''ANSSI''+++^*[»] Voir https://www.ssi.gouv.fr/ === en tant que responsable des relations internationales du ''CERT-FR''+++^*[»] Voir https://cert.ssi.gouv.fr/ ===.
* En 2018, il rejoint le groupe ''SANOFI''+++^*[»] Voir https://www.sanofi.com/ === comme responsable groupe "Cyber Résilience" au sein de l'équipe Cyber Sécurité et intervient notamment sur l'organisation d'exercices cyber, de gestion d'incidents et de gestion de crise.
* Depuis 2022, Olivier Caleff est responsable ''"Cyber Résilience et Gestion de Crises"'' et associé au sein de la société ''[[ERIUM|https://www.ERIUM.fr/]]''+++^*[»] Voir https://www.ERIUM.fr/ === .

Il est membre actif de plusieurs communautés de CSIRTs (//Liaison// à l'''InterCERT France'', //Associates// à la ''TF-CSIRT'', //Liaison// et au Conseil d'Administration du ''FIRST''... ), est formateur ''TRANSITS'', et formateur et auditeur ''SIM3''.
Plus d'informations sont disponibles sur son profil ''LinkedIN''+++^*[»] Voir https://www.linkedin.com/in/caleff/ ===.
!Compléments
Plus de détails sont disponibles sur le cursus et les activités d'Olivier CALEFF. Elles couvrent :
* Les activités liées aux formations : TRANSITS, SIM3, en Mastère Spécialisé Cyber Sécurité...
* Les activités liées aux communautés de CSIRTs et associations : FIRST, TF-CSIRT, InterCERT France, OpenCSIRT Foundation...
* Les activités liées aux communautés de CISO : CESIN, ECSO...
* Les activités liées à la cyber sécurité en Europe : ENISA, Commission Européenne...
* Autres activités : évaluateur Technique COFRAC, Chapitre français de la Cloud Security Alliance...
* Certifications en (Cyber) Sécurité
+++[Plus de détails »]> <<tiddler [[CV Olivier Caleff - Détails]]>> === 
<<<
!!Formations SIM3
* En septembre 2018, suivi de la formation SIM3 puis passage avec succès de l'examen pour devenir ''SIM3 Certified Auditor''.
* En juin 2019 et en juin 2022, il co-anime des demies jourénes de formations sur SIM3 en marge des conférences annuelles du FIRST (respectivement, à Edimbourg et à Dublin).
* En juillet 2022, co-animation d'une session de formation SIM3 de 3 jours en anglais (Dublin, Irlande)
* En septembre 2022, animation d'une session de formation SIM3 de 3 jours en français (Paris, France)
* ''En avril 2023, co-animation d'une session de formation SIM3 de 1 jour en français (Puteaux, France)''
!!Formations TRANSITS
* En 2010, suivi de la formation ''TRANSITS-I''+++^*[»] Voir http://www.geant.org/Services/Trust_identity_and_security/Pages/TRANSITS-I.aspx ===.
* En 2014, suivi de la formation ''Train the Trainer'' afin de devenir formateur TRANSITS.
* En 2015, il commence à délivrer des formations ''TRANSITS-I''+++^*[»] Voir https://stage.tf-csirt.org/transits/transits-events/transits-i/ === en anglais notamment pour l'''AfricaCERT''+++^*[»] Voir https://www.africacert.org/ ===, et rédige une nouvelle version du module "Opérationnel".
* Entre 2018 et 2022, il est l'un des deux ''Head Trainer''+++^*[»] Voir https://opencsirt.org/our-projects/transits-head-trainer/ === avec ''Don Stikvoort''+++^*[»] Voir https://www.first.org/hof/inductees#don-stikvoort === pour les formations ''TRANSITS-I''+++^*[»] Voir https://www.geant.org/Services/Trust_identity_and_security/Pages/TRANSITS-I.aspx === et ''TRANSITS-II''+++^*[»] Voir https://www.geant.org/Services/Trust_identity_and_security/Pages/TRANSITS_II.aspx === dans le cadre de l'''OpenCSIRT Foundation''+++^*[»] Voir https://opencsirt.org/ ===.
* A ce titre, il enseigne tous les modules ''TRANSITS-I''+++^*[»] Voir https://tf-csirt.org/transits/transits-events/transits-i/ ===, ainsi que les modules "Forensique" et "Communication" de ''TRANSITS-II''+++^*[»] Voir https://tf-csirt.org/transits/transits-events/transits-ii/ ===.
TRANSITS est le sigle de "TRAining of Network Security Incident Teams Staff"+++^*[»] Voir https://tf-csirt.org/transits/ === 
* ''À la mi-2023, il a animé presque une vingtaine de sessions TRANSITS-I (plus de 14 TRANSITS-I en français et en anglais, 4 TRANSITS-II enanglais)''
!!TF-CSIRT / Trusted Introducer
TF-CSIRT / Trusted Introducer : +++^*[détails »] Task Force of Computer Security and Incident Response Teams - https://tf-csirt.org
Trusted Introducer https://www.trusted-introducer.org/ === * En 2007, il rejoint la TF-CSIRT en tant que représentant du CERT-DEVOTEAM. * En 2013, il rejoint la TF-CSIRT en tant que représentant du CERTA (renommé en CERT-FR en 2014). * Depuis 2018, il participe à la TF-CSIRT //ad personam// comme ''Associate''+++^*[»] Voir https://www.trusted-introducer.org/processes/associates.html ===. * Il a participé au groupe de travail "''Future of TF-CSIRT Future of TF-CSIRT Working Group''". * ''Depuis 2021, il réalise des audit SIM3 pour la certification d'équipes CSIRT.'' !!FIRST FIRST : +++^*[détails »] Forum of Incident Response Security Teams - https://first.org/ === * En 2013, il rejoint le FIRST en tant que représentant du CERTA, qui sera renommé en CERT-FR en 2014. * Il y réalise 8 évaluations ''Site Visits'' de CSIRT candidats à l'entrée au FIRST. * Depuis 2018, il participe au FIRST //ad personam// comme ''FIRST Liaison''+++^*[»] Voir https://www.trusted-introducer.org/processes/associates.html ===. * Jusqu'en 2022, il est co-animateur des groupes de travail (SIG) : ''Membership Committee''+++^*[»] Voir https://www.first.org/about/organization/committees ===, ''Malware Analysis''+++^*[»] Voir https://www.first.org/global/sigs/malware/ ===. * Il est co-animateur du groupe de travail (SIG) ''Cyber Exercises''. * Il participe activement à deux autres groupes de travail : ''CSIRT Framework Development''+++^*[»] Voir https://www.first.org/global/sigs/csirt/ === qui a notamment publié le nouveau ''Computer Security Incident Response Team (CSIRT) Services Framework''+++^*[»] Voir https://www.first.org/standards/frameworks/csirts/csirt_services_framework_v2.1 === et ''Traffic Light protocol (TLP)''+++^*[»] Voir https://www.first.org/global/sigs/tlp/ ===. * ''Il a été élu en Juin 2022 au Conseil d'Administration du FIRST (//FIRST Board of Directors//) pour un mandat de 2 ans.'' !!InterCERT France InterCERT France : +++^*[détails »] https://www.intercert-france.fr/ === * En 2005, il rejoint l'interCERT-FR encore embryonnaire en tant que co-représentant APOGEE Communications, puis du CERT DEVOTEAM * Entre 2013 et 2018, il co-anime l'InterCERT-FR en tant que représentant du CERTA puis du CERT-FR, participe à sa structuration et organise les premières élections. * ''En 2022, il rejoint l'InterCERT France en tant que //Membre Liaison//.'' !!OpenCSIRT Foundation OpenCSIRT Foundation : +++^*[détails »] https://opencsirt.org/ === * Depuis 2014, il travaille avec le modèle de maturité ''SIM3''+++^*[»] Voir https://opencsirt.org/csirt-maturity/sim3-and-references/ ===. * Depuis 2018, il est certifié ''SIM3 Auditor''+++^*[»] Voir http://opencsirt.org/auditors-france/ ===. * Depuis 2022, il est certifié ''SIM3 Trainer''+++^*[»] Voir https://opencsirt.org/csirt-maturity/sim3-certified-auditor-training/ ===. * ''Il participe au groupe de travail sur l'évolution et l'extension de SIM3.'' !!ENISA ENISA : +++^*[détails »] European Network and Information Security Agency - https://enisa.europa.eu/ === * Depuis 2014, il participe à la rédaction de documents de l'ENISA notamment sur l'''évaluation de la maturité des CSIRT basé sur SIM3''+++^*[»] Voir https://www.enisa.europa.eu/publications/study-on-csirt-maturity-evaluation-process === et ''Good Practice Guide on Training Methodologies''+++^*[»] Voir https://www.enisa.europa.eu/publications/good-practice-guide-on-training-methodologies ===. * Depuis 2019, il participe //ad personam// à 3 groupes de travail de type ''Informal Expert Group'' : "''Informal Expert Group on Technical Trainings''"+++^*[»] Voir https://www.enisa.europa.eu/news/enisa-news/technical-trainings-expert-group ===, "''Informal Expert Group on EU Member States Incident Response Development''"+++^*[»] Voir https://www.enisa.europa.eu/topics/csirts-in-europe/csirt-capabilities/informal-expert-group-on-eu-ms-incident-response-development === et "''Informal Expert Group on CSIRT and SOC Set Up''"+++^*[»] Voir https://www.enisa.europa.eu/publications/how-to-set-up-csirt-and-soc ===. * //Depuis 2021, il participe //ad personam// à un groupe de travail comme ''Subject Matter Expert''// !!Commission Européenne / INEA/HADAE INEA : +++^*[détails »] Innovation and Networks Executive Agency - https://ec.europa.eu/inea/en/ === * Entre 2018 et 2020, il a participé //ad personam// comme expert évaluateur aux dépouillements d'appels d'offres ''CEF Telecom Call - Cybersecurity'' de la Commission Européenne : ** CEF-TC-2018-3+++^*[détails »] Voir https://ec.europa.eu/inea/en/connecting-europe-facility/cef-telecom/apply-funding/2018-cyber-security ===, CEF-TC-2019-2+++^*[détails »] Voir https://ec.europa.eu/inea/en/connecting-europe-facility/cef-telecom/apply-funding/2019-cybersecurity === et CEF-TC-2020-2+++^*[détails »] Voir https://ec.europa.eu/inea/en/connecting-europe-facility/cef-telecom/apply-funding/2020-cybersecurity ===. * !!Cloud Security Alliance Cloud Security Alliance : +++^*[détails »] Voir https://cloudsecurityalliance.org/ === * En 2010, il a co-fondé et anime le ''Chapitre français de la Cloud Security Alliance'' +++^*[détails »] Voir http://cloudsecurityalliance.fr ===. !!CESIN CESIN : +++^*[détails »] Club des Experts de la Sécurité de l'Information et du Numérique - https://cesin.fr/ === * Depuis 2018, il est membre du ''CESIN''. * Il co-anime un groupe de travail sur les aspects de gestion de crise cyber, ainsi que le LAB CESIN "''Vulnérabilités et Incidents''". * ''Il publie une veille quotidienne en anglais sur la cyber sécurité depuis septembre 2021.'' !!ECSO ECSO : +++^*[détails »] European Cyber Security Organisation - https://ecs-org.eu/ === * Depuis 2022, il est membre de ''ECSO''. * Il est l'un des "ECSO Ambassadors" pour la France et en * ''Il publie sa veille quotidienne en anglais sur la cyber sécurité -- déjà diffusée au CESIN -- depuis février 2022.'' !!Enseignement * Il a commencé à enseigner en 1985 au CNAM, puis dans différentes écoles d'ingénieurs sur des spécialités réseaux puis sécurité (ISEP, EPITA, ECE...). * Il a enseigné plusieurs matières dans les 3 Mastères Spécialisés de l'''ISEP'' (Cloud, Cyber-Sécurité, Management et Protection des Données à Caractère Personnel) * Il n'enseigne plus aujourd'hui que dans les Mastères Spécialisés de l'''EGE'' (MRSIC/MaCYB) pour les promotions en France et au Maroc. !!Certifications * ''Certifié TRANSITS-I'' (2010). * Certifié ISO 27005 Risk Management (2010). * Certifié EBIOS Risk Management (2010). * ''Formateur Certifié TRANSITS-I (2015)''. * Évaluateur Technique COFRAC (2018). * ''Auditeur Certifié SIM3 (2018)''. * ''Formateur Certifié SIM3 (2022).''' @@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
!!Marc-Frédéric GOMEZ
<<<
[>img(150px,auto)[i/MarcFredericGomez.jpg]]Marc-Frédéric GOMEZ est responsable du CERT du Groupe Crédit Agricole (CERT-AG).
Il a conduit la mise en place de la ''Certification SIM3'' par la TF-CSIRT du CERT du Groupe Crédit Agricole.
Depuis 2019, il est ''SIM3 Certified Auditor''. Il est membre ''Liaison'' au FIRST à titre individuel en sus de ces fonctions officiels ainsi que contributeur au podcast francophone ''NoLimitSecu''.
Il enseigne à l'''Ecole de Guerre Economique'' la veille sur la menace au sein de l'entreprise.
Plus d'informations sont disponibles sur son profil ''LinkedIN''+++^*[»] Voir https://www.linkedin.com/in/marcfredericgomez/ ===.
<<<
@@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
Pour tout renseignement, l'adresse de contact est ''SIM3 @ CSIRT . FR''
@@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
!Téléchargement des supports
Les supports en sont pas encore disponibles au téléchargement.
Un email parviendra aux participants sont l'inscription aura été validée quelques jours avant la formation
Si nécessaire, un fichier complémentaire sera mis à disposition à léissue de la session de formation.
@@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
<<tiddler [[T1FRNB]]>>
^^Mise à jour le 2 février 2023^^
Cette formation est ANNULÉE et reportée du 3 au 5 octobre 2023
|<<showtoc>> |
Le formulaire d'inscription pour la session de ''novembre 2023'' est disponible [[ici|T1FR-Inscription-T1FR-NB]].
!Personnes concernées par cette formation 
<<tiddler [[T1FR-Cibles]]>>
!Contenu de la formation 
<<tiddler [[T1FR-Contenu]]>>
!Pré-requis pour les participants
<<tiddler [[T1FR-Pré-requis]]>>
!Moyens pédagogiques
<<tiddler [[T1FR-Moyens]]>>
/% !Spécificités des sessions en distanciel
<<tiddler [[T1FR-Distanciel]]>> %/
!Conditions pratiques de la session de novembre 2023
<<tiddler [[T1FR-Session T1FR-NB]]>>
!Programme de la formation en novembre 2023
<<tiddler [[T1FR-Programme T1FR-NB]]>>
!Présentation du formateur
<<tiddler [[T1FR-Formateur T1FR]]>>
!Liens
<<tiddler [[T1FR-Liens]]>>
!Contact
<<tiddler [[T1FR-Contact]]>>
!Inscription
<<tiddler [[T1FR-Inscription-T1FR-NB]]>>
<<tiddler .ReplaceTiddlerTitle with: [[Formation TRANSITS-I - Novembre 2023]]>>
|{{ss2col{<<showtoc>> }}} |
!Personnes concernées par cette formation 
<<tiddler [[T1FR-Cibles]]>>
!Contenu de la formation 
<<tiddler [[T1FR-Contenu]]>>
!Pré-requis pour les participants
<<tiddler [[T1FR-Pré-requis]]>>
!Moyens pédagogiques
<<tiddler [[T1FR-Moyens]]>>
/% !Spécificités des sessions en distanciel
<<tiddler [[T1FR-Distanciel]]>> %/
!Conditions pratiques de la session de novembre 2023
<<tiddler [[T1FR-Session T1FR-NA]]>>
!Programme de la formation en novembre 2023
<<tiddler [[T1FR-Programme T1FR-NA]]>>
!Présentation du formateur
<<tiddler [[T1FR-Formateur T1FR]]>>
!Liens
<<tiddler [[T1FR-Liens]]>>
!Contact
<<tiddler [[T1FR-Contact]]>>
<<tiddler .ReplaceTiddlerTitle with: [[Formation TRANSITS-I - Octobre 2023]]>>
La formation se déroulera ''en anglais'' du mardi 31 octobre au matin au 2 novembre après le déjeuner.
Lieu : Hotel Josef, Prague, Tchéquie → https://www.hoteljosef.com/
__Détails/Inscription :__ https://events.geant.org/event/1423/ 
<<tiddler .ReplaceTiddlerTitle with: [[Formation TRANSITS-I - Octobre/Novembre 2023 (en anglais)]]>>
<<tiddler [[T1FRLA]]>>
La formation TRANSITS-I s'adresse :
* aux personnels des équipes d'intervention et de traitement des incidents de sécurité informatique de CSIRT/CERT et de SOC de toute origine : services, commerciale, gouvernementale, recherche, éducation ou industrielle.
* aux responsables sécurité et RSSI
@@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
Les 6 composantes de la formation TRANSITS-I sont les suivantes
''1 - EXC (//Exercise//)''
** Le ''Module Exercice'' est constitué d'un scénario d'incident que les participants doivent traiter de façon commune, en jouant différents róles.
** Il permet aux participants de partager leurs expériences et de comprer leurs modes d'action
** //A noter : en distanciel, cet exercice est modifié pour traiter les aspects de communication et de travail en équipe.//
''2 - ORG (//Organisational//)''
** Le ''Module Organisationnel'' décrit des modèles d'organisation des CSIRT et comment ils s'intègrent dans la structure informatique ou de management d'une entreprise ou organisme.
** Il aborde aussi les aspects de planification de l'équipe, la définition de la couverture de son périmètre, la détermination des services à offrir, la dotation en personnel, la communication avec les acteurs internes ou externes, et son financement.
''3 - OPS (//Operational//)''
** Le ''Module Opérationnel'' décrit le processus de traitement des incidents, depuis les signalements et le triage, jusqu'à la clóture et le RETEX, en passant par les phases d'investigation et d'analyse.
''4 - TEC (//Technical//)''
** Le ''Module Technique'' passe en revue quelques familles d'attaquants et leurs motivations, puis certaines des techniques utilisées affectant les couches réseaux ou système.
** Il permet d'entamer une réflexion sur les actions à mettre en oeuvre pour la détection, la protection et le traitement des incidents de sécurité qui en résultent.
''5 - LEG (//Legal//)''
** Le ''Module Juridique'' couvre des domaines de la législation européenne ou de certains pays susceptibles d'affecter les CSIRT ou les SOC dans leur travail quotidien, et que leurs membres doivent connaítre, y compris la protection des données, la surveillance des équipements connectés, la collecte de preuves et la collaboration avec les entités en charge d'appliquer les lois. 
** Il comprend plusieurs études de cas.
''6 - SCM (//Secure Communications//)''
** Depuis Février 2021, ce module remaplace le module ''KSP (//Key Signing Party//)'' qui comprennait plusieurs parties : une première théorique sur les principes de PGP/OpenGPG et une seconde pratique en présentiel de signature croisée de clés entre les participants.
** Le module ''Communications Sécurisées'' est étendu aux communications entre membres d'une méme équipe, ou avec des tiers : des pairs, des victimes ou des autorités.

Tous ces modules incluent des exercices pratiques ou des sessions de discussion.
La création de la formation ''TRANSITS-I'' en 2001 répondait aux besoins des membres de la communauté des CSIRTs européens réunis au sein de la TF-CSIRT. Depuis, elle a été donnée sur les 5 continents plusieurs centaines de fois et son programme a été revu plusieurs fois afin de s'adapter au contexte évolutif de la cybersécurité et du traitment d'incident , au sens large du terme.
@@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
!!Recommandé
* Avoir un róle opérationnel dans une équipe de type CSIRT/CERT ou SOC ou //a minima// avoir une expérience dans le domaine
!!Impératif
* [>img(60px,auto)[TLP-AMBER|iCSIRT/TLP-Amber.png]]Avoir une expérience avérée en matière de sécurité informatique et de réseaux TCP/IP
* Connaítre le principe du ''Traffic Light Protocol'' (//TLP//)
* Respecter la confidentialité des échanges, sachant que toute la formation est ''TLP-AMBER''
* Faire partie d'un réseau de confiance comme l'InterCERT-FR, la TF-CSIRT ou le FIRST ou avoir l'intention de rejoindre un tel réseau de confiance
''Si l'une des conditions impératives n'est pas respectée, un entretien préliminaire de 30 minutes pourra étre organisé afin de valider la demande d'inscription à la formation.''
@@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
* Séance de formation en distanciel, via le logiciel Zoom ou par téléphone
* Pédagogie basée sur des présentations, et des exercices de groupe
* La formation de 5 demi-journées est donnée en français
* Les supports de la formation TRANSITS-I sont distribués à l'avance sous forme électrique (fichiers PDF) et à télécharger par les participants.
* Tous les supports de formations TRANSITS-I sont exclusivement rédigés en anglais. Ils ne seront donc pas communiqués en français.
@@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
Les différences avec les sessions organisées en présentiel sont les suivantes :
* La formation est délivrée ''en français'' et non en anglais
* La formation étant en mode distanciel et non présentiel, ''les frais d'hébergement et de repas le soir sont exclus''
* Le module ''EXC'' (//Exercise//) n'est pas réalisé
* Le module ''SCM'' (//Secure Communications//) remplace le module ''KSP'' depuis février 2021.
* La formation est délivrée par ''un seul intervenant'', Olivier CALEFF.
@@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
* Minimum de 6 participants, et maximum de 16 participants
** Si nécessaire un entretien individuel d'un maximum de 30 minutes sera organisé pour valider la demande d'inscription d'un participant.
* Montant de la formation de 5 demi-journées :
** Membre InterCERT-FRANCE : ''700 €uros HT / 840 €uros TTC par participant''.
** Autres : ''1.00 €uros HT / 1.200 €uros TTC par participant''.
** Horaires
** ''9h00 à 12h30'' avec deux pauses de 15 minutes
* Sessions organisées en présentiel
** Les slides seront distribuées à l'avance
* Contacts
** Pour toute demande d'inscription, ou réception de la fiche d'inscription utisez l'adresse email suivante :
[img[i/emailTransits.jpg]] @@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
* Minimum de 6 participants, et maximum de 16 participants
** Si nécessaire un entretien individuel d'un maximum de 30 minutes sera organisé pour valider la demande d'inscription d'un participant.
* Montant de la formation de 5 demi-journées :
** Membre InterCERT-FRANCE : ''700 €uros HT / 840 €uros TTC par participant''.
** Autres : ''1.00 €uros HT / 1.200 €uros TTC par participant''.
* Horaires
** ''9h00 à 12h30'' avec deux pauses de 15 minutes
* Sessions organisées en présentiel
** Les slides seront distribuées à l'avance
* Contacts
** Pour toute demande d'inscription, ou réception de la fiche d'inscription utisez l'adresse email suivante :
[img[i/emailTransits.jpg]] @@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
|!|>|!Mardi 5 novembre 2023 ||>|!Mercredi 6 novembre 2023 ||>|!Jeudi 7 novembre 2023 |!|
|~|09h00 à 10h15 |Module SCM |!|09h00 à 10h15 |Module OPS |!|9h00 à 10h15 |Module TEC |~|
|~|10h15 à 10h30 |^^Pause^^ |~|10h15 à 10h30 |^^Pause^^ |~|10h15 à 10h30 |^^Pause^^ |~|
|~|10h30 à 11h45 |Module SCM |~|10h30 à 11h45 |Module OPS |~|10h30 à 11h45 |Module LEG |~|
|~|11h45 à 12h00 |^^Pause^^ |~|11h45 à 12h00 |^^Pause^^ |~|11h45 à 12h00 |^^Pause^^ |~|
|~|12h00 à 12h30 |Module ORG |~|12h00 à 12h30 |Module OPS |~|12h00 à 12h30 |Module LEG |~|
|~|>|!||>|!||>|!|~|
|~|14h00 à 15h15 |Module ORG |!|14h00 à 15h15 |Module OPS |!|>|!|~|
|~|15h15 à 15h30 |^^Pause^^ |~|15h15 à 15h30 |^^Pause^^ |~|>|!|~|
|~|15h30 à 16h45 |Module ORG |~|15h30 à 16h45 |Module TEC |~|>|!|~|
|~|16h45 à 17h00 |^^Pause^^ |~|16h45 à 17h00 |^^Pause^^ |~|>|!|~|
|~|17h00 à 17h30 |Module ORG |~|17h00 à 17h30 |Module TEC |~|>|!|~|
|~|>|!|~|>|!|~|>|!|~|
@@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
|SESSION REPORTEE A NOVEMBRE 2023|c
|!|>|!Mardi 3 octobre 2023 ||>|!Mercredi 4 octobre 2023 ||>|!Jeudi 5 octobre 2023 |!|
|~|09h00 à 10h15 |Module SCM |!|09h00 à 10h15 |Module OPS |!|9h00 à 10h15 |Module TEC |~|
|~|10h15 à 10h30 |^^Pause^^ |~|10h15 à 10h30 |^^Pause^^ |~|10h15 à 10h30 |^^Pause^^ |~|
|~|10h30 à 11h45 |Module SCM |~|10h30 à 11h45 |Module OPS |~|10h30 à 11h45 |Module LEG |~|
|~|11h45 à 12h00 |^^Pause^^ |~|11h45 à 12h00 |^^Pause^^ |~|11h45 à 12h00 |^^Pause^^ |~|
|~|12h00 à 12h30 |Module ORG |~|12h00 à 12h30 |Module OPS |~|12h00 à 12h30 |Module LEG |~|
|~|>|!||>|!||>|!|~|
|~|14h00 à 15h15 |Module ORG |!|14h00 à 15h15 |Module OPS |!|>|!|~|
|~|15h15 à 15h30 |^^Pause^^ |~|15h15 à 15h30 |^^Pause^^ |~|>|!|~|
|~|15h30 à 16h45 |Module ORG |~|15h30 à 16h45 |Module TEC |~|>|!|~|
|~|16h45 à 17h00 |^^Pause^^ |~|16h45 à 17h00 |^^Pause^^ |~|>|!|~|
|~|17h00 à 17h30 |Module ORG |~|17h00 à 17h30 |Module TEC |~|>|!|~|
|~|>|!|~|>|!|~|>|!|~|
@@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
<<tiddler [[T1FR-Formateur Olivier Caleff]]>>
<<tiddler [[CV Olivier Caleff]]>>
/% ================================================================
|<<showtoc>> |
[>img(150px,auto)[i/OlivierCaleff.jpg]]Olivier CALEFF travaille dans le domaine de la sécurité informatique depuis le début des années 90, et traite plus spécifiquement des problèmatiques de veille et de traitement des incidents de sécurité depuis la fin des années 90. Il est maintenant spécialisé dans le domaine de la cyber-résilience.
Il anime des sessions de formation TRANSITS-I en anglais depuis 2015 et en français depuis 2020 avec plus de 300 personnes formées.
!Résumé de carrière
* En 1986, il débute au sein de la société ''Dassault Electronique'' comme ingénieur réseau.
* En 1992, il et l'un des co-fondateurs de la société de services ''APOGEE Communications''+++^*[»] [img(300px,auto)[i/APOGEE-Communications.png]] ===, et il y lance l'activité sécurité en 1994.
* En 1997, il participe au lancement de l'activité de Veille Sécurité ''APOGEE SecWatch'' et de réponse aux incidents.
* Après le rachat de la société par le groupe COLT puis par le groupe DEVOTEAM, l'activité devient le ''CERT DEVOTEAM'' et rejoint l'''InterCERT-FR''+++^*[»] Voir https://www.cert.ssi.gouv.fr/csirt/intercert-fr/ ===.
* Il intervient auprès de clients français pour la mise en œuvre d'équipes CSIRT de réponse aux incidents de sécurité et de veille.
* En 2013, il rejoint l'''ANSSI''+++^*[»] Voir https://www.ssi.gouv.fr/ === en tant que responsable des relations internationales du ''CERT-FR''+++^*[»] Voir https://cert.ssi.gouv.fr/ ===.
* En 2018, il rejoint le groupe ''SANOFI''+++^*[»] Voir https://www.sanofi.com/ === comme responsable groupe "Cyber Résilience" au sein de l'équipe Cyber Sécurité et intervient notamment sur l'organisation d'exercices cyber, de gestion d'incidents et de gestion de crise.
* ''Depuis 2022, Olivier Caleff est responsable "Cyber Résilience et Gestion de Crises" au sein de la société'' ''ERIUM''+++^*[»] Voir https://www.ERIUM.fr/ === .
Plus d'information sont disponibles sur ''LinkedIN''+++^*[»] Voir https://www.linkedin.com/in/caleff/ ===.
!Formations TRANSITS
+++^*[»] TRAining of Network Security Incident Teams Staff - https://tf-csirt.org/transits/ ===.
* En 2010, il suit la formation ''TRANSITS-I''+++^*[»] Voir http://www.geant.org/Services/Trust_identity_and_security/Pages/TRANSITS-I.aspx ===, puis en 2014 la formation ''Train the Trainer'' afin de devenir formateur TRANSITS.
* En 2015, il commence à délivrer des formations ''TRANSITS-I''+++^*[»] Voir https://stage.tf-csirt.org/transits/transits-events/transits-i/ === en anglais notamment pour l'''AfricaCERT''+++^*[»] Voir https://www.africacert.org/ ===, et rédige une nouvelle version du module "Opérationnel".
* À partir de 2018 et pendant 5 ans, il est l'un des deux ''Head Trainer''+++^*[»] Voir https://opencsirt.org/our-projects/transits-head-trainer/ === avec ''Don Stikvoort''+++^*[»] Voir https://www.first.org/hof/inductees#don-stikvoort === pour les formations ''TRANSITS-I''+++^*[»] Voir https://www.geant.org/Services/Trust_identity_and_security/Pages/TRANSITS-I.aspx === et ''TRANSITS-II''+++^*[»] Voir https://www.geant.org/Services/Trust_identity_and_security/Pages/TRANSITS_II.aspx === dans le cadre de l'''OpenCSIRT Foundation''+++^*[»] Voir https://opencsirt.org/ ===.
* A ce titre, il enseigne tous les modules ''TRANSITS-I''+++^*[»] Voir https://tf-csirt.org/transits/transits-events/transits-i/ ===, ainsi que les modules "Forensique" et "Communication" de ''TRANSITS-II''+++^*[»] Voir https://tf-csirt.org/transits/transits-events/transits-ii/ ===.
!TF-CSIRT / Trusted Introducer
TF-CSIRT / Trusted Introducer : +++^*[détails »] Task Force of Computer Security and Incident Response Teams - https://tf-csirt.org
Trusted Introducer https://www.trusted-introducer.org/ === * En 2007, il rejoint la TF-CSIRT en tant que représentant du CERT-DEVOTEAM. * En 2013, il rejoint la TF-CSIRT en tant que représentant du CERTA (renommé en CERT-FR en 2014). * Depuis 2018, il participe à la TF-CSIRT //ad personam// comme ''Associate''+++^*[»] Voir https://www.trusted-introducer.org/processes/associates.html ===. * Il a participé au groupe de travail "''Future of TF-CSIRT Future of TF-CSIRT Working Group''". !FIRST FIRST : +++^*[détails »] Forum of Incident Response Security Teams - https://first.org/ === * En 2013, il rejoint le FIRST en tant que représentant du CERTA, qui sera renommé en CERT-FR en 2014. * Il y réalise 8 évaluations ''Site Visits'' de CSIRT candidats à l'entrée au FIRST. * Depuis 2018, il participe au FIRST //ad personam// comme ''FIRST Liaison''+++^*[»] Voir https://www.trusted-introducer.org/processes/associates.html ===. * Jusqu'en 2022, il est co-animateur des groupes de travail (SIG) : ''Membership Committee''+++^*[»] Voir https://www.first.org/about/organization/committees ===, ''Malware Analysis''+++^*[»] Voir https://www.first.org/global/sigs/malware/ ===. * Il est co-animateur du groupe de travail (SIG) ''Cyber Exercises''. * Il participe activement à deux autres groupes de travail : ''CSIRT Framework Development''+++^*[»] Voir https://www.first.org/global/sigs/csirt/ === qui a notamment publié le nouveau ''Computer Security Incident Response Team (CSIRT) Services Framework''+++^*[»] Voir https://www.first.org/standards/frameworks/csirts/csirt_services_framework_v2.1 === et ''Traffic Light protocol (TLP)''+++^*[»] Voir https://www.first.org/global/sigs/tlp/ ===. * Il a été élu en Juin 2022 au Conseil d'Administration du FIRST (''FIRST Board of Directors'') pour un mandat de 2 ans. !OpenCSIRT Foundation OpenCSIRT Foundation : +++^*[détails »] https://opencsirt.org/ === * Depuis 2014, il travaille avec le modèle de maturité ''SIM3''+++^*[»] Voir https://opencsirt.org/csirt-maturity/sim3-and-references/ ===. * Depuis 2018, il est certifié ''SIM3 Auditor''+++^*[»] Voir http://opencsirt.org/auditors-france/ ===. * Depuis 2018, il délivre des formations ''SIM3'' en anglais et en français. * Depuis 2022, il est certifié ''SIM3 Trainer''+++^*[»] Voir https://opencsirt.org/csirt-maturity/sim3-certified-auditor-training/ ===. * Il participe au groupe de travail sur l'évolution de ''SIM3''. !ENISA ENISA : +++^*[détails »] European Network and Information Security Agency - https://enisa.europa.eu/ === * Depuis 2014, il participe à la rédaction de documents de l'ENISA notamment sur l'''évaluation de la maturité des CSIRT basé sur SIM3''+++^*[»] Voir https://www.enisa.europa.eu/publications/study-on-csirt-maturity-evaluation-process === et ''Good Practice Guide on Training Methodologies''+++^*[»] Voir https://www.enisa.europa.eu/publications/good-practice-guide-on-training-methodologies ===. * Depuis 2019, il participe //ad personam// à 3 groupes de travail de type ''Informal Expert Group'' : "''Informal Expert Group on Technical Trainings''"+++^*[»] Voir https://www.enisa.europa.eu/news/enisa-news/technical-trainings-expert-group ===, "''Informal Expert Group on EU Member States Incident Response Development''"+++^*[»] Voir https://www.enisa.europa.eu/topics/csirts-in-europe/csirt-capabilities/informal-expert-group-on-eu-ms-incident-response-development === et "''Informal Expert Group on CSIRT and SOC Set Up''"+++^*[»] Voir https://www.enisa.europa.eu/publications/how-to-set-up-csirt-and-soc ===. * Depuis 2021, il participe //ad personam// à un groupe de travail comme ''Subject Matter Expert'' !Commission Européenne / INEA INEA : +++^*[détails »] Innovation and Networks Executive Agency - https://ec.europa.eu/inea/en/ === * Depuis 2018, il participe //ad personam// comme expert évaluateur aux dépouillements d'appels d'offres ''CEF Telecom Call - Cybersecurity'' de la Commission Européenne : ** CEF-TC-2018-3+++^*[détails »] Voir https://ec.europa.eu/inea/en/connecting-europe-facility/cef-telecom/apply-funding/2018-cyber-security ===, CEF-TC-2019-2+++^*[»] Voir https://ec.europa.eu/inea/en/connecting-europe-facility/cef-telecom/apply-funding/2019-cybersecurity === et CEF-TC-2020-2+++^*[»] Voir https://ec.europa.eu/inea/en/connecting-europe-facility/cef-telecom/apply-funding/2020-cybersecurity ===. !Cloud Security Alliance Cloud Security Alliance : +++^*[détails »] Voir https://cloudsecurityalliance.org/ === * En 2010, il a co-fondé et anime le ''Chapitre français de la Cloud Security Alliance''+++^*[»] Voir http://cloudsecurityalliance.fr ===. !CESIN CESIN : +++^*[détails »] Club des Experts de la Sécurité de l'Information et du Numérique - https://cesin.fr/ === * Depuis 2018, il est membre du ''CESIN''. * Il co-anime un groupe de travail sur les aspects de gestion de crise cyber, ainsi que le LAB CESIN "''Vulnérabilités et Incidents''". * Il publie une veille quotidienne en anglais sur la cyber sécurité depuis septembre 2021 !ECSO ECSO : +++^*[détails »] European Cyber Security Organisation - https://ecs-org.eu/ === * Depuis 2022, il est membre de ''ECSO''. * Il est l'un des "ECSO Ambassadors" pour la France. * Il est //Sub-Chairs/coordinators of sectoral activities// pour le groupe de travail //WG3 Cyber Resilience of Economy, Infrastructures and Services// et en charge de l'initiative dédiée à la ''CTI'' (//Cyber Threat Intelligence//). * Il republie la veille quotidienne en anglais sur la cyber sécurité déjà diffusée au CESIN depuis février 2022. !!Enseignement * Il enseigne depuis 1985 d'abord au CNAM, puis dans différentes écoles d'ingénieurs sur des spécialités réseaux puis sécurité (ISEP, EPITA, ECE...). * Il n'enseigne plus aujourd'hui que dans 2 Mastères Spécialisés de l'''ISEP'' (Cyber-Sécurité) et de l'''EGE'' (MRSIC/MaCYB). !Certifications * TRANSITS-I (2010) * ISO 27005 Risk Management (2010) * EBIOS Risk Management (2010) * ''TRANSITS-I Certified Trainer (2015)'' * COFRAC Technical Evaluator (2018) * ''OpenCSIRT Foundation Certified SIM3 Auditor (2018)'' * ''OpenCSIRT Foundation Certified SIM3 Trainer (2022)'' @@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@ ================================================================ %/
Liens
* la formation ''TRANSITS-I'' sur le site de GéANT → http://www.geant.org/Services/Trust_identity_and_security/Pages/TRANSITS-I.aspx
* la formation ''TRANSITS-I'' → sur le site de la TF-CSIRT → https://stage.tf-csirt.org/transits/transits-events/transits-i/
* la formation ''TRANSITS-II'' → sur le site de la TF-CSIRT → https://tf-csirt.org/transits/transits-events/transits-ii/
@@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
Pour tout renseignement, l'adresse de contact est ''TRANSITS @ CSIRT . FR''
@@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
Vous pouvez télécharger le bulletin d'inscription en différents formats :

|@@color:#000091;<html><i class="fa fa-file-lines fa-2x" aria-hidden="true"></i></html>@@| → [[Format ODT|T1NBdocs/202311-TRANSITS-I-Inscription.odt]] ← |
|@@color:#000091;<html><i class="fa fa-file-word fa-2x" aria-hidden="true"></i></html>@@| → [[Format DOCX|T1NBdocs/202311-TRANSITS-I-Inscription.docx]] ← |
|@@color:#000091;<html><i class="fa fa-file-pdf fa-2x" aria-hidden="true"></i></html>@@| → [[Format PDF|T1NBdocs/202311-TRANSITS-I-Inscription.pdf]] ← |
|@@color:#000091;<html><i class="fa fa-file-zipper fa-2x" aria-hidden="true"></i></html>@@| → [[Paquet ZIP contenant|T1NBdocs/202311-TRANSITS-I-Inscription.zip]] ←
→ [[les 3 formats (ODT, DOCX, PDF)|T1NBdocs/202311-TRANSITS-I-Inscription.zip]] ← | @@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@ <<tiddler .ReplaceTiddlerTitle with: [[Inscription Formation TRANSITS-I]]>>
!Téléchargement des supports
Vous pouvez :
* Soit télécharger tous les supports au format PDF sous la forme d'un ficher ZIP : ''[[TRANSITS-I-Slides-L5.zip|T1L5/TRANSITS-I-Slides-L5.zip]]'' de 25,5 Mo
* Soit télécharger tous les supports au format PDF les uns après les autres :
** Introduction : Fichier ''[[0-TRANSITS-1-Welcome-L5.pdf|T1L5/0-TRANSITS-1-Welcome-L5.pdf]]'' de 0,9 Mo
** Module SCM : Fichier ''[[1-TRANSITS-I-SCM-L5.pdf|T1L5/1-TRANSITS-I-SCM-L5.pdf]]'' de 2,4 Mo
** Module ORG : Fichier ''[[2-TRANSITS-I-ORG-L5.pdf|T1L5/2-TRANSITS-I-ORG-L5.pdf]]'' de 13,8 Mo
** Module OPS : Fichier ''[[3-TRANSITS-I-OPS-L5.pdf|T1L5/3-TRANSITS-I-OPS-L5.pdf]]'' de 2,2 Mo
** Module TEC : Fichier ''[[4-TRANSITS-I-TEC-L5.pdf|T1L5/4-TRANSITS-I-TEC-L5.pdf]]'' de 4,5 Mo
** Module LEG : Fichier ''[[5-TRANSITS-I-LEG-L5.pdf|T1L5/5-TRANSITS-I-LEG-L5.pdf]]'' de 4,8 Mo
** Bibliographie (2018) : Fichier ''[[6-TRANSITS-I-BIBLIO-2018.pdf|T1L5/6-TRANSITS-I-BIBLIO-2018.pdf]]'' de 0,3 Mo
* Ce fichier sera remis à jour avec les liens mentionnés durant la session de formation.
@@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
!Téléchargement des supports
Les supports ne sont pas encore disponibles au téléchargement
@@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
|ssTabl2|k
|!Prochaines Formations CSIRT : ((TRANSITS(^// TRAining of Network Security Incident Teams Staff//))) et ((SIM3(^//Security Incident Management Maturity Model//))) |!Agenda des événements de la ((Communauté des CSIRTs(^• France : InterCERT France
• Europe : TF-CSIRT
• Monde : FIRST, OCF / OpenCSIRT Foundation))) | |ssTabl99|k |<<tiddler [[Prochaines Formations]]>> |<<tiddler [[Evénements]]>> | <<tiddler .ReplaceTiddlerTitle with: [[Bienvenue sur le site CSIRT.FR]]>>
|>|!Septembre 2023 |
|[>img[iCC/se.png]]@@color:#E1000F;▬@@ __26 au 27 septembre 2023__
⇒ @@color:#000091;''70^^ème^^ réunion TF-CSIRT/Trusted Introducer''@@
→ Stockholm (SE)
Programme → https://tf-csirt.org/tf-csirt/meetings/70th/ | [img(50px,auto)[iCSIRT/Trusted_Introducer.jpg][https://www.trusted-introducer.org/]] | |>|| |[>img[iCC/gb-wls.png]]@@color:#E1000F;▬@@ __28 au 29 septembre 2023__
⇒ @@color:#000091;''FIRST Vulnerability Forecasting Technical Colloquium''@@
→ Cardiff (UK)
Programme → https://www.first.org/events/colloquia/cardiff2023/program
Détails/Inscription → https://www.first.org/events/colloquia/cardiff2023/ |[img(50px,auto)[iCSIRT/FIRST_ico.png]] | |>|| |>|!Octobre 2023 | |[>img[iCC/lv.png]]@@color:#E1000F;▬@@ __4 au 5 octobre 2023__
⇒ @@color:#000091;''CyberChess Conference''@@
→ Riga (LV) et en ligne
Détails/Inscription → https://cyberchess.lv/ |[img(50px,auto)[iCSIRT/CyberChessLV.png]] | |[>img[iCC/no.png]]@@color:#E1000F;▬@@ __17 au 19 octobre 2023__
⇒ @@color:#000091;''FIRST Cold Incident Response Technical Colloquium''@@
→ Oslo (NO)
Détails/Inscription → https://www.coldincidentresponse.no/ |[img(50px,auto)[iCSIRT/FIRST_ico.png]] | |>|| |>|!Novembre 2023 | |[>img[iCC/de.png]]@@color:#E1000F;▬@@ __6 au 8 novembre 2023__
⇒ @@color:#000091;''FIRST Cyber Threat Intelligence Symposium''@@
→ Berlin (DE)
Détails/Inscription → https://www.first.org/conference/berlin2023/|[img(50px,auto)[iCSIRT/FIRST_ico.png]] | |>|| |>|!Décembre 2023 | |[>img[iCC/fr.png]]@@color:#E1000F;▬@@ __14 décembre 2023__
⇒ @@color:#000091;''Journée de l'InterCERT France''@@
→ Puteaux (FR) -- sur invitation |[img(50px,auto)[iCSIRT/InterCERT_France.png]] | |>| | |>|!2024| |>|| |>|!Février/Mars 2024 | |[>img[iCC/es.png]]@@color:#E1000F;▬@@ __26 février au 1er mars 2024__
⇒ @@color:#000091;''1^^ère^^ Open Cyber Security Conference''@@
→ Tenerife (ES)[>img(50px,auto)[iCSIRT/FIRST_ico.png]][>img(50px,auto)[iCSIRT/Trusted_Introducer.jpg][https://www.trusted-introducer.org/]][>img(50px,auto)[iCSIRT/OCF.png][https://OpenCSIRT.org//]]
Détails → [[OCSC.info|https://www.ocsc.info/]], [[LinkedIn|https://www.linkedin.com/events/opencybersecurityconference-2027088065050288005120/]] +++[»] [img(500px,auto)[iCSIRT/OCSC_2024_ES.jpg]]=== |[img(50px,auto)[iCSIRT/OCSC+2024.jpg]] | |>|| |>|!Avril 2024 | |[>img[iCC/de.png]]@@color:#E1000F;▬@@ __15 au 17 avril 2024__
⇒ @@color:#000091;''FIRST Cyber Threat Intelligence Symposium''@@
→ Berlin (DE)
Détails/Inscription : à venir |[img(50px,auto)[iCSIRT/FIRST_ico.png]] | |>|| |>|!Juin 2024 | |[>img[iCC/jp.png]]@@color:#E1000F;▬@@ __9 au 14 juin 2024__
⇒ @@color:#000091;''36^^ème^^ conférence annuelle du FIRST''@@
→ Fukuoka (JP)
Détails/Inscription : début 2024 +++[»] [img(500px,auto)[iCSIRT/Fukuoka2024_logo.png]]
Comité de programme → https://www.first.org/conference/2024/pc === |[img(50px,auto)[iCSIRT/FIRST_ico.png]] | |>| | |>|!2025| |>|| |>|!Juin 2025 | |[>img[iCC/dk.png]]@@color:#E1000F;▬@@ __22 au 27 juin 2025__
⇒ @@color:#000091;''37^^ème^^ conférence annuelle du FIRST''@@
→ Copenhague (DK)
Détails/Inscription : début 2025|[img(50px,auto)[iCSIRT/FIRST_ico.png]] |
|>|>|!Octobre 2023 |
| @@color:#000091;<html><i class="fa fa-graduation-cap fa-3x" aria-hidden="true"></i></html>@@ |[>img[iCC/cz.png]]@@color:#E1000F;▬@@ __31 octobre au 2 novembre 2023__
⇒ @@color:#000091;Formation certifiante ''TRANSITS-I'' en __anglais__@@
→ 2,5 jours à Prague (CZ)
[[Détails/Inscription|T1CZNA]] ^^([[Ajout calendrier Outlook|https://outlook.office.com/calendar/deeplink/compose?startdt=2023-10-31T08%3A00%3A00Z&enddt=2023-11-02T13%3A00%3A00Z&subject=Formation%20TRANSITS%20I%20en%20anglais&body=Details%20sur%20https%3A%2F%2Fevents.geant.org%2Fevent%2F1423%2F&location=Prague%2C%20Tchequie]])^^ |[img(60px,auto)[iCSIRT/TRANSITS.jpg]] | |>|>|| |>|>|!Novembre 2023 | | @@color:#000091;<html><i class="fa fa-graduation-cap fa-3x" aria-hidden="true"></i></html>@@ |[>img[iCC/fr.png]]@@color:#E1000F;▬@@ __7 au 9 novembre 2023__
⇒ @@color:#000091;Formation certifiante ''TRANSITS-I'' en __''français''__@@
→ 2,5 jours au Campus Cyber, Puteaux (FR)
[[Détails/Inscription|T1FRNB]] ^^([[Ajout calendrier Outlook|https://outlook.office.com/calendar/deeplink/compose?startdt=2023-11-07T08%3A00%3A00Z&enddt=2023-11-09T12%3A00%3A00Z&subject=Formation%20TRANSITS%20I%20au%20Campus%20Cyber&body=Details%20sur%20https%3A%2F%2Fwww.csirt.fr%2Fgo%2FS3FRNC%2F&location=Campus%20Cyber%2C%205%2F7%20rue%20Bellini%2C%2092800%20Puteaux%2C%20France]])^^ |[img(60px,auto)[iCSIRT/TRANSITS.jpg]]
[img(60px,auto)[i/Logo_CSIRT-FR.jpg]]| |>|>|| |>|>|!Décembre 2023 | | @@color:#000091;<html><i class="fa fa-users fa-2x" aria-hidden="true"></i></html>@@ |[>img[iCC/fr.png]]@@color:#E1000F;▬@@ __13 décembre 2023__
⇒ @@color:#000091;Formation [[Autoévaluation SIM3|S3FRNC]] en __''français''__@@
→ 1 jour au Campus Cyber, Puteaux (FR)
→ [[Détails/Inscription|S3FRNC]] ^^([[Ajout calendrier Outlook|https://outlook.office.com/calendar/deeplink/compose?startdt=2023-12-13T08%3A00%3A00Z&enddt=2023-12-13T16%3A30%3A00Z&subject=Formation%20SIM%203%20au%20Campus%20Cyber&body=Details%20sur%20https%3A%2F%2Fwww.csirt.fr%2Fgo%2FT1FRNB%2F&location=Campus%20Cyber%2C%205%2F7%20rue%20Bellini%2C%2092800%20Puteaux%2C%20France]])^^ |[img(60px,auto)[iCSIRT/SIM3.jpg]]
[img(60px,auto)[i/Logo_CSIRT-FR.jpg]]| |>|>| | |>|>|!2024| |>|>|| |>|>|!Mars 2024 | | @@color:#000091;<html><i class="fa fa-graduation-cap fa-3x" aria-hidden="true"></i></html>@@ |[>img[iCC/pl.png]]@@color:#E1000F;▬@@ __13 au 15 mars 2024__
⇒ @@color:#000091;Formation certifiante ''Certified SIM3 Auditor'' en __anglais__@@
→ 3 jours (examen inclus) à Cracovie (PL)
Détails/Inscription : [[» OpenCSIRT|https://opencsirt.org/csirt-maturity/sim3-certified-auditor-training/]] |[img(60px,auto)[iCSIRT/SIM3.jpg]]
[img(60px,auto)[iCSIRT/OCF.png]]| |>|>|| |>|>|!Avril 2024 | | @@color:#000091;<html><i class="fa fa-graduation-cap fa-3x" aria-hidden="true"></i></html>@@ |[>img[iCC/nl.png]]__Courant avril 2024__
⇒ @@color:#000091;Formation certifiante ''TRANSITS-I'' en __anglais__@@
→ 2,5 jours aux Pays-Bas (NL)
Détails/Inscription : à venir |[img(60px,auto)[iCSIRT/TRANSITS.jpg]] | |>|>|| |>|>|!Avril/Mai 2024 | | @@color:#000091;<html><i class="fa fa-graduation-cap fa-3x" aria-hidden="true"></i></html>@@ |[>img[iCC/fr.png]]__Courant avril ou mai 2024__
⇒ @@color:#000091;Formation certifiante ''TRANSITS-I'' en __''français''__@@
→ 2,5 jours, en région parisienne (FR)
Détails/Inscription : à venir |[img(60px,auto)[iCSIRT/TRANSITS.jpg]]
[img(60px,auto)[i/Logo_CSIRT-FR.jpg]]| |>|>|| |>|>|!Mai/Juin 2024 | | @@color:#000091;<html><i class="fa fa-users fa-2x" aria-hidden="true"></i></html>@@ |[>img[iCC/fr.png]]__Courant mai ou juin 2024__
⇒ @@color:#000091;Formation ''Autoévaluation SIM3'' en __''français''__@@
1 jour en région parisienne (FR)
Détails/Inscription : à venir |[img(60px,auto)[iCSIRT/SIM3.jpg]]
[img(60px,auto)[i/Logo_CSIRT-FR.jpg]]|
* //15 au 17 novembre// : Formation //TRANSITS-I en anglais// à Prague (complet)
* //3 au 7 octobre 2022// : 4^^ème^^ Formation //TRANSITS-I en français//
* //18 au 22 octobre 2021// : 3^^ème^^ Formation //TRANSITS-I en français//
* //18 au 22 avril 2021// : 2^^ème^^ Formation //TRANSITS-I en français//
* //21 au 30 avril 2020// : 1^^ère^^ Formation //TRANSITS-I en français//
<<tabs APT "Règles de Nommage" "" [[Groupes Attaquants - Panorama]]>>
<<tabs APT "Noms par pays" "" [[Groupes Attaquants - Panorama - Pays]] "Noms par typologie" "" [[Groupes Attaquants - Panorama - Typologie]] "Êxemples de Conventions" "" [[Groupes Attaquants - Panorama - Règles]] "Références et Webographie" "" [[Groupes Attaquants - Panorama - Webographie]]>>
|sortable|k
|!Analystes |!CN
[img[iCC/cn.png]] |!CO
[img[iCC/co.png]] |!GE
[img[iCC/ge.png]] |!IN
[img[iCC/in.png]] |!IR
[img[iCC/ir.png]] |!KP
[img[iCC/kp.png]] |!KR
[img[iCC/kr.png]] |!LB
[img[iCC/lb.png]] |!NG
[img[iCC/ng.png]] |!PK
[img[iCC/pk.png]] |!PS
[img[iCC/ps.png]] |!RU
[img[iCC/ru.png]] |!TR
[img[iCC/tr.png]] |!US
[img[iCC/us.png]] |!SY
[img[iCC/sy.png]] |!VN
[img[iCC/vn.png]] |h |Checkpoint | Zebra | !✗ | ! | !✗ | Kitten | !✗ | ! | Cedar | !✗ | ! | !✗ | !✗ | ! | !✗ | !✗ | ! | |CrowdStrike | Panda | Ocelot | Lynx | Tiger | Kitten | Chollima | Crane | !✗ | ! | Leopard | !✗ | Bear | Wolf | !✗ | Hawk | Buffalo | |Kaspersky | Dragon | !✗ | ! | Elephant | Falcon | ? | !✗ | ! | !✗ | Falcon | Falcon | Duke | Falcon | !✗ | ! | ? | |Microsoft | Typhoon | !✗ | ! | ? | Sandstorm | Sleet | Hail | Rain | !✗ | ? | !✗ | Blizzard | Dust | !✗ | ! | Cyclone | |PaloAlto Unit 42 | Taurus | !✗ | ! | Gemini | Serpents | Pisces | !✗ | ! | !✗ | Draco | !✗ | Ursa | ? | !✗ | ! | ? | |PwC | Red | !✗ | Rose | Orange | Yellow | Black | !✗ | ! | Bronze | Green | Grey | Blue | Teal | !✗ | ! | Scarlet | |Secureworks | Bronze | !✗ | ! | Zinc | Cobalt | Nickel | Tungsten | !✗ | ! | Copper | Aluminum | Iron | ? | Platinum | !✗ | Tin |
| !Analystes | !Five
Eyes | !Pays
arabes | !Multiples | !Inconnu
Non catégorizé | !BEC | !eCrime
Financier | !Hacktivistes | !Ransom
ware | !Espionnage | !Temporaire | !Offensif
Privé | !Operations
Influence | !Dommages
Destruction | !URLs | |Checkpoint| !✗ | !✗ | !✗ | !✗ | !✗ | !✗ | !✗ | !✗ | !✗ | !✗ | !✗ | !✗ | !✗ | !✗ | |CrowdStrike| !✗ | !✗ | !✗ | !✗ | !✗ | Spider | Jackal | !✗ |Bat| !✗ | !✗ | !✗ | !✗ | !✗ | |Kaspersky| !✗ | Falcon | !✗ | !✗ | !✗ | !✗ | !✗ | !✗ | !✗ | !✗ | !✗ | !✗ | !✗ | !✗ | |Microsoft| !✗ | !✗ | !✗ | !✗ | !✗ | Tempest | !✗ | !✗ | !✗ | Storm | Tsunami | Flood | !✗ | !✗ | |PaloAlto Unit 42| !✗ | !✗ | !✗ | !✗ | Orion | Libra | Virgo | Scorpius | Virgo | CLU… | !✗ | !✗ | !✗ | [[url|https://unit42.paloaltonetworks.com/atoms/]] | |PwC| Magenta | Grey | Grey | Grey | !✗ |White| !✗ | !✗ | !✗ | !✗ | !✗ | !✗ | !✗ | !✗ | |Secureworks| !✗ | !✗ | !✗ | !✗ | !✗ |Gold| !✗ | !✗ | !✗ | !✗ | !✗ | !✗ | !✗ | [[url|https://www.secureworks.com/research/threat-profiles]] | |TrendMicro| !✗ | !✗ | !✗ | Void | !✗ | Water | Wind | !✗ | Earth | !✗ | !✗ | !✗ | Fire | !✗ |
|Quelques articles sur les conventions de nommage|c
|Palo Alto Networks|2023.05.15|[[It’s All in the Name: How Unit 42 Defines and Tracks Threat Adversaries|https://unit42.paloaltonetworks.com/from-activity-to-formal-naming/]]|
|Microsoft|2023.04.20|[[How Microsoft names threat actors|https://learn.microsoft.com/en-us/microsoft-365/security/intelligence/microsoft-threat-actor-naming]] ([[short|https://aka.ms/threatactors]])|
|Microsoft|2023.04.20|Actor Naming: [[json|https://github.com/microsoft/mstic/blob/master/PublicFeeds/ThreatActorNaming/MicrosoftMapping.json]], [[xlsx|https://github.com/microsoft/mstic/blob/master/PublicFeeds/ThreatActorNaming/MicrosoftMapping.json]]|
|Microsoft|2023.04.20|How Microsoft names threat actors: Microsoft shifts to a new threat actor naming taxonomy +++[»] https://www.microsoft.com/en-us/security/blog/2023/04/18/microsoft-shifts-to-a-new-threat-actor-naming-taxonomy/ === |
<<tabs APT_Web "Les meilleures sources" "" [[Groupes Attaquants - Panorama - Webographie - Best]] "Les autres sources" "" [[Groupes Attaquants - Panorama - Webographie - Autres]]>>
|>|!La MEULLEURE source consolidée |
|StrangerealIntel / BushidoToken |https://github.com/StrangerealIntel/EternalLiberty |
|>|!De bonnes sources de référence|
|Travail collaboratif |https://apt.threattracking.com +++[details »]> https://bit.ly/APTGroupSheet / https://docs.google.com/spreadsheets/d/e/2PACX-1vTheajUWzRhTK0XhSI3_RnYVtUJvl8mlX8HlThPyCJGK1g5SBecgS78O1oeTFQxDYS0oWlKTg2pNLyb/pubhtml 
[[xlsx|https://docs.google.com/spreadsheets/d/1H9_xaxQHpWaa4O_Son4Gx0YOIzlcBWMsdvePFX68EKU/pub?output=xlsx]], [[ods|https://docs.google.com/spreadsheets/d/1H9_xaxQHpWaa4O_Son4Gx0YOIzlcBWMsdvePFX68EKU/pub?output=ods]]
Contributeurs: Pasquale Stirparo: @pstirparo; David Bizeul: @davidbizeul; Brian Bell: No Twitter Account; Ziv Chang: @Gasgas4Ggyy; Joel Esler: @joelesler; Kristopher Bleich: @kc0iqx_bleich; Maite Moreno: @mmorenog; Monnappa K A: @monnappa22; J. Capmany: @theweeZ; Paul Hutchinson: @AllAboutAPT; Boris Ivanov: @BlackCaesar1973; Andre Gironda: @andregironda; Devon Ackerman: @aboutdfir; Carlos Fragoso: @cfragoso; Eyal Sela: @eyalsela; Florian Egloff: @egflo; Ohad Zaidenberg: @ohad_mz; Gary Warner: @GarWarner; Efi Pecani: @EfiPecani === | |ETDA +++[»] (//Electronic Transactions Development Agency//, Thailande === |https://apt.etda.or.th/cgi-bin/aptgroups.cgi
https://apt.etda.or.th/cgi-bin/listgroups.cgi | |Malpedia |https://malpedia.caad.fkie.fraunhofer.de/actors | |MISP Galaxy |https://github.com/MISP/misp-galaxy/blob/main/clusters/threat-actor.json | |MITRE ATT&CK Groups |https://attack.mitre.org/wiki/Groups
https://attack.mitre.org/groups/ |
|>|!Autres sources de référence |
|APTMAP|https://andreacristaldi.github.io/APTmap/ (Threat Actors profiles)|
|APTNotes - Github Repo|https://github.com/kbandla/APTnotes|
|APTNotes - Website|https://aptnotes.malwareconfig.com/|
|APT_CyberCriminal_Campagin_Collections|https://github.com/CyberMonitor/APT_CyberCriminal_Campagin_Collections|
|CERT-UA|https://cert.gov.ua/search/UAC- {{{Numéro attribué au Groupe d'Attaquants}}} |
|ClearSky Raw Threat Intel|https://docs.google.com/document/u/1/d/e/2PACX-1vR2TWm68bLidO3e2X0wTCqs0609vo5RXB85f6VL_Zm79wtTK59xADKh6MG0G7hSBZi8cPOiQVWAIie0/pub|
|CrowdCasts Monthly: You Have an Adversary Problem |http://www.slideshare.net/CrowdStrike/crowd-casts-monthly-you-have-an-adversary-problem|
|Crowdstrike|https://adversary.crowdstrike.com/en-US/ (Threat Actors profiles)|
|Cyber Campaigns|http://cybercampaigns.net/|
|Cyber Espionage Nation-State APT Attacks on the Rise|http://www.slideshare.net/Cyphort/cyber-espionage-nation-stateaptattacksontherise|
|Cyber Operations by CFR|https://www.cfr.org/interactive/cyber-operations|
|Dragos' Adversary Groups|https://dragos.com/adversaries.html|
|Dragos|https://www.dragos.com/threat-activity-groups/ (Threat Actors profiles)|
|FireEye Threat Actors|https://www.fireeye.com/current-threats/apt-groups.html|
|IBM X-Force|https://exchange.xforce.ibmcloud.com/search/hive (Threat Actors (Hive)) 
https://exchange.xforce.ibmcloud.com/search/ITG (Threat Actors (ITG))| |Kaspersky|https://apt.securelist.com/ (Threat Actors)| |Mandiant|https://www.mandiant.com/resources/insights/apt-groups (Well-known Threat Actors)
https://www.mandiant.fr/search?search=APT (APT)
https://www.mandiant.fr/search?search=UNC (UNC)| |Microsoft|https://learn.microsoft.com/en-us/microsoft-365/security/intelligence/microsoft-threat-actor-naming?view=o365-worldwide (Threat Actors + naming taxonomy)| |Palo Alto|https://unit42.paloaltonetworks.com/atoms/ (Atoms)
https://pan-unit42.github.io/playbook_viewer/?pb=evasive-serpens (Playbook)| |Securelist.com (Kaspersky)|https://securelist.com/| |Secureworks|https://www.secureworks.com/research/threat-profiles (Threat Actors profiles)| |Symantec Health Care Attacks |https://www.symantec.com/content/dam/symantec/docs/reports/istr-healthcare-2017-en.pdf| |Targeted Cyber Attacks Logbook (Kaspersky)|https://apt.securelist.com/| |Thales|https://cyberthreat.thalesgroup.com/attackers (Threat Actors profiles)|
<<tabs tAvis 'Avis Éditeurs IT' 'Éditeurs, Constructeurs … informatiques' 'Avis Editeurs - IT' 'Avis Éditeurs OT' 'Éditeurs, Constructeurs … OT/ICS/SCADA' 'Avis OT/ICS/SCADA' 'Agrégateurs de Vulnérabilités' 'Sites Aggrégateurs avec Valeur Ajoutée' 'Agrégateurs de Vulnérabilités' 'Gestion de Vulnérabilités' '' 'Gestion de Vulnérabilités'>>
@@bgcolor:#DDDDDD;color:#000091;▬@@@@bgcolor:#DDDDDD;color:#FFFFFF;▬@@@@bgcolor:#DDDDDD;color:#E1000F;▬@@ Article en cours de rédaction @@bgcolor:#DDDDDD;color:#000091;▬@@@@bgcolor:#DDDDDD;color:#FFFFFF;▬@@@@bgcolor:#DDDDDD;color:#E1000F;▬@@
|''Sources consolidées, connaissance personnelle''
Pour trier les lignes, sélectionnez le critère dans la ligne d'en-tête, puis de nouveau pour inverser la sélection|c |sortable|k |Source|Fréquence|Quand|Lien|RSS|Commentaires|h |!CISA KEV|6-Irrégulier|6-Irrégulier|[[url|https://www.cisa.gov/known-exploited-vulnerabilities-catalog]]
[[csv|https://www.cisa.gov/sites/default/files/csv/known_exploited_vulnerabilities.csv]] [[json|https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json]] | !✗ |… | |!EPSS|quotidien|quotidien|[[csv.gz|https://epss.cyentia.com/epss_scores-current.csv.gz]] | !✗ |… | |!KEV+CVSS+EPSS|quotidien|quotidien|[[csv|https://github.com/jgamblin/KEV_EPSS/blob/main/epss_kev_nvd.csv]] | !✗ |… |
|Sources consolidées, connaissance personnelle
Pour trier les lignes, sélectionnez le critère dans la ligne d'en-tête, puis de nouveau pour inverser la sélection|c |sortable|k |Source|Fréquence|Quand|Lien|Commentaires, exemples … |h |Adobe|2-Mensuel|2^^ème^^ Mardi| [[url|https://helpx.adobe.com/security.html]] |2-Patch Tuesday • +++[détails] Format : https://helpx.adobe.com/security/products/acrobat/apsb {{{YYYY-nn}}}.html === | |Fortinet|2-Mensuel|1^^ère^^ semaine| [[url|https://www.fortiguard.com/psirt]] |2-Patch Tuesday • +++[détails] Format : https://www.fortiguard.com/psirt-monthly-advisory/ {{{month-YYYY}}}-vulnerability-advisories
https://www.fortiguard.com/psirt/FG-IR- {{{YY-nnn}}}
▬▬▬▬
2023 [[01|https://www.fortiguard.com/psirt-monthly-advisory/january-2023-vulnerability-advisories]] [[02|https://www.fortiguard.com/psirt-monthly-advisory/february-2023-vulnerability-advisories]] [[03|https://www.fortiguard.com/psirt-monthly-advisory/march-2023-vulnerability-advisories]] … === | |Microsoft|2-Mensuel|2^^ème^^ Mardi| [[url|https://msrc.microsoft.com/update-guide/releaseNote/]] |2-Patch Tuesday • +++[détails] Format : https://msrc.microsoft.com/update-guide/releaseNote/ {{{YYYY-Mmm}}}
↪ Ex. {{{2023-Feb}}}, {{{2023-Apr}}}, {{{2023-May}}} …
▬▬▬▬
• Bulletin : https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/ CVE-{{{YYYY-nnnnn}}}
• SANS ISC : https://isc.sans.edu/diary/Microsoft+ {{{Month+YYYY}}}+Patch+Tuesday/
• Morphus Labs : https://patchtuesdaydashboard.com/
• ZDI : https://www.zerodayinitiative.com/blog/ {{{YYYY/M/D}}}/the- {{{month-YYYY}}}-security-update-review
• Tripwire : https://www.tripwire.com/state-of-security/vert-threat-alert- {{{month-YYYY}}}-patch-tuesday-analysis
• Bleeping Computer : https://www.bleepingcomputer.com/tag/patch-tuesday/ === | |SAP|2-Mensuel|2^^ème^^ Mardi| [[url|https://dam.sap.com/mac/app/e/pdf/preview/embed/ucQrx6G?ltr=a]] |2-Patch Tuesday • +++[liens] • Onapsis : https://onapsis.com/blog/sap-patch-day- {{{month-YYYY}}}
• Security Bridge : https://securitybridge.com/sap-patchday/sap-security-patch-day- {{{month-YYYY}}} === | |!▬▬|!▬▬|!▬▬| !▬▬ |!▬▬| |Android|2-Mensuel|Début de mois| [[url|https://source.android.com/docs/security/bulletin/]] |+++[détails] Format : https://source.android.com/docs/security/bulletin/ {{{YYYY-MM-DD}}}
▬▬▬▬
2023 [[01|https://source.android.com/docs/security/bulletin/2023-01-01]] [[02|https://source.android.com/docs/security/bulletin/2023-02-01]] [[03|https://source.android.com/docs/security/bulletin/2023-03-01]] [[04|https://source.android.com/docs/security/bulletin/2023-04-01]] [[05|https://source.android.com/docs/security/bulletin/2023-05-01]] [[06|https://source.android.com/docs/security/bulletin/2023-06-01]] [[07|https://source.android.com/docs/security/bulletin/2023-07-01]] … === | |Apple|2-Mensuel|1^^er^^| [[url|https://support.apple.com/en-us/HT201222]] |… | |Cisco|6-Irrégulier|6-Irrégulier| [[url|https://sec.cloudapps.cisco.com/security/center/publicationListing.x]] |… | |Citrix|6-Irrégulier|6-Irrégulier| [[url|https://support.citrix.com/securitybulletins]] |[[rss|https://www.ivanti.com/blog/topics/security-advisory/rss]] | |Google Chrome|1-Hebdomadaire|Mercredi| [[url|https://chromereleases.googleblog.com/]] |… | |Mozilla|6-Irrégulier|6-Irrégulier| [[url|https://www.mozilla.org/en-US/security/advisories/]] |Firefox (+ESR), Thunderbird (+ESR), SeaMonkey| |VMware|6-Irrégulier|6-Irrégulier| [[url|https://www.vmware.com/security/advisories.html]] |[[rss|https://www.vmware.com/security/advisories.html]] | |!▬▬|!▬▬|!▬▬| !▬▬ |!▬▬| |AMD|2-Mensuel|2^^ème^^ Mardi| [[url|https://www.amd.com/en/resources/product-security.html#security]] |… | |Android Automotive|2-Mensuel|Début de mois| [[url|https://source.android.com/docs/security/bulletin/aaos/]] |2023 [[01|https://source.android.com/docs/security/bulletin/aaos/2023-01-01]] [[02|https://source.android.com/docs/security/bulletin/aaos/2023-02-01]] [[03|https://source.android.com/docs/security/bulletin/aaos/2023-03-01]] [[04|https://source.android.com/docs/security/bulletin/aaos/2023-04-01]] [[05|https://source.android.com/docs/security/bulletin/aaos/2023-05-01]] [[06|https://source.android.com/docs/security/bulletin/aaos/2023-06-01]] [[07|https://source.android.com/docs/security/bulletin/aaos/2023-07-01]] … | |Aruba|6-Irrégulier|6-Irrégulier| [[url|https://www.arubanetworks.com/support-services/security-bulletins/]] |[[rss|https://www.ivanti.com/blog/topics/security-advisory/rss]] | |Canon|6-Irrégulier|6-Irrégulier| [[url|https://psirt.canon/advisory-information/]] |… | |Cisco FXOS/NX-OS|4-Semestriel|4^^ème^^ Mercredi, Février et Août| [[url|https://sec.cloudapps.cisco.com/security/center/erp.x?i=52]] |//Cisco FXOS and NX-OS Software Security Advisories// | |Cisco IOS|4-Semestriel|2^^ème^^ Mercredi, Mars et Septembre| [[url|https://sec.cloudapps.cisco.com/security/center/erp.x?i=52]] |//Cisco IOS, IOS XE, IOS XR Software Security Advisories// | |Cisco ASA/FMC/FTD|4-Semestriel|2^^ème^^ Mercredi, Mai et Novembre| [[url|https://sec.cloudapps.cisco.com/security/center/erp.x?i=52]] |//Cisco ASA, FMC, and FTD Software Security Advisories// | |F5|3-Trimestriel|2^^ème^^ Mois, 1^^er^^ Mercredi| [[url|https://my.f5.com/manage/s/new-updated-articles#f:@f5_document_type=[Security%20Advisory]&periodFilter=0&dateField=0]] |[[rss|https://support.apis.f5.com/articles/rss/v3/feed?apikey=aIy8F8CUfdgqXPv6pHJ0RU64GQiYiyUK&page=1&results=10&source=kbarticles&source=techcomm&documentType=Security%20Advisory]] • Février, Mai, Août, Novembre | |Intel|3-Trimestriel|2^^ème^^ Mois, 2^^ème^^ Mardi| [[url|https://www.intel.com/content/www/us/en/security-center/default.html]] |Février, Mai, Août, Novembre | |Ivanti|6-Irrégulier|6-Irrégulier| [[url|https://www.ivanti.com/blog/topics/security-advisory]] |… | |Juniper|3-Trimestriel|1^^er^^ Mois, 2^^ème^^ Mercredi| [[url|https://supportportal.juniper.net/s/global-search/%40uri?language=en_US#sort=%40sfcec_community_publish_date_formula__c%20descending&numberOfResults=25&f:ctype=[Security%20Advisories]] |Janvier, Avril, Juillet, Octobre | |Mastodon|6-Irrégulier|6-Irrégulier| [[url|Mastodon: https://github.com/mastodon/mastodon/security/advisories]] |… | |NextCloud|6-Irrégulier|6-Irrégulier| [[url|https://github.com/nextcloud/security-advisories/security/advisories]] |… | |OpenSSH|6-Irrégulier|6-Irrégulier| [[url|https://www.openssh.com/security.html]] |… | |Oracle|3-Trimestriel|1^^er^^ Mois, 3^^ème^^ Mardi| [[url|https://www.oracle.com/security-alerts/]] |Janvier, Avril, Juillet, Octobre +++[format] https://www.oracle.com/security-alerts/ cpu{{{mmmYYYY}}}.html === | |Samsung|6-Irrégulier|6-Irrégulier| [[url|https://security.samsungmobile.com/securityUpdate.smsb]] |… | |Solarwinds|6-Irrégulier|6-Irrégulier| [[url|https://www.solarwinds.com/trust-center/security-advisories]] |… | |SonicWall|6-Irrégulier|6-Irrégulier| [[url|https://psirt.global.sonicwall.com/vuln-list]] |… | |Sophos|6-Irrégulier|6-Irrégulier| [[url|https://www.sophos.com/en-us/security-advisories]] |… | |Splunk|3-Trimestriel |2^^ème^^ Mois, Mardi/Mercredi| [[url|https://advisory.splunk.com/advisories]] |[[rss|https://advisory.splunk.com/feed.xml]] • Février, Mai, Août, Novembre | |Ubuntu|6-Irrégulier|6-Irrégulier| [[url|https://ubuntu.com/security/notices]] |[[rss|https://ubuntu.com/security/notices/rss.xml]] | |Zyxel|6-Irrégulier|6-Irrégulier| [[url|https://www.zyxel.com/global/en/support/security-advisories]] |… |
@@bgcolor:#DDDDDD;color:#000091;▬@@@@bgcolor:#DDDDDD;color:#FFFFFF;▬@@@@bgcolor:#DDDDDD;color:#E1000F;▬@@ Article en cours de rédaction @@bgcolor:#DDDDDD;color:#000091;▬@@@@bgcolor:#DDDDDD;color:#FFFFFF;▬@@@@bgcolor:#DDDDDD;color:#E1000F;▬@@
<<tabs tAvisOTICSCADA 'Avis des Constructeurs' '' 'Avis OT - Constructeurs' 'Avis des Agences' '' 'Avis OT - Agences''>>
@@bgcolor:#DDDDDD;color:#000091;▬@@@@bgcolor:#DDDDDD;color:#FFFFFF;▬@@@@bgcolor:#DDDDDD;color:#E1000F;▬@@ Article en cours de rédaction @@bgcolor:#DDDDDD;color:#000091;▬@@@@bgcolor:#DDDDDD;color:#FFFFFF;▬@@@@bgcolor:#DDDDDD;color:#E1000F;▬@@
|!Source|!Fréquence|!Quand|!Lien|!Commentaires|
|Schneider Electric|2-Mensuel|2^^ème^^ Mardi| [[url|https://www.se.com/ww/en/work/support/cybersecurity/security-notifications.jsp]] |… |
|Siemens|2-Mensuel|2^^ème^^ Mardi| [[url|https://new.siemens.com/global/en/products/services/cert.html#SecurityPublications]] |… |
|Mitsubishi Electric|6-Irrégulier|6-Irrégulier| [[url|https://www.mitsubishielectric.com/en/psirt/vulnerability/index.html]] |[[rss|https://www.mitsubishielectric.com/en/psirt/vulnerability/xml/info.xml]] |
|Rockwell Automation |6-Irrégulier|6-Irrégulier| [[url|https://rockwellautomation.custhelp.com/app/answers/answer_view/a_id/54102/]] |Nécessite une inscription (gratuite) |
/% |… |6-Irrégulier|6-Irrégulier| »»» |… | %/
@@bgcolor:#DDDDDD;color:#000091;▬@@@@bgcolor:#DDDDDD;color:#FFFFFF;▬@@@@bgcolor:#DDDDDD;color:#E1000F;▬@@ Article en cours de rédaction @@bgcolor:#DDDDDD;color:#000091;▬@@@@bgcolor:#DDDDDD;color:#FFFFFF;▬@@@@bgcolor:#DDDDDD;color:#E1000F;▬@@
|!Source|!Fréquence|!Quand|!Lien|!Commentaires|
|DHS/CISA (US) |6-Irrégulier|6-Irrégulier| [[url|https://www.cisa.gov/news-events/cybersecurity-advisories?f%5B0%5D=advisory_type%3A95]] |//ICS Advisories// • [[rss|https://www.cisa.gov/cybersecurity-advisories/ics-advisories.xml]] |
|DHS/CISA (US) |6-Irrégulier|6-Irrégulier| [[url|https://www.cisa.gov/news-events/cybersecurity-advisories?f%5B0%5D=advisory_type%3A96]] |//ICS Medical Advisories// • [[rss|https://www.cisa.gov/cybersecurity-advisories/ics-medical-advisories.xml]] |
/% |… |6-Irrégulier|6-Irrégulier| »»» |… |… | %/
@@bgcolor:#DDDDDD;color:#000091;▬@@@@bgcolor:#DDDDDD;color:#FFFFFF;▬@@@@bgcolor:#DDDDDD;color:#E1000F;▬@@ Article en cours de rédaction @@bgcolor:#DDDDDD;color:#000091;▬@@@@bgcolor:#DDDDDD;color:#FFFFFF;▬@@@@bgcolor:#DDDDDD;color:#E1000F;▬@@
!Les référentiels
|!Sigles |!Significations |!Liens |
|''CVE'' |Common Vulnerabilities and Exposures |https://www.cve.org/ |
|''CVSS'' |Common Vulnerability Scoring System |https://www.first.org/cvss/ |
|SSVC |Stakeholder-Specific Vulnerability Categorization |https://github.com/CERTCC/SSVC |
|''EPSS'' |Exploit Prediction Scoring System |https://www.first.org/epss/ |
|CWE |Common Weakness Enumeration |https://cwe.mitre.org/ |
|CPE |Common Platform Enumeration |https://nvd.nist.gov/products/cpe |
|SBOM |Software Bill of Materials |https://www.cisa.gov/sbom |
|CNA |CVE Numbering Authorities |https://www.cve.org/ProgramOrganization/CNAs |
/% <<tiddler .ReplaceTiddlerTitle with: [[Evaluation des Vulnérabilités]]>> %/
@@bgcolor:#DDDDDD;color:#000091;▬@@@@bgcolor:#DDDDDD;color:#FFFFFF;▬@@@@bgcolor:#DDDDDD;color:#E1000F;▬@@ Article en cours de rédaction @@bgcolor:#DDDDDD;color:#000091;▬@@@@bgcolor:#DDDDDD;color:#FFFFFF;▬@@@@bgcolor:#DDDDDD;color:#E1000F;▬@@
<<tabs tMITRE 'MITRE ATT&CK' 'Référentiel' 'MITRE ATTACK - Définitions' 'Versions' 'Versions du Référentiel' 'MITRE ATTACK - Versions'>>
@@bgcolor:#DDDDDD;color:#000091;▬@@@@bgcolor:#DDDDDD;color:#FFFFFF;▬@@@@bgcolor:#DDDDDD;color:#E1000F;▬@@ Article en cours de rédaction @@bgcolor:#DDDDDD;color:#000091;▬@@@@bgcolor:#DDDDDD;color:#FFFFFF;▬@@@@bgcolor:#DDDDDD;color:#E1000F;▬@@
|sortable|k
|En anglais |En français |Définition succincte |Lien|h
|Tactics|Tactiques |Objectifs tactiques de l'adversaire, le "pourquoi" d'une attaque|[[url|https://attack.mitre.org/tactics/]]|
|Techniques|Techniques|Moyens utilisés par l'adversaire, le "comment" d'une attaque, et parfois aussi le "quoi" qui sera gagné par l'attaquant si son attaque est un succès|[[url|https://attack.mitre.org/techniques/]]|
|Sub-techniques|Sous-technique|Techniques spécifiques utilisées G l'attaquant pour atteindre un objectif|
|Procedures|Procédures|Ce qui est concrètement mis en œuvre pour exécuter une technique ou une sous-technique|
|Groups|Groupes|[[Groupes d'attaquants (APT)|Groupes Attaquants]] suivis par ATT&CK, les autres pseudonymes qui les désignent, les techniques et logiciels qu'ils utilisent|[[url|https://attack.mitre.org/groups]]|
|Campaigns|Campagnes|Regroupement d'activités malveillantes menées sur une période de temps données avec des cibles et des objectifs communs|[[url|https://attack.mitre.org/campaigns/]]|
|Software|Logiciels|Outils et logiciels malveillants utilisés par les adversaires|[[url|https://attack.mitre.org/software/]]|
|Detections|Détections|Moyens d'identifier une technique ou une sous-technique|
|Mitigations|Mesures d'atténuation|Processus, outils et configurations qui peuvent être utilisés pour empêcher l'exécution d'une technique ou d'une sous-technique|[[url|https://attack.mitre.org/techniques/]]|
@@bgcolor:#DDDDDD;color:#000091;▬@@@@bgcolor:#DDDDDD;color:#FFFFFF;▬@@@@bgcolor:#DDDDDD;color:#E1000F;▬@@ Article en cours de rédaction @@bgcolor:#DDDDDD;color:#000091;▬@@@@bgcolor:#DDDDDD;color:#FFFFFF;▬@@@@bgcolor:#DDDDDD;color:#E1000F;▬@@
|sortable|k
| Date | Version | Tactics| Techniques| Sub-Techniques | Lien |h
| 2023.10 | ATT&CK v14 | _ | _ | _ |
| 2023.04.25 | ATT&CK v13 | 14 | 196 | 411 | [[url|https://attack.mitre.org/resources/updates/updates-april-2023/]] |
| 2022.10.25 | ATT&CK v12 | 14 | 193 | 401 | [[url|https://attack.mitre.org/resources/updates/updates-october-2022/]] |
| 2022.04.25 | ATT&CK v11 | 14 | 191 | 386 | [[url|https://attack.mitre.org/resources/updates/updates-april-2022/]] |
| 2021.10.21 | ATT&CK v10 | 14 | 188 | 379 | [[url|https://attack.mitre.org/resources/updates/updates-october-2021/]] |
| 2021.04.29 | ATT&CK v9 | 14 | 185 | 367 | [[url|https://attack.mitre.org/resources/updates/updates-april-2021]] |
| 2020.10.27 | ATT&CK v8 | 14 | 177 | 348 | [[url|https://attack.mitre.org/resources/updates/updates-october-2020]] |
| 2020.07.08 | ATT&CK v7 | 12 | 156 | 272 | [[url|https://attack.mitre.org/resources/updates/updates-july-2020/]] |
| 2019.10.24 | ATT&CK v6 | 12 | 266 | !✗ | [[url|https://attack.mitre.org/resources/updates/updates-october-2019]] |
| 2019.07.31 | ATT&CK v5 | 12 | 245 | !✗ | [[url|https://attack.mitre.org/resources/updates/updates-july-2019/]] |
| 2019.04.30 | ATT&CK v4 | 12 | 245 | !✗ | [[url|https://attack.mitre.org/resources/updates/updates-april-2019/]] |
| 2018.10.23 | ATT&CK v3 | 11 | 224 | !✗ | [[url|https://attack.mitre.org/resources/updates/updates-october-2018/]] |
| 2018.04 | ATT&CK v2 | 11 | 219 | !✗ | [[url|https://attack.mitre.org/resources/updates/updates-april-2018/]] |
| 2018.01 | ATT&CK v1 | 10 | 188 | !✗ | [[url|https://attack.mitre.org/resources/updates/updates-january-2018]] |
| 2017.07 | !✗ | 10 | 169 | !✗ | !✗ |
| 2017.04 | !✗ | 10 | 133 | !✗ | !✗ |
| 2017.01 | !✗ | 10 | 127 | !✗ | !✗ |
| 2016.07 | !✗ | 10 | 121 | !✗ | !✗ |
| 2015.05 | !✗ | 9 | 96 | !✗ | !✗ |
|{{ss3col{<<showtoc>> }}} |
!Suivi cyber
|!SANS|[[Nouvelles|https://isc.sans.edu/]], [[flux RSS|https://isc.sans.edu/rssfeed_full.xml]]|
!Nouvelles Sécurité
|!Bleeping Computer|[[Nouvelles|https://www.bleepingcomputer.com/]], [[flux RSS|https://www.bleepingcomputer.com/feed/]]|
|>|!|
|Dark Reading|[[Nouvelles|https://www.darkreading.com/]], [[liste des RSS|https://www.darkreading.com/rss_feeds.asp]]|
|>|!|
|Security Week|[[Nouvelles|]]
!Threat Intelligence
|//Recorded Future//|[[Blog|https://www.recordedfuture.com/blog/]]|
@@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
<html><i class="fa fa-lock" aria-hidden="true"></i></html> Uniquement sur la partie privée du site
/% MASQU3D
|ssTabl99|k
| !Nouvelle partie du site, en cours de rédaction |
|{{ss3col{<<showtoc>> }}} |
!Forensique
|[[IRMA|https://github.com/codeyourweb/irma]]|Jean-Pierre Garnier|IRMA - Incident Response - Minimal Analysis|
!YARA
|[[IRMA|https://github.com/codeyourweb/irma]]|Jean-Pierre Garnier|IRMA - Incident Response - Minimal Analysis|
|[[YARA Rules|https://blog.didierstevens.com/programs/yara-rules/]]|[[Didier Stevens|https://blog.didierstevens.com/]]|Règles YARA de Didier Stevens en 2015 ([[v0.0.8|https://didierstevens.com/files/software/yara-rules-V0.0.8.zip]])|
MASQU3D %/
|{{ss3col{<<showtoc>> }}} |
!2021
|2021.03.25|Koen van Impe|[[Staying in control of MISP correlations|https://www.vanimpe.eu/2021/03/25/staying-in-control-of-misp-correlations/]]|
@@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
|{{ss3col{<<showtoc>> }}} |
!2021
|2021.03.23|//Digital Brand Insider//|[[Four-Pronged Approach to Keep Your Domain Names and DNS Secure from Cyberattacks|https://www.cscdbs.com/blog/approach-to-keep-your-domain-names-and-dns-secure/]]|
@@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
|{{ss3col{<<showtoc>> }}} |
!RETEX
|2021.03.25|ZDnet|[[This company was hit by ransomware. Here's what they did next, and why they didn't pay up|https://www.zdnet.com/article/this-company-was-hit-with-ransomware-heres-what-they-did-next-and-why-they-didnt-pay-up/]]|
||//Spectre Logic//|[[Any organization is vulnerable to a Ransomware Attack. That includes yours|https://spectralogic.com/industry-solutions/ransomware/]]|
|2020.11.04|//Spectre Logic//|[[We Are Publicly Discussing our Experience of Being Attacked by Ransomware: Here's Why It's Important|https://spectralogic.com/2020/11/04/we-are-publicly-discussing-our-experience-of-being-attacked-by-ransomware-heres-why-its-important-blog/]]|
@@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
|{{ss3col{<<showtoc>> }}} |
!Contexte
||Ready.gov|[[Exercices|https://www.ready.gov/exercises]]|
@@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
|{{ss3col{<<showtoc>> }}} |
!USB
||//Beyond Logic//|[[USB in a NutShell: Making sense of the USB standard|https://www.beyondlogic.org/usbnutshell/usb1.shtml]]|
|2013.05.28|The Linux Juggernaut|[[Find USB device details in Linux/Unix using lsusb command|https://www.linuxnix.com/find-usb-device-details-in-linuxunix-using-lsusb-command/]]|
@@color:#000091;▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬@@
|ssTabl99|k
| !Nouvelle partie du site, en cours de rédaction |
|{{ss3col{<<showtoc>> }}} |
!Sites bienveillants effecuant des scans
|!Origine|!Adresses IPv4|
|ANSSI / [[CERT-FR|https://cert.ssi.gouv.fr/]]|[[Adresses|https://cert.ssi.gouv.fr/scans/]] : 54.38.103.0/31, 92.154.95.236/32, 137.74.246.152/32, 147.135.160.230/32, 185.50.66.1/32|
|[[Shodan|https://www.shodan.io]]|Adresses : 71.6.128.0/20 |
|[[Censys|https://censys.io/ipv4]]|[[Adresses|https://support.censys.io/hc/en-us/articles/360038378552-Frequently-Asked-Questions-FAQ]] : 74.120.14.0/24, 162.142.125.0/24, 167.248.133.0/24, 192.35.168.0/23 |
|[[Net Systems Research|http://www.netsystemsresearch.com]]||
|[[IPIP|https://security.ipip.net/]]||
[6] https://isc.sans.edu/ipinfo.html?ip=71.6.158.166 (Shodan RESEARCHER: THIS IP IS USED FOR INTERNET WIDE RESEARCH SCANS)
|ssTabl99|k
| !Nouvelle partie du site, en cours de rédaction |
|{{ss3col{<<showtoc>> }}} |
!Liste de sites pour voir les routes et les annonces
* Liste des sites de ''Looking-Glass'' : https://whois.ipip.net/looking-glass/
[img[i/T-CSIRTFR.png][https://csirt.fr]]