📜 ⬆️ ⬇️

Testing Methods for Crypto Exchanges and Crypto Wallets


Crypto wallets and crypto exchanges can suffer from hacker attacks (or from the stupidity of users, developers, as well as problems with the logic of the system). Testing to identify vulnerabilities and problems in the logic of the application could help this, but I did not find a formalized methodology in which it was written what to look for during testing. Having tested a good dozen exchanges and wallets, I decided to formalize the procedure for testing them, who are interested, welcome under cat.

During the testing of exchanges and wallets, I paid attention to their functioning, and I formulated aspects of their testing below in the form of a small method, but all in order.
First of all, you need to understand what is important for the customer? For the customer, it is important that money not be stolen from the stock exchange or wallet and the preservation of personal data of users. And since, in fact, each exchange or wallet, for the most part, is a website or web application, the customer wants to conduct a hacker attack simulation, i.e. Black Box testing (see Table 1), but for completeness of testing, the Gray Box testing is chosen more often (see Table 1).
To test the logic of the work you need a test crypto-currency. And since each exchange has its own limitations on deposit / withdrawal of funds, the amount of test crypto-currency must be at least minimum acceptable for withdrawal and it should be enough to conduct at least 5 purchase-sale and / or input-output transactions.

Table 1. Types of testing depending on the information provided.
TypeDescription
Black box
  • testing is carried out without the involvement of the technical team of the customer
Gray box
  • contact with the technical team of the customer
  • adding accounts from which testing is underway in the “white list”
  • the customer provides the means (coins) for testing

White box
  • full customer support
  • provision of application source code
  • provision of logs
  • granting access to different privileges
  • provision of funds (coins) in the quantity required for testing


')
We, at Hacken, test for vulnerabilities in the following order:
  1. Study of publicly available information.
  2. Verification by automated means.
  3. Manual check.
  4. Report writing.


Features testing crypto-exchanges and crypto-wallets

1. Testing KYC Verification is the requirement of most crypto exchanges and ICOs.

This section discusses file download testing (photographs or screenshots of documents confirming a person’s identity).


2. Testing I / O funds


3. Testing the purchase and sale of cryptocurrency (refer only to exchanges)



Testing the web part

4. Testing the registration process


5. Testing the authentication process


6. Testing the frameworks and technologies that were used in the development of the exchange

While testing for vulnerabilities, you need to identify technologies and methods (frameworks) with which the exchanges were developed. Thus, with the understanding of the technology with which the wallet or the exchange was developed, it is possible to find a possible exploit or already found vulnerabilities in open sources. It is necessary to check that all third-party libraries, frameworks and software do not have publicly available vulnerabilities at the time of release or correct configuration of protection systems (for example, CloudFlare).

7. OWASP Testing

The OWASP methodology contains a checklist that considers all possible security risks for a website. Thus, this test allows you to identify possible vulnerabilities (well, a lot depends on the directness of the hands of experience and skills of the tester)

Most common:


8. API Testing


9. Testing WebSockets

Software, which is usually used for testing:


And other tools as needed.

Conclusion:

In this article, I tried to formalize and structure the methodology for testing exchanges, which I applied in more than 10 cases of testing exchanges and wallets. We took this methodology as the main method of testing exchanges at Hacken . Today, the blockchain technology industry, decentralized solutions and cryptocurrency are in the peak of popularity. FAQs and workbooks become obsolete much faster than Moore's Law; therefore, the article does not claim to be the exclusive manual for testing crypto exchanges; it only expresses the experience gained during the repeated repetition of this procedure.

Source: https://habr.com/ru/post/418879/


All Articles