Wyszukiwarka | Bezpieczeństwo |
|
|
| Redaktor: markooff | |
| 17.06.2007. | |
xxxxxx
1. Zanim zaczniesz.Nic za darmo!Chociaż instalacja Joomla! jest łatwa, to utrzymanie i zabezpieczanie swojego portalu w internecie - takim już nie jest. Dobry poziom bezpieczeństwa to stale zmieniające się wyzwania, które wymagają ciągłej uwagi. Aby skutecznie chronić swoją stronę musisz albo zdobyć doświadczenie na własnych błędach (czasem bardzo gorzkich), albo skorzystać z doświadczenia innych osób. Fora internetowe dotyczące spraw bezpieczeństwa wypełnione są postami o treści: Pomocy! Zostałem zaatakowany pisanych przez ludzi, którzy nie zadali sobie trudu, żeby zapoznać się z podstawowymi zasadami bezpieczeństwa. Poniższa lista ma na celu zaprezentowanie tych zasad i wskazanie szukającym właściwego kierunku: 2. ZaczynamySprawdź czy potrafiszCzy naprawdę chcesz i potrafisz administrować dynamiczną, opartą o bazy danych oraz indywidualne konta użytkowników interaktywną stroną? Czy posiadasz odpowiednią ilość wolnego czasu oraz możliwości reagowania na wiele poważnych problemów bezpieczeństwa, jakie napotkasz w Internecie? Oto żartobliwa (a może i tragiczna) lista najczęściej spotykanych błędów bezpieczeństwa popełnianych przez administratorów. Nie sprawdzaj tego na własnej skórze.
Przekonaj się, czy Joomla spełnia Twoje potrzebyDeveloperzy dużych projektów mogą skorzystać z tego forum Bądź na bieżąco z problematyką bezpieczeństwaZapisz się na listę dyskusyjną nt. Bezpieczeństwa Jommla Wybierz przycisk Powiadom [Notify]. Sprawdzaj FAQ-iNajważniejsze i najbardziej pomocne tematy z Forum Bezpieczeństwa Joomli (tak jak i inne źródła) zostało teraz przekonwertowane na Security FAQs na oficjalnej stronie Joomla!. Ucz się od najlepszychSzperaj w Forum dyskusyjnym Joomla! Znajdziesz tam wiele prawdziwych złotych porad, np. ten post autorstwa CirTap’a. 3. Wybierz odpowiedniego dostawcę usług internetowychWybór providera to jedna z najpoważniejszych decyzji, przed jaką staniesz. Z powodu szerokiego wachlarza dostępnych parametrów hostingu nie jest możliwe przygotowanie pełnej listy na każdą sytuację. Jeśli musisz liczyć się z pieniędzmi - możesz po prostu wynająć miejsce na jednym z serwerów z niższej półki (albo darmowych - przyp. tłum), jednak musisz liczyć się z ryzykiem i wiedzieć, jak wybrać możliwie najbezpieczniejszego dostawcę usług internetowych. [dyskusja na ten temat] [FAQ]. Sprawdź też naszą listę .polecanych dostawców. Dla pełniejszego zrozumienia problemu wyboru odpowiedniego serwera (i dostawcy) polecamy przeczytać ten raport z około 11.000 stron, które pozwoliły Google na rozpoznanie typu systemu operacyjnego, serwera i innych ważnych informacji - wykorzystując funkcję 4. Budowanie witrynyUżywaj Zintegrowanego środowiska projektowania (IDE). [FAQ] Testuj wszystkie poprawki i łatki (patche) najpierw na serwerze lokalnym/testowym [FAQ] Upewnij się, że będziesz mógł wrócić do poprzedniej wersji swojego serwisu, korzystając z systemów kontroli wersji, takich jak CVS czy Subversion. Sprawdź Listę Społeczności Joomla! - Popularne programy i narzędzia developerskie 5. Instalacja. Uaktualnienie i konfiguracja silnika Joomla! i serwera ApacheZawsze instaluj uaktualnioną najnowszą stabilną wersję Joomla! Zawsze pobieraj Joomla! tylko z oficjalnych serwisów takich jak Joomla! Forge, sprawdzaj też sumy kontrolne MD5. Zawsze usuwaj zbędne/pozostawione pliki. W trakcie procesu instalacji instalator zażąda od Ciebie usunięcia katalogu instalacyjnego oraz całej jego zawartości. Zrób to! Jeśli wgrywałeś na serwer Joomla! jako skompresowane archiwum (np. xxxx.zip), nie zapomnij usunąć po instalacji oryginalnego pliku archiwum. Ogólnie - nie pozostawiaj na serwerze żadnych zbędnych plików, skompresowanych czy nie - dopóki Twoja witryna nie będzie ich potrzebować do funkcjonowania. Zwiększ poziom bezpieczeństwa swojej witryny przez umieszczenie/przeniesienie najważniejszego pliku - Koniecznie zmień nazwę użytkownika dla domyślnego administratora. W ten prosty sposób znacząco poprawisz bezpieczeństwo tego krytycznie ważnego konta. Zablokuj działanie typowych eksploitów, używając do tego poprawek w pliku Zablokuj dostęp do kluczowych katalogów - takich jak
Zablokuj dostęp do kluczowych katalogów - jak
Uwaga tłum. - jest to możliwe, o ile posiadamy stały, zewnętrzny adres IP, z którego się łączymy z naszą witryną. Możliwe jest też (dla bardziej zaawansowanych) ustawienie sobie serwera proxy ze stałym zewnętrznym IP i korzystanie tylko z niego przy łączeniu się z witryną.) O ile twój serwer to umożliwia - powinieneś przejść na PHP5 zamiast używać PHP4.
Stosuj zasadę możliwie minimalnych uprawnień, uruchamiając aplikacje, używaj takich narzędzi PHP jak Odpowiednio skonfiguruj w serwerze Apache mod_security i mod_rewrite, żeby skutecznie blokować ataki PHP
Oczywiście, zmiany te wymagają dostępu do konfiguracji serwera Apache albo porozumienia się z jego administratorem (przyp.tłum.). Upewnij się że konto(a) MySQL mają ograniczony dostęp (są zabezpieczone unikatowym hasłem - które znasz tylko Ty - administrator serwisu - przyp. tłum.). Standardowa instalacja MySQL ze względów wygody użytkowania jest skonfigurowana potencjalnie niebezpiecznie. Zalecane jest poczynienie paru zmian. Na chwilę obecną obydwa języki PHP4 i PHP5 są rozwijane. Jednak zanim PHP4 stanie się przestarzały i wyjdzie całkowicie z użycia przepisz cały swój kod PHP do wersji PHP5. Nie obawiaj się Joomla! Cały silnik jest obecnie kompatybilny z PHP5. Unikaj używania PHP z
WYŁĄCZ funkcję UWAGA! słabo napisany kod niektórych rozszerzeń do Joomli! może spowodować błędy w przypadku wyłączenia define( 'RG_EMULATION', 0 ); Upewnij się że wszystkie ścieżki do katalogów z uprawnieniami do zapisu (repozytorium dokumentów, galeria zdjęć i grafiki oraz cache) znajdują się poza katalogiem głównym strony. Sprawdź także rozszerzenia pochodzące od innych autorów, takie jak DOCMan czy Gallery2, dokonując niezbędnych poprawek ustawień. Niestety - jak na razie nie ma łatwego sposobu na migrację standardowego katalogu ze zdjęciami w Joomla! Once your site is configured and stable, write-protect directories and files by changing directory permissions to 755, and file permissions to 644. There is a feature in Site --> Global Configuration --> Server to set all folder and file permissions at once. Test third party extensions afterwards. Note: You'll need to reset write permissions to install more extensions. Usuń wszystkie projekty szablonów graficznych, których nie potrzebujesz. Nie zadawaj sobie trudu zabezpieczając ich. Jeśli używasz VPS albo masz dedykowany serwer uruchom TripWire albo SAMHAIN (GNU/GPL). Programy te przygotują wyczerpujący raport na temat bezpieczeństwa plików i funkcjonalności systemu. Oba mogą być zainstalowane dyskretnie w celu ochrony na wypadek ewentualnych prób włamania. Poszukaj porady u profesjonalnego konsultanta ds. bezpieczeństwa Joomla! 6. Instalacja, aktualizacja i konfiguracja rozszerzeń Joomla! (komponentów, modułów, botów i wtyczek)6.1. PRZED instalacją nowego rozszerzenia wykonaj kopię zapasową witryny i kopię zapasową bazy danych. 6.2. PRZED instalacją rozszerzeń innych zespołów, sprawdź: Official List of Vulnerable 3rd Party/Non Joomla! Extensions 6.3.Pobieraj rozszerzenia tylko z zaufanych witryn. Jest jedna oficjalna definicja "zaufanej witryny": TY ufasz! 6.4: Użytkownik rozsądny (strzeżony, bezpieczny)! Rozszerzenia innych projektantów są różnej jakości, powstały w różnym czasie (starzeją się). Chociaż istnieją standardy kodowania w Joomla!, rozszerzenia umieszczane w katalogu zasobów na oficjalnej stronie Joomla! nie są przeglądane pod kątem zgodności ze standardami kodowania. Testuj każde rozszerzenie na testowej witrynie PRZED instalacją na witrynie produkcyjnej.
6.5: Najwięcej zagrożeń bepieczeństwa niosą ze sobą rozszerzenia opracowane przez innych projektantów. Rzeczywiście, to fakt. Istnieje całe forum dedykowane temu tematowi. Zaprenumeruj je, kliknij przycisk Notify/Powiadomienia 6.6 Usuwaj nieużywane rozszerzenia i dwukrotnie sprawdzaj, czy wszystkie foldery i pliki zostały usunięte po deinstalacji. Zauważ, że wiele rozszerzeń innych projektantów po odinstalowaniu pozostawia na Twoim serwerze dużą ilość plików i dużą ilość tabel w bazie danych. To jest albo zaleta, albo błąd - zależy od Twojego punktu widzenia! 6.7. Usuń lub napraw wszystkie rozszerzenia, któe wymagają włączonych 7. Konfigurowanie php.ini7.1. Konfiguracja i mechanizmy php.ini są dobrze udokumentowane w pliku 7.2: Ważne jest dobre zrozumienie, jak posługiwać się i wykorzystywać mechanizmy zawarte w 7.3: Poszczególne mechanizmy i funkcje 7.4: Na wielu publicznych serwerach www nie masz dostępu do edycji głównego pliku 7.5: Przeczytaj post autorstwa Beat, Członka Grupy Q&T, w którym opisana jest lista metod 7.6. Ustaw 7.7: Używaj funkcji 7.8: Wyłącz 7.9: Poprawienie ustawienia 7.10: Funkcja 7.11: Przykładowa konfiguracja [I]php.ini[/I] w odniesieniu do powyższych uwag sugestii register_globals = 0 disable_functions = show_source, system, shell_exec, passthru, exec, phpinfo, popen, proc_open allow_url_fopen = 0 magic_quotes_gpc = 1 safe_mode = 1 open_basedir = /dir/to/include/change/me 8. Tuning Joomli! dla maksimum bezpieczeństwa8.1: Nie używaj publicznych(/darmowych) serwerów. Niektórzy eksperci są tutaj innego zdania. Jakkolwiek byś uważał, niezależnie od konfiguracji serwera, istotne jest żebyś upewnił się, że fizyczny dostęp do Twojego serwisu masz wyłącznie Ty i administrator(zy) serwera.
8.2 Używaj protokołu SSL w celu zabezpieczenia połączeń z serwerem. Przeczytaj tę dyskusję na temat potrzeby używania SSL i tych momentów kiedy bezpieczeństwo jest szczególnie istotne. (Joomla! w wersji 1.0.11 nie pozwala na przypisanie serwera SSL do poszczególnych katalogów. Czy ktoś wie, czy w 1.0.12 ma się to zmienić ?)
8.3: Dla dodatkowej ochrony zabezpieczonych hasłem newralgicznych katalogów używaj plików
9. Bieżąca administracja serwisem9.1 Używaj tylko dobrych (odpowiednio skomplikowanych) haseł: zmieniaj je regularnie i trzymaj w tajemnicy. Przy generowaniu haseł używaj zawsze losowej kombinacji liter, cyfr i znaków specjalnych - unikając prostych nazw imion oraz słów ze słownika. Nigdy nie używaj imion czy nazwisk swoich krewnych, zwierząt itd. Wizzie napisał skrypt, który automatycznie zmienia hasła. To doskonałe narzędzie dla administratorów, którzy opiekują się wielom naraz serwisami. 9.2: Używaj schematu haseł odpowiednich do wagi i ważności problemu. Innymi słowy : miej parę poziomów bezpieczeństwa i związanych z nim trudności haseł, które nie powinny być w żaden sposób ze sobą związane.
9.3: Konsekwentnie wykonuj kopie zapasowe swojej witryny. Nigdy nie polegaj na tym, że "ktoś zrobi je za ciebie" - sam bierz odpowiedzialność za Twoje dane! Wielu dostawców usług internetowych wprost zaznacza w umowach, że użytkownik nie ma prawa upominać sie o backupy danych w razie ich własnej utraty. 9.4: Używaj automatycznych narzedzi do wykrywania ataków (IDS). Używaj profesjonalnego oprogramowania IDS do blokowania podejrzanych zapytań HTTP
Uwaga od tłumacza: jednym z najlepszych a do tego calkowicie darmowym systemem IDS jest SNORT. Duża część wysokopłatnych rozwiązań komercyjnych bazuje właśnie na tym silniku. Jednak jego skuteczne użycie wymaga:
9.5: Często dokonuj RĘCZNEJ kontroli serwisu na wypadek ataków. Regularnie sprawdzaj logi na wypadek pojawienia się w nich podejrzanych operacji. NIE POLEGAJ wyłącznie na zestawieniach zbiorczych ani wykresach! Pouczająca dyskusja na temat możliwości automatyzacji przeglądania logów znajduje się 9.10: Bądź ZAWSZE na bieżąco z aktualizacjami i poprawkami (patchami). Zawsze instaluj poprawki wypuszczone przez producenta ASAP (As Soon As Possible - Najszybciej, jak to tylko możliwe) 9.11 Samodzielnie wyszukuj wiadomosci o nowych atakach i zagrożeniach. Regularnie sprawdzaj wiadomosci w fachowych serwisach n/t bezpieczeństwa w Sieci:
UWAGA - jednymi z najlepszych serwisów odnośnie bezpieczeństwa w sieci są:
9.12: Samodzielnie wyszukuj wiadomosci o nowych atakach SQL: Użyj automatycznych narzędzi takich jak Paros Proxy do przeprowadzenia automatycznych testow na wykorzystanie SQL Injection przez aplikacje PHP.
9.13: Używaj skryptów shellowych do automatyzacji pracy: Jeśli lubisz skrypty shellowe, możesz spróbować poniższych, opublikowanych darmowo dla społeczności Joomla! przez Wizzie Oczywiscie wymaga to dostępu do shella (przyp. tłum.) 9.14: Czytaj jak możesz najwięcej odnośnie oprogramowania zabezpieczającego. Niestety nie ma "jedynego i słusznego" programu, który zabezpieczyłby Twoją stronę. Zresztą gdyby takowy nawet istniał - musiałby być tak ogólny (z uwagi na zróżnicowane warunki i możliwe zagrożenia), że nie byłby przez to wiarygodny. 9.15: Jeśli jesteś programistą zainteresuj się i zaznajom z nadchodzącą wersją Jommli! 1.5 - najbardziej znaczącą pod względem zmian kodu Joomla!
10. Odtwarzanie witryny10.1: Naucz się zabezpieczać Serwis po włamaniu i przywracać mu pełną funkcjonalność:
10.2: Naucz się rozpoznawać próby wykorzystania exploitów przy użyciu shelli *NIXowych:
11. Twój ruch…11.1: Publikuj informacje o zauważonych/odkrytych przez Ciebie problemach z bezpieczeństwem dotyczących Joomla! 11.2 Wszytkie uwagi, poprawki i komentarze dotyczące tego dokumentu, zgłaszaj |
|
| Zmieniony ( 31.08.2008. ) |






