Adding file naming and indexing
[AGL/documentation.git] / docs / 3_Architecture_Guides / 2_Security_Blueprint / A_Secure_development.md
1 ---
2 title: Secure development
3 ---
4
5 In order to save a lot of time in code auditing, developers must follow coding
6 guidelines.
7
8 ## Secure build
9
10 ### Kernel build
11
12 Tools like:
13
14 - [Code optimisation](https://github.com/jduck/lk-reducer).
15 - [Kernel Drivers test](https://github.com/ucsb-seclab/dr_checker) with
16   [docs](https://www.usenix.org/system/files/conference/usenixsecurity17/sec17-machiry.pdf).
17
18 Domain                  | Improvement
19 ----------------------- | ------------
20 SecureDev-SecureBuild-1 | Add content.
21
22 ## App/Widget signatures
23
24 Domain                 | Improvement
25 ---------------------- | ------------
26 SecureDev-Signatures-1 | Add content.
27
28 ## Code audit
29
30 These tools are used to check the correct implementation of functionalities and
31 compliance with related good practices.
32
33 - [Continuous Code Quality](https://www.sonarqube.org/).
34
35 Domain                | Improvement
36 --------------------- | -----------------------------------------------------
37 SecureDev-CodeAudit-1 | Add CVE analyser.
38 SecureDev-CodeAudit-2 | [OSSTMM](http://www.isecom.org/mirror/OSSTMM.3.pdf).
39
40 ### SATS
41
42 - [RATS](https://github.com/andrew-d/rough-auditing-tool-for-security) (Maybe to
43   old).
44 - [Flaw Finder](https://www.dwheeler.com/flawfinder/).
45
46 - [wiki
47   list](https://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis).
48
49 - [Mathematical
50   approach](https://perso.univ-rennes1.fr/david.lubicz/planches/David_Pichardie.pdf).
51
52 It is necessary to verify that the application code does not use functions that
53 are depreciated and recognized as unsecured or cause problems.
54
55 ### DATS
56
57 - [wiki
58   list](https://en.wikipedia.org/wiki/Dynamic_program_analysis#Example_tools).