SlideShare a Scribd company logo
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
ptsecurity.com
Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ
вСрификация ядСр
ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ…
систСм
ДСнис Π•Ρ„Ρ€Π΅ΠΌΠΎΠ²
efremov@ispras.ru
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
2
β€’ Научный сотрудник ИБП РАН (efremov@ispras.ru)
β€’ Занимался ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ/Π°ΡƒΠ΄ΠΈΡ‚Π° ΠΊΠΎΠ΄Π°
ядра Linux с 2014 Π³ΠΎΠ΄Π°
β€’ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽ floppy Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Π² ядрС Linux
β€’ Π“ΠΎΡ‚ΠΎΠ²Π»ΡŽ ядро CruelKernel для Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ² Samsung S10/Note10
β€’ Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ KSPLICE ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ исправлСний
бСзопасности для ядра Linux Π±Π΅Π· ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ
О Π΄ΠΎΠΊΠ»Π°Π΄Ρ‡ΠΈΠΊΠ΅, ΠΎΠΏΡ‹Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Linux
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
3
https://app.sli.do/event/wv81wshd
ΠΈΠ»ΠΈ
https://www.sli.do/
Код: phdays10_development
Π—Π°Π΄Π°Π²Π°ΠΉΡ‚Π΅ вопросы ΠΎΠ½Π»Π°ΠΉΠ½
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
4
β€’ БпСцификация - Π½Π°Π±ΠΎΡ€ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²,
ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ удовлСтворяСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚
(прСдставлСна Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°Ρ‚. ΠΌΠΎΠ΄Π΅Π»ΠΈ, тСстовых Π½Π°Π±ΠΎΡ€ΠΎΠ²,
Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ спСцификации);
β€’ ВСрификация - ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° соотвСтствия ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ
обСспСчСния ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»ΡΠ΅ΠΌΡ‹ΠΌ ΠΊ Π½Π΅ΠΌΡƒ трСбованиям;
β€’ ДСдуктивная вСрификация – прСдставлСниС
коррСктности ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡ€Π° матСматичСских
ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… условиями Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ,
Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… провСряСтся автоматичСскими ΠΈΠ»ΠΈ
ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ доказатСлями Ρ‚Π΅ΠΎΡ€Π΅ΠΌ.
ВСрификация
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
5
β€’ ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ ΠΈ Π»ΠΈΠ½ΠΊΠΎΠ²Ρ‰ΠΈΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ
β€’ Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ обСспСчСнии, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅ΠΌΡΡ ΠΏΡ€ΠΈ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Π½Π΅Ρ‚
ошибок
β€’ ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΡ‹ Π΄ΡƒΠΌΠ°Π΅ΠΌ ΠΎΠ± этом
(rowhammer, spectre/meltdown, DMA)
β€’ НиТСлСТащий слой ПО (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ОБ, ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠ° сСтСвой ΠΊΠ°Ρ€Ρ‚Ρ‹,
ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ΄ процСссора) Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… нашСго
прСдставлСния ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΈ Ρ‡Π΅Π³ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½
β€’ ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, Ссли ΠΎΠ½ Π΅ΡΡ‚ΡŒ, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π½Π΅ «пакостит»
β€’ Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ прСдполоТСния ΠΎ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…
ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ состоянии, ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ окруТСния
β€’ …
На Ρ‡Ρ‚ΠΎ ΠΎΠΏΠΈΡ€Π°Ρ‚ΡŒΡΡ vs Π§Ρ‚ΠΎ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ с этого ΠΈΠΌΠ΅Ρ‚ΡŒ (1)
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
6
Π“Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅
обСспСчСниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ Π² Ρ‚ΠΎΡ‡Π½ΠΎΠΌ
соотвСтствии с трСбованиями, ΠΊ Π½Π΅ΠΌΡƒ
ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»ΡΠ΅ΠΌΡ‹ΠΌΠΈ, Π½Π° всСх Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ…
Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… состояниях, ΠΏΡ€ΠΈ
любом ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ окруТСния * **
* Π’ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Ρ‡Ρ‚ΠΎ всС прСдполоТСния Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹
** И Π½Π΅ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ Π½Π΅ занСсли Π² списочСк
На Ρ‡Ρ‚ΠΎ ΠΎΠΏΠΈΡ€Π°Ρ‚ΡŒΡΡ vs Π§Ρ‚ΠΎ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ с этого ΠΈΠΌΠ΅Ρ‚ΡŒ (2)
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
7
β€’ CertiKOS – Certified Kit Operating System
β€’ CompCert – компилятор языка Clight (Coq > Ocaml)
β€’ seL4 – микроядро L4 (Cparse > Isabelle/HOL)
β€’ HACL* – криптографичСская Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° (F*)
β€’ CakeML – вСрифицированная рСализация ML
β€’ ANSSI-FR/x509-parser – парсСр сСртификатов x509 (C)
β€’ …
Π˜Π·Π²Π΅ΡΡ‚Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
8
β€’ Orange Book: division A (verified protection) (A1, Beyond A1)
β€’ Common Criteria (EAL7)
β€’ DO-178C/DO-333 "Formal Methods Supplement to DO-178C and
DO-278A”
β€’ IEC 61508 (SIL4)
β€’ ЀБВЭК России Π“ΠžΠ‘Π’ Π  ИБО/МЭК 15408 «ВрСбованиях
бСзопасности ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ систСмам» ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ
Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния (Ρ‚ΠΈΠΏΠ° «А»)
ВрСбования рСгулятора
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
9
β€’ Verification Engineering of Safety and Security Critical Industrial
Applications (Vessedia)
β€’ 3 Π³ΠΎΠ΄Π°, 7 стран Π•Π²Ρ€ΠΎΠΏΡ‹, TECHNIKON, CEA, Inria, Dassault,
Fraunhofer FOKUS, …
β€’ Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ инструмСнтов для Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π° Π² областях
ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ с мСньшСй ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ, Ρ‡Π΅ΠΌ для особо Π²Π°ΠΆΠ½Ρ‹Ρ…
ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
β€’ ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Security Certification Levels (SCL) для ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ,
Π³Π΄Π΅ использованиС Common Criteria Π½Π΅ Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ
β€’ Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ СвропСйского стСка инструмСнтов Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ
Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π°, Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Frama-C
β€’ ΠžΠ±ΡŠΠ΅ΠΊΡ‚ исслСдований – IoT ОБ Contiki-NG
ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Vessedia. ВСрификация Contiki-NG
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
10
/*@ requires b != 0;
ensures a – a % b ==
b * result;
*/
int div(int a, int b) {
return a / b;
}
Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Frama-C. Π―Π·Ρ‹ΠΊ спСцификаций ACSL (1)
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
11
/*@ requires b != 0;
ensures a – a % b ==
b * result;
*/
int div(int a, int b) {
return a / b;
}
Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Frama-C. Π―Π·Ρ‹ΠΊ спСцификаций ACSL (2)
Условия Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ
constant min : int = -2147483648
constant max : int = 2147483647
predicate in_bounds (n:int) = min <= n / n <= max
type t17
function to_int t17 : int
function of_int int : t17
constant a_1 : t17
constant b_1 : t17
axiom H : not b_1 = of_int 0
goal WP_parameter_div2 :
not to_int b_1 = 0 / in_bounds (div (to_int a_1)
(to_int b_1))
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
12
/*@ requires b != 0;
ensures a – a % b ==
b * result;
*/
int div(int a, int b) {
return a / b;
}
Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Frama-C. Π―Π·Ρ‹ΠΊ спСцификаций ACSL (3)
Условия Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ
Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅
constant min : int = -2147483648
constant max : int = 2147483647
predicate in_bounds (n:int) = min <= n / n <= max
type t17
function to_int t17 : int
function of_int int : t17
constant a_1 : t17
constant b_1 : t17
axiom H : not b_1 = of_int 0
goal WP_parameter_div2 :
not to_int b_1 = 0 / in_bounds (div (to_int a_1)
(to_int b_1))
- int div(int a, int b) {
- return a / b;
+ long div(int a, int b) {
+ return (long) a / b;
}
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
13
/*@ requires b != 0;
ensures a – a % b ==
b * result;
*/
int div(int a, int b) {
return a / b;
}
Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Frama-C. Π―Π·Ρ‹ΠΊ спСцификаций ACSL (4)
Условия Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ
Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅
Π£Ρ‚ΠΎΡ‡Π½Π΅Π½ΠΈΠ΅ прСдусловий
constant min : int = -2147483648
constant max : int = 2147483647
predicate in_bounds (n:int) = min <= n / n <= max
type t17
function to_int t17 : int
function of_int int : t17
constant a_1 : t17
constant b_1 : t17
axiom H : not b_1 = of_int 0
goal WP_parameter_div2 :
not to_int b_1 = 0 / in_bounds (div (to_int a_1)
(to_int b_1))
/*@ requires b != 0;
requires a != INT_MIN;
ensures a – a % b ==
b * result;
*/
int div(int a, int b)
- int div(int a, int b) {
- return a / b;
+ long div(int a, int b) {
+ return (long) a / b;
}
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
14
β€’ Π’Π΅Ρ€ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ:
β€’ β€œΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅β€ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ (отсутствиС runtime ошибок):
β€’ AES-CCM (aes-128.c, ccm-star.c)
β€’ ΠšΠΎΠ»ΡŒΡ†Π΅Π²ΠΎΠΉ Π±ΡƒΡ„Π΅Ρ€ (ringbufindex.c, ringbuf.c)
β€’ …
β€’ Аллокатор (logic_defs, memb.h, memb.c)
β€’ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со связными списками (logic_defs, lemmas, list.h, list.c,
list_split.c, list_force_insert.c)
β€’ НайдСнныС ошибки:
β€’ ΠŸΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ списка ΠΏΡ€ΠΈ вставкС элСмСнтов Π² list_insert
β€’ Double free Π² Π°Π»Π»ΠΎΠΊΠ°Ρ‚ΠΎΡ€Π΅
β€’ ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 3 строки спСцификаций Π½Π° ΠΎΠ΄Π½Ρƒ строку Π‘ (2260/767)
β€’ ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ (21 функция 300/240)
β€’ Аллокатор (154/100, 126 условий Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ)
β€’ Бписки (1446/176, 798 условий Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, 108 – safety, 26 с Coq)
Contiki-NG. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ с Frama-C
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
15
Contiki-NG. Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ вСрификация Π² CI
. . .
MEMB
LIST
AES-CCM
Contiki-NG
ΠšΠΎΠΌΠΌΠΈΡ‚
diff
---a/list
+++b/list
list_init
{
...
Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅
Pull Request
Ѐункция
. . .
list_add
list_chop
list_pop
list_init
Patch
ΠŸΠ΅Ρ€Π΅Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ
WP
Pin type
-void*…
+list_t*
Врансформации Coccinelle
Bitwise
-E<<2
+E*4
...
β€’ Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ
β€’ ΠŸΠ΅Ρ€Π΅Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ
β€’ ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… трансформаций coccinelle для Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠΈ
ΠΊΠΎΠ΄Π° ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ
β€’ Π‘Ρ…Π΅ΠΌΠ° Π² Travis-CI
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
16
β€’ ГосударствСнная сСртификация
β€’ ВысокоуровнСвая модСль систСмы контроля доступа Π½Π° Event-B
β€’ БистСма контроля доступа Π² Π²ΠΈΠ΄Π΅ LSM модуля (Π°Π½Π°Π»ΠΎΠ³ SELinux, AppArmor, Tomoyo …)
β€’ Π Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ядра Linux с Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ
β€’ Π Π°Π·ΠΌΠ΅Ρ€ < 5.000 SLOC
β€’ Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° спСцификаций ΠΌΠΎΠ΄Π΅Π»ΠΈ Event-B
β€’ Π”ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ нСпротиворСчивости
β€’ Π”ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ выполнСния ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² бСзопасности Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ
β€’ Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° спСцификаций ACSL Π½Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ
β€’ Π”ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ соотвСтствия ΠΊΠΎΠ΄Π° спСцификациям
β€’ БоотвСтствиС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Π²ΠΈΠ΄Π΅ LSM модуля ΠΌΠΎΠ΄Π΅Π»ΠΈ Event-B Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ
Π½Π΅ провСряСтся
β€’ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°, Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ инструмСнтов Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ (Rodin для
высокоуровнСвых ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Event-B, Frama-C для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π‘ΠΈ ΠΊΠΎΠ΄ΠΎΠΌ)
β€’ Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ: https://forge.ispras.ru/projects/astraver
ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ AstraVer. ВСрификация модуля контроля доступа Β«AL SEΒ»
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
17
Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ модСль систСмы Π·Π°Ρ‰ΠΈΡ‚Ρ‹. БпСцификация Event-B
https://github.com/17451k/base-model/blob/master/base-model.txt
ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅/ΠŸΡ€ΠΎΡ†Π΅ΡΡ
ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° АргумСнтов
(базовая валидация)
ДискрСционноС Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅
Доступом (DAC)
Π’Ρ‹Π·ΠΎΠ² LSM
Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ Π”Π°Π½Π½Ρ‹Ρ…/РСсурсы
Linux Security Module (SELinux,
AppArmor, ΠΈ Π΄Ρ€.)
Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ доступ Π² соотвСтствии с
модСлью бСзопасности?
ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π―Π΄Ρ€ΠΎ Linux
Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹
систСмного
Π²Ρ‹Π·ΠΎΠ²Π°
БистСмный Π²Ρ‹Π·ΠΎΠ²
АргумСнты ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹
DAC Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½
LSM Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½
Доступ
Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½
Π”Π°/НСт
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
19
β€’ Π Π°Π·ΠΌΠ΅Ρ€ модуля < 5 KSLOC
β€’ +400 KSLOC ΠΈΠ· ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² (ΠΌΠ΅Π½Π΅Π΅ 100
KSLOC ΠΈΠ· Π½ΠΈΡ… Π²Π°ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈ компиляции)
β€’ Π—Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ~20 ΠΌΠΈΠ½ΡƒΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ
инструмСнты Frama-C ΠΈ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ условия Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ
β€’ Π§Π΅ΠΌ с большим количСством ΠΊΠΎΠ΄Π° приходится Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ
ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, Ρ‚Π΅ΠΌ Ρ…ΡƒΠΆΠ΅ происходит Π°Π½Π°Π»ΠΈΠ·/Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ
β€’ ΠšΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ для Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΈΠ· модуля Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ядра Π½Π΅
Π΄ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ
β€’ БоблюдСниС прСдусловий для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ модуля Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π½Π΅
доказываСтся Π² Ρ‚ΠΎΡ‡ΠΊΠ°Ρ… ΠΈΡ… Π²Ρ‹Π·ΠΎΠ²Π° ядром
Π Π°Π±ΠΎΡ‚Π° с ΠΊΠΎΠ΄ΠΎΠΌ ядра Linux
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
20
β€’ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° container_of
β€’ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
β€’ Полная ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° модСлирования ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ
β€’ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ΅Ρ€Π΅ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° цСлочислСнныС
Ρ‚ΠΈΠΏΡ‹
β€’ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° массивов Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, flexible arrays
β€’ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° string literals
β€’ Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹Π΅ спСцификации для стандартных
Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ mem*
β€’ Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π»Π΅ΠΌΠΌΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² язык ACSL
β€’ …
ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ AstraVer. Π”ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ° Frama-C/Jessie ΠΏΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΊΠΎΠ΄ΠΎΠΌ
Linux
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
21
β€’ ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
β€’ НазначСниС ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ² Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ (критичности участков ΠΊΠΎΠ΄Π°)
β€’ ΠŸΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΎΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΊ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌ
β€’ Π¦ΠΈΠΊΠ» Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ (ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ вСрификация)
β€’ Π’Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ со всСми зависимостями компиляции Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»
(Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ)
β€’ Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ спСцификации ACSL
β€’ Π”ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ соотвСтствия ΠΌΠ΅ΠΆΠ΄Ρƒ спСцификациСй ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ
β€’ Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° (ошибки, адаптация ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ)
β€’ Pull Request Π² ΠΎΠ±Ρ‰ΠΈΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ с ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ спСцификациями
β€’ ΠŸΠ΅Ρ€Π΅Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ всСх Π΄ΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (CI)
β€’ Π”Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ прямо/косвСнно Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ
Π΄ΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ
β€’ ОбновлСниС Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… спСцификаций (Π½ΠΎΠ²Ρ‹Π΅ Π»Π΅ΠΌΠΌΡ‹, уточнСния ΠΎΠ±Ρ‰ΠΈΡ…
ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ΠΎΠ², ΠΈ Ρ‚.Π΄.)
Π Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° Linux (1)
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
22
β€’ ΠœΠΎΠ΄ΡƒΠ»ΡŒ ядра постоянно развиваСтся
β€’ НуТно ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ спСцификации Π² Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ состоянии
β€’ Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Π»ΠΈΡΡŒ ΠΏΠΎ мСньшСй ΠΌΠ΅Ρ€Π΅ 3 Ρ€Π°Π·Π° ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ
β€’ ΠŸΠ΅Ρ€Π΅Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ всСй систСмы Π² CI
β€’ ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ функция/Π³Ρ€ΡƒΠΏΠΏΠ° схоТих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ
ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ
β€’ Π¦ΠΈΠΊΠ» ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π² Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 6-7 часов (Π½Π° Intel Core i7-7700, 32GB)
β€’ Максимальная автоматизация Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²
β€’ Авто-активная вСрификация (Π»Π΅ΠΌΠΌΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ)
β€’ Π‘Ρ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΠΈ трансформации условий Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΉ ΠΈ запуска солвСров
с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ настройками
β€’ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΠΉ
β€’ Врансформация условия Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ (Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ Ρ†Π΅Π»ΠΈ ΠΈ Π΅Ρ‘ отрицания)
β€’ //@ assert 0 == 1;
Π Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° Linux (2)
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
23
ΠšΠ°Ρ€Ρ‚Π° планирования/ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ² Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ
дСмонстрация
https://youtu.be/AuUsaleib9M
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
24
Π’Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠ· ΠΊΠΎΠ΄Π° ядра/ΠŸΠ΅Ρ€Π΅Π½ΠΎΡ спСцификаций
SELinux Callgraph sel_netport_sid_slow function
Extraction
Transfer
дСмонстрация
https://asciinema.org/a/186080
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
25
ΠžΡ‚Ρ‡Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ. Бтатус Ρ€Π°Π±ΠΎΡ‚ ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
26
β€’ ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ с тСориями (ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Ρ‹,
Π»Π΅ΠΌΠΌΡ‹, логичСскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Ρ‚.Π΄.)
β€’ ΠšΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ спСцификаций Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… с
дСкларациями Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ
β€’ Assertions ΠΈ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Π½Π° Ρ†ΠΈΠΊΠ»Ρ‹ Π² Ρ‚Π΅Π»Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ
β€’ ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 2.6 строк спСцификаций Π½Π° ΠΎΠ΄Π½Ρƒ строку Π‘
β€’ ДСсятки тысяч условий Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ
Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹. Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ спСцификаций Π² исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
27
β€’ НС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠΊΠ°Π·Π°Π½Π° Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ
β€’ ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹:
β€’ Π Π°Π·Π½Ρ‹Π΅ Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ/Ρ€Π°Π·Π½Ρ‹Π΅ ΡƒΡ€ΠΎΠ²Π½ΠΈ абстракции
β€’ МодСль описываСт всю систСму/ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ – лишь Ρ‡Π°ΡΡ‚ΡŒ систСмы
β€’ РСализация соотвСтствуСт лишь части ΠΌΠΎΠ΄Π΅Π»ΠΈ
β€’ Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Event-B/ACSL/C Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ связь ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ
Π±Ρ‹Π»Π° Π»Π΅Π³ΠΊΠΎ отслСТиваСмой:
β€’ Verification-Driven Refactoring для Event-B/ACSL/C
β€’ ΠžΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Ρ‹ Π² спСцификациях Event-B/ACSL
β€’ Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ логичСскиС Ρ‚ΠΈΠΏΡ‹ Π² ACSL для отобраТСния Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ…
сущностСй Π½Π° Event-B абстракции
β€’ Implementation-To-Model (i2m) слой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ/ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ΠΎΠ² Π² ACSL
β€’ Π§Π΅Ρ‚ΠΊΠΎΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ трСбованиями уровня Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ трСбованиями с
ΠΌΠΎΠ΄Π΅Π»ΠΈ Event-B Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ACSL спСцификаций
Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹. Бвязь ΠΌΠ΅ΠΆΠ΄Ρƒ модСлью ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ
Event-B
ACSL
C
Event-B’
ACSL’
C’
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
28
β€’ ГосударствСнная сСртификация
β€’ ВысокоуровнСвая модСль систСмы контроля доступа Π½Π° Event-B
β€’ БистСма контроля доступа Π² Π²ΠΈΠ΄Π΅ LSM модуля (Π°Π½Π°Π»ΠΎΠ³ SELinux,
AppArmor, Tomoyo …)
β€’ Π Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ядра Linux с Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ
β€’ Π Π°Π·ΠΌΠ΅Ρ€ < 6.000 SLOC
β€’ Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° спСцификаций ΠΌΠΎΠ΄Π΅Π»ΠΈ Event-B
β€’ Π”ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ нСпротиворСчивости
β€’ Π”ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ выполнСния ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² бСзопасности Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ
β€’ Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° спСцификаций ACSL Π½Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ
β€’ ДинамичСская ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° соотвСтствия Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ систСмы
контроля доступа Π² Π²ΠΈΠ΄Π΅ LSM модуля ΠΌΠΎΠ΄Π΅Π»ΠΈ Event-B
ВСрификация модуля контроля доступа Β«Π­Π»ΡŒΠ±Ρ€ΡƒΡ-Π”Β»
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
29
β€’ Π‘ΠΎΠ»ΡŒΡˆΠΎΠΉ объСм ΠΊΠΎΠ΄Π°
β€’ ЧастыС обновлСния ΠΊΠΎΠ΄Π° ΠΊΠ°ΠΊ ядра Linux, Ρ‚Π°ΠΊ ΠΈ модуля
бСзопасности (ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ)
ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наблюдаСмого повСдСния ОБ Π½Π° соотвСтствиС ΠΌΠΎΠ΄Π΅Π»ΠΈ
Event-B:
β€’ ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² (ΠΈ ΠΈΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ
ядра)
β€’ ВоспроизвСдСниС систСмного Π²Ρ‹Π·ΠΎΠ²Π° Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ Event-B
β€’ Π‘Π²Π΅Ρ€ΠΊΠ° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² выполнСния (Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹Ρ… доступов)
систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ систСмС
β€’ ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ покрытия ΠΏΠΎ спСцификации Even-B/ΠΊΠΎΠ΄Ρƒ ядра
ΠŸΠΎΡ‡Π΅ΠΌΡƒ динамичСская ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
30
● Π£Ρ‚ΠΎΡ‡Π½Π΅Π½ΠΈΠ΅ (refinement) спСцификаций Event-B c
описаниСм систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ²
● ВрСбования бСзопасности ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π° этом
ΡƒΡ€ΠΎΠ²Π½Π΅ уточнСния
● Π’ ΠΌΠΎΠ΄Π΅Π»ΠΈ отсутствуСт понятия физичСских рСсурсов
ΠΌΠ°ΡˆΠΈΠ½Ρ‹, Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… сбоСв
● Π’ΠΈΠΏΡ‹ отслСТиваСмых ошибок:
● ΠŸΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² модуля контроля доступа
● НСполнота LSM интСрфСйса
● ЛогичСская ошибка Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ контроля доступа
Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Π² модСль Event-B
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
31
ВоспроизвСдСниС систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ Event-B
Π―Π΄Ρ€ΠΎ
Linux
LSM
ΠœΠΎΠ΄ΡƒΠ»ΡŒ Аниматор
ProB
Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅
Врансляция
трасс систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ²
Tests, Fuzzing,
User + Fault Injection
МодСль
Event-B
ΠΠ°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅
ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅
Врассы систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ²:
β€’ Kprobes/Kretprobes для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°
β€’ Netlink для общСния с userspace Π΄Π΅ΠΌΠΎΠ½ΠΎΠΌ
β€’ Kernel + LSM
β€’ GCOV для измСрСния покрытия
ВоспроизвСдСниС:
β€’ Врасса транслируСтся Π² ΠΌΠΎΠ΄Π΅Π»ΡŒΠ½ΡƒΡŽ
β€’ Анимация ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² ProB
β€’ Ошибки: модСль Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ доступ, ядро
Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚
β€’ ΠŸΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΏΠΎ прСдусловиям ΠΌΠΎΠ΄Π΅Π»ΡŒΠ½Ρ‹Ρ…
ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
32
Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² (1)
+System +Model
● ΠŸΡ€ΠΈΠ½ΡΡ‚ΡŒ, ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ
-System -Model
● ΠŸΡ€ΠΈΠ½ΡΡ‚ΡŒ, ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
33
Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² (2)
+System +Model
● ΠŸΡ€ΠΈΠ½ΡΡ‚ΡŒ, ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ
-System -Model
● ΠŸΡ€ΠΈΠ½ΡΡ‚ΡŒ, ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ
+System -Model
● ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ°, Ошибка
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
34
Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² (3)
+System +Model
● ΠŸΡ€ΠΈΠ½ΡΡ‚ΡŒ, ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ
-System +Model
● ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π°
● ΠžΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ, ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ
-System -Model
● ΠŸΡ€ΠΈΠ½ΡΡ‚ΡŒ, ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ
+System -Model
● ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ°, Ошибка
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
35
ВрСбования сСртификаций Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΡ‚ΠΎΡ‡Π½ΡΡ‚ΡŒΡΡ ΠΈ ΡƒΡΠΈΠ»ΠΈΠ²Π°Ρ‚ΡŒΡΡ:
β€’ Π’Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²
β€’ Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ вСрификация исходного ΠΊΠΎΠ΄Π°
β€’ ВСрификация Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° соотвСтствиС высокоуровнСвой
ΠΌΠΎΠ΄Π΅Π»ΠΈ
β€’ Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ вСрификация Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°
β€’ …
Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ вСрификация Π‘ ΠΊΠΎΠ΄Π° ΠΈΠΌΠ΅Π΅Ρ‚ смысл Ссли:
β€’ Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ разрабатываСтся ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ
β€’ ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ тСстируСтся Π½Π° сборку Π² Ρ€Π°Π·Π½Ρ‹Ρ… конфигурациях
β€’ Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ прСдупрСТдСния компиляторов
β€’ Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ прСдупрСТдСния статичСских Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ²
β€’ ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ тСстируСтся Ρ„Π°Π·Π·ΠΈΠ½Π³ΠΎΠΌ с санитайзСрами
β€’ Код ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° слСдуСт хотя Π±Ρ‹ части ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² стандартов (MISRA,CEI
CERT, …)
ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ (ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Π΅, Π½ΠΎ Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½Ρ‹Π΅)
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
36
β€’ Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·Ρƒ ΠΎΡ‚ β€œΡ…ΠΎΡ€ΠΎΡˆΠΈΡ…β€ спСцификаций
β€’ Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Π΅Π΅ ΠΈ понятнСС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ
β€’ ΠœΠΎΠ³ΡƒΡ‚ сами Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ прСдусловия для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
β€’ Если Π³ΠΎΡ‚ΠΎΠ²Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° стандартных ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ΠΎΠ²
β€’ Π­Ρ‚ΠΎ ΡƒΠΆΠ΅ дСлаСтся Π² ΠΊΠΎΠ΄Π΅ Π² Π²ΠΈΠ΄Π΅ assert, расстановки ΠΌΠ΅Ρ‚ΠΎΠΊ для стат. Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ²
β€’ Код приходится ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΠΎΠ΄ спСцификации
β€’ Π‘Π»ΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΡƒΡŽ ΠΈ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΡƒΡŽ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π½Π° Π½Π΅Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΉ
ΠΊΠΎΠ΄
β€’ Из-Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ инструмСнтов Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΡ‰Π΅ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ
(Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ найдутся ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ MISRA ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ этот ΠΊΠΎΠ΄ Π½Π΅ удовлСтворяСт)
β€’ Π’Ρ€ΡŽΠΊΠΈ с ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎΠΉ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΎΠΉ, ассСмблСрныС вставки для ускорСния
β€’ ЛогичСски β€œΠ½Π΅ΡΡ‚Ρ€ΠΎΠΉΠ½Ρ‹ΠΉβ€ ΠΊΠΎΠ΄ Π²Π΅Π΄Π΅Ρ‚ ΠΊ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ спСцификациям ΠΈ
Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π°ΠΌ
β€’ ВсС хотят Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ инструмСнтов Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ рядом
ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ (ΠΌΠ΅Π½Π΅Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Π΅)
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
37
ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ (Π½Π΅ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Π΅)
Π‘Ρ‹Π»ΠΎ:
Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°,
Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, тСсты,
Ρ€Π΅Π»ΠΈΠ·Ρ‹
Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ
Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ
спСцификаций
Код
ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹Π΅ ошибки
Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ
ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ ΠΊΠΎΠ΄Π°
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
38
ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ (Π½Π΅ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Π΅)
Π‘Ρ‹Π»ΠΎ:
Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°,
Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, тСсты,
Ρ€Π΅Π»ΠΈΠ·Ρ‹
Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ
Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ
спСцификаций
Код
ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹Π΅ ошибки
Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ
ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ ΠΊΠΎΠ΄Π°
ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹
ошибки,
Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°
Π‘Ρ‚Π°Π»ΠΎ:
Π‘ΡƒΠ΄Π΅Ρ‚: совмСстная ΠΊΠΎΠΌΠ°Π½Π΄Π°
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹
Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°,
Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, тСсты,
Ρ€Π΅Π»ΠΈΠ·Ρ‹
Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ
Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ
спСцификаций
Код
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
39
!!
Π—Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ послС
ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΡ всСх ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΡ… вас
Π΄ΠΎΠΊΠ»Π°Π΄ΠΎΠ² Ρ‚Ρ€Π΅ΠΊΠ° бСзопасной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ
https://forms.gle/5K3hPkMorvdJeY3a9
ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΎΡ†Π΅Π½ΠΈΡ‚Π΅ этот Π΄ΠΎΠΊΠ»Π°Π΄
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
ptsecurity.com
Бпасибо!
Бпасибо!

More Related Content

What's hot

ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΠ΅Π½ Linux (linux namespaces)
ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΠ΅Π½ Linux (linux namespaces)ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΠ΅Π½ Linux (linux namespaces)
ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΠ΅Π½ Linux (linux namespaces)
OSLL
Β 
БыстроС ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ бэкСнда ΠΈΠ³Ρ€Ρ‹ с Π³Π΅ΠΎΠ»ΠΎΠΊΠ°Ρ†ΠΈΠ΅ΠΉ Π½Π° OpenResty, Redis ΠΈ Doc...
БыстроС ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ бэкСнда ΠΈΠ³Ρ€Ρ‹ с Π³Π΅ΠΎΠ»ΠΎΠΊΠ°Ρ†ΠΈΠ΅ΠΉ Π½Π° OpenResty, Redis ΠΈ Doc...БыстроС ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ бэкСнда ΠΈΠ³Ρ€Ρ‹ с Π³Π΅ΠΎΠ»ΠΎΠΊΠ°Ρ†ΠΈΠ΅ΠΉ Π½Π° OpenResty, Redis ΠΈ Doc...
БыстроС ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ бэкСнда ΠΈΠ³Ρ€Ρ‹ с Π³Π΅ΠΎΠ»ΠΎΠΊΠ°Ρ†ΠΈΠ΅ΠΉ Π½Π° OpenResty, Redis ΠΈ Doc...
Ontico
Β 
Operating Systems Hardening
Operating Systems HardeningOperating Systems Hardening
Operating Systems HardeningVasily Sartakov
Β 
Automation Compliance Checks
Automation Compliance ChecksAutomation Compliance Checks
Automation Compliance Checks
Ekaterina Pukhareva
Β 
presentation_r00t_conf
presentation_r00t_confpresentation_r00t_conf
presentation_r00t_confMax Glekov
Β 
ΠŸΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ iOS-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Viber, ΠšΠΈΡ€ΠΈΠ»Π» Π›Π°Ρˆ...
ΠŸΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ iOS-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Viber, ΠšΠΈΡ€ΠΈΠ»Π» Π›Π°Ρˆ...ΠŸΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ iOS-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Viber, ΠšΠΈΡ€ΠΈΠ»Π» Π›Π°Ρˆ...
ΠŸΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ iOS-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Viber, ΠšΠΈΡ€ΠΈΠ»Π» Π›Π°Ρˆ...
Yandex
Β 
Presentation_1369906540313
Presentation_1369906540313Presentation_1369906540313
Presentation_1369906540313Alexander Nevidimov
Β 
Π›Π΅ΠΎΠ½ΠΈΠ΄ Π’Π°ΡΠΈΠ»ΡŒΠ΅Π² "Python Π² инфраструктурС поиска"
Π›Π΅ΠΎΠ½ΠΈΠ΄ Π’Π°ΡΠΈΠ»ΡŒΠ΅Π² "Python Π² инфраструктурС поиска"Π›Π΅ΠΎΠ½ΠΈΠ΄ Π’Π°ΡΠΈΠ»ΡŒΠ΅Π² "Python Π² инфраструктурС поиска"
Π›Π΅ΠΎΠ½ΠΈΠ΄ Π’Π°ΡΠΈΠ»ΡŒΠ΅Π² "Python Π² инфраструктурС поиска"
Yandex
Β 
Π“Ρ€ΠΈΠ³ΠΎΡ€ΠΈΠΉ Π”Π΅ΠΌΡ‡Π΅Π½ΠΊΠΎ β€” АсинхронноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ сопрограммы
Π“Ρ€ΠΈΠ³ΠΎΡ€ΠΈΠΉ Π”Π΅ΠΌΡ‡Π΅Π½ΠΊΠΎ β€” АсинхронноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ сопрограммыГригорий Π”Π΅ΠΌΡ‡Π΅Π½ΠΊΠΎ β€” АсинхронноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ сопрограммы
Π“Ρ€ΠΈΠ³ΠΎΡ€ΠΈΠΉ Π”Π΅ΠΌΡ‡Π΅Π½ΠΊΠΎ β€” АсинхронноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ сопрограммы
Yandex
Β 
noBackend, ΠΈΠ»ΠΈ Как Π²Ρ‹ΠΆΠΈΡ‚ΡŒ Π² эпоху Ρ‚ΠΎΠ»ΡΡ‚Π΅ΡŽΡ‰ΠΈΡ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² / Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ² Николай
noBackend, ΠΈΠ»ΠΈ Как Π²Ρ‹ΠΆΠΈΡ‚ΡŒ Π² эпоху Ρ‚ΠΎΠ»ΡΡ‚Π΅ΡŽΡ‰ΠΈΡ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² / Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ² НиколайnoBackend, ΠΈΠ»ΠΈ Как Π²Ρ‹ΠΆΠΈΡ‚ΡŒ Π² эпоху Ρ‚ΠΎΠ»ΡΡ‚Π΅ΡŽΡ‰ΠΈΡ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² / Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ² Николай
noBackend, ΠΈΠ»ΠΈ Как Π²Ρ‹ΠΆΠΈΡ‚ΡŒ Π² эпоху Ρ‚ΠΎΠ»ΡΡ‚Π΅ΡŽΡ‰ΠΈΡ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² / Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ² Николай
Ontico
Β 
РаспрСдСлСнныС систСмы Π² ΠžΠ΄Π½ΠΎΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠ°Ρ…
РаспрСдСлСнныС систСмы Π² ΠžΠ΄Π½ΠΎΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠ°Ρ…Π Π°ΡΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ систСмы Π² ΠžΠ΄Π½ΠΎΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠ°Ρ…
РаспрСдСлСнныС систСмы Π² ΠžΠ΄Π½ΠΎΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠ°Ρ…
odnoklassniki.ru
Β 
ΠžΠ±Π·ΠΎΡ€ Linux Control Groups
ΠžΠ±Π·ΠΎΡ€ Linux Control GroupsΠžΠ±Π·ΠΎΡ€ Linux Control Groups
ΠžΠ±Π·ΠΎΡ€ Linux Control Groups
OSLL
Β 
Командная строка Unix
Командная строка UnixКомандная строка Unix
Командная строка UnixYandex
Β 
Автоматизация ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π² windbg
Автоматизация ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π² windbgАвтоматизация ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π² windbg
Автоматизация ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π² windbg
Positive Hack Days
Β 
РаспрСдСлСнныС систСмы Π² ΠžΠ΄Π½ΠΎΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠ°Ρ… / ОлСг ΠΠ½Π°ΡΡ‚Π°ΡΡŒΠ΅Π² (Одноклассники)
РаспрСдСлСнныС систСмы Π² ΠžΠ΄Π½ΠΎΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠ°Ρ… / ОлСг ΠΠ½Π°ΡΡ‚Π°ΡΡŒΠ΅Π² (Одноклассники)РаспрСдСлСнныС систСмы Π² ΠžΠ΄Π½ΠΎΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠ°Ρ… / ОлСг ΠΠ½Π°ΡΡ‚Π°ΡΡŒΠ΅Π² (Одноклассники)
РаспрСдСлСнныС систСмы Π² ΠžΠ΄Π½ΠΎΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠ°Ρ… / ОлСг ΠΠ½Π°ΡΡ‚Π°ΡΡŒΠ΅Π² (Одноклассники)
Ontico
Β 
НСзаурядная Java ΠΊΠ°ΠΊ инструмСнт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ высоконагруТСнного сСрвСра
НСзаурядная Java ΠΊΠ°ΠΊ инструмСнт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ высоконагруТСнного сСрвСраНСзаурядная Java ΠΊΠ°ΠΊ инструмСнт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ высоконагруТСнного сСрвСра
НСзаурядная Java ΠΊΠ°ΠΊ инструмСнт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ высоконагруТСнного сСрвСра
odnoklassniki.ru
Β 
АвтоматизированноС тСстированиС - ΠΎΡ‚ слоТного ΠΊ простому, ΠΈΠ»ΠΈ ЗапускаСм Π°Π²Ρ‚ΠΎΡ‚...
АвтоматизированноС тСстированиС - ΠΎΡ‚ слоТного ΠΊ простому, ΠΈΠ»ΠΈ ЗапускаСм Π°Π²Ρ‚ΠΎΡ‚...АвтоматизированноС тСстированиС - ΠΎΡ‚ слоТного ΠΊ простому, ΠΈΠ»ΠΈ ЗапускаСм Π°Π²Ρ‚ΠΎΡ‚...
АвтоматизированноС тСстированиС - ΠΎΡ‚ слоТного ΠΊ простому, ΠΈΠ»ΠΈ ЗапускаСм Π°Π²Ρ‚ΠΎΡ‚...
SQALab
Β 
Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ инфраструктурой
Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ инфраструктуройУправлСниС ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ инфраструктурой
Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ инфраструктуройdddpaul
Β 
Flask ΠΊΠ°ΠΊ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для Π²Π΅Π± ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
Flask ΠΊΠ°ΠΊ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для Π²Π΅Π± ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Flask ΠΊΠ°ΠΊ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для Π²Π΅Π± ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
Flask ΠΊΠ°ΠΊ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для Π²Π΅Π± ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
Python Meetup
Β 
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ…, распрСдСлСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ: быстро ΠΈ дСшСво
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ…, распрСдСлСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ: быстро ΠΈ Π΄Π΅ΡˆΠ΅Π²ΠΎΠ Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ…, распрСдСлСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ: быстро ΠΈ дСшСво
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ…, распрСдСлСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ: быстро ΠΈ дСшСво
DotNetConf
Β 

What's hot (20)

ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΠ΅Π½ Linux (linux namespaces)
ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΠ΅Π½ Linux (linux namespaces)ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΠ΅Π½ Linux (linux namespaces)
ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΠ΅Π½ Linux (linux namespaces)
Β 
БыстроС ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ бэкСнда ΠΈΠ³Ρ€Ρ‹ с Π³Π΅ΠΎΠ»ΠΎΠΊΠ°Ρ†ΠΈΠ΅ΠΉ Π½Π° OpenResty, Redis ΠΈ Doc...
БыстроС ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ бэкСнда ΠΈΠ³Ρ€Ρ‹ с Π³Π΅ΠΎΠ»ΠΎΠΊΠ°Ρ†ΠΈΠ΅ΠΉ Π½Π° OpenResty, Redis ΠΈ Doc...БыстроС ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ бэкСнда ΠΈΠ³Ρ€Ρ‹ с Π³Π΅ΠΎΠ»ΠΎΠΊΠ°Ρ†ΠΈΠ΅ΠΉ Π½Π° OpenResty, Redis ΠΈ Doc...
БыстроС ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ бэкСнда ΠΈΠ³Ρ€Ρ‹ с Π³Π΅ΠΎΠ»ΠΎΠΊΠ°Ρ†ΠΈΠ΅ΠΉ Π½Π° OpenResty, Redis ΠΈ Doc...
Β 
Operating Systems Hardening
Operating Systems HardeningOperating Systems Hardening
Operating Systems Hardening
Β 
Automation Compliance Checks
Automation Compliance ChecksAutomation Compliance Checks
Automation Compliance Checks
Β 
presentation_r00t_conf
presentation_r00t_confpresentation_r00t_conf
presentation_r00t_conf
Β 
ΠŸΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ iOS-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Viber, ΠšΠΈΡ€ΠΈΠ»Π» Π›Π°Ρˆ...
ΠŸΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ iOS-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Viber, ΠšΠΈΡ€ΠΈΠ»Π» Π›Π°Ρˆ...ΠŸΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ iOS-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Viber, ΠšΠΈΡ€ΠΈΠ»Π» Π›Π°Ρˆ...
ΠŸΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ iOS-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Viber, ΠšΠΈΡ€ΠΈΠ»Π» Π›Π°Ρˆ...
Β 
Presentation_1369906540313
Presentation_1369906540313Presentation_1369906540313
Presentation_1369906540313
Β 
Π›Π΅ΠΎΠ½ΠΈΠ΄ Π’Π°ΡΠΈΠ»ΡŒΠ΅Π² "Python Π² инфраструктурС поиска"
Π›Π΅ΠΎΠ½ΠΈΠ΄ Π’Π°ΡΠΈΠ»ΡŒΠ΅Π² "Python Π² инфраструктурС поиска"Π›Π΅ΠΎΠ½ΠΈΠ΄ Π’Π°ΡΠΈΠ»ΡŒΠ΅Π² "Python Π² инфраструктурС поиска"
Π›Π΅ΠΎΠ½ΠΈΠ΄ Π’Π°ΡΠΈΠ»ΡŒΠ΅Π² "Python Π² инфраструктурС поиска"
Β 
Π“Ρ€ΠΈΠ³ΠΎΡ€ΠΈΠΉ Π”Π΅ΠΌΡ‡Π΅Π½ΠΊΠΎ β€” АсинхронноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ сопрограммы
Π“Ρ€ΠΈΠ³ΠΎΡ€ΠΈΠΉ Π”Π΅ΠΌΡ‡Π΅Π½ΠΊΠΎ β€” АсинхронноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ сопрограммыГригорий Π”Π΅ΠΌΡ‡Π΅Π½ΠΊΠΎ β€” АсинхронноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ сопрограммы
Π“Ρ€ΠΈΠ³ΠΎΡ€ΠΈΠΉ Π”Π΅ΠΌΡ‡Π΅Π½ΠΊΠΎ β€” АсинхронноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ сопрограммы
Β 
noBackend, ΠΈΠ»ΠΈ Как Π²Ρ‹ΠΆΠΈΡ‚ΡŒ Π² эпоху Ρ‚ΠΎΠ»ΡΡ‚Π΅ΡŽΡ‰ΠΈΡ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² / Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ² Николай
noBackend, ΠΈΠ»ΠΈ Как Π²Ρ‹ΠΆΠΈΡ‚ΡŒ Π² эпоху Ρ‚ΠΎΠ»ΡΡ‚Π΅ΡŽΡ‰ΠΈΡ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² / Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ² НиколайnoBackend, ΠΈΠ»ΠΈ Как Π²Ρ‹ΠΆΠΈΡ‚ΡŒ Π² эпоху Ρ‚ΠΎΠ»ΡΡ‚Π΅ΡŽΡ‰ΠΈΡ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² / Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ² Николай
noBackend, ΠΈΠ»ΠΈ Как Π²Ρ‹ΠΆΠΈΡ‚ΡŒ Π² эпоху Ρ‚ΠΎΠ»ΡΡ‚Π΅ΡŽΡ‰ΠΈΡ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² / Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ² Николай
Β 
РаспрСдСлСнныС систСмы Π² ΠžΠ΄Π½ΠΎΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠ°Ρ…
РаспрСдСлСнныС систСмы Π² ΠžΠ΄Π½ΠΎΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠ°Ρ…Π Π°ΡΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ систСмы Π² ΠžΠ΄Π½ΠΎΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠ°Ρ…
РаспрСдСлСнныС систСмы Π² ΠžΠ΄Π½ΠΎΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠ°Ρ…
Β 
ΠžΠ±Π·ΠΎΡ€ Linux Control Groups
ΠžΠ±Π·ΠΎΡ€ Linux Control GroupsΠžΠ±Π·ΠΎΡ€ Linux Control Groups
ΠžΠ±Π·ΠΎΡ€ Linux Control Groups
Β 
Командная строка Unix
Командная строка UnixКомандная строка Unix
Командная строка Unix
Β 
Автоматизация ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π² windbg
Автоматизация ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π² windbgАвтоматизация ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π² windbg
Автоматизация ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π² windbg
Β 
РаспрСдСлСнныС систСмы Π² ΠžΠ΄Π½ΠΎΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠ°Ρ… / ОлСг ΠΠ½Π°ΡΡ‚Π°ΡΡŒΠ΅Π² (Одноклассники)
РаспрСдСлСнныС систСмы Π² ΠžΠ΄Π½ΠΎΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠ°Ρ… / ОлСг ΠΠ½Π°ΡΡ‚Π°ΡΡŒΠ΅Π² (Одноклассники)РаспрСдСлСнныС систСмы Π² ΠžΠ΄Π½ΠΎΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠ°Ρ… / ОлСг ΠΠ½Π°ΡΡ‚Π°ΡΡŒΠ΅Π² (Одноклассники)
РаспрСдСлСнныС систСмы Π² ΠžΠ΄Π½ΠΎΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠ°Ρ… / ОлСг ΠΠ½Π°ΡΡ‚Π°ΡΡŒΠ΅Π² (Одноклассники)
Β 
НСзаурядная Java ΠΊΠ°ΠΊ инструмСнт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ высоконагруТСнного сСрвСра
НСзаурядная Java ΠΊΠ°ΠΊ инструмСнт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ высоконагруТСнного сСрвСраНСзаурядная Java ΠΊΠ°ΠΊ инструмСнт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ высоконагруТСнного сСрвСра
НСзаурядная Java ΠΊΠ°ΠΊ инструмСнт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ высоконагруТСнного сСрвСра
Β 
АвтоматизированноС тСстированиС - ΠΎΡ‚ слоТного ΠΊ простому, ΠΈΠ»ΠΈ ЗапускаСм Π°Π²Ρ‚ΠΎΡ‚...
АвтоматизированноС тСстированиС - ΠΎΡ‚ слоТного ΠΊ простому, ΠΈΠ»ΠΈ ЗапускаСм Π°Π²Ρ‚ΠΎΡ‚...АвтоматизированноС тСстированиС - ΠΎΡ‚ слоТного ΠΊ простому, ΠΈΠ»ΠΈ ЗапускаСм Π°Π²Ρ‚ΠΎΡ‚...
АвтоматизированноС тСстированиС - ΠΎΡ‚ слоТного ΠΊ простому, ΠΈΠ»ΠΈ ЗапускаСм Π°Π²Ρ‚ΠΎΡ‚...
Β 
Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ инфраструктурой
Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ инфраструктуройУправлСниС ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ инфраструктурой
Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ инфраструктурой
Β 
Flask ΠΊΠ°ΠΊ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для Π²Π΅Π± ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
Flask ΠΊΠ°ΠΊ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для Π²Π΅Π± ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Flask ΠΊΠ°ΠΊ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для Π²Π΅Π± ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
Flask ΠΊΠ°ΠΊ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для Π²Π΅Π± ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
Β 
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ…, распрСдСлСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ: быстро ΠΈ дСшСво
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ…, распрСдСлСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ: быстро ΠΈ Π΄Π΅ΡˆΠ΅Π²ΠΎΠ Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ…, распрСдСлСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ: быстро ΠΈ дСшСво
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ…, распрСдСлСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ: быстро ΠΈ дСшСво
Β 

Similar to Formal verification of operating system kernels

C++ вСсна 2014 лСкция 2
C++ вСсна 2014 лСкция 2C++ вСсна 2014 лСкция 2
C++ вСсна 2014 лСкция 2Technopark
Β 
Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ статичСский Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΠ΄Π°: Ρ‡Ρ‚ΠΎ ΡƒΠΌΠ΅Π΅Ρ‚ ΠΎΠ½, Ρ‡Π΅Π³ΠΎ Π½Π΅ ΡƒΠΌΠ΅Π»ΠΈ Π»ΠΈΠ½Ρ‚Π΅Ρ€Ρ‹
Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ статичСский Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΠ΄Π°: Ρ‡Ρ‚ΠΎ ΡƒΠΌΠ΅Π΅Ρ‚ ΠΎΠ½, Ρ‡Π΅Π³ΠΎ Π½Π΅ ΡƒΠΌΠ΅Π»ΠΈ Π»ΠΈΠ½Ρ‚Π΅Ρ€Ρ‹Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ статичСский Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΠ΄Π°: Ρ‡Ρ‚ΠΎ ΡƒΠΌΠ΅Π΅Ρ‚ ΠΎΠ½, Ρ‡Π΅Π³ΠΎ Π½Π΅ ΡƒΠΌΠ΅Π»ΠΈ Π»ΠΈΠ½Ρ‚Π΅Ρ€Ρ‹
Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ статичСский Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΠ΄Π°: Ρ‡Ρ‚ΠΎ ΡƒΠΌΠ΅Π΅Ρ‚ ΠΎΠ½, Ρ‡Π΅Π³ΠΎ Π½Π΅ ΡƒΠΌΠ΅Π»ΠΈ Π»ΠΈΠ½Ρ‚Π΅Ρ€Ρ‹
corehard_by
Β 
Π”ΠΎΠΊΠ»Π°Π΄ Π² Mail.ru 01.11.12
Π”ΠΎΠΊΠ»Π°Π΄ Π² Mail.ru 01.11.12Π”ΠΎΠΊΠ»Π°Π΄ Π² Mail.ru 01.11.12
Π”ΠΎΠΊΠ»Π°Π΄ Π² Mail.ru 01.11.12Alex Tutubalin
Β 
АлСксандр ΠšΠΎΡ€ΠΎΡ‚ΠΈΠ½. Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ систСм управлСния Ρ‚ΡƒΡ€Π±ΠΈΠ½Π°ΠΌΠΈ Π² элСктроэнСргСтикС
АлСксандр ΠšΠΎΡ€ΠΎΡ‚ΠΈΠ½. Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ систСм управлСния Ρ‚ΡƒΡ€Π±ΠΈΠ½Π°ΠΌΠΈ Π² элСктроэнСргСтикСАлСксандр ΠšΠΎΡ€ΠΎΡ‚ΠΈΠ½. Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ систСм управлСния Ρ‚ΡƒΡ€Π±ΠΈΠ½Π°ΠΌΠΈ Π² элСктроэнСргСтикС
АлСксандр ΠšΠΎΡ€ΠΎΡ‚ΠΈΠ½. Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ систСм управлСния Ρ‚ΡƒΡ€Π±ΠΈΠ½Π°ΠΌΠΈ Π² элСктроэнСргСтикС
Kaspersky
Β 
DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...
DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...
DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...
Alex V. Petrov
Β 
Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ: трСбования, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, инструмСнты
Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ: трСбования, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, инструмСнтыВСхнологии Π°Π½Π°Π»ΠΈΠ·Π° Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ: трСбования, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, инструмСнты
Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ: трСбования, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, инструмСнты
Positive Development User Group
Β 
«БтатичСский Π°Π½Π°Π»ΠΈΠ·: Π³ΠΎΡ€Π΄ΠΎΡΡ‚ΡŒ ΠΈ прСдубСТдСния», АлСксСй ΠšΡƒΠ·ΡŒΠΌΠ΅Π½ΠΊΠΎ, Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊ И...
«БтатичСский Π°Π½Π°Π»ΠΈΠ·: Π³ΠΎΡ€Π΄ΠΎΡΡ‚ΡŒ ΠΈ прСдубСТдСния», АлСксСй ΠšΡƒΠ·ΡŒΠΌΠ΅Π½ΠΊΠΎ, Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊ И...«БтатичСский Π°Π½Π°Π»ΠΈΠ·: Π³ΠΎΡ€Π΄ΠΎΡΡ‚ΡŒ ΠΈ прСдубСТдСния», АлСксСй ΠšΡƒΠ·ΡŒΠΌΠ΅Π½ΠΊΠΎ, Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊ И...
«БтатичСский Π°Π½Π°Π»ΠΈΠ·: Π³ΠΎΡ€Π΄ΠΎΡΡ‚ΡŒ ΠΈ прСдубСТдСния», АлСксСй ΠšΡƒΠ·ΡŒΠΌΠ΅Π½ΠΊΠΎ, Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊ И...
Mail.ru Group
Β 
Π’Π·Π»ΠΎΠΌΠ°Ρ‚ΡŒ сайт Π½Π° ASP.NET
Π’Π·Π»ΠΎΠΌΠ°Ρ‚ΡŒ сайт Π½Π° ASP.NETΠ’Π·Π»ΠΎΠΌΠ°Ρ‚ΡŒ сайт Π½Π° ASP.NET
Π’Π·Π»ΠΎΠΌΠ°Ρ‚ΡŒ сайт Π½Π° ASP.NET
Positive Hack Days
Β 
Formal verification of C code
Formal verification of C codeFormal verification of C code
Formal verification of C code
Denis Efremov
Β 
Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ вСрификация ΠΊΠΎΠ΄Π° Π½Π° языкС Π‘ΠΈ
Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ вСрификация ΠΊΠΎΠ΄Π° Π½Π° языкС Π‘ΠΈΠ€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ вСрификация ΠΊΠΎΠ΄Π° Π½Π° языкС Π‘ΠΈ
Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ вСрификация ΠΊΠΎΠ΄Π° Π½Π° языкС Π‘ΠΈ
Positive Hack Days
Β 
Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ вСрификация ΠΊΠΎΠ΄Π° Π½Π° языкС Π‘ΠΈ
Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ вСрификация ΠΊΠΎΠ΄Π° Π½Π° языкС Π‘ΠΈΠ€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ вСрификация ΠΊΠΎΠ΄Π° Π½Π° языкС Π‘ΠΈ
Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ вСрификация ΠΊΠΎΠ΄Π° Π½Π° языкС Π‘ΠΈ
Positive Development User Group
Β 
IT-инфраструктура. FAQ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°
IT-инфраструктура. FAQ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°IT-инфраструктура. FAQ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°
IT-инфраструктура. FAQ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°
Mikhail Chinkov
Β 
ИспользованиС шаблонов ΠΈ RTTI для ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ симулятора Ρ„Π»Π΅Ρˆ-накопитСля - Π“...
ИспользованиС шаблонов ΠΈ RTTI для ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ симулятора Ρ„Π»Π΅Ρˆ-накопитСля - Π“...ИспользованиС шаблонов ΠΈ RTTI для ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ симулятора Ρ„Π»Π΅Ρˆ-накопитСля - Π“...
ИспользованиС шаблонов ΠΈ RTTI для ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ симулятора Ρ„Π»Π΅Ρˆ-накопитСля - Π“...
Yandex
Β 
Soft labs. достиТима Π»ΠΈ Π² c++ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ языка срСднСго уровня
Soft labs. достиТима Π»ΠΈ Π² c++ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ языка срСднСго уровняSoft labs. достиТима Π»ΠΈ Π² c++ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ языка срСднСго уровня
Soft labs. достиТима Π»ΠΈ Π² c++ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ языка срСднСго уровняLuxoftTraining
Β 
ИспользованиС C++ для Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ платформозависимой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ β€” ΠšΠΈΡ€ΠΈΠ»Π» ...
 ИспользованиС C++ для Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ платформозависимой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ β€” ΠšΠΈΡ€ΠΈΠ»Π» ... ИспользованиС C++ для Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ платформозависимой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ β€” ΠšΠΈΡ€ΠΈΠ»Π» ...
ИспользованиС C++ для Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ платформозависимой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ β€” ΠšΠΈΡ€ΠΈΠ»Π» ...
Yandex
Β 
ΠžΡΠ½ΠΎΠ²Ρ‹ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ статичСского Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ лСкция 1
ΠžΡΠ½ΠΎΠ²Ρ‹ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ статичСского Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ лСкция 1ΠžΡΠ½ΠΎΠ²Ρ‹ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ статичСского Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ лСкция 1
ΠžΡΠ½ΠΎΠ²Ρ‹ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ статичСского Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ лСкция 1
m2rus
Β 
C++ STL & Qt. ЗанятиС 11.
C++ STL & Qt. ЗанятиС 11.C++ STL & Qt. ЗанятиС 11.
C++ STL & Qt. ЗанятиС 11.
Igor Shkulipa
Β 
Sql server clr integration
Sql server clr integration Sql server clr integration
Sql server clr integration
Alex Tumanoff
Β 
SAST ΠΈ Application Security: ΠΊΠ°ΠΊ Π±ΠΎΡ€ΠΎΡ‚ΡŒΡΡ с уязвимостями Π² ΠΊΠΎΠ΄Π΅
SAST ΠΈ Application Security: ΠΊΠ°ΠΊ Π±ΠΎΡ€ΠΎΡ‚ΡŒΡΡ с уязвимостями Π² ΠΊΠΎΠ΄Π΅SAST ΠΈ Application Security: ΠΊΠ°ΠΊ Π±ΠΎΡ€ΠΎΡ‚ΡŒΡΡ с уязвимостями Π² ΠΊΠΎΠ΄Π΅
SAST ΠΈ Application Security: ΠΊΠ°ΠΊ Π±ΠΎΡ€ΠΎΡ‚ΡŒΡΡ с уязвимостями Π² ΠΊΠΎΠ΄Π΅
Andrey Karpov
Β 
БтатичСский Π°Π½Π°Π»ΠΈΠ· ΠΈ написаниС качСствСнного ΠΊΠΎΠ΄Π° Π½Π° C/C++ для встраиваСмых с...
БтатичСский Π°Π½Π°Π»ΠΈΠ· ΠΈ написаниС качСствСнного ΠΊΠΎΠ΄Π° Π½Π° C/C++ для встраиваСмых с...БтатичСский Π°Π½Π°Π»ΠΈΠ· ΠΈ написаниС качСствСнного ΠΊΠΎΠ΄Π° Π½Π° C/C++ для встраиваСмых с...
БтатичСский Π°Π½Π°Π»ΠΈΠ· ΠΈ написаниС качСствСнного ΠΊΠΎΠ΄Π° Π½Π° C/C++ для встраиваСмых с...
Andrey Karpov
Β 

Similar to Formal verification of operating system kernels (20)

C++ вСсна 2014 лСкция 2
C++ вСсна 2014 лСкция 2C++ вСсна 2014 лСкция 2
C++ вСсна 2014 лСкция 2
Β 
Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ статичСский Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΠ΄Π°: Ρ‡Ρ‚ΠΎ ΡƒΠΌΠ΅Π΅Ρ‚ ΠΎΠ½, Ρ‡Π΅Π³ΠΎ Π½Π΅ ΡƒΠΌΠ΅Π»ΠΈ Π»ΠΈΠ½Ρ‚Π΅Ρ€Ρ‹
Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ статичСский Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΠ΄Π°: Ρ‡Ρ‚ΠΎ ΡƒΠΌΠ΅Π΅Ρ‚ ΠΎΠ½, Ρ‡Π΅Π³ΠΎ Π½Π΅ ΡƒΠΌΠ΅Π»ΠΈ Π»ΠΈΠ½Ρ‚Π΅Ρ€Ρ‹Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ статичСский Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΠ΄Π°: Ρ‡Ρ‚ΠΎ ΡƒΠΌΠ΅Π΅Ρ‚ ΠΎΠ½, Ρ‡Π΅Π³ΠΎ Π½Π΅ ΡƒΠΌΠ΅Π»ΠΈ Π»ΠΈΠ½Ρ‚Π΅Ρ€Ρ‹
Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ статичСский Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΠ΄Π°: Ρ‡Ρ‚ΠΎ ΡƒΠΌΠ΅Π΅Ρ‚ ΠΎΠ½, Ρ‡Π΅Π³ΠΎ Π½Π΅ ΡƒΠΌΠ΅Π»ΠΈ Π»ΠΈΠ½Ρ‚Π΅Ρ€Ρ‹
Β 
Π”ΠΎΠΊΠ»Π°Π΄ Π² Mail.ru 01.11.12
Π”ΠΎΠΊΠ»Π°Π΄ Π² Mail.ru 01.11.12Π”ΠΎΠΊΠ»Π°Π΄ Π² Mail.ru 01.11.12
Π”ΠΎΠΊΠ»Π°Π΄ Π² Mail.ru 01.11.12
Β 
АлСксандр ΠšΠΎΡ€ΠΎΡ‚ΠΈΠ½. Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ систСм управлСния Ρ‚ΡƒΡ€Π±ΠΈΠ½Π°ΠΌΠΈ Π² элСктроэнСргСтикС
АлСксандр ΠšΠΎΡ€ΠΎΡ‚ΠΈΠ½. Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ систСм управлСния Ρ‚ΡƒΡ€Π±ΠΈΠ½Π°ΠΌΠΈ Π² элСктроэнСргСтикСАлСксандр ΠšΠΎΡ€ΠΎΡ‚ΠΈΠ½. Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ систСм управлСния Ρ‚ΡƒΡ€Π±ΠΈΠ½Π°ΠΌΠΈ Π² элСктроэнСргСтикС
АлСксандр ΠšΠΎΡ€ΠΎΡ‚ΠΈΠ½. Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ систСм управлСния Ρ‚ΡƒΡ€Π±ΠΈΠ½Π°ΠΌΠΈ Π² элСктроэнСргСтикС
Β 
DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...
DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...
DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...
Β 
Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ: трСбования, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, инструмСнты
Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ: трСбования, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, инструмСнтыВСхнологии Π°Π½Π°Π»ΠΈΠ·Π° Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ: трСбования, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, инструмСнты
Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ: трСбования, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, инструмСнты
Β 
«БтатичСский Π°Π½Π°Π»ΠΈΠ·: Π³ΠΎΡ€Π΄ΠΎΡΡ‚ΡŒ ΠΈ прСдубСТдСния», АлСксСй ΠšΡƒΠ·ΡŒΠΌΠ΅Π½ΠΊΠΎ, Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊ И...
«БтатичСский Π°Π½Π°Π»ΠΈΠ·: Π³ΠΎΡ€Π΄ΠΎΡΡ‚ΡŒ ΠΈ прСдубСТдСния», АлСксСй ΠšΡƒΠ·ΡŒΠΌΠ΅Π½ΠΊΠΎ, Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊ И...«БтатичСский Π°Π½Π°Π»ΠΈΠ·: Π³ΠΎΡ€Π΄ΠΎΡΡ‚ΡŒ ΠΈ прСдубСТдСния», АлСксСй ΠšΡƒΠ·ΡŒΠΌΠ΅Π½ΠΊΠΎ, Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊ И...
«БтатичСский Π°Π½Π°Π»ΠΈΠ·: Π³ΠΎΡ€Π΄ΠΎΡΡ‚ΡŒ ΠΈ прСдубСТдСния», АлСксСй ΠšΡƒΠ·ΡŒΠΌΠ΅Π½ΠΊΠΎ, Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊ И...
Β 
Π’Π·Π»ΠΎΠΌΠ°Ρ‚ΡŒ сайт Π½Π° ASP.NET
Π’Π·Π»ΠΎΠΌΠ°Ρ‚ΡŒ сайт Π½Π° ASP.NETΠ’Π·Π»ΠΎΠΌΠ°Ρ‚ΡŒ сайт Π½Π° ASP.NET
Π’Π·Π»ΠΎΠΌΠ°Ρ‚ΡŒ сайт Π½Π° ASP.NET
Β 
Formal verification of C code
Formal verification of C codeFormal verification of C code
Formal verification of C code
Β 
Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ вСрификация ΠΊΠΎΠ΄Π° Π½Π° языкС Π‘ΠΈ
Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ вСрификация ΠΊΠΎΠ΄Π° Π½Π° языкС Π‘ΠΈΠ€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ вСрификация ΠΊΠΎΠ΄Π° Π½Π° языкС Π‘ΠΈ
Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ вСрификация ΠΊΠΎΠ΄Π° Π½Π° языкС Π‘ΠΈ
Β 
Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ вСрификация ΠΊΠΎΠ΄Π° Π½Π° языкС Π‘ΠΈ
Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ вСрификация ΠΊΠΎΠ΄Π° Π½Π° языкС Π‘ΠΈΠ€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ вСрификация ΠΊΠΎΠ΄Π° Π½Π° языкС Π‘ΠΈ
Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ вСрификация ΠΊΠΎΠ΄Π° Π½Π° языкС Π‘ΠΈ
Β 
IT-инфраструктура. FAQ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°
IT-инфраструктура. FAQ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°IT-инфраструктура. FAQ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°
IT-инфраструктура. FAQ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°
Β 
ИспользованиС шаблонов ΠΈ RTTI для ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ симулятора Ρ„Π»Π΅Ρˆ-накопитСля - Π“...
ИспользованиС шаблонов ΠΈ RTTI для ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ симулятора Ρ„Π»Π΅Ρˆ-накопитСля - Π“...ИспользованиС шаблонов ΠΈ RTTI для ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ симулятора Ρ„Π»Π΅Ρˆ-накопитСля - Π“...
ИспользованиС шаблонов ΠΈ RTTI для ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ симулятора Ρ„Π»Π΅Ρˆ-накопитСля - Π“...
Β 
Soft labs. достиТима Π»ΠΈ Π² c++ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ языка срСднСго уровня
Soft labs. достиТима Π»ΠΈ Π² c++ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ языка срСднСго уровняSoft labs. достиТима Π»ΠΈ Π² c++ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ языка срСднСго уровня
Soft labs. достиТима Π»ΠΈ Π² c++ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ языка срСднСго уровня
Β 
ИспользованиС C++ для Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ платформозависимой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ β€” ΠšΠΈΡ€ΠΈΠ»Π» ...
 ИспользованиС C++ для Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ платформозависимой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ β€” ΠšΠΈΡ€ΠΈΠ»Π» ... ИспользованиС C++ для Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ платформозависимой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ β€” ΠšΠΈΡ€ΠΈΠ»Π» ...
ИспользованиС C++ для Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ платформозависимой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ β€” ΠšΠΈΡ€ΠΈΠ»Π» ...
Β 
ΠžΡΠ½ΠΎΠ²Ρ‹ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ статичСского Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ лСкция 1
ΠžΡΠ½ΠΎΠ²Ρ‹ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ статичСского Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ лСкция 1ΠžΡΠ½ΠΎΠ²Ρ‹ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ статичСского Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ лСкция 1
ΠžΡΠ½ΠΎΠ²Ρ‹ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ статичСского Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ лСкция 1
Β 
C++ STL & Qt. ЗанятиС 11.
C++ STL & Qt. ЗанятиС 11.C++ STL & Qt. ЗанятиС 11.
C++ STL & Qt. ЗанятиС 11.
Β 
Sql server clr integration
Sql server clr integration Sql server clr integration
Sql server clr integration
Β 
SAST ΠΈ Application Security: ΠΊΠ°ΠΊ Π±ΠΎΡ€ΠΎΡ‚ΡŒΡΡ с уязвимостями Π² ΠΊΠΎΠ΄Π΅
SAST ΠΈ Application Security: ΠΊΠ°ΠΊ Π±ΠΎΡ€ΠΎΡ‚ΡŒΡΡ с уязвимостями Π² ΠΊΠΎΠ΄Π΅SAST ΠΈ Application Security: ΠΊΠ°ΠΊ Π±ΠΎΡ€ΠΎΡ‚ΡŒΡΡ с уязвимостями Π² ΠΊΠΎΠ΄Π΅
SAST ΠΈ Application Security: ΠΊΠ°ΠΊ Π±ΠΎΡ€ΠΎΡ‚ΡŒΡΡ с уязвимостями Π² ΠΊΠΎΠ΄Π΅
Β 
БтатичСский Π°Π½Π°Π»ΠΈΠ· ΠΈ написаниС качСствСнного ΠΊΠΎΠ΄Π° Π½Π° C/C++ для встраиваСмых с...
БтатичСский Π°Π½Π°Π»ΠΈΠ· ΠΈ написаниС качСствСнного ΠΊΠΎΠ΄Π° Π½Π° C/C++ для встраиваСмых с...БтатичСский Π°Π½Π°Π»ΠΈΠ· ΠΈ написаниС качСствСнного ΠΊΠΎΠ΄Π° Π½Π° C/C++ для встраиваСмых с...
БтатичСский Π°Π½Π°Π»ΠΈΠ· ΠΈ написаниС качСствСнного ΠΊΠΎΠ΄Π° Π½Π° C/C++ для встраиваСмых с...
Β 

More from Denis Efremov

CVEhound
CVEhoundCVEhound
CVEhound
Denis Efremov
Β 
Deductive verification of unmodified Linux kernel library functions
Deductive verification of unmodified Linux kernel library functionsDeductive verification of unmodified Linux kernel library functions
Deductive verification of unmodified Linux kernel library functions
Denis Efremov
Β 
Health Insurance Support System (Blockchain Based)
Health Insurance Support System (Blockchain Based)Health Insurance Support System (Blockchain Based)
Health Insurance Support System (Blockchain Based)
Denis Efremov
Β 
Formal Verification of a Linux Security Module
Formal Verification of a Linux Security ModuleFormal Verification of a Linux Security Module
Formal Verification of a Linux Security Module
Denis Efremov
Β 
Practical Language for Extracting Data from Source Codes and Preparing Them f...
Practical Language for Extracting Data from Source Codes and Preparing Them f...Practical Language for Extracting Data from Source Codes and Preparing Them f...
Practical Language for Extracting Data from Source Codes and Preparing Them f...
Denis Efremov
Β 
Automation of rule construction for Approof
Automation of rule construction for ApproofAutomation of rule construction for Approof
Automation of rule construction for Approof
Denis Efremov
Β 
How to prove programs
How to prove programsHow to prove programs
How to prove programs
Denis Efremov
Β 

More from Denis Efremov (7)

CVEhound
CVEhoundCVEhound
CVEhound
Β 
Deductive verification of unmodified Linux kernel library functions
Deductive verification of unmodified Linux kernel library functionsDeductive verification of unmodified Linux kernel library functions
Deductive verification of unmodified Linux kernel library functions
Β 
Health Insurance Support System (Blockchain Based)
Health Insurance Support System (Blockchain Based)Health Insurance Support System (Blockchain Based)
Health Insurance Support System (Blockchain Based)
Β 
Formal Verification of a Linux Security Module
Formal Verification of a Linux Security ModuleFormal Verification of a Linux Security Module
Formal Verification of a Linux Security Module
Β 
Practical Language for Extracting Data from Source Codes and Preparing Them f...
Practical Language for Extracting Data from Source Codes and Preparing Them f...Practical Language for Extracting Data from Source Codes and Preparing Them f...
Practical Language for Extracting Data from Source Codes and Preparing Them f...
Β 
Automation of rule construction for Approof
Automation of rule construction for ApproofAutomation of rule construction for Approof
Automation of rule construction for Approof
Β 
How to prove programs
How to prove programsHow to prove programs
How to prove programs
Β 

Formal verification of operating system kernels

  • 2. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 2 β€’ Научный сотрудник ИБП РАН (efremov@ispras.ru) β€’ Занимался ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ/Π°ΡƒΠ΄ΠΈΡ‚Π° ΠΊΠΎΠ΄Π° ядра Linux с 2014 Π³ΠΎΠ΄Π° β€’ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽ floppy Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Π² ядрС Linux β€’ Π“ΠΎΡ‚ΠΎΠ²Π»ΡŽ ядро CruelKernel для Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ² Samsung S10/Note10 β€’ Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ KSPLICE ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ исправлСний бСзопасности для ядра Linux Π±Π΅Π· ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ О Π΄ΠΎΠΊΠ»Π°Π΄Ρ‡ΠΈΠΊΠ΅, ΠΎΠΏΡ‹Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Linux
  • 4. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 4 β€’ БпСцификация - Π½Π°Π±ΠΎΡ€ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ удовлСтворяСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ (прСдставлСна Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°Ρ‚. ΠΌΠΎΠ΄Π΅Π»ΠΈ, тСстовых Π½Π°Π±ΠΎΡ€ΠΎΠ², Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ спСцификации); β€’ ВСрификация - ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° соотвСтствия ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»ΡΠ΅ΠΌΡ‹ΠΌ ΠΊ Π½Π΅ΠΌΡƒ трСбованиям; β€’ ДСдуктивная вСрификация – прСдставлСниС коррСктности ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡ€Π° матСматичСских ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… условиями Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… провСряСтся автоматичСскими ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ доказатСлями Ρ‚Π΅ΠΎΡ€Π΅ΠΌ. ВСрификация
  • 5. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 5 β€’ ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ ΠΈ Π»ΠΈΠ½ΠΊΠΎΠ²Ρ‰ΠΈΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ β€’ Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ обСспСчСнии, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅ΠΌΡΡ ΠΏΡ€ΠΈ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Π½Π΅Ρ‚ ошибок β€’ ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΡ‹ Π΄ΡƒΠΌΠ°Π΅ΠΌ ΠΎΠ± этом (rowhammer, spectre/meltdown, DMA) β€’ НиТСлСТащий слой ПО (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ОБ, ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠ° сСтСвой ΠΊΠ°Ρ€Ρ‚Ρ‹, ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ΄ процСссора) Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… нашСго прСдставлСния ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΈ Ρ‡Π΅Π³ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ β€’ ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, Ссли ΠΎΠ½ Π΅ΡΡ‚ΡŒ, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π½Π΅ «пакостит» β€’ Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ прСдполоТСния ΠΎ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ состоянии, ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ окруТСния β€’ … На Ρ‡Ρ‚ΠΎ ΠΎΠΏΠΈΡ€Π°Ρ‚ΡŒΡΡ vs Π§Ρ‚ΠΎ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ с этого ΠΈΠΌΠ΅Ρ‚ΡŒ (1)
  • 6. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 6 Π“Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ Π² Ρ‚ΠΎΡ‡Π½ΠΎΠΌ соотвСтствии с трСбованиями, ΠΊ Π½Π΅ΠΌΡƒ ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»ΡΠ΅ΠΌΡ‹ΠΌΠΈ, Π½Π° всСх Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… состояниях, ΠΏΡ€ΠΈ любом ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ окруТСния * ** * Π’ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Ρ‡Ρ‚ΠΎ всС прСдполоТСния Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ ** И Π½Π΅ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ Π½Π΅ занСсли Π² списочСк На Ρ‡Ρ‚ΠΎ ΠΎΠΏΠΈΡ€Π°Ρ‚ΡŒΡΡ vs Π§Ρ‚ΠΎ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ с этого ΠΈΠΌΠ΅Ρ‚ΡŒ (2)
  • 7. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 7 β€’ CertiKOS – Certified Kit Operating System β€’ CompCert – компилятор языка Clight (Coq > Ocaml) β€’ seL4 – микроядро L4 (Cparse > Isabelle/HOL) β€’ HACL* – криптографичСская Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° (F*) β€’ CakeML – вСрифицированная рСализация ML β€’ ANSSI-FR/x509-parser – парсСр сСртификатов x509 (C) β€’ … Π˜Π·Π²Π΅ΡΡ‚Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹
  • 8. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 8 β€’ Orange Book: division A (verified protection) (A1, Beyond A1) β€’ Common Criteria (EAL7) β€’ DO-178C/DO-333 "Formal Methods Supplement to DO-178C and DO-278A” β€’ IEC 61508 (SIL4) β€’ ЀБВЭК России Π“ΠžΠ‘Π’ Π  ИБО/МЭК 15408 «ВрСбованиях бСзопасности ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ систСмам» ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния (Ρ‚ΠΈΠΏΠ° «А») ВрСбования рСгулятора
  • 9. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 9 β€’ Verification Engineering of Safety and Security Critical Industrial Applications (Vessedia) β€’ 3 Π³ΠΎΠ΄Π°, 7 стран Π•Π²Ρ€ΠΎΠΏΡ‹, TECHNIKON, CEA, Inria, Dassault, Fraunhofer FOKUS, … β€’ Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ инструмСнтов для Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π° Π² областях ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ с мСньшСй ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ, Ρ‡Π΅ΠΌ для особо Π²Π°ΠΆΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ β€’ ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Security Certification Levels (SCL) для ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π³Π΄Π΅ использованиС Common Criteria Π½Π΅ Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ β€’ Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ СвропСйского стСка инструмСнтов Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π°, Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Frama-C β€’ ΠžΠ±ΡŠΠ΅ΠΊΡ‚ исслСдований – IoT ОБ Contiki-NG ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Vessedia. ВСрификация Contiki-NG
  • 10. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 10 /*@ requires b != 0; ensures a – a % b == b * result; */ int div(int a, int b) { return a / b; } Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Frama-C. Π―Π·Ρ‹ΠΊ спСцификаций ACSL (1)
  • 11. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 11 /*@ requires b != 0; ensures a – a % b == b * result; */ int div(int a, int b) { return a / b; } Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Frama-C. Π―Π·Ρ‹ΠΊ спСцификаций ACSL (2) Условия Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ constant min : int = -2147483648 constant max : int = 2147483647 predicate in_bounds (n:int) = min <= n / n <= max type t17 function to_int t17 : int function of_int int : t17 constant a_1 : t17 constant b_1 : t17 axiom H : not b_1 = of_int 0 goal WP_parameter_div2 : not to_int b_1 = 0 / in_bounds (div (to_int a_1) (to_int b_1))
  • 12. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 12 /*@ requires b != 0; ensures a – a % b == b * result; */ int div(int a, int b) { return a / b; } Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Frama-C. Π―Π·Ρ‹ΠΊ спСцификаций ACSL (3) Условия Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ constant min : int = -2147483648 constant max : int = 2147483647 predicate in_bounds (n:int) = min <= n / n <= max type t17 function to_int t17 : int function of_int int : t17 constant a_1 : t17 constant b_1 : t17 axiom H : not b_1 = of_int 0 goal WP_parameter_div2 : not to_int b_1 = 0 / in_bounds (div (to_int a_1) (to_int b_1)) - int div(int a, int b) { - return a / b; + long div(int a, int b) { + return (long) a / b; }
  • 13. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 13 /*@ requires b != 0; ensures a – a % b == b * result; */ int div(int a, int b) { return a / b; } Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Frama-C. Π―Π·Ρ‹ΠΊ спСцификаций ACSL (4) Условия Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π£Ρ‚ΠΎΡ‡Π½Π΅Π½ΠΈΠ΅ прСдусловий constant min : int = -2147483648 constant max : int = 2147483647 predicate in_bounds (n:int) = min <= n / n <= max type t17 function to_int t17 : int function of_int int : t17 constant a_1 : t17 constant b_1 : t17 axiom H : not b_1 = of_int 0 goal WP_parameter_div2 : not to_int b_1 = 0 / in_bounds (div (to_int a_1) (to_int b_1)) /*@ requires b != 0; requires a != INT_MIN; ensures a – a % b == b * result; */ int div(int a, int b) - int div(int a, int b) { - return a / b; + long div(int a, int b) { + return (long) a / b; }
  • 14. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 14 β€’ Π’Π΅Ρ€ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ: β€’ β€œΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅β€ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ (отсутствиС runtime ошибок): β€’ AES-CCM (aes-128.c, ccm-star.c) β€’ ΠšΠΎΠ»ΡŒΡ†Π΅Π²ΠΎΠΉ Π±ΡƒΡ„Π΅Ρ€ (ringbufindex.c, ringbuf.c) β€’ … β€’ Аллокатор (logic_defs, memb.h, memb.c) β€’ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со связными списками (logic_defs, lemmas, list.h, list.c, list_split.c, list_force_insert.c) β€’ НайдСнныС ошибки: β€’ ΠŸΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ списка ΠΏΡ€ΠΈ вставкС элСмСнтов Π² list_insert β€’ Double free Π² Π°Π»Π»ΠΎΠΊΠ°Ρ‚ΠΎΡ€Π΅ β€’ ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 3 строки спСцификаций Π½Π° ΠΎΠ΄Π½Ρƒ строку Π‘ (2260/767) β€’ ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ (21 функция 300/240) β€’ Аллокатор (154/100, 126 условий Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ) β€’ Бписки (1446/176, 798 условий Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, 108 – safety, 26 с Coq) Contiki-NG. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ с Frama-C
  • 15. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 15 Contiki-NG. Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ вСрификация Π² CI . . . MEMB LIST AES-CCM Contiki-NG ΠšΠΎΠΌΠΌΠΈΡ‚ diff ---a/list +++b/list list_init { ... Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ Pull Request Ѐункция . . . list_add list_chop list_pop list_init Patch ΠŸΠ΅Ρ€Π΅Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ WP Pin type -void*… +list_t* Врансформации Coccinelle Bitwise -E<<2 +E*4 ... β€’ Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ β€’ ΠŸΠ΅Ρ€Π΅Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ β€’ ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… трансформаций coccinelle для Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ β€’ Π‘Ρ…Π΅ΠΌΠ° Π² Travis-CI
  • 16. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 16 β€’ ГосударствСнная сСртификация β€’ ВысокоуровнСвая модСль систСмы контроля доступа Π½Π° Event-B β€’ БистСма контроля доступа Π² Π²ΠΈΠ΄Π΅ LSM модуля (Π°Π½Π°Π»ΠΎΠ³ SELinux, AppArmor, Tomoyo …) β€’ Π Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ядра Linux с Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ β€’ Π Π°Π·ΠΌΠ΅Ρ€ < 5.000 SLOC β€’ Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° спСцификаций ΠΌΠΎΠ΄Π΅Π»ΠΈ Event-B β€’ Π”ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ нСпротиворСчивости β€’ Π”ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ выполнСния ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² бСзопасности Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ β€’ Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° спСцификаций ACSL Π½Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ β€’ Π”ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ соотвСтствия ΠΊΠΎΠ΄Π° спСцификациям β€’ БоотвСтствиС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Π²ΠΈΠ΄Π΅ LSM модуля ΠΌΠΎΠ΄Π΅Π»ΠΈ Event-B Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ Π½Π΅ провСряСтся β€’ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°, Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ инструмСнтов Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ (Rodin для высокоуровнСвых ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Event-B, Frama-C для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π‘ΠΈ ΠΊΠΎΠ΄ΠΎΠΌ) β€’ Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ: https://forge.ispras.ru/projects/astraver ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ AstraVer. ВСрификация модуля контроля доступа Β«AL SEΒ»
  • 17. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 17 Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ модСль систСмы Π·Π°Ρ‰ΠΈΡ‚Ρ‹. БпСцификация Event-B https://github.com/17451k/base-model/blob/master/base-model.txt
  • 18. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅/ΠŸΡ€ΠΎΡ†Π΅ΡΡ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° АргумСнтов (базовая валидация) ДискрСционноС Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Доступом (DAC) Π’Ρ‹Π·ΠΎΠ² LSM Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ Π”Π°Π½Π½Ρ‹Ρ…/РСсурсы Linux Security Module (SELinux, AppArmor, ΠΈ Π΄Ρ€.) Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ доступ Π² соотвСтствии с модСлью бСзопасности? ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π―Π΄Ρ€ΠΎ Linux Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ систСмного Π²Ρ‹Π·ΠΎΠ²Π° БистСмный Π²Ρ‹Π·ΠΎΠ² АргумСнты ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ DAC Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ LSM Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ Доступ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ Π”Π°/НСт
  • 19. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 19 β€’ Π Π°Π·ΠΌΠ΅Ρ€ модуля < 5 KSLOC β€’ +400 KSLOC ΠΈΠ· ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² (ΠΌΠ΅Π½Π΅Π΅ 100 KSLOC ΠΈΠ· Π½ΠΈΡ… Π²Π°ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈ компиляции) β€’ Π—Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ~20 ΠΌΠΈΠ½ΡƒΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ инструмСнты Frama-C ΠΈ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ условия Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ β€’ Π§Π΅ΠΌ с большим количСством ΠΊΠΎΠ΄Π° приходится Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, Ρ‚Π΅ΠΌ Ρ…ΡƒΠΆΠ΅ происходит Π°Π½Π°Π»ΠΈΠ·/Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ β€’ ΠšΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ для Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΈΠ· модуля Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ядра Π½Π΅ Π΄ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ β€’ БоблюдСниС прСдусловий для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ модуля Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π½Π΅ доказываСтся Π² Ρ‚ΠΎΡ‡ΠΊΠ°Ρ… ΠΈΡ… Π²Ρ‹Π·ΠΎΠ²Π° ядром Π Π°Π±ΠΎΡ‚Π° с ΠΊΠΎΠ΄ΠΎΠΌ ядра Linux
  • 20. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 20 β€’ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° container_of β€’ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ β€’ Полная ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° модСлирования ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ β€’ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ΅Ρ€Π΅ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° цСлочислСнныС Ρ‚ΠΈΠΏΡ‹ β€’ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° массивов Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, flexible arrays β€’ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° string literals β€’ Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹Π΅ спСцификации для стандартных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ mem* β€’ Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π»Π΅ΠΌΠΌΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² язык ACSL β€’ … ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ AstraVer. Π”ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ° Frama-C/Jessie ΠΏΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΊΠΎΠ΄ΠΎΠΌ Linux
  • 21. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 21 β€’ ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ β€’ НазначСниС ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ² Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ (критичности участков ΠΊΠΎΠ΄Π°) β€’ ΠŸΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΎΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΊ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌ β€’ Π¦ΠΈΠΊΠ» Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ (ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ вСрификация) β€’ Π’Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ со всСми зависимостями компиляции Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» (Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ) β€’ Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ спСцификации ACSL β€’ Π”ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ соотвСтствия ΠΌΠ΅ΠΆΠ΄Ρƒ спСцификациСй ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ β€’ Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° (ошибки, адаптация ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ) β€’ Pull Request Π² ΠΎΠ±Ρ‰ΠΈΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ с ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ спСцификациями β€’ ΠŸΠ΅Ρ€Π΅Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ всСх Π΄ΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (CI) β€’ Π”Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ прямо/косвСнно Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π΄ΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ β€’ ОбновлСниС Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… спСцификаций (Π½ΠΎΠ²Ρ‹Π΅ Π»Π΅ΠΌΠΌΡ‹, уточнСния ΠΎΠ±Ρ‰ΠΈΡ… ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ΠΎΠ², ΠΈ Ρ‚.Π΄.) Π Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° Linux (1)
  • 22. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 22 β€’ ΠœΠΎΠ΄ΡƒΠ»ΡŒ ядра постоянно развиваСтся β€’ НуТно ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ спСцификации Π² Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ состоянии β€’ Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Π»ΠΈΡΡŒ ΠΏΠΎ мСньшСй ΠΌΠ΅Ρ€Π΅ 3 Ρ€Π°Π·Π° ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ β€’ ΠŸΠ΅Ρ€Π΅Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ всСй систСмы Π² CI β€’ ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ функция/Π³Ρ€ΡƒΠΏΠΏΠ° схоТих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ β€’ Π¦ΠΈΠΊΠ» ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π² Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 6-7 часов (Π½Π° Intel Core i7-7700, 32GB) β€’ Максимальная автоматизация Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π² β€’ Авто-активная вСрификация (Π»Π΅ΠΌΠΌΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ) β€’ Π‘Ρ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΠΈ трансформации условий Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΉ ΠΈ запуска солвСров с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ настройками β€’ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΠΉ β€’ Врансформация условия Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ (Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ Ρ†Π΅Π»ΠΈ ΠΈ Π΅Ρ‘ отрицания) β€’ //@ assert 0 == 1; Π Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° Linux (2)
  • 24. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 24 Π’Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠ· ΠΊΠΎΠ΄Π° ядра/ΠŸΠ΅Ρ€Π΅Π½ΠΎΡ спСцификаций SELinux Callgraph sel_netport_sid_slow function Extraction Transfer дСмонстрация https://asciinema.org/a/186080
  • 25. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 25 ΠžΡ‚Ρ‡Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ. Бтатус Ρ€Π°Π±ΠΎΡ‚ ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ
  • 26. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 26 β€’ ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ с тСориями (ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Ρ‹, Π»Π΅ΠΌΠΌΡ‹, логичСскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Ρ‚.Π΄.) β€’ ΠšΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ спСцификаций Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… с дСкларациями Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ β€’ Assertions ΠΈ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Π½Π° Ρ†ΠΈΠΊΠ»Ρ‹ Π² Ρ‚Π΅Π»Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ β€’ ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 2.6 строк спСцификаций Π½Π° ΠΎΠ΄Π½Ρƒ строку Π‘ β€’ ДСсятки тысяч условий Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹. Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ спСцификаций Π² исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
  • 27. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 27 β€’ НС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠΊΠ°Π·Π°Π½Π° Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ β€’ ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹: β€’ Π Π°Π·Π½Ρ‹Π΅ Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ/Ρ€Π°Π·Π½Ρ‹Π΅ ΡƒΡ€ΠΎΠ²Π½ΠΈ абстракции β€’ МодСль описываСт всю систСму/ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ – лишь Ρ‡Π°ΡΡ‚ΡŒ систСмы β€’ РСализация соотвСтствуСт лишь части ΠΌΠΎΠ΄Π΅Π»ΠΈ β€’ Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Event-B/ACSL/C Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ связь ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ Π±Ρ‹Π»Π° Π»Π΅Π³ΠΊΠΎ отслСТиваСмой: β€’ Verification-Driven Refactoring для Event-B/ACSL/C β€’ ΠžΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Ρ‹ Π² спСцификациях Event-B/ACSL β€’ Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ логичСскиС Ρ‚ΠΈΠΏΡ‹ Π² ACSL для отобраТСния Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… сущностСй Π½Π° Event-B абстракции β€’ Implementation-To-Model (i2m) слой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ/ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ΠΎΠ² Π² ACSL β€’ Π§Π΅Ρ‚ΠΊΠΎΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ трСбованиями уровня Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ трСбованиями с ΠΌΠΎΠ΄Π΅Π»ΠΈ Event-B Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ACSL спСцификаций Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹. Бвязь ΠΌΠ΅ΠΆΠ΄Ρƒ модСлью ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Event-B ACSL C Event-B’ ACSL’ C’
  • 28. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 28 β€’ ГосударствСнная сСртификация β€’ ВысокоуровнСвая модСль систСмы контроля доступа Π½Π° Event-B β€’ БистСма контроля доступа Π² Π²ΠΈΠ΄Π΅ LSM модуля (Π°Π½Π°Π»ΠΎΠ³ SELinux, AppArmor, Tomoyo …) β€’ Π Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ядра Linux с Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ β€’ Π Π°Π·ΠΌΠ΅Ρ€ < 6.000 SLOC β€’ Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° спСцификаций ΠΌΠΎΠ΄Π΅Π»ΠΈ Event-B β€’ Π”ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ нСпротиворСчивости β€’ Π”ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ выполнСния ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² бСзопасности Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ β€’ Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° спСцификаций ACSL Π½Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ β€’ ДинамичСская ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° соотвСтствия Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ систСмы контроля доступа Π² Π²ΠΈΠ΄Π΅ LSM модуля ΠΌΠΎΠ΄Π΅Π»ΠΈ Event-B ВСрификация модуля контроля доступа Β«Π­Π»ΡŒΠ±Ρ€ΡƒΡ-Π”Β»
  • 29. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 29 β€’ Π‘ΠΎΠ»ΡŒΡˆΠΎΠΉ объСм ΠΊΠΎΠ΄Π° β€’ ЧастыС обновлСния ΠΊΠΎΠ΄Π° ΠΊΠ°ΠΊ ядра Linux, Ρ‚Π°ΠΊ ΠΈ модуля бСзопасности (ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ) ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наблюдаСмого повСдСния ОБ Π½Π° соотвСтствиС ΠΌΠΎΠ΄Π΅Π»ΠΈ Event-B: β€’ ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² (ΠΈ ΠΈΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ ядра) β€’ ВоспроизвСдСниС систСмного Π²Ρ‹Π·ΠΎΠ²Π° Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ Event-B β€’ Π‘Π²Π΅Ρ€ΠΊΠ° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² выполнСния (Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹Ρ… доступов) систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ систСмС β€’ ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ покрытия ΠΏΠΎ спСцификации Even-B/ΠΊΠΎΠ΄Ρƒ ядра ΠŸΠΎΡ‡Π΅ΠΌΡƒ динамичСская ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°
  • 30. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 30 ● Π£Ρ‚ΠΎΡ‡Π½Π΅Π½ΠΈΠ΅ (refinement) спСцификаций Event-B c описаниСм систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ● ВрСбования бСзопасности ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π° этом ΡƒΡ€ΠΎΠ²Π½Π΅ уточнСния ● Π’ ΠΌΠΎΠ΄Π΅Π»ΠΈ отсутствуСт понятия физичСских рСсурсов ΠΌΠ°ΡˆΠΈΠ½Ρ‹, Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… сбоСв ● Π’ΠΈΠΏΡ‹ отслСТиваСмых ошибок: ● ΠŸΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² модуля контроля доступа ● НСполнота LSM интСрфСйса ● ЛогичСская ошибка Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ контроля доступа Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Π² модСль Event-B
  • 31. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 31 ВоспроизвСдСниС систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ Event-B Π―Π΄Ρ€ΠΎ Linux LSM ΠœΠΎΠ΄ΡƒΠ»ΡŒ Аниматор ProB Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Врансляция трасс систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Tests, Fuzzing, User + Fault Injection МодСль Event-B ΠΠ°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Врассы систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ²: β€’ Kprobes/Kretprobes для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° β€’ Netlink для общСния с userspace Π΄Π΅ΠΌΠΎΠ½ΠΎΠΌ β€’ Kernel + LSM β€’ GCOV для измСрСния покрытия ВоспроизвСдСниС: β€’ Врасса транслируСтся Π² ΠΌΠΎΠ΄Π΅Π»ΡŒΠ½ΡƒΡŽ β€’ Анимация ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² ProB β€’ Ошибки: модСль Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ доступ, ядро Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ β€’ ΠŸΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΏΠΎ прСдусловиям ΠΌΠΎΠ΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ
  • 32. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 32 Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² (1) +System +Model ● ΠŸΡ€ΠΈΠ½ΡΡ‚ΡŒ, ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ -System -Model ● ΠŸΡ€ΠΈΠ½ΡΡ‚ΡŒ, ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ
  • 33. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 33 Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² (2) +System +Model ● ΠŸΡ€ΠΈΠ½ΡΡ‚ΡŒ, ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ -System -Model ● ΠŸΡ€ΠΈΠ½ΡΡ‚ΡŒ, ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ +System -Model ● ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ°, Ошибка
  • 34. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 34 Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² (3) +System +Model ● ΠŸΡ€ΠΈΠ½ΡΡ‚ΡŒ, ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ -System +Model ● ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ● ΠžΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ, ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ -System -Model ● ΠŸΡ€ΠΈΠ½ΡΡ‚ΡŒ, ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ +System -Model ● ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ°, Ошибка
  • 35. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 35 ВрСбования сСртификаций Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΡ‚ΠΎΡ‡Π½ΡΡ‚ΡŒΡΡ ΠΈ ΡƒΡΠΈΠ»ΠΈΠ²Π°Ρ‚ΡŒΡΡ: β€’ Π’Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² β€’ Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ вСрификация исходного ΠΊΠΎΠ΄Π° β€’ ВСрификация Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° соотвСтствиС высокоуровнСвой ΠΌΠΎΠ΄Π΅Π»ΠΈ β€’ Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ вСрификация Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° β€’ … Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ вСрификация Π‘ ΠΊΠΎΠ΄Π° ΠΈΠΌΠ΅Π΅Ρ‚ смысл Ссли: β€’ Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ разрабатываСтся ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ β€’ ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ тСстируСтся Π½Π° сборку Π² Ρ€Π°Π·Π½Ρ‹Ρ… конфигурациях β€’ Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ прСдупрСТдСния компиляторов β€’ Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ прСдупрСТдСния статичСских Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ² β€’ ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ тСстируСтся Ρ„Π°Π·Π·ΠΈΠ½Π³ΠΎΠΌ с санитайзСрами β€’ Код ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° слСдуСт хотя Π±Ρ‹ части ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² стандартов (MISRA,CEI CERT, …) ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ (ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Π΅, Π½ΠΎ Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½Ρ‹Π΅)
  • 36. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 36 β€’ Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·Ρƒ ΠΎΡ‚ β€œΡ…ΠΎΡ€ΠΎΡˆΠΈΡ…β€ спСцификаций β€’ Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Π΅Π΅ ΠΈ понятнСС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ β€’ ΠœΠΎΠ³ΡƒΡ‚ сами Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ прСдусловия для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ β€’ Если Π³ΠΎΡ‚ΠΎΠ²Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° стандартных ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ΠΎΠ² β€’ Π­Ρ‚ΠΎ ΡƒΠΆΠ΅ дСлаСтся Π² ΠΊΠΎΠ΄Π΅ Π² Π²ΠΈΠ΄Π΅ assert, расстановки ΠΌΠ΅Ρ‚ΠΎΠΊ для стат. Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ² β€’ Код приходится ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΠΎΠ΄ спСцификации β€’ Π‘Π»ΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΡƒΡŽ ΠΈ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΡƒΡŽ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π½Π° Π½Π΅Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ β€’ Из-Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ инструмСнтов Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΡ‰Π΅ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ (Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ найдутся ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ MISRA ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ этот ΠΊΠΎΠ΄ Π½Π΅ удовлСтворяСт) β€’ Π’Ρ€ΡŽΠΊΠΈ с ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎΠΉ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΎΠΉ, ассСмблСрныС вставки для ускорСния β€’ ЛогичСски β€œΠ½Π΅ΡΡ‚Ρ€ΠΎΠΉΠ½Ρ‹ΠΉβ€ ΠΊΠΎΠ΄ Π²Π΅Π΄Π΅Ρ‚ ΠΊ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ спСцификациям ΠΈ Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π°ΠΌ β€’ ВсС хотят Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ инструмСнтов Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ рядом ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ (ΠΌΠ΅Π½Π΅Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Π΅)
  • 37. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 37 ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ (Π½Π΅ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Π΅) Π‘Ρ‹Π»ΠΎ: Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, тСсты, Ρ€Π΅Π»ΠΈΠ·Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ спСцификаций Код ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹Π΅ ошибки Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ ΠΊΠΎΠ΄Π° Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹
  • 38. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 38 ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ (Π½Π΅ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Π΅) Π‘Ρ‹Π»ΠΎ: Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, тСсты, Ρ€Π΅Π»ΠΈΠ·Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ спСцификаций Код ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹Π΅ ошибки Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ ΠΊΠΎΠ΄Π° ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ ошибки, Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π‘Ρ‚Π°Π»ΠΎ: Π‘ΡƒΠ΄Π΅Ρ‚: совмСстная ΠΊΠΎΠΌΠ°Π½Π΄Π° Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, тСсты, Ρ€Π΅Π»ΠΈΠ·Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ спСцификаций Код
  • 39. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ 39 !! Π—Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ послС ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΡ всСх ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΡ… вас Π΄ΠΎΠΊΠ»Π°Π΄ΠΎΠ² Ρ‚Ρ€Π΅ΠΊΠ° бСзопасной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ https://forms.gle/5K3hPkMorvdJeY3a9 ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΎΡ†Π΅Π½ΠΈΡ‚Π΅ этот Π΄ΠΎΠΊΠ»Π°Π΄