Kopanie krypto. Na czym polega i jakie operacje są wykonywane?

1

Dzień dobry.

Posiadam parser wzorów matematycznych, który chcę udostępnić pośrednio online. Nie będzie nic obliczał tylko sprawdzał poprawność wzorów. Jakie operacje zablokować aby nie kusić górników bitcoin?

Na czym polega kopanie i jakie operacje są wykonywane? Na co zwrócić uwagę przy blokadzie w moim parserze? Usługa będzie obsługiwana dla zarejestrowanych userów z blokadą częstotliwości uruchamiania (co 5 sekund w górę).

Dziękuję
M.

1

Bez RCE nikt nie będzie nic kopać, więc raczej nie ma sie co w ogóle nad tym zastanawiać. Nie da się ot tak liczyć jakichś hashy operacjami matematycznymi. Inna sprawa, ze wystawiasz eval z sympy online i ja nadal utrzymuje, ze może dać sie z tego zrobić RCE.

1

Nie wystawiam eval w formie konsoli tylko konwertuje tekst na wzór i jeżeli ta operacja się powiedzie zamieniam na LaTeX. Parser z tego co wiem nie umożliwia parsowania czego innego niz wzory. Ale dla bezpieczeństwa zablokowałem string __ (2 znaki podkreślenia)

Teraz pytanie, co jeszcze zablokować?

1

Pokazywałeś wcześniej co robisz i używałeś tam kodu z sympy, który pod spodem woła eval, więc pytanie brzmi co się da przemycić do tego inputu. Możliwe że akurat w twoi przypadku nie będzie sie dało zrobić nic sensownego, ale nie byłbym tego taki pewien. Pythona sandboxować w zasadzie sie nie da (nawet tymi nowymi audit eventami) i jakieś akcje w stylu blokowanie . czy __ albo usuwanie builtinów przed evalem nie pomogą :)

0

Sympy ma własne funkcje do ewaluacji. Zablokowałem w nich możliwość liczenia dużych liczb (powyżej 30 cyfr dziesiętnych). Nie wiem co mogę jeszcze usprawnić.

Ps. I ograbiczylem długość wzoru do 50 znaków.

1
Shalom napisał(a):

Pokazywałeś wcześniej co robisz i używałeś tam kodu z sympy, który pod spodem woła eval, więc pytanie brzmi co się da przemycić do tego inputu. Możliwe że akurat w twoi przypadku nie będzie sie dało zrobić nic sensownego, ale nie byłbym tego taki pewien. Pythona sandboxować w zasadzie sie nie da (nawet tymi nowymi audit eventami) i jakieś akcje w stylu blokowanie . czy __ albo usuwanie builtinów przed evalem nie pomogą :)

Sandboxować się nie da, ale można zrobić osobnego użytkownika, który wywołuje obliczenia serwisu i ma bardzo ograniczone dostępy do procesora a poza tym jeśli działa długo (np. 2 sekundy), to jest ubijany (np program timeout w linuxie). Albo chrootjail na przykład...

2

@mpaw napisałeś wolfram alpha?

1 użytkowników online, w tym zalogowanych: 0, gości: 1