CDI Headlines Hot Spots Research Topics CDI Publications Television Radio Public Affairs Search
CDI Mission CDI Staff CDI Expertise Paid CDI Internships Support CDI
 
CDI Home
 
Nuclear Issues Home Page      

CDI Home
 
Hot Spots
 
CDI Research Topics
 
Defense Monitor
 
Weekly Defense Monitor
 
CDI Russia Weekly
 
Asia Forum
 
Video Documentaries
 
Radio Broadcasts
 
Nuclear
 
Missile Defense
 
Military Reform Project
 
Quadrennial Defense Review
 
Military Spending
 
Peacekeeping Citation Lists
 
European Defense
 
Aviation
 
Landmines
 
Child Soldiers
 
Public Affairs
 
About CDI
 
Support CDI
 
 
Nukes: A Lesson From Russia

Supporting Documentation

July 13, 2001
NOTE FROM BRUCE BLAIR:
In the interest of national security, research and media accuracy, and disclosure, the following reports, memos, and other exchanges among the principals involved in the MPC&A problems summarized in the Blair op-ed (“Nukes: A Lesson From Russia” in Washington Post, July 11, 2001, p. A19) are posted below. As an aside, the Russians with whom I have spoken conclude that the Microsoft server problems outlined below also reside in innumerable applications and could well adversely affect millions of users around the world in all public, government, and commercial sectors.

I have not posted some sensitive and confidential material given to me during email exchanges or interviews. Additional information derived from this material will be posted at a later date.

[The following synopsis of the problem is useful. BBlair]

From: Alexander N. Rumyantsev <anr@electronics.kiae.ru <mailto:anr@electronics.kiae.ru>>
Subject: Your request dated September 11, 2000
Date: September 14, 2000
Attn: Dr. Bruce G. Blair
President
Center for Defense Information

Dear Dr. Blair,

I got your E-mail with request to provide some information related to problems we are experiencing with Microsoft software. Due to my business schedule I was not able to answer it until now. Let me be reasonably brief.

1) Since 1994 'Kurchatov Institute' Russian Research Center (KI) as well as a number of research and industrial enterprises of Russian nuclear complex have been cooperating with the U.S. Department of Energy (DOE) National Labs in the area of strengthening nuclear material physical protection, control and accounting (MPC&A) in Russia. This program of cooperation, initially known as 'Lab-to-Lab MPC&A cooperation program' brought unprecedented positive results in this very sensitive area on national security concern within relatively short period of time. Its implementation has lead to significant improvement of MPC&A systems at a number of key enterprises of Russian nuclear complex and increase nuclear material security in Russia. I may add that it is hard to overestimate an importance of this timely program for national security of Russia and United States as well as for international security.

2) Among the most important factors influencing the overall security of nuclear material in Russia one is a development and implementation of modern computerized nuclear material accounting systems (CMAS) to be installed and put into operation at Russian nuclear enterprises possessing weapon-usable material.

3) Due to relative novelty of this task for many Russian nuclear enterprises still utilizing an obsolete manual book-keeping accounting systems, the U.S. DOE Los Alamos National Laboratory (LANL) considered as a leader in modern CMAS architecture and technology, proposed Russian partners to implement approaches, technologies and software, which were developed or selected by LANL in a course of development of so-called 'Local Area Nuclear Material Accounting System' (LANMAS), assigned to become a standardized CMAS for the U.S. DOE enterprises and National Labs with utilization of Client-Server architecture and highly integrated Microsoft software products.

4) The 'backbone' of any CMAS is a Database Management System (DBMS). Because CMAS are systems of national security and secrecy concerns, and due to expected long life span for accounting data in such CMAS (counted by tens of years), selection of the most appropriate DBMS is a very difficult and controversial issue. KI had significant experience in dealing with DBMS of various manufacturers. However, in a course of selection DBMS for KI site-wide CMAS decision was made to follow on LANL recommendations and to implement Microsoft SQL Server DBMS as a 'backbone' for KI CMAS. We considered LANL practical experience in LANMAS development as a proof of SQL Server reliability.

5) KI became the very first and still unique Russian nuclear enterprise which has managed to develop, to security certify and to put into trial mode of operation with confidential accounting data the KI site-wide CMAS (named KI-MACS). It happened in 1998. By the end of 1999 the KI-MACS system was installed at a number of Russian nuclear enterprises including 6 Russian Navy fresh fuel storage sites, Murmansk Shipping Company managing a fleet of Russian nuclear ice-breakers, and at the Mining and Chemical Combine (Zheleznogosrk city, former Krasnoyarsk-26).

6) However, KI-MACS operations was terminated in February, 2000 due to detection of very specific software flaw in Microsoft SQL Server in version 6.5. This software flaw is generating erroneous results without any diagnostics in a course of such operations with the Database which request to perform certain sorting (ordering) of records in record sets selected from the Database. Investigation of this software flaw conducted in cooperation with LANL, lead to conclusion that appearance of this software flaw depends on format and amount of data selected from the Database and on a type of hardware platform used. Immediate consequences of appearance of this software flaw is a violation of data integrity in the Database. Following on consequences are 'disappearing' nuclear material accounting data from an inventory. Such 'disappearing' may be detected for sure by manual verification of the Database against source accounting documents. No other technology is available.

7) Unfortunately, this software flaw was detected in both 'International' version of SQL Server v. 6.5 KI is using, and 'original' U.S. version. Microsoft did confirm a presence of such software flaw first detected by KI.

8) SQL Server in version 7.0 which was recommended by Microsoft for substitution of version 6.5, is considered as not having the same type of software flaw. However, at the end of July, 2000 KI has managed to detect a severe software flaw in version 7.0 a presence of which was confirmed by Microsoft. This flaw relates to Database data protection features and under certain conditions permits to get non-authorized access to the Database.

9) The said above means that both Russian and American sides has a very specific problem in CMAS operating software of Microsoft production.

10) Working with LANL, KI has developed so-called 'pragmatic' approach to overcome this problem. At the moment KI is completing development of a specific technology and software which should provide detection of yet discovered Microsoft software flaws and prevent violation of data integrity and data security in CMAS Databases developed with SQL Server in both versions 6.5 and 7.0. Upon completion this technology and sample software will be provided to LANL for distribution between the U.S. DOE sites concerned and will be provided to Russian enterprises utilizing Microsoft SQL Server DBMS. It is to be considered as a voluntary contribution of KI into area of U.S.-Russia cooperation in MPC&A.

11) Relatively poor quality of Microsoft SQL Server has created very serious problems in development and implementation of CMAS. As for Russian side, such quality of Microsoft software has delayed implementation of CMAS for at least one year not saying about financial and moral losses KI suffers. However, I believe, working together we are capable to overcome this problem.

12) The best we are waiting from the Microsoft, is to eliminate a source of detected SQL Server software flaws, to provide all U.S. DOE and Russian nuclear enterprises by error free copies of SQL Server and to develop some mechanism of interaction with customers which will provide reasonable assurance that such systems of national security and secrecy concern as CMASs will be 'privileged' customers of Microsoft. Concluding my brief presentation of this very specific problem to you, I would like to ask you:

- to consider this problem as a problem of political concern related to very sensitive area of cooperation between the U.S and Russia, and

- to take care about dissemination of this information due to threat of misunderstanding by people who are not well familiar with specifics of problems created by Microsoft software in nuclear material control and accounting.

Unfortunately, due to my business schedule I am not able to come to St. Petersburg on September 20-24, 2000 to meet with you. In case of any questions, please, do not hesitate to contact me.

Sincerely,
Alexander N. Rumyantsev, Ph.D.
KI Coordinator for MC&A Programs
Deputy director
Scientific and Technological Complex 'Electronics'
'Kurchatov Institute' Russian Research Center
7-(095)-196-9982 (voice), 7-(095)-196-4963 (fax)

 

[Alexander Rumyantsev was the lead investigator for the following report that was sent by Kurchatov to Los Alamos in February 2001. A short excerpted version below is followed by the full report. Bblair]

KI RRC Report No. 210.06-01/1
November 15, 2000

 

                APPROVED BY:
  Vice-president
  'Kurchatov Institute' RRC
   
  N.N. Ponomarev-Stepnoy

 

ADDITIONAL PROVISION FOR

DATA INTEGRITY AND DATA SECURITY

IN MICROSOFT SQL SERVER DATABASES

FOR CRUCIAL APPLICATIONS

 

Agreed by: Prepared by:
Director Deputy director
STC 'Electronics' STC 'Electronics'
'Kurchatov Institute' RRC 'Kurchatov Institute' RRC
G.V.Yakovlev A.N.Rumyantsev

 

ACKNOWLEDGMENTS

This report is based on results of intensive research, development and testing works performed by staff of the Division of Information Systems of the Scientific and Technological Complex 'Electronics' of the ’Kurchatov Institute’ Russian Research Center. Alexey V. Evstropov, Dimitry M. Artamonov, Olga A. Kamaeva, Tatiana A. Kamaeva, Andrey V. Korolev, Anatoly M. Pankratiev are to be especially noted. Valuable contribution to evaluation of detected MS SQL Server data integrity and data security problems was brought by staff of the U.S DOE Los Alamos National Laboratory including S. Peter Gary, Benny J. Martinez, Harry Mac Forehand, Jr., and by Barry Siskind from the U.S. DOE Brookhaven National Laboratory. Deep gratitude is expressed to all of them.

Trial operation of the KI-MACS at KI RRC was very positive until September-October, 1999 when KI RRC staff engaged into PIT activities began to report about some failures and strange functioning KI-MACS software. KI-MACS designers were unable to detect reasons for such troubles due to very random nature of such events - no systematic failures were detected. Intensive additional testing of KI-MACS application software core residing on the Server did not detect sources for reported failures in KI-MACS application software. However, results of especially developed tests aimed onto verification of SQL Server 6.5 performance did confirm the most worse expectations: treating relatively large record sets from the Database the Microsoft SQL Server in version 6.5 is capable to produce on a random basis absolutely unpredictable results leading to corruption of original accounting data in the Database in a course of following on treatment.

By February 16, 2000 a source of this troubles was detected. Especially developed tests did confirm that a source of random errors is an error in execution of the ‘SELECT’ with ‘ORDER BY’ (sorting by) statement by the Microsoft SQL Server in version 6.5, and such error is not provided by any SQL Server diagnostic. Evaluated mean value for frequency of appearance the said error is about 1.0e-03 per execution of ‘SELECT’ with ‘ORDER BY’ statement. Frequency of appearance of such error depends on format of data used as a search criteria in ‘WHERE’ clause of ‘SELECT’ statement, amount of data being satisfying search criteria and type of hardware platform. Highest failure rate was detected for platforms with CPU frequency below 200 Mh and above 400 Mh. Additional tests were developed in order to detect a systematic appearance of this SQL Server 6.5 software flaw. These tests were constructed in a such way that a presence of a flaw in the SQL Server 6.5 has been proved for sure. Microsoft did confirm a presence of this software flaw. This flaw has been filed by Microsoft as flaw No. SRX000403600845. Based on available information the problem has not been resolved yet (November 2000). Microsoft have proposed to substitute SQL Server in version 6.5 by version 7.0 in which KI RRC developed tests transferred to Microsoft, did not detect such problem.

Due to discovered and proved SQL Server 6.5 software flaw all operations of KI-MACS system at KI RRC as well as at Russian Navy sites, Murmansk Shipping Company, and Mining and Chemical Combine at Zhelesnogorsk, were suspended. Immediate consequence of this software flow is that over the time of operation a computerized material inventory in the Database is decreasing. Because of nature of this software flaw leading to undiagnosed corruption of original data in SQL Server Databases, all accounting data accumulated in the Databases were subject for manual verification against source accounting documents.

In a course of transition of KI-MACS application software core from version 6.5 to 7.0 and intensive testing of the modified KI-MACS, at the end of July, 2000 one more flaw has been detected in the SQL Server 7.0. This flaw has been recognized by the Microsoft and filed as flaw No. SRX000727603512. Principal modifications introduced by the Microsoft in SQL Server 7.0 which are relating to the data security and data protection in a Database, and presence of the said flaw, are considered as creating a direct threat to data security and data protection in the SQL Server 7.0 Databases.

 

 

FULL REPORT FOLLOWS:

 

KI RRC Report No. 210.06-01/1 November 15, 2000

APPROVED BY:
Vice-president
'Kurchatov Institute' RRC
N.N. Ponomarev-Stepnoy

 
 
 

ADDITIONAL PROVISION FOR

DATA INTEGRITY AND DATA SECURITY

IN MICROSOFT SQL SERVER DATABASES

FOR CRUCIAL APPLICATIONS

 

 

 

Agreed by: Prepared by:
Director Deputy director
STC 'Electronics' STC 'Electronics'
'Kurchatov Institute' RRC 'Kurchatov Institute' RRC
G.V.Yakovlev A.N.Rumyantsev

 

 

 

MOSCOW

2000

 

 

ABSTRACT

This reports has been prepared for implementation in collaborative efforts of the United States of America and the Russian Federation aiming to improve and strengthen a control of and accounting for nuclear material. It summarizes an experience and know-how gained by specialists of the ’Kurchatov Institute’ Russian Research Center in an area of design and development of ‘near-real-time’ computerized nuclear material accounting systems with implementation of Client-Server architecture and Microsoft software products including MS Windows NT v. 4.0, MS SQL Server in v. 6.5 and 7.0, MS Visual Basic v. 4.0 and 5.0, and MS Visual C++ v. 4.0. This report is intended to assist system designers and software specialists of both countries in providing the highest possible level of data integrity and data security in Databases of the computerized nuclear material accounting systems in spite of presence of software flaws in mentioned versions of SQL Server.

 

CONTENT
Page
ABSTRACT
2
ACKNOWLEDGMENTS
4
PREAMBULE
5
1. DATA INTEGRITY
7
1.1. Problem
7
1.2. Possible Solution of the Problem
8
1.2.1. Selection of record set in one-by-one sequence without cursors
9
1.2.2. Selection of record set in one-by-one sequence with cursors
10
1.2.3. Handling Transactions
12
1.2.4. Number of Cursors
12
2. SOME COMPATIBILITY PROBLEMS FOR SQL SERVER 6.5 AND
     7.0
12
2.1. Problems
12
2.2. DATALENGTH() function
12
2.3. System Tables
13
2.4. Cursor Declarations
14
2.5. Temporary Tables
14
3. DATA SECURITY
14
3.1. Problem
14
3.2. Possible Solution of the Problem
15
4. CONCLUDING REMARKS 16

 

ACKNOWLEDGMENTS

This report is based on results of intensive research, development and testing works performed by staff of the Division of Information Systems of the Scientific and Technological Complex 'Electronics' of the ’Kurchatov Institute’ Russian Research Center. Alexey V. Evstropov, Dimitry M. Artamonov, Olga A. Kamaeva, Tatiana A. Kamaeva, Andrey V. Korolev, Anatoly M. Pankratiev are to be especially noted. Valuable contribution to evaluation of detected MS SQL Server data integrity and data security problems was brought by staff of the U.S DOE Los Alamos National Laboratory including S. Peter Gary, Benny J. Martinez, Harry Mac Forehand, Jr., and by Barry Siskind from the U.S. DOE Brookhaven National Laboratory. Deep gratitude is expressed to all of them.

PREAMBULE

Since August 1994 in cooperation with the U.S. Department of Energy (DOE) Los Alamos National Laboratory (LANL) and within the frameworks of cooperative U.S.-R.F. Lab-to-Lab program on improvement of material protection, control and accounting (MPC&A) systems, the ‘Kurchatov Institute‘ Russian Research Center (KI RRC) has been developing and implementing a site-wide computerized nuclear material accounting system with the aim to improve nuclear material accountability and increase a level of nuclear material security. Such computerized systems related to national security issues are considered as systems of ‘crucial assignment’. They must be developed as extremely reliable man-machine systems. Key factors determining system reliability are quality of operating software environment created by Operating System (OS), Database Management System (DBMS) and Programming Systems (PS), and quality of functionally oriented Application Software Packages (ASP) be assigned to perform required system functionality.

With financial and intellectual support from the U.S. DOE and its National Laboratories the KI RRC has developed and, since 1998, has implemented a site-wide computerized nuclear material accounting system. Implementation of this system (named KI-MACS) has permitted to begin with the very first in the history of Russian nuclear complex an initial Physical Inventory Taking (PIT) for all nuclear materials located at facilities of the KI RRC. The KI-MACS system is the very first and still unique Russian made system, which has been security certified in Russian Federation to deal with classified nuclear material accounting data. Due to unique functionality the KI-MACS system was selected as a standardized system for Russian Navy nuclear reactor fuel, for the Murmansk Shipping Company managing the Russian Arctic fleet of nuclear ice-breakers, and as a standardized core of computerized accounting systems for a number of enterprises managed by the Ministry of atomic energy of Russian Federation. By the fall of 1999 the KI-MACS system has been installed at 6 Russian Navy sites, at the Murmansk Shipping Company and at the Mining and Chemical Combine at Zhelesnogorsk.

The KI-MACS system is a hardware and software complex which is based on implementation of PCs in a local secure network with Client-Server architecture, and which is performing near-real time material accounting. The KI-MACS system is fully integrated with various nuclear material measurement and bar code systems. The operating software environment has been configured by the operating system Microsoft Windows NT in version 4.0, Database Management System (DBMS) Microsoft SQL Server in version 6.5, Microsoft Visual Basic in version 4.0 and Microsoft Visual C++ in version 4.0. The source code of KI-MACS security certified application software core residing on the Server and providing KI-MACS functionality as well as information security, contains 5,296,975 characters of Transact SQL source code. This software includes a source code of 709 Stored Procedures, 20 Views, 145 Permissions, 77 Database Tables.

Selection of the Microsoft software products mentioned above and forming a ‘backbone’ of the KI-MACS, was made with taking into consideration a positive experience accumulated by the U.S. DOE Los Alamos National Laboratory (LANL) and significant progress achieved by LANL and other U.S. DOE enterprises in development and implementation of the Local Area Network Material Accountability System (LANMAS) being assigned as an unified and standardized nuclear material accounting system for the U.S. DOE National Laboratories and enterprises. The KI-MACS system is based on utilization the same operating software environment as the LANMAS and was designed to cover practically all expected material control, accounting and reporting needs for the most typical enterprises of the Russian nuclear complex.

Trial operation of the KI-MACS at KI RRC was very positive until September-October, 1999 when KI RRC staff engaged into PIT activities began to report about some failures and strange functioning KI-MACS software. KI-MACS designers were unable to detect reasons for such troubles due to very random nature of such events - no systematic failures were detected. Intensive additional testing of KI-MACS application software core residing on the Server did not detect sources for reported failures in KI-MACS application software. However, results of especially developed tests aimed onto verification of SQL Server 6.5 performance did confirm the most worse expectations: treating relatively large record sets from the Database the Microsoft SQL Server in version 6.5 is capable to produce on a random basis absolutely unpredictable results leading to corruption of original accounting data in the Database in a course of following on treatment.

By February 16, 2000 a source of this troubles was detected. Especially developed tests did confirm that a source of random errors is an error in execution of the ‘SELECT’ with ‘ORDER BY’ (sorting by) statement by the Microsoft SQL Server in version 6.5, and such error is not provided by any SQL Server diagnostic. Evaluated mean value for frequency of appearance the said error is about 1.0e-03 per execution of ‘SELECT’ with ‘ORDER BY’ statement. Frequency of appearance of such error depends on format of data used as a search criteria in ‘WHERE’ clause of ‘SELECT’ statement, amount of data being satisfying search criteria and type of hardware platform. Highest failure rate was detected for platforms with CPU frequency below 200 Mh and above 400 Mh. Additional tests were developed in order to detect a systematic appearance of this SQL Server 6.5 software flaw. These tests were constructed in a such way that a presence of a flaw in the SQL Server 6.5 has been proved for sure. Microsoft did confirm a presence of this software flaw. This flaw has been filed by Microsoft as flaw No. SRX000403600845. Based on available information the problem has not been resolved yet (November 2000). Microsoft have proposed to substitute SQL Server in version 6.5 by version 7.0 in which KI RRC developed tests transferred to Microsoft, did not detect such problem.

Due to discovered and proved SQL Server 6.5 software flaw all operations of KI-MACS system at KI RRC as well as at Russian Navy sites, Murmansk Shipping Company, and Mining and Chemical Combine at Zhelesnogorsk, were suspended. Immediate consequence of this software flow is that over the time of operation a computerized material inventory in the Database is decreasing. Because of nature of this software flaw leading to undiagnosed corruption of original data in SQL Server Databases, all accounting data accumulated in the Databases were subject for manual verification against source accounting documents.

In a course of transition of KI-MACS application software core from version 6.5 to 7.0 and intensive testing of the modified KI-MACS, at the end of July, 2000 one more flaw has been detected in the SQL Server 7.0. This flaw has been recognized by the Microsoft and filed as flaw No. SRX000727603512. Principal modifications introduced by the Microsoft in SQL Server 7.0 which are relating to the data security and data protection in a Database, and presence of the said flaw, are considered as creating a direct threat to data security and data protection in the SQL Server 7.0 Databases.

More over, a presence of the same problem in treatment of ‘SELECT’ with ‘ORDER BY’ statements was detected in SQL Server v. 7.0 by modified KI-MACS software in which additional data integrity checks were incorporated. However, evaluated mean value for frequency of appearance the said error is about ten times less (1.0e-04) in comparison with SQL Server v. 6.5.

In spite of significant differences between SQL Server v. 6.5 and 7.0, a decision was made to modify KI-MACS application software core in a such way which should provide complete insensitivity of the KI-MACS to the SQL Server version - either 6.5 or 7.0, - and practical elimination of negative consequences of software flaws in both version of SQL Server on data integrity and data security in SQL Server application Databases. The following sections of this report are presenting approaches, technology and software assigned to achieve the stated goals.

1. DATA INTEGRITY PROVISION

1.1. Problem

In relational Databases with data relationship of (1:N) and (M:N) type the most important requirement to the Database Management System (DBMS) is to provide assurance that all data satisfying certain criteria of relationship are properly treated. It means that if ‘N’ records in a specific table of relational Database are subject for treatment due to relationship with some record in some relational table, all of them must be retrieved by DBMS from the Database for certain treatment to be performed by application software. If in stead of required ‘N’ records only ‘X’ are retrieved (and ‘X’ <> ‘N’), and no warning diagnostics is provided by DBMS, the Database integrity is destroyed and such Database is out of meaningful utilization.

The following simplified test developed by KI RRC in Transact SQL, is proving an existence of this problem in MS SQL Server v.6.5. A table used for this test is system table ‘sysobjects’ which contains a list of references to stored procedures used as application software for the Database. This list contains a number of records with internally generated numeric 'id' from minimal ‘Nmin’ to maximal ‘Nmax’ and 'type' which equals 'P' (‘procedure’ type).

The task is to get the record of 'P' type with the lowest 'id' value which is Nmin. Trivial solution of this task is to find all records with 'type' = 'P' and 'id' exceeding some value which is less 'Nmin' and then to sort them out in descending order. The very first record in the sorted resulting list (results set) will be with 'id' = 'Nmax' - with the highest 'id' value. The very last record in the same list will be with 'id' = 'Nmin' - the lowest 'id' value.

By definition of SQL, an unique SELECT statement of local variable assignment type which looks like ‘SELECT @X = id’ where @X is a local variable, must return as a result of treatment of the generated list (results set) a value of 'id' which corresponds to 'id' of the very last record in the results set. And this assignment must be performed after completion of preparation of the results set containing all records which meet the WHERE clause and are sorted out in a prescribed sequence. The prescribed sequence is the most simple one - along numbers of ‘integer’ type.

The following test sample is confirming that the very last record in the results set is used for assignment of a value to the local variable:

1) Sample test 1.

DECLARE @X int, @T varchar (255), @R int
SELECT @X = id FROM sysobjects
WHERE id > 0 AND type = 'P'
ORDER BY id DESC
select @R = @@ROWCOUNT
/*** COMMENT: Printing our resulting value of @X and @R ***/
select @T = 'Resulting value of @X = ' + convert(varchar, @X)
PRINT @T
select @T = 'Number of records in data set @R = ' + convert(varchar, @R)
PRINT @T
GO

It has to be expected that exactly the same result would be obtained if in the WHERE in stead of statement 'id > 0' one is using any local variable with assigned value which equals zero (0), for instance, using the statement 'id > @X' where @X equals 0.

It means that exactly the same result must be obtained by executing the following statements:

2) Sample test 2.

DECLARE @X int, @T varchar (255), @R int
select @X = 0
SELECT @X = id FROM sysobjects
WHERE id > @X AND type = 'P'
ORDER BY id DESC
select @R = @@ROWCOUNT
/*** COMMENT: Printing our resulting value of @X and @R ***/
select @T = 'Resulting value of @X = ' + convert(varchar, @X)
PRINT @T
select @T = 'Number of records in data set @R = ' + convert(varchar, @R)
PRINT @T
GO

Executing this test 2, one can see that nothing similar to expected result is performed in that case in practice. This is the error in SQL Server 6.5.

However, if @X has a format which differs from ‘integer’, for instance, such as ‘decimal(20,0)’, one can get correct results running the following script:

3) Sample test 3.

DECLARE @X decimal(20,0), @T varchar (255), @R int
select @X = 0
SELECT @X = id FROM sysobjects
WHERE id > @X AND type = 'P'
ORDER BY id DESC
select @R = @@ROWCOUNT
/*** COMMENT: Printing our resulting value of @X and @R***/
select @T = 'Resulting value of @X = ' + convert(varchar, @X)
PRINT @T
select @T = 'Number of records in data set @R = ' + convert(varchar, @R)
PRINT @T
GO

In all tests 1, 2, 3 number of records in resulting data set is the same but values of @X are correct in tests 1 and 3 only.

More sophisticated tests conducted by KI RRC did confirm that execution of ‘SELECT’ with ‘ORDER BY’ statements by SQL Server v.6.5 ‘randomly’ fails depending upon format of data used in both SELECT and WHERE parts of statements, number of records in resulting data sets, and type of hardware used - CPU frequency, RAM volume and type of HDD used. Minimal size of data set with detected problems in execution of such statements was 5 records. Maximal size of data set achieved in a course of tests for detection these problems was about 100 ths. records. This flaw was detected with the highest frequency on PC with CPU 100-200 Mh and 400-500 Mh with RAM 32-64 Mb.

Evaluated mean value to get erroneous results in selection of data sets satisfying certain search criteria is about 0.001 per execution of a single ‘SELECT with ORDER BY’ statement.

1.2. Possible Solution of the Problem

The following are proposals by implementation of those one can decrease or even eliminate an influence of SQL Server v.6.5 flaw on data integrity in the Database. All of them are based on examination of SQL Server performance by check a number of records in resulting data set before real treatment and after. Their structure depends on techniques used for record selection - either without cursors or with cursors. All examples are presented for ‘sysobjects’ table in SQL Server Database for demonstration of technology only.

1.2.1. Selection of record set in one-by-one sequence without cursors

In stead of construction:

DECLARE @X int, @T varchar (255), @R int
select @X = 0
select @R = 0
GET_NEXT:
SELECT @X = id FROM sysobjects
WHERE id > @X AND type = 'P'
ORDER BY id DESC
IF @@ROWCOUNT <> 0
     BEGIN
     select @R = @R + 1
     GOTO GET_NEXT
     END
/*** COMMENT: Printing our resulting value of @R***/
select @T = 'Number of treated records in data set @R = ' + convert(varchar, @R)
PRINT @T
GO

the following is recommended:

DECLARE @X int, @Y int, @T varchar (255), @R int, @RC int, @R_Expected int
select @X = 0
SELECT @X = id FROM sysobjects
WHERE id > @X AND type = 'P'
select @R_Expected = @@ROWCOUNT
select @X = 0
select @R = 0
GET_NEXT:
SELECT @Y = id FROM sysobjects
WHERE id > @X AND type = 'P'
ORDER BY id DESC
select @RC = @@ROWCOUNT, @X = @Y
IF @RC <> 0
     BEGIN
     select @R = @R + 1
     GOTO GET_NEXT
END
/*** COMMENT: Comparison expected and real number of records in data set ***/
IF @R <> @R_Expected
     BEGIN
     select @T = ‘Error in number of records treated: Expected      = ‘ +
     convert(varchar, @R_Expected) + ‘ # Treated = ‘ +      convert(varchar, @R)
     PRINT @T
     RETURN
     END
ELSE
     BEGIN
     /*** COMMENT: Printing our resulting value of @R***/
     select @T = 'Number of treated records in data set @R = ' + convert(varchar, @R)
     PRINT @T
     END
GO

Running both tests one can see a difference in results.

1.2.2. Selection of record set in one-by-one sequence with cursors

In stead of construction:

DECLARE @X int, @T varchar (255), @R int,
@Fetch_Status int, @Fetch_Number int
select @X = 0
DECLARE
Record_List SCROLL CURSOR FOR
SELECT id FROM sysobjects WHERE id > @X AND type = 'P'
ORDER BY id ASC
select @R = 0
/*** Open CURSOR and define Number of Records ***/
OPEN Record_List
NEXT_RECORD:
FETCH NEXT FROM Record_List INTO @X
select @Fetch_Status = @@fetch_status
IF @Fetch_Status = 0
BEGIN
select @R = @R + 1
GOTO NEXT_RECORD
END
select @T = 'Case 1: Number of records selected and treated is ' + convert(varchar, @R)
PRINT @T
CLOSE Record_List
DEALLOCATE Record_List
GO

the following is recommended:

DECLARE @X int, @Y int, @T varchar (255), @R int, @R_Expected int,
@Fetch_Status int, @Fetch_Number int
select @X = 0
/** Define number of records by direct search **/
SELECT @Y = id FROM sysobjects WHERE id > @X AND type = 'P'
select @R_Expected = @@ROWCOUNT
DECLARE
Record_List SCROLL CURSOR FOR
SELECT id FROM sysobjects WHERE id > @X AND type = 'P'
ORDER BY id ASC
select @R = 0
/*** Open CURSOR and define Number of Records ***/
OPEN Record_List
select @Fetch_Number = @@CURSOR_ROWS /** Number of Rows in the Record Set **/
IF @Fetch_Number <> @R_Expected
BEGIN
select @T = 'Error: number in data set is ' +
convert(varchar, @Fetch_Number) +
', but expected number is ' + convert(varchar, @R_Expected)
PRINT @T
GOTO EXIT_OUT
END
NEXT_RECORD:
FETCH NEXT FROM Record_List INTO @Y
select @Fetch_Status = @@fetch_status
IF @Fetch_Status = 0
BEGIN
select @R = @R + 1
GOTO NEXT_RECORD
END
IF @R <> @R_Expected
BEGIN
select @T = 'Error: number of records selected is ' + convert(varchar, @R) +
', but expected number is ' + convert(varchar, @R_Expected)
PRINT @T
GOTO EXIT_OUT
END
select @T = 'Case 2: Number of records selected and treated is ' + convert(varchar, @R)
PRINT @T
PRINT '### Happy End ###'
EXIT_OUT:
CLOSE Record_List
DEALLOCATE Record_List
GO

It has to be noted that implementation of function COUNT(*) for determining a number of records in a set satisfying certain search criteria stated in WHERE part of SELECT statement, is not recommended. Direct use of @@ROWCOUNT global variable is considered as more reliable solution. Modified KI-MACS application software core in which the said above additional check capabilities were incorporated, is periodically detecting the same ‘SELECT with ORDER BY’ problems in SQL Server v.7.0. However, a frequency of appearance of such problem is about 10 times less - about 0.0001 per single execution of such statement on PC’s used at KI RRC for computerized material accounting system.

1.2.3. Handling Transactions

Implementation of the proposed Transact SQL constructions require to organize transaction handling mechanisms in a such way that all modifications of data sets selected by implementation of ‘SELECT’ with ‘ORDER BY’ statements should be located within the same transaction. In case of detection of discrepancies between expected and real number of treated records the whole transaction should be rolled back and execution of the task should be repeated. Corresponding restart functionality is to be provided in both application software and data structures.

1.2.4. Number of Cursors

Base on lessons learned a number of cursors be opened for treatment of data sets forming a single logical transaction, should not exceed one.

2. SOME COMPATIBILITY PROBLEMS FOR SQL SERVER 6.5 AND 7.0

2.1. Problems

Due to innovations introduced by Microsoft in SQL Server v. 7.0, this software product is only partially compatible with previous SQL Server v. 6.5. Detailed description of many incompatibilities is presented in accompanying SQL Server v. 7.0 document ‘Microsoft SQL Server. Introduction. SQL Server, including OLAP Services’.

Many of innovations are very positive such as elimination of needs to perform manual fragmentation and management of a disk space. Remarkable is a short note on page 15 of the said above document: ‘Earlier versions of SQL Server employed no more than one index per table in a query’ as a reminder to Database designers that increase of a number of indexed data elements (column names) for a table in previous versions of SQL Server was practically meaningless from point of view of increasing SQL Server productivity. Documentation for SQL Server 6.0 and 6.5 does not mentioned this peculiarity of ‘earlier’ versions.

However, there are a number of additional compatibility problems which are not covered by the said above document. Some of them are presented below.

2.2. DATALENGTH() function

No problems in use of DATALENGTH(‘string’) function for definition of length for variable length string of varchar() type were detected for SQL Server v. 6.5.

However, using this function in SQL Server v. 7.0 one have to be prepared to deal with erroneous results - real length is sometimes less than defined by the function, - if the string in question is passed as a parameter through a number (two and more) of sequential calls to procedures.

For instance, if data treatment process is organized as presented below - stored procedure ‘SubA’ assigns certain value to variable length string @Text and define its length @L, then calls stored procedure ‘SubB’, which in turn calls stored procedure ‘SubC’ where a length of @Text is defined once more:

/*** Body of stored procedure ‘SubA’ ***/

DECLARE @Text varchar(255), @L int, ...

Select @Text = ‘........’ /*** Some text of certain length is to be stated here ***/
Select @L = DATALENGTH(@Text) /*** Initial length is defined ***/
...
EXEC SubB ..., @Text, @L, ...

/*** Body of stored procedure ‘SubB’ ***/
CREATE PROCEDURE SubB ..., @Text varchar(255), @L int, ...
.....
EXEC SubC ..., @Text, @L, ...

/*** Body of stored procedure ‘SubC’ ***/

CREATE PROCEDURE SubC ..., @Text varchar(255), @L int, ...

AS
DECLARE
@New_L int
...
select @New_L = DATALENGTH(@Text)

IF @New_L <> @L
BEGIN
PRINT ‘Length of @Text has been changed’
RETURN
END.

than sometimes one can get a message ‘Length of @Text has been changed’

If definition of real length of variable length string is crucial for application software, the most reliable solution for this problem is to put at the end of string in a course of its development some special symbol like ‘#’, and than to define the real length by direct search for this symbol and calculating its position in the string.

2.3. System Tables

Due to implementation of ‘unicode’ format for a number of columns in system tables such as ‘sysusers’ and ‘syslogins’, which may be used for user’ identification instead of statements like that:

SELECT sysusers.uid “UserID”,
sysusers.name “UserName”,
sysusers.suid “LoginID”,
ISNULL(master.dbo.syslogins.name, ‘ ‘) “LoginName”
FROM sysusers, master.dbo.syslogins
WHERE sysusers.suid > 0 AND master.dbo.syslogins.suid = sysusers.suid

the following is recommended for both SQL Server v. 6.5 and 7.0:

SELECT sysusers.uid "UserID",
convert(varchar(128),sysusers.name) "UserName",
sysusers.suid "LoginID",
convert(varchar(128), ISNULL(master.dbo.syslogins.name,'')) "LoginName"
FROM sysusers, master.dbo.syslogins
WHERE sysusers.suid > 0 AND master.dbo.syslogins.suid = sysusers.suid

2.4. Cursor Declarations

In SQL Server v. 6.5 an assignment of certain value to a variable used in ‘SELECT’ statement for a ‘CURSOR’ may be performed after declaration of the ‘CURSOR’ but before opening cursor by ‘OPEN’ statement.

In SQL Server v. 7.0 all assignments for all variables used in ‘SELECT’ of ‘CURSOR’ statement must be performed before declaration of the ‘CURSOR’.

2.5. Temporary Tables

Local temporary tables created by statements like ‘CREATE TABLE #Test’ are supposed to belong to the stored procedure which creates it, and to be dropped at the end of execution of the stored procedure in which they have been created. Dropping is initiated either by execution of statement like ‘DROP TABLE #Test’ or by exit from the stored procedure where temporary table was created.

However, if a number of end-users requesting services provided by the same set of stored procedures in which temporary tables are created, used and then dropped, exceeds one then sometimes some of the temporary tables are not dropped thus preventing creation of temporary tables with the same name by the same concurrently used stored procedures. This software flaw has been detected in both SQL Server v. 6.5 and 7.0. However, in SQL Server v. 7.0 frequency of such event is higher in comparison with SQL Server v. 6.5.

It is recommended NOT to use any temporary tables and substitute them by ordinary tables in which currently used stored procedure create (add) and, at the end of execution, delete all records (rows) this procedure is required. As a key for such record set some user ID may be used providing unique identification for records to be created and then deleted from the table for a given user in the call to the given stored procedures.

3. DATA SECURITY PROVISION

3.1. Problem

SQL Server v.6.5 is provided by two different data security mechanisms - so-called ‘integrated security’ in which all end-user authentication is performed by Windows NT authentication mechanism with following on utilization of ‘trusted connection’ with SQL Server, and so-called ‘standard security’ which provides additional to and relatively independent from Windows NT authentication capabilities for Database end-users. In case of implementation of ‘standard security’ the end-user authentication scheme presents an ‘AND’-type logic of end-user authentication: Windows NT AND SQL Server. The third authentication scheme for SQL Server 6.5 - so-called ‘mixed security’, - is performing end-user authentication with use of ‘OR’ logic - if there is no explicitly stated utilization of ‘standard security’ an end-user is practically free to select either Windows NT authentication only, or to perform one more Login with password for SQL Server. It is a reason not to account for the ‘mixed security’ as for the third end-user authentication mechanism. Implementation of ‘standard security’ be supplemented by corresponding administrative measures as well as end-user identification and check mechanism incorporated into SQL Server application software, was considered as sufficient to provide data security required in case of treatment of highly confidential nuclear material accounting data.

However, SQL Server v. 7.0 has no ‘standard security’ capabilities. In addition to that SQL Server v.7.0 has a very specific software flaw detected in its Login mechanism by KI RRC tests. It has been learned that if System Administrator (SA) has no password (blank field) in SQL Server 7.0, then everybody may come as SA with all SA rights if one calls, for instance, the 'SQL Query Analyzer', then select 'Use SQL Server authentication' and type in the field 'Login Name' the combination of symbols 'SA;' - letters S and A followed by semicolon. In this case one will get successful 'Login'. In means that SQL Server 7.0 can not properly identify a difference between user names 'SA' and 'SA;' as Windows NT does. Nothing similar has been detected in SQL Server 6.5. From point of view of data security it may mean that certain combinations of symbols in 'Login name' are reserved for unauthorized access to the Database with SA rights to deal with data. As it was mentioned above, this flaw has been filed by Microsoft.

The most important feature of data security mechanism is an ability to provide for sure unique identification for any end-user. Any end-user who are trying to interact with the Database, must be uniquely identified. Introduction into SQL Server v.7.0 a built-in System Administrator Group, the members of which may act under the same ‘SA’ Login name and under the same System and Database ID’s leads to direct violation of the most important rule to be observed in data security policy - absolute requirement to provide unique identification of end-user trying to interact with the Database.

3.2. Possible Solution of the Problem

Solution of this problem equally applicable for both SQL Server v.6.5 and 7.0 has been developed and incorporated into KI-MACS software in the current version 5.0.

The most important details of this mechanism are presented in the KI-MACS documentation ’KI-MACS. Guidelines for information security’.

This document is a part of KI-MACS documentation and may be provided in a course of KI-MACS installation at the site.

3. CONCLUDING REMARKS

Due to detection of MS SQL Server software flaws preventing continuation of trial operations of KI-MACS at KI RRC as well as at a number of Russian nuclear enterprises, KI-MACS designers and programmers have modified the KI-MACS application software core residing on a Database Servers. Basic provisions for performed modifications are presented in this report.

Modified version of KI-MACS application software core in v. 5.0. includes over 800 Transact SQL stored procedures, 140 relational tables, 19 views and 170 permissions to execute stored procedures by 10 end-user functionally different application interfaces residing on Workstations and developed with use of Visual Basic v.4.0 and 5.0, and Visual C++, v.4.0. Length of Transact SQL source code exceeds 6,5 mln bytes. After completion of intensive testing, the modified KI-MACS software was transferred in November, 2000 for additional data security certification to the Russian State Technical Commission under the President of Russian Federation.

Among many lessons learned in a course of evaluation of reasons and consequences of events happened with KI-MACS, one should be especially noted. Taking into consideration basic provisions of probabilistic risk evaluation approach, it may be stated that the most probable source of detected operating software problems is the so-called ‘common fault failure’ - implementation of functionally different and very complex operating software products produced by the same manufacturer (Microsoft) with probable utilization of not declared functionality of these products, first of all, in operating system Windows NT. Any software product sooner or later becomes obsolete and needs to be substituted by advanced products. In a course of follow on development of next generation of computerized nuclear material accounting systems much more care should be taken about selection of software products forming an operating environment for such systems of national and international security concern.

END OF REPORT

 

[The following emails involving Kurchatov, Los Alamos, Microsoft and other parties illuminate various aspects of the problem and the reactions of various people/organizations. BBlair]

A. From Rumyanstev to CP (July 25, 2000):

Please, consider this E-mail is a continuation of the previous one (dated July 24, 2000) with preservation of section numbering: 6) In a course of the 41-st INMM Annual Meeting (July 17-21, 2000, New Orleans, Louisiana) I was requested by both Peter Gary (LANL) and Parker O'Shell (DOE HQ, who is supervising all U.S. DOE National Lab activities related to cooperation with Kurchatov Institute and this week is visiting Kurchatov Institute) to have a meeting with two representatives of General Accounting Office (GAO). The first one was Julie Hirshen (she is a Senior Evaluator, GAO San Francisco Office, Tel: (415) 904-2290, Fax: (415) 904-2111, E-mail: hirshenj.sfro@gao.gov <mailto:hirshenj.sfro@gao.gov>). The second one was a young gentlemen from the GAO Washington Office but, unfortunately, at the moment I am not able to find his ID card. Meeting occurred on July 18, 2000 (afternoon) with presence of both GAO representatives, Peter Gary and Parker O'Shell. It lasted for about 3 hours. Both GAO representatives had been informed about a problem in Microsoft SQL Server software but were eager to learn it from the first hands. I told them the story with explanation of inevitable consequences for a computerized material inventory due to detected SQL Server software flaw - the inventory is always decreasing over a time due to random appearance of such flaw. Both made a lot of hand writings. Peter Gary and Parker O'Shell helped me in explanation of the most complex issues when my professional jargon created some difficulties in understanding for GAO representatives. I was not asked about your involvement in that case but as I understood, GAO representatives were informed about. No conclusion or final statement was made by them. They just collected facts and opinions. They are going to visit Kurchatov in September, 2000 as members of GAO team evaluating Kurchatov performance in contracts with the U.S.DOE National Labs.

7) Peter Gary (LANL) who is the US leader in the Joint US/Kurchatov Project Team, told me he is still keeping money (about $40,000) he requested form DOE HQ in March, 2000 in order to finance Kurchatov staff efforts to overcome the SQL Server problem and to restore KI-MACS functionality. In spite of our current financial difficulties I refused this proposal in March, 2000 because of two reasons: a) it is not reasonable to ask DOE to pay for overcoming a problem developed by poor quality Microsoft software product, and, the most important, b) proposed funding is insignificantly small in comparison with moral and financial losses for Kurchatov and, by the way, for the U.S. DOE. We have managed to develop and implement a specific technology for verification of data and application software integrity in the SQL Server Database, for detecting SQL Server flaws, and to modify KI-MACS application software in a such way that at present the KI-MASC system safely operates (test data only) on both SQL Server in versions 6.5 and 7.0. These works were financed by Kurchatov only. However, during the said INMM meeting Peter Gary asked me to reconsider my previous 'NO' to his proposal. He is eager to provide Kurchatov by the said above $40K in a form of LANL-KI contract which may be titled as 'Development and implementation of data integrity verification technologies for SQL Server Databases used in a computerized material accounting systems'. I told him it must be carefully evaluated and I will inform him about Kurchatov answer later on. Today I have discussed this issue with Nicolay Nicolaevich and I was told to present this case to you and ask your advice. My evaluation is as follows: a) proposed $40K is a tiny fraction of a real cost for 'know-how' on providing data integrity verification technology for SQL Server Databases we are possessing, b) it may be interpreted as a 'bribe' from LANL and the U.S. DOE with the aim to keep 'mouth closed', and c) an overall scale of moral and financial losses due to discovered software problem as well as imaginary or real threats to national and international security is far exceeding proposed $40K. What is your opinion about this case and your advice on how Kurchatov has to act?

With best regards,
Alexander


B. From Rumyantsev to CP (July 31, 2000):

1) Since my last E-mail (July 25, 2000) a number of events related to the Microsoft SQL Server story happened. However, all of them are connected with the newest SQL Server in version 7.0. Attachment to this E-mail contains copies of my E-mail to Los Alamos (July 26, 2000) and Los Alamos response (July 28, 2000) provided by a copy of E-mail from Microsoft to LANL.

2) A new and very specific flaw in SQL Server 7.0 has been recently detected by Kurchatov. Microsoft has confirmed a presence of the flaw and filed it under Ref. No. SRX000727603512 (see attached copies of E-mails).

3) To my opinion such flaw is much more dangerous than the previously detected flaw in 'ORDER BY' statements. The last one in both SQL Server 6.5 and 7.0 is corrupting data in the Database. But, once learned about it, we have developed a specific data integrity verification technology which permits us to run safely our KI-MACS system on both SQL Server 6.5 and 7.0. However, the first one is an evidence of very specific and dangerous gaps in the SQL Server 7.0 data security and data protection mechanisms.

4) In order to evaluate it, let me describe some important SQL Server data security and data protection features. The so-called 'System Administrator' (SA) in SQL Server is an unique person who has all rights to do everything in the Database. No data security and data protection mechanism exists in SQL Server against actions of SA. It means that access to a Database as SA must be checked and verified by all means possible. Any user including all Database users, who is not SA, must not be provided by even theoretical opportunities to simulate SA.

5) In SQL Server 6.5 three schemes for user authentication (except SA) are used: 'Trusted connection', 'Mixed security' and 'Standard security'. 'Trusted connection' means that any registered Windows NT user is considered as SQL Server user. 'Mixed security' means that both Windows NT and SQL Server authentication schemes are applied and user is free to select one of them to access a Database. 'Standard security' uses SQL Server's own login validation process for all connections. To log in to a SQL Server 6.5, each user must provide a valid and unique login ID and password. Implementation of 'Standard security' means that in order to perform unauthorized access to a Database an intruder must simulate both Windows NT AND (let me underline it) SQL Server 6.5 login ID and passwords. A probability for intruder to succeed is a product of probability to simulate Windows NT login ID and password, and probability to simulate SQL Server 6.5 login ID and password. In our computerized nuclear material accounting KI-MACS system which has been security certified in Russia to deal with up to 'Top Secret' data, the only 'Standard security' is implemented.

6) In SQL Server 7.0 some 'enhancements' in data security and data protection have been introduced. As it is said in the documentation on SQL Server 7.0 'The security architecture is better integrated with Windows NT and provides increased flexibility' (see 'Microsoft SQL Server. Introduction' , p. 28). In stead of three data security modes the only two have been left in version 7.0 but were modified: 'Windows NT Authentication Mode' which looks like the 'Trusted connection', and 'Mixed Mode' which looks like 'Mixed security' in SQL Server 6.5. When we discussed this issue with LANL (March-April, 2000), a Microsoft specialist on request by LANL explained in written (I have a copy of this explanation done as E-mail to LANL) that SQL Server 7.0 'Mixed Mode' in version 7.0 is practically the same as a 'Standard security' in version 6.5. We have checked it. It is not true. My evaluation of the case described in my E-mail to LANL as of July 26, 2000 (see Attachment) is different - 'From point of view of data security it may mean that certain combinations of symbols in 'Login Name' are reserved by Microsoft for unauthorized access to the Database with SA rights to deal with data.'

7) Thus we have very specific situation:

a) SQL Server 6.5 contains a flaw recognized by the Microsoft; until now the Microsoft has not been able to find a source of this flaw which corrupting data in the Database thus preventing use of 6.5 in industrial applications without implementation of a specific data integrity verification technology we have developed; however, the data security and data protection mechanisms in 6.5 are sufficient to implement 6.5 for treatment of highly classified data as it was proved by independent evaluation performed by Russian Gostechcommission which provided us by security certificate for our KI-MACS system be operated with SQL Server 6.5; AND

b) SQL Server 7.0 being considered by the Microsoft as 'error free' at least in relation to simplified tests for 'ORDER BY' statements developed by Kurchatov Institute and provided to the Microsoft through LANL, contains a flaw being recognized by Microsoft; presence of the said flaw practically eliminates ANY data security in SQL Server 7.0 Databases; everybody who runs SQL Server 7.0, must know about such problem we recently managed to detect and prove.

8) I believe you can evaluate presented above. I recall that in accordance with the U.S. Presidential Directive No. PDD-63 dated May 22, 1998 (with reference to the Russian newspaper 'Independent Military Survey', No. 24, 2000) the U.S. governmental agencies as well as private companies must take care about providing the most secure conditions for storage and treatment of data considered significant for national security. It is hard to believe that nobody in Microsoft is familiar with this document. I believe the U.S. DOE (as LANL a week ago) is unaware about the problem described above.

9) To-day we discovered one more problem in data security provided by SQL Server 7.0, which relates to possibility for intruders to simulate SA access over networks. I sent E-mail to LANL asking to evaluate the case and ask Microsoft. My guess is either it is a result of our ignorance about SQL Server 7.0 security functionality (I can not exclude such option), or this is an additional flaw being incorporated into the so-called International version of SQL Server 7.0 we are using, or it is one more Microsoft flaw in both International and original versions. Let us wait with this additional case until completing evaluation of this flaw by LANL and Microsoft. However, this additional case may or may not add some details to the picture presented above without changing the picture as a whole.
I will keep you informed.
With best regards,
Alexander
ATTACHMENTS: the said above copies of E-mails:
/******* First E-mail from Kurchatov to LANL *******/
To: bjmartinez@lanl.gov
Cc: pgary@lanl.gov , hforehand@lanl.gov
Forehand, Jr.>, siskind@bnl.gov
From: anr@electronics.kiae.ru
Subject: SQL Server 7.0 - two more problems
Date: July 26, 2000
Benny,
In addition to previously detected problems in providing information security for the KI-MACS system due to differences in information security mechanism for SQL Server 7.0 and SQL Server 6.5, the following is to be noted:

1) We learned that under specific conditions the stored procedure execution permission checks in SQL Server 7.0 do not work properly and they allow access when access is forbidden. Fortunately, it was recently detected by Microsoft and you may get a fix from the WEB-site of the Microsoft 'Product Support Service' dated July 07, 2000 under the title: 'FIX: Temporary Stored Procedures in SA Owned Databases may Bypass Permission Checks When You Run Stored Procedures'. We were lucky to detect it in a course of on-going security certification of KI-MACS system and pleased to get timely response from Microsoft.

2) We learned that if SA has no password (blank field) in SQL Server 7.0, then everybody may come as System Administrator (SA) with all SA rights if you call, for instance, the 'SQL Query Analyzer', then select 'Use SQL Server authentication' and type in the field 'Login Name' the combination of symbols 'SA;' - letters S and A followed by semicolon. You will get successful 'Login'. In means that SQL Server 7.0 can not properly identify a difference between user names 'SA' and 'SA;'. Nothing similar is detected in SQL Server 6.5. As it happened in February, 2000, my first guess is this occurs in International version of SQL Server 7.0 we are using. From point of view of data security it may mean that certain combinations of symbols in 'Login Name' are reserved by Microsoft for unauthorized access to the Database with SA rights to deal with data. May I ask you to check presented in section 2) with original version of SQL Server 7.0 and ask Chad Mattox from Microsoft (MCSE, SQL Support Professional, (704) 582-8961, E-mail: chadmat@microsoft.com ) to evaluate this case.
Thank you,
Alexander

/******* LANL Response to Kurchatov *******/

From: Benny J. Martinez mailto:bjmartinez@lanl.gov>>
To: 'Alexander Rumyantsev' mailto:anr@electronics.kiae.ru>>
Cc: Peter Gary mailto:pgary@lanl.gov>>; Mac Forehand mailto:hforehand@lanl.gov>>; Barry Siskind mailto:siskind@bnl.gov>>
Subject: FW: Email for Case SRX000727603512
Date: Friday, July 28, 2000 7:49 PM
Alexander,
Microsoft has confirmed that SQL Server 7.0 strips out the ";" anywhere in the LoginID. SQL Server 6.5 does not allow ";" in the LoginID and notified you if entered it. It is still unclear what Microsoft is going to do about it. I will keep you posted.
Benny
--------------------------------------------------------------------------------------------

-----Original Message-----
From: Rand Boyd [SMTP:randb@MICROSOFT.com]
Sent: Friday, July 28, 2000 9:22 AM
To: 'bjmartinez@lanl.gov'
Subject: Email for Case SRX000727603512

******* The following is an email for an incident from Microsoft Corp.
******* So that your reply is added to the case, please forward your
******* response to email address COMPMAIL@MICROSOFT.COM
******* and place your text after the keyword MESSAGE: below.
******* Please delete all other text above & below the keywords
******* CASE_ID_NUM: SRnnn & MESSAGE: .
******* Thank you.

CASE_ID_NUM: SRX000727603512

MESSAGE:

********************** The message for you follows ************************

Benny,
Per our conversation:
It appears that the ";" in "sa:" is being stripped off before the login id gets sent to SQL Server. I do not know if it is occurring in the application or in the ODBC layer. My thinking is the ODBC layer. I am not sure if this is expected behavior or not. Books on line indicates that any character except and "\" can be used in a login id. However SQL Server 6.5 does not allow a ";" in the login id. So I am not sure where the real problem lies. Either way a ";" cannot be used in a login id.
We are interested in any feedback you might have about the service you received on this incident. You can send feedback to Microsoft Management at mailto:managers@Microsoft.com?subject=DSSQLFB_Feedback&body=Rue
%20Moody <mailto:managers@Microsoft.com?subject=DSSQLFB_Feedback&body=Rue
%20Moody> or directly to my manager, Rue Moody, at ruem@Microsoft.com . If you don't use the enclosed mailto, make sure the keyword DSSQLFB_Feedback is in the title or body of messages sent to managers@microsoft.com <> . This will assure your message is routed quickly and accurately.
Sincerely,
Rand Boyd
(469) 775-7272

***********************************************************************

 

C. From Rumyantsev to CP (Aug. 3, 2000):

1) We got Microsoft response about our recent 'discovery'. All relevant E-mails -TO- and -FROM- are in the annex to this E-mail. I will not repeat conclusions presented there.

2) The most important general conclusion is that SQL Server 7.0 provides potentially less secure environment than 6.5. In other words, in stead of explicit two information security barriers in 6.5 (Windows NT user authentication be managed by Windows NT domain administrator (DA) and independent SQL Server user authentication be managed by SQL Server Database System Administrator (SA) - 'two man rule' to be strictly observed in information systems of security and secrecy concern), created by means of so-called 'Standard Security', the SQL Server 7.0 provides the only one barrier be managed by DA. SA may still manage low level users of SQL Server who are not users with administrative privileges in Windows NT. However, without sufficient knowledge about these SQL Server 7.0 features and without additional efforts, the SA is practically helpless to prevent an intrusion into the Database for such Windows NT users who, by the way, by default are acting under 'SA' ID which provides a 'cover' for unauthorized access. 3) Because DOE sites which (if any) are implementing SQL Server 7.0 to run LANMAS or similar systems, may have no idea about such information security features in SQL Server 7.0 and a presence of a flaw the KI has detected and Microsoft confirmed, I believe this is a time to inform them about the whole picture as it is. Due to timely discovery of the said security features in version 7.0, Kurchatov and other Russian nuclear sites utilizing SQL Server, are in relative information safety. I have no idea how it looks from the DOE point of view. But at least DOE is to be aware about.

4) It seems to me we have an almost complete picture for the Russian side. We have to modify KI-MACS system making it insensitive to detected and not yet detected Microsoft flaws and information security gaps in SQL Server, to perform additional Russian state security certification and to introduce KI-MACS into operations at all sites where it has been or will be installed. Now we know how to do it, and where Microsoft 'traps' are located. Kurchatov may help others to overcome the problem.

5) Recently I was told by some officials from the Russian State Technical Commission (GosTechCommission) under the President of RF (GosTechCommission is the highest Russian State Agency responsible for information security in Russia), who are involved in the on-going additional security certification of KI-MACS system, that the whole story looks like an intentional action of the Microsoft against national security of both the U.S. and R.F. I told them I believe it is not. However, this story is a very sad story for both sides.

6) In a course of INMM Annual Meeting in New Orleans I was told by representatives of Nuclear Assurance Corporation (NAC International), which is operating the Nuclear Materials Management and Safeguards System (NMMSS) for the DOE and NRC, that its current version is based on FoxPro Database Management System (DBMS) (to my opinion - very obsolete but sufficiently reliable). Based on results of evaluation the NAC has recently completed, the next generation of NMMSS will be developed on the Oracle DBMS but not on Microsoft SQL Server.

7) I believe the story is coming to the 'Happy End'. But I have no idea that 'Happy End' means except restoration of KI-MACS functionality and operating status we are doing. No additional discoveries of flaws and gaps in Microsoft SQL Server to be expected every day, can change the picture - selection of the Microsoft SQL Server as a backbone for computerized nuclear material accounting systems was a big error for both sides. But we have to overcome this problem with positive results as both sides managed to overcome much more significant problems in the past creating their nuclear potentials.
With best regards,
Alexander
ANNEX
E-MAIL COPY No. 1

##################

To: bjmartinez@lanl.gov Cc: pgary@lanl.gov , hforehand@lanl.gov , siskind@bnl.gov From: anr@electronics.kiae.ru
Subject: SQL Server 7.0 - two more problems to the previously detected
Date: July 31, 2000

Benny,

Thank you for evaluation of SQL Server 7.0 problems indicated in my E-mail dated July 26, 2000 and transferring copy of the Microsoft response. Microsoft response is disappointing. However, there are two more problems in addition to the previously detected (numbering scheme continues the previous one in my E-mail as of July 26, 2000):

3) We learned that if SA has no password (blank field) in SQL Server 7.0, then everybody may come as System Administrator (SA) with all SA rights if you call, for instance, the 'SQL Query Analyzer', then select 'Use SQL Server authentication' and type in the field 'Login Name' the combination of symbols 'SA ' - letters S and A followed by blank field (in stead of semicolon as it was used in test (2) presented in my previous E-mail). You will get successful 'Login'. In means that SQL Server 7.0 can not properly identify a difference between user names 'SA', 'SA;' and 'SA '. Nothing similar is detected in SQL Server 6.5.

4) We learned that even in case when SA has valid password (non-blank field) in SQL Server 7.0, then everybody may come in stead of System Administrator (SA) with all SA rights. To do so, you have to be registered as an authorized Windows NT user of a domain consisting the domain Windows NT Server (domain controller) and a number of Client Computers (Workstations) with an authorized access to any of them. Each Workstation contains SQL Server 7.0 with corresponding Database. Then you should call from the given Workstation the 'SQL Query Analyzer' for any Database residing on any other Workstation (in which you are not registered as a SQL Server user), then select 'Use SQL Server authentication' and clear up all symbols from both fields 'Login Name' and 'Password' (it means there are no any data entered in these fields - no login ID and no password). Pressing 'OK' you will get successful 'Login'. Then you may do everything like SA and under SA ID. To verify this you may run a query like presented below:
DECLARE
@UID int,
@Text varchar(255)
select @UID = USER_ID()
select @Text =
'This is ID under which you are registered: ' + convert(varchar, @UID)
PRINT @Text
The result is that the user not being authorized to deal with the Database has been identified as SA with @UID = 1 and provided by all SA rights to deal with data. We got these frustrating results in our Navy training class where we are running 10 SQL Server 7.0 Databases. Nothing similar has been detected in SQL Server 6.5 we used for the same training facility with the same number of Databases.
May I ask you to check presented in section 3) and 4) with original version of SQL Server 7.0 and ask somebody from Microsoft to evaluate these cases?
Thank you,
Alexander
E-MAIL COPY No. 2

##################

From: Benny J. Martinez mailto:bjmartinez@lanl.gov>>
To: 'Alexander Rumyantsev' mailto:anr@electronics.kiae.ru>>
Cc: 'Peter Gary' mailto:pgary@lanl.gov>>; 'Mac Forehand' mailto:hforehand@lanl.gov>>;
'Barry Siskind' mailto:siskind@bnl.gov>>
Subject: FW: Email for Case SRX000727603512
Date: Tuesday, August 01, 2000 11:44 PM
Alexander,
Here is Microsoft's response, can you give me any more information on the second part?
Benny

-------------------------------------------------------------------------

-----Original Message-----
From: Rand Boyd [SMTP:randb@MICROSOFT.com]
Sent: Tuesday, August 01, 2000 9:52 AM
To: 'bjmartinez@lanl.gov'
Subject: RE: Email for Case SRX000727603512
This first scenario does not surprise me. ODBC strips off trailing spaces so the space after sa does not get passed to SQL Server. This is no different than 6.5 except that the tools in 6.5 used DB-Library and not ODBC. It is true that if sa has no password everyone who is aware of the sa account can connect as sa. That is why the sa password should be changed immediately after installation.
The second scenario I have not seen and will have to try an repro it to comment on it. When you say "authorized access to any of them" what type of access are we talking about? Are they an administrator or user? If they are an administrator then they have sa privilege with SQL Server by default as a member of the builtin\admininstrators group. This group did not exist in 6.5. Also if the login id and password boxes are left blank the client utilities default to NT authentication. This is also the way 6.5 worked.
Rand
E-MAIL COPY No. 3

##################

To: bjmartinez@lanl.gov Cc: pgary@lanl.gov , hforehand@lanl.gov , siskind@bnl.gov
From: anr@electronics.kiae.ru
Subject: Re: FW: Email for Case SRX000727603512
Date: August 02, 2000

Benny,
Thank you for E-mail dated August 01, 2000. More information about the second part is presented in an annex to this E-mail. I ask you to provide the annex to the Microsoft.
The main conclusion from evaluations of the previously presented problems with SQL Server 7.0 is as follows: moving from SQL Server 6.5 to 7.0 and trying to provide KI-MACS operations on both, KI must redesign its own data security mechanism incorporated into KI-MACS system in order to restore an ability to track and control the activities of individual users by means of SQL Server built-in functions. This is a precondition for information security certification of KI-MACS system with SQL Server 7.0.
An additional conclusion is to be made: present Microsoft policy on providing information data security is just opposite to the current Russian information security regulations and trends in their developments.
Thank you,
Alexander
ANNEX
<>
-----Original Message-----
From: Rand Boyd [SMTP:randb@MICROSOFT.com]
Sent: Tuesday, August 01, 2000 9:52 AM
To: 'bjmartinez@lanl.gov'
Subject: RE: Email for Case SRX000727603512

<>
This first scenario does not surprise me. ODBC strips off trailing spaces so the space after 'SA' does not get passed to SQL Server. This is no different than 6.5 except that the tools in 6.5 used DB-Library and not ODBC.
<>Such comment does surprise me. As it is stated in documentation (see, for instance, 'Microsoft SQL Server. Introduction', p.28) the 'SQL Server 7.0 includes an enhanced security architecture that is better integrated with Windows NT and provides increased flexibility'. It would mean that at least the same rules are applied for entering Login names and passwords in both Windows NT and SQL Server 7.0 - just for better integration. It is not. For Windows NT user authentication an user must provide ALL symbols in his (her) Login name as well as in password. Windows NT does distinguish such Login names as 'ANR' (three symbols), 'ANR ' (four symbols with the blank as the last, fourth, symbol) and 'ANR;'. The same level of check is provided in SQL Server 6.5, for instance, in ISQL/w. Conclusion: Microsoft statement 'This is no different than 6.5 except that the tools in 6.5 used DB-Library and not ODBC' is not correct. From point of view of data security there is a principal difference in results of using either DB-Library or ODBC. Reality is that SQL Server 7.0 may have 'increased flexibility' but does have decreased Login protection features in comparison with SQL Server 6.5. From point of view of Russian data security regulations such explicit decreasing of a level of Login protection features can not be explained as an 'innocent' error. Rather it may be interpreted as an intentional action. What are arguments for such action? It is unclear.
<>
It is true that if 'SA' has no password everyone who is aware of the 'SA' account can connect as 'SA'. That is why the 'SA' password should be changed immediately after installation.
<>
Completely agree.
<>
The second scenario I have not seen and will have to try an repro it to comment on it. When you say "authorized access to any of them" what type of access are we talking about? Are they an administrator or user?
If they are an administrator then they have 'SA' privilege with SQL Server by default as a member of the builtin\admininstrators group. This group did not exist in 6.5.
<>
Thank you for questions and considerations. The case has been resolved. It helped us to prove two theorems:

1) All users being provided by administrative rights in Windows NT group or groups, are acting under the same USER_ID() = 1 (means 'SA') in SQL Server 7.0. Thus an ability to track and control the activities of individual users by means of SQL Server built-in functions has been practically lost in SQL Server 7.0.

2) SQL Server 7.0 documentation on mixed security mode contains contradicting statements: a) 'Mixed Mode (means) (Windows NT Authentication and SQL Server Authentication), and b) 'Mixed Mode allows users to connect using Windows NT Authentication or SQL Server Authentication' (see SQL Server Books Online, Authentication). First statement presents a logic of 'AND' type. The second one presents a logic of 'OR' type. However, from point of view of data security there is a principal difference between both. In reality the logic 'OR' is used with all expected negative consequences. It was unexpected.

<>
Also if the login id and password boxes are left blank the client utilities default to NT authentication. This is also the way 6.5 worked.

<>
It is not correct. In case of Standard Security for SQL Server 6.5 blank fields do not allow to perform successful Login.
/*WWWWWWW End of Annex WWWWWWW*/

************************************************************************

D. From Rumyantsev to Los Alamos (Aug. 7, 2000):

To: pgary@lanl.gov
Cc: PARKER.O'SHELL@hq.doe.gov , bjmartinez@lanl.gov , hforehand@lanl.gov ,
siskind@bnl.gov , Charles@Peterson.net , aslesar@USA.net , niknik@kiae.ru , vks@electronics.kiae.ru
From: anr@electronics.kiae.ru
Subject: Re: Draft SOW: 03492-00-99-35; Task Order 002, Modification 8
Date: August 07, 2000
Peter,
Kurchatov management have considered a scale of problem in computerized nuclear material accounting systems for both US DOE and RF nuclear sites, created by flaws and inconsistencies in Microsoft SQL Server 6.5 and 7.0, which were recently detected and proved by Kurchatov. At the same time Kurchatov management have considered the proposed new LANL task 03492-00-99-35;
Task Order 002, Modification 8, directed onto development of data verification and data integrity technology for large SQL Server Databases. Conclusions and proposals are as follows:

- taking into consideration a scale of practical implementation of Microsoft SQL Server in computerized nuclear material accounting systems at both US DOE nuclear sites (relatively large scale of implementation) and RF nuclear sites (relatively small scale of implementation) the most significant potential damage has been brought to the US side;

- in order to minimize a scale of moral and financial losses and potential threat to national security of the US side, the Kurchatov shall provide to the US DOE the SQL Server Database data verification and data integrity technology and 'know-how' which have been developed by Kurchatov in a period February-July, 2000 on a cost-free basis as a voluntary contribution of the Kurchatov into collaborative US-RF efforts to enhance safety and security of nuclear materials;

- providing such technology and 'know-how' the Kurchatov hopes that the US DOE will take all necessary and reasonable steps in order to resolve this specific problem with the Microsoft. I would like to ask you to evaluate these conclusions and proposals and inform me about.
Alexander

D. Message above forwarded to HQ DOE top officials, who were briefed on the problem in person in August 2000:

To: Baker Ken at DOE cc: internet: "sherry.fitzgerald@hq-doe.gov ", 08/07/00 slesar 02:25 PM Subject: Kurchatov will give SQL Server information to DOE

Ken, You will see that Kurchatov is doing everything possible to get DOE to find a fix for the Microsoft problem.

Email from Kurchatov to Peter Gary at LANL

"Taking into consideration a scale of practical implementation of Microsoft SQL Server in computerized nuclear material accounting systems at both US DOE nuclear sites (relatively large scale of implementation) and RF nuclear sites (relatively small scale of implementation) the most significant potential damage has been brought to the US side; - in order to minimize a scale of moral and financial losses and potential threat to national security of the US side, the Kurchatov shall provide to the US DOE the SQL Server Database data verification and data integrity technology and 'know-how' which have been developed by Kurchatov in a period February-July, 2000 on a cost-free basis as a voluntary contribution of the Kurchatov into collaborative US-RF efforts to enhance safety and security of nuclear materials; - providing such technology and 'know-how' the Kurchatov hopes that the US DOE will take all necessary and reasonable steps in order to resolve this specific problem with the Microsoft."

****************

E. Points of Contact and Cooperation in Doe/Los Alamos:

Points of contact in DOE

1. S. Peter Gary, LANL, Head of US DOE-KI Joint Project Team, E-mail: pgary@lanl.gov ; Mail Stop D466, Los Alamos National Laboratory, Los Alamos, NM 87545, Phone: 505-667-3807, Fax: 505-665-7395,

2. Harry M. (Mac) Forehand, Jr., LANL, Project Leader for US DOE-KI MC&A activities related to Russian Federation Navy and Murmansk Shipping Company, E-mail: hforehand@lanl.gov

3. Benny J. Martinez, LANL, Leading Specialist in LANMAS system and MS SQL Server, E-mail: bjmartinez@lanl.gov . Benny J. Martinez has been provided with all KI developed SQL Server tests. He had performed the initial evaluation of the problem and, on KI request, contacted Microsoft with evidences of the software problem; Benny J. Martinez has provided KI by information on Microsoft responses, confirming presence of the Microsoft bug.

4. Barry Siskind, BNL, Leading Specialists in development and implementation of physical inventory procedures for nuclear material, E-mail: siskind@bnl.gov

5. At headquarters it was Ken Baker, Sherry Fitzgerald and Mary Sullivan the General Counsel.

E. Miscel. emails

From: Benny J. Martinez mailto:bjmartinez@lanl.gov>>
To: mailto:chadmat@microsoft.com>>
Cc: 'Alexander Rumyantsev' mailto:anr@electronics.kiae.ru>>; Peter Gary
mailto:pgary@lanl.gov>>; Mac Forehand mailto:hforehand@lanl.gov>>
Subject: SQL Server SRX000403600845
Date: Monday, April 03, 2000 8:11 PM
Chad,
An application based on Windows NT 4.0 and SQL Server 6.5 has been developed by a Russian organization. Certain stored procedures have produced results that are inaccurate. I am trying to determine where the error is or what options are available to correct the problem. Note! The SQL script has been executed on an International Version of SQL Server 6.5 and a US version of SQL Server 6.5 with the same incorrect results. The SQL Script has also been executed on SQL Server 7.0 with correct results.
If you need any additional information please let me know. I would also appreciate any information on how my Russian colleagues may get direct support for Microsoft products in the future.
Benny Martinez
The following is the SQL script that reproduces the problem of incorrect results sets in SQL Server 6.5:
/*** TEST for CONFIRMATION of detected MS Transact SQL ERROR ***/
/*** KI-MACS Library of Stored Procedures is used - version 1.4.1 and above
*/
/*** Detected and documented for the first time 1998.05.07 - May 07, 1998 - AR*/
/*** There are different results of the same query - depending upon use of variable ***/
/*** On my request the Microsoft was informed about by Los Alamos Nat.Lab. in Sept.1998 -AR ***/
DECLARE
@OID_MIN int,
@OID int,
@ROWCOUNT int,
@Text varchar(255)
/*** First Trial: @OID_MIN is used in both 'SELECT' and 'WHERE' ***/
/*** RESULT is 12 Records ONLY - In stead of 634 ***/
select @Text =
'First trial with the same parameter @OID_MIN in the SELECT and WHERE statements'
PRINT @Text
select @OID_MIN = 0
DO_NEXT_1:
SELECT @OID_MIN = id
FROM sysobjects
WHERE id > @OID_MIN AND type = 'P'
ORDER BY id DESC
select @ROWCOUNT = @@ROWCOUNT
select @Text = '@ROW = ' + CONVERT(varchar, @ROWCOUNT) +
' # OID_MIN = ' + CONVERT(varchar, @OID_MIN)
PRINT @Text
IF @ROWCOUNT <> 0 GOTO DO_NEXT_1
/*** Second Trial: @OID_MIN is used in 'WHERE' only ***/
/*** RESULT is 634 Records - It is correct result ***/
select @Text =
'Second trial with the different parameters in the SELECT and WHERE statements'
PRINT @Text
select @OID_MIN = 0
DO_NEXT_2:
SELECT @OID = id
FROM sysobjects
WHERE id > @OID_MIN AND type = 'P'
ORDER BY id DESC
select @ROWCOUNT = @@ROWCOUNT
select @OID_MIN = @OID /*** Assignment of New Min Value for 'WHERE' **/
select @Text = '@ROW = ' + CONVERT(varchar, @ROWCOUNT) +
' # OID_MIN = ' + CONVERT(varchar, @OID_MIN)
PRINT @Text
IF @ROWCOUNT <> 0 GOTO DO_NEXT_2
RETURN
GO

E-MAIL COPY No. 2

##################

From: Benny J. Martinez mailto:bjmartinez@lanl.gov>>
To: 'Chad Mattox' mailto:chadmat@microsoft.com>>
Cc: 'Alexander Rumyantsev' mailto:anr@electronics.kiae.ru>>; 'Peter Gary'
mailto:pgary@lanl.gov>>; 'Mac Forehand' mailto:hforehand@lanl.gov>>
Subject: RE: SQL Server SRX000403600845
Date: Tuesday, April 04, 2000 12:01 AM
Chad,
I am looking for both a workaround and a long term solution that will be compatible with future versions of SQL Server. We do not want to have to go back and change anything if we upgrade to SQL Server 7.0. I will pass this on to my Russian colleagues to determine what impact this workaround may have on their stored procedures.
Thanks for the update.
Benny

---------------------------------------------------------

-----Original Message-----
From: Chad Mattox [SMTP:chadmat@microsoft.com]
Sent: Monday, April 03, 2000 12:31 PM
To: 'bjmartinez@lanl.gov'
Subject: RE: SQL Server SRX000403600845
Benny,
I have been working with this query, and I am not yet sure why we are seeing this behavior. Are you just looking for a workaround? I have gotten the query to work properly if you make OID_MIN decimal(28,0) rather than int.
(Decimal(28,0) means a number that can have 28 digits, and 0 digits after the decimal).
I will continue looking into this. I have not yet been able to find a bug that matches this. If you have any questions please let me know.
Chad Mattox
E-MAIL COPY No. 3

##################

From: Benny J. Martinez mailto:bjmartinez@lanl.gov>>
To: 'Alexander Rumyantsev' mailto:anr@electronics.kiae.ru>>
Cc: 'Peter Gary' mailto:pgary@lanl.gov>>; 'Mac Forehand' mailto:hforehand@lanl.gov>>
Subject: SQL Server error
Date: Tuesday, April 04, 2000 10:40 PM
Dear Alexander,
I have been communicating with a Microsoft System Engineer (Chad) who has requested additional information. He has verified with his supervisor that SQL Server 6.5 does not retrieve a correct recordset based on your query. He has performed numerous tests on other tables and has not been able to duplicate the problem with other than the sysobjects table, he is concerned that indexes or other attributes of the table influence the selection process. He would like to have a user generated table which exhibits this same problem to further study the problem. Do you have a script that generates a table and associated attributes that you can send me that exhibits this same problem or can you generate a simple test table that exhibits the same problem.
Currently the only work around as mentioned earlier is make OID_MIN decimal(28,0) rather than int. (Decimal(28,0) means a number that can have 28 digits, and 0 digits after the decimal). The Microsoft System Engineer said he would continue to research the problem but had found no similar reported problems.
Sincerely,
Benny
E-MAIL COPY No. 4


##################

From: Benny J. Martinez mailto:bjmartinez@lanl.gov>> To: 'Chad Mattox' mailto:chadmat@microsoft.com>> Cc: 'Alexander Rumyantsev' mailto:anr@electronics.kiae.ru>>; 'Peter Gary' mailto:pgary@lanl.gov>>; 'Mac Forehand' mailto:hforehand@lanl.gov>>; 'Joel Lewis' mailto:lewisjc@ornl.gov>> Subject: RE: SRX000403600845 Date: Wednesday, April 19, 2000 3:19 AM Chad, I am currently waiting for feedback from the Russian facility to find out if the workaround was used and fixed the problem. I will get back with you as soon as I can. Benny

-------------------------

-----Original Message-----
From: Chad Mattox [SMTP:chadmat@microsoft.com]
Sent: Tuesday, April 18, 2000 4:46 PM
To: 'bjmartinez@lanl.gov'
Subject: SRX000403600845
Benny,
I just wanted to touch base with you again on this issue. Is the decimal(28,0) workaround going to work for you? I need to know if this is going to suffice, or if we need to continue working on it? I have filed a bug on this issue, so you will not be charged if you would like to close the case. Please let me know.
Thanks,
Chad Mattox, MCSE
SQL Support Professional
(704) 582-8961

chadmat@microsoft.comE-MAIL COPY No. 5

##################

From: Benny J. Martinez mailto:bjmartinez@lanl.gov>>
To: 'Alexander Rumyantsev' mailto:anr@electronics.kiae.ru>>
Cc: 'Peter Gary' mailto:pgary@lanl.gov>>; 'Mac Forehand' mailto:hforehand@lanl.gov>>;
'Barry Siskind' mailto:siskind@bnl.gov>>
Subject: FW: SRX000403600845
Date: Thursday, April 27, 2000 5:39 PM
-----Original Message-----
From: Chad Mattox [SMTP:chadmat@microsoft.com] Sent: Wednesday, April 26, 2000 2:05 PM
To: 'bjmartinez@lanl.gov'
Cc: Edith Yakutis
Subject: RE: SRX000403600845
Benny,
I do not want to archive this case if you (or your customers) are not satisfied. This is a bug in our software as I have stated before. The workaround I suggested was just that, it was a suggestion. If it will not work, we can pursue other alternatives. However, it is unlikely that it can be avoided without some changes in their code.
As for Standard Security in SQL 7.0 it no longer exists in that you cannot only have SQL Server Authentication. You can still set security to mixed mode, and just not create any NT Logins, which is the same thing as having 'standard security'.
Please let me know if you would like to pursue other alternatives?
Regards,
Chad Mattox, MCSE
SQL Support Professional
(704) 582-8961

chadmat@microsoft.com-----Original Message-----
From: Benny J. Martinez []
Sent: Wednesday, April 26, 2000 9:54 AM
To: Chad Mattox
Subject: RE: SRX000403600845

Chad,
The Russians have stated that the workaround is not acceptable and are currently evaluating SQL Server 7.0.
RussianComments:
"My staff is near completion of all tests we planned for MS SQL Server in version 6.5 in order to develop and test out the most reliable solutions of discovered problems permitting us to be sure that we are capable either to provide diagnostics of discovered MS bugs of the same nature having RANDOM (let me underline it) appearance, or to eliminate calls to 'ORDER BY' statements by introduction of less vulnerable but more expensive (in terms of computer resources) logical schemes for data treatment. 'Workarounds' which were proposed by MS staff (such as use of decimal(28,0) rather than integer) are not applicable at all. Either MS is capable to detect a source of the problem we managed to prove as a SYSTEMATIC error by implementing integers and utilizing SQL Server system tables, or MS is not capable to understand that is going on with its own products which fail to perform in accordance with documentation. I am not going to resolve MS SQL problems by playing around data formats which means a complete redesign of KI-MACS application software core (over 5 Mb of source code in Transact SQL). By the way, I was astonished to learn that MS staff is seriously proposing such stupid advises as change of data formats to avoid MS SQL Server SYSTEM problems.
Is it MS style of conducting business? If so, we have to be prepared to deal with permanent troubles for the rest of our life."
"Due to significant changes introduced into MS SQL Server in version 7.0 in comparison with version 6.5 and limited compatibility between both versions we are looking for one more problem: in version 7.0 the so-called 'standard security no longer exists' (see MS 'Microsoft SQL Server. Introduction' (p. 177). It means that one of 'backbones' of the KI-MACS internal information security system which provided KI-MACS Russian State security certification has been undermined. I have had very intensive discussions with staff from SISC. We have been requested to develop a number of additional security tests confirming ability of KI-MACS information security system to perform its functions in spite of MS 'innovations'."
Chad, go ahead and archive the case and I will wait to see if funding to upgrade to SQL Server 7.0 is available and the Russians are willing to use it.
Thanks,
Benny

-------------------------------------------------------------------------------------------------

-----Original Message-----
From: Chad Mattox [SMTP:chadmat@microsoft.com]
Sent: Tuesday, April 25, 2000 3:46 PM
To: 'bjmartinez@lanl.gov'
Subject: SRX000403600845
Benny,
This case has been idle for some time. I really need to know if the workaround provided is going to work for you. If you anticipate this taking more time to find out, we can archive the case, and reopen it in the event that more work needs to be done on it. Please let me know.
Thanks,
Chad Mattox, MCSE
SQL Support Professional
(704) 582-8961

chadmat@microsoft.com

: bblair@mail

 

Printer-Friendly Versions:

Rich Text Format    Plain Text

 

BACK TO TOP    NUCLEAR FACTS AND FIGURES    CDI ISSUE AREAS    CDI HOME
 

 
 
CENTER FOR DEFENSE INFORMATION
1779 Massachusetts Ave, NW, Washington, DC 20036-2109
Ph: (202) 332-0600 · Fax: (202) 462-4559
info@cdi.org