TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

What is soundness in static analysis? (2017)

34 pointsby rntzover 5 years ago

2 comments

balddenimheroover 5 years ago
While &quot;soundness&quot; and &quot;completeness&quot; are well-defined properties of deductive systems, using such formal methods for analysis of real-world systems requires their formalisation. However, the formalisation of any real-world system will inherently introduce abstraction&#x2F;assumptions. The question really is about which assumptions one should make when formalising software.<p>For example, when reasoning about software, one often abstracts from hardware details like battery-backed memory that will presist through a crash. There are also many &quot;reasonable&quot; assumptions at software-level, like `malloc` never failing, that many verifiers make in order to give more helpful results than &quot;functional correctness is not guaranteed when using malloc&quot;.<p>The discussed paper is especially interesting for practitioners, as it tries to state all the assumptions made in the design of DR.CHECKER&#x27;s static analysis. While this results in abstracting from certain realisable behaviours, e.g. &quot;it treats each entry point independently&quot; and misses state-dependent bugs, stating these assumptions helps with judging&#x2F;estimating the quality of the results.<p>The paper&#x27;s authors present a static analysis whose reasoning is sound w.r.t. stated assumptions. This is what they call &quot;soundy&quot;. The actual post&#x2F;article raises the important issue that it would be helpful to define what a sound static analysis of software is, that is agree on the assumptions&#x2F;abstractions made. However, picking a &quot;reasonable&quot; set of assumptions for a &quot;sufficiently sound&quot; static analysis is admittedly a difficult task, and of course not provided (yet).<p>It seems to me that finding a common set of assumptions is less of an issue for competitive software model checkers though, as the benchmarks used in the competition on software verification (SV-COMP) implicitly prescribe which aspects have to be modelled &quot;properly&quot;. Couldn&#x27;t a similar competition for static analysis give rise to a set of common assumptions for static analysis, too?
Animatsover 5 years ago
The concept of &quot;soundiness&quot; as defined in the article (fake soundness) is useless for code with security implications. Attackers are not statistical noise.
评论 #21236721 未加载