Vol 20 (2011)
View or download the full issue
PDF (Russian)
Abstract
Program analysis problem will be viewed as the process of extracting some properties of analyzed program. It might be the description of implemented algorithms, output data formats, such as file formats, network packet formats and structures of data in memory, or information of existing bugs. In this article we will consider an approach to program analysis to identify some types of program beetles which break confidentiality. In this approach, programs are presented in the form of stripped executables without source code. According to Russian National Standard (ГОСТ Р 51275-2006) a program beetle is intentionally introduced into the software functional object which under certain circumstances can initialize an implementation of software’s undeclared features. A program beetle may be implemented either as some malicious program, or as a part of the software code.
The proposed approach described in the fifth section of the article. This approach was implemented in our program analysis tool named TREX (TRace EXplorer). The first four sections briefly describe TREX implementation.
The proposed approach described in the fifth section of the article. This approach was implemented in our program analysis tool named TREX (TRace EXplorer). The first four sections briefly describe TREX implementation.
Abstract
The paper describes possible ways of using hardware-assisted virtualization for solving different information security problems. An overview of virtualization-based approaches for increasing software security is presented, as well as overview of possible ways to compromise the system that can take advantage of virtualization. The paper analyzes possible applications of existing approaches, their limitations and possible future directions of further developments.
Abstract
Binary translation is a process of constructing program Q's binary code from program P's binary code according to a certain specification. If a binary translation is performed in runtime it is called dynamic binary translation. We evaluate application of different optimizations during dynamic binary translation. We improve lookup of existing translation block in translation cache in QEMU, evaluate impact of register allocation algorithm on program performance in QEMU, implement simple machine independent optimizations in QEMU and implement an instruction scheduler in Valgrind. The improvement of translation block lookup gives the greatest speedup among all these optimizations. Instruction scheduler in Valgrind is promising too.
Abstract
In many cases source code defects can be detected by analyzing the corresponding syntax trees. In this article we investigate advantages and drawbacks of this approach in comparison with more complex types of static code analysis and prove that a user needs an interface for writing his own defect detectors. Different ways of implementing such an interface are considered. We also introduce a new declarative language for describing code defects that a user wants to detect, in the form of syntax tree patterns. Some aspects of the language analyzer implementation are also discussed.
Abstract
This paper provides the analysis of the express power of Petri nets to model counters with infinite state space. The implementation relation for the counters modeling is suggested. A lack of Petri nets expression power for such modeling is shown. The minimal Petri net model of a counter with a finite state space is provided.
Abstract
The paper presents an overview of features and challenges of efficient creation in 70s of sophisticated complexes of programs for military use based on specialized computers. Methods, requirements, and implementation of adaptive cross systems for automating of programming and testing for various types of sophisticated complexes of programs for target computers are demonstrated. The paper also describe the results of long-term usage of the YAUZA-6 on the platform of BESM-6 at a number of enterprises.
Abstract
The very important subsystem in a real-time system is a task scheduler. Classical algorithms for periodic tasks scheduling imply that release points of each task may vary inside different periods of the task. However, nowadays, some systems require a scheduler that can build schedules where release points of each task form an arithmetic progression. Such an additional requirement does not allow using classical scheduling algorithms. In this paper, we present a scheduling algorithm that takes into account this additional requirement and builds a schedule close to optimal (in the sense of minimization of total number of tasks interruptions) in acceptable time.
Abstract
The paper discusses model-based testing of the modern Internet e-mail protocols, including the method of protocol modeling by means of formal notations, peculiarities of e-mail protocols in the context of testing. The paper presents results of model-based testing of a number of popular open-source e-mail implementations. JavaTESK, an extension of Java programming language, was used to develop formal functional and test specifications for SMTP and POP3 protocols. The developed test suite includes separate tests for SMPT and POP3 as well as integration test for composition of SMTP and POP3 in a single implementation.
Abstract
It is known that at different design stages different representations of a target system are used (a general description of the system's architecture is step by step concretized up to a physical layout). Depending on the project maturity engineers apply different verification methods and, in particular, methods for developing reference models, which are used to check the design correctness (at the beginning of the design process only abstract models are applied; when the process is close to the end, models accuracy is increased). Distinction in abstraction makes it difficult to reuse testbenches having been created at the early stages for verifying the same components some time later. In this paper, we suggest an approach to construct reference models and test oracles that eases testbench reuse thereby reducing verification costs.
Abstract
The paper discusses requirements to a twofold verification system that should be an open platform for experimentation with various verification techniques as well as an industrial-ready domain specific verification tool for Linux device drivers. An architecture of a verification system implementing the requirements is presented and its components are described in details. Finally, we discuss the first experience of usage of the system and evaluate directions for its further development.
Abstract
A possibility to build unlimitedly scalable cluster-based systems has lead to strong activation of research and development of "shared-nothing" architectures of data management systems. Two camps has been established: "NoSQL" that refutes the main principles related with DBMSs and "one size doesn’t fit all" that emphasizes needs of systems’ specialization saving the most important features of DBMS. The most interesting seems to be a confrontation of these camps in the area of "transactional" data management systems. Based on the CAP-"theorem" of Eric Bruwer, representatives of the camp of NoSQL declines to support traditional features of ACID of database transactions. This paper discusses the essence of the Bruwer’s "theorem" and proves that this theorem does not any relation with the ACID features. The paper also overviews the most interesting modern research projects provided classic ACID-transactions in parallel shared-nothing environments and the soundest approaches that partially relaxes requirements of ACID by purely pragmatic reasons (but not at all in relation with the CAP "theorem").
Abstract
Software processing huge volumes of data is the one of the most used kind of software. In particular it is an important part of enterprise integration called data integration. There are tools supporting development and execution of applications implementing extract, transformation and load pattern. In regard of functional testing of such applications there is a specific is a number of combinations of input data. There are tools supporting test data generation for database application on the basis on schemes of databases or SQL queries of application under tests. Using their one can ensure the functionality covering only by means of a brute force of all available combinations. We propose a method reducing excessiveness of data generation. By means of the method the functionality coverage is achieved with fewer amounts of test data that is close to optimal (one set of test data for one functionality branch).
Abstract
The paper describes a method for keyterm extraction from messages of microblogs. The described approach utilizes the information obtained by analysis of Wikipedia structure and content. The algorithm is based on computation of “keyphraseness” for each term, i.e. an estimation of probability that it can be selected as a key in text. The experimental study demonstrated that the proposed technique performs significantly better comparing to analogues. As a demonstration of possible application, the prototype of context-sensitive advertising system has been implemented. This system is able to obtain the descriptions of goods relevant to found keyterms from Amazon online store. Several ways have been proposed also on how the information derived from Twitter messages may be utilized in different auxiliary services.
Abstract
Searching and storing large amounts of text data is a common problem in computer science, though it have been discussed for a long time. We introduce data structure for searching a set of string values and storing it on disk efficiently which is used for indexing XML data in Sedna XML DBMS. This paper describes algorithms for insertion, deletion and searching of variable-length strings in disk-resident trie structures. We also compare our implementation with existent B-tree implementation and show that proposed data structure in some cases occupies several times less disk space than B-tree does with the same search efficiency.
ISSN 2079-8156 (Print)
ISSN 2220-6426 (Online)
ISSN 2220-6426 (Online)