Analise smart-contract
12.04.2024

Proxy-ilmaisimen kuvaus

Jatkamme artikkelisarjaa, joka on omistettu älysopimuksiin liittyvien petollisten järjestelmien kuvaamiseen. Tänään puhumme älysopimuksista, joissa on proxy-ohjaus (Proxy) -ominaisuus.

Proxy-älysopimukset ovat kasvattaneet suosiotaan lohkoketjuissa niiden modernisoitavuuden ja joustavuuden ansiosta. Tällaisiin sopimuksiin liittyy kuitenkin myös suuri vaara, etenkin jos niitä käyttävät pahantahtoiset käyttäjät. Huijarit käyttävät usein proxy-älysopimuksissa harhaanjohtavia järjestelmiä huijatakseen käyttäjiä. Tällaisten uhkien tunnistamiseksi sinun on ymmärrettävä mahdolliset riskit ja oltava teknisesti taitava.

Katsotaanpa tarkemmin kuvaus mahdollisista vaaroista, yleisimmistä petosjärjestelyistä ja siitä, miten tunnistat tällaiset uhat välitystieto-älysopimuksissa.

Välitystieto-älysopimusten vaarat:

  1. Luvattomien päivitysten tekeminen:
    Välityssopimukset antavat omistajalle mahdollisuuden päivittää taustalla olevaa sopimusta. Jos tätä mekanismia ei kuitenkaan ole toteutettu turvallisesti, se voi johtaa luvattomiin päivityksiin, jolloin hyökkääjät voivat syöttää sopimukseen haitallista koodia.

  2. Tarkistamattomat ulkoiset kutsut:
    Konnat ohjelmoijat voivat käyttää ulkoisia kutsuja epäluotettaviin sopimuksiin ilman asianmukaista tarkistusta. Tämä voi johtaa haavoittuvuuksiin, kuten reentrancy-hyökkäyksiin, joissa pahantahtoiset sopimukset kutsuvat toistuvasti välityssopimusta, mikä voi tyhjentää sen varat.

  3. Yksinkertaisuuden puute:
    Hallintasopimuksen lähdekoodia ei yleensä tarkisteta.

  4. Väärennetyt projektit:
    Huijarit luovat väärennettyjä projekteja, joissa luvataan houkuttelevia ominaisuuksia, kuten suuria tuottoja tai ainutlaatuisia toimintoja. He saattavat käyttää välityssopimuksia luodakseen laillisuuden vaikutelman ja piilottaakseen samalla pahansuovat aikomukset.

  5. Ponzi-järjestelmät:
    Huijarit rakentavat proxy-sopimuksiin perustuvia Ponzi-järjestelmiä, jotka houkuttelevat käyttäjiä lupauksilla suurista tuotoista. Tällaisissa järjestelmissä voi olla päivitettäviä komponentteja uskottavuuden illuusion ylläpitämiseksi.

  6. Kloonatut sopimukset:
    Huijarit kloonaavat laillisia hankkeita ja lisäävät kloonattuun sopimukseen haavoittuvuuksia tai muutoksia. Pahaa aavistamattomat käyttäjät voivat olla vuorovaikutuksessa tällaisten kloonien kanssa ja sekoittaa ne alkuperäiseen.

Miten voit itsenäisesti määrittää, onko älykkäissä sopimuksissa tällaisia uhkia?

On syytä huomata, että jos älykkään sopimuksen kohdekoodissa on viittaus ulkoiseen sopimukseen (Proxy), lähes 100 prosentissa tapauksista tämä Proxy-sopimus on piilotetulla lähdekoodilla. Tällöin ulkoinen ohjaussopimus voi suorittaa mitä tahansa toimia kohdesopimuksella (esimerkiksi: käyttäjän saldojen muuttaminen, kaupankäynnin aktivointi ja deaktivointi, päästöjen käynnistäminen jne.).

Siten kannattaa ymmärtää, että työskentely Proxy-älysopimuksen kanssa on rulettipeliä sanan varsinaisessa merkityksessä (kasino voittaa aina).

Proxy-käyttökutsujen löytäminen älysopimuksesta on riittävän helppoa. Ja kuten aiemmin totesimme, haitallisten toimintojen toteutus on kontrollisopimuksessa - kohde-älysopimuksen näyttäessä "valkoiselta ja pörröiseltä" (eli sLOtusiinä ei yleensä ole mitään epäilyksiä herättäviä menetelmiä).

Jos haluat itse selvittää, onko älysopimuksissa Proxy-ominaisuuksia, seuraavat vinkit ovat avuksi.

  • Toteuta sopimustarkastus: Ennen kuin työskentelet minkä tahansa älykkään sopimuksen kanssa, tarkista sen lähdekoodi ja toiminnot. Kiinnitä huomiota hyvin dokumentoitujen päivitysprosessien, käyttöoikeuksien valvontamekanismien ja projektin läpinäkyvyyden olemassaoloon.

  • Varmista, että älysopimus on käynyt läpi ulkoisen tietoturvatarkastuksen hyvämaineisten yritysten toimesta. Auditointiraportti voi antaa tietoa mahdollisista haavoittuvuuksista.

  • Tutki projektin kehitystiimiä. Läpinäkyvät ja luotettavat tiimit syyllistyvät harvemmin petoksiin.

  • Kysy projektin yhteisöä ja hanki palautetta muilta käyttäjiltä, joilla on kokemusta sopimuksesta. Huijarit välttävät usein julkista keskustelua.

  • Käyttäessäsi sopimuksia käytä tunnettuja lompakko-ohjelmia ja -työkaluja, jotka tarjoavat lisäturva- ja transaktiosuojausominaisuuksia.

  • Ole varovainen, kun olet tekemisissä uusien ja todistamattomien sopimusten kanssa, erityisesti sellaisten, jotka lupaavat suuria tuottoja tai osoittavat epätavallista käyttäytymistä.

  • Jos jokin sopimuksessa vaikuttaa liian hyvältä ollakseen totta tai epäilyttävältä, luota intuitioosi ja vältä sitä.

  • Pitäydy ajan tasalla yhteisömme viimeisimmästä kehityksestä (Telegram-kanava) ja petosten havaitsemiseen liittyvistä parhaista käytännöistä (blogi ja YouTube-kanava).

Lotus Marketin turvaskanneri löytää kaikki yleiset (myös piilotetut) ulkoisen valvonnan (Proxy) ominaisuudet. Käytä premium-tilaustamme ja suojaa varojasi uhilta.


Seuraavassa on esimerkkejä yleisistä punaisista lipuista ja epäilyttävistä malleista, joita sinun tulisi etsiä tutkiessasi älykkäitä sopimuksia tunnistamaan mahdollisesti haitallisia toimintoja. On tärkeää ymmärtää nämä merkit, jotta voit suojella itseäsi ja muita mahdollisilta petoksilta. Tarkastellaan joitakin koodikuvioiden variaatioita ja vinkkejä, joiden avulla voit tunnistaa epäilyttävän toiminnallisuuden älykkäässä sopimuksessa:

Pääsääntö on, että jos sopimuskoodi sisältää Call-, CallCode- tai DelegateCall-funktioiden kutsun, se tarkoittaa, että sopimus kutsuu ulkoista koodia ja luovuttaa tietojensa hallinnan sille.

tips around proxy

Katsotaan tärkeimmät esimerkit proxy-sopimusten käytöstä.

1. Initialisoimattomat tallennusmuuttujat.

Yksi yleisimmistä proxy-sopimusten haavoittuvuuksista on tallennusmuuttujien väärinkäyttö. Kun välityssopimusta käytetään DelegateCall-ohjelmalla kutsumaan funktioita toteutussopimuksessa, välityssopimuksen säilytysmuuttujia muutetaan. Jos välityssopimuksen tallennuksessa on kuitenkin alustamattomia arvoja tai oletusarvoja, tämä voi johtaa odottamattomaan käyttäytymiseen.


  contract Implementation {
    address public owner;

    constructor() {
        owner = msg.sender;
    }
}

Tässä esimerkissä, jos välityssopimuksen omistajamuuttujaa ei ole alustettu, välityssopimuksen owner()-kutsu palauttaa toteutussopimuksen omistajamuuttujan, mikä ei välttämättä ole se, mitä käyttäjä odottaa.

2. Tarkistamattomat ulkoiset kutsut.

Huijaukselliset sopimukset voivat käyttää ulkoisia kutsuja epäluotettaviin sopimuksiin ilman asianmukaisia tarkistuksia. Jos valtakirjasopimus kutsuu suoraan tai epäsuorasti haitallista sopimusta DelegateCall-kutsun kautta, haitallinen sopimus voi suorittaa mielivaltaisia toimintoja, kuten reentrancy-hyökkäyksiä, ilman asianmukaisia suojatoimia.


  contract Proxy {
    function execute(address target, bytes memory data) external {
        target.delegatecall(data);
    }
}

Jos käyttäjä lähettää mielivaltaisen sopimuksen ja haitallista dataa kohdeosoitteena, se voi johtaa siihen, että käyttäjän puolesta suoritetaan luvattomia toimintoja.

3. Epäasianmukainen pääsynvalvonta.

Väärennetyissä sopimuksissa voi olla epäasianmukaiset pääsynvalvontatoiminnot, jolloin luvattomat käyttäjät voivat suorittaa hallinnollisia toimintoja. Välityssopimusta käytettäessä on valvottava huolellisesti, kenellä on oikeus päivittää toteutussopimus. Tämän laiminlyönti voi johtaa luvattomiin muutoksiin sopimuksen käyttäytymisessä.


  contract Proxy {
    address public owner;
    address public implementation;
                                    
    function upgrade(address newImplementation) external {
        require(msg.sender == owner, "Only the owner can upgrade.");
        implementation = newImplementation;
    }
}

Tässä esimerkissä, jos omistajaosoitetta ei valvota kunnolla tai jos ei ole tarkistuksia sille, kuka voi kutsua päivitysfunktiota, luvattomat osapuolet voivat muuttaa toteutuksen haitalliseksi sopimukseksi.

4. Versiointi- ja hallintariskit.

Välityssopimukset käyttävät usein versiointi- ja hallintamekanismeja sopimuslogiikan päivittämiseen. Jos näitä mekanismeja ei ole toteutettu turvallisesti, niistä voi tulla alttiita pahantahtoisten osapuolten hyökkäyksille tai manipuloinnille.


  contract Proxy {
    address public owner;
    address public implementation;
    address public pendingImplementation;
        
    function upgrade(address newImplementation) external {
        require(msg.sender == owner, "Only the owner can upgrade.");
        pendingImplementation = newImplementation;
    }
    function claimUpgrade() external {
        require(msg.sender == owner, "Only the owner can claim the upgrade.");
        implementation = pendingImplementation;
    }
}

Tässä tapauksessa hyökkääjä voi tarjota uutta "puhdasta" sopimusta ja tehdä sitten välittömästi päivityksiä, jolloin hänen haitallista koodiaan otetaan tehokkaasti käyttöön.

tips around proxy

Mihin minun tulisi kiinnittää huomiota tutkiessani Proxy-sopimuksia ja mitä uhkia ne aiheuttavat?

  1. Varojen luvaton siirto:
    Yksi yleisimmistä tavoista, joilla huijarit varastavat rahaa, on se, että sopimuksen haltija siirtää varoja itselleen tai toiseen osoitteeseen ilman lupaa.

  2. Kätketyt "takaovet":
    Huijarit saattavat piilottaa haitallista koodia peittävien tai harhaanjohtavien ominaisuuksien nimien taakse, jolloin käyttäjien on vaikea havaita niiden todellisia aikomuksia. Epäselvät tai harhaanjohtavat toimintojen nimet. Ehdolliset operaattorit, jotka myöntävät erityisoikeuksia tietyille osoitteille.

  3. Väärennetyt tunnukset ja vaihdot:
    Huijarit luovat usein väärennettyjä tokeneja tai väärennettyjä vaihtoalustoja huijatakseen käyttäjiä siirtämään varojaan haitalliseen sopimukseen. Kiinnitä huomiota token-sopimuksiin, joiden käyttäytyminen on epäilyttävää, kuten rajoittamattomien tokenien lyöminen tai luvattomien siirtojen hyväksyminen.

  4. Luvattomat liikkeeseenlasku- tai omistuksensiirtotoiminnot:
    Ulkopuolinen sopimus voi vaihtaa tokenin haltijaa tai käynnistää uuden liikkeeseenlaskun, mikä aiheuttaa hinnan inflaation.

  5. Poikkeava dokumentaatio tai koodin käyttäytymisen kanssa ristiriidassa olevat kommentit:
    Huijarit voivat tarjota harhaanjohtavaa tai epätarkkaa dokumentaatiota tai kommentteja koodissaan johtaakseen käyttäjiä harhaan sopimuksen todellisesta toiminnallisuudesta. Tarkista aina, että dokumentaatio vastaa koodin todellista käyttäytymistä.

  6. Turvallisuustarkastusten puute:
    Varo sopimuksia, joista puuttuvat asianmukaiset turvatarkastukset, pääsynvalvonta tai joissa ei ole toteutettu suojauksia yleisimpiä haavoittuvuuksia, kuten uudelleenkytkentää, vastaan. Kun harkitset älysopimusta, tutki aina koodi tarkkaan, etsi hyvin dokumentoituja ja läpinäkyviä malleja, tarkista ulkoiset turvallisuustarkastukset ja tutki yhteisön palautetta. Ole lisäksi varovainen, kun olet vuorovaikutuksessa sellaisten sopimusten kanssa, joilla on jokin näistä ominaisuuksista, sillä ne saatetaan suunnitella varastamaan varoja tai suorittamaan muita haitallisia toimintoja.

  7. Kompleksiset ehdolliset lausekkeet:
    Huijarit saattavat käyttää monimutkaisia ehdollisia lausekkeita tai logiikkaa, jota on vaikea seurata, jolloin sopimuksen todellista toimivuutta on vaikea ymmärtää. Etsi tarpeettoman mutkikasta koodia: liian monimutkaista tai epäselvää logiikkaa ja ehtoja, jotka eivät ole merkityksellisiä sopimuksen tarkoituksen kannalta.

  8. Epäselvät hallinto- ja omistusmallit (Ownership):
    Petostentekijät käyttävät usein valtakirjasopimuksia, joissa on epäselvät hallintomekanismit tai piilotetut omistusrakenteet, jolloin käyttäjien on vaikea määrittää, kuka hallitsee sopimusta.

  9. Tunnettujen hankkeiden poisjättäminen:
    Huijarit luovat usein sopimuksia, jotka jäljittelevät tunnettujen, laillisten projektien toimintoja tai ulkonäköä. Tarkista aina projektin aitous ja varmista, ettei kyseessä ole väärennös. Kiinnitä huomiota pieniin eroihin nimissä, logoissa tai brändäyksessä. Hankkeet, jotka väittävät olevansa virallisia, mutta joista puuttuu asianmukainen validointi.

  10. Hastava tai nimetön käyttöönotto:
    Huijarit saattavat ottaa sopimuksia käyttöön hätäisesti, ilman selkeää tunnistamista ja vähäisiä tietoja hankkeesta tai sen kehittäjistä. Kiinnitä huomiota sopimuksiin, jotka on otettu käyttöön ilman asianmukaista huolellisuutta ja suunnittelua ja jotka on julkaissut tuntematon tiimi.

  11. Julkisen todentamisen tai tarkastuksen puute:
    Jos sopimus ei tarjoa julkista lähdekoodin tarkistusta tai jos sille ei ole tehty kolmannen osapuolen tietoturvatarkastusta, siihen on suhtauduttava erittäin varovaisesti.

  12. Epätavallinen tai piilotettu tietojen varastointi:
    Huijarit saattavat käyttää epätavanomaisia tai salakavalia tietojen tallennusjärjestelyjä peittääkseen haitallisen toiminnallisuuden. Huomaa, että tiedot voidaan tallentaa odottamattomiin paikkoihin sopimuksen sisällä.

  13. Väärennetyt likviditeettipoolit:
    Ole DeFi-hankkeissa varovainen suuria tuottoja lupaavien likviditeettipoolien suhteen. Huijarit saattavat luoda väärennettyjä pooleja houkutellakseen likviditeettiä ja käyttää sitten käyttäjiä hyväkseen. Likviditeetin tarjoamisesta saatavat epäjohdonmukaisesti korkeat tulot. Poolin toimintamekanismin läpinäkyvyyden ja dokumentoinnin puute.

tips around proxy

Tällaisilta haavoittuvuuksilta suojautumiseksi tulisi sopimukset, joissa käytetään proxy-malleja ja DelegateCallia, käydä huolellisesti läpi ja auditoida, ottaa käyttöön pääsynvalvontamekanismeja ja turvata ulkoiset kutsut. Käyttäjien tulisi olla varovaisia, kun he ovat vuorovaikutuksessa sopimusten kanssa, erityisesti niiden, joissa on monimutkaisia päivitysmekanismeja, ja heidän tulisi aina suorittaa asianmukainen huolellisuus ennen kuin he ovat vuorovaikutuksessa lohkoketjussa olevan älykkään sopimuksen kanssa.

Lohkoketjujen nopeasti kehittyvässä maailmassa on välttämätöntä pysyä valppaana ja valistuneena suojellakseen itseään ja omaisuuttaan mahdollisilta vilpillisiltä suunnitelmilta ja haavoittuvuuksilta, jotka liittyvät välityssopimuksiin ja DelegateCall-ominaisuuksiin.


Toivomme, että nämä tiedot ovat auttaneet sinua ymmärtämään paremmin hallinnoituja (proxy) älysopimusjärjestelmiä.


Sen vuoksi, että kaikki lohkoketjussa oleva tieto on avointa (edellyttäen tietenkin, että sopimuksen lähdekoodi on tarkistettu), voit tämän tiedon avulla varustautuneena tutkia itsenäisesti älysopimuksia ja tunnistaa erilaiset huijausjärjestelyt.

Me olemme kuitenkin jo tehneet kaiken puolestasi! Tilaa premium-tilaus ja saat käyttöösi yksinoikeudella suodattimia älykkäiden sopimusten ominaisuuksista ja tuoretta analytiikkaa. Lisää mahdollisuuksiasi sijoittaa menestyksekkäästi kannattaviin tokeneihin.

Hyvästi, Lotus Market -tiimi.

All posts

Connect to a wallet

Metamask