KasperskyOS Community Edition 1.2

Примеры тестов политик безопасности решений на базе KasperskyOS

Пример 1

/* Набор тестов, который включает один тест. */ assert "some tests" { /* Тест, который включает четыре тестовых примера. */ sequence "first sequence" { /* Ожидается, что запуск процесса класса Server разрешен. * Если это так, переменной s будет присвоено значение SID * запущенного процесса класса Server. */ s <- execute dst=Server /* Ожидается, что запуск процесса класса Client разрешен. * Если это так, переменной c будет присвоено значение SID * запущенного процесса класса Client. */ c <- execute dst=Client /* Ожидается, что клиенту класса Client разрешено обращаться к * серверу класса Server, вызывая метод Ping службы pingComp.pingImpl * с параметром value, равным 100. */ grant "Client calls Ping" request src=c dst=s endpoint=pingComp.pingImpl method=Ping { value : 100 } /* Ожидается, что серверу класса Server запрещено отвечать клиенту * класса Client, если клиент вызывает метод Ping службы pingComp.pingImpl. * (IPC-ответ не содержит параметров, так как интерфейсный метод Ping * не имеет выходных параметров.) */ deny "Server can not respond" response src=s dst=c endpoint=pingComp.pingImpl method=Ping {} } }

Пример 2

/* Набор тестов, который включает два теста. */ assert "ping tests"{ /* Начальная часть каждого из двух тестов, * которая включает два тестовых примера. */ setup { /* Ожидается, что запуск процесса класса Server разрешен. * Если это так, переменной s будет присвоено значение SID * запущенного процесса класса Server. */ s <- execute dst=Server /* Ожидается, что запуск процесса класса Client разрешен. * Если это так, переменной c будет присвоено значение SID * запущенного процесса класса Client. */ c <- execute dst=Client } /* Тест, который включает четыре тестовых примера: два тестовых примера * в начальной части и два тестовых примера в основной части.*/ sequence "ping-ping is denied" { /* Ожидается, что клиенту класса Client разрешено обращаться к * серверу класса Server, вызывая метод Ping службы pingComp.pingImpl * с параметром value, равным 100. */ c ~> s : pingComp.pingImpl.Ping { value : 100 } /* Ожидается, что клиенту класса Client запрещено обращаться к * серверу класса Server, повторно вызывая метод Ping службы pingComp.pingImpl * с параметром value, равным 100. */ deny c ~> s : pingComp.pingImpl.Ping { value : 100 } } /* Тест, который включает четыре тестовых примера: два тестовых примера * в начальной части и два тестовых примера в основной части. */ sequence "ping-pong is granted" { /* Ожидается, что клиенту класса Client разрешено обращаться к * серверу класса Server, вызывая метод Ping службы pingComp.pingImpl * с параметром value, равным 100. */ c ~> s : pingComp.pingImpl.Ping { value: 100 } /* Ожидается, что клиенту класса Client разрешено обращаться к * серверу класса Server, вызывая метод Pong службы pingComp.pingImpl * с параметром value, равным 100. */ c ~> s : pingComp.pingImpl.Pong { value: 100 } } }

Пример 3

/* Набор тестов, который включает один тест. */ assert { /* Тест, который включает восемь тестовых примеров. */ sequence { storage <− execute dst=test.kl.UpdateStorage manager <− execute dst=test.kl.UpdateManager deployer <− execute dst=test.kl.UpdateDeployer downloader <− execute dst=test.kl.UpdateDownloader grant manager ~> downloader:UpdateDownloader.Downloader.LoadPackage { url : ”url012345678” } grant response src=downloader dst=manager endpoint=UpdateDownloader.Downloader method=LoadPackage { handle : 29, result : 1 } deny manager ~> deployer:UpdateDeployer.Deployer.Start { handle : 29 } deny request src=manager dst=deployer endpoint=UpdateDeployer.Deployer method=Start { handle : 29 } } }
В начало
[Topic ssp_descr_psl_syntax_testing_examples]