<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>logicalhacking.com: blog</title>
    <link href="https://logicalhacking.com/blog/atom.xml" rel="self" />
    <link href="https://logicalhacking.com" />
    <id>https://logicalhacking.com/blog/atom.xml</id>
    <author>
        <name>Achim D. Brucker</name>
        <email>adbrucker@0x5f.org</email>
    </author>
    <updated>2026-03-10T00:00:00Z</updated>
    <entry>
    <title>Workshop on AI and Theorem Provers in Mathematics</title>
    <link href="https://logicalhacking.com//blog/2026/03/10/aitpm/" />
    <id>https://logicalhacking.com//blog/2026/03/10/aitpm/</id>
    <published>2026-03-10T00:00:00Z</published>
    <updated>2026-03-10T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2026-03-10" pubdate data-updated="true">10 March 2026</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/formalmethods/">formalmethods</a> | <a href="/blog/tags/mathematics/">mathematics</a> | <a href="/blog/tags/itp/">itp</a> | <a href="/blog/tags/ai/">ai</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2026/03/10/aitpm/">Workshop on AI and Theorem Provers in Mathematics</a>
    </h1>
  </header>
  <p>The <a href="https://aitpm.github.io/">Workshop on AI and Theorem Provers in Mathematics (AITPM)</a> will explore with leading experts some of the recent developments related to the use of AI and theorem provers in mathematics as well as the perspectives for such future use.</p>
<!-- MORE -->
<ul>
<li>Attendance is <strong>free</strong>.</li>
<li>Venue: Online</li>
<li>Date: 8. - 10. April 2026</li>
<li>Registration: <a href="https://forms.office.com/e/c7gth3Rb6Q">Online Form</a></li>
</ul>
<p>Given consent by speakers, talks will be recorded and made public after the workshop. We do not plan to record the panel session, which are planned to be highly interactive.</p>
<h2 class="sectionAnchor" id="speakers">Speakers <a href="#speakers">§</a></h2>
<ul>
<li><a href="https://profiles.imperial.ac.uk/k.buzzard">Kevin Buzzard</a> (Imperial College)</li>
<li><a href="https://lims.ac.uk/yang-hui-he/">Yang-Hui He</a> (London Institute for Mathematical Sciences)</li>
<li><a href="https://www.research.ed.ac.uk/en/persons/paola-iannone/">Paola Iannone</a> (University of Edinburgh)</li>
<li><a href="https://www.kurims.kyoto-u.ac.jp/en/list/MOCHIZUKI,%20Shinichi.html">Shinichi Mochizuki</a> (Research Institute for Mathematical Sciences Kyoto)</li>
<li><a href="https://leodemoura.github.io/">Leonardo De Moura</a> (Amazon Web Services)</li>
<li><a href="https://www.cl.cam.ac.uk/~lp15/">Lawrence Paulson</a> (University Cambridge)</li>
<li><a href="https://cledmonds.github.io/">Chelsea Edmonds</a> (University of Western Australia)</li>
<li><a href="https://www.imo.universite-paris-saclay.fr/~patrick.massot/en/">Patrick Massot</a> (University Paris Saclay)</li>
</ul>
<h2 class="sectionAnchor" id="programme-schedule">Programme Schedule <a href="#programme-schedule">§</a></h2>
<p>The preliminary schedule of the workshop is:</p>
<ul>
<li>April 8th 2026 
<ul>
<li>08:00-09:00 Kevin Buzzard: <em>What goes into Formalizing Fermat?</em></li>
<li>09:15-10:15 Paola Iannone: <em>Teaching with Lean for supporting the transition to university mathematics - current research and future trends</em></li>
<li>10:45-11:45 Lawrence Paulson: <em>AI and Isabelle: experiences and perspectives</em></li>
<li>12:00-13:00 Discussion/panel session</li>
</ul></li>
<li>April 9th 2026
<ul>
<li>08:00-09:00 Chelsea Edmond: <em>A Proof Engineering Perspective on Formalising Combinatorics in Isabelle/HOL</em></li>
<li>09:15-10:15 Yang Hui He</li>
<li>10:45-11:45 Shinichi Mochizuki: <em>On the Formalization of IUT: a preliminary progress report</em></li>
<li>12:00-13:00 Discussion session</li>
</ul></li>
<li>April 10th 2026
<ul>
<li>15:00-16:00 Patrick Massot: <em>Teaching mathematics using Verbose Lean</em></li>
<li>16:15-17:15 Leonardo De Moura</li>
<li>17:45-18:45 Natarajan Shankar</li>
<li>19:00-20:00 Discussion/panel session and closure</li>
</ul></li>
</ul>
<p>All times are BST (i.e., London, observing daylight saving time).</p>
<h2 class="sectionAnchor" id="organisers">Organisers <a href="#organisers">§</a></h2>
<ul>
<li><a href="https://experts.exeter.ac.uk/36-mohamed-saidi">Mohamed Saidi</a> (Department of Mathematics and Statistics, University of Exeter)</li>
<li><a href="https://experts.exeter.ac.uk/315-barrie-cooper">Barrie Cooper</a> (Department of Mathematics and Statistics, University of Exeter)</li>
<li><a href="https://experts.exeter.ac.uk/20765-gihan-marasingha">Gihan Marasingha</a> (Department of Mathematics and Statistics, University of Exeter)</li>
<li><a href="https://experts.exeter.ac.uk/32582-achim-d-brucker">Achim D. Brucker</a> (Department of Computer Science, University of Exeter)</li>
<li><a href="https://experts.exeter.ac.uk/33716-diego-marmsoler">Diego Marmsoler</a> (Department of Computer Science, University of Exeter)</li>
</ul>
</article>
]]></summary>
</entry>
<entry>
    <title>PhD Position in Formalizing Number Systems</title>
    <link href="https://logicalhacking.com//blog/2026/03/09/phd-position-in-formalizing-number-systems/" />
    <id>https://logicalhacking.com//blog/2026/03/09/phd-position-in-formalizing-number-systems/</id>
    <published>2026-03-09T00:00:00Z</published>
    <updated>2026-03-09T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2026-03-09" pubdate data-updated="true"> 9 March 2026</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/uoe/">uoe</a> | <a href="/blog/tags/staff%26positions/">staff&amp;positions</a> | <a href="/blog/tags/verification/">verification</a> | <a href="/blog/tags/formalmethods/">formalmethods</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2026/03/09/phd-position-in-formalizing-number-systems/">PhD Position in Formalizing Number Systems</a>
    </h1>
  </header>
  <p>We have an open PhD position in <em>Bridging the Gap Between Mathematical Numbers and Software Systems</em>. To fill this position, we are seeking an enthusiastic PhD candidate with a strong background in computer science, software engineering, mathematics, or closely related fields. Expertise in formal methods such as program reasoning, programming language semantics, model checking, theorem proving, or computational logic is essential.</p>
<!-- MORE -->
<p>Mathematical models, e.g., describing physical systems or cryptographic algorithms, rely on ideal numbers. For instance, mathematical integers are infinite and mathematical reals continuous and infinite. Computers work with finite approximations that are bounded (i.e., there is a smallest and largest number) and discrete. This “digital gap” between mathematical models and actual systems is a challenge when implementing safety-critical or security-critical systems: for example, autonomous aircraft or self-driving cars require high-precision representations of their position to avoid collisions. Hence, not considering the approximation of the approximative representation of numbers in computers can result in crashes that can endanger the life of humans. Moreover, many security-critical systems, not limited to cryptographic algorithms, rely on the correct handling of over- and underflows in integer computations. Actually, underflow- and overflow bugs are a root cause for a large number vulnerabilities exploited by cyber security criminal, e.g., for stealing digital currencies worth several billion of dollars. While this is not a new problem (e.g., already in 1982, an float conversion error in a trading systems at the Vancouver Stock Exchange resulted in a loss of several millions of US dollars), an integrated development method preventing such bugs is still not available.</p>
<p>This PhD project will address this challenge by developing a rigour approach for developing systems relying on precise representations of numbers, using the interactive theorem prover Isabelle/HOL. The PhD project can focus on</p>
<ol type="1">
<li>the formalisation of concrete representations of machine numbers (e.g., IEEE754, POSIT, Decimal Floating Point, Fixed Point Arithmetic), their (algebraic) properties, and relationship to abstract mathematical numbers;</li>
<li>the formalisation and verification of numerical or cryptographic algorithms, establishing a reusable verified library, or</li>
<li>the development of an end-to-end refinement approach from mathematical models to machine representations.</li>
</ol>
<p>The PhD will be jointly supervised by Prof. Dr. Achim Brucker and Prof. Dr. Burkhart Wolff, leading to a joint degree from the University of Exeter and the University of Paris-Saclay.</p>
<p>Information about the programme can be found at</p>
<ul>
<li><a href="https://www.exeter.ac.uk/study/pg-research/funding/phdfunding/paris-saclay/" class="uri">https://www.exeter.ac.uk/study/pg-research/funding/phdfunding/paris-saclay/</a></li>
<li><a href="https://adum.fr/as/ed/voirproposition.pl?langue=en&amp;matricule_prop=71068&amp;site=PSaclay" class="uri">https://adum.fr/as/ed/voirproposition.pl?langue=en&amp;matricule_prop=71068&amp;site=PSaclay</a></li>
</ul>
<p>All applications have to be made via the ADUM system:
<a href="https://adum.fr/as/ed/voirproposition.pl?langue=en&amp;matricule_prop=71068&amp;site=PSaclay" class="uri">https://adum.fr/as/ed/voirproposition.pl?langue=en&amp;matricule_prop=71068&amp;site=PSaclay</a>,
latest on the 22nd of March 2026.</p>
</article>
]]></summary>
</entry>
<entry>
    <title>BSides Exeter returns to The University of Exeter</title>
    <link href="https://logicalhacking.com//blog/2026/02/10/bsides-exeter/" />
    <id>https://logicalhacking.com//blog/2026/02/10/bsides-exeter/</id>
    <published>2026-02-10T00:00:00Z</published>
    <updated>2026-02-10T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2026-02-10" pubdate data-updated="true">10 February 2026</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2026/02/10/bsides-exeter/">BSides Exeter returns to The University of Exeter</a>
    </h1>
  </header>
  <p>Once again, we are co-organizing <a href="https://bsidesexeter.co.uk/">BSides Exeter</a>: it is set to return for its third run in April, with doors opening on main event, at The Forum, on <strong>25th April 2026</strong>, and on 24th April 2026 a pre-event free, professional training day for those willing to contribute to charitable causes.</p>
<!-- MORE -->
<p>The 2026 event is focused on the theme “curiosity built the cyber pro”, helping to showcase the innumerable paths into cyber that makes the sector the vibrant, accepting space that it is today. Hosted on site at The Forum in the University of Exeter for a third year, with support from the University of Exeter’s Department for Computer Science, the community-driven cyber security event has a growing attendance and this year aims to attract 400 attendees, following last year’s successful bringing together of over 350 cyber security experts, students, enthusiasts and newcomers. Exeter Cyber Security Society members have been key supporters of BSides Exeter since the society was founded in 2024.</p>
<p><a href="https://ti.to/bsides-exeter/bsides-exeter-2026/">General admission tickets for 2026 are on sale now.</a></p>
<p><strong>Call for papers open until 3rd March 2026</strong></p>
<p>Along with looking for talks from experienced veterans of the field, the current call for papers also offers an opportunity for first time speakers, students and new cyber professionals, and career-changers to talk as part of rookie sessions, which returns for a second year.</p>
<p>Rookie sessions are 20-minute long talks, where regular talk slots are looking for submissions of around 35-40 minutes in length. BSides Exeter connects rookie speakers with a mentor who can help guide them with their talk creation and help them understand ahead of time what to expect.</p>
<p>Outside of rookie sessions, the conference tracks for BSides Exeter 2026 are:</p>
<ul>
<li>Blue Track – Defence</li>
<li>Red Track – Attack</li>
<li>Purple Track – Mixed</li>
</ul>
<p>Talks will be recorded and uploaded to <a href="https://www.youtube.com/@bsidesexeter">BSides Exeter’s YouTube channel</a> after the event. (Those not wanting to have their talk shared this way, are able to opt out.)</p>
<p>Got a story to tell? You can <a href="https://pretalx.com/bsides-exeter-2026/cfp">submit to the call for papers</a>. The deadline for submissions is <strong>3rd March 2026</strong>.</p>
<p><strong>Paying it forward</strong></p>
<p>The day before the main BSides Exeter event, on Friday 24th April, will see a series of professional training workshops provided by sponsors, with participants encouraged to donate to Children’s Hospice South West as part of attendance. This pre-event will offer learning opportunities for individuals at all levels of experience.</p>
<p><strong>Why “curiosity built the cyber pro”?</strong></p>
<p>In its exploration of curiosity built the cyber professional, BSides Exeter which will look at how every cyber security and digital forensics professional started the same way—curious, determined, and probably told to “get off that computer!” or “you’ve been online too long!”</p>
</article>
]]></summary>
</entry>
<entry>
    <title>Festschrift in Honour of David Basin</title>
    <link href="https://logicalhacking.com//blog/2026/01/30/festschrift-david/" />
    <id>https://logicalhacking.com//blog/2026/01/30/festschrift-david/</id>
    <published>2026-01-30T00:00:00Z</published>
    <updated>2026-01-30T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2026-01-30" pubdate data-updated="true">30 January 2026</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/security/">security</a> | <a href="/blog/tags/formalmethods/">formalmethods</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2026/01/30/festschrift-david/">Festschrift in Honour of David Basin</a>
    </h1>
  </header>
  <p>Dear Fellow Researchers!</p>
<p>Our dear colleague and friend David Basin is turning 65 in December 2026 and this has to be celebrated! We therefore organize a Festschrift and a Fest to celebrate his birthday and his extensive research contributions!</p>
<!-- MORE -->
<p>The Fest/celebration itself will be held as a <strong>one-day event on the 15th of January 2027 at ETH Zürich</strong>. We have already checked that David is available. You do not have to keep it a secret - on the contrary, it is great if you share this message with anybody who might like to contribute!</p>
<p>We hereby cordially invite you to contribute an article to the Festschrift and present it at the Fest. We welcome contributions in all areas close to David’s research and interests, including but not limited to security, privacy, formal methods, logic, automated reasoning, model checking, theorem proving, software engineering, bridge, juggling, biking and more. The articles will be lightly reviewed by the Festschrift committee, and <strong>the proceedings will be published by Springer Heidelberg in the LNCS</strong> series. David will of course love to receive a research article from you, but also short personal articles that celebrate the history and friendship with David will be very much appreciated.</p>
<p>We would like to set a deadline for submissions at the 21st of May 2026 via our submission site <a href="https://easychair.org/conferences/?conf=feschi2027" class="uri">https://easychair.org/conferences/?conf=feschi2027</a>. Articles should be formatted in Springer’s LNCS style and not exceed 5 pages for personal articles and 16 pages for scientific articles. If you have a work that you would like to contribute that does not fit into this page limit, it might be possible, but please reach out to us first.</p>
<p>There will be no participation fee for the Fest and coffee breaks, lunch, and dinner will be included. Travel and accommodation costs are at the expense of the participants. We are happy to provide hotel suggestions for Zürich.</p>
<h2 class="sectionAnchor" id="submission-information">Submission Information: <a href="#submission-information">§</a></h2>
<ul>
<li>Format: 16 pages in LNCS format, templates available at:
<a href="https://www.springer.com/gp/computer-science/lncs/conference-proceedings-guidelines" class="uri">https://www.springer.com/gp/computer-science/lncs/conference-proceedings-guidelines</a></li>
<li>Submission:
<a href="https://easychair.org/conferences/?conf=feschi2027" class="uri">https://easychair.org/conferences/?conf=feschi2027</a></li>
<li>Timeline:
<ul>
<li>Submission: 21 May 2026</li>
<li>Notification: end of June 2026 (to be confirmed)</li>
<li>Camera Ready Copy: early September 2026 (to be confirmed)</li>
</ul></li>
</ul>
<p>Please let us know if you have any questions!</p>
<p>Best wishes,</p>
<ul>
<li>Achim D. Brucker (University of Exeter)</li>
<li>Sebastian Mödersheim (Danmarks Tekniske Universitet)</li>
<li>Christoph Sprenger (ETH Zürich)</li>
<li>Luca Viganò (King’s College London)</li>
</ul>
</article>
]]></summary>
</entry>
<entry>
    <title>Congratulations to Amy on passing her PhD viva!</title>
    <link href="https://logicalhacking.com//blog/2025/11/26/congrats-amy/" />
    <id>https://logicalhacking.com//blog/2025/11/26/congrats-amy/</id>
    <published>2025-11-26T00:00:00Z</published>
    <updated>2025-11-26T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2025-11-26" pubdate data-updated="true">26 November 2025</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/phdlife/">phdlife</a> | <a href="/blog/tags/uoe/">uoe</a> | <a href="/blog/tags/ai/">ai</a> | <a href="/blog/tags/formalmethods/">formalmethods</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2025/11/26/congrats-amy/">Congratulations to Amy on passing her PhD viva!</a>
    </h1>
  </header>
  <p>Many congratulations to Amy Stell who passed her PhD viva with minor
corrections!</p>
<!-- MORE -->
<p>Amy’s PhD thesis <span class="citation" data-cites="stell:trustworthy-ai:2025">[1]</span> entitled “Trustworthy Machine Learning for High-Assurance Systems” presents an approach for modelling and formally verifying neural networks in Isabelle/HOL. This is an important step to enabeling the use of neural networks in safety-critical or security-critical applications. During his PhD, Amy published several conference publications and entries of the Archive of Formal Proofs <span class="citation" data-cites="brucker.ea:feedforward-nn-verification:2023">[5]</span>.</p>
<p>Well done Amy!</p>
<p>Amy will stay in our group, working on formal methods for enterprise systems; and, of course, she will also continue to work on formal methods for AI.</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-stell:trustworthy-ai:2025" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">A. Stell, <span>“Trustworthy machine learning for high-assurance systems,”</span> PhD thesis, University of Exeter, 2025. <a href="https://hdl.handle.net/10779/exe.30610607/">https://hdl.handle.net/10779/exe.30610607/</a></div>
</div>
<div id="ref-brucker.ea:feedforward-nn-verification:2023" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[2] </div><div class="csl-right-inline">A. D. Brucker and A. Stell, <span>“Verifying feedforward neural networks for classification in <span>Isabelle/HOL</span>,”</span> in <em>Formal methods (FM 2023)</em>, M. Chechik, J.-P. Katoen, and M. Leucker, Eds. Heidelberg: Springer-Verlag, 2023. doi: <a href="https://doi.org/10.1007/978-3-031-27481-7_24">10.1007/978-3-031-27481-7_24</a>. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-feedforward-nn-verification-2023/" class="uri">http://logicalhacking.com/publications/brucker.ea-feedforward-nn-verification-2023/</a></div>
</div>
<div id="ref-brucker.ea:afp-neural_networks:2025" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[3] </div><div class="csl-right-inline">A. D. Brucker and A. Stell, <span>“Formalizing neural networks,”</span> <em>Archive of Formal Proofs</em>, 2025. <a href="https://isa-afp.org/entries/Neural_Networks.html" class="uri">https://isa-afp.org/entries/Neural_Networks.html</a>, Formal proof development</div>
</div>
<div id="ref-brucker.ea:interval-arithmetic:2024" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[4] </div><div class="csl-right-inline">A. D. Brucker, T. Cameron-Burke, and A. Stell, <span>“Formally verified interval arithmetic and its application to program verification,”</span> 2024. doi: <a href="https://doi.org/10.1145/3644033.3644370">10.1145/3644033.3644370</a>. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-interval-arithmetic-2024/" class="uri">http://logicalhacking.com/publications/brucker.ea-interval-arithmetic-2024/</a></div>
</div>
<div id="ref-brucker.ea:interval-arithmetic-afp:2024" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[5] </div><div class="csl-right-inline">A. D. Brucker and A. Stell, <span>“<span>(Extended)</span> <span>Interval</span> <span>Analysis</span>,”</span> <em>Archive of Formal Proofs</em>, Jan. 2024. <a href="https://www.isa-afp.org/entries/Interval_Analysis.html" class="uri">https://www.isa-afp.org/entries/Interval_Analysis.html</a>, Formal proof development. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-interval-arithmetic-afp-2024/" class="uri">http://logicalhacking.com/publications/brucker.ea-interval-arithmetic-afp-2024/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>Imperceptible Black-box Adversarial Perturbations</title>
    <link href="https://logicalhacking.com//blog/2025/11/10/imperceptible-black-box-adversarial-perturbations/" />
    <id>https://logicalhacking.com//blog/2025/11/10/imperceptible-black-box-adversarial-perturbations/</id>
    <published>2025-11-10T00:00:00Z</published>
    <updated>2025-11-10T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2025-11-10" pubdate data-updated="true">10 November 2025</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2025/11/10/imperceptible-black-box-adversarial-perturbations/">Imperceptible Black-box Adversarial Perturbations</a>
    </h1>
  </header>
  <p>Over the last few decades, deep neural networks (DNNs) have exhibited remarkable success in natural language processing (NLP). However, despite their impressive performance, DNNs have been shown to be highly vulnerable to adversarial examples, which are carefully crafted inputs with small, often imperceptible perturbations that cause models to make incorrect predictions. This vulnerability poses growing threats to security and privacy in online and safety-critical environments.</p>
<!-- MORE -->
<p>The issue becomes even more serious with the widespread use of large language models (LLMs) such as GPT and LLaMA, which exhibit strong generalization and zero-shot learning abilities. Although these models revolutionize NLP tasks, they are not immune to adversarial manipulations. In particular, prompt-injection and jailbreak attacks can subvert safety alignment mechanisms, revealing a similar underlying weakness: subtle textual perturbations can drastically alter model behaviour. Understanding and mitigating such vulnerabilities has therefore become a central research topic in Safe AI.</p>
<p>Compared to adversarial attacks in computer vision (CV), generating imperceptible adversarial examples for text presents key challenges. Images reside in continuous pixel spaces, where tiny numeric changes can easily be masked from human perception. Text, however, is inherently discrete, and even a single character or word change can significantly affect readability, grammar, or meaning. Thus, designing textual perturbations that remain semantically faithful and grammatically correct, while still deceiving the model, is substantially more difficult. Character-level or sentence-level manipulations often yield unnatural text that can be detected by spell-checkers or simple rule-based defences. Conversely, word-level synonym substitution can produce more fluent and semantically consistent adversarial samples.</p>
<p>To address this problem, we developed SCALA (Synonym-based desCending And repLace-back Ascending), a score-based black-box adversarial attack that achieves an effective balance between imperceptibility, efficiency, and practicality. By leveraging a novel descending–ascending synonym ranking mechanism with parallelized computation, SCALA generates visually and semantically natural adversarial texts with minimal perturbations. Extensive experiments on both conventional NLP models and fine-tuned LLMs demonstrate the generality and scalability of our method. SCALA consistently achieves the lowest perturbation and grammatical error rates while maintaining high semantic similarity, outperforming representative baselines. The results highlight that fine-tuned LLMs, despite their scale and contextual capacity, remain vulnerable to word-level perturbations, emphasizing the need for robust defense strategies. Future work will explore extending SCALA to multilingual and multimodal domains and investigating defense-aware training to enhance robustness in real-world applications.</p>
<p>Want to learn more? Read out latest paper <span class="citation" data-cites="sun.ea:scala:2025">[1]</span> that has been published in the IEEE Transactions on Information Forensics and Security.</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-sun.ea:scala:2025" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">S. Sun, A. D. Brucker, J. Hu, X. Huang, and W. Ruan, <span>“<span>SCALA</span>: Towards imperceptible and efficient black-box textual adversarial perturbations,”</span> <em>IEEE Transactions on Information Forensics and Security</em>, pp. 1–1, 2025, doi: <a href="https://doi.org/10.1109/TIFS.2025.3629604">10.1109/TIFS.2025.3629604</a>.</div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>Verification of Stateful Protocols</title>
    <link href="https://logicalhacking.com//blog/2025/08/20/pspsp/" />
    <id>https://logicalhacking.com//blog/2025/08/20/pspsp/</id>
    <published>2025-08-20T00:00:00Z</published>
    <updated>2025-08-20T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2025-08-20" pubdate data-updated="true">20 August 2025</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2025/08/20/pspsp/">Verification of Stateful Protocols</a>
    </h1>
  </header>
  <p>There are at least three reasons why it is desirable to perform proofs of security in a proof assistant like
Isabelle/HOL or Rocq. First, it gives us an overwhelming assurance that the proof of security is actually
a proof and not just the result of a bug in a complex verification tool.</p>
<!-- MORE -->
<p>This is because the basic idea
of an LCF-style theorem prover is to have an abstract datatype theorem so that new theorems can only
be constructed through functions that correspond to accepted proof rules; thus implementing just this
datatype correctly prevents us from ever accepting a wrong proof as a theorem, no matter what complex
machinery we build for automatically finding proofs. Second, a human may have an insight of how to
easily prove a particular statement where a “stupid” verification algorithm may run into a complex check
or even be infeasible. Third, the language of a proof assistant can formalize all accepted mathematics,
so there is no narrow limit on what aspects of a system we can formalize. For instance, we have proved
in Isabelle/HOL a compositionality result for our protocol model: given a set of protocols for which
we have proved security and that meet a number of requirements, then also their composition is correct.
Since also the said requirements are proved in Isabelle, we arrive at a full security proof of the entire
system checked by Isabelle. A result like this is beyond the scope of any standard verification tool. Note
also that as part of the composition, some of the component protocols may be proved secure by different
methods or even automatically.</p>
<p>With our work, we aim for achieving the high assurance of an LCF-style theorem prover (namely, Isabelle/HOL) with a highly-automated verification approach for a well-defined fragment of stateful (security) protocols. The result is both an
extensive formalization of stateful protocols and a fully-automated verification method, i.e., a tool. In more detail,
our work has two contributions:</p>
<ol type="1">
<li>The formalization in Isabelle of the abstract interpretation approach for stateful protocols as the PSPSP tool. In a nutshell, we have implemented in Isabelle the computation of the abstract fixed point—the proof idea so to speak—and how Isabelle can convince herself that this fixed point covers everything that can happen in the concrete protocol. The Isabelle security proof that one obtains consists of two main parts: first, we have a number of protocol-independent theorems that we have proved in Isabelle once and for all, and second, for every protocol and fixed point, we have a number of checks that Isabelle can directly execute to establish the correctness of the given protocol. The entire protocol-independent formalization consists of more than 25,000 lines of Isabelle code (definitions, theorems and proofs).</li>
<li>The development and integration into Isabelle of a simple protocol specification language for stateful protocols that is based on a notion of atomic transactions: in a transaction, an entity may receive a message, consult its long-term database, make changes to the database and finally send out a reply. This language is more high-level than for instance multi-set rewriting while directly defining a state-transition system. The language additionally allows the specification of analysis rules which are rules that express how the intruder can extract knowledge from received messages built using cryptographic functions.</li>
</ol>
<p>The full details are described in our latest paper <span class="citation" data-cites="hess.ea:pspsp:2025">[1]</span> that just has been accapted in the Journal of Computer Security. The formalization in Isabelle/HOL, including the tool PSPSP (implemented in Isabelle/HOL), is available in the Archive of Formal Proofs (AFP) <span class="citation" data-cites="hess.ea:automated:2020">[2]</span>.</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-hess.ea:pspsp:2025" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">A. V. Hess, S. A. Mödersheim, A. D. Brucker, and A. Schlichtkrull, <span>“<span>PSPSP:</span> A tool for automated verification of stateful protocols in <span>Isabelle/HOL</span>,”</span> <em>Journal of Computer Security</em>, vol. 33, Nov. 2025, doi: <a href="https://doi.org/10.1177/0926227X251358741">10.1177/0926227X251358741</a>.</div>
</div>
<div id="ref-hess.ea:automated:2020" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[2] </div><div class="csl-right-inline">A. V. Hess, S. Mödersheim, A. D. Brucker, and A. Schlichtkrull, <span>“Automated stateful protocol verification,”</span> <em>Archive of Formal Proofs</em>, Apr. 2020. <a href="https://www.isa-afp.org/entries/Automated_Stateful_Protocol_Verification.html" class="uri">https://www.isa-afp.org/entries/Automated_Stateful_Protocol_Verification.html</a>, Formal proof development. Author copy: <a href="http://logicalhacking.com/publications/hess.ea-automated-2020/" class="uri">http://logicalhacking.com/publications/hess.ea-automated-2020/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>Test and Proof Track and FM 2026</title>
    <link href="https://logicalhacking.com//blog/2025/07/28/tap-now-part-of-fm/" />
    <id>https://logicalhacking.com//blog/2025/07/28/tap-now-part-of-fm/</id>
    <published>2025-07-28T00:00:00Z</published>
    <updated>2025-07-28T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2025-07-28" pubdate data-updated="true">28 July 2025</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2025/07/28/tap-now-part-of-fm/">Test and Proof Track and FM 2026</a>
    </h1>
  </header>
  <p>Since 2007, the <a href="https://tapconference.github.io/">Test and Proof (TAP) conference</a> has long been a leading venue for research on the intersection of software testing and formal verification. Now, TAP is joining the 27th International Symposium on Formal Methods (FM 2026) as a new special track. This integration places the ground-breaking work of the Test and Proofs community at the heart of the world’s premier conference on formal methods.</p>
<!-- MORE -->
<p>This new track provides a dedicated forum for researchers, practitioners, and tool developers to present and discuss the latest advances in the synergistic combination of traditionally distinct areas of dynamic analysis, e.g., testing, and static analysis, e.g., proving. By joining FM, the TAP track offers authors a wider, more diverse audience and the prestige of publication in the main, open-access FM 2026 proceedings, published by Springer in the LNCS series. We invite you to be part of this exciting new chapter for the tests and proofs community!</p>
<p><strong>Track Highlight: FM 2026 Keynote by Professor Cristian Cadar</strong></p>
<p>We are thrilled to announce that TAP Track at FM 2026 will feature a keynote address by <strong>Professor Cristian Cadar</strong> of Imperial College London. Professor Cadar is a world-renowned authority on software reliability, security, and verification, and is particularly celebrated for his pioneering contributions to symbolic and dynamic execution (e.g., KLEE). His selection as a main symposium keynote speaker is a powerful testament to the increasing importance of the core topics of the TAP track to the broader computer science community.</p>
<h3 class="sectionAnchor" id="scope-and-topics-of-interest"><strong>Scope and Topics of Interest</strong> <a href="#scope-and-topics-of-interest">§</a></h3>
<p>The TAP track solicits high-quality, original research on the interplay between dynamic techniques such as testing, runtime verification etc.testing and formal verification such as proving, model checking, abstract interpretation, etc. . The track aims to foster new collaborations and advance the state of the art in creating reliable and secure software and systems. Topics of interest include, but are not limited to, the following areas:</p>
<p><strong>Foundations for Combining Testing and Verification</strong></p>
<ul>
<li>Formalisms and theories that unify testing and proof<br />
</li>
<li>Semantic foundations for combined static and dynamic analysis<br />
</li>
<li>Proof theory for test-case generation and specification conformance<br />
</li>
<li>Type systems with a testing and proving focus<br />
</li>
<li>Formal models of test-based and proof-based development</li>
</ul>
<p><strong>Synergistic Techniques and Tools</strong></p>
<ul>
<li>Combination of model checking, theorem proving, and runtime verification<br />
</li>
<li>Synergies between symbolic execution, fuzzing, and formal analysis<br />
</li>
<li>Test-case generation from formal specifications (e.g., using B, Z, TLA+, VDM)<br />
</li>
<li>Using test execution results to guide or automate proof discovery<br />
</li>
<li>Static analysis for test-suite reduction, prioritization, and optimization<br />
</li>
<li>Verification-based and property-based testing<br />
</li>
<li>Formal methods for testing AI/ML-based systems<br />
</li>
<li>AI/ML techniques for enhancing formal verification and testing<br />
</li>
<li>Derivation of specifications and contracts from tests<br />
</li>
<li>Combination of static and dynamic analysis for security vulnerability detection</li>
</ul>
<p><strong>Applications and Empirical Evaluation</strong></p>
<ul>
<li>Case studies and experience reports applying combined test-and-proof techniques to industrial systems (e.g., in security, cyber-physical systems, autonomous systems, blockchain, or IoT)<br />
</li>
<li>Empirical comparisons of different verification, testing, and combined techniques<br />
</li>
<li>Tool demonstration papers for new and innovative tools that support tests and proofs<br />
</li>
<li>Application of TAP techniques to challenge problems and benchmarks</li>
</ul>
<h3 class="sectionAnchor" id="submission-categories-and-guidelines"><strong>Submission Categories and Guidelines</strong> <a href="#submission-categories-and-guidelines">§</a></h3>
<p>The TAP track papers can be submitted in all paper categories supported by the FM 2026 Research Track and submissions to the TAP track will be reviewed following the policies and quality criteria of the FM Research Track.</p>
<p>The TAP track solicits papers in the following categories:</p>
<ul>
<li><strong>Regular Papers (max 15 pages, excluding references and appendices):</strong> For mature, original research contributions.<br />
</li>
<li><strong>Long Tool Papers (max 15 pages, excluding references and appendices):</strong> For presenting mature tools, their theoretical foundations, and empirical evaluations.<br />
</li>
<li><strong>Case Study Papers (max 15 pages, excluding references and appendices):</strong> For in-depth reports on the application of TAP techniques to significant, real-world problems.<br />
</li>
<li><strong>Short Papers (max 6 pages, excluding references and appendices):</strong> For presenting novel but not yet fully mature ideas, or for tool demonstration papers that focus on a tool’s features and usage.</li>
</ul>
<p>Papers should be original work, not published or submitted elsewhere, in Springer <a href="https://www.springer.com/gp/computer-science/lncs/conference-proceedings-guidelines">LNCS format</a>, and written in English.</p>
<p>Submit your papers at https://easychair.org/conferences/?conf=fm2026</p>
<p>Reviewing is single-blind. Each paper will be evaluated by at least three members of the Program Committee. Papers will be accepted or rejected in the category in which they were submitted and will not be moved between categories</p>
<p>Authors of accepted papers are strongly encouraged to submit their supporting artifacts to the FM 2026 Artifact Evaluation track.</p>
<h3 class="sectionAnchor" id="important-dates"><strong>Important Dates</strong> <a href="#important-dates">§</a></h3>
<p>All deadlines are <strong>Anywhere on Earth (AoE, UTC-12h)</strong>. The deadlines for the TAP track are aligned with the FM 2026 Research Track.</p>
<table>
<thead>
<tr class="header">
<th style="text-align: left;">Milestone</th>
<th style="text-align: left;">Date</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left;"><strong>Abstract Submission</strong></td>
<td style="text-align: left;"><strong>Tuesday, 25 November 2025</strong></td>
</tr>
<tr class="even">
<td style="text-align: left;"><strong>Full Paper Submission</strong></td>
<td style="text-align: left;"><strong>Tuesday, 2 December 2025</strong></td>
</tr>
<tr class="odd">
<td style="text-align: left;"><strong>Author Notification</strong></td>
<td style="text-align: left;"><strong>Friday, 6 February 2026</strong></td>
</tr>
<tr class="even">
<td style="text-align: left;"><strong>Camera-Ready Version</strong></td>
<td style="text-align: left;"><strong>Monday, 2 March 2026</strong></td>
</tr>
<tr class="odd">
<td style="text-align: left;"><strong>FM 2026 Conference</strong></td>
<td style="text-align: left;"><strong>May 18-22, 2026</strong></td>
</tr>
</tbody>
</table>
<h3 class="sectionAnchor" id="publication"><strong>Publication</strong> <a href="#publication">§</a></h3>
<p>All accepted papers for the TAP track will be published as part of the main FM 2026 conference proceedings. The proceedings will be published by Springer in their <strong>open-access Lecture Notes in Computer Science (LNCS)</strong> series. At least one author of an accepted paper must register for the conference and present the work.</p>
<h3 class="sectionAnchor" id="track-organization"><strong>Track Organization</strong> <a href="#track-organization">§</a></h3>
<p><strong>Track Chairs:</strong></p>
<ul>
<li><strong>Marie-Christine Jakobs</strong>, Ludwig-Maximilan University, Munich, Germany<br />
</li>
<li><strong>Achim D. Brucker</strong>, University of Exeter, UK</li>
</ul>
<p>For inquiries, please contact the track chairs.</p>
</article>
]]></summary>
</entry>
<entry>
    <title>Cybersecurity Threats in Manufacturing</title>
    <link href="https://logicalhacking.com//blog/2025/04/26/business-process-security/" />
    <id>https://logicalhacking.com//blog/2025/04/26/business-process-security/</id>
    <published>2025-04-26T00:00:00Z</published>
    <updated>2025-04-26T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2025-04-26" pubdate data-updated="true">26 April 2025</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2025/04/26/business-process-security/">Cybersecurity Threats in Manufacturing</a>
    </h1>
  </header>
  <p>Modern manufacturing relies heavily on highly integrated IT systems. While various terms – such as Industry 4.0, Cyber-Physical Production Systems, and the Industrial Internet of Things (IIoT) – describe these systems, they all share a common characteristic: the fusion of enterprise software with sensors and actuators. This creates a complex IT landscape comprising devices with diverse computational capabilities, operating systems, and software versions. Additionally, many manufacturing environments must integrate legacy systems that were never designed to be connected to the internet, further complicating security efforts.</p>
<!-- MORE -->
<p>Beyond the inherent challenges of securing such heterogeneous environments, cyberattacks on manufacturing systems can have severe real-world consequences, extending beyond data breaches to physical disruptions and costly damages.</p>
<p>Want to learn more? Attend my talk at BSides Exeter today: I will first provide a brief introduction to modern manufacturing systems. I will then explore key cybersecurity threats, with a particular focus on attacks targeting process logic vulnerabilities that can be exploited by both external threat actors and insiders. As far as possible, identified threats will be illustrated by real world attacks. I will conclude the talk with a brief outlook on ongoing research developing tools to detect (and mitigate) cybersecurity threats in modern manufacturing.</p>
<p><strong>Update:</strong> Missed the talk? <a href="https://www.youtube.com/watch?v=KyfRBZfKw5I">Watch the recording.</a></p>
</article>
]]></summary>
</entry>
<entry>
    <title>Isabelle/DOF Add-Ons</title>
    <link href="https://logicalhacking.com//blog/2025/04/25/isabelle-dof-add-ons/" />
    <id>https://logicalhacking.com//blog/2025/04/25/isabelle-dof-add-ons/</id>
    <published>2025-04-25T00:00:00Z</published>
    <updated>2025-04-25T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2025-04-25" pubdate data-updated="true">25 April 2025</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2025/04/25/isabelle-dof-add-ons/">Isabelle/DOF Add-Ons</a>
    </h1>
  </header>
  <p>After the successful release of Isabelle/DOF as part of the <a href="https://www.isa-afp.org/entries/Isabelle_DOF.html">Archive of Formal
Proofs (AFP)</a>, we are now
happy to announce the availability of add-ons for the latest Isabelle release
(i.e., Isabelle 2025).</p>
<!-- MORE -->
<p>The Isabelle/DOF 2025 Add-Ons package (a version for Isabelle 2024 is also
available) is available on <a href="https://zenodo.org/records/15274072">Zenodo</a>. The
Isabelle/DOF 2025 Add-Ons extends the Isabelle/DOF version for Isabelle 2025
that is available as part of the <a href="https://www.isa-afp.org/entries/Isabelle_DOF.html">Archive of Formal Proofs
(AFP)</a> with the following
features:</p>
<ul>
<li>Additional document ontologies and LaTeX templates (in the session <code>Isabelle_DOF-Ontologies</code>).</li>
<li>Additional examples using various Ontologies and LaTeX template.</li>
<li>A tool for creating new Isabelle/DOF projects (<code>isabelle dof_mkroot</code>).</li>
</ul>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-brucker.ea:isabelle-dof-afp:2024" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">A. D. Brucker, N. Méric, and B. Wolff, <span>“<span>Isabelle/DOF</span>,”</span> <em>Archive of Formal Proofs</em>, Jan. 2024. <a href="https://www.isa-afp.org/entries/Isabelle_DOF.html" class="uri">https://www.isa-afp.org/entries/Isabelle_DOF.html</a>, Formal proof development. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-isabelle-dof-afp-2024/" class="uri">http://logicalhacking.com/publications/brucker.ea-isabelle-dof-afp-2024/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>A Week of Cyber Events</title>
    <link href="https://logicalhacking.com//blog/2025/04/01/cyber-week-exeter/" />
    <id>https://logicalhacking.com//blog/2025/04/01/cyber-week-exeter/</id>
    <published>2025-04-01T00:00:00Z</published>
    <updated>2025-04-01T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2025-04-01" pubdate data-updated="true"> 1 April 2025</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2025/04/01/cyber-week-exeter/">A Week of Cyber Events</a>
    </h1>
  </header>
  <p>This year, we are hosting two world-class cyber events on our campus during the
week commencing 21st of April, 2025: Secure South West and BSides Exeter.</p>
<!-- MORE -->
<p>In more detail:</p>
<ul>
<li>On Friday 25th of April 2025, we have
<ul>
<li><a href="https://www.eventbrite.co.uk/e/cyber-in-society-an-esg-exploration-tickets-1111787780179">Secure South West</a> focusing on the positive change cyber can bring to society.</li>
<li><a href="https://bsidesexeter.co.uk/next-gen-sessions/">BSides NextGen Track</a>, a special session the day before the main BSides event, introducing cybersecurity careers to GCSE and A-Level students.</li>
</ul></li>
<li>On Saturday 26th of April 2025, we are hosting <a href="https://bsidesexeter.co.uk/">BSides Exeter</a>.</li>
</ul>
<p>In total, we expect way over 300 cybersecurity enthusiasts on our campus. We
are looking forward to welcoming you all to this great line-up of cyber events!</p>
</article>
]]></summary>
</entry>
<entry>
    <title>Ensuring Confidentiality in Supply Chains</title>
    <link href="https://logicalhacking.com//blog/2025/01/27/confidential-lca/" />
    <id>https://logicalhacking.com//blog/2025/01/27/confidential-lca/</id>
    <published>2025-01-27T00:00:00Z</published>
    <updated>2025-01-27T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2025-01-27" pubdate data-updated="true">27 January 2025</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/security/">security</a> | <a href="/blog/tags/smpc/">smpc</a> | <a href="/blog/tags/confidentiality/">confidentiality</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2025/01/27/confidential-lca/">Ensuring Confidentiality in Supply Chains</a>
    </h1>
  </header>
  <p>Modern supply chains of goods and services rely heavily on close collaborations
between the partners within these supply chains. Consequently, there is a demand
for IT systems that support collaborations between business partners, for
instance, allowing for joint computations for global optimizations (in contrast
to local optimizations that each partner can do on their own). Still, businesses
are very reluctant to share data or connect their enterprise systems to allow
for such joint computation. The topmost factor that businesses name as reason
for not collaborating, is their security concern in general and, in particular,
the confidentiality of business critical data.</p>
<!-- MORE -->
<p>While there are techniques (e.g., homomorphic encryption or secure multi-party
computation) that allow joint computations and, at the same time, that are
protecting the confidentiality of the data that flows into such a joint
computation, they are not widely used. One of the main problems that prevent
their adoption is their perceived performance overhead.</p>
<p>In our recently published journal paper
[brucker.ea:confidential-supply-chains:2025], which supercedes our earlier
conference version [brucker.ea:confidential-lca:2021], we address this problem
by an approach that utilized the structure of supply chains by decomposing
global computations into local groups, and applying secure multi-party
computation within each group. This results in a scalable (resulting in a
significant smaller runtime overhead than traditional approaches) and secure (i.
e., protecting the confidentiality of data provided by supply chain partners)
approach for joint computations within supply chains. We evaluate our approach
using life-cycle assessment (LCA) as a case study. Our experiments show that,
for instance, secure LCA computations even in supply chains with 15 partners are
possible within less than two minutes, while traditional approaches using secure
multi-party computation need more than a day.</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-brucker.ea:confidential-lca:2021" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">A. D. Brucker and S. Yalman, <span>“Confidentiality enhanced life-cycle assessment,”</span> in <em>BPMN 2021 workshops</em>, 2021. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-confidential-lca-2021/" class="uri">http://logicalhacking.com/publications/brucker.ea-confidential-lca-2021/</a></div>
</div>
<div id="ref-brucker.ea:confidential-supply-chains:2025" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[2] </div><div class="csl-right-inline">A. D. Brucker and S. Yalman, <span>“Ensuring confidentiality in supply chains with an application to life-cycle assessment,”</span> <em>Software: Practice and Experience (SPE)</em>, 2025, doi: <a href="https://doi.org/10.1002/smr.2763">10.1002/smr.2763</a>. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-confidential-supply-chains-2025/" class="uri">http://logicalhacking.com/publications/brucker.ea-confidential-supply-chains-2025/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>PhD Position in Verification of Golang</title>
    <link href="https://logicalhacking.com//blog/2025/01/25/phd-go-verification/" />
    <id>https://logicalhacking.com//blog/2025/01/25/phd-go-verification/</id>
    <published>2025-01-25T00:00:00Z</published>
    <updated>2025-01-25T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2025-01-25" pubdate data-updated="true">25 January 2025</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/uoe/">uoe</a> | <a href="/blog/tags/staff%26positions/">staff&amp;positions</a> | <a href="/blog/tags/test%26proof/">test&amp;proof</a> | <a href="/blog/tags/formalmethods/">formalmethods</a> | <a href="/blog/tags/programminglanguages/">programminglanguages</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2025/01/25/phd-go-verification/">PhD Position in Verification of Golang</a>
    </h1>
  </header>
  <p>We have an exciting funded opportunity for a PhD on developing “Verification Environment for Distributed Systems Implemented in Go”. The main objectives are to define a formal semantics of Go and its CSP-inspired concurrency model in an interactive theorem prover (e.g., Isabelle/HOL) as well as developing a calculus for program verification. This is a unique opportunity to work in the intersection of theory and application and while doing so, contributing to improving the state of the art in software correctness and security.</p>
<!-- MORE -->
<p>A detailed description of the PhD proposal is available at:</p>
<ul>
<li><a href="https://www.exeter.ac.uk/v8media/recruitmentsites/documents/A_Verification_Environment_for_Distributed_Systems_Implemented_in_Go_EPSRC_DLA_Project_September_2025_Entry.pdf">A Verification Environment for Distributed Systems Implemented in Go</a></li>
</ul>
<p>Information about the funding and application process is available at:</p>
<ul>
<li><a href="https://www.exeter.ac.uk/study/funding/award/?id=5477" class="uri">https://www.exeter.ac.uk/study/funding/award/?id=5477</a></li>
</ul>
<p>Application deadline is the midnight GMT on 10th of February 2025.</p>
<p>Please reach out to me, if you have any questions.</p>
</article>
]]></summary>
</entry>
<entry>
    <title>A deep embedding of Solidity in Isabelle/HOL</title>
    <link href="https://logicalhacking.com//blog/2025/01/07/isabelle-solidity/" />
    <id>https://logicalhacking.com//blog/2025/01/07/isabelle-solidity/</id>
    <published>2025-01-07T00:00:00Z</published>
    <updated>2025-01-07T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2025-01-07" pubdate data-updated="true"> 7 January 2025</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/solidity/">solidity</a> | <a href="/blog/tags/ProgramVerification/">ProgramVerification</a> | <a href="/blog/tags/Isabelle/HOL/">Isabelle/HOL</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2025/01/07/isabelle-solidity/">A deep embedding of Solidity in Isabelle/HOL</a>
    </h1>
  </header>
  <p>Smart contracts are computer programs designed to automate legal agreements.
They are usually developed in a high-level programming language, the most
popular of which is Solidity. Every day, hundreds of thousands of new contracts
are deployed managing millions of dollars worth of transactions. As for every
computer program, smart contracts may contain bugs which can be exploited.
However, since smart contracts are often used to automate financial
transactions, such exploits may result in huge economic losses. In general, it
is estimated that since 2019, more than $5B was stolen due to vulnerabilities in
smart contracts.</p>
<!-- MORE -->
<p>To address the issue of smart contract vulnerabilities we developed
Isabelle/Solidity. Isabelle/Solidity is, on the one hand, a deep embedding of an
executable denotational semantics for Solidity within the Isabelle/HOL
interactive theorem prover. On the other hand, Isabelle/Solidity is an
interactive program verification environment for Solidity smart contracts.</p>
<p>We describe Isabelle/Solidity in our latest publication in the journal Formal
Aspects of Computing <span class="citation" data-cites="marmsoler.ea:isabelle-solidity:2025">[1]</span>.</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-marmsoler.ea:isabelle-solidity:2025" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">D. Marmsoler and A. D. Brucker, <span>“A deep embedding of <span>Solidity</span> in <span>Isabelle/HOL</span>,”</span> <em>Formal Aspects of Computing (FAC)</em>, 2025, doi: <a href="https://doi.org/10.1145/3700601">10.1145/3700601</a>. Author copy: <a href="http://logicalhacking.com/publications/marmsoler.ea-isabelle-solidity-2025/" class="uri">http://logicalhacking.com/publications/marmsoler.ea-isabelle-solidity-2025/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>Does Every Computer Scientist Need to Know Formal Methods?</title>
    <link href="https://logicalhacking.com//blog/2024/12/10/who-needs-to-know-formal-methods/" />
    <id>https://logicalhacking.com//blog/2024/12/10/who-needs-to-know-formal-methods/</id>
    <published>2024-12-10T00:00:00Z</published>
    <updated>2024-12-10T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2024-12-10" pubdate data-updated="true">10 December 2024</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/teaching/">teaching</a> | <a href="/blog/tags/pedadogy/">pedadogy</a> | <a href="/blog/tags/FormalMethods/">FormalMethods</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2024/12/10/who-needs-to-know-formal-methods/">Does Every Computer Scientist Need to Know Formal Methods?</a>
    </h1>
  </header>
  <p>It is not a secret that any computer science curriculum needs to make hard
choices on which topic to include and which to not include (or only discuss very
lightly). On area whose fundamental need is not always obvious to everybody is
Formal Methods. In particular, when considering the ACM Curriculum for Computer
Science, the inclusion of Formal Methods as a mandatory Knowledge Area needs
arguing for why and how does every computer science graduate benefit from such
knowledge.</p>
<!-- MORE -->
<p>We do not agree with the sentence “While there is a belief that formal methods
are important, and they are growing in importance, we cannot state that every
computer science graduate will need to use formal methods in their career.” We
argue that formal methods are and have to be an integral part of every computer
science curriculum. Just as not all graduates will need to know how to work with
databases either, it is still important for students to have a basic
understanding of how data is stored and managed efficiently. The same way,
students have to understand why and how methods work, what their formal
background is, and how they are justified. No engineer should be ignorant of the
foundations of their subject and the formal methods based on these.</p>
<p>In our paper <span class="citation" data-cites="broy.ea:fm-in-cs-education:2025">[1]</span>, we aim to highlight why every
computer scientist needs to be familiar with formal methods. We argue that
education in formal methods plays a key role by shaping students’ programming
mindset, fostering an appreciation for underlying principles, and encouraging
the practice of thoughtful program design and justification, rather than simply
writing programs without reflection and deeper understanding. Since integrating
formal methods into the computer science curriculum is not a straightforward
process, we explore the additional question: what are the trade-offs between one
dedicated knowledge area of formal methods in a computer science curriculum
versus having formal methods scattered across all knowledge areas? Solving
problems while designing software and software-intensive systems demands an
understanding of what is required, followed by a specification and formalizing a
solution in a programming language. How to do this systematically and correctly
on solid grounds is exactly the supported by Formal Methods.</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-broy.ea:fm-in-cs-education:2025" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">M. Broy <em>et al.</em>, <span>“Does every computer scientist need to know formal methods?”</span> <em>Formal Aspects of Computing (FAC)</em>, 2025, doi: <a href="https://doi.org/10.1145/3670795">10.1145/3670795</a>. Author copy: <a href="http://logicalhacking.com/publications/broy.ea-fm-in-cs-education-2025/" class="uri">http://logicalhacking.com/publications/broy.ea-fm-in-cs-education-2025/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>Parametric Ontologies in Software Engineering</title>
    <link href="https://logicalhacking.com//blog/2024/11/16/parametric-ontologies/" />
    <id>https://logicalhacking.com//blog/2024/11/16/parametric-ontologies/</id>
    <published>2024-11-16T00:00:00Z</published>
    <updated>2024-11-16T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2024-11-16" pubdate data-updated="true">16 November 2024</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/test%26proof/">test&amp;proof</a> | <a href="/blog/tags/SoftwareEngineering/">SoftwareEngineering</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2024/11/16/parametric-ontologies/">Parametric Ontologies in Software Engineering</a>
    </h1>
  </header>
  <p>The linking of formal and informal information is perhaps the most pervasive
challenge in the digitization of modern society. Extracting knowledge from
reasonably well-structured “raw”-texts is a crucial prerequisite for any form of
advanced search, classification, “semantic” validation and “semantic” merge
technology. This challenge incites numerous research efforts summarized under
the labels “semantic web” or “data mining”. A key role in structuring this
linking is played by ontologies (also called “vocabulary” in semantic web
communities), i.e., a machine-readable form of the structure of documents and
the document discourse.</p>
<!-- MORE -->
<p>Such ontologies can be used for scientific discourse underlying scholarly
articles, the conversion, and integration of semiformal content, for advanced
semantic search in mathematical libraries or documentation in various domains.
In other words, ontologies generate the meta-data necessary to annotate raw
text allowing their “deeper analysis”, in particular inside mathematical
formulas or equivalent formal content such as programs or UML-models.</p>
<p>To support such scenarios, we developed Isabelle/DOF, an ontology framework on
top of Isabelle/HOL. It allows for the formal development of ontologies and
continuous conformity-checking of integrated documents, including the tracing of
typed meta-data of documents. Isabelle/DOF deeply integrates into the
Isabelle/HOL ecosystem, allowing to write documents containing (informal) text,
executable code, (formal and semiformal) definitions, and proofs. Users of
Isabelle/DOF can either use HOL or one of the many formal methods that have been
embedded into Isabelle/HOL to express formal parts of their documents.</p>
<p>In our most recent journal paper <span class="citation" data-cites="brucker.ea:parametric-ontologies:2025">[1]</span>, which
supersedes <span class="citation" data-cites="brucker.ea:deep-ontologies:2023">[2]</span>, we describe in detail, how we
extended Isabelle/DOF to support parametric ontological classes.</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-brucker.ea:parametric-ontologies:2025" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">A. D. Brucker, I. Ait-Sadoune, N. Méric, and B. Wolff, <span>“Parametric ontologies in formal software engineering,”</span> <em>Science of Computer Programming</em>, 2025, doi: <a href="https://doi.org/10.1016/j.scico.2024.103231">10.1016/j.scico.2024.103231</a>. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-parametric-ontologies-2025/" class="uri">http://logicalhacking.com/publications/brucker.ea-parametric-ontologies-2025/</a></div>
</div>
<div id="ref-brucker.ea:deep-ontologies:2023" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[2] </div><div class="csl-right-inline">A. D. Brucker, I. Ait-Sadoune, N. Méric, and B. Wolff, <span>“<a href>Using deep ontologies in formal software engineering</a>,”</span> in <em>International conference on rigorous state based methods (ABZ 2023)</em>, U. Glässer and D. Méry, Eds. Heidelberg: Springer-Verlag, 2023. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-deep-ontologies-2023/" class="uri">http://logicalhacking.com/publications/brucker.ea-deep-ontologies-2023/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>Secure Smart Contracts with Isabelle/Solidity</title>
    <link href="https://logicalhacking.com//blog/2024/11/04/secure-smart-contracts/" />
    <id>https://logicalhacking.com//blog/2024/11/04/secure-smart-contracts/</id>
    <published>2024-11-04T00:00:00Z</published>
    <updated>2024-11-04T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2024-11-04" pubdate data-updated="true"> 4 November 2024</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/smartcontracts/">smartcontracts</a> | <a href="/blog/tags/verification/">verification</a> | <a href="/blog/tags/security/">security</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2024/11/04/secure-smart-contracts/">Secure Smart Contracts with Isabelle/Solidity</a>
    </h1>
  </header>
  <p>Smart contracts are programs stored on the blockchain, often developed in a
high-level programming language, the most popular of which is Solidity. Smart
contracts are used to automate financial transactions and thus bugs can lead to
large financial losses.</p>
<!-- MORE -->
<p>For example, in 2016, a vulnerability in an Ethereum smart contract was
exploited, resulting in a loss of approximately $60M. More recently, hackers
exploited a vulnerability in the DeFi-platform Poly Network to steal $600M.
Overall, it is estimated that since 2019, more than $5B have been stolen due to
vulnerabilities in smart contracts. The high impact of vulnerabilities in smart
contracts, together with the fact that once deployed to the blockchain, they
cannot be updated or removed easily, makes it important to “get them right”
before they are deployed. To address this problem, we developed
Isabelle/Solidity, a shallow embedding of Solidity in Isabelle/HOL.</p>
<p>Isabelle/Solidity consists of a novel formalization of the Solidity storage
model, a shallow embedding of Solidity expressions and statements, an
implementation of Isabelle commands to support a user in specifying Solidity
smart contracts, and a verification condition generator to support a user in the
verification.</p>
<p>In our paper at the Software Engineering and Formal Methods (SEFM 2024)
conference <span class="citation" data-cites="marmsoler.ea:secure-smart-contracts:2024">[1]</span>, we describe
Isabelle/Solidity in more detail and also show how we ensure its compliance
to the official Solidity tooling.</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-marmsoler.ea:secure-smart-contracts:2024" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">D. Marmsoler, A. Ahmed, and A. D. Brucker, <span>“Secure smart contracts with <span>Isabelle/Solidity</span>,”</span> in <em>Software engineering and formal methods (SEFM)</em>, A. Madeira and A. Knapp, Eds. Heidelberg: Springer-Verlag, 2024. doi: <a href="https://doi.org/10.1007/978-3-031-77382-2_10">10.1007/978-3-031-77382-2_10</a>. Author copy: <a href="http://logicalhacking.com/publications/marmsoler.ea-secure-smart-contracts-2024/" class="uri">http://logicalhacking.com/publications/marmsoler.ea-secure-smart-contracts-2024/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>Welcome, Bethaina!</title>
    <link href="https://logicalhacking.com//blog/2024/10/14/welcome-bethaina/" />
    <id>https://logicalhacking.com//blog/2024/10/14/welcome-bethaina/</id>
    <published>2024-10-14T00:00:00Z</published>
    <updated>2024-10-14T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2024-10-14" pubdate data-updated="true">14 October 2024</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/uoe/">uoe</a> | <a href="/blog/tags/staff%26positions/">staff&amp;positions</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2024/10/14/welcome-bethaina/">Welcome, Bethaina!</a>
    </h1>
  </header>
  <p>I am happy to announce that Dr. Bethaina Touijer will join the
Software Assurance &amp; Security Research Team as a Postdoctoral Researcher.</p>
<!-- MORE -->
<p>Bethaina will work on developing formal methods for analysing business process logic, in
particular in the context of enterprise sytems.</p>
</article>
]]></summary>
</entry>
<entry>
    <title>Teaching Formal Methods as Part of a Security Module</title>
    <link href="https://logicalhacking.com//blog/2024/09/01/teaching-formal-methods/" />
    <id>https://logicalhacking.com//blog/2024/09/01/teaching-formal-methods/</id>
    <published>2024-09-01T00:00:00Z</published>
    <updated>2024-09-01T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2024-09-01" pubdate data-updated="true"> 1 September 2024</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/FormalMethods/">FormalMethods</a> | <a href="/blog/tags/teaching/">teaching</a> | <a href="/blog/tags/pedadogy/">pedadogy</a> | <a href="/blog/tags/security/">security</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2024/09/01/teaching-formal-methods/">Teaching Formal Methods as Part of a Security Module</a>
    </h1>
  </header>
  <p>The computer science curriculum at the University of Exeter focuses on the
applied software engineering and data science aspects. Hence, there are very few
modules focusing on the foundations and theory. Instead, of having dedicated
theory-focused modules, theory is embedded into applied modules. One such
example is our approach of integrating formal methods, mostly in the form of
model checking, into our second year undergraduate cyber security module.</p>
<!-- MORE -->
<p>In this module, we integrate a roughly three weeks long section on security
protocols, with a focus on their formal modelling and formal analysis. In these
three weeks, we use a holistic approach for teaching the security objectives of
security protocols, their analysis of actual implementations using a network
sniffer, their formal verification using a model checker (and comparing it to an
approaches based on interactive theorem proving).</p>
<p>This approach has been developed over the course of eight years at two UK
universities: The University of Sheffield and the University of Exeter. In
this paper, we focus on our experience in Exeter, at which we are offering the
module in the form discussed in this paper since the academic year 2019/2020.
While the module usually is delivered as synchronous in-person delivery, during
the COVID-19 pandemic we also delivered the module successfully as
(asynchronous) remote delivery. For the remote delivery, we replaced the
lectures by pre-recorded videos and the lab sessions had been taught in
flipped-classroom-style, with weekly synchronous drop-in sessions offered
online.</p>
<p>We report, in more detail, on our experience with this integrated approach in
our paper at the <a href="https://fmtea.github.io/">Formal Methods Teaching Workshop (FMTea
2024)</a> <span class="citation" data-cites="brucker.ea:fm-teaching:2024">[1]</span>. The workshop
will take place on the 10th of September 2024 – feel free to join us!</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-brucker.ea:fm-teaching:2024" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">A. D. Brucker and D. Marmsoler, <span>“Teaching formal methods in application domains: A case study in computer and network security,”</span> in <em>Formal methods teaching (FMTea 2024)</em>, L. Ribeiro and E. Sekerinski, Eds. Heidelberg: Springer-Verlag, 2024. doi: <a href="https://doi.org/10.1007/978-3-031-71379-8_8">10.1007/978-3-031-71379-8_8</a>. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-fm-teaching-2024/" class="uri">http://logicalhacking.com/publications/brucker.ea-fm-teaching-2024/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>Isabelle/DOF now in the AFP</title>
    <link href="https://logicalhacking.com//blog/2024/04/26/isabelle-dof-afp/" />
    <id>https://logicalhacking.com//blog/2024/04/26/isabelle-dof-afp/</id>
    <published>2024-04-26T00:00:00Z</published>
    <updated>2024-04-26T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2024-04-26" pubdate data-updated="true">26 April 2024</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2024/04/26/isabelle-dof-afp/">Isabelle/DOF now in the AFP</a>
    </h1>
  </header>
  <p>We are happy to announce that <a href="/software/isabelle-dof/">Isabelle/DOF</a>, our
document ontology framework on top of Isabelle/HOL, is now available in the
<a href="https://www.isa-afp.org/entries/Isabelle_DOF.html">Archive of Formal Proofs
(AFP)</a>.</p>
<!-- MORE -->
<p>While this seems a minor change in how Isabelle/DOF is distributed, it actually
is a major achievement for Isabelle/DOF. From now on, other entries of the AFP
can make use of Isabelle/DOF and the ontological modelling it provides.
Furthermore, this helps to ensure that Isabelle/DOF will also work with future
releases of Isabelle/HOL. Note that the AFP only contains the core of
Isabelle/DOF. We plan to make additional ontologies and document setups
available as an add-on package in the future.</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-brucker.ea:isabelle-dof-afp:2024" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">A. D. Brucker, N. Méric, and B. Wolff, <span>“<span>Isabelle/DOF</span>,”</span> <em>Archive of Formal Proofs</em>, Jan. 2024. <a href="https://www.isa-afp.org/entries/Isabelle_DOF.html" class="uri">https://www.isa-afp.org/entries/Isabelle_DOF.html</a>, Formal proof development. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-isabelle-dof-afp-2024/" class="uri">http://logicalhacking.com/publications/brucker.ea-isabelle-dof-afp-2024/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>PostDoc in Formal Methods for Business Process Logic</title>
    <link href="https://logicalhacking.com//blog/2024/03/20/postdoc-bpl/" />
    <id>https://logicalhacking.com//blog/2024/03/20/postdoc-bpl/</id>
    <published>2024-03-20T00:00:00Z</published>
    <updated>2024-03-20T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2024-03-20" pubdate data-updated="true">20 March 2024</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/uoe/">uoe</a> | <a href="/blog/tags/staff%26positions/">staff&amp;positions</a> | <a href="/blog/tags/test%26proof/">test&amp;proof</a> | <a href="/blog/tags/security/">security</a> | <a href="/blog/tags/formalmethods/">formalmethods</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2024/03/20/postdoc-bpl/">PostDoc in Formal Methods for Business Process Logic</a>
    </h1>
  </header>
  <p>As part of a US funded project, we have an exciting opportunity for a PostDoc in
the Security and Trust of Advanced Systems Group at the University of Exeter
(UK) to work applying formal methods to enterprise systems:</p>
<!-- MORE -->
<p>We will use formal methods (e.g., model checking, SMT solving, interactive
theorem proving), to analyze business-process-driven (enterprise) systems (e.g.,
business logic and workflows described a BPMN models). A particular focus will
be the analysis of complex compositions of workflows within one organization as
well as across multiple organizations.</p>
<p>In particular, we will develop novel techniques to detect faults and
vulnerabilities (that can be exploited by both internal and external attackers)
in complex business-process-driven systems, contributing to protecting critical
workflows such as manufacturing or logistics.</p>
<p>In such environments, attackers can exploit such faults and vulnerabilities to
cause all kinds of harm such as direct financial losses or causing the
production of safety or security critical products to stop. Overall, the project
aims to develop automated techniques for assessing the risk of business process
or workflows as well as finding and mitigating such attacks.</p>
<p>This is a unique opportunity for somebody wanting to use/apply formal methods to
the security of large enterprise systems.</p>
<p>More information and application details can be found at:</p>
<ul>
<li><a href="https://jobs.exeter.ac.uk/hrpr_webrecruitment/wrd/run/etrec179gf.open?WVID=171839ediw&amp;LANG=USA&amp;VACANCY_ID=386422ijTy" class="uri">https://jobs.exeter.ac.uk/hrpr_webrecruitment/wrd/run/etrec179gf.open?WVID=171839ediw&amp;LANG=USA&amp;VACANCY_ID=386422ijTy</a></li>
</ul>
<p>Application deadline is the 18th of April 2024. Please contact me for more details.</p>
</article>
]]></summary>
</entry>
<entry>
    <title>AutoCHERI @ Embedded World 2024</title>
    <link href="https://logicalhacking.com//blog/2024/03/08/autocheri-at-embedded-world/" />
    <id>https://logicalhacking.com//blog/2024/03/08/autocheri-at-embedded-world/</id>
    <published>2024-03-08T00:00:00Z</published>
    <updated>2024-03-08T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2024-03-08" pubdate data-updated="true"> 8 March 2024</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2024/03/08/autocheri-at-embedded-world/">AutoCHERI @ Embedded World 2024</a>
    </h1>
  </header>
  <p>The <a href="https://autocheri.tech/">AutoCHERI</a> project will have a strong
presence at the <a href="https://www.embedded-world.de/en">Embedded World Conference</a>
in Nuremberg, Germany. On the 10th of April 2024, there will be a presentation
introducing the project, in particular emphasizing the importance of memory safety
in the automotive sector. The following day, we will give a technical deep-dive
into memory safety.</p>
<!-- MORE -->
<p>Memory corruption vulnerabilities are one of the most common software
security vulnerabilities. While in many application areas, the use of
memory-safe languages is possible, this is often not the case for
embedded systems or low-level implementations such as operating
systems or network stacks.</p>
<p>We will discuss traditional approaches such as fuzzing, runtime pointer
tracking, and formal verification and compare them with a novel hard-ware based
solution. The latter is currently implemented in the Morello processor.</p>
<p>The Morello processor is an experimental multicore, superscalar
ARMv8-A processor, implemented as System-on-Chip that supported the
Capability Hardware Enhanced RISC Instructions (CHERI) set. CHERI
provides a fine-grained memory protection that allow historically
memory-unsafe programming languages such as C and C++ to be adapted to
provide strong, compatible, and efficient protection against many
currently widely exploited vulnerabilities.</p>
<p>Want to learn more? Join us at Embedded World in Nuremberg.</p>
</article>
]]></summary>
</entry>
<entry>
    <title>PhD Position in Verification of Golang</title>
    <link href="https://logicalhacking.com//blog/2024/03/01/phd-go-verification/" />
    <id>https://logicalhacking.com//blog/2024/03/01/phd-go-verification/</id>
    <published>2024-03-01T00:00:00Z</published>
    <updated>2024-03-01T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2024-03-01" pubdate data-updated="true"> 1 March 2024</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/uoe/">uoe</a> | <a href="/blog/tags/staff%26positions/">staff&amp;positions</a> | <a href="/blog/tags/formalmethods/">formalmethods</a> | <a href="/blog/tags/programminglanguages/">programminglanguages</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2024/03/01/phd-go-verification/">PhD Position in Verification of Golang</a>
    </h1>
  </header>
  <p>We have an exciting opportunity for PhD study with myself and
Prof. Burkhart Wolff from the Université Paris-Saclay on developing
a formal semantics for Go(lang) in Isabelle/HOL.</p>
<!-- MORE -->
<p>This is part of a new ‘double PhD’ programme leading to a PhD award
from the University of Exeter and the Université Paris-Saclay.</p>
<p>More information and application details can be found at:</p>
<ul>
<li>https://www.exeter.ac.uk/study/pg-research/funding/phdfunding/paris-saclay/</li>
<li>https://adum.fr/as/ed/voirproposition.pl?site=adumR&amp;matricule_prop=53822#version</li>
</ul>
<p>Application deadline is the 31st of March 2024. Please contact us for more details.</p>
</article>
]]></summary>
</entry>
<entry>
    <title>Formalizing Interval Arithmetic</title>
    <link href="https://logicalhacking.com//blog/2024/01/30/formalizing-interval-arithmetic/" />
    <id>https://logicalhacking.com//blog/2024/01/30/formalizing-interval-arithmetic/</id>
    <published>2024-01-30T00:00:00Z</published>
    <updated>2024-01-30T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2024-01-30" pubdate data-updated="true">30 January 2024</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2024/01/30/formalizing-interval-arithmetic/">Formalizing Interval Arithmetic</a>
    </h1>
  </header>
  <p>Interval analysis (also called interval arithmetic) is a well known mathematical
technique to analyze or mitigate rounding errors or measurement errors. Hence,
it is somewhat surprising that it has not yet been formalized in widely used
theorem provers.</p>
<!-- MORE -->
<p>With our work, we close this gap at least for Isabelle/HOL: we formalize
extended interval analysis, including the concept of inclusion isotone (or
inclusion isotonic) (extended) interval analysis. The main result is the formal
proof that interval-splitting converges for Lipschitz-continuous interval
isotone functions. From pragmatic perspective, we provide the datatypes and
theory required for integrating interval analysis into other formalizations and
applications. Your formalization is available as part of the <a href="https://www.isa-afp.org/entries/Interval_Analysis.html">Archive of Formal
Proofs (AFP)</a>
<span class="citation" data-cites="brucker.ea:interval-arithmetic-afp:2024">[1]</span>.</p>
<p>A high-level description of the work has been accepted at the International
Conference on Formal Methods in Software Engineering (FormaliSE 2024)
<span class="citation" data-cites="brucker.ea:interval-arithmetic:2024">[2]</span>. In this paper, we also motivate
applications of interval arithmetic in computer science, namely its
(preliminary) integration into program verification.</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-brucker.ea:interval-arithmetic-afp:2024" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">A. D. Brucker and A. Stell, <span>“<span>(Extended)</span> <span>Interval</span> <span>Analysis</span>,”</span> <em>Archive of Formal Proofs</em>, Jan. 2024. <a href="https://www.isa-afp.org/entries/Interval_Analysis.html" class="uri">https://www.isa-afp.org/entries/Interval_Analysis.html</a>, Formal proof development. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-interval-arithmetic-afp-2024/" class="uri">http://logicalhacking.com/publications/brucker.ea-interval-arithmetic-afp-2024/</a></div>
</div>
<div id="ref-brucker.ea:interval-arithmetic:2024" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[2] </div><div class="csl-right-inline">A. D. Brucker, T. Cameron-Burke, and A. Stell, <span>“Formally verified interval arithmetic and its application to program verification,”</span> 2024. doi: <a href="https://doi.org/10.1145/3644033.3644370">10.1145/3644033.3644370</a>. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-interval-arithmetic-2024/" class="uri">http://logicalhacking.com/publications/brucker.ea-interval-arithmetic-2024/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>Sneak Preview: Bsides Exeter 2024</title>
    <link href="https://logicalhacking.com//blog/2023/12/05/bsides-exe/" />
    <id>https://logicalhacking.com//blog/2023/12/05/bsides-exe/</id>
    <published>2023-12-05T00:00:00Z</published>
    <updated>2023-12-05T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2023-12-05" pubdate data-updated="true"> 5 December 2023</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2023/12/05/bsides-exe/">Sneak Preview: Bsides Exeter 2024</a>
    </h1>
  </header>
  <p>As a group, we are always happy to work with local groups and, for instance,
supporting local events. Since several years, we are working closely together
with they <a href="https://southwestcsc.org/">South West Cyber Security Cluster
(SWCSC)</a>.</p>
<!-- MORE -->
<p>We are proud to help to bring BSides to Exeter in 2024. <a href="https://bsidesexeter.co.uk">BSides
Exeter</a> will take place in 2024 on our lovely
Streatham Campus. Join the <a href="https://discord.com/invite/VGR2BDz3jq">BSides Exeter
Discord</a> to receive the latest updates.</p>
</article>
]]></summary>
</entry>
<entry>
    <title>Stateful Protocol Composition in Isabelle/HOL</title>
    <link href="https://logicalhacking.com//blog/2023/12/01/stateful-protocol-composition/" />
    <id>https://logicalhacking.com//blog/2023/12/01/stateful-protocol-composition/</id>
    <published>2023-12-01T00:00:00Z</published>
    <updated>2023-12-01T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2023-12-01" pubdate data-updated="true"> 1 December 2023</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/security/">security</a> | <a href="/blog/tags/protocolverfication/">protocolverfication</a> | <a href="/blog/tags/isabellehol/">isabellehol</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2023/12/01/stateful-protocol-composition/">Stateful Protocol Composition in Isabelle/HOL</a>
    </h1>
  </header>
  <p>Communication networks like the Internet form a large distributed system where a
huge number of components run in parallel, such as security protocols and
distributed web applications. For what concerns security, it is obviously
infeasible to verify them all at once as one monolithic entity; rather, one has
to verify individual components in isolation.</p>
<!-- MORE -->
<p>While many typical components like TLS have been studied intensively, there
exists much less research on analyzing and ensuring the security of the
composition of security protocols. This is a problem since the composition of
systems that are secure in isolation can easily be insecure. The main goal of
compositionality is thus a theorem of the form: given a set of components that
are already proved secure in isolation and that satisfy a number of
easy-to-check conditions, then also their parallel composition is secure. Said
conditions should of course also be realistic in practice, or better yet,
already be satisfied for many existing components. Another benefit of
compositionality is that when one would like to exchange a component with
another one, all that is needed is the proof that the new component is secure in
isolation and satisfies the composition conditions—without having to re-prove
anything about the other components.</p>
<p>In our recently paper <span class="citation" data-cites="hess.ea:stateful-protocol-composition:2023">[1]</span> (which
supersedes our conference paper <span class="citation" data-cites="hess.ea:stateful:2018">[2]</span>) that has
been accepted in the ACM Transactions on Privacy and Security.
In this paper, we present three contributions over previous work in parallel
compositionality. First, we extend the compositionality paradigm to
<em>stateful systems</em>: while previous approaches work only for simple
protocols that only have a local session state, our result supports
participants who maintain long-term <em>databases</em> that can be <em>shared</em>
among several protocols. This includes a paradigm for <em>declassification
of shared secrets</em>. This result is in fact so general that it also covers
many forms of <em>sequential composition</em> as a special case of stateful
parallel composition. Second, our compositionality result is formalized and
proved in Isabelle/HOL, providing a strong correctness guarantee of our
proofs. This also means that one can prove, without gaps, the security of an
entire system in Isabelle/HOL, namely the security of components in isolation,
the composition conditions, and thus derive the security of the entire system
as an Isabelle theorem. For the components one can also make use of our tool
PSPSP that can perform automatic proofs for many stateful protocols. Third,
for the compositionality conditions we have also implemented an automated
check procedure in Isabelle.</p>
<p>Want to learn more? Read our journal paper <span class="citation" data-cites="hess.ea:stateful-protocol-composition:2023">[1]</span>
or have a look at the formalization in Isabelle/HOL <span class="citation" data-cites="hess.ea:stateful:2020">[3]</span>.</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-hess.ea:stateful-protocol-composition:2023" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">A. V. Hess, S. A. Mödersheim, and A. D. Brucker, <span>“Stateful protocol composition in <span>Isabelle/HOL</span>,”</span> <em>ACM Transactions on Privacy and Security</em>, 2023, doi: <a href="https://doi.org/10.1145/3577020">10.1145/3577020</a>. Author copy: <a href="http://logicalhacking.com/publications/hess.ea-stateful-protocol-composition-2023/" class="uri">http://logicalhacking.com/publications/hess.ea-stateful-protocol-composition-2023/</a></div>
</div>
<div id="ref-hess.ea:stateful:2018" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[2] </div><div class="csl-right-inline">A. V. Hess, S. A. Mödersheim, and A. D. Brucker, <span>“Stateful protocol composition,”</span> in <em>ESORICS</em>, J. Lopez and J. Zhou, Eds. Heidelberg: Springer-Verlag, 2018, pp. 427–446. doi: <a href="https://doi.org/10.1007/978-3-319-99073-6">10.1007/978-3-319-99073-6</a>. Author copy: <a href="http://logicalhacking.com/publications/hess.ea-stateful-2018/" class="uri">http://logicalhacking.com/publications/hess.ea-stateful-2018/</a></div>
</div>
<div id="ref-hess.ea:stateful:2020" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[3] </div><div class="csl-right-inline">A. V. Hess, S. Mödersheim, and A. D. Brucker, <span>“Stateful protocol composition and typing,”</span> <em>Archive of Formal Proofs</em>, Apr. 2020. <a href="https://www.isa-afp.org/entries/Stateful_Protocol_Composition_and_Typing.html" class="uri">https://www.isa-afp.org/entries/Stateful_Protocol_Composition_and_Typing.html</a>, Formal proof development. Author copy: <a href="http://logicalhacking.com/publications/hess.ea-stateful-2020/" class="uri">http://logicalhacking.com/publications/hess.ea-stateful-2020/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>Fun in the REPL: Functional Programming in Isabelle</title>
    <link href="https://logicalhacking.com//blog/2023/10/23/fitr-isabelle-codegen/" />
    <id>https://logicalhacking.com//blog/2023/10/23/fitr-isabelle-codegen/</id>
    <published>2023-10-23T00:00:00Z</published>
    <updated>2023-10-23T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2023-10-23" pubdate data-updated="true">23 October 2023</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2023/10/23/fitr-isabelle-codegen/">Fun in the REPL: Functional Programming in Isabelle</a>
    </h1>
  </header>
  <p>I am looking forward to the <a href="https://plrg-bristol.github.io/fir/">Fun in the
REPL</a> in Bristol on the 1st of November
2023. This is part of the <a href="https://srepls.github.io/">S-REPLS</a> series.</p>
<!-- MORE -->
<p>As part of the meeting, I will give an introduction into Isabelle/HOL from the
perspective of a functional programming enthusiast. In particular, I will
introduce Isabelle/ML and its outstanding concept of anti-quotation that, for
instance, provide a static strongly typed “bridge” between Isabelle/HOL
and Isabelle/ML. Moreover, I will demonstrate Isabelle’s code generator that
supports SML, Haskell, Scala, OCaml, and as a novelty developed by us: F#.</p>
<p>See you in Bristol!</p>
</article>
]]></summary>
</entry>
<entry>
    <title>Welcome, Teddy!</title>
    <link href="https://logicalhacking.com//blog/2023/09/23/welcome-teddy/" />
    <id>https://logicalhacking.com//blog/2023/09/23/welcome-teddy/</id>
    <published>2023-09-23T00:00:00Z</published>
    <updated>2023-09-23T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2023-09-23" pubdate data-updated="true">23 September 2023</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/uoe/">uoe</a> | <a href="/blog/tags/staff%26positions/">staff&amp;positions</a> | <a href="/blog/tags/phdlife/">phdlife</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2023/09/23/welcome-teddy/">Welcome, Teddy!</a>
    </h1>
  </header>
  <p>I am happy to announce that <a href="https://emps.exeter.ac.uk/computer-science/staff/tc599">Teddy Cameron-Burke</a> will join the
Software Assurance &amp; Security Research Team as a PhD student.</p>
<!-- MORE -->
<p>Teddy got his BSc in Computer Science and Mathematics from the University of Exeter. In his BSc
project, he formalized homomorphic encryption in Isabelle/HOL. Teddy will continue to work
with Isabelle in his PhD project, focusing on developing novel verification approaches
for domain-specific programming languages, e.g., for the development of cyber-physical
systems.</p>
</article>
]]></summary>
</entry>
<entry>
    <title>Congratulations to Sakine on passing her PhD viva!</title>
    <link href="https://logicalhacking.com//blog/2023/06/13/congrats-sakine/" />
    <id>https://logicalhacking.com//blog/2023/06/13/congrats-sakine/</id>
    <published>2023-06-13T00:00:00Z</published>
    <updated>2023-06-13T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2023-06-13" pubdate data-updated="true">13 June 2023</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/phdlife/">phdlife</a> | <a href="/blog/tags/uoe/">uoe</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2023/06/13/congrats-sakine/">Congratulations to Sakine on passing her PhD viva!</a>
    </h1>
  </header>
  <p>Many congratulations to Sakine Yalman who passed her PhD viva with minor
corrections!</p>
<!-- MORE -->
<p>Sakine’s PhD thesis <span class="citation" data-cites="yalman:confidentiality:2023">[1]</span> entitled “Improving Confidentiality Inter-Organizational
Collaborations” presents a novel approach for improving the collaboration
between organisations, for instance, within supply-chains while ensuring the
confidentiality of data. During her PhD, Sakine published a first paper
<span class="citation" data-cites="brucker.ea:confidential-lca:2021">[2]</span> and a further journal submission is already
planned.</p>
<p>Well done Sakine and good luck in your future!!!</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-yalman:confidentiality:2023" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">S. Yalman, <span>“Improving confidentiality in inter-organizational collaborations,”</span> PhD thesis, University of Exeter, 2019. <a href="https://ore.exeter.ac.uk/repository/handle/10871/134294/">https://ore.exeter.ac.uk/repository/handle/10871/134294/</a></div>
</div>
<div id="ref-brucker.ea:confidential-lca:2021" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[2] </div><div class="csl-right-inline">A. D. Brucker and S. Yalman, <span>“Confidentiality enhanced life-cycle assessment,”</span> in <em>BPMN 2021 workshops</em>, 2021. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-confidential-lca-2021/" class="uri">http://logicalhacking.com/publications/brucker.ea-confidential-lca-2021/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>ABZ 2023: Deep Ontologies in Software Engineering</title>
    <link href="https://logicalhacking.com//blog/2023/05/20/deep-ontologies/" />
    <id>https://logicalhacking.com//blog/2023/05/20/deep-ontologies/</id>
    <published>2023-05-20T00:00:00Z</published>
    <updated>2023-05-20T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2023-05-20" pubdate data-updated="true">20 May 2023</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2023/05/20/deep-ontologies/">ABZ 2023: Deep Ontologies in Software Engineering</a>
    </h1>
  </header>
  <p>Prof. Burkhart Wolff from the University Paris-Saclay will present our
joint work on Isabelle/DOF as a keynote speaker at the <a href="https://abz-conf.org/2023/">International
Conference on Rigorous State Based Methods (ABZ 2023)</a>.</p>
<!-- MORE -->
<p>Isabelle/DOF is an ontology framework on top of Isabelle. It
allows for the formal development of ontologies as well as
continuous conformity-checking of integrated documents
annotated by ontological data. An integrated document may
contain text, code, definitions, proofs, and user-programmed
constructs supporting a wide range of formal methods.
Isabelle/DOF is designed to leverage traceability in integrated
documents by supporting navigation in Isabelle’s IDE as
well as the document generation process.</p>
<p>The keynote will, in particular, address recent extensions
of Isabelle/DOF with annotations of lambda-terms, a pervasive
data-structure underlying Isabelle used to syntactically represent
expressions and formulas. Rather than introducing an own programming
language for meta-data, we use Higher-order Logic (HOL) for expressions,
data-constraints, ontological invariants, and queries via code-generation
and reflection. This allows both for powerful query languages and logical
reasoning over ontologies in, for example, ontological mappings.
Our application examples cover documents targeting formal certifications
such as CENELEC 50128 or Common Criteria.</p>
<p>For more details, please have look at our paper that is part of the
ABZ 2023 proceedings <span class="citation" data-cites="brucker.ea:deep-ontologies:2023">[1]</span>.</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-brucker.ea:deep-ontologies:2023" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">A. D. Brucker, I. Ait-Sadoune, N. Méric, and B. Wolff, <span>“<a href>Using deep ontologies in formal software engineering</a>,”</span> in <em>International conference on rigorous state based methods (ABZ 2023)</em>, U. Glässer and D. Méry, Eds. Heidelberg: Springer-Verlag, 2023. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-deep-ontologies-2023/" class="uri">http://logicalhacking.com/publications/brucker.ea-deep-ontologies-2023/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>Research Stay at The University Paris-Saclay</title>
    <link href="https://logicalhacking.com//blog/2023/04/24/visiting-paris-saclay/" />
    <id>https://logicalhacking.com//blog/2023/04/24/visiting-paris-saclay/</id>
    <published>2023-04-24T00:00:00Z</published>
    <updated>2023-04-24T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2023-04-24" pubdate data-updated="true">24 April 2023</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2023/04/24/visiting-paris-saclay/">Research Stay at The University Paris-Saclay</a>
    </h1>
  </header>
  <p>From 8th of May to 8th of June, I will be staying at the University Paris-Saclay. I will
be staying with the <a href="https://lmf.cnrs.fr/">Laboratoire Méthodes Formelles (LMF)</a>, which
kindly is hosting me.</p>
<!-- MORE -->
<p>During my visit, I will focus on existing collaborations with the group of Prof. Burkhart
Wolff (e.g., the continued development of Isabelle/DOF) and I am also looking forward
to meet new people. Please reach out to me, if you happen to be in Paris and want to meet.</p>
</article>
]]></summary>
</entry>
<entry>
    <title>Security by Design for Smart Vehicles</title>
    <link href="https://logicalhacking.com//blog/2023/03/28/swcsc-dsbd-autocheri/" />
    <id>https://logicalhacking.com//blog/2023/03/28/swcsc-dsbd-autocheri/</id>
    <published>2023-03-28T00:00:00Z</published>
    <updated>2023-03-28T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2023-03-28" pubdate data-updated="true">28 March 2023</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2023/03/28/swcsc-dsbd-autocheri/">Security by Design for Smart Vehicles</a>
    </h1>
  </header>
  <p>As part of the 16th edition of <a href="https://southwestcsc.org/secure-south-west-16/">Secure South
West</a>, we will present work we
are doing as part of the <a href="https://autocheri.tech/">AutoCHERI</a> on applying Secure
by Design principle to smart vehicles.</p>
<!-- MORE -->
<p>In particular, we will show the cybersecurity threats to modern connected
vehicles and discuss how <a href="https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/">Capability Hardware Enhanced RISC Instructions
(CHERI)</a> can help. CHERI
is a novel hardware extension that helps to prevent memory overflows, and also
provides compartmentalization. These features promise to make smart vehicles
more secure while saving costs.</p>
<p>Want to learn more? Join us, on the 16th of April 2023, at <a href="https://southwestcsc.org/secure-south-west-16/">Secure South
West</a> in Exeter.</p>
</article>
]]></summary>
</entry>
<entry>
    <title>Secure South West 16</title>
    <link href="https://logicalhacking.com//blog/2023/03/17/secure-south-west/" />
    <id>https://logicalhacking.com//blog/2023/03/17/secure-south-west/</id>
    <published>2023-03-17T00:00:00Z</published>
    <updated>2023-03-17T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2023-03-17" pubdate data-updated="true">17 March 2023</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/events/">events</a> | <a href="/blog/tags/security/">security</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2023/03/17/secure-south-west/">Secure South West 16</a>
    </h1>
  </header>
  <p>For the first time, we are hosting <em>Secure South West</em> on our lovely Streatham Campus in Exeter. Secure South West is organised by <a href="https://southwestcsc.org/secure-south-west-16/">South West Cyber Security Cluster</a>. This year, it focuses on Smart Systems Security.</p>
<!-- MORE -->
<p>Smart Systems bring sensor-based intelligence into connected places and the enterprise, helping make predictive decisions – its cognitive intelligence brought into our IT and business management systems. But this Operational Technology also brings new risks at both the societal and business levels. These systems are built differently, usually with cost and power priorities that create new challenges to securing both their sensor/actuator data flows and the IT systems they interface with. This event will explore all aspects of cyber security for those interested in, considering adopting or actively using these smart sensors and systems. We will cover policy and regulatory requirements, innovative cyber security techniques, skills, and the latest cybersec technology so that best practice can be shared into all these application areas, empowering smart systems developers and adopters to build safe and secure infrastructure.</p>
<p><a href="https://www.eventbrite.co.uk/e/benefiting-from-smart-systems-understand-cyber-risk-tickets-563653531887">Attendance is free, register here!</a></p>
</article>
]]></summary>
</entry>
<entry>
    <title>Verification of Feedforward Networks</title>
    <link href="https://logicalhacking.com//blog/2023/02/28/verification-of-feedforward-networks/" />
    <id>https://logicalhacking.com//blog/2023/02/28/verification-of-feedforward-networks/</id>
    <published>2023-02-28T00:00:00Z</published>
    <updated>2023-02-28T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2023-02-28" pubdate data-updated="true">28 February 2023</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/formalverification/">formalverification</a> | <a href="/blog/tags/test%40proof/">test@proof</a> | <a href="/blog/tags/neuralnetwork/">neuralnetwork</a> | <a href="/blog/tags/ML/AI/">ML/AI</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2023/02/28/verification-of-feedforward-networks/">Verification of Feedforward Networks</a>
    </h1>
  </header>
  <p>Feedforward neural networks are used very successfully in many applications
areas, e.g., image recognition. Still, it is well known that neural networks are
susceptible if small changes applied to their input result in misclassification.
Situations in which such a slight input change, often hardly noticeable by a
human expert, results in a misclassification are called adversarial attacks.
Such attacks can be life-threatening if, for example, they occur in image
classification systems used in autonomous cars or medical diagnosis.</p>
<!-- MORE -->
<p>Systems employing neural networks, e.g., for safety or security critical
functionality, are a particular challenge for formal verification, which usually
expects a program (e.g., given as source code in a programming language). Such a
program does, per se, not exist for neural networks.</p>
<p>To address this challenge, we developed a formal embedding of feedforward neural
networks into Isabelle/HOL, together with a discussion of properties that are
desirable for neural networks in critical applications. Our Isabelle-based
prototype can import neural networks trained in TensorFlow, and we demonstrate
our approach using a neural network trained for the classification of digits.</p>
<p>We will present our work next week at the <a href="https://fm2023.isp.uni-luebeck.de/">Formal Methods (FM
2023)</a> conference in Lübeck, Germany.</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-brucker.ea:feedforward-nn-verification:2023" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">A. D. Brucker and A. Stell, <span>“Verifying feedforward neural networks for classification in <span>Isabelle/HOL</span>,”</span> in <em>Formal methods (FM 2023)</em>, M. Chechik, J.-P. Katoen, and M. Leucker, Eds. Heidelberg: Springer-Verlag, 2023. doi: <a href="https://doi.org/10.1007/978-3-031-27481-7_24">10.1007/978-3-031-27481-7_24</a>. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-feedforward-nn-verification-2023/" class="uri">http://logicalhacking.com/publications/brucker.ea-feedforward-nn-verification-2023/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>Stateful Protocol Composition in Isabelle/HOL</title>
    <link href="https://logicalhacking.com//blog/2022/12/30/protocol-composition/" />
    <id>https://logicalhacking.com//blog/2022/12/30/protocol-composition/</id>
    <published>2022-12-30T00:00:00Z</published>
    <updated>2022-12-30T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2022-12-30" pubdate data-updated="true">30 December 2022</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/isabelle/hol/">isabelle/hol</a> | <a href="/blog/tags/security/">security</a> | <a href="/blog/tags/formalmethods/">formalmethods</a> | <a href="/blog/tags/verification/">verification</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2022/12/30/protocol-composition/">Stateful Protocol Composition in Isabelle/HOL</a>
    </h1>
  </header>
  <p>Usually, security protocols are not executed in isolation. Actually, manny
different security protocols usually run in parallel. Still, while the security
properties of many of these protocols, e.g., TLS, have been analyzed in great
detail, much less research has been devoted to their parallel composition. And,
it is far from self-evident that the parallel composition of secure protocols is
still secure.</p>
<!-- MORE -->
<p>For example, different protocols may have a similar message structures of
different meaning, so that an attacker may be able to abuse messages, or parts
thereof, that they have learned in the context of one protocol, and use them in
the context of another where the same structure has a different meaning. Thus,
we have to exclude that the protocols in some sense “interfere” with each other.
However, it is unreasonable to require that the developers of the different
protocols have to work together and synchronize with each other. Similarly, we
do not want to reason about the composition of several protocols as a whole,
neither in manual nor automated verification. Instead, we want a set of
sufficient conditions and a composition theorem of the form: every set of
protocols that satisfies the conditions yields a secure composition, provided
that each protocol is secure in isolation. The conditions should be realistic so
that many existing protocols like TLS actually satisfy them, and they should be
simple, in the sense that checking them is a static task that does not involve
considering the reachable states.</p>
<p>In our recent paper <span class="citation" data-cites="hess.ea:stateful-protocol-composition:2023">[1]</span> in the ACM
Transactions on Privacy and Security, we present a formalization of stateful
protocol composition in Isabelle/HOL, together with a formal verification
approach also implemented in Isabelle/HOL. We extend the compositionality
paradigm to <em>stateful</em> protocols, where participants may maintain a database
(e.g., a list of valid public keys). Such databases do not necessarily grow
monotonically during protocol execution—we allow, e.g., negative membership
checks and deletion of elements from databases. Moreover, we allow databases to
be <em>shared</em> between the protocols to be composed. For instance, in the example
of public keys, there could be several protocols for registering, certifying,
and revoking keys that all work on the same public-key database. Since such a
shared database can potentially be exploited by the intruder to trigger harmful
interference, an important part of our result is a clear coordination of the
ways in which each protocol is allowed to access the database. This coordination
is based on assumptions and guarantees on the transactions that involve the
database. Moreover, this also allows us to support protocols with the
declassification of long-term secrets (e.g., that the private key to a revoked
public key may be learned by the intruder without breaking the security goals).
The result is so general that it actually also covers many forms of <em>sequential
composition</em> as a special case, since one can for instance model that one
protocol inserts keys into a database of fresh session keys, and another
protocol “consumes” and uses them. Our main contributions are:</p>
<ol type="1">
<li>We extend the compositionality paradigm to <em>stateful protocols</em>. In
particular, our result supports participants who maintain long-term
<em>databases</em> that can be <em>shared</em> among several protocols, and a paradigm for
<em>declassification of shared secrets</em>. Our result is so general that it also
covers various forms of <em>sequential composition</em> as a special case.</li>
<li>Our compositionality result is formalized and proved in the interactive
theorem prover Isabelle/HOL, providing a strong correctness guarantee of our
proofs. This means that one can prove the security of a composed protocol in
Isabelle by proving the security of the components in isolation and checking
the compositionality conditions, and thus derive the security of the
composition as an Isabelle theorem.</li>
<li>We implemented checks for the compositionality conditions in Isabelle/HOL,
so that they can be checked automatically.</li>
<li>We have connected the compositionality result to our tool
PSPSP <span class="citation" data-cites="hess.ea:automated:2020">[2]</span> that can perform automatic proofs for many
stateful protocols in Isabelle. This extends PSPSP (for protocols supported
by PSPSP) with a composable verification method.</li>
</ol>
<p>All of our theory and proofs are published and maintained in the Archive of
Formal Proofs (AFP) <span class="citation" data-cites="hess.ea:automated:2020 hess.ea:stateful:2020">[2], [3]</span>. The
overall formalization is over 27000 lines of code (over 8000 more lines than the
conference version) and took about 36 person months to develop.</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-hess.ea:stateful-protocol-composition:2023" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">A. V. Hess, S. A. Mödersheim, and A. D. Brucker, <span>“Stateful protocol composition in <span>Isabelle/HOL</span>,”</span> <em>ACM Transactions on Privacy and Security</em>, 2023, doi: <a href="https://doi.org/10.1145/3577020">10.1145/3577020</a>. Author copy: <a href="http://logicalhacking.com/publications/hess.ea-stateful-protocol-composition-2023/" class="uri">http://logicalhacking.com/publications/hess.ea-stateful-protocol-composition-2023/</a></div>
</div>
<div id="ref-hess.ea:automated:2020" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[2] </div><div class="csl-right-inline">A. V. Hess, S. Mödersheim, A. D. Brucker, and A. Schlichtkrull, <span>“Automated stateful protocol verification,”</span> <em>Archive of Formal Proofs</em>, Apr. 2020. <a href="https://www.isa-afp.org/entries/Automated_Stateful_Protocol_Verification.html" class="uri">https://www.isa-afp.org/entries/Automated_Stateful_Protocol_Verification.html</a>, Formal proof development. Author copy: <a href="http://logicalhacking.com/publications/hess.ea-automated-2020/" class="uri">http://logicalhacking.com/publications/hess.ea-automated-2020/</a></div>
</div>
<div id="ref-hess.ea:stateful:2020" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[3] </div><div class="csl-right-inline">A. V. Hess, S. Mödersheim, and A. D. Brucker, <span>“Stateful protocol composition and typing,”</span> <em>Archive of Formal Proofs</em>, Apr. 2020. <a href="https://www.isa-afp.org/entries/Stateful_Protocol_Composition_and_Typing.html" class="uri">https://www.isa-afp.org/entries/Stateful_Protocol_Composition_and_Typing.html</a>, Formal proof development. Author copy: <a href="http://logicalhacking.com/publications/hess.ea-stateful-2020/" class="uri">http://logicalhacking.com/publications/hess.ea-stateful-2020/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>Thoughts on PGT and PGR Programmes</title>
    <link href="https://logicalhacking.com//blog/2022/11/25/pgt-vs-pgr/" />
    <id>https://logicalhacking.com//blog/2022/11/25/pgt-vs-pgr/</id>
    <published>2022-11-25T00:00:00Z</published>
    <updated>2022-11-25T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2022-11-25" pubdate data-updated="true">25 November 2022</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/uoe/">uoe</a> | <a href="/blog/tags/phd/">phd</a> | <a href="/blog/tags/staff%26positions/">staff&amp;positions</a> | <a href="/blog/tags/msc/">msc</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2022/11/25/pgt-vs-pgr/">Thoughts on PGT and PGR Programmes</a>
    </h1>
  </header>
  <p>Universities in the UK (and the discussion in this post is based, and most
likely limited to, the UK academic sector) accept students with a UG (BSc)
degree into their PhD programs. Thus, students in the UK often wonder about the
differences between doing a postgraduate taught degree and a postgraduate
research degree. But also if you have already your MSc finished (or are close to
finishing it) and are considering applying for a PhD programme, it will be
useful to understand the differences in the application and selection process.</p>
<!-- MORE -->
<p>One of important difference between a taught program and a research program is
that a <em>research program is an individual programme</em>: it is all about you (and
your supervisor). In contrast, a taught program is mass event (the “mass” can be
relatively small, i.e., cohort sizes of postgraduate taught programs are often
in the medium double-digit range). This has consequences on selecting the right
university (or research group) and strategies for making your application
successful.</p>
<h2 class="sectionAnchor" id="taught-postgraduate-programs">Taught Postgraduate Programs <a href="#taught-postgraduate-programs">§</a></h2>
<p>Let’s start with looking at <em>Taught Postgraduate Programs.</em> When applying for an
MSc programme, you are often one of hundredths applicants and decision if your
application is successful or not, is often taken by a dedicated admissions team,
based on your marks in your undergraduate studies, checking that you satisfy the
admission criteria. Only in exceptional cases, when, for instance, you want to
replace certain requirements (e.g., an undergraduate degree that teaches
programming) by job experience (e.g., if you worked as a software developer),
your application is read carefully by an academic.</p>
<p>Of course, you want to study at a university with a good reputation. But, most
importantly, you want to learn the topics that really motivate you and that
build the basis for your envisioned career path. Hence, carefully check the
description of the programmes you are applying for (and for the modules offered)
to avoid disappointments. For example, not every programme that has
``cybersecurity’’ in its title, will cover those areas of cybersecurity that you
are interested in. This will also help you, if you are considering a PhD after
your MSc: PhD supervisors consider it an advantage, if they have already
supervised the M.Sc. Research Project of a student. And, if the M.Sc. Research
Project and your PhD topic are aligned, it gives you a head-start for your PhD.</p>
<h2 class="sectionAnchor" id="research-postgraduate-programs">Research Postgraduate Programs <a href="#research-postgraduate-programs">§</a></h2>
<p>While, in the following, I am focusing on PhD programmes, similar consideration
are valid for the much less common degree “MSc by Research” (a one-year MSc
degree that is purely based on an individual research project). A postgraduate
research program, as the name suggests, focuses on <em>research</em>. There are usually
only a few taught modules (e.g., in the UK it is very common that research
students need to complete a module on research methodology). Hence, both the
application process and the PhD studies are centered around you, our research
topic, and your relationship to your PhD supervisor. This observation should
guide both the selection of the best suitable supervisor and the documents that
your application process</p>
<p>If you want to do a PhD in a certain topic (and, if you want to do a PhD, you
should have an idea, in which area you want to do it), look out for potential
supervisors that are knowledge in your area of interest, e.g., they have
published papers that are, broadly speaking, relevant to your PhD topic. For
example, even though I am doing a lot of research in cybersecurity, there are
many areas of cybersecurity, I am not supervising students on, because I lack
the necessary expertise.</p>
<p>In your application, you should demonstrate that the expertise of your future
supervisor is useful for your PhD topic. Ideally, your application refers to one
or several papers written by the research group you are applying at. In a
certain way, the reputation of the university is less important (compared to a
taught programme). Rather, try to understand if your research topic and your
personality fits well into the research area and supervisory style of your
week/month: some supervisors meet their PhD candidates at least weekly, others
future supervisor. For example, how many supervisory meetings are planned per
only every other week or less often. Similarly, some supervisors are more
involved in the actual research than others. What is best for you, depends on
your personal needs and your research topic. Some topics require a closer
supervision than others. If accepted, you will need to work with this supervisor
for the next 3 to 5 years. Also, at the end of your PhD, your individual work
will be assessed both by the PhD committee and by future employers (that will
also look at your publications and your PhD thesis).</p>
</article>
]]></summary>
</entry>
<entry>
    <title>1 + 0 = 1 - often but not always</title>
    <link href="https://logicalhacking.com//blog/2022/10/04/surprising-arithmetic/" />
    <id>https://logicalhacking.com//blog/2022/10/04/surprising-arithmetic/</id>
    <published>2022-10-04T00:00:00Z</published>
    <updated>2022-10-04T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2022-10-04" pubdate data-updated="true"> 4 October 2022</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/security/">security</a> | <a href="/blog/tags/bug/">bug</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2022/10/04/surprising-arithmetic/">1 + 0 = 1 - often but not always</a>
    </h1>
  </header>
  <p>Numbers play an important role in our everyday life. And computers are known two
work fast and efficiently with numbers, hence their name. Therefore, it might
come as a surprise that numbers, as represented by modern computers, do not
always behave as one expects.</p>
<!-- MORE -->
<p>For example, consider the simple computation of computing the sum
of 0.1 and 0.2:</p>
<div class="sourceCode" id="cb1"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a>In [<span class="dv">1</span>]: <span class="fl">0.1</span><span class="op">+</span><span class="fl">0.2</span></span>
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a>Out[<span class="dv">1</span>]: <span class="fl">0.30000000000000004</span></span></code></pre></div>
<p>Which does not produce the expected result of 0.3. Also, there are numbers to
which we can add one, and still yield the same number:</p>
<div class="sourceCode" id="cb2"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a>In [<span class="dv">2</span>]: <span class="fl">1e16</span><span class="op">+</span><span class="dv">1</span> <span class="op">==</span> <span class="fl">1e16</span></span>
<span id="cb2-2"><a href="#cb2-2" aria-hidden="true" tabindex="-1"></a>Out[<span class="dv">2</span>]: <span class="va">True</span></span></code></pre></div>
<p>Both behaviors are due to the specific representation of floating point numbers
using the IEEE-754 standard. These numbers are not, as many might assume, a
faithful representation of mathematical reals: they are an approximation with a
lot of corner cases that one needs to take care of when implementing safety of
security critical software - or software, that just should be correct.</p>
<p>Ok, floating point numbers are difficult. But integers are much simpler and work
as expected, right? Consider the following program, running on an imaginary
8-Bit Computer:</p>
<div class="sourceCode" id="cb3"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="pp">#include </span><span class="im">&lt;stdio.h&gt;</span></span>
<span id="cb3-2"><a href="#cb3-2" aria-hidden="true" tabindex="-1"></a><span class="dt">int</span> main<span class="op">()</span> <span class="op">{</span></span>
<span id="cb3-3"><a href="#cb3-3" aria-hidden="true" tabindex="-1"></a>      <span class="dt">signed</span> <span class="dt">int</span> x<span class="op">=</span><span class="dv">70</span><span class="op">;</span> <span class="co">// Let's assume 8-Bit integers, i.e.,  we</span></span>
<span id="cb3-4"><a href="#cb3-4" aria-hidden="true" tabindex="-1"></a>      <span class="dt">signed</span> <span class="dt">int</span> y<span class="op">=</span><span class="dv">50</span><span class="op">;</span> <span class="co">// can represent numbers between -128 and 127. </span></span>
<span id="cb3-5"><a href="#cb3-5" aria-hidden="true" tabindex="-1"></a>  </span>
<span id="cb3-6"><a href="#cb3-6" aria-hidden="true" tabindex="-1"></a>      <span class="cf">if</span> <span class="op">(</span>x <span class="op">+</span> y <span class="op">&gt;</span> <span class="dv">0</span><span class="op">){</span></span>
<span id="cb3-7"><a href="#cb3-7" aria-hidden="true" tabindex="-1"></a>          printf<span class="op">(</span><span class="st">&quot;Hello World</span><span class="sc">\n</span><span class="st">&quot;</span><span class="op">);</span></span>
<span id="cb3-8"><a href="#cb3-8" aria-hidden="true" tabindex="-1"></a>      <span class="op">}</span><span class="cf">else</span><span class="op">{</span></span>
<span id="cb3-9"><a href="#cb3-9" aria-hidden="true" tabindex="-1"></a>          printf<span class="op">(</span><span class="st">&quot;Hello Universe</span><span class="sc">\n</span><span class="st">&quot;</span><span class="op">);</span></span>
<span id="cb3-10"><a href="#cb3-10" aria-hidden="true" tabindex="-1"></a>      <span class="op">}</span></span>
<span id="cb3-11"><a href="#cb3-11" aria-hidden="true" tabindex="-1"></a>      <span class="cf">return</span> <span class="dv">0</span><span class="op">;</span></span>
<span id="cb3-12"><a href="#cb3-12" aria-hidden="true" tabindex="-1"></a><span class="op">}</span></span></code></pre></div>
<p>Assuming 8-Bit integers, the maximum positive number that can be represented
is 255. Actually, 142+130 yields here -3, which shows the unexpected behavior
that adding two positive numbers can result in a negative result.</p>
<p>These special cases can lead to functional errors as well as being the root
cause of severe security vulnerabilities.</p>
<p>Will discuss these examples and others, and how they can result in security
vulnerabilities in my talk at the <a href="https://www.heise-devsec.de/">Heise devSec
conference</a> that takes place from the 4th to 6th of
October 2022 in Karlsruhe, Germany.</p>
</article>
]]></summary>
</entry>
<entry>
    <title>We need you: Clients for Student Projects</title>
    <link href="https://logicalhacking.com//blog/2022/09/05/call-for-software-projects/" />
    <id>https://logicalhacking.com//blog/2022/09/05/call-for-software-projects/</id>
    <published>2022-09-05T00:00:00Z</published>
    <updated>2022-09-05T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2022-09-05" pubdate data-updated="true"> 5 September 2022</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/uoe/">uoe</a> | <a href="/blog/tags/softwareeinginering/">softwareeinginering</a> | <a href="/blog/tags/studentproject/">studentproject</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2022/09/05/call-for-software-projects/">We need you: Clients for Student Projects</a>
    </h1>
  </header>
  <p>As part of their fourth year of their integrated Masters degree, our computer
science students are working on a group software development project. This means
a team of five to seven students (equating to an effort of 1500 to 2100 hours in
total) develops a piece of software for a client. Which client? Maybe you!</p>
<!-- MORE -->
<p>The main goal of this software development project is to give our students the
experience to work on a real software project for a real client. While in
previous years, clients were members of the university, we are this year
actively searching for clients from outside the university.</p>
<p>The student teams will be supervised by an academic from the computer science
department. And, as a client (project owner), you will decide what the students
will build. For this, you will be asked to regularly attend meetings with the
student team to ensure that the final results satisfy your needs.</p>
<p>If you have an idea of a project, and are unsure if it is the right git, just
<a href="https://computerscience.exeter.ac.uk/staff/ab1185">contact us.</a> We need your
ideas until Friday, 23 September 2022 to allow the teams to start in October
2023 with their work. The students will aim for having a first prototype
finished in early January 2023 and the handover of the final product should
happen before Easter 2023.</p>
<p>For example, last year our students developed a social platform the economists
for which further development has been taken on by an external software company
or research prototypes for the Engineering Department.</p>
</article>
]]></summary>
</entry>
<entry>
    <title>Working with JSON-Formatted Data in Isabelle</title>
    <link href="https://logicalhacking.com//blog/2022/09/01/nano-json/" />
    <id>https://logicalhacking.com//blog/2022/09/01/nano-json/</id>
    <published>2022-09-01T00:00:00Z</published>
    <updated>2022-09-01T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2022-09-01" pubdate data-updated="true"> 1 September 2022</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/isabelle/hol/">isabelle/hol</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2022/09/01/nano-json/">Working with JSON-Formatted Data in Isabelle</a>
    </h1>
  </header>
  <p>JSON (JavaScript Object Notation) is common format for exchanging data. Thus,
sometimes it would be handy to be able to “import” JSON-formatted data into
Isabelle/HOL, e.g., as part of a datatype package (implemented in Isabelle/ML)
for using the data as part of a system verification (in Isabelle/HOL).</p>
<!-- MORE -->
<p>Using our <a href="https://www.isa-afp.org/entries/Nano_JSON.html">AFP entry “Nano
JSON”</a> <span class="citation" data-cites="brucker:nano-json:2022">[1]</span>
this is now easy. It provides both import and export of JSON-formatted data into
Isabelle - both on the level of Isabelle/ML and Isabelle/HOL. Thus, it allows
users of Isabelle/HOL to work with JSON-formatted data in Isabelle without
needing to implement import or export functionalities in ML. At the same time,
user that want to implement their own datatype package can use the Isabelle/ML
API provided by <a href="https://www.isa-afp.org/entries/Nano_JSON.html">AFP entry “Nano
JSON”</a>.</p>
<p>For example, assuming a simple JSON encoded data like</p>
<div class="sourceCode" id="cb1"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span>
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a>    <span class="dt">&quot;menu&quot;</span><span class="fu">:</span> <span class="fu">{</span></span>
<span id="cb1-3"><a href="#cb1-3" aria-hidden="true" tabindex="-1"></a>        <span class="dt">&quot;id&quot;</span><span class="fu">:</span> <span class="st">&quot;file&quot;</span><span class="fu">,</span></span>
<span id="cb1-4"><a href="#cb1-4" aria-hidden="true" tabindex="-1"></a>        <span class="dt">&quot;value&quot;</span><span class="fu">:</span> <span class="st">&quot;File&quot;</span><span class="fu">,</span></span>
<span id="cb1-5"><a href="#cb1-5" aria-hidden="true" tabindex="-1"></a>        <span class="dt">&quot;popup&quot;</span><span class="fu">:</span> <span class="fu">{</span></span>
<span id="cb1-6"><a href="#cb1-6" aria-hidden="true" tabindex="-1"></a>            <span class="dt">&quot;menuitem&quot;</span><span class="fu">:</span> <span class="ot">[</span></span>
<span id="cb1-7"><a href="#cb1-7" aria-hidden="true" tabindex="-1"></a>                <span class="fu">{</span><span class="dt">&quot;value&quot;</span><span class="fu">:</span> <span class="st">&quot;New&quot;</span><span class="fu">,</span> <span class="dt">&quot;onclick&quot;</span><span class="fu">:</span> <span class="st">&quot;CreateNewDoc()&quot;</span><span class="fu">}</span><span class="ot">,</span></span>
<span id="cb1-8"><a href="#cb1-8" aria-hidden="true" tabindex="-1"></a>                <span class="fu">{</span><span class="dt">&quot;value&quot;</span><span class="fu">:</span> <span class="st">&quot;Open&quot;</span><span class="fu">,</span> <span class="dt">&quot;onclick&quot;</span><span class="fu">:</span> <span class="st">&quot;OpenDoc()&quot;</span><span class="fu">}</span><span class="ot">,</span></span>
<span id="cb1-9"><a href="#cb1-9" aria-hidden="true" tabindex="-1"></a>                <span class="fu">{</span><span class="dt">&quot;value&quot;</span><span class="fu">:</span> <span class="st">&quot;Close&quot;</span><span class="fu">,</span> <span class="dt">&quot;onclick&quot;</span><span class="fu">:</span> <span class="st">&quot;CloseDoc()&quot;</span><span class="fu">}</span></span>
<span id="cb1-10"><a href="#cb1-10" aria-hidden="true" tabindex="-1"></a>            <span class="ot">]</span></span>
<span id="cb1-11"><a href="#cb1-11" aria-hidden="true" tabindex="-1"></a>        <span class="fu">}</span>  </span>
<span id="cb1-12"><a href="#cb1-12" aria-hidden="true" tabindex="-1"></a>    <span class="fu">},</span> </span>
<span id="cb1-13"><a href="#cb1-13" aria-hidden="true" tabindex="-1"></a>    <span class="dt">&quot;flag&quot;</span><span class="fu">:</span><span class="kw">true</span><span class="fu">,</span> </span>
<span id="cb1-14"><a href="#cb1-14" aria-hidden="true" tabindex="-1"></a>    <span class="dt">&quot;number&quot;</span><span class="fu">:</span><span class="dv">42</span></span>
<span id="cb1-15"><a href="#cb1-15" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div>
<p>stored in a file <code>example.json</code>, you can now import this data into
Isabelle</p>
<div class="sourceCode"><pre class="sourceCode isabelle"><code><span class="n">JSON_file</span><span class="w"> </span><span class="s">&quot;example.json&quot;</span><span class="w"> </span><span class="k">defining</span><span class="w"> </span><span class="n">example</span>
</code></pre></div>
<p>and use it in a formal context, such as</p>
<div class="sourceCode"><pre class="sourceCode isabelle"><code><span class="kn">lemma</span><span class="w"> </span><span class="ss">‹</span><span class="s">([STR ''onclick''], STRING STR ''CreateNewDoc()'') </span><span class="ss">∈</span><span class="s"> set(nj_filter (STR ''onclick'') example_literal_literal)</span><span class="ss">›</span>
<span class="w">  </span><span class="k">by</span><span class="o">(</span><span class="n">normalization</span><span class="o">)</span>
</code></pre></div>
<h3 class="sectionAnchor" id="alternative-ways-of-importing-json">Alternative ways of importing JSON <a href="#alternative-ways-of-importing-json">§</a></h3>
<p>For short JSON-snippets, you can use an antiquotation:</p>
<div class="sourceCode"><pre class="sourceCode isabelle"><code><span class="kn">lemma</span><span class="w"> </span><span class="ss">‹</span><span class="s">y == JSON </span><span class="ss">‹</span><span class="s">{&quot;name&quot;: true}</span><span class="ss">›</span><span class="s"> </span><span class="ss">›</span>
<span class="w">  </span><span class="gr">oops</span>
</code></pre></div>
<p>Moreover, for you can also use a new Isar command that allows for inlining JSON
into Isabelle theories:</p>
<div class="sourceCode"><pre class="sourceCode isabelle"><code><span class="n">JSON</span><span class="w"> </span><span class="ss">‹</span>
<span class="s">{</span>
<span class="s">    &quot;menu&quot;: {</span>
<span class="s">        &quot;id&quot;: &quot;file&quot;,</span>
<span class="s">        &quot;value&quot;: &quot;File&quot;,</span>
<span class="s">        &quot;popup&quot;: {</span>
<span class="s">            &quot;menuitem&quot;: [</span>
<span class="s">                {&quot;value&quot;: &quot;New&quot;, &quot;onclick&quot;: &quot;CreateNewDoc()&quot;},</span>
<span class="s">                {&quot;value&quot;: &quot;Open&quot;, &quot;onclick&quot;: &quot;OpenDoc()&quot;},</span>
<span class="s">                {&quot;value&quot;: &quot;Close&quot;, &quot;onclick&quot;: &quot;CloseDoc()&quot;}</span>
<span class="s">            ]</span>
<span class="s">        }  </span>
<span class="s">    }, </span>
<span class="s">    &quot;flag&quot;:true, </span>
<span class="s">    &quot;number&quot;:42</span>
<span class="s">}</span>
<span class="ss">›</span><span class="w"> </span><span class="k">defining</span><span class="w"> </span><span class="n">example04</span>
</code></pre></div>
<h3 class="sectionAnchor" id="exporting-json">Exporting JSON <a href="#exporting-json">§</a></h3>
<p>Exporting JSON is easy, assuming that the data has already been
converted the HOL-representation of JSON provided:</p>
<div class="sourceCode"><pre class="sourceCode isabelle"><code><span class="n">JSON_export</span><span class="w"> </span><span class="n">example</span><span class="w"> </span><span class="kp">file</span><span class="w"> </span><span class="n">example</span>
</code></pre></div>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-brucker:nano-json:2022" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">A. D. Brucker, <span>“<span>Nano JSON:</span> Working with <span>JSON</span> formatted data in <span>Isabelle/HOL</span> and <span>Isabelle/ML</span>,”</span> <em>Archive of Formal Proofs</em>, Jul. 2022. <a href="https://www.isa-afp.org/entries/Nano_JSON.html" class="uri">https://www.isa-afp.org/entries/Nano_JSON.html</a>, Formal proof development. Author copy: <a href="http://logicalhacking.com/publications/brucker-nano-json-2022/" class="uri">http://logicalhacking.com/publications/brucker-nano-json-2022/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>Announcement: Isabelle/Solidity</title>
    <link href="https://logicalhacking.com//blog/2022/08/22/isabelle-solidity/" />
    <id>https://logicalhacking.com//blog/2022/08/22/isabelle-solidity/</id>
    <published>2022-08-22T00:00:00Z</published>
    <updated>2022-08-22T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2022-08-22" pubdate data-updated="true">22 August 2022</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/isabelle/hol/">isabelle/hol</a> | <a href="/blog/tags/semantics/">semantics</a> | <a href="/blog/tags/verification/">verification</a> | <a href="/blog/tags/solidity/">solidity</a> | <a href="/blog/tags/smartcontract/">smartcontract</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2022/08/22/isabelle-solidity/">Announcement: Isabelle/Solidity</a>
    </h1>
  </header>
  <p>Ever wondered how to verify smart contracts written in Solidy? Thanks to
our deep embedding of Solidty into Isabelle/HOL, you can now start
verifying smart contracts in Isabelle.</p>
<!-- MORE -->
<p>Our formalization is available in the <a href="https://www.isa-afp.org/entries/Solidity.html">Archive of Formal
Proofs</a>
<span class="citation" data-cites="marmsoler.ea:isabelle-solidity:2022"><strong>marmsoler.ea:isabelle-solidity:2022?</strong></span>, which can be easily added to
Isabelle/HOL. If you want to read a more high-level description of the
underlying work, read our conference papers on the topic
<span class="citation" data-cites="marmsoler.ea:solidity-semantics:2021">[2]</span>.</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-marmsoler.ea:solidity-semantics:2021" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">D. Marmsoler and A. D. Brucker, <span>“A denotational semantics of <span>Solidity</span> in <span>Isabelle/HOL</span>,”</span> in <em>Software engineering and formal methods (SEFM)</em>, R. Calinescu and C. Pasareanu, Eds. Heidelberg: Springer-Verlag, 2021. Author copy: <a href="http://logicalhacking.com/publications/marmsoler.ea-solidity-semantics-2021/" class="uri">http://logicalhacking.com/publications/marmsoler.ea-solidity-semantics-2021/</a></div>
</div>
<div id="ref-marmsoler.ea:conformance:2022" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[2] </div><div class="csl-right-inline">D. Marmsoler and A. D. Brucker, <span>“Conformance testing of formal semantics using grammar-based fuzzing,”</span> in <em><span>TAP</span> 2022: Tests and proofs</em>, L. Kovacs and K. Meinke, Eds. Heidelberg: Springer-Verlag, 2022. Author copy: <a href="http://logicalhacking.com/publications/marmsoler.ea-conformance-2022/" class="uri">http://logicalhacking.com/publications/marmsoler.ea-conformance-2022/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>Release: Isabelle/DOF 1.3.0</title>
    <link href="https://logicalhacking.com//blog/2022/07/08/isabelle-dof-1.3.0/" />
    <id>https://logicalhacking.com//blog/2022/07/08/isabelle-dof-1.3.0/</id>
    <published>2022-07-08T00:00:00Z</published>
    <updated>2022-07-08T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2022-07-08" pubdate data-updated="true"> 8 July 2022</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/isabelledof/">isabelledof</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2022/07/08/isabelle-dof-1.3.0/">Release: Isabelle/DOF 1.3.0</a>
    </h1>
  </header>
  <p>We are proud to announce the release of
<a href="https://git.logicalhacking.com/Isabelle_DOF/Isabelle_DOF/">Isabelle/DOF</a> 1.3.0.
<a href="https://git.logicalhacking.com/Isabelle_DOF/Isabelle_DOF/">Isabelle/DOF</a> is a
Document Ontology Framework on top of <a href="https://isabelle.in.tum.de">Isabelle 2021-1</a>.
Isabelle/DOF allows for both conventional typesetting and formal development.</p>
<!-- MORE -->
<h2 class="sectionAnchor" id="changes">Changes <a href="#changes">§</a></h2>
<p>The most important user-visible changes are:</p>
<ul>
<li>Isabelle/DOF is now a proper Isabelle component that should be installed using
the <code>isabelle components</code> command. The installation script is now only a
convenient way of installing the required AFP entries.</li>
<li>The tool <code>mkroot_DOF</code> has been renamed to <code>dof_mkroot</code> (and reimplemented
in Scala).</li>
<li>The project-specific configuration is not part of the <code>ROOT</code> file, the
formerly used <code>isadof.cfg</code> is obsolete and no longer supported.</li>
<li>Removed explicit use of the <code>document/build</code> script in favor of reimplementing
its functionality in Scala as an Isabelle/DOF specific document generator.</li>
</ul>
<h2 class="sectionAnchor" id="migrating-existing-projects">Migrating Existing Projects <a href="#migrating-existing-projects">§</a></h2>
<p>The following steps need to be executed to migrate existing projects from
older version of Isabelle/DOF:</p>
<ul>
<li><p>If your <code>ROOT</code> file does not contain the option <code>document_build = dof</code>,
add it.</p></li>
<li><p>The script <code>document/build</code> should be removed and its entry in the <code>ROOT</code>
file deleted.</p></li>
<li><p>The configuration (i.e., which ontologies to use and which document template to use)
needs to be upgraded. For example, if you <code>document/isadof.cfg</code> looks as follows:</p>
<div class="sourceCode" id="cb1"><pre class="sourceCode yaml"><code class="sourceCode yaml"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="fu">Template</span><span class="kw">:</span><span class="at"> scrreprt-modern</span></span>
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a><span class="fu">Ontology</span><span class="kw">:</span><span class="at"> technical_report cenelec_50128</span></span></code></pre></div>
<p>The options of the corresponding ROOT file needs to be updated to
include:</p>
<pre class="root"><code>  dof_ontologies = &quot;Isabelle_DOF.technical_report Isabelle_DOF.cenelec_50128&quot;, dof_template = &quot;Isabelle_DOF.scrreprt-modern&quot;,</code></pre>
<p>Thereafter, the file <code>document/isadof.cfg</code> should be removed nd its entry in
the <code>ROOT</code> file deleted.</p></li>
</ul>
<h2 class="sectionAnchor" id="availability">Availability <a href="#availability">§</a></h2>
<p>Isabelle/DOF 1.3.0 is available for Isabelle 2021-1:</p>
<ul>
<li><a href="https://git.logicalhacking.com/Isabelle_DOF/Isabelle_DOF/src/tag/v1.3.0/Isabelle2021-1">Isabelle/DOF 1.3.0 for Isabelle 2021-1</a></li>
</ul>
</article>
]]></summary>
</entry>
<entry>
    <title>Conformance Testing of Formal Semantics using Grammar-based Fuzzing</title>
    <link href="https://logicalhacking.com//blog/2022/07/04/conformance-testing-of-formal-semantics/" />
    <id>https://logicalhacking.com//blog/2022/07/04/conformance-testing-of-formal-semantics/</id>
    <published>2022-07-04T00:00:00Z</published>
    <updated>2022-07-04T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2022-07-04" pubdate data-updated="true"> 4 July 2022</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/isabelle/hol/">isabelle/hol</a> | <a href="/blog/tags/semantics/">semantics</a> | <a href="/blog/tags/verification/">verification</a> | <a href="/blog/tags/test%26proof/">test&amp;proof</a> | <a href="/blog/tags/solidity/">solidity</a> | <a href="/blog/tags/smartcontract/">smartcontract</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2022/07/04/conformance-testing-of-formal-semantics/">Conformance Testing of Formal Semantics using Grammar-based Fuzzing</a>
    </h1>
  </header>
  <p>In our work “<a href="/blog/2021/12/10/sefm-solidity/">A Denotational Semantics of Solidity in
Isabelle/HOL</a>”
<span class="citation" data-cites="marmsoler.ea:solidity-semantics:2021">[1]</span> we presented a formal semantics for
Solidity, the most common language for implementing smart contracts. Such a
formal semantics one of the corner stones of developing a formal verification
approach that, mathematically, can prove the absence of certain types of bugs
(e.g., such as the Parity Wallet bug that made USD 280mil worth of Ether
inaccessible).</p>
<p>But, of course, any verification can only be as good as the underlying
semantics. So, how do we ensure that our formal semantics actually captures the
behavior of Solidity faithfully? This is the question we answer in our latest
paper <span class="citation" data-cites="marmsoler.ea:conformance:2022">[2]</span> that will be presented at the
<a href="https://easychair.org/smart-program/TAP22/">International Conference on Tests and
Proofs</a>.</p>
<!-- MORE -->
<p>In our approach, we use grammar-based fuzzing, a technique that generates
example programs from a formal grammar. Our goal is to ensure that our post-hoc
developed formal semantics of Solidity complies to the real world system, i.e.,
our formalization should behave identical to the implementation. For ensuring
this, we generate a test oracle from our formal specification, which allows us
to check that executing a test case (generated by the grammar-based fuzzer)
executed on the formal semantics yields the same result as executed on the
Ethereum blockchain. Our main contributions are:</p>
<ol type="1">
<li>An approach extending a parse grammar for Solidity to ensure that a generic
grammar-based fuzzer generates type correct Solidity programs, instead of
generating syntactically correct, but often ill-typed, programs.</li>
<li>An approach for automatically deriving a test-oracle from a formal
specification in Isabelle/HOL that allows to efficiently decide if a test
case passes or fails and that allows to measure the test coverage in terms of
statements and expressions of the target language usually based on an
implicit test specification that informally can be described as “no crashes
occur”.</li>
<li>A framework for testing the compliance of a formal semantics of Solidity in
Isabelle/HOL to their execution on the Ethereum blockchain</li>
</ol>
<p><strong>Update:</strong> The formalization is now also available in the <a href="https://www.isa-afp.org/entries/Solidity.html">Archive of Formal Proofs</a> <span class="citation" data-cites="marmsoler.ea:isabelle-solidity:2022"><strong>marmsoler.ea:isabelle-solidity:2022?</strong></span>.</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-marmsoler.ea:solidity-semantics:2021" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">D. Marmsoler and A. D. Brucker, <span>“A denotational semantics of <span>Solidity</span> in <span>Isabelle/HOL</span>,”</span> in <em>Software engineering and formal methods (SEFM)</em>, R. Calinescu and C. Pasareanu, Eds. Heidelberg: Springer-Verlag, 2021. Author copy: <a href="http://logicalhacking.com/publications/marmsoler.ea-solidity-semantics-2021/" class="uri">http://logicalhacking.com/publications/marmsoler.ea-solidity-semantics-2021/</a></div>
</div>
<div id="ref-marmsoler.ea:conformance:2022" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[2] </div><div class="csl-right-inline">D. Marmsoler and A. D. Brucker, <span>“Conformance testing of formal semantics using grammar-based fuzzing,”</span> in <em><span>TAP</span> 2022: Tests and proofs</em>, L. Kovacs and K. Meinke, Eds. Heidelberg: Springer-Verlag, 2022. Author copy: <a href="http://logicalhacking.com/publications/marmsoler.ea-conformance-2022/" class="uri">http://logicalhacking.com/publications/marmsoler.ea-conformance-2022/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>A LaTeX Class for EPSRC Proposals</title>
    <link href="https://logicalhacking.com//blog/2022/06/21/latex-class-for-epsrc-proposals/" />
    <id>https://logicalhacking.com//blog/2022/06/21/latex-class-for-epsrc-proposals/</id>
    <published>2022-06-21T00:00:00Z</published>
    <updated>2022-06-21T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2022-06-21" pubdate data-updated="true">21 June 2022</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/latex/">latex</a> | <a href="/blog/tags/epsrc/">epsrc</a> | <a href="/blog/tags/funding/">funding</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2022/06/21/latex-class-for-epsrc-proposals/">A LaTeX Class for EPSRC Proposals</a>
    </h1>
  </header>
  <p>A large part of an academic’s life is writing grant proposals that are submitted
to funding agencies. One of the UK’s funding agencies that supports research in
security, safety, and correctness of systems is
<a href="https://www.ukri.org/about-us/epsrc/">EPSRC</a>. EPSRC officially requires proposal
to follow a certain layout, that is summarized on the <a href="https://www.ukri.org/councils/epsrc/guidance-for-applicants/what-to-include-in-your-proposal/overview-of-information-needed-for-your-proposal/">EPSRC
website</a>
as follows:</p>
<!-- MORE -->
<blockquote>
<p>All attachments must be completed in single-spaced typescript in Arial 11 or
other sans serif typeface of equivalent size, with margins of at least 2cm.
Arial narrow and Calibri are not allowable font types.</p>
<p>Text in embedded diagrams or pictures, numerical formulae or references can be
smaller, as long as it is legible. Text in tables and figure labels not within
embedded diagrams or pictures should be at least 11 point.</p>
<p>We recommend that all attachments are uploaded into Je-S as Adobe Acrobat files
(PDF) as uploading word documents can result in layout changes to the document.
Also, as Je-S does not support all Microsoft Office Word font types, unsupported
fonts will be replaced, possibly resulting in layout changes to the document.</p>
</blockquote>
<p>On the one hand, this is a rather loosely specified layout. On the other hand,
it is not that straight forward to implement using LaTeX. For example, font
sizes in LaTeX are specified slightly differently: the well-known <code>11pt</code> option
sets the default font size to 10.95 TeX points (<code>pt</code>), which is 10.909 = 10.95 *
72/72.27 Postscript Points (<code>bp</code>). Hence, the font size needs to be scaled by a
factor of 11/10.909.</p>
<p>The new LaTeX class <a href="https://git.logicalhacking.com/adbrucker/epsrc">epsrc</a> aims
for making proposal writing a little easier. To ensure the consistency of
common configurations across the various documents that EPSRC requires, the
class file uses a file <code>epsrc.config</code> that, if available, is shared across all
documents. A minimal example is:</p>
<div class="sourceCode" id="cb1"><pre class="sourceCode latex"><code class="sourceCode latex"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\author</span>{Poor Researcher}</span>
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\projectitle</span>[PGMM]{Please Give Me Money}</span></code></pre></div>
<p>Otherwise, the class file is loaded as usual:</p>
<div class="sourceCode" id="cb2"><pre class="sourceCode latex"><code class="sourceCode latex"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">epsrc</span>}</span></code></pre></div>
<p>For more details, please see the example and documentation at
<a href="https://git.logicalhacking.com/adbrucker/epsrc" class="uri">https://git.logicalhacking.com/adbrucker/epsrc</a>.</p>
</article>
]]></summary>
</entry>
<entry>
    <title>Release: Isabelle/DOF 1.2.0</title>
    <link href="https://logicalhacking.com//blog/2022/03/26/isabelle-dof-1.2.0/" />
    <id>https://logicalhacking.com//blog/2022/03/26/isabelle-dof-1.2.0/</id>
    <published>2022-03-26T00:00:00Z</published>
    <updated>2022-03-26T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2022-03-26" pubdate data-updated="true">26 March 2022</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2022/03/26/isabelle-dof-1.2.0/">Release: Isabelle/DOF 1.2.0</a>
    </h1>
  </header>
  <p>We are proud to announce the release of
<a href="https://git.logicalhacking.com/Isabelle_DOF/Isabelle_DOF/">Isabelle/DOF</a> 1.2.0.
<a href="https://git.logicalhacking.com/Isabelle_DOF/Isabelle_DOF/">Isabelle/DOF</a> is a
novel Document Ontology Framework on top of Isabelle. Isabelle/DOF allows for
both conventional typesetting and formal development.</p>
<!-- MORE -->
<p>Isabelle/DOF 1.2.0 is available for Isabelle 2021:</p>
<ul>
<li><a href="https://git.logicalhacking.com/Isabelle_DOF/Isabelle_DOF/src/tag/v1.2.0/Isabelle2021">Isabelle/DOF 1.2.0 for Isabelle 2021</a></li>
</ul>
</article>
]]></summary>
</entry>
<entry>
    <title>The Link Between Digital Security and Privacy by Design and Skills Needs</title>
    <link href="https://logicalhacking.com//blog/2022/02/23/swcsc-security-and-privacy-by-design/" />
    <id>https://logicalhacking.com//blog/2022/02/23/swcsc-security-and-privacy-by-design/</id>
    <published>2022-02-23T00:00:00Z</published>
    <updated>2022-02-23T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2022-02-23" pubdate data-updated="true">23 February 2022</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/skills/">skills</a> | <a href="/blog/tags/dsbd/">dsbd</a> | <a href="/blog/tags/tcb/">tcb</a> | <a href="/blog/tags/security/">security</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2022/02/23/swcsc-security-and-privacy-by-design/">The Link Between Digital Security and Privacy by Design and Skills Needs</a>
    </h1>
  </header>
  <p>Currently, the UK government pushes a concept called Digital Security by Design
(DSbD) that focuses on utilizing novel hardware features to improve the security
and trustworthiness of systems. Actually, Digital Security (and Privacy) by
Design is a much broader concept focusing on security and privacy of systems
right of systems right from the start of their development. And it also links to
the - often misunderstood - concept of the Trusted Computing Base (TCB).</p>
<!-- MORE -->
<p>Want to learn more? Attend the <a href="https://southwestcsc.org/secure-south-west-15/">Secure South West
15</a> on the 23rd March 2022. You
can attend either online or in-person in Plymouth, UK. In my presentation, I
will introduce the core guidelines for building systems that are secure and
privacy aware “by Design”, putting a particular emphasis on the skills needed to
understand and apply these concepts and while teaching those skills can be
challenging.</p>
</article>
]]></summary>
</entry>
<entry>
    <title>Digital Security by Design &amp; National Cyber Strategy</title>
    <link href="https://logicalhacking.com//blog/2021/12/16/dsbd-and-cyber-strategy/" />
    <id>https://logicalhacking.com//blog/2021/12/16/dsbd-and-cyber-strategy/</id>
    <published>2021-12-16T00:00:00Z</published>
    <updated>2021-12-16T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2021-12-16" pubdate data-updated="true">16 December 2021</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2021/12/16/dsbd-and-cyber-strategy/">Digital Security by Design &amp; National Cyber Strategy</a>
    </h1>
  </header>
  <p>As part of the launch of the UK’s new <a href="https://www.ukri.org/news/government-announces-new-national-cyber-strategy/">Cyber Security
Strategy</a>
it has been announced that we are participants of a successful demonstrator
project. The project is led by <a href="https://www.beamconnectivity.com">Beam
Connectivity</a>.</p>
<!-- MORE -->
<p>As part of this project, we will will investigate how the novel Digital
Security by Design CHERI (a security enhanced processor instructions set for ARM
and RISC-V processors) can be used to improve the security and safety of
connected vehicles.</p>
<p>Expect more intersting news and updates in the future!</p>
</article>
]]></summary>
</entry>
<entry>
    <title>Fully (UK Home) Funded PhD Positions</title>
    <link href="https://logicalhacking.com//blog/2021/12/15/fully-funded-phd-positions/" />
    <id>https://logicalhacking.com//blog/2021/12/15/fully-funded-phd-positions/</id>
    <published>2021-12-15T00:00:00Z</published>
    <updated>2021-12-15T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2021-12-15" pubdate data-updated="true">15 December 2021</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/uoe/">uoe</a> | <a href="/blog/tags/staff%26positions/">staff&amp;positions</a> | <a href="/blog/tags/security/">security</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2021/12/15/fully-funded-phd-positions/">Fully (UK Home) Funded PhD Positions</a>
    </h1>
  </header>
  <p>Several fully funded PhD scholarships for UK applicants are available in the
<a href="http://emps.exeter.ac.uk/cyber-security/">Security and Trust of Advanced Systems
Group</a>
(<a href="https://www.brucker.ch/">Prof. Achim Brucker</a> and <a href="https://marmsoler.com/">Dr. Diego
Marmsoler</a>) at the <a href="http://emps.exeter.ac.uk/computer-science/">Department of Computer Science of the
University of Exeter</a>, UK.</p>
<!-- MORE -->
<p>We are looking for enthusiastic and outstanding Computer Science or Mathematics
students with a strong background in at least one of the following topics:</p>
<ul>
<li>safety or security of (software) systems,</li>
<li>formal modelling or formal reasoning/verification,</li>
<li>program analysis or program verification,</li>
<li>language-based security</li>
<li>semantics of programming languages,</li>
<li>theorem proving, model checking,</li>
<li>cryptographic protocols,</li>
<li>distributed systems (e.g., blockchain),</li>
<li>specification-based testing, and</li>
<li>design and implementation of security architectures.</li>
</ul>
<p>This award provides annual funding to cover UK tuition fees and a tax-free
stipend. For students who pay UK tuition fees the award will cover the tuition
fees in full, plus at least £15,009 per year tax-free stipend. The studentship
will be awarded on the basis of merit for 3.5 years of full-time study.</p>
<p>Interested candidates should contact the potential supervisors <a href="https://www.brucker.ch/">Prof. Achim
Brucker</a> or <a href="https://marmsoler.com/">Dr. Diego
Marmsoler</a> to discuss their application.</p>
<p>For more details, please consult the official advertisements:</p>
<ul>
<li><a href="https://www.exeter.ac.uk/study/funding/award/?id=4326">Compositional Verification of Smart Contracts in
Isabelle</a></li>
<li><a href="https://www.exeter.ac.uk/study/funding/award/?id=4328">Formal Verification for Safety- or Security-Critical
Systems</a></li>
<li><a href="https://www.exeter.ac.uk/study/funding/award/?id=4329">Software Engineering for Security- or Safety-Critical
Systems</a></li>
<li><a href="https://www.exeter.ac.uk/study/funding/award/?id=4343">Open Call</a></li>
</ul>
<p>The closing date for applications is midnight on the 24th of January 2022.</p>
</article>
]]></summary>
</entry>
<entry>
    <title>A Denotational Semantics of Solidity in Isabelle/HOL</title>
    <link href="https://logicalhacking.com//blog/2021/12/10/sefm-solidity/" />
    <id>https://logicalhacking.com//blog/2021/12/10/sefm-solidity/</id>
    <published>2021-12-10T00:00:00Z</published>
    <updated>2021-12-10T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2021-12-10" pubdate data-updated="true">10 December 2021</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/isabelle/hol/">isabelle/hol</a> | <a href="/blog/tags/semantics/">semantics</a> | <a href="/blog/tags/verification/">verification</a> | <a href="/blog/tags/solidity/">solidity</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2021/12/10/sefm-solidity/">A Denotational Semantics of Solidity in Isabelle/HOL</a>
    </h1>
  </header>
  <p>Smart contracts are programs, usually automating legal
agreements such as financial transactions. Thus, bugs in smart contracts
can lead to large financial losses. For example, an incorrectly initialized
contract was the root cause of the Parity Wallet bug that made USD
280mil worth of Ether inaccessible. Ether is the cryptocurrency of the
Ethereum blockchain that uses Solidity for expressing smart contracts.</p>
<!-- MORE -->
<p>In our SEFM paper <span class="citation" data-cites="marmsoler.ea:solidity-semantics:2021">[1]</span>, we address this
problem by presenting an executable denotational semantics for Solidity in the
interactive theorem prover Isabelle/HOL. This formal semantics builds the
foundation of an interactive program verification environment for Solidity
programs and allows for inspecting Solidity programs by (symbolic) execution. We
combine the latter with grammar-based fuzzing to ensure that our formal
semantics complies to the Solidity implementation on the Ethereum Blockchain.
Finally, we demonstrate the formal verification of Solidity programs by two
examples: constant folding and memory optimization.</p>
<p>The formalization and presented tools are available on Zenodo
<span class="citation" data-cites="marmsoler.ea:zenodo-isolidity:2021"><strong>marmsoler.ea:zenodo-isolidity:2021?</strong></span>.</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-marmsoler.ea:solidity-semantics:2021" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">D. Marmsoler and A. D. Brucker, <span>“A denotational semantics of <span>Solidity</span> in <span>Isabelle/HOL</span>,”</span> in <em>Software engineering and formal methods (SEFM)</em>, R. Calinescu and C. Pasareanu, Eds. Heidelberg: Springer-Verlag, 2021. Author copy: <a href="http://logicalhacking.com/publications/marmsoler.ea-solidity-semantics-2021/" class="uri">http://logicalhacking.com/publications/marmsoler.ea-solidity-semantics-2021/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>Confidentiality Enhanced Life-Cycle Assessment</title>
    <link href="https://logicalhacking.com//blog/2021/10/18/spbp-confidential-lca/" />
    <id>https://logicalhacking.com//blog/2021/10/18/spbp-confidential-lca/</id>
    <published>2021-10-18T00:00:00Z</published>
    <updated>2021-10-18T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2021-10-18" pubdate data-updated="true">18 October 2021</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2021/10/18/spbp-confidential-lca/">Confidentiality Enhanced Life-Cycle Assessment</a>
    </h1>
  </header>
  <p>The environmental impact of products is an important factor in buying decisions
of customers, and it is also an increasing concern of lawmakers. Hence, companies
are interested in determining the ecological footprint of their products.
Life-cycle assessment (LCA) is a standardized method for computing the
ecological footprint of a product.</p>
<!-- MORE -->
<p>Today, LCA is usually not computed in real-time and neither is LCA using actual
sensor data: in contrast it is computed “offline” using “historic” values based
on exemplary measurements. With the rise of the Internet of Things (IoT), LCA
computations can be based on actual production processes. While an LCA based on
actual sensor data is desirable from an ecological perspective, it also can
reveal trade secrets, e.g., details about production processes or business
relationships.</p>
<p>In our SPBP paper <span class="citation" data-cites="brucker.ea:confidential-lca:2021">[1]</span>, we present an approach,
using secure multi-party computation, to enable the confidential data sharing
required for an LCA computation using sensor data.</p>
<p>Our prototype is available at
<a href="https://git.logicalhacking.com/PrivacyPreservingLCA/ConfidentialLCA" class="uri">https://git.logicalhacking.com/PrivacyPreservingLCA/ConfidentialLCA</a> under an
Apache license (SPDX-License-Identifier: Apache-2.0).</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-brucker.ea:confidential-lca:2021" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">A. D. Brucker and S. Yalman, <span>“Confidentiality enhanced life-cycle assessment,”</span> in <em>BPMN 2021 workshops</em>, 2021. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-confidential-lca-2021/" class="uri">http://logicalhacking.com/publications/brucker.ea-confidential-lca-2021/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>Welcome, Amy!</title>
    <link href="https://logicalhacking.com//blog/2021/09/20/welcome-amy/" />
    <id>https://logicalhacking.com//blog/2021/09/20/welcome-amy/</id>
    <published>2021-09-20T00:00:00Z</published>
    <updated>2021-09-20T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2021-09-20" pubdate data-updated="true">20 September 2021</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/uoe/">uoe</a> | <a href="/blog/tags/staff%26positions/">staff&amp;positions</a> | <a href="/blog/tags/phdlife/">phdlife</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2021/09/20/welcome-amy/">Welcome, Amy!</a>
    </h1>
  </header>
  <p>I am happy to announce that <a href="https://emps.exeter.ac.uk/computer-science/staff/as1343">Amy
Stell</a> will join the
Software Assurance &amp; Security Research Team as a PhD student.</p>
<!-- MORE -->
<p>Amy got her BSc in Computer Science from the University of Exeter. In her BSc
project, she formalized neural networks in Isabelle/HOL, and she will continue
to develop formal methods for improving the security, safety, and correctness of
machine learning during her PHD studies.</p>
</article>
]]></summary>
</entry>
<entry>
    <title>Performing Security Proofs of Stateful Protocols</title>
    <link href="https://logicalhacking.com//blog/2021/06/23/pspsp/" />
    <id>https://logicalhacking.com//blog/2021/06/23/pspsp/</id>
    <published>2021-06-23T00:00:00Z</published>
    <updated>2021-06-23T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2021-06-23" pubdate data-updated="true">23 June 2021</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2021/06/23/pspsp/">Performing Security Proofs of Stateful Protocols</a>
    </h1>
  </header>
  <p>In protocol verification we observe a wide spectrum from fully automated methods
to interactive theorem proving with proof assistants like Isabelle/HOL. The
latter provide overwhelmingly high assurance of the correctness, which
automated methods often cannot: due to their complexity, bugs in such automated
verification tools are likely and thus the risk of erroneously verifying a
flawed protocol is non-negligible. There are a few works that try to combine
advantages from both ends of the spectrum: a high degree of automation and
assurance.</p>
<!-- MORE -->
<p>In our CSF paper <span class="citation" data-cites="hess.ea:performing:2021">[1]</span>, we present here a first step
towards achieving this for a more challenging class of protocols, namely those
that work with a mutable long- term state. To our knowledge this is the first
approach that achieves fully automated verification of stateful protocols in an
LCF-style theorem prover. The approach also includes a simple user-friendly
transaction-based protocol specification language embedded into Isabelle, and
can also leverage a number of existing results such as soundness of a typed
model.</p>
<p>The formalization and the automated tool PSPSP <span class="citation" data-cites="hess.ea:automated:2020">[2]</span> are
available in the <a href="https://www.isa-afp.org/entries/Automated_Stateful_Protocol_Verification.html">Archive of Formal
Proofs</a>.</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-hess.ea:performing:2021" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">A. V. Hess, S. Mödersheim, A. D. Brucker, and A. Schlichtkrull, <span>“Performing security proofs of stateful protocols,”</span> in <em>34th <span>IEEE</span> computer security foundations symposium (CSF)</em>, 2021, vol. 1, pp. 143–158. doi: <a href="https://doi.org/10.1109/CSF51468.2021.00006">10.1109/CSF51468.2021.00006</a>. Author copy: <a href="http://logicalhacking.com/publications/hess.ea-performing-2021/" class="uri">http://logicalhacking.com/publications/hess.ea-performing-2021/</a></div>
</div>
<div id="ref-hess.ea:automated:2020" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[2] </div><div class="csl-right-inline">A. V. Hess, S. Mödersheim, A. D. Brucker, and A. Schlichtkrull, <span>“Automated stateful protocol verification,”</span> <em>Archive of Formal Proofs</em>, Apr. 2020. <a href="https://www.isa-afp.org/entries/Automated_Stateful_Protocol_Verification.html" class="uri">https://www.isa-afp.org/entries/Automated_Stateful_Protocol_Verification.html</a>, Formal proof development. Author copy: <a href="http://logicalhacking.com/publications/hess.ea-automated-2020/" class="uri">http://logicalhacking.com/publications/hess.ea-automated-2020/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>Welcome, Avik!</title>
    <link href="https://logicalhacking.com//blog/2021/04/01/welcome-avik/" />
    <id>https://logicalhacking.com//blog/2021/04/01/welcome-avik/</id>
    <published>2021-04-01T00:00:00Z</published>
    <updated>2021-04-01T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2021-04-01" pubdate data-updated="true"> 1 April 2021</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/uoe/">uoe</a> | <a href="/blog/tags/staff%26positions/">staff&amp;positions</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2021/04/01/welcome-avik/">Welcome, Avik!</a>
    </h1>
  </header>
  <p>A warm welcome to <a href="https://emps.exeter.ac.uk/computer-science/staff/ac1161">Dr Avik
Chakraborti</a>. Avik is
joining the <a href="http://emps.exeter.ac.uk/computer-science/research/cyber-security/">Security and Trust of Advanced Systems
Group</a> at
the <a href="http://emps.exeter.ac.uk/computer-science/">Department of Computer Science of the University of
Exeter</a> as a Lecturer in Cyber
Security.</p>
<!-- MORE -->
<p>Avik is a world-renowned expert in applied cryptography. Our students will
already meet him after Easter, when he starts teaching, as part of your MSc
Cyber Security Analytics, the module on Security Assessment and Validation.</p>
</article>
]]></summary>
</entry>
<entry>
    <title>Release: Isabelle/DOF 1.1.0</title>
    <link href="https://logicalhacking.com//blog/2021/03/20/isabelle-dof-1.1.0/" />
    <id>https://logicalhacking.com//blog/2021/03/20/isabelle-dof-1.1.0/</id>
    <published>2021-03-20T00:00:00Z</published>
    <updated>2021-03-20T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2021-03-20" pubdate data-updated="true">20 March 2021</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/isadof/">isadof</a> | <a href="/blog/tags/formaldocument/">formaldocument</a> | <a href="/blog/tags/isabelle/hol/">isabelle/hol</a> | <a href="/blog/tags/ontology/">ontology</a> | <a href="/blog/tags/certification/">certification</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2021/03/20/isabelle-dof-1.1.0/">Release: Isabelle/DOF 1.1.0</a>
    </h1>
  </header>
  <p>We are proud to announce the release of
<a href="https://git.logicalhacking.com/Isabelle_DOF/Isabelle_DOF/">Isabelle/DOF</a> 1.1.0.
<a href="https://git.logicalhacking.com/Isabelle_DOF/Isabelle_DOF/">Isabelle/DOF</a> is a
novel Document Ontology Framework on top of Isabelle. Isabelle/DOF allows for
both conventional typesetting and formal development.</p>
<!-- MORE -->
<p>Isabelle/DOF 1.1.0 supports both Isabelle 2021 and Isabelle 2020:</p>
<ul>
<li><a href="https://git.logicalhacking.com/Isabelle_DOF/Isabelle_DOF/src/tag/v1.1.0/Isabelle2021">Isabelle/DOF 1.1.0 for Isabelle 2021</a></li>
<li><a href="https://git.logicalhacking.com/Isabelle_DOF/Isabelle_DOF/src/tag/v1.1.0/Isabelle2020">Isabelle/DOF 1.1.0 for Isabelle 2020</a></li>
</ul>
</article>
]]></summary>
</entry>
<entry>
    <title>Secure Life Cycle Assessment in Complex Supply Chains</title>
    <link href="https://logicalhacking.com//blog/2021/03/08/secure-lca/" />
    <id>https://logicalhacking.com//blog/2021/03/08/secure-lca/</id>
    <published>2021-03-08T00:00:00Z</published>
    <updated>2021-03-08T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2021-03-08" pubdate data-updated="true"> 8 March 2021</time>
       by  <a href="https://emps.exeter.ac.uk/computer-science/staff/sy359">Sakine Yalman</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2021/03/08/secure-lca/">Secure Life Cycle Assessment in Complex Supply Chains</a>
    </h1>
  </header>
  <p>In this post, <a href="https://emps.exeter.ac.uk/computer-science/staff/sy359">Sakine</a>
explains her PhD research. This post has also been published on the <a href="https://researchandinnovation.co.uk/secure-life-cycle-assessment-in-complex-supply-chains/">Research
and Innovation
Blog</a>
of the University of Exeter.</p>
<!-- MORE -->
<h2 class="sectionAnchor" id="deciding-my-research-focus">Deciding My Research Focus <a href="#deciding-my-research-focus">§</a></h2>
<p>With the convergence of technologies such as real-time analytics, machine
learning, and embedded systems, the use of smart devices is increasing rapidly.
Smart devices, such as smartwatches, smartphones, or home automation gadgets,
are used in a wide range of areas from control systems, automation systems to
healthcare systems.</p>
<p>As I am curious and sensitive about my confidential data, I do always wonder how
data collected by smart devices is used and how companies producing these smart
devices ensure the confidentiality, privacy, and security of this data.</p>
<p>As you may know, it is not possible to solve all problems that you have in your
mind in just one PhD! Therefore, I am focusing on what excites me the most!</p>
<h2 class="sectionAnchor" id="being-caught-between-protecting-confidential-data-and-addressing-the-environmental-concerns-of-consumers">Being Caught Between Protecting Confidential Data and Addressing the Environmental Concerns of Consumers <a href="#being-caught-between-protecting-confidential-data-and-addressing-the-environmental-concerns-of-consumers">§</a></h2>
<p>When I was reviewing literature, an interesting research article took my
attention. It was including a subject that I knew nothing about called
Life-Cycle Assessment (LCA).</p>
<p>As we can see in our daily lives, the environmental impact of products has
become an increasingly important factor in buying decisions of customers,
moreover, is also a growing concern of law makers. Hence, companies have an
increased interest in determining the ecological footprint of their products.
And LCA is a standardized method for computing the ecological footprint of a
product. It evaluates the ecological sustainability of a product or service in a
quantitative way, and its computation requires exhaustive and comprehensible
information about industrial activities, from cradle to grave. This information
can, e.g., include information about the production and delivery processes of
partners within a supply chain. As this information can reveal the details of
production processes that are often considered a trade secret, it is
confidential. Moreover, collaborating actively within a supply chain can
disclose business relationships, which can be confidential too!</p>
<p>So… After giving some background information, I would like to pose a question.
If you were one of the companies placed in a supply chain, would you be
interested in sharing your whole data or would you try to hide your confidential
information?</p>
<p>Although companies are willing to determine the ecological footprint of their
products, they are also concerned about how their confidential data is used in
computations/operations and shared with the public or other competitive
companies. As a result, security and confidentiality concerns are currently
hindering both the collaboration within supply chains and precisely LCA.</p>
<h2 class="sectionAnchor" id="what-do-i-propose">What Do I Propose? <a href="#what-do-i-propose">§</a></h2>
<p>With my work, I try to provide a good balance of data protection needs and the
availability of data. My work should make it possible to analyse data while
preserving privacy of data.</p>
<p>In the first year of my PhD, I developed a hierarchical method for confidential
computations within a business network such as supply chains. I applied my
method to LCA, which ensures the confidentiality of data (e.g., information
about details of production processes) and meta-data (e.g., supplier-consumer
relationships). In contrast to traditional LCA, in my approach, I decompose LCA
into “levels” in a recursive way which enables us to apply secure multi-party
computation (SMPC) in an efficient way in complex supply chains.</p>
<p>In my second year, I plan to extend my approach to focus on the formal privacy
analysis of smart devices used in business networks.</p>
</article>
]]></summary>
</entry>
<entry>
    <title>AI in Both Defensive and Offensive Context</title>
    <link href="https://logicalhacking.com//blog/2021/03/07/ssw-cyber-and-ml-ai/" />
    <id>https://logicalhacking.com//blog/2021/03/07/ssw-cyber-and-ml-ai/</id>
    <published>2021-03-07T00:00:00Z</published>
    <updated>2021-03-07T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2021-03-07" pubdate data-updated="true"> 7 March 2021</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/security/">security</a> | <a href="/blog/tags/ai/">ai</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2021/03/07/ssw-cyber-and-ml-ai/">AI in Both Defensive and Offensive Context</a>
    </h1>
  </header>
  <p>Artificial Intelligence (AI) and machine learning (ML) seem to revolutionize all
aspects of our life. Of course, this also is true for cybersecurity - at least
if we believe the statements from vendors that want to sell their latest
AI/ML-enhanced security product. But is this really true?</p>
<!-- MORE -->
<p>In my presentation at the <a href="https://southwestcsc.org/secure-south-west-14/">Secure South West
14</a>, I will briefly explain how
ML/AI works, and I will discuss four different aspects of ML/AI in the context
of security:</p>
<ul>
<li><strong>ML/AI for defensive security</strong> (or: how can ML/AI be used for protecting systems
and organizations),</li>
<li><strong>ML/AI for offensive security</strong> (or: how threat actors might use ML/AI for
attacking systems and organizations),</li>
<li><strong>Security and safety of ML/AI</strong> (or: can we actually trust ML/AI, can we use it
to build systems that our life depends on?), and</li>
<li><strong>Challenges of ML/AI</strong> (or: challenges that systems relying on ML/AI face, and
that not everybody likes to talk about).</li>
</ul>
<p>Want to learn more? Attend the <a href="https://southwestcsc.org/secure-south-west-14/">Secure South West
14</a> on the 17th of March 2021.
Given the current circumstances, the event will be online and is free to attend.</p>
</article>
]]></summary>
</entry>
<entry>
    <title>CIISec Master Class: Attacking The (Software) Supply Chain</title>
    <link href="https://logicalhacking.com//blog/2021/02/07/cissec-supply-chain-security/" />
    <id>https://logicalhacking.com//blog/2021/02/07/cissec-supply-chain-security/</id>
    <published>2021-02-07T00:00:00Z</published>
    <updated>2021-02-07T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2021-02-07" pubdate data-updated="true"> 7 February 2021</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/security/">security</a> | <a href="/blog/tags/softwaresupplychain/">softwaresupplychain</a> | <a href="/blog/tags/softwaresecurity/">softwaresecurity</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2021/02/07/cissec-supply-chain-security/">CIISec Master Class: Attacking The (Software) Supply Chain</a>
    </h1>
  </header>
  <p>Modern systems, ranging from (smart) IoT devices to enterprise software
applications, are rarely developed “on the green field”: modern developers are
“composers” that build systems by combining existing solutions with own
developments. It is not uncommon that the final product consists of up to 90% of
third-party components.</p>
<!-- MORE -->
<p>On the one hand, these projects speed up the development. On the other hand,
their use requires trust and care: with a few lines of code in an installation
script, your development system can be powned or a small vulnerability in a
dependency can be the root cause of one of the largest data leaks of the last
years.</p>
<p>Want to learn more? Attend the <a href="https://www.ciisec.org/CIISEC/Development/Masterclass_Programme.aspx">CIISec
Masterclass</a>
on the 17th February 2021. In this masterclass, I will discuss, using real world
examples, the security threats of using software dependencies carelessly and
provide recommendations that help to minimize this risk.</p>
</article>
]]></summary>
</entry>
<entry>
    <title>Formal Foundations for Provably Safe Web Components</title>
    <link href="https://logicalhacking.com//blog/2020/11/16/phd-thesis-and-afp-entries-on-safe-webcomponents/" />
    <id>https://logicalhacking.com//blog/2020/11/16/phd-thesis-and-afp-entries-on-safe-webcomponents/</id>
    <published>2020-11-16T00:00:00Z</published>
    <updated>2020-11-16T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2020-11-16" pubdate data-updated="true">16 November 2020</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/phdlife/">phdlife</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2020/11/16/phd-thesis-and-afp-entries-on-safe-webcomponents/">Formal Foundations for Provably Safe Web Components</a>
    </h1>
  </header>
  <p>In March, Michael passed <a href="/blog/2020/03/18/congrats-michael/">successful his PhD
viva</a>. Now, his PhD thesis is available
<a href="https://etheses.whiterose.ac.uk/28023/">online</a>
<span class="citation" data-cites="herzberg:formal-web-components:2020">[1]</span>. The thesis investigates one of the
cornerstones of modern software development that enables the creation of
sophisticated software systems: the concept of reusable software components
for web applications.</p>
<!-- MORE -->
<p>The abstract of the thesis entitled “Formal Foundations for Provably Safe Web
Components” reads in its entirety:</p>
<blockquote>
<p>One of the cornerstones of modern software development that enables the
creation of sophisticated software systems is the concept of reusable software
components. E Especially the fast-paced and business-driven web ecosystem is
in need of a robust and safe way of reusing components. As it stands, however,
the concepts and functions needed to create web components are spread out,
immature, and not clearly defined, leaving much room for misunderstandings. To
improve the situation, we need to look at the core of web browsers: the
Document Object Model (DOM). It represents the state of a website with which
users and client-side code (JavaScript) interact. Being in this central
position makes the DOM the most central and critical part of a web browser
with respect to safety and security, so we need to understand exactly what it
does and which guarantees it provides. A well- established approach for this
kind of highly critical system is to apply formal methods to mathematically
prove certain properties. In this thesis, we provide a formal analysis of web
components based on shadow roots, highlight their short-comings by proving
them unsafe in many circumstances, and propose suggestions to provably improve
their safety. In more detail, we build a formalisation of the Core DOM in
Isabelle/HOL into which we introduce shadow roots. Then, we extract novel
properties and invariants that improve the often implicit assumptions of the
standard. We show that the model complies to the standard by symbolically
evaluating all relevant test cases from the official compliance suite
successfully on our model. We introduce novel definitions of web components
and their safety and classify the most important DOM API accordingly, by which
we uncover surprising behavior and shortcomings. Finally, we propose changes
to the DOM standard by altering our model and proving that the safety of many
DOM API methods improves while leading to a less ambiguous API.</p>
</blockquote>
<p>Parts of the PhD thesis <span class="citation" data-cites="herzberg:formal-web-components:2020">[1]</span> have been published in
international conferences
<span class="citation" data-cites="brucker.ea:core-dom:2018 brucker.ea:web-components:2019">[2], [3]</span>. Moreover, the
formalization is available in the <a href="https://www.isa-afp.org/">Archive of Formal
Proofs</a>:</p>
<ul>
<li>The standard compliant formalization is contained in the following
three entries:
<ul>
<li><a href="https://www.isa-afp.org/entries/Core_DOM.html">A Formal Model of the Document Object
Model</a>
<span class="citation" data-cites="brucker.ea:afp-core-dom:2018">[4]</span></li>
<li><a href="https://www.isa-afp.org/entries/DOM_Components.html">A Formalization of Web
Components</a>
<span class="citation" data-cites="brucker.ea:afp-dom-components:2020">[5]</span></li>
<li><a href="https://www.isa-afp.org/entries/Shadow_DOM.html">A Formal Model of the Document Object Model with Shadow
Roots</a>
<span class="citation" data-cites="brucker.ea:afp-shadow-dom:2020">[6]</span></li>
</ul></li>
<li>The improved version of the DOM that is safely composable is formalized in the
following three entries:
<ul>
<li><a href="https://www.isa-afp.org/entries/Core_SC_DOM.html">The Safely Composable
DOM</a>
<span class="citation" data-cites="brucker.ea:afp-core-sc-dom:2020">[7]</span></li>
<li><a href="https://www.isa-afp.org/entries/Shadow_SC_DOM.html">A Formal Model of the Safely Composable Document Object Model with Shadow
Roots</a>
<span class="citation" data-cites="brucker.ea:afp-shadow-sc-dom:2020">[8]</span></li>
<li><a href="https://www.isa-afp.org/entries/SC_DOM_Components.html">A Formalization of Safely Composable Web
Components</a>
<span class="citation" data-cites="brucker.ea:afp-sc-dom-components:2020">[9]</span></li>
</ul></li>
</ul>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-herzberg:formal-web-components:2020" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">M. Herzberg, <span>“Formal foundations for provably safe web components,”</span> PhD thesis, University of Sheffield, 2019. <a href="https://etheses.whiterose.ac.uk/28023/">https://etheses.whiterose.ac.uk/28023/</a></div>
</div>
<div id="ref-brucker.ea:core-dom:2018" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[2] </div><div class="csl-right-inline">A. D. Brucker and M. Herzberg, <span>“A formal semantics of the <span>Core</span> <span>DOM</span> in <span>Isabelle/HOL</span>,”</span> in <em>The 2018 web conference companion (WWW)</em>, 2018, pp. 741–749. doi: <a href="https://doi.org/10.1145/3184558.3185980">10.1145/3184558.3185980</a>. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-core-dom-2018/" class="uri">http://logicalhacking.com/publications/brucker.ea-core-dom-2018/</a></div>
</div>
<div id="ref-brucker.ea:web-components:2019" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[3] </div><div class="csl-right-inline">A. D. Brucker and M. Herzberg, <span>“A formally verified model of web components,”</span> in <em>Formal aspects of component software (FACS)</em>, S.-S. Jongmans and F. Arbab, Eds. Heidelberg: Springer-Verlag, 2020. doi: <a href="https://doi.org/10.1007/978-3-030-40914-2_3">10.1007/978-3-030-40914-2_3</a>. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-web-components-2019/" class="uri">http://logicalhacking.com/publications/brucker.ea-web-components-2019/</a></div>
</div>
<div id="ref-brucker.ea:afp-core-dom:2018" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[4] </div><div class="csl-right-inline">A. D. Brucker and M. Herzberg, <span>“The <span>Core</span> <span>DOM</span>,”</span> <em>Archive of Formal Proofs</em>, Dec. 2018. <a href="https://www.isa-afp.org/entries/Core_DOM.html" class="uri">https://www.isa-afp.org/entries/Core_DOM.html</a>, Formal proof development. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-afp-core-dom-2018/" class="uri">http://logicalhacking.com/publications/brucker.ea-afp-core-dom-2018/</a></div>
</div>
<div id="ref-brucker.ea:afp-dom-components:2020" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[5] </div><div class="csl-right-inline">A. D. Brucker and M. Herzberg, <span>“A formalization of web components,”</span> <em>Archive of Formal Proofs</em>, Sep. 2020. <a href="https://www.isa-afp.org/entries/DOM_Components.html" class="uri">https://www.isa-afp.org/entries/DOM_Components.html</a>, Formal proof development. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-afp-dom-components-2020/" class="uri">http://logicalhacking.com/publications/brucker.ea-afp-dom-components-2020/</a></div>
</div>
<div id="ref-brucker.ea:afp-shadow-dom:2020" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[6] </div><div class="csl-right-inline">A. D. Brucker and M. Herzberg, <span>“Shadow DOM: A formal model of the document object model with shadow roots,”</span> <em>Archive of Formal Proofs</em>, Sep. 2020. <a href="https://www.isa-afp.org/entries/Shadow_DOM.html" class="uri">https://www.isa-afp.org/entries/Shadow_DOM.html</a>, Formal proof development. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-afp-shadow-dom-2020/" class="uri">http://logicalhacking.com/publications/brucker.ea-afp-shadow-dom-2020/</a></div>
</div>
<div id="ref-brucker.ea:afp-core-sc-dom:2020" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[7] </div><div class="csl-right-inline">A. D. Brucker and M. Herzberg, <span>“The safely composable <span>DOM</span>,”</span> <em>Archive of Formal Proofs</em>, Sep. 2020. <a href="https://www.isa-afp.org/entries/Core_SC_DOM.html" class="uri">https://www.isa-afp.org/entries/Core_SC_DOM.html</a>, Formal proof development</div>
</div>
<div id="ref-brucker.ea:afp-shadow-sc-dom:2020" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[8] </div><div class="csl-right-inline">A. D. Brucker and M. Herzberg, <span>“Shadow SC DOM: A formal model of the safelty composable document object model with shadow roots,”</span> <em>Archive of Formal Proofs</em>, Sep. 2020. <a href="https://www.isa-afp.org/entries/Shadow_SC_DOM.html" class="uri">https://www.isa-afp.org/entries/Shadow_SC_DOM.html</a>, Formal proof development. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-afp-shadow-sc-dom-2020/" class="uri">http://logicalhacking.com/publications/brucker.ea-afp-shadow-sc-dom-2020/</a></div>
</div>
<div id="ref-brucker.ea:afp-sc-dom-components:2020" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[9] </div><div class="csl-right-inline">A. D. Brucker and M. Herzberg, <span>“A formalization of safely composable web components,”</span> <em>Archive of Formal Proofs</em>, Sep. 2020. <a href="https://www.isa-afp.org/entries/SC_DOM_Components.html" class="uri">https://www.isa-afp.org/entries/SC_DOM_Components.html</a>, Formal proof development. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-afp-sc-dom-components-2020/" class="uri">http://logicalhacking.com/publications/brucker.ea-afp-sc-dom-components-2020/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>Choosing the Right Video Conference Tool</title>
    <link href="https://logicalhacking.com//blog/2020/11/01/swcsc-video-selector/" />
    <id>https://logicalhacking.com//blog/2020/11/01/swcsc-video-selector/</id>
    <published>2020-11-01T00:00:00Z</published>
    <updated>2020-11-01T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2020-11-01" pubdate data-updated="true"> 1 November 2020</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2020/11/01/swcsc-video-selector/">Choosing the Right Video Conference Tool</a>
    </h1>
  </header>
  <p>Wondering with video conference software to use? There are plenty of options
available, but not all of them are equally privacy-friendly.</p>
<!-- MORE -->
<p>We helped the <a href="https://southwestcsc.org/">South West Cyber Security Cluster
(SWCSC)</a> to create a selector that helps you to
select the best video conferencing tool for your business based on features
and a cybersecurity and privacy assessments by the SWCSC.</p>
<p>Just use the `text filters’ to narrow the list to meet your needs. Read the
column header notes (hover over and click) to understand the basis of each
assessment. <a href="https://onedrive.live.com/view.aspx?resid=E5A2FCABB442AF71!116&amp;ithint=file%2cxlsx&amp;authkey=!ADPALAXiH-Lvyto">Access the
selector.</a></p>
<p>In addition to selecting a secure and privacy-friendly video conferencing tool,
you might also want to establish a few <strong>best practices</strong>, e.g.:</p>
<ul>
<li>Do not publish screenshots of your meetings, they
<ul>
<li>might reveal meeting ids or passwords</li>
<li>violate the privacy of the participants (if you want to publish a screenshot
showing participants, ask for permission)</li>
</ul></li>
<li>Do protect your meetings with a password and/or a lobby (and check whom you do
admit)</li>
<li>Do not host public meetings using your personal (private) meeting room</li>
<li>You might want to blur or hide your background, if you use a camera</li>
<li>Only the presenter(s) should be able to share screens and/or take
over control of the meeting (admitting people, etc.)</li>
</ul>
</article>
]]></summary>
</entry>
<entry>
    <title>Model Transformation as Conservative Theory-Transformation</title>
    <link href="https://logicalhacking.com//blog/2020/10/03/model-transformations/" />
    <id>https://logicalhacking.com//blog/2020/10/03/model-transformations/</id>
    <published>2020-10-03T00:00:00Z</published>
    <updated>2020-10-03T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2020-10-03" pubdate data-updated="true"> 3 October 2020</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2020/10/03/model-transformations/">Model Transformation as Conservative Theory-Transformation</a>
    </h1>
  </header>
  <p>Model transformations play a central role in model-driven software development.
Hence, logical unsafe model transformation can result in erroneous systems.
Still, most model transformations are written in languages that do not provide
built-in safeness guarantees.</p>
<!-- MORE -->
<p>We present a new technique to construct tool support for domain-specific
languages (DSLs) inside the interactive theorem prover environment Isabelle. Our
approach is based on modeling the DSL formally in higher-order logic (HOL),
modeling the API of Isabelle inside it, and defining the transformation between
these two. Reflection via the powerful code generators yields code that can be
integrated as extension into Isabelle and its user interface. Moreover, we use
code generation to produce tactic code which is bound to appropriate
command-level syntax.</p>
<p>In our JOT paper <span class="citation" data-cites="brucker.ea:model:2020">[1]</span>, we present an approach that ensures
the logical safeness (conservativity) of the theorem prover extension and, thus,
provides a certified tool for the DSL in all aspects: the deductive capacities
of theorem prover, code generation, and IDE support. We demonstrate our approach
by extending Isabelle/HOL with support for UML/OCL and, more generally,
providing support for a formal object-oriented modeling method.</p>
<p>The underlying formalization <span class="citation" data-cites="brucker.ea:featherweight:2014">[2]</span> is available in
the <a href="https://www.isa-afp.org/entries/Featherweight_OCL.html">Archive of Formal
Proofs</a>.</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-brucker.ea:model:2020" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">A. D. Brucker, F. Tuong, and B. Wolff, <span>“Model transformation as conservative theory-transformation,”</span> <em>J. Object Technol.</em>, 2020. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-model-2020/" class="uri">http://logicalhacking.com/publications/brucker.ea-model-2020/</a></div>
</div>
<div id="ref-brucker.ea:featherweight:2014" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[2] </div><div class="csl-right-inline">A. D. Brucker, F. Tuong, and B. Wolff, <span>“<span>Featherweight</span> <span>OCL</span>: A proposal for a machine-checked formal semantics for <span>OCL</span> 2.5,”</span> <em>Archive of Formal Proofs</em>, Jan. 2014. <a href="https://www.isa-afp.org/entries/Featherweight_OCL.shtml" class="uri">https://www.isa-afp.org/entries/Featherweight_OCL.shtml</a>, Formal proof development. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-featherweight-2014/" class="uri">http://logicalhacking.com/publications/brucker.ea-featherweight-2014/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>Welcoming Our MSc Cyber Security Analytics Students</title>
    <link href="https://logicalhacking.com//blog/2020/09/21/welcome-msc-cyber-analytics/" />
    <id>https://logicalhacking.com//blog/2020/09/21/welcome-msc-cyber-analytics/</id>
    <published>2020-09-21T00:00:00Z</published>
    <updated>2020-09-21T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2020-09-21" pubdate data-updated="true">21 September 2020</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/uoe/">uoe</a> | <a href="/blog/tags/security/">security</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2020/09/21/welcome-msc-cyber-analytics/">Welcoming Our MSc Cyber Security Analytics Students</a>
    </h1>
  </header>
  <p>For the first time, we are welcoming students in our brand-new <a href="https://www.exeter.ac.uk/postgraduate/courses/computerscience/cyber-security/">MSc Cyber
Security
Analytics</a>
degree. In the taught modules, the students will improve their skills in
cyber security, data analytics, and machine learning.</p>
<!-- MORE -->
<p>In their research project, the students will refine their skills by applying
their newly acquired knowledge to a project in the intersection of data science
and cyber security. This could, e.g., a project using data science techniques
for analyzing a security problem or analyzing the security of data science or
machine learning techniques.</p>
</article>
]]></summary>
</entry>
<entry>
    <title>Weakest Link in Cybersecurity</title>
    <link href="https://logicalhacking.com//blog/2020/06/18/the-weakest-link/" />
    <id>https://logicalhacking.com//blog/2020/06/18/the-weakest-link/</id>
    <published>2020-06-18T00:00:00Z</published>
    <updated>2020-06-18T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2020-06-18" pubdate data-updated="true">18 June 2020</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/security/">security</a> | <a href="/blog/tags/humanfactor/">humanfactor</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2020/06/18/the-weakest-link/">Weakest Link in Cybersecurity</a>
    </h1>
  </header>
  <p>The current pandemic has forced many businesses into a very sudden and
far-reaching adaption of digital technologies to facilitate remote
working. This change looks as though it is here to stay.</p>
<!-- MORE -->
<p>We are seeing an increasing number of criminal activities that try to
take advantage of both the large number of novice remote works and the
general uncertainties that the current situation brings.</p>
<p>Consequently, many businesses are faced with the question: what is the
weakest link in our cyber defense that we need to strengthen? Many of us
will be reminded of the catchphrase “humans are the weakest link in
cybersecurity”. But is this really a good picture that should guide our
actions?</p>
<p>The problem with this picture is that it makes it too easy to blame
users: we trained our staff not to click on links in emails and still,
they are doing it. Actually, the picture hinders us to ask two important
questions: first, how can we improve our processes so that users do not
have to click on links and, second, how can we build a system for which
clicking on links is secure and safe.</p>
<p>A better picture might be a swing with two chains: we need to keep both
chains strong and in good shape, so that our children enjoy using a
swing that keeps them safe. Translating this picture to cybersecurity
means that we need to address the weak links in our “social chain” and
our “technical chain”. Moreover, we need to bring both together
processes and IT systems that are easy to use and support the tasks the
users need to fulfil in their role. We need to develop systems that are
<em>safe and secure by design</em>, that are easy to use and maintain. This,
together with supporting and educating users will minimize the risk of
becoming a victim of criminal cyber activities.</p>
<p>Stay safe and secure and keep your knowledge, skills and technical
systems up-to-date.</p>
<p><strong>Note:</strong> This post has also been published on the <a href="https://researchandinnovation.co.uk/weakest-link-in-cyber-security/">Research &amp; Innovation Blog
of the University of
Exeter</a> and
in the <a href="https://flickread.com/edition/html/5ec5375b918e0#57">South West Business
Insider</a>.</p>
</article>
]]></summary>
</entry>
<entry>
    <title>Secure Life Cycle Assessment in Complex Supply Chains</title>
    <link href="https://logicalhacking.com//blog/2020/06/11/negis-confidential-lca/" />
    <id>https://logicalhacking.com//blog/2020/06/11/negis-confidential-lca/</id>
    <published>2020-06-11T00:00:00Z</published>
    <updated>2020-06-11T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2020-06-11" pubdate data-updated="true">11 June 2020</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/pet/">pet</a> | <a href="/blog/tags/phdlife/">phdlife</a> | <a href="/blog/tags/dsbd/">dsbd</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2020/06/11/negis-confidential-lca/">Secure Life Cycle Assessment in Complex Supply Chains</a>
    </h1>
  </header>
  <p>The environmental impact of products becomes an increasingly important factor in
buying decisions of customers, moreover, is also a growing concern of lawmakers.
Hence, companies have an increased interest in determining the ecological
footprint of their products. A standardized method for computing the ecological
footprint of a product is life-cycle assessment (LCA).</p>
<!-- MORE -->
<p>Life Cycle Assessment (LCA) is a technique that evaluates the ecological
sustainability of a product or service in a quantitative way. LCA requires
exhaustive and comprehensible information about industrial activities to make an
accurate evaluation. LCA relies on a variety of data about the production and
delivery processes of the partners within a supply chain. As this data can
reveal, e.g., trade secrets, it is often classified as confidential. Moreover,
the collaborations within a supply chain can reveal business relationships
within a supply chain, which can be confidential in themselves. As a result,
security and confidentially concerns are currently hindering both the
collaboration within supply chains and the timely and precise LCA.</p>
<p>On the 9th of June 2020, Sakine gave her first presentation at the <a href="https://www.negis.polimi.it/negis2020/">NeGIS
2020</a> Workshops. In her
<a href="https://www.youtube.com/watch?v=5eVnbJ1kOaU">presentation</a>, she
presented an approach for LCA that ensures the confidentiality of data (e.g.,
information about details of production processes) and meta-data (e.g.,
supplier-consumer relationships). One of the core ideas is the decomposition of
LCA into “levels”, which allows for applying secure multi-party computation
(SMPC) efficiently, enabling close-to real time LCA in complex supply
chains.</p>
<h3 class="sectionAnchor" id="supplementary-material">Supplementary Material <a href="#supplementary-material">§</a></h3>
<ul>
<li><a href="https://www.youtube.com/watch?v=5eVnbJ1kOaU">Video</a></li>
</ul>
</article>
]]></summary>
</entry>
<entry>
    <title>Isabelle Hacks</title>
    <link href="https://logicalhacking.com//blog/2020/04/09/isabelle-hacks/" />
    <id>https://logicalhacking.com//blog/2020/04/09/isabelle-hacks/</id>
    <published>2020-04-09T00:00:00Z</published>
    <updated>2020-04-09T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2020-04-09" pubdate data-updated="true"> 9 April 2020</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2020/04/09/isabelle-hacks/">Isabelle Hacks</a>
    </h1>
  </header>
  <p>Every day, you work with <a href="https://isabelle.in.tum.de/">Isabelle</a>, you likely
learn a new trick. Sadly, you will also have forgotten as quickly as you learned
them. To make it easier to rediscover them, and also to make it easier to port
them across different versions of Isabelle, we build a collection of “hacks”.</p>
<!-- MORE -->
<p>These “hacks” provide additional functionality to
<a href="https://isabelle.in.tum.de">Isabelle</a> or showcase specific functionality. Each
individual hack usually consists out of a single theory file and all
documentation is contained in that theory file The plan is to keep the main
branch working with the most current release of Isabelle, and to provide tags
for older Isabelle releases. The hacks are available at:
<a href="https://git.logicalhacking.com/adbrucker/isabelle-hacks" class="uri">https://git.logicalhacking.com/adbrucker/isabelle-hacks</a>. Currently, the
following hacks are included:</p>
<ul>
<li><code>Assert.thy</code> provides a new top level command <strong>assert</strong> that provides a
simple way for specifying assertions that Isabelle checks while processing a
theory.</li>
<li><code>Hiding_Type_Variables.thy</code> provides print a setup for defining default type
variables of type constructors. The default type variables can be hidden in
output, e.g., <code>('a, 'b, 'c) foo</code> is shown as <code>(_) foo</code>. This shorthand
notation can also be used in input (using a parse translation), which
(sometimes) helps to focus on the important parts of complex type
declarations.</li>
<li><code>Nano_JSON.thy</code> provides support for a JSON-like data exchange for
Isabelle/HOL.</li>
<li><code>Code_Reflection.thy</code> provides a new top-level command for reflecting
generated SML code into Isabelle’s ML environment.</li>
</ul>
<p>New hacks will be added regularly.</p>
<p>If not otherwise stated, all hacks are licensed under a 2-clause BSD-style
license, i.e., the license used for Isabelle itself and for most of the entries
in the <a href="https://www.isa-afp.org/">Archive of Formal Proofs</a>.</p>
</article>
]]></summary>
</entry>
<entry>
    <title>Two Fully Funded PhD Scholarships (EU/UK)</title>
    <link href="https://logicalhacking.com//blog/2020/03/20/fully-funded-phd-positions/" />
    <id>https://logicalhacking.com//blog/2020/03/20/fully-funded-phd-positions/</id>
    <published>2020-03-20T00:00:00Z</published>
    <updated>2020-03-20T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2020-03-20" pubdate data-updated="true">20 March 2020</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/uoe/">uoe</a> | <a href="/blog/tags/staff%26positions/">staff&amp;positions</a> | <a href="/blog/tags/security/">security</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2020/03/20/fully-funded-phd-positions/">Two Fully Funded PhD Scholarships (EU/UK)</a>
    </h1>
  </header>
  <p>Two fully funded PhD scholarships for EU/UK applicants are available in the
<a href="http://emps.exeter.ac.uk/computer-science/research/cyber-security/">Security and Trust of Advanced Systems
Group</a>
(<a href="https://www.brucker.ch/">Prof Achim Brucker</a> or <a href="https://marmsoler.com/">Dr Diego
Marmsoler</a>) at the <a href="http://emps.exeter.ac.uk/computer-science/">Department of Computer Science of
the University of Exeter</a>, UK.</p>
<!-- MORE -->
<p>We are looking for enthusiastic and outstanding Computer Science or
Mathematics students with a strong background in some of the following
topics:</p>
<ul>
<li>safety or security of (software) systems,</li>
<li>formal modelling or formal reasoning/verification,</li>
<li>program analysis or program verification,</li>
<li>language-based security</li>
<li>semantics of programming languages,</li>
<li>theorem proving, model checking,</li>
<li>cryptographic protocols,</li>
<li>distributed systems (e.g., blockchain),</li>
<li>specification-based testing, and</li>
<li>design and implementation of security architectures.</li>
</ul>
<p>This award provides annual funding to cover UK/EU tuition fees and a tax-free
stipend. For students who pay UK/EU tuition fees the award will cover the
tuition fees in full, plus at least £15,009 per year tax-free stipend. The
studentship will be awarded on the basis of merit for 3.5 years of full-time
study.</p>
<p>For more details, please consult the <a href="http://www.exeter.ac.uk/studying/funding/award/?id=3887">official
advertisement</a>.</p>
<p>The closing date for applications is midnight on 1 May 2020. Project-specific
queries should be directed to the supervisors, <a href="https://www.brucker.ch/">Prof Achim Brucker</a>
or <a href="https://marmsoler.com/">Dr Diego Marmsoler</a>.</p>
</article>
]]></summary>
</entry>
<entry>
    <title>Open Position as Lecturer in Computer Science</title>
    <link href="https://logicalhacking.com//blog/2020/03/20/acadmic-positions-in-security/" />
    <id>https://logicalhacking.com//blog/2020/03/20/acadmic-positions-in-security/</id>
    <published>2020-03-20T00:00:00Z</published>
    <updated>2020-03-20T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2020-03-20" pubdate data-updated="true">20 March 2020</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/uoe/">uoe</a> | <a href="/blog/tags/staff%26positions/">staff&amp;positions</a> | <a href="/blog/tags/security/">security</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2020/03/20/acadmic-positions-in-security/">Open Position as Lecturer in Computer Science</a>
    </h1>
  </header>
  <p>As part of the expansion of the Department of Computer Science at the University
of <a href="https://www.exeter.ac.uk/computer-science/">Exeter</a>, we are recruiting for a
Lecturer in Cybersecurity. The lecturer will be part of the newly formed
<a href="https://emps.exeter.ac.uk/computer-science/research/cyber-security/">Security and Trust of Advanced Systems
Group</a>.</p>
<!-- MORE -->
<p>We are looking for a candidate with an outstanding research record
in any area related to cybersecurity (information security) such as
(but not limited to):</p>
<ul>
<li>access control</li>
<li>usable security</li>
<li>software/application security</li>
<li>formal methods for security</li>
<li>language-based security/privacy</li>
<li>secure programming</li>
<li>information flow</li>
<li>security protocols</li>
<li>network security</li>
<li>security of distributes systems</li>
<li>human aspects of security</li>
<li>hardware security</li>
<li>security economics</li>
<li>security-by-design</li>
<li>applied cryptography</li>
<li>privacy-enhancing technologies</li>
<li>threat hunting, security analytics</li>
<li>threat modelling</li>
<li>forensics, reverse engineering</li>
<li>trustworthy AI/ML</li>
<li>security/penetration testing</li>
</ul>
<p>You will have a PhD or equivalent in Cybersecurity, Computer Science,
Mathematics, Engineering or a related area. Please refer to the job
description for full details.</p>
<p>We understand <strong>security and safety entangled concepts</strong>: in most
modern systems one cannot be achieved without the other. Hence, we
encourage also candidates working in related domains such as <strong>safety,
dependability, resilience, or reliability</strong> to apply.</p>
<p>Please apply by 8th of April 2020! See the [full announcement](<a href="https://jobs.exeter.ac.uk/hrpr_webrecruitment/wrd/run/ETREC107GF.open?VACANCY_ID=803965SHQd&amp;WVID=381759" class="uri">https://jobs.exeter.ac.uk/hrpr_webrecruitment/wrd/run/ETREC107GF.open?VACANCY_ID=803965SHQd&amp;WVID=381759</a>
1jNg&amp;LANG=USA) for all details.</p>
</article>
]]></summary>
</entry>
<entry>
    <title>Congratulations to Michael on passing his PhD viva!</title>
    <link href="https://logicalhacking.com//blog/2020/03/18/congrats-michael/" />
    <id>https://logicalhacking.com//blog/2020/03/18/congrats-michael/</id>
    <published>2020-03-18T00:00:00Z</published>
    <updated>2020-03-18T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2020-03-18" pubdate data-updated="true">18 March 2020</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/phdlife/">phdlife</a> | <a href="/blog/tags/tuos/">tuos</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2020/03/18/congrats-michael/">Congratulations to Michael on passing his PhD viva!</a>
    </h1>
  </header>
  <p>Many congratulations to Michael Herzberg who passed his PhD viva with minor
corrections!</p>
<!-- MORE -->
<p>Michael’s PhD thesis entitled “Formal Foundations for Provably Safe Web
Components” presents a formally verified proposal for improving web components.
During his PhD, Michael published three conference publications
<span class="citation" data-cites="brucker.ea:cordova-security:2016 brucker.ea:core-dom:2018 brucker.ea:web-components:2019">[1]–[3]</span>.</p>
<p>Well done Michael and good luck in your future!!!</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-brucker.ea:cordova-security:2016" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">A. D. Brucker and M. Herzberg, <span>“On the static analysis of hybrid mobile apps: A report on the state of apache cordova nation,”</span> in <em>International symposium on engineering secure software and systems (ESSoS)</em>, J. Caballero and E. Bodden, Eds. Heidelberg: Springer-Verlag, 2016, pp. 72–88. doi: <a href="https://doi.org/10.1007/978-3-319-30806-7_5">10.1007/978-3-319-30806-7_5</a>. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-cordova-security-2016/" class="uri">http://logicalhacking.com/publications/brucker.ea-cordova-security-2016/</a></div>
</div>
<div id="ref-brucker.ea:core-dom:2018" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[2] </div><div class="csl-right-inline">A. D. Brucker and M. Herzberg, <span>“A formal semantics of the <span>Core</span> <span>DOM</span> in <span>Isabelle/HOL</span>,”</span> in <em>The 2018 web conference companion (WWW)</em>, 2018, pp. 741–749. doi: <a href="https://doi.org/10.1145/3184558.3185980">10.1145/3184558.3185980</a>. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-core-dom-2018/" class="uri">http://logicalhacking.com/publications/brucker.ea-core-dom-2018/</a></div>
</div>
<div id="ref-brucker.ea:web-components:2019" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[3] </div><div class="csl-right-inline">A. D. Brucker and M. Herzberg, <span>“A formally verified model of web components,”</span> in <em>Formal aspects of component software (FACS)</em>, S.-S. Jongmans and F. Arbab, Eds. Heidelberg: Springer-Verlag, 2020. doi: <a href="https://doi.org/10.1007/978-3-030-40914-2_3">10.1007/978-3-030-40914-2_3</a>. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-web-components-2019/" class="uri">http://logicalhacking.com/publications/brucker.ea-web-components-2019/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>Unsanitize Safelinks</title>
    <link href="https://logicalhacking.com//blog/2020/01/03/safelinks/" />
    <id>https://logicalhacking.com//blog/2020/01/03/safelinks/</id>
    <published>2020-01-03T00:00:00Z</published>
    <updated>2020-01-03T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2020-01-03" pubdate data-updated="true"> 3 January 2020</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/security/">security</a> | <a href="/blog/tags/safelinks/">safelinks</a> | <a href="/blog/tags/phishing/">phishing</a> | <a href="/blog/tags/tips%26tricks/">tips&amp;tricks</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2020/01/03/safelinks/">Unsanitize Safelinks</a>
    </h1>
  </header>
  <p>Both the home/personal online offerings of Microsoft Outlook (e.g., Outlook.com,
Office 365 Home, or Office 365 Personal) and the professional Office 365
offerings (e.g., as part of Office 365 Advanced Threat Detection) might rewrite
links in received emails with the goal of protecting users against certain
threats (e.g., phishing).</p>
<!-- MORE -->
<p>For various reasons, one might to rewrite these “safelinks” back into their
original form.</p>
<p>The script
<a href="https://git.logicalhacking.com/adbrucker/unsanitize-safelinks">unsantize-safelinks</a>
does exactly this. This can, for example, be used for displaying mails nicely in
<a href="https://www.mutt.org">mutt</a> or other text-based mail programs. In your
“.muttrc” you need to add/edit the following configuration:</p>
<pre class="muttrc"><code>set display_filter=&quot;unsanitize-safelinks&quot;</code></pre>
<p>If you want to also rewrite the links when using tools such as urlscan, use:</p>
<pre class="muttrc"><code>macro index,pager \cb &quot;&lt;pipe-message&gt; unsanitize-safelinks| urlscan&lt;Enter&gt;&quot;</code></pre>
<p>And the following trick rewrites the links prior to editing a message (e.g., when replying):</p>
<pre class="muttrc"><code>set editor =&quot;unsanitize-safelinks -i %s &amp;&amp; $EDITOR %s&quot;</code></pre>
<p>Finally, if links should be rewritten when viewing the HTML-part, you need to
edit your <code>.mailcap</code> entry for type <code>text/html</code>:</p>
<pre class="mailcap"><code>text/html; unsanitize-safelinks -i --html %s &amp;&amp; /usr/bin/sensible-browser %s; description=HTML Text; nametemplate=%s.html</code></pre>
<h2 class="sectionAnchor" id="availability">Availability <a href="#availability">§</a></h2>
<p>The project is licensed under a 2-clause BSD license and available at:
<a href="https://git.logicalhacking.com/adbrucker/unsanitize-safelinks" class="uri">https://git.logicalhacking.com/adbrucker/unsanitize-safelinks</a>.</p>
</article>
]]></summary>
</entry>
<entry>
    <title>Welcome, Diego!</title>
    <link href="https://logicalhacking.com//blog/2020/01/02/welcome-diego/" />
    <id>https://logicalhacking.com//blog/2020/01/02/welcome-diego/</id>
    <published>2020-01-02T00:00:00Z</published>
    <updated>2020-01-02T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2020-01-02" pubdate data-updated="true"> 2 January 2020</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2020/01/02/welcome-diego/">Welcome, Diego!</a>
    </h1>
  </header>
  <p>A warm welcome to <a href="https://marmsoler.com/">Dr Diego Marmsoler</a>. Diego is joining
the <a href="http://emps.exeter.ac.uk/computer-science/research/cyber-security/">Security and Trust of Advanced Systems
Group</a> at
the <a href="http://emps.exeter.ac.uk/computer-science/">Department of Computer Science of the University of
Exeter</a> as a Lecturer in Cyber
Security.</p>
<!-- MORE -->
<p>Diego is a world-renowned expert on formal methods. Our students will already
meet him next week, when he starts teaching our module on Web Development.</p>
</article>
]]></summary>
</entry>
<entry>
    <title>OCL Emerging Trends - 2019 Edition</title>
    <link href="https://logicalhacking.com//blog/2019/12/06/ocl-emerging-trends/" />
    <id>https://logicalhacking.com//blog/2019/12/06/ocl-emerging-trends/</id>
    <published>2019-12-06T00:00:00Z</published>
    <updated>2019-12-06T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2019-12-06" pubdate data-updated="true"> 6 December 2019</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/ocl/">ocl</a> | <a href="/blog/tags/hol-ocl/">hol-ocl</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2019/12/06/ocl-emerging-trends/">OCL Emerging Trends - 2019 Edition</a>
    </h1>
  </header>
  <p>After a successful 19th edition of the International Workshop on OCL and Textual
Modeling in Munich the proceedings are now available online, as <a href="http://ceur-ws.org/Vol-2513/">Volume 2513 of
the CEUR Workshop Proceedings</a>.</p>
<!-- MORE -->
<p>The proceedings also include a summary of the discussion of the expert panel and
lightning talk session <span class="citation" data-cites="brucker.ea:emerging:2019">[1]</span>, in which three experts on OCL
and textual modelling presented their ongoing works.</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-brucker.ea:emerging:2019" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">A. D. Brucker <em>et al.</em>, <span>“Emerging topics in textual modelling,”</span> in <em>OCL 2019</em>, 2019, vol. 2513, pp. 91–104. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-emerging-2019/" class="uri">http://logicalhacking.com/publications/brucker.ea-emerging-2019/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>Using Ontologies in Formal Developments Targeting Certification</title>
    <link href="https://logicalhacking.com//blog/2019/12/03/ifm-isadof-cenelec/" />
    <id>https://logicalhacking.com//blog/2019/12/03/ifm-isadof-cenelec/</id>
    <published>2019-12-03T00:00:00Z</published>
    <updated>2019-12-03T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2019-12-03" pubdate data-updated="true"> 3 December 2019</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2019/12/03/ifm-isadof-cenelec/">Using Ontologies in Formal Developments Targeting Certification</a>
    </h1>
  </header>
  <p>A common problem in the certification of highly safety or security critical
systems is the consistency of the certification documentation in general and, in
particular, the linking between semiformal and formal content of the
certification documentation.</p>
<!-- MORE -->
<p>We address this problem by using an existing framework, Isabelle/DOF, that
allows writing certification documents with consistency guarantees, in both, the
semiformal and formal parts. Isabelle/DOF supports the modeling of document
ontologies using a strongly typed ontology definition language. An ontology is
then enforced inside documents including formal parts, e.g., system models,
verification proofs, code, tests and validations of corner-cases. The entire set
of documents is checked within Isabelle/HOL, which includes the definition of
ontologies and the editing of integrated documents based on them. This process
is supported by an IDE that provides continuous checking of the document
consistency.</p>
<p>In our iFM paper <span class="citation" data-cites="brucker.ea:ontologies-certification:2019">[1]</span>, we present how a
specific software-engineering certification standard, namely CENELEC 50128, can
be modeled inside Isabelle/DOF. Based on an ontology covering a substantial part
of this standard, we present how Isabelle/DOF can be applied to a certification
case-study in the railway domain.</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-brucker.ea:ontologies-certification:2019" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">A. D. Brucker and B. Wolff, <span>“Using ontologies in formal developments targeting certification,”</span> in <em>Integrated formal methods (iFM)</em>, W. Ahrendt and S. L. T. Tarifa, Eds. Heidelberg: Springer-Verlag, 2019. doi: <a href="https://doi.org/10.1007/978-3-030-34968-4_4">10.1007/978-3-030-34968-4_4</a>. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-ontologies-certification-2019/" class="uri">http://logicalhacking.com/publications/brucker.ea-ontologies-certification-2019/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>A Formally Verified Model of Web Components</title>
    <link href="https://logicalhacking.com//blog/2019/10/23/facs-shadow-fdom/" />
    <id>https://logicalhacking.com//blog/2019/10/23/facs-shadow-fdom/</id>
    <published>2019-10-23T00:00:00Z</published>
    <updated>2019-10-23T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2019-10-23" pubdate data-updated="true">23 October 2019</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2019/10/23/facs-shadow-fdom/">A Formally Verified Model of Web Components</a>
    </h1>
  </header>
  <p>The trend towards ever more complex client-side web applications is unstoppable.
Compared to traditional software development, client-side web development lacks
a well-established component model, i.e., a method for easily and safely reusing
already developed functionality. To address this issue, the web community
started to adopt shadow trees as part of the Document Object Model (DOM). Shadow
trees allow developers to “partition” a DOM instance into parts that should be
safely separated, e.g., code modifying one part should not unintentionally
affect other parts of the DOM.</p>
<!-- MORE -->
<p>While shadow trees provide the technical basis for defining web components, the
DOM standard neither defines the concept of web components nor specifies the
safety properties that web components should guarantee. Consequently, the
standard also does not discuss how or even if the methods for modifying the DOM
respect component boundaries.</p>
<p>In our FACS paper <span class="citation" data-cites="brucker.ea:web-components:2019">[1]</span>, we present a formally
verified model of web components and define safety properties which ensure that
different web components can only interact with each other using well-defined
interfaces. Moreover, our verification of the application programming interface
(API) of the DOM revealed numerous invariants that implementations of the DOM
API need to preserve to ensure the integrity of components.</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-brucker.ea:web-components:2019" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">A. D. Brucker and M. Herzberg, <span>“A formally verified model of web components,”</span> in <em>Formal aspects of component software (FACS)</em>, S.-S. Jongmans and F. Arbab, Eds. Heidelberg: Springer-Verlag, 2020. doi: <a href="https://doi.org/10.1007/978-3-030-40914-2_3">10.1007/978-3-030-40914-2_3</a>. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-web-components-2019/" class="uri">http://logicalhacking.com/publications/brucker.ea-web-components-2019/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>Security in a Maritime World Dominated by Software</title>
    <link href="https://logicalhacking.com//blog/2019/10/11/plymouth-maritime-sw-security/" />
    <id>https://logicalhacking.com//blog/2019/10/11/plymouth-maritime-sw-security/</id>
    <published>2019-10-11T00:00:00Z</published>
    <updated>2019-10-11T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2019-10-11" pubdate data-updated="true">11 October 2019</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/security/">security</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2019/10/11/plymouth-maritime-sw-security/">Security in a Maritime World Dominated by Software</a>
    </h1>
  </header>
  <p>Software is changing the marine world both by providing new functionality and
opportunities and by replacing mechanical controls by software-based systems. In
this session, we will look at the security risk of interconnected software
systems in general, discuss lessons learned in other sectors, and explore what
makes cybersecurity for the marine sector special.</p>
<!-- MORE -->
<p>Want to learn more? Visit the <a href="https://helmtickets.com/events/5050/marine-and-maritime-cyber-security">Marine and Maritime Cyber
Security</a>
event in Plymouth.</p>
</article>
]]></summary>
</entry>
<entry>
    <title>Isabelle/DOF: Design and Implementation</title>
    <link href="https://logicalhacking.com//blog/2019/09/20/sefm-isa_dof-framework/" />
    <id>https://logicalhacking.com//blog/2019/09/20/sefm-isa_dof-framework/</id>
    <published>2019-09-20T00:00:00Z</published>
    <updated>2019-09-20T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2019-09-20" pubdate data-updated="true">20 September 2019</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2019/09/20/sefm-isa_dof-framework/">Isabelle/DOF: Design and Implementation</a>
    </h1>
  </header>
  <p>DOF is a novel framework for defining ontologies and en- forcing them during
document development and document evolution. A major goal of DOF is the
integrated development of formal certification documents (e.g., for Common
Criteria or CENELEC 50128) that require consistency across both formal and
informal arguments.</p>
<!-- MORE -->
<p>To support a consistent development of formal and informal parts of a document,
we provide Isabelle/DOF, an implementation of DOF on top of Isabelle/HOL.
Isabelle/DOF is integrated into Isabelle’s IDE, which allows for smooth ontology
development as well as immediate ontological feedback during the editing of a
document.</p>
<p>In our SEFM paper <span class="citation" data-cites="brucker.ea:isabelledof:2019">[1]</span>, we give an in-depth
presentation of the design concepts of DOF’s Ontology Definition Language (ODL)
and key aspects of the technology of its implementation. Isabelle/DOF is the
first ontology language supporting machine-checked links between the formal and
informal parts in an LCF-style interactive theorem proving environment.
Sufficiently annotated, large documents can easily be developed collaboratively,
while ensuring their consistency, and the impact of changes (in the formal and
the semiformal content) is tracked automatically.</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-brucker.ea:isabelledof:2019" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">A. D. Brucker and B. Wolff, <span>“<span>Isabelle/DOF</span>: Design and implementation,”</span> in <em>Software engineering and formal methods (SEFM)</em>, P. C. Ölveczky and G. Salaün, Eds. Heidelberg: Springer-Verlag, 2019, pp. 275–292. doi: <a href="https://doi.org/10.1007/978-3-030-30446-1_15">10.1007/978-3-030-30446-1_15</a>. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-isabelledof-2019/" class="uri">http://logicalhacking.com/publications/brucker.ea-isabelledof-2019/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>Incorporating Data into EFSM Inference</title>
    <link href="https://logicalhacking.com//blog/2019/09/19/sefm-efsm-inference/" />
    <id>https://logicalhacking.com//blog/2019/09/19/sefm-efsm-inference/</id>
    <published>2019-09-19T00:00:00Z</published>
    <updated>2019-09-19T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2019-09-19" pubdate data-updated="true">19 September 2019</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2019/09/19/sefm-efsm-inference/">Incorporating Data into EFSM Inference</a>
    </h1>
  </header>
  <p>Models are an important way of understanding software systems. If they do not
already exist, then we need to infer them from system behaviour. Most current
approaches infer classical FSM models that do not consider data, thus limiting
applicability. EFSMs provide a way to concisely model systems with an internal
state but existing inference techniques either do not infer models which allow
outputs to be computed from inputs, or rely heavily on comprehensive white-box
traces that reveal the internal program state, which are often unavailable.</p>
<!-- MORE -->
<p>In our SEFM paper <span class="citation" data-cites="foster.ea:incorporating:2019">[1]</span>, we present an approach for
inferring EFSM models, including functions that modify the internal state. Our
technique uses black- box traces which only contain information visible to an
external observer of the system. We implemented our approach as a prototype.</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-foster.ea:incorporating:2019" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">M. Foster, A. D. Brucker, R. G. Taylor, S. North, and J. Derrick, <span>“Incorporating data into EFSM inference,”</span> in <em>Software engineering and formal methods (SEFM)</em>, P. C. Ölveczky and G. Salaün, Eds. Heidelberg: Springer-Verlag, 2019, pp. 257–272. doi: <a href="https://doi.org/10.1007/978-3-030-30446-1_14">10.1007/978-3-030-30446-1_14</a>. Author copy: <a href="http://logicalhacking.com/publications/foster.ea-incorporating-2019/" class="uri">http://logicalhacking.com/publications/foster.ea-incorporating-2019/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>Securing Software Supply Chains</title>
    <link href="https://logicalhacking.com//blog/2019/08/28/sse-sw-supply-chain-security/" />
    <id>https://logicalhacking.com//blog/2019/08/28/sse-sw-supply-chain-security/</id>
    <published>2019-08-28T00:00:00Z</published>
    <updated>2019-08-28T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2019-08-28" pubdate data-updated="true">28 August 2019</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/security/">security</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2019/08/28/sse-sw-supply-chain-security/">Securing Software Supply Chains</a>
    </h1>
  </header>
  <p>Today, Software is rarely developed “on the green field”: software developers
are “composers” that build new system by combining existing solutions. Custom
code is, in many development projects, a curiosity.</p>
<!-- MORE -->
<p>As a result, modern software depends on numerous third-party projects, which,
sometimes, are as small as three lines of code or as large as several millions
lines of code. On the one hand, these projects speed up the development. On the
other hand, their use requires trust and care: with a few lines of code in an
installation script, your development system can be attacked or a small
vulnerability in a dependency can be the root cause of one of the largest data
leaks of the last years.</p>
<p>Want to learn more? Attend my keynote at the <a href="https://2019.ares-conference.eu/workshops/sse-2019/index.html">International Workshop on Secure
Software Engineering (SSE
2019)</a>. In my
keynote, I will argue that the mature tools and techniques for developing secure
software do not work well in an environment where software is composed instead
of developed. By using real world examples of third-party components, I will
make the case that research in secure software engineering needs to
re-prioritize topics to be fit for a world of software composition.</p>
</article>
]]></summary>
</entry>
<entry>
    <title>TechExeter: Hacking (Not So) Smart Things 101</title>
    <link href="https://logicalhacking.com//blog/2019/08/20/techexter-101-iot-security/" />
    <id>https://logicalhacking.com//blog/2019/08/20/techexter-101-iot-security/</id>
    <published>2019-08-20T00:00:00Z</published>
    <updated>2019-08-20T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2019-08-20" pubdate data-updated="true">20 August 2019</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/security/">security</a> | <a href="/blog/tags/iot/">iot</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2019/08/20/techexter-101-iot-security/">TechExeter: Hacking (Not So) Smart Things 101</a>
    </h1>
  </header>
  <p>More and more devices of our daily life are ``smart:’’ ranging from smart light
bulbs to smart TVs to smart fridges – everything can, and most likely will be,
in the future connected to the Internet. More and more people are already used
to remotely controlling their heating at home using their smartphone.</p>
<!-- MORE -->
<p>Want to learn more? Visit the <a href="https://2019.conference.techexeter.uk/">TechExeter
Conference</a> on the 11th September 2019! I will, using smart home
automation as an example, explain simple techniques for hacking (not so) smart
devices.</p>
<p>After the presentation, you should</p>
<ul>
<li>understand the amount of systems that power a small smart device,</li>
<li>understand basic hacking techniques for smart devices, and</li>
<li>understand several security flaws that occur in IoT devices.</li>
</ul>
</article>
]]></summary>
</entry>
<entry>
    <title>New Release - Isabelle/DOF 1.0.0</title>
    <link href="https://logicalhacking.com//blog/2019/08/18/isabelle-dof/" />
    <id>https://logicalhacking.com//blog/2019/08/18/isabelle-dof/</id>
    <published>2019-08-18T00:00:00Z</published>
    <updated>2019-08-18T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2019-08-18" pubdate data-updated="true">18 August 2019</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2019/08/18/isabelle-dof/">New Release - Isabelle/DOF 1.0.0</a>
    </h1>
  </header>
  <p>We are proud to announce the first public release of
<a href="https://git.logicalhacking.com/Isabelle_DOF/Isabelle_DOF/">Isabelle/DOF</a>.
<a href="https://git.logicalhacking.com/Isabelle_DOF/Isabelle_DOF/">Isabelle/DOF</a> is a
Document Ontology Framework (DOF) allowing annotating text elements in formal
developments with structured, typed meta-information. Developers can define this
meta-information according to their needs, e.g., to enable semantic queries (in
the sense of semantic web), tool interaction, or document generation.</p>
<!-- MORE -->
<p>Currently, Isabelle/DOF focuses on the generation of documents with formal and
semi-formal or informal content. While
<a href="https://git.logicalhacking.com/Isabelle_DOF/Isabelle_DOF/">Isabelle/DOF</a> is
developed on top of Isabelle/HOL, its users are not necessarily Isabelle users:
<a href="https://git.logicalhacking.com/Isabelle_DOF/Isabelle_DOF/">Isabelle/DOF</a> aims
at authors of any type of documents involving formal content or formal
structure. Possible application areas are, e.g., mathematical papers, or
documents with certification processes.</p>
<p><a href="https://git.logicalhacking.com/Isabelle_DOF/Isabelle_DOF/">Isabelle/DOF</a> can be
downloaded from its website:
<a href="https://git.logicalhacking.com/Isabelle_DOF/Isabelle_DOF/" class="uri">https://git.logicalhacking.com/Isabelle_DOF/Isabelle_DOF/</a> Alternatively, a
Docker image is available that allows to directly start Isabelle/DOF (this
requires a host operating system with an X-Sever):</p>
<pre class="console"><code>docker run -ti --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix \
           logicalhacking/isabelle_dof-1.0.0_isabelle2019 isabelle jedit</code></pre>
<p>As the Isabelle/DOF installation requires applying a small patch to Isabelle
itself, the Docker image is helpful for users that want to avoid modifying
Isabelle itself.</p>
<p>The Isabelle/DOF distribution contains the <a href="https://artifacts.logicalhacking.com/releases/Isabelle_DOF/Isabelle_DOF/Isabelle_DOF-1.0.0_Isabelle2019.pdf"><em>Isabelle/DOF: User and
Implementation
Manual</em></a>
and the system is also described in <span class="citation" data-cites="brucker.ea:isabelledof:2019">[1]</span> and
<span class="citation" data-cites="brucker.ea:isabelle-ontologies:2018">[2]</span>. The manual and
<span class="citation" data-cites="brucker.ea:isabelle-ontologies:2018">[2]</span> are written using Isabelle/DOF.</p>
<h3 class="sectionAnchor" id="supplementary-material">Supplementary Material <a href="#supplementary-material">§</a></h3>
<ul>
<li>Isabelle/DOF Website: <a href="https://git.logicalhacking.com/Isabelle_DOF/Isabelle_DOF/" class="uri">https://git.logicalhacking.com/Isabelle_DOF/Isabelle_DOF/</a></li>
<li><a href="https://artifacts.logicalhacking.com/releases/Isabelle_DOF/Isabelle_DOF/Isabelle_DOF-1.0.0_Isabelle2019.pdf">Isabelle_DOF-1.0.0_Isabelle2019.pdf</a></li>
<li><a href="https://artifacts.logicalhacking.com/releases/Isabelle_DOF/Isabelle_DOF/Isabelle_DOF-1.0.0_Isabelle2019.tar.xz">Isabelle_DOF-1.0.0_Isabelle2019.tar.xz</a></li>
<li><a href="https://artifacts.logicalhacking.com/releases/Isabelle_DOF/Isabelle_DOF/Isabelle_DOF-1.0.0_Isabelle2019.tar.xz.asc">Isabelle_DOF-1.0.0_Isabelle2019.tar.xz.asc</a></li>
</ul>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-brucker.ea:isabelledof:2019" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">A. D. Brucker and B. Wolff, <span>“<span>Isabelle/DOF</span>: Design and implementation,”</span> in <em>Software engineering and formal methods (SEFM)</em>, P. C. Ölveczky and G. Salaün, Eds. Heidelberg: Springer-Verlag, 2019, pp. 275–292. doi: <a href="https://doi.org/10.1007/978-3-030-30446-1_15">10.1007/978-3-030-30446-1_15</a>. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-isabelledof-2019/" class="uri">http://logicalhacking.com/publications/brucker.ea-isabelledof-2019/</a></div>
</div>
<div id="ref-brucker.ea:isabelle-ontologies:2018" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[2] </div><div class="csl-right-inline">A. D. Brucker, I. Ait-Sadoune, P. Crisafulli, and B. Wolff, <span>“Using the <span>Isabelle</span> ontology framework: Linking the formal with the informal,”</span> in <em>Conference on intelligent computer mathematics (CICM)</em>, Heidelberg: Springer-Verlag, 2018. doi: <a href="https://doi.org/10.1007/978-3-319-96812-4_3">10.1007/978-3-319-96812-4_3</a>. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-isabelle-ontologies-2018/" class="uri">http://logicalhacking.com/publications/brucker.ea-isabelle-ontologies-2018/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>A New Life -  Cybersecurity @ Exeter</title>
    <link href="https://logicalhacking.com//blog/2019/06/01/cybersecurity-at-exeter/" />
    <id>https://logicalhacking.com//blog/2019/06/01/cybersecurity-at-exeter/</id>
    <published>2019-06-01T00:00:00Z</published>
    <updated>2019-06-01T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2019-06-01" pubdate data-updated="true"> 1 June 2019</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/uoe/">uoe</a> | <a href="/blog/tags/uk/">uk</a> | <a href="/blog/tags/academia/">academia</a> | <a href="/blog/tags/staff%26positions/">staff&amp;positions</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2019/06/01/cybersecurity-at-exeter/">A New Life -  Cybersecurity @ Exeter</a>
    </h1>
  </header>
  <p>After three and a half years in Sheffield, it is, again, time for new
challenges. After starting the security group in Sheffield by both making the
business case for a security group and being its first member, I am doing it
again: I am building a new Cybersecurity Group in Exeter: This time as Professor
and Head of Group.</p>
<!-- MORE -->
<p><img alt="An outdoor swimming pool next to my office." align="left" class="zoom" style="margin-right:20px;min-width:200px;" width="40%" src="/blog/images/exeter-pool.png"> Today, I am starting a “new life” as Full
Professor (Chair for Cybersecurity) and Head of Group Cybersecurity Group (in
creation) at the <a href="http://emps.exeter.ac.uk/computer-science/">Computer Science
Department</a> at the <a href="https://www.exeter.ac.uk">University of
Exeter</a> (and, yes, there is a outdoor swimming pool
next to my new office).</p>
<p>Personally, I plan to continue my research in both a deep understanding of
<em>theory and practice</em> and, thus, being able to bridge the gap between theory and
practice as well as between industry and academia. My team will continue to work
on all kinds of aspects of developing secure, reliable, and resilient software
(and hardware) systems.</p>
<p>On a wider perspective, the Cybersecurity Group will include several lecturer
positions (the first offer has already been made, and the next call for
applications will be out soon). The team will grow fast and support the already
excellent and world-leading computer science department in Exeter with their
security expertise in research and education.</p>
<p>Having worked for eight years in the global security team of SAP SE, I have a
strong understanding of industrial needs and strengths. I am looking forward not
only to collaborate with my new colleagues at the university, I am also looking
forward to all kinds of collaborations with local industry in Devon, Cornwall,
and elsewhere.</p>
<p>Let’s <a href="https://www.brucker.ch/">stay in touch</a> and I am looking forward to
collaborations opportunities with all of you – regardless if you are working in
industry or academia and regardless if we already worked together or not!</p>
</article>
]]></summary>
</entry>
<entry>
    <title>OCL Workshop - The 2019 Edition</title>
    <link href="https://logicalhacking.com//blog/2019/05/20/workshop-on-textual-modelling/" />
    <id>https://logicalhacking.com//blog/2019/05/20/workshop-on-textual-modelling/</id>
    <published>2019-05-20T00:00:00Z</published>
    <updated>2019-05-20T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2019-05-20" pubdate data-updated="true">20 May 2019</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/ocl/">ocl</a> | <a href="/blog/tags/logic/">logic</a> | <a href="/blog/tags/event/">event</a> | <a href="/blog/tags/modeling/">modeling</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2019/05/20/workshop-on-textual-modelling/">OCL Workshop - The 2019 Edition</a>
    </h1>
  </header>
  <p>As every year, the submission deadline for the <a href="http://oclworkshop.github.io/">International Workshop on OCL
and Textual Modeling</a> is approaching fast. Get
ready now and prepare your paper(s): the <a href="http://oclworkshop.github.io/2019/cfp">Call for
Paper</a> is already published.</p>
<!-- MORE -->
<p>This is already the 19th edition of the workshop. As last year, the workshop
will be co-located with the <a href="https://modelsconf.org/">MODELS</a> taking place in
Munich, Germany.</p>
<p>See you in Munich!</p>
</article>
]]></summary>
</entry>
<entry>
    <title>A Screening Test for Software Vulnerabilities</title>
    <link href="https://logicalhacking.com//blog/2019/04/15/screening-test-for-vulnerabilities/" />
    <id>https://logicalhacking.com//blog/2019/04/15/screening-test-for-vulnerabilities/</id>
    <published>2019-04-15T00:00:00Z</published>
    <updated>2019-04-15T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2019-04-15" pubdate data-updated="true">15 April 2019</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/security/">security</a> | <a href="/blog/tags/softwaresupplychain/">softwaresupplychain</a> | <a href="/blog/tags/softwaresecurity/">softwaresecurity</a> | <a href="/blog/tags/vulnerabilities/">vulnerabilities</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2019/04/15/screening-test-for-vulnerabilities/">A Screening Test for Software Vulnerabilities</a>
    </h1>
  </header>
  <p>Software vendors that consume thousands of Free and Open Source Software (FOSS)
components and offer more than a decade of support and security fixes are
expected to react quickly on disclosed vulnerabilities—in some case such as
Heartbleed, within hours.</p>
<p>This seems to be infeasible, in particular given that software vendors need to
know rather precisely, if their product is affected by a vulnerability in a
third party component or not: if they are not affected, they want to be able to
re-assure their customers that they are not affected as well. If they are
affected, they want to be able to fix the security vulnerability quickly and
with the least possible impact on existing functionality (and the least effort
for both the software vendor and its customers). So, how can we solve
this problem?</p>
<!-- MORE -->
<p>For helping software vendors, we propose a <em>screening test</em>: a novel, automatic
method based on thin slicing, for estimating quickly whether a given
vulnerability is present in a consumed FOSS component by looking across its
entire repository.</p>
<p>Our screening test scales to large open source projects (e.g., Apache Tomcat,
Spring Framework, etc.), scanning thousands of commits and several hundred
thousand lines of code in minutes. Further, we provide insights on the empirical
probability that, on 166 FOSS projects, a potentially vulnerable component might
not actually be vulnerable after all.</p>
<p>Sounds too good to be true? Indeed, our approach is not aimed at replacing
traditional static analysis methods that are based on precise but costly
semantic analysis (e.g., symbolic execution). Instead, we aim for a fast
alternative that deliberately trades accuracy for speed. Its application by our
industry partner is not intended to replace traditional static analysis but to
prioritize its application to versions most at risk.</p>
<p>Want to know more and attending ICSE? You are lucky, we will present this work
at <a href="https://2019.icse-conferences.org/details/icse-2019-Journal-First-Paper/33/A-Screening-Test-for-Disclosed-Vulnerabilities-in-FOSS-Components">ICSE
2019</a>
in the “Journal First” category. If you are not attending ICSE, do not worry,
you can look up all the details in our TSE paper
<span class="citation" data-cites="dashevskyi.ea:vulnerability-screening:2018">[1]</span>.</p>
<p><strong>Updates:</strong></p>
<ul>
<li>The paper was selected as one of the <a href="https://doi.org/10.1109/MS.2019.2922457">Highlights from ICSE
2019</a>.</li>
<li>The implementation is available at:
<a href="https://git.logicalhacking.com/FLOSS-Security/foss-vuln-tracker" class="uri">https://git.logicalhacking.com/FLOSS-Security/foss-vuln-tracker</a>.</li>
</ul>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-dashevskyi.ea:vulnerability-screening:2018" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">S. Dashevskyi, A. D. Brucker, and F. Massacci, <span>“A screening test for disclosed vulnerabilities in <span>FOSS</span> components,”</span> <em><span>IEEE</span> Trans. Software Eng.</em>, vol. 45, no. 10, pp. 945–966, Oct. 2019, doi: <a href="https://doi.org/10.1109/TSE.2018.2816033">10.1109/TSE.2018.2816033</a>. Author copy: <a href="http://logicalhacking.com/publications/dashevskyi.ea-vulnerability-screening-2018/" class="uri">http://logicalhacking.com/publications/dashevskyi.ea-vulnerability-screening-2018/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>Open Position as Lecturer in Cybersecurity</title>
    <link href="https://logicalhacking.com//blog/2019/03/28/acadmic-positions-in-security/" />
    <id>https://logicalhacking.com//blog/2019/03/28/acadmic-positions-in-security/</id>
    <published>2019-03-28T00:00:00Z</published>
    <updated>2019-03-28T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2019-03-28" pubdate data-updated="true">28 March 2019</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/uoe/">uoe</a> | <a href="/blog/tags/staff%26positions/">staff&amp;positions</a> | <a href="/blog/tags/security/">security</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2019/03/28/acadmic-positions-in-security/">Open Position as Lecturer in Cybersecurity</a>
    </h1>
  </header>
  <p>Do you want to join a world-class computer science department and help us to
establishment of an information and computer security research group? Then now
is the right time to
<a href="https://jobs.exeter.ac.uk/hrpr_webrecruitment/wrd/run/ETREC107GF.open?VACANCY_ID=458120OCP0&amp;WVID=3817591jNg">apply</a>.</p>
<!-- MORE -->
<p>The <a href="http://emps.exeter.ac.uk/computer-science/">Department Of Computer Science</a>
of the <a href="https://www.exeter.ac.uk">University of Exeter</a> is currently hiring for
a new cybersecurity group. The new lecturer will join a growing department and
will contribute to a new research focus in cybersecurity.</p>
<p>This is a <em>unique</em> opportunity to join a new cybersecurity group as founding
member and to influence its future development.</p>
<p>Application in all areas of cybersecurity are welcome, and we are particularly
encouraging people working in the intersection of security and formal aspects
(e.g., formal methods, verification, type systems, programming languages, logic)
to apply. Please apply by 4th of April 2019!</p>
</article>
]]></summary>
</entry>
<entry>
    <title>Welcome, Sakine Yalman!</title>
    <link href="https://logicalhacking.com//blog/2019/02/04/welcome-sakine/" />
    <id>https://logicalhacking.com//blog/2019/02/04/welcome-sakine/</id>
    <published>2019-02-04T00:00:00Z</published>
    <updated>2019-02-04T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2019-02-04" pubdate data-updated="true"> 4 February 2019</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/tuos/">tuos</a> | <a href="/blog/tags/staff%26positions/">staff&amp;positions</a> | <a href="/blog/tags/phdlife/">phdlife</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2019/02/04/welcome-sakine/">Welcome, Sakine Yalman!</a>
    </h1>
  </header>
  <p>I am happy to announce that <a href="http://www.sheffield.ac.uk/dcs/people/researchstudents">Sakine
Yalman</a> will join the
Software Assurance &amp; Security Research Team as a PhD student.</p>
<!-- MORE -->
<p>Sakine got her MSc in Advanced Computer Science from The University of
Sheffield. In her MSc thesis, she developed a static analysis tool for smart
contracts for the Ethereum blockchain. In her PhD studies, she will focus on
security and privacy aspects of cloud and edge computing.</p>
</article>
]]></summary>
</entry>
<entry>
    <title>Why Formalize Standards?</title>
    <link href="https://logicalhacking.com//blog/2019/01/04/formalizing-standards/" />
    <id>https://logicalhacking.com//blog/2019/01/04/formalizing-standards/</id>
    <published>2019-01-04T00:00:00Z</published>
    <updated>2019-01-04T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2019-01-04" pubdate data-updated="true"> 4 January 2019</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/isabelle/hol/">isabelle/hol</a> | <a href="/blog/tags/semantics/">semantics</a> | <a href="/blog/tags/verification/">verification</a> | <a href="/blog/tags/test%26proof/">test&amp;proof</a> | <a href="/blog/tags/dom/">dom</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2019/01/04/formalizing-standards/">Why Formalize Standards?</a>
    </h1>
  </header>
  <p>Why formalize (e.g., developing a formal semantics) an existing standard (e.g.,
as we did with our <a href="/blog/2018/12/31/formalizing-the-dom/">formalization of the DOM
standard</a>)? Of course, there are obvious
benefits such as identifying glitches or areas of (unwanted)
under-specification, but what are the wider benefits?</p>
<!-- MORE -->
<p>Actually, the most important question that needs to be answered is: what is the
relation between the formalization of a standard, the official standard, and
implementations that claim to conform to the standard. If there is not a strong
link between the formalization between all three artifacts, formal proofs based
on the formal specification are only of limited value. This is true regardless
if the formalization has been developed in a post-hoc reverse-engineering
fashion or is part of the official standard.</p>
<p>Actually, most popular technologies are only specified by standards using a
semi-formal or, worse, an informal notation. Moreover, the tools used for
writing standards only support, if at all, trivial consistency checks. Thus, it
is no surprise that such standards usually contain inconsistencies (e.g.,
different sections of the same standard that contradict each other) or unwanted
under-specifications (e.g., where the authors of the standard omit the
specification of important properties that the defined API should fulfill).</p>
<p>Even if a standard is developed formally, or contains a (often non-normative)
formalization, two important questions arise:</p>
<ol type="1">
<li>to what extent does the formal model comply with the semi-formal
parts of the standard, and</li>
<li>to what extent does an actual implementation comply with the
formal model?</li>
</ol>
<p>If the formal model was used for verifying properties, one also needs
to validate that the real system fulfills the assumptions made during
the verification.</p>
<p>Luckily, for many industrial standards, it is common that the standard includes
a compliance-test suite, which gives a first hint how to improve the situation:
if the formalization is executable, we can execute the test cases on the formal
specification to check that the specification complies to the test suite. But
can we do more?</p>
<p>Yes, we can. The following figure shows how we can use test and proof
(verification) techniques for establishing strong links between formal
standards, compliance test suites, and implementations.</p>
<p><img alt="Using test and proof for establishing strong links between
formal standards, compliance test suites, and implementations." align="center" class="zoom" style="margin-right:20px;min-width:200px;" width="80%" src="/blog/images/linking-standards-and-their-formalization.png"></p>
<p>In more detail, we can</p>
<ul>
<li>use the existing compliance test suite to check that a formalization satisfies
the requirements expressed as tests. As compliance testing is usually the way
how implementation show that they comply to a standard, this should give us
the same guarantees for the formalization.</li>
<li>use the formalization to analyze the consistency of the standard as well as
prove important correctness, safety, or security properties. If our
implementation adheres to the standard and fulfills a comprehensive compliance
test suite, this should give us a strong guarantee that compliant
implementation fulfill these properties as well.</li>
<li>use the formalization to generate test cased (e.g., using specification-based
or model-based test case generation techniques). This will allow us to improve
the coverage of the compliance test suite, e.g., by including tests for
properties that have been identified during the formal verification of the
formal specification.</li>
</ul>
<p>This approach shows that not only go test and verification hand-in-hand, it also
shows that a formalization of a standard can contribute to improving the
informal parts of a standard, such as the compliance test suite.</p>
<p>If you are interested in more detail, please have a look at our TAP paper
<span class="citation" data-cites="brucker.ea:standard-compliance-testing:2018">[1]</span>, where we report on applying some
of these ideas to our formalization of the DOM standard
<span class="citation" data-cites="brucker.ea:core-dom:2018">[2]</span>.</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-brucker.ea:standard-compliance-testing:2018" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">A. D. Brucker and M. Herzberg, <span>“Formalizing (web) standards: An application of test and proof,”</span> in <em><span>TAP</span> 2018: Tests and proofs</em>, C. Dubois and B. Wolff, Eds. Heidelberg: Springer-Verlag, 2018, pp. 159–166. doi: <a href="https://doi.org/10.1007/978-3-319-92994-1_9">10.1007/978-3-319-92994-1_9</a>. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-standard-compliance-testing-2018/" class="uri">http://logicalhacking.com/publications/brucker.ea-standard-compliance-testing-2018/</a></div>
</div>
<div id="ref-brucker.ea:core-dom:2018" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[2] </div><div class="csl-right-inline">A. D. Brucker and M. Herzberg, <span>“A formal semantics of the <span>Core</span> <span>DOM</span> in <span>Isabelle/HOL</span>,”</span> in <em>The 2018 web conference companion (WWW)</em>, 2018, pp. 741–749. doi: <a href="https://doi.org/10.1145/3184558.3185980">10.1145/3184558.3185980</a>. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-core-dom-2018/" class="uri">http://logicalhacking.com/publications/brucker.ea-core-dom-2018/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>Formalizing the Core DOM in Isabelle/HOL</title>
    <link href="https://logicalhacking.com//blog/2018/12/31/formalizing-the-dom/" />
    <id>https://logicalhacking.com//blog/2018/12/31/formalizing-the-dom/</id>
    <published>2018-12-31T00:00:00Z</published>
    <updated>2018-12-31T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2018-12-31" pubdate data-updated="true">31 December 2018</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/dom/">dom</a> | <a href="/blog/tags/isabelle/hol/">isabelle/hol</a> | <a href="/blog/tags/semantics/">semantics</a> | <a href="/blog/tags/verification/">verification</a> | <a href="/blog/tags/browser/">browser</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2018/12/31/formalizing-the-dom/">Formalizing the Core DOM in Isabelle/HOL</a>
    </h1>
  </header>
  <p>At its core, the Document Object Model (DOM) defines a tree-like data structure
for representing documents in general and HTML documents in particular. It is
the heart of any modern web browser. Formalizing the key concepts of the DOM is
a prerequisite for the formal reasoning over client-side JavaScript programs and
for the analysis of security concepts in modern web browsers.</p>
<!-- MORE -->
<p>As a first step towards a verified client-side web application stack, we model
and formally verify the Document Object Model (DOM) in Isabelle/HOL. The
<a href="https://dom.spec.whatwg.org/commit-snapshots/6253e53af2fbfaa6d25ad09fd54280d8083b2a97/">Document Object Model
(DOM)</a>
is <em>the</em> central data structure of all modern web browsers. At its core, the
DOM defines a tree-like data structure for representing documents in general and
HTML documents in particular. Thus, the correctness of a DOM implementation is
crucial for ensuring that a web browser displays web pages correctly. Moreover,
the DOM is the core data structure underlying client-side JavaScript programs,
i.e, client-side JavaScript programs are mostly programs that read, write, and
update the DOM.</p>
<p>We formalize the DOM as a shallow embedding in Isabelle/HOL using a typed data
model for the <em>node-tree</em>. Furthermore, we formalize a typed heap for storing
(partial) node-trees together with the necessary consistency constraints.
Finally, we formalize the operations on this heap that allow manipulating
node-trees.</p>
<p>For example, the HOL definitions of <span class="math inline">\(\text{adopt_node}\)</span>, i.e. the
method that removes a node from its previous parent, if it had any,
and assigns it to the new <span class="math inline">\(\text{ownerDocument}\)</span>, looks as follows:
<span class="math display">\[
\begin{array}{l}
\color{blue}{\textbf{definition}}~\text{adopt_node}~::~\\
~~~~\_~\text{document_ptr}_\text{Core_DOM}~\Rightarrow~\_~\text{node_ptr}_\text{Core_DOM}~\Rightarrow~\_~\text{dom_prog}\\
~~\textbf{where}\\
~~~~\text{adopt_node}~document~node~=~\text{do}~\{~\\
~~~~~~parent\_opt~\leftarrow~\text{get_parent}~node;~\\
~~~~~~(\text{case}~parent\_opt~\text{of}~\\
~~~~~~~~\text{Some}~parent~\Rightarrow~\text{remove_child}~parent~node~\\
~~~~~~|~\text{None}~\Rightarrow~\text{do}~\{~\\
~~~~~~~~~~old\_document~\leftarrow~\text{get_owner_document}~(\text{cast}~node);~\\
~~~~~~~~~~\text{remove_from_disconnected_nodes}~old\_document~node\\
~~~~~~~~\});~\\
~~~~~~\text{add_to_disconnected_nodes}~document~node~\\
~~~~~\}~
\end{array}
\]</span>
First, <span class="math inline">\(\text{adopt_node}\)</span> tries to retrieve the parent of the node to
be adopted. If the node has a parent node, it removes the node from
the children list, otherwise it removes it from the list of
disconnected nodes of the previous owner document. Finally, the node
is now added to the disconnected nodes of the new document.</p>
<p>We can now formally prove important properties of <span class="math inline">\(\text{adopt_node}\)</span>
such as
<span class="math display">\[
\begin{array}{l}
\color{blue}{\textbf{lemma}}~\text{adopt_node_children_remain_distinct}:\\
~~\textbf{assumes}~\text{wellformed}:~\text{heap_is_wellformed}~h\\
~~~~\textbf{and}~\text{parent_known}:~\And~parent.\\
~~~~~~h~\vdash~\text{get_parent}~node\_ptr~\rightarrow_r~\text{Some}~parent\\
~~~~~~\Longrightarrow~\text{is_known_ptr}_\text{Core_DOM}~parent\\
~~~~\textbf{and}~\text{adopt_node}:~h~\vdash~\text{adopt_node}~\text{owner_document}~node_ptr~\rightarrow_h~h2\\
~~~~\textbf{and}~\text{ptr_known}:~\text{is_known_ptr}_\text{Core_DOM}~ptr\\
~~~~\textbf{and}~\text{children}:~h2~\vdash~\text{get_child_nodes}~ptr~\rightarrow_r~children\\
~~\color{blue}{\textbf{shows}}~\text{distinct}~children\\
\end{array}
\]</span>
This lemma states that after using <span class="math inline">\(\text{adopt_node}\)</span>, all children
lists remain distinct.</p>
<p>Our machine-checked formalization of the DOM node tree has the
following properties:</p>
<ul>
<li>It provides a <em>consistency guarantee.</em> Since all
definitions in our formal semantics are conservative and all rules
are derived, the logical consistency of the DOM node-tree is reduced
to the consistency of HOL.</li>
<li>It serves as a *technical basis for a proof system. Based
on the derived rules and specific setup of proof tactics over
node-trees, our formalization provides a generic proof environment
for the verification of programs manipulating node-trees.</li>
<li>It is executable*, which allows to validate its compliance
to the standard by evaluating the compliance test suite on the
formal model, and</li>
<li>It is <em>extensible</em>, i.e, properties proven over
the core DOM do not need to be re-proven for object-oriented
extensions such as the HTML document model.</li>
</ul>
<p>For more details, see our WWW paper <span class="citation" data-cites="brucker.ea:core-dom:2018">[1]</span>. The
formalization is available in the <a href="https://www.isa-afp.org/entries/Core_DOM.html">Archive of Formal Proofs
(AFP)</a>
<span class="citation" data-cites="brucker.ea:afp-core-dom:2018">[2]</span>.</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-brucker.ea:core-dom:2018" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">A. D. Brucker and M. Herzberg, <span>“A formal semantics of the <span>Core</span> <span>DOM</span> in <span>Isabelle/HOL</span>,”</span> in <em>The 2018 web conference companion (WWW)</em>, 2018, pp. 741–749. doi: <a href="https://doi.org/10.1145/3184558.3185980">10.1145/3184558.3185980</a>. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-core-dom-2018/" class="uri">http://logicalhacking.com/publications/brucker.ea-core-dom-2018/</a></div>
</div>
<div id="ref-brucker.ea:afp-core-dom:2018" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[2] </div><div class="csl-right-inline">A. D. Brucker and M. Herzberg, <span>“The <span>Core</span> <span>DOM</span>,”</span> <em>Archive of Formal Proofs</em>, Dec. 2018. <a href="https://www.isa-afp.org/entries/Core_DOM.html" class="uri">https://www.isa-afp.org/entries/Core_DOM.html</a>, Formal proof development. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-afp-core-dom-2018/" class="uri">http://logicalhacking.com/publications/brucker.ea-afp-core-dom-2018/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>Formalising EFSM Transition Merging</title>
    <link href="https://logicalhacking.com//blog/2018/10/20/esfm-inference/" />
    <id>https://logicalhacking.com//blog/2018/10/20/esfm-inference/</id>
    <published>2018-10-20T00:00:00Z</published>
    <updated>2018-10-20T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2018-10-20" pubdate data-updated="true">20 October 2018</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/research/">research</a> | <a href="/blog/tags/modelinference/">modelinference</a> | <a href="/blog/tags/statemachine/">statemachine</a> | <a href="/blog/tags/efsm/">efsm</a> | <a href="/blog/tags/isabelle/hol/">isabelle/hol</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2018/10/20/esfm-inference/">Formalising EFSM Transition Merging</a>
    </h1>
  </header>
  <p>Quite often, we need to develop a detailed understanding how a system
works, without having access to its internal implementation. For
example, we might need to understand and old legacy system, which we
want to connect to our brand-new infrastructure, or we want to do a
security assessment of a third party system.</p>
<p>One approach to develop a better understanding of a “black-box” system
is to infer a model (e.g., in form of a Finite State Machine) from
system traces.</p>
<!-- MORE -->
<p>Consider, for example, the following traces:
<span class="math display">\[
\begin{align*}
        &amp;\mathit{select}(\mathit{coke}) \rightarrow \mathit{coin}(50)/[50] \rightarrow \mathit{coin}(50)/[100] \rightarrow \mathit{vend}()/[coke] \\
        &amp;\mathit{select}(\mathit{coke}) \rightarrow \mathit{coin}(100)/[100] \rightarrow \mathit{vend}()/[\mathit{coke}] \\
        &amp;\mathit{select}(\mathit{pepsi}) \rightarrow \mathit{coin}(50)/[50] \rightarrow \mathit{vend}() \rightarrow \mathit{coin}(50)/[100] \rightarrow \mathit{vend}()/[\mathit{pepsi}]
\end{align*}
\]</span>
These traces describe certain executions of a vending machine (where
<span class="math inline">\(\mathit{label}(\mathit{arguments})/[\mathit{outputs}]\)</span> represents an
event).</p>
<p>Using Finite State Machine (FSM) inference, we can construct a FSM
that accepts the traces from out example:</p>
<p><img alt="An FSM accepting the traces from our example." align="center" class="zoom" style="margin-right:20px;min-width:200px;" width="80%" src="/blog/images/efsm-merging-example-fsm.png"></p>
<p>In traditional FSM inference, labels are atomic. For example,
<span class="math inline">\(\mathit{select}(\mathit{coke})\)</span> does not represent an event with label
<span class="math inline">\(\mathit{select}\)</span> and input <span class="math inline">\(\mathit{coke}\)</span>, rather the transition is labelled
by the literal string “select(coke)” making it a completely separate entity from
the transition “select(pepsi).” This is a major problem as it means that
information such as the selected drink and accrued funds must be encoded as part
of the control state. Increasing product choice or the coins accepted quickly
causes an explosion in model size disproportionate to the change in observable
behavior.</p>
<p>EFSM inference can make use of a compact representation of the internal state of
the inferred system:</p>
<p><img alt="An EFSM accepting the traces from our example." class="zoom" style="margin-right:20px;min-width:200px;" width="80%" src="/blog/images/efsm-merging-example-efsm.png"></p>
<p>In this EFSM, which also accepts the traces from our example, the selected drink
is stored in a register <span class="math inline">\(r_1\)</span> for later use in the output of the <span class="math inline">\(vend\)</span>
transition. A second register <span class="math inline">\(r_2\)</span> (initialized with <span class="math inline">\(0\)</span> by the select
transaction) keeps track of the money inserted so far. Drinks are only dispensed
once this value reaches <span class="math inline">\(100\)</span>. This enables customers to pay for their drink
with any coin in any order. This is a much more concise and faithful model of
the real system.</p>
<p>Current EFSM inference approaches tend to focus on guard expressions,
overlooking how individual transitions mutate the data state. The inference of
data update functions is a key technical challenge in EFSM inference but
significantly complicates the merging process.</p>
<p>In our ICFEM paper <span class="citation" data-cites="foster.ea:efsm:2018">[1]</span>, we present a novel approach for
inferring EFSMs from system traces that also infers the updates of the internal
state. Our approach supports the merging of transitions that update the internal
data state. Finally, our model is formalized in Isabelle/HOL, allowing for the
machine-checked verification of system properties.</p>
<p><strong>Update:</strong> The formalization is now available in the Archive of Formal Proofs:
“A Formal Model of Extended Finite State Machines” <span class="citation" data-cites="foster.ea:efsm:2020">[2]</span>.</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-foster.ea:efsm:2018" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">M. Foster, R. G. Taylor, A. D. Brucker, and J. Derrick, <span>“Formalising extended finite state machine transition merging,”</span> in <em>ICFEM</em>, J. S. Dong and J. Sun, Eds. Heidelberg: Springer-Verlag, 2018, pp. 373–387. doi: <a href="https://doi.org/10.1007/978-3-030-02450-5">10.1007/978-3-030-02450-5</a>. Author copy: <a href="http://logicalhacking.com/publications/foster.ea-efsm-2018/" class="uri">http://logicalhacking.com/publications/foster.ea-efsm-2018/</a></div>
</div>
<div id="ref-foster.ea:efsm:2020" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[2] </div><div class="csl-right-inline">M. Foster, A. D. Brucker, R. G. Taylor, and J. Derrick, <span>“A formal model of extended finite state machines,”</span> <em>Archive of Formal Proofs</em>, Sep. 2020. <a href="https://www.isa-afp.org/entries/Extended_Finite_State_Machines.html" class="uri">https://www.isa-afp.org/entries/Extended_Finite_State_Machines.html</a>, Formal proof development. Author copy: <a href="http://logicalhacking.com/publications/foster.ea-efsm-2020/" class="uri">http://logicalhacking.com/publications/foster.ea-efsm-2020/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>Stateful Protocol Composition</title>
    <link href="https://logicalhacking.com//blog/2018/09/03/stateful-protocol-composition/" />
    <id>https://logicalhacking.com//blog/2018/09/03/stateful-protocol-composition/</id>
    <published>2018-09-03T00:00:00Z</published>
    <updated>2018-09-03T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2018-09-03" pubdate data-updated="true"> 3 September 2018</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/research/">research</a> | <a href="/blog/tags/security/">security</a> | <a href="/blog/tags/isabelle/hol/">isabelle/hol</a> | <a href="/blog/tags/composition/">composition</a> | <a href="/blog/tags/protocols/">protocols</a> | <a href="/blog/tags/logic/">logic</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2018/09/03/stateful-protocol-composition/">Stateful Protocol Composition</a>
    </h1>
  </header>
  <p>Usually, networks such as the Internet run many security protocols (e.g., TLS,
IPSec, DNSSEC) in parallel. While the security properties of many of these
protocols have been analyzed in great detail, much less research has been
devoted to their parallel composition. It is far from self-evident that the
parallel composition of secure protocols is still secure, in fact one can
systematically construct counter-examples.</p>
<!-- MORE -->
<p>One such problem is if protocols have similar message structures of different
meaning, so that an attacker may be able to abuse messages, or parts thereof,
that he has learned in the context of one protocol, and use them in the context
of another where the same structure has a different meaning.</p>
<p>We address this problem in our ESORICS 2018 paper, entitled “Stateful Protocol
Composition” <span class="citation" data-cites="hess.ea:stateful:2018">[1]</span>. In particular, we extend the
compositionality paradigm to <em>stateful</em> protocols, where participants may
maintain a database (e.g., a list of valid public keys) independent of sessions.
Such databases do not necessarily grow monotonically during protocol execution:
we allow, for instance, negative membership checks and deletion of elements from
databases. Moreover, we allow for such databases to be <em>shared</em> between the
protocols to be composed. For instance, in the example of public keys, there
could be several protocols for registering, certifying, and revoking keys that
all work on the same public-key database. Since such a shared database can
potentially be exploited by the intruder to trigger harmful interferences, an
important part of our result is a clear coordination of the ways in which each
protocol is allowed to access the database. This coordination is based on
assumptions and guarantees on the transactions that involve the database.
Moreover, this also allows us to support protocols with the declassification of
long-term secrets (e.g., that the private key to a revoked public key may be
learned by the intruder without breaking the security goals). The result is so
general that it actually also covers many forms of <em>sequential composition</em>
as a special case, since one can for instance model that one protocol inserts
keys into a database of fresh session keys, and another protocol “consumes” and
uses them.</p>
<p>The proof of the main result is by a reduction to a problem finding solutions
for intruder constraints: given a satisfiable constraint representing an attack
on the composition, we show that the projection of the constraints to the
individual protocols are satisfiable. This particular tricky part of the <a href="https://people.compute.dtu.dk/samo/composec.html">proof
has been formalized</a> in the
interactive theorem prover Isabelle/HOL.</p>
<p>For details, read our ESORICS paper <span class="citation" data-cites="hess.ea:stateful:2018">[1]</span> or the
extended version <span class="citation" data-cites="hess.ea:tr-stateful-protocol:2018">[2]</span>, which includes
the pen-and-paper proofs and short explanations of the Isabelle
proofs.</p>
<p><strong>Update:</strong> The formalization is now available in the Archive of Formal Proofs:
“Stateful Protocol Composition and Typing” <span class="citation" data-cites="hess.ea:stateful:2020">[3]</span>.</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-hess.ea:stateful:2018" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">A. V. Hess, S. A. Mödersheim, and A. D. Brucker, <span>“Stateful protocol composition,”</span> in <em>ESORICS</em>, J. Lopez and J. Zhou, Eds. Heidelberg: Springer-Verlag, 2018, pp. 427–446. doi: <a href="https://doi.org/10.1007/978-3-319-99073-6">10.1007/978-3-319-99073-6</a>. Author copy: <a href="http://logicalhacking.com/publications/hess.ea-stateful-2018/" class="uri">http://logicalhacking.com/publications/hess.ea-stateful-2018/</a></div>
</div>
<div id="ref-hess.ea:tr-stateful-protocol:2018" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[2] </div><div class="csl-right-inline">A. V. Hess, S. A. Mödersheim, and A. D. Brucker, <span>“Stateful protocol composition (extended version),”</span> DTU Compute, Technical University Denmark, 2018-03, 2018. Author copy: <a href="http://logicalhacking.com/publications/hess.ea-tr-stateful-protocol-2018/" class="uri">http://logicalhacking.com/publications/hess.ea-tr-stateful-protocol-2018/</a></div>
</div>
<div id="ref-hess.ea:stateful:2020" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[3] </div><div class="csl-right-inline">A. V. Hess, S. Mödersheim, and A. D. Brucker, <span>“Stateful protocol composition and typing,”</span> <em>Archive of Formal Proofs</em>, Apr. 2020. <a href="https://www.isa-afp.org/entries/Stateful_Protocol_Composition_and_Typing.html" class="uri">https://www.isa-afp.org/entries/Stateful_Protocol_Composition_and_Typing.html</a>, Formal proof development. Author copy: <a href="http://logicalhacking.com/publications/hess.ea-stateful-2020/" class="uri">http://logicalhacking.com/publications/hess.ea-stateful-2020/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>One-Day “Security Testing for Developers” Training in Sheffield</title>
    <link href="https://logicalhacking.com//blog/2018/08/01/security-testing-training-tuos/" />
    <id>https://logicalhacking.com//blog/2018/08/01/security-testing-training-tuos/</id>
    <published>2018-08-01T00:00:00Z</published>
    <updated>2018-08-01T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2018-08-01" pubdate data-updated="true"> 1 August 2018</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/event/">event</a> | <a href="/blog/tags/security/">security</a> | <a href="/blog/tags/securitytesting/">securitytesting</a> | <a href="/blog/tags/appsec/">appsec</a> | <a href="/blog/tags/sast/">sast</a> | <a href="/blog/tags/dast/">dast</a> | <a href="/blog/tags/iast/">iast</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2018/08/01/security-testing-training-tuos/">One-Day “Security Testing for Developers” Training in Sheffield</a>
    </h1>
  </header>
  <p>Software security vulnerabilities are a serious threat to software vendors and
their customers: they can result in both monetary loss and loss of reputation.
Thus, implementing a rigid secure software development life-cycle (SDLC) is a
competitive advantage for a software vendor. Security testing is an important
part of any SDLC. Moreover, it is commonly accepted that security testing should
be applied as early as possible in software development.</p>
<figure>
<img src="/blog/images/sdlc-security-testing.png" id="id" class="zoom" style="width:100.0%" alt="Security Testing as Part of the Software Development Life-Cycle" />
<figcaption aria-hidden="true">Security Testing as Part of the Software Development Life-Cycle</figcaption>
</figure>
<p>Interested in applying Security Testing during development? We will offer a
one-day continuous professional development (CDP) training on the 13th of
September at <a href="https://www.sheffield.ac.uk/dcs/courses-for-industry">The University of
Sheffield</a>.</p>
<!-- MORE -->
<p>In this course, you will learn different security testing approaches (e.g.,
SAST, DAST), their specific strengths and weaknesses, how to evaluate tools and
how to select the best “blend” of tools for their own software development.
Moreover, the participants will learn how these tools can be integrated into
various software development methods (ranging from traditional waterfall-like
processes to agile processes supporting continues delivery).</p>
<p>This course on <strong>security testing</strong> is only one of our “compact” offerings for
people working in industry. Similarly, we are also offering courses on <strong>secure
programming</strong> or an introduction to <strong>secure software engineering</strong>.</p>
<p>For more information, please visit the website of <a href="https://www.sheffield.ac.uk/dcs/courses-for-industry">The University of
Sheffield</a> or contact
<a href="https://www.brucker.ch/">Achim Brucker</a>. We also offer these courses as
in-house courses, adapted to your needs and wishes.</p>
</article>
]]></summary>
</entry>
<entry>
    <title>Ontologies in Isabelle/HOL?</title>
    <link href="https://logicalhacking.com//blog/2018/07/26/ontologies-in-isabelle-hol/" />
    <id>https://logicalhacking.com//blog/2018/07/26/ontologies-in-isabelle-hol/</id>
    <published>2018-07-26T00:00:00Z</published>
    <updated>2018-07-26T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2018-07-26" pubdate data-updated="true">26 July 2018</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/test%26proof/">test&amp;proof</a> | <a href="/blog/tags/isadof/">isadof</a> | <a href="/blog/tags/formaldocument/">formaldocument</a> | <a href="/blog/tags/isabelle/hol/">isabelle/hol</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2018/07/26/ontologies-in-isabelle-hol/">Ontologies in Isabelle/HOL?</a>
    </h1>
  </header>
  <p>Mentioning ontologies and <a href="https://isabelle.in.tum.de">Isabelle/HOL</a> in one
sentence, might sound weird for man of us. While both are somehow used for
writing formal documents, the degree of formalization is, at least at the first
glance, very much different.</p>
<p>We asked ourselves if it is possible to integrate ontologies into Isabelle, as
the current document preparation system of Isabelle lacks a mechanism for
ensuring the structure of different document types (as, e.g., required in
certification processes) in general and, in particular, mechanism for linking
informal and formal parts of a document.</p>
<!-- MORE -->
<p>The result of this work, is
<a href="https://git.logicalhacking.com/HOL-OCL/Isabelle_DOF">Isabelle/DOF</a>, a Document
Ontology Framework on top of Isabelle. Isabelle/DOF allows for both conventional
typesetting and formal (proof) development.</p>
<p>Isabelle/DOF allows for define ontologies within Isabelle. The ontologies are
deeply integrated into the Isabelle system in general and the document
preparation in particular. Thus, ontological constraints defined in an ontology
are checked (while writing documents) to ensure that also the semi-formal parts
of a document adhere to a certain structure and, e.g., that all links and
references are defined.</p>
<p>More details about the initial details of Isabelle/DOF can be found in our CICM
paper <span class="citation" data-cites="brucker.ea:isabelle-ontologies:2018">[1]</span>. Isabelle/DOF is licensed under a
2-clause BSD license and available in a <a href="https://git.logicalhacking.com/HOL-OCL/Isabelle_DOF">git
repository</a>.</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-brucker.ea:isabelle-ontologies:2018" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">A. D. Brucker, I. Ait-Sadoune, P. Crisafulli, and B. Wolff, <span>“Using the <span>Isabelle</span> ontology framework: Linking the formal with the informal,”</span> in <em>Conference on intelligent computer mathematics (CICM)</em>, Heidelberg: Springer-Verlag, 2018. doi: <a href="https://doi.org/10.1007/978-3-319-96812-4_3">10.1007/978-3-319-96812-4_3</a>. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-isabelle-ontologies-2018/" class="uri">http://logicalhacking.com/publications/brucker.ea-isabelle-ontologies-2018/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>Usable Security for Developers -  A Nightmare</title>
    <link href="https://logicalhacking.com//blog/2018/07/01/useable-security-for-developers/" />
    <id>https://logicalhacking.com//blog/2018/07/01/useable-security-for-developers/</id>
    <published>2018-07-01T00:00:00Z</published>
    <updated>2018-07-01T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2018-07-01" pubdate data-updated="true"> 1 July 2018</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/appsec/">appsec</a> | <a href="/blog/tags/usability/">usability</a> | <a href="/blog/tags/secureprogramming/">secureprogramming</a> | <a href="/blog/tags/apidesign/">apidesign</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2018/07/01/useable-security-for-developers/">Usable Security for Developers -  A Nightmare</a>
    </h1>
  </header>
  <p>The term “usable security” is on everyone’s lips and there seems to be
a general agreement that, first, security controls should not
unnecessarily affect the usability and unfriendliness of systems. And,
second, that simple to use system should be preferred as they minimize
the risk of handling errors that can be the root cause of security
incidents such as data leakages.</p>
<p>But it also seems to be a general surprise (at least for security experts), why
software developers always make so many mistakes that should be easy to avoid,
and that lead to insecure software systems. In fact, many of the large security
incidents of the last weeks/months/years are caused by “seemingly simple to fix”
programming errors.</p>
<!-- MORE -->
<p>Bringing both observations together, it should be obvious that we need usable
and developer-friendly security controls and programming frameworks that make it
easy to build secure systems. Still, reality looks different: many programming
languages, APIs, and frameworks provide complex interfaces that are, actually,
hard to use securely. In fact, they are miles away from providing usable
security for developers.</p>
<p>If you want to learn more, visit our talk at the OWASP AppSecEU in London. In
this talk, I will discuss examples of complex and “non-usable” security for
developers such as APIs that, in fact, are (nearly) impossible to use securely
or that require an understanding of security topics that most security experts
to not have (and, thus, that we cannot expect from software developers).</p>
<h3 class="sectionAnchor" id="supplementary-material">Supplementary Material <a href="#supplementary-material">§</a></h3>
<ul>
<li><a href="https://www.brucker.ch/bibliography/abstract/talk-brucker-dev-usability-2018">Slides of our talk at the OWASP AppSecEU 2018</a></li>
</ul>
</article>
]]></summary>
</entry>
<entry>
    <title>Blockchain in Transport</title>
    <link href="https://logicalhacking.com//blog/2018/06/06/blockchain-in-transport/" />
    <id>https://logicalhacking.com//blog/2018/06/06/blockchain-in-transport/</id>
    <published>2018-06-06T00:00:00Z</published>
    <updated>2018-06-06T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2018-06-06" pubdate data-updated="true"> 6 June 2018</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/blockchain/">blockchain</a> | <a href="/blog/tags/transport/">transport</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2018/06/06/blockchain-in-transport/">Blockchain in Transport</a>
    </h1>
  </header>
  <p>Everybody seems to talk about the disruption Blockchains (or, more general,
Distributed Ledger Technology) brings. Still, the number of really convincing
applications outside cryptocurrencies is not always clear. In a research project
together with the <a href="https://ts.catapult.org.uk/">Transport Systems Catapult</a> and
the <a href="https://www.sheffield.ac.uk/management">Management School</a>, we looked at
the use of Blockchains in transport scenarios.</p>
<!-- MORE -->
<p>The result of this collaboration are now online as Transport Systems Catapult
Report **<a href="http://ts.catapult.org.uk/blockchain/">Blockchain Disruption in Transport: Are You Decentralized
yet?</a>. In this report, we explore how
distributed ledgers could disrupt the transport sector in the coming years. The
report is based on a literature review as well as insights gained from
stakeholder engagement, e.g., interviews with experts from the transportation
domain. As distributed ledgers is clearly not the silver bullet for all
problems, we also discuss common misbeliefs, e.g., with respect to the security
implications of distributed ledgers.</p>
</article>
]]></summary>
</entry>
<entry>
    <title>OCL Workshop - The 2018 Edition</title>
    <link href="https://logicalhacking.com//blog/2018/06/02/workshop-on-textual-modelling/" />
    <id>https://logicalhacking.com//blog/2018/06/02/workshop-on-textual-modelling/</id>
    <published>2018-06-02T00:00:00Z</published>
    <updated>2018-06-02T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2018-06-02" pubdate data-updated="true"> 2 June 2018</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/ocl/">ocl</a> | <a href="/blog/tags/logic/">logic</a> | <a href="/blog/tags/event/">event</a> | <a href="/blog/tags/modeling/">modeling</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2018/06/02/workshop-on-textual-modelling/">OCL Workshop - The 2018 Edition</a>
    </h1>
  </header>
  <p>It is already the time of the year when you should prepare your submission to
the <a href="http://oclworkshop.github.io/">International Workshop on OCL and Textual
Modeling</a>. The <a href="http://oclworkshop.github.io/2018/cfp">Call for
Paper</a> is already published.</p>
<!-- MORE -->
<p>This is already the 18th edition of the workshop. Note that this year, the
workshop will be co-located with the <a href="https://modelsconf2018.github.io/">MODELS</a>
taking place in Copenhagen, Denmark.</p>
<p>See you in Copenhagen!</p>
</article>
]]></summary>
</entry>
<entry>
    <title>Why is Software Always Crashing?</title>
    <link href="https://logicalhacking.com//blog/2018/05/10/pint-sw-assurance/" />
    <id>https://logicalhacking.com//blog/2018/05/10/pint-sw-assurance/</id>
    <published>2018-05-10T00:00:00Z</published>
    <updated>2018-05-10T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2018-05-10" pubdate data-updated="true">10 May 2018</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/safety/">safety</a> | <a href="/blog/tags/reliability/">reliability</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2018/05/10/pint-sw-assurance/">Why is Software Always Crashing?</a>
    </h1>
  </header>
  <p>We program computers since over 50 years. Still, we are - sad but true - used to
insecure, crashing, or otherwise non-working computer systems. Gerald Weinberg,
an American computer scientist, once said: “If builders built buildings the way
programmers wrote programs, then the first woodpecker that came along would
destroy civilization.”</p>
<!-- MORE -->
<p><img align="left" style="margin-right:15px" src="/blog/images/pint.png"> Is
building correct and secure programs really so hard that humans cannot master
this tasks or are we just careless when implementing programs? I will discuss
this question next week in my <a href="https://pintofscience.co.uk/">Pint of Science</a>
talk in Sheffield.</p>
<p>Interested? See you on the 16th of May 2018 at 7:30 pm, in <a href="http://www.simt.co.uk/kelham-island-museum/what-to-see/millowners-arms">The Millowner’s
Arms</a>
(Sheffield Industrial Museums Trust, Kelham Island Museum, Alma Street, S3 8RY).</p>
</article>
]]></summary>
</entry>
<entry>
    <title>Damn Vulnerable Hybrid Mobile App (DVHMA)</title>
    <link href="https://logicalhacking.com//blog/2018/03/01/damn-vulnerable-hybrid-mobile-app/" />
    <id>https://logicalhacking.com//blog/2018/03/01/damn-vulnerable-hybrid-mobile-app/</id>
    <published>2018-03-01T00:00:00Z</published>
    <updated>2018-03-01T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2018-03-01" pubdate data-updated="true"> 1 March 2018</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/security/">security</a> | <a href="/blog/tags/cordova/">cordova</a> | <a href="/blog/tags/android/">android</a> | <a href="/blog/tags/vulnerableapplication/">vulnerableapplication</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2018/03/01/damn-vulnerable-hybrid-mobile-app/">Damn Vulnerable Hybrid Mobile App (DVHMA)</a>
    </h1>
  </header>
  <p>Last month, we got interviewed by
<a href="https://hakin9.org/download/peeping-inside-android-applications/">Hakin9</a> about
one of our “side-projects”: <a href="https://git.logicalhacking.com/DASCA/DVHMA/">DVHMA - The Damn Vulnerable Hybrid Mobile
App</a>. DVHMA is a hybrid mobile app
(for Android) that intentionally contains vulnerabilities. Its purpose is to
enable security professionals to test their tools and techniques legally, help
developers better understand the common pitfalls in developing hybrid mobile
apps securely.</p>
<!-- MORE -->
<p>We developed it to study pitfalls in developing hybrid apps, e.g., using <a href="https://cordova.apache.org/">Apache
Cordova</a> or <a href="https://blogs.sap.com/2013/10/21/an-introduction-to-smp-kapsel/">SAP
Kapsel</a>,
securely. Originally we developed DVHMA as a test case for evaluating static
application security testing tools <span class="citation" data-cites="brucker.ea:cordova-security:2016">[1]</span>. Hence, the
focus was to develop a deeper understanding of injection vulnerabilities that
exploit the JavaScript to Java bridge.</p>
<figure>
<img src="/blog/images/dvhma.png" id="id" class="zoom" style="width:40.0%" alt="Exploiting XSS via the Java-to-JavaScript bridge of Cordova" />
<figcaption aria-hidden="true">Exploiting XSS via the Java-to-JavaScript bridge of Cordova</figcaption>
</figure>
<p>Today, DVHMA is becoming increasingly popular by penetration testers and
forensics experts that want to learn the specifics of Cordova apps.</p>
<p>DVHMA is published under the Apache 2.0 License and you are welcome to
participate in its further development. We are currently working on improving
DVHMA and hope to be able to release a substantial update in the future.</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-brucker.ea:cordova-security:2016" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">A. D. Brucker and M. Herzberg, <span>“On the static analysis of hybrid mobile apps: A report on the state of apache cordova nation,”</span> in <em>International symposium on engineering secure software and systems (ESSoS)</em>, J. Caballero and E. Bodden, Eds. Heidelberg: Springer-Verlag, 2016, pp. 72–88. doi: <a href="https://doi.org/10.1007/978-3-319-30806-7_5">10.1007/978-3-319-30806-7_5</a>. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-cordova-security-2016/" class="uri">http://logicalhacking.com/publications/brucker.ea-cordova-security-2016/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>A LaTeX Style For Self-Archiving Copies of Papers</title>
    <link href="https://logicalhacking.com//blog/2018/02/21/self-archiving-papers-with-latex/" />
    <id>https://logicalhacking.com//blog/2018/02/21/self-archiving-papers-with-latex/</id>
    <published>2018-02-21T00:00:00Z</published>
    <updated>2018-02-21T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2018-02-21" pubdate data-updated="true">21 February 2018</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/tips%26tricks/">tips&amp;tricks</a> | <a href="/blog/tags/latex/">latex</a> | <a href="/blog/tags/publishing/">publishing</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2018/02/21/self-archiving-papers-with-latex/">A LaTeX Style For Self-Archiving Copies of Papers</a>
    </h1>
  </header>
  <p>Luckily, an increasing number of publishers allows authors of (academic) papers
to publish a pre-print of their accepted papers on their personal website or
their institutional website. This eases access to those papers significantly, as
the “official” version on the publishers’ website is often behind a paywall.
Most publishers require that the pre-prints published by the author contain a
statement referring to the official version.</p>
<p>Thus, the only remaining question is: how to produce a pre-print containing this
reference with as little effort as possible. If you are using LaTeX for writing
your papers, <em>authorarchive</em> package might be the solution.</p>
<!-- MORE -->
<p>Adding the self-archiving note to a paper formatted with Springer’s LNCS style
is as easy as adding</p>
<div class="sourceCode" id="cb1"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[LNCS,</span>
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a>   key=brucker-authorarchive-2016,</span>
<span id="cb1-3"><a href="#cb1-3" aria-hidden="true" tabindex="-1"></a>   year=2016,</span>
<span id="cb1-4"><a href="#cb1-4" aria-hidden="true" tabindex="-1"></a>   publication={Anonymous et al. (eds). Proceedings of the International</span>
<span id="cb1-5"><a href="#cb1-5" aria-hidden="true" tabindex="-1"></a>       Conference on LaTeX-Hacks, LNCS~42. Some Publisher, 2016.}</span>
<span id="cb1-6"><a href="#cb1-6" aria-hidden="true" tabindex="-1"></a>   startpage={42},</span>
<span id="cb1-7"><a href="#cb1-7" aria-hidden="true" tabindex="-1"></a>   doi={00/00_00},</span>
<span id="cb1-8"><a href="#cb1-8" aria-hidden="true" tabindex="-1"></a>   doiText={0/00<span class="fu">\_</span>00},</span>
<span id="cb1-9"><a href="#cb1-9" aria-hidden="true" tabindex="-1"></a>   nocopyright</span>
<span id="cb1-10"><a href="#cb1-10" aria-hidden="true" tabindex="-1"></a> ]{<span class="ex">authorarchive</span>}</span></code></pre></div>
<p>to the preamble of your paper. The package also supports advanced features such
as adding bibliographic entries (e.g., for BibTex) into the final PDF.</p>
<p>The LaTeX package “authorarchive” is a LaTeX style for producing author
self-archiving copies of (academic) papers. It is available on
<a href="https://ctan.org/pkg/authorarchive">CTAN</a> and development versions are
available in the <a href="https://git.logicalhacking.com/adbrucker/authorarchive">authorarchive git
repository</a>. The package
is dual-licensed under a 2-clause BSD-style license and/or the LPPL version 1 or
any later version.</p>
<h3 class="sectionAnchor" id="links">Links <a href="#links">§</a></h3>
<ul>
<li><a href="https://ctan.org/pkg/authorarchive">CTAN</a> and development versions</li>
<li><a href="https://git.logicalhacking.com/adbrucker/authorarchive">git repository</a>.</li>
</ul>
</article>
]]></summary>
</entry>
<entry>
    <title>Monitoring Security in Service Compositions</title>
    <link href="https://logicalhacking.com//blog/2018/02/16/secure-service-and-bpm/" />
    <id>https://logicalhacking.com//blog/2018/02/16/secure-service-and-bpm/</id>
    <published>2018-02-16T00:00:00Z</published>
    <updated>2018-02-16T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2018-02-16" pubdate data-updated="true">16 February 2018</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/security/">security</a> | <a href="/blog/tags/policy/">policy</a> | <a href="/blog/tags/monitoring/">monitoring</a> | <a href="/blog/tags/bpmn/">bpmn</a> | <a href="/blog/tags/servicecomposition/">servicecomposition</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2018/02/16/secure-service-and-bpm/">Monitoring Security in Service Compositions</a>
    </h1>
  </header>
  <p>Enforcing the secure execution of BPMN-based service composition required a
flexible monitoring and enforcement approach that allows to control the
compliance of the highly dynamic system <em>during run-time</em>.</p>
<!-- MORE -->
<p>To address the challenges crated by combining loosely coupled services that are
offered and operated by different service providers, we developed a framework
for monitoring services at run-time and ensuring that services behave as they
have promised. In particular, we focus on monitoring nonfunctional properties
that are specified within an agreed security contract. The novelty of our work
is based on the way in which monitoring information can be combined from
multiple dynamic services to automate the monitoring of business processes and
proactively report compliance violations.</p>
<figure>
<img src="/blog/images/bpmn-monitoring.png" id="id" class="zoom" style="width:80.0%" alt="The security policy enforcement and monitoring framework" />
<figcaption aria-hidden="true">The security policy enforcement and monitoring framework</figcaption>
</figure>
<p>Our framework allows to both specify policy diagrammatically and by
using a textual policy language. Moreover, the framework supports the
enables monitoring of both atomic and composite services.</p>
<p>Want to learn the details or read our case study? Have a look at our
latest paper in the <em>Journal of Software: Evolution and Process</em>
<span class="citation" data-cites="asim.ea:policy-monitoring:2018">[1]</span>.</p>
<p><strong>PS:</strong> The monitoring framework works nicely together with our tools for
<a href="/blog/2017/12/06/secure-service-compositions/">End-to-End Secure Service
Compositions</a>.</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-asim.ea:policy-monitoring:2018" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">M. Asim, A. Yautsiukhin, A. D. Brucker, T. Baker, Q. Shi, and B. Lempereur, <span>“Security policy monitoring of <span>BPMN</span>-based service compositions,”</span> <em>Journal of Software: Evolution and Process</em>, 2018, doi: <a href="https://doi.org/10.1002/smr.1944">10.1002/smr.1944</a>. Author copy: <a href="http://logicalhacking.com/publications/asim.ea-policy-monitoring-2018/" class="uri">http://logicalhacking.com/publications/asim.ea-policy-monitoring-2018/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>Static Analysis of Cordova Apps</title>
    <link href="https://logicalhacking.com//blog/2018/01/26/static-analysis-of-cordova-apps/" />
    <id>https://logicalhacking.com//blog/2018/01/26/static-analysis-of-cordova-apps/</id>
    <published>2018-01-26T00:00:00Z</published>
    <updated>2018-01-26T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2018-01-26" pubdate data-updated="true">26 January 2018</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/cordova/">cordova</a> | <a href="/blog/tags/android/">android</a> | <a href="/blog/tags/mobile%20apps/">mobile apps</a> | <a href="/blog/tags/sast/">sast</a> | <a href="/blog/tags/security/">security</a> | <a href="/blog/tags/appsec/">appsec</a> | <a href="/blog/tags/tips%26tricks/">tips&amp;tricks</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2018/01/26/static-analysis-of-cordova-apps/">Static Analysis of Cordova Apps</a>
    </h1>
  </header>
  <p><a href="https://cordova.apache.org">Apache Cordova</a> is a widely used framework for
writing mobile apps that follows the “hybrid app” paradigm. A hybrid app is a
mobile app that is partly implemented in platform-neutral HTML5/JavaScript and
partly in platform specific languages (e.g., Java or Objective C).</p>
<p>Static (data flow) analysis of hybrid apps that supports the analysis of both the
platform independent and the platform specific parts in a unified way
(e.g., for finding injection attacks) is an unsolved problem.</p>
<!-- MORE -->
<p>The main problem with statically analyzing Cordova apps is that many
vulnerabilities in Cordova applications exploit data flows that cross the
boundary between HTML/JavaScript and native code. Thus, a static tool should be
able to analyze these cross-language data flows.</p>
<p>There are, in principle, three ways for implementing a static analysis
statically of cross-language data-flows of Cordova apps:</p>
<ol type="1">
<li><strong>A (deep) analysis of the Cordova:</strong> In this approach, the full Cordova
framework source code is, all plugin source code, together with the
implemented application, is analyzed.
<ul>
<li><em>Advantages:</em>
<ul>
<li>Very precise computation of all data flows possible.</li>
<li>Only very limited amount of manual modeling of sinks and sources required.</li>
</ul></li>
<li><em>Disadvantages:</em>
<ul>
<li>Computationally very expensive. The analysis might take hours
even for very small extensions.</li>
</ul></li>
</ul></li>
<li><strong>Modeling the core API of Cordova:</strong> In this approach, the cross-language
interfaces of the core Cordova framework are modeled, avoiding the need of
analyzing the framework statically. Only the application itself and all used
plugins are analyzed.
<ul>
<li><em>Advantages:</em>
<ul>
<li>Allows for analyzing the application in the context of custom or
modified plugins.</li>
<li>Usually very fast (a few minutes, even for complex applications)<br />
</li>
</ul></li>
<li><em>Disadvantages:</em>
<ul>
<li>If the framework changes, a specialist needs to update the model.</li>
</ul></li>
</ul></li>
<li><strong>Modeling the Cordova plugins:</strong> In this approach, the Cordova
framework and all plugins are modeled, i.e., their sources and
sinks are configured in the static analysis tool. Only the
application code itself is statically analyzed.
<ul>
<li><em>Advantages:</em>
<ul>
<li>Very fast.</li>
</ul></li>
<li><em>Disadvantages:</em>
<ul>
<li>No detection of vulnerabilities caused by modified or custom
plugins.</li>
</ul></li>
</ul></li>
</ol>
<p>We consider the second approach a good compromise between thoroughly<br />
analyzing all possible cross-language data flows and performance (respectively,
repetitively scanning the same code). We implemented this approach in a
<a href="https://git.logicalhacking.com/DASCA/DASCA">prototype</a> and its evaluation shows
that it reliably detects cross-language data flows in Cordova application. For
more details, have a look at our <a href="https://distrinet.cs.kuleuven.be/events/essos/2016/">ESSoS
2016</a> paper
<span class="citation" data-cites="brucker.ea:cordova-security:2016">[1]</span>.</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-brucker.ea:cordova-security:2016" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">A. D. Brucker and M. Herzberg, <span>“On the static analysis of hybrid mobile apps: A report on the state of apache cordova nation,”</span> in <em>International symposium on engineering secure software and systems (ESSoS)</em>, J. Caballero and E. Bodden, Eds. Heidelberg: Springer-Verlag, 2016, pp. 72–88. doi: <a href="https://doi.org/10.1007/978-3-319-30806-7_5">10.1007/978-3-319-30806-7_5</a>. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-cordova-security-2016/" class="uri">http://logicalhacking.com/publications/brucker.ea-cordova-security-2016/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>Data Science for Secure Software Engineering</title>
    <link href="https://logicalhacking.com//blog/2017/12/16/data-analytics-for-sw-security/" />
    <id>https://logicalhacking.com//blog/2017/12/16/data-analytics-for-sw-security/</id>
    <published>2017-12-16T00:00:00Z</published>
    <updated>2017-12-16T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2017-12-16" pubdate data-updated="true">16 December 2017</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2017/12/16/data-analytics-for-sw-security/">Data Science for Secure Software Engineering</a>
    </h1>
  </header>
  <p>Analyzing data is an important part of evaluating the effectiveness and
efficiency of activities to improve the security of software or to understand
the security risk of software systems. Thus, everybody involved in secure
software development should have at least a basic understanding of data science
techniques.</p>
<p>If you want to learn more about using data science for analyzing your secure
software development process, have a look at our book chapter on “Data Analytics
for Software Security” <span class="citation" data-cites="othmane.ea:data-analytics:2017">[1]</span>.</p>
<!-- MORE -->
<p>In this chapter, we report on our own experiences in empirical secure software
research at, SAP SE, the largest European software vendor. Based on this, we
derive actionable recommendations for building the foundations of an expressive
data science for software security: we focus on using data analytics for
improving the secure software development. Data analytics is the science of
examining raw data with the purpose of drawing conclusions about that
information using machine learning methods or statistical learning methods. Data
analytical techniques have been successfully used in both the cyber-security
domain and the software engineering domain. For example, data analytical methods
are used to investigate software engineering challenges such as effort
prediction. Thus, applying these techniques to the intersection of both areas to
help practitioners to develop more secure software with less effort, seems
promising.</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-othmane.ea:data-analytics:2017" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">L. ben Othmane, A. D. Brucker, S. Dashevskyi, and P. Tsalovski, <span>“An introduction to data analytics for software security,”</span> in <em>Empirical research for software security: Foundations and experience</em>, L. ben Othmane, M. G. Jaatun, and E. Weippl, Eds. CRC Press, 2017, pp. 69–94. Author copy: <a href="http://logicalhacking.com/publications/othmane.ea-data-analytics-2017/" class="uri">http://logicalhacking.com/publications/othmane.ea-data-analytics-2017/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>End-to-End Secure Service Compositions</title>
    <link href="https://logicalhacking.com//blog/2017/12/06/secure-service-compositions/" />
    <id>https://logicalhacking.com//blog/2017/12/06/secure-service-compositions/</id>
    <published>2017-12-06T00:00:00Z</published>
    <updated>2017-12-06T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2017-12-06" pubdate data-updated="true"> 6 December 2017</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/security/">security</a> | <a href="/blog/tags/bpmn/">bpmn</a> | <a href="/blog/tags/servicecomposition/">servicecomposition</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2017/12/06/secure-service-compositions/">End-to-End Secure Service Compositions</a>
    </h1>
  </header>
  <p>During the development of software systems, security is often understood as a
task for specialists. This is unfortunate, as today any system need to fulfill a
large variety of security (and privacy) properties of which many rely on input
from domain experts that are often no security experts. To allow security
interested developers of service-based systems, e.g., using microservices, we
developed a too-supported, model-based approach that allows to capture and
analyze security properties on the level of composition models. Moreover, our
approach supports “pushing security requirements” down to the implementation
level, supporting developers in implementing the services securely.</p>
<!-- MORE -->
<h3 class="sectionAnchor" id="modeling-and-validating-security-properties">Modeling and Validating Security Properties <a href="#modeling-and-validating-security-properties">§</a></h3>
<p>Let’s start top down with the modeling of service compositions. In our
prototype, we use BPMN as graphical notation for modeling the actual service
composition (as well as user interactions, i.e, manual tasks). The example in
the following figure shows a simple service composition implementing a travel
booking service:</p>
<figure>
<img src="/blog/images/activiti-bpmn-analysis.png" id="id" class="zoom" style="width:90.0%" alt="Validating a SoD constraint in a service composition" />
<figcaption aria-hidden="true">Validating a SoD constraint in a service composition</figcaption>
</figure>
<p>In our approach, the designer of the service composition can, already on this
very abstract level, specify several security and privacy properties that need
to be fulfilled by the actual system. For example, the service designer can
specify who can access (invoke) services using a role-based access control model
that also supports separation of duty and binding of duty requirements.</p>
<p>We do not only support the specification of security and privacy properties, our
approach allows also to analyze the specified requirements to detect
inconsistencies as early as possible in the design phase. Recall our example
from the first figure: here, the role-based access control does not enforce the
required separation of duty requirement.</p>
<h3 class="sectionAnchor" id="service-quantification-and-ranking">Service Quantification and Ranking <a href="#service-quantification-and-ranking">§</a></h3>
<p>Service-based systems are usually implemented by combining already existing
services and, if necessary, by implementing services for which no
readily-available implementation exists. Our approach supports service designers
in selection the most suitable service from service marketplaces by a ranking
that includes functional as well as non-functional (i.e., security or
performance) requirements.</p>
<h3 class="sectionAnchor" id="implementing-services-securely">Implementing Services Securely <a href="#implementing-services-securely">§</a></h3>
<p>Our approach allows combining model-driven and traditional, code-based,
development. This is usually necessary when no readily-available service
implementation exists and a bespoke service needs to be developed. In this
situation, we derive, from the high-level security specification on the
model-level, properties that need to be fulfilled on the code level. These
requirements are checked by using static analysis tool that uses
project-specific rules that are automatically generated from the high-level
models. In the following example, a developer is warned that a service is not
correctly handling credit card data:</p>
<figure>
<img src="/blog/images/activiti-code-analysis.png" id="id" class="zoom" style="width:100.0%" alt="Notifying developers about the incorrect use of credit card data" />
<figcaption aria-hidden="true">Notifying developers about the incorrect use of credit
card data</figcaption>
</figure>
<h3 class="sectionAnchor" id="conclusion">Conclusion <a href="#conclusion">§</a></h3>
<p>Clearly, only a relatively small subset of business-related security and privacy
requirements can be captures by non-experts. Still, our approach shows that
allowing non-experts to specify security properties facilitates the necessary
discussion with security experts on how the developed systems can be secured.
Moreover, the end-to-end approach ensures that security requirements captures
early on in the design-phase are not lost when implementing the system.</p>
<p>Want to learn more? The details are in our paper published in the journal
“Software: Practice and Experience (SPE)” <span class="citation" data-cites="brucker.ea:secure-services:2017">[1]</span>.</p>
<h3 class="sectionAnchor unnumbered" id="references">References <a href="#references">§</a></h3>
<div id="refs" class="references csl-bib-body" role="doc-bibliography">
<div id="ref-brucker.ea:secure-services:2017" class="csl-entry" role="doc-biblioentry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">A. D. Brucker, B. Zhou, F. Malmignati, Q. Shi, and M. Merabti, <span>“Modelling, validating, and ranking of secure service compositions,”</span> <em>Software: Practice and Expierence (SPE)</em>, vol. 47, pp. 1912–1943, Dec. 2017, doi: <a href="https://doi.org/10.1002/spe.2513">10.1002/spe.2513</a>. Author copy: <a href="http://logicalhacking.com/publications/brucker.ea-secure-services-2017/" class="uri">http://logicalhacking.com/publications/brucker.ea-secure-services-2017/</a></div>
</div>
</div>
</article>
]]></summary>
</entry>
<entry>
    <title>Did You Patch Your Light Bulb today?</title>
    <link href="https://logicalhacking.com//blog/2017/10/05/did-you-patch-your-light-bulb-today/" />
    <id>https://logicalhacking.com//blog/2017/10/05/did-you-patch-your-light-bulb-today/</id>
    <published>2017-10-05T00:00:00Z</published>
    <updated>2017-10-05T00:00:00Z</updated>
    <summary type="html"><![CDATA[<article>
  <header>
    <div class="meta">
      Posted on 
      <time datetime="2017-10-05" pubdate data-updated="true"> 5 October 2017</time>
       by  <a href="https://www.brucker.ch/">Achim D. Brucker</a>, 
      licensed under <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a>.
      <div class="tags"><a href="/blog/tags/security/">security</a> | <a href="/blog/tags/maintance/">maintance</a> | <a href="/blog/tags/upgrade/">upgrade</a> | <a href="/blog/tags/patches/">patches</a> | <a href="/blog/tags/iot/">iot</a> | <a href="/blog/tags/smartthings/">smartthings</a> | <a href="/blog/tags/internetofthings/">internetofthings</a></div>
      <meta name="fediverse:creator" content="@adbrucker@fediscience.org">
    </div>
    <h1 class="entry-title">
      <a href="/blog/2017/10/05/did-you-patch-your-light-bulb-today/">Did You Patch Your Light Bulb today?</a>
    </h1>
  </header>
  <p>More and more devices that we buy today are “smart”, i.e., they can be connected
to the Internet. Actually, many experts expect that by 2020, over 50 billion
(smart) things will be connected to the Internet. Technically, a smart device
contains a small computer which runs software and, as we all know from our daily
experiences, software often has bugs that can lead to security vulnerabilities.
In 2016, a botnet called Mirai targeted smart home devices and used them for
attacking a domain registration service provider. This resulted in the
unavailability of well-known services such as Google for Github for many users.</p>
<!-- MORE -->
<p>The Mirai attack showed the potential of exploiting security vulnerabilities in
smart things. This risk is likely to increase, if more and more devices get
connected to the Internet. To avoid (or at least minimize the risk of) such
attacks, smart things need, as any computer, supplied with updates.</p>
<p>Let’s make a thought experiment and assume, we would be using smart devices
since decades. Now let’s try to answer the question, which version of
Microsoft’s Windows would run, if various devices are close to their average
span:</p>
<ul>
<li><strong>Computer and mobile devices:</strong> Computer and mobile devices have an average
life span of three to five years. Thus, your computer most likely was bought
with <strong>Windows 8</strong> (released on 26th of October 2012).</li>
<li><strong>Wi-Fi routers:</strong> Small network devices such as switches or wi-fi routers
have an average life span of seven years. Thus, your wi-fi router most likely
would be running <strong>Windows 7</strong> (released on 22nd of October 2009).</li>
<li><strong>Cars:</strong> Cars have an average life span of 14 years. Thus, your car would
most likely still run on <strong>Windows XP</strong> (released on 25th of October 2001).</li>
<li><strong>Fridges:</strong> Large home appliances (e.g., your fridge) have an average life
span of 17 years. If you had bought a smart fridge 17 years ago, it would have
been shipped with a brand-new version of <strong>Windows Me</strong> (released on 14th of
September 2000).</li>
<li><strong>Light bulbs:</strong> Modern LED light bulbs have an expected average life span of
20 years. Thus, your light bulb might still run <strong>Windows 98</strong> (released on
June 25th 1998).</li>
</ul>
<p>Of course, smart devices usually do not run consumer-oriented operating systems.
Still, this thought experiments illustrateshow long the software running on
smart devices needs to be supplied with security patches. This long maintenance
of the software of smart devices will be a challenge for both manufactures and
users</p>
<p>An even more interesting question is the liability of operating smart devices.
If a vulnerability in a smart device is exploited by a third party and, as in
the case of the Mirai botnet, the smart device is hijacked for criminal
activities, who is liable? The manufacture that, maybe 15 years ago, produced an
insecure smart device, or the user that is still operating an insecure device.
And if security patches are available, who is responsible that patches are
applied?</p>
<p>Thus, traditional manufactures will need to learn that, in the future, they are
no longer producing physical devices, they are turning into software companies
that sell software-defined products. Hence, manufactures need to be able to
provide security patches for their smart devices for the whole life of the
product, which is often much longer than the life span of most consumer software
that we use today. And consumers need, either manually or automatically, able to
apply the security patches.</p>
<p>With our research on <strong><a href="https://logicalhacking.com/research/SecurityEconomics/">security
economics</a></strong>,
<strong><a href="https://logicalhacking.com/research/ApplicationSecurityTesting/">security
testing</a></strong>, and
techniques for <strong>securing the software supply chain</strong>, we hope to contribute to
making life easier and more secure for vendors, consumer, and everybody living
in a software-defined world.</p>
</article>
]]></summary>
</entry>

</feed>
