07.04.08
Publié dans Extrapol, In English / En anglais, Informatique / Computer science, Java, OCaml, Recherche / Research, Sûreté / Security tagged abstract interpretation, applied research, c++, caml, checking, code analysis, comprehension, computer science, dependent types, Extrapol, free software, fundamental research, Java, library, linux, mac, mandatory access control, model, OCaml, open-source, policies, program analysis, release, research, science, security, security analysis, security policies, selinux, semantics, software, source code analysis, standard library, static analysis, threat, threat analysis, type systems, type theory, types and effects, vulnerability analysis à 11:09 par yoric
A quick work regarding the current status of Extrapol and its release.
Development of Extrapol progresses. With our current set of sample, Extrapol works flawlessly. We’re now adding features, improving error reporting and de-hard-wiring the model of the C standard library from the tool and moving it towards an external configuration file as well as progressively moving towards larger and more realistic samples. Development will come to an abrupt (and temporary) halt at the end of this week, though, due to personal matters (i.e. I’m getting married).
The release planned for next week, on the other hand, is canceled. As the research field of applied security is very competitive, and after careful discussion with the rest of my research team, we have decided to only release a version of Extrapol after the scientific content has been accepted for publication in a conference or journal. At the request of one of the institutes which founds this research, I will also refrain from posting detailed information on the theory and algorithms behind Extrapol, until these are cleared by the institute and accepted for publication. Without entering the details, Extrapol is expected to serve in critical infrastructures, which explains the need for clearance.
However, rest assured that there will be a release and it will be open-source (presumably licenced under a combination of MIT and LGPL). The only question is when — and this probably won’t happen before November.
Permalien
07.02.08
Publié dans In English / En anglais, Informatique / Computer science, OCaml, Recherche / Research tagged camlp4, catch, code generation, code rewriting, compiler support, coverage, error, error management, exceptional situation, exceptions, Functional Programming, guarantees, Java, languages, ml, monad, OCaml, performance, preprocessor, Programmation Fonctionnelle, programming, programming languages, rewriting, sml, static analysis, syntactic sugar, try, type-safe, typed, types à 2:46 par yoric
Short version
Catch me if you can is a small library for OCaml 3.10. The latest release is version 0.2, which you may find here. This library improves management of errors in OCaml. It is released under the LGPL licence. It has been written by David Teller, Arnaud Spiwack, Till Varoquaux and Gabriel Scherer.
Lisez la suite de cette entrée »
Permalien
06.26.08
Publié dans Informatique / Computer science, OCaml, Recherche / Research tagged benchmark, camlp4, dynamic errors, error management, errors, exceptions, haskell, ml, monad, obj.magic, OCaml, optimization, phantom types, polymorphic variants, programming, programming languages, research, rewriting, semantics, sml, software, syntactic sugar, type system à 11:38 par yoric
A new version of the exception monad for OCaml is now available for download. It’s now richer, comes with extensive syntactic sugar and a brand new system of compile-time optimizations. More on this in the corresponding research paper — and whenever I find the time, on this blog.
Permalien
06.19.08
Publié dans Extrapol, In English / En anglais, Informatique / Computer science, OCaml, Recherche / Research, Sûreté / Security tagged blackhat, code analysis, complete, dependent types, development, Extrapol, korset, linux, research, safety, safety analysis, security, security analysis, security policies, selinux, software, sound, static analysis, type system, type theory, types, types and effects à 10:57 par yoric
A colleague recently pointed me towards Korset, a program developed by Ohad Ben-Cohen and Avishai Wool promising features comparable to Extrapol. While I must admit I’m slightly skeptical about the promise of “provable zero false alarm” — since the problem is undecidable, usually people tend to develop “provably complete” rather than “provably sound” analysis — it sounds like an interesting development.
Now, from what I understand, Korset will be presented to Blackhat in a few months, and the rules of the conference forbid the developers from giving away any detail. Until then, we have no way of comparing the unreleased Extrapol and the equally unreleased Korset.
Note: the tarball for the first prototype of Extrapol is waiting on my hard-drive for release clearance. I hope I’ll be able to release it next Tuesday or Wednseday. Stay tuned.
Permalien
06.17.08
Publié dans Extrapol, In English / En anglais, Informatique / Computer science, OCaml, Recherche / Research, Sûreté / Security, batteries included tagged ast, c++, code analysis, dependent types, effets, Extrapol, gcc, lexer, linux, OCaml, parser, quality, safety, scanner, security, security analysis, security policies, security policy, selinux, source code, sourec analysis, static analysis, subversion, svn, type system, types, types and effects, types with effects à 4:08 par yoric
A quick note to inform you that the repository for Extrapol is now public. The source code as available on the repository does not have a licence yet and will not compile as such, due to dependencies on libraries available somewhere else. Stay tuned for an actual release.
Update: Sorry, repository cut off by the administrator. I’ll inform you when the sources are back.
Note rapide pour vous informer que le code source d’Extrapol est maintenant disponible au public. Il ne s’agit pas encore d’une version officielle — en particulier, le code n’a pas encore de licence et il manque des bibliothèques (disponibles ailleurs). Plus de détails dès qu’une version officielle est disponible.
Additif: Désolé, je viens d’apprendre que le dépôt de source a été isolé par l’administrateur. Je vous tiendrai au courant dès que le code source est de nouveau public.
Permalien
06.09.08
Publié dans En français / In French, Enseignement, Extrapol, Informatique / Computer science, OCaml, Recherche / Research, Sûreté / Security tagged selinux, logiciel libre, windows, open-source, Extrapol, linux, informatique, politiques de sécurité, sécurité, sûreté, administration système, système, système d'exploitation, sûr, unix, privilèges, sds à 5:51 par yoric
Après un billet dans la langue de Turing, voici une présentation d’Extrapol en version française. En quelques mots, le projet Extrapol (pour Extraction de Politiques de Sécurité) vise à combler un vide dans le jeu d’outils dont dispose l’administrateur pour maintenir un système dans un état sûr.
Lisez la suite de cette entrée »
Permalien
06.03.08
Publié dans Extrapol, In English / En anglais, Informatique / Computer science, Java, OCaml, Recherche / Research, Sûreté / Security tagged c++, coding, dependent types, dynamic analysis, ensib, Extrapol, free software, glibc, inference, Java, lambda-calculus, licence, OCaml, open-source, programming, programming languages, prototype, s-expressions, security, selinux, software, specifications, static analysis, tias, trace analysis, type inference, type system, types with effects, typing, verification à 5:41 par yoric
Here comes the long-promised description of Extrapol, my main ongoing research project. In a few words, our objective with Extrapol is to fill a hole in the current suite of tools built to ensure the security of systems. While there’s an ample amount of stuff designed to analyse the behaviour of processes either during their execution (dynamic analysis) or after their completion (trace analysis), there is little work on applying static analysis to actual system security.
Lisez la suite de cette entrée »
Permalien
05.18.08
Publié dans Informatique / Computer science, OCaml tagged OCaml, parser, open-source, haskell, Functional Programming, caml, batteries included, lazy evaluation, lazy programming, programming languages, extlib, computing, parsing, parser combinator à 6:40 par yoric
An updated version of the Lazy List module for OCaml has just been uploaded to Batteries Included and submitted to ExtLib. See the release notes for more details.
In addition, I am currently using this module to write a parser combinator library for OCaml. This library has reached early testing stage and will hopefully be added to Batteries Included soon.
Permalien
05.13.08
Publié dans En français / In French, OCaml à 7:34 par yoric
I have made available the first preview of a second module for OCaml Batteries Included module: Enum. This module builds upon ExtLib’s enumerations (which it means to replace, if it is accepted upstream) and provides support for representation-independent iterators. These iterators are used pervasively in ExtLib and will also be used pervasively in the rest of Batteries Included, as a manner of converting data from/to data structures and as a base for syntax extensions.
With respect to ExtLib’s current implementation, this release adds
- numerous powerful constructors and manipulation functions
- functions inspired from SDFlow and dedicated to cooperative
- better management of infinite iterators
- better management of iterators created using
from
- syntactic sugar.
As an example of the last point, let us note that it is now possible, without any Camlp4 extension, to replace for loops with a more (stream-)functional counterpart. That is, instead of
for i = 1 to n do
(*...*)
done
one may now write
iter (fun i -> (* ... *) )
(5 -- 10)
for an imperative loop or
map (fun i -> (* ... *) )
(5 -- 10)
for a lazy transformation, etc. It won’t improve performance and it doesn’t look more readable at first glance, but it allows short expressions such as :
iter printf (5 -- 10) (*to print all numbers between 5 and 10*)
map ( ~ ) (5 --10) (*to obtain enumeration -5, -6, -7, -8, -9, -10 *)
fold ( + ) 0 ( 5 -- 10 )(*to sum all numbers between 5 and 10*)
etc. Everything is computed lazily, without allocating any intermediate data structure.
Code may be found here.
Permalien
05.11.08
Publié dans En français / In French, Enseignement, Informatique / Computer science, OCaml tagged programmation, OCaml, open-source, lazy, flux, listes paresseuses, haskell, Java, Programmation Fonctionnelle, caml, batteries included, lazy evaluation, lazy programming, batteries, osr, langages de programmation, programmation paresseuse, évaluation paresseuse, programming languages, itérateurs, générateurs, objective caml, generics, extlib à 8:20 par yoric
Ces jours-ci, je travaille beaucoup avec et sur OCaml, que ce soit pour le projet ExtraPol (dont je finirai bien par vous glisser quelques mots) ou pour Batteries Included (la rénovation en cours de la bibliothèque standard de OCaml). En particulier, je viens de finaliser un module de gestion des listes paresseuses. Paresseuses ? Oui, paresseuses.
Attardons-nous un moment sur le concept de paresse en programmation.
Lisez la suite de cette entrée »
Permalien
« Older entries