ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ AOL ΡΠ΅Π»ΠΈΠ· Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΡΠ»Π°Π²ΡΠ½Π΅, ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ , ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡΠ° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° Π³ΡΠ°ΡΠΈΡΠ½Π° ΠΎΡΠ΅Π½ΠΊΠ° Π½Π° ΡΡΠ°ΡΠΈΠΊΠ° ΠΈ ΡΡΡΡΠ΅Π½Π΅ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΠ²ΡΡΠ·Π°Π½Π° Ρ ΠΌΡΠ΅ΠΆΠΎΠ²Π°ΡΠ° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡ. ΠΠΎΠ΄ΡΡ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° C (ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π° Node.js/JavaScript) ΠΈ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π· Apache 2.0. ΠΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ°Π±ΠΎΡΠ° Π² Linux ΠΈ FreeBSD. ΠΠΎΡΠΎΠ²ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π΅Π½ΠΈ Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²Π΅ΡΡΠΈΠΈ Π½Π° CentOS ΠΈ Ubuntu.
ΠΡΠΎΠ΅ΠΊΡΡΡ Π΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½ ΠΏΡΠ΅Π· 2012 Π³ΠΎΠ΄ΠΈΠ½Π° Ρ ΡΠ΅Π» Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈ ΠΎΡΠ²ΠΎΡΠ΅Π½Π° Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° Π½Π° ΡΡΡΠ³ΠΎΠ²ΡΠΊΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ, ΡΠΏΠΎΡΠΎΠ±Π½Π° Π΄Π° ΡΠ΅ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ° Π΄ΠΎ ΠΎΠ±Π΅ΠΌΠΈΡΠ΅ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ° Π½Π° AOL. ΠΠ½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π½ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π² AOL Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π½Π΅ ΠΏΡΠ»Π΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π°Π΄ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° ΡΡΠ΅Π· Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΡΠ΅ ΡΡΡΠ²ΡΡΠΈ ΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π·Ρ
ΠΎΠ΄ΠΈΡΠ΅ β ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Moloch Π·Π° ΠΏΡΠ»Π½ΠΎ ΡΠ»Π°Π²ΡΠ½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ° Π²ΡΠ² Π²ΡΠΈΡΠΊΠΈ ΠΌΡΠ΅ΠΆΠΈ Π½Π° AOL Π΅ ΡΡΡΡΠ²Π°Π»ΠΎ ΡΡΠΌΠ°, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π° Π½Π° ΡΠ°Π·Ρ
ΠΎΠ΄ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈΡΠ΅ Π·Π° ΡΠ΅ΡΠΈΠΈΡΠ΅ ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Ρ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ° Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ
Moloch Π²ΠΊΠ»ΡΡΠ²Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΡΠ»Π°Π²ΡΠ½Π΅ ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ΅Π½ ΡΠΎΡΠΌΠ°Ρ PCAP, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π·Π° Π±ΡΡΠ· Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ³ΡΠ°ΡΠΈΡΠ°Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ. ΠΠ° Π°Π½Π°Π»ΠΈΠ· Π½Π° Π½Π°ΡΡΡΠΏΠ°Π½Π°ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½ ΡΠ΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡ, ΡΡΡΡΠ΅Π½Π΅ ΠΈ Π΅ΠΊΡΠΏΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·Π²Π°Π΄ΠΊΠΈ. Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ .
, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠ° ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΡΠ½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π·Π° ΡΠ»Π°Π²ΡΠ½ΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΈ Π² ΡΠΎΡΠΌΠ°Ρ PCAP ΠΈ ΡΠ°Π·Π»ΠΎΠΆΠ΅Π½ΠΈ ΡΠ΅ΡΠΈΠΈ Π² ΡΠΎΡΠΌΠ°Ρ JSON. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΎΡΠΌΠ°Ρ PCAP Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ»Π΅ΡΠ½ΡΠ²Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΡΠ° Ρ Π½Π°Π»ΠΈΡΠ½ΠΈΡΠ΅ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠΈ Π½Π° ΡΡΠ°ΡΠΈΠΊ, ΠΊΠ°ΡΠΎ Wireshark. Moloch ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ ΡΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°:
Π£Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π° Node.js, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ° Π½Π° Π²ΡΠ΅ΠΊΠΈ ΡΡΡΠ²ΡΡ Π·Π° ΡΠ»Π°Π²ΡΠ½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° Π·Π°ΡΠ²ΠΊΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ³ΡΠ°ΡΠΈΡΠ°Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ ΠΈ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° PCAP ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΡΡΠ΅Π·
- Π‘ΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΡΠ»Π°Π²ΡΠ½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊ β ΠΌΠ½ΠΎΠ³ΠΎΠ½ΠΈΡΠΊΠΎΠ²ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π΅Π·ΠΈΠΊΠ° C Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ°, Π·Π°ΠΏΠΈΡ Π½Π° Π΄Π°ΠΌΠΏΠΎΠ²Π΅ Π² ΡΠΎΡΠΌΠ°Ρ PCAP Π½Π° Π΄ΠΈΡΠΊ, ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ»Π°Π²ΡΠ½ΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ Π·Π° ΡΠ΅ΡΠΈΠΈΡΠ΅ (SPI, Stateful packet inspection) ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈΡΠ΅ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ° Elasticsearch. ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° PCAP ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½ Π²ΠΈΠ΄.
- Π£Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Node.js, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ° Π½Π° Π²ΡΠ΅ΠΊΠΈ ΡΡΡΠ²ΡΡ Π·Π° ΡΠ»Π°Π²ΡΠ½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° Π·Π°ΡΠ²ΠΊΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° PCAP ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΡΡΠ΅Π· .
- Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½Π° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ Π½Π° Π±Π°Π·Π° Elasticsearch.
Π ΡΠ΅Π± ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΡΠ° ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½ΠΈ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° Π½Π° ΠΏΡΠ΅Π³Π»Π΅Π΄ β ΠΎΡ ΠΎΠ±ΡΠ° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°, ΠΊΠ°ΡΡΠ° Π½Π° Π²ΡΡΠ·ΠΊΠΈΡΠ΅ ΠΈ Π²ΠΈΠ·ΡΠ°Π»Π½ΠΈ Π³ΡΠ°ΡΠΈΠΊΠΈ Ρ Π΄Π°Π½Π½ΠΈ Π·Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² ΠΌΡΠ΅ΠΆΠΎΠ²Π°ΡΠ° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡ Π΄ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΈΠ·ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΠ΅ΡΠΈΠΈ, Π°Π½Π°Π»ΠΈΠ· Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠ° ΠΏΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ PCAP Π΄Π°ΠΌΠΏΠΎΠ²Π΅.
Π :
- ΠΡΡΡΠ΅ΡΡΠ²Π΅Π½ Π΅ ΠΏΡΠ΅Ρ ΠΎΠ΄ ΠΊΡΠΌ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π±Π΅Π·ΡΠΈΠΏΠΎΠ² ΡΠΎΡΠΌΠ°Ρ Π·Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Π½Π΅ Π² Elasticsearch.
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° ΠΏΡΠΈΠΌΠ΅ΡΠΈ Π·Π° ΡΠΈΠ»ΡΡΠΈ Π·Π° Π·Π°Ρ Π²Π°ΡΠ°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊ Π½Π° Π΅Π·ΠΈΠΊΠ° Lua.
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° 46-ΡΠ΅ΡΠ½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° QUIC.
- ΠΡΠ΅ΡΠ°Π±ΠΎΡΠ΅Π½ Π΅ ΠΊΠΎΠ΄ΡΡ Π·Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ, ΠΏΠΎΡΠ²ΠΈΠ»Π° ΡΠ΅ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠ°ΡΡΠ΅ΡΠΈ Π·Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈΡΠ΅ Π½Π° Π½ΠΈΠ²ΠΎ Ethernet ΠΈ IP.
- ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈ ΡΠ° Π½ΠΎΠ²ΠΈ ΠΏΠ°ΡΡΠ΅ΡΠΈ Π·Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈΡΠ΅ arp, bgp, igmp, isis, lldp, ospf ΠΈ pim, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΏΠ°ΡΡΠ΅ΡΠΈ Π·Π° Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ unkEthernet ΠΈ unkIpProtocol.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΎΠΏΡΠΈΡ Π·Π° ΡΠ΅Π»Π΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΠ·ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠ°ΡΡΠ΅ΡΠΈΡΠ΅ (disableParsers).
- Π ΡΠ΅Π± ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° Π²ΡΡΠΊΠΎ ΡΡΠ»ΠΎ ΡΠΈΡΠ»ΠΎ Π½Π° Π³ΡΠ°ΡΠΈΠΊΠΈΡΠ΅, Π·Π°Π΄Π°Π΄Π΅Π½ΠΎ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ.
- ΠΡΠ°ΡΠΈΠΊΠΈΡΠ΅ ΠΈ Π·Π°Π³Π»Π°Π²ΠΈΡΡΠ° ΡΠ΅Π³Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π·Π°ΠΊΡΠ΅ΠΏΠ΅Π½ΠΈ ΠΈ Π΄Π° Π½Π΅ ΡΠ΅ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ²Π°Ρ ΠΏΡΠΈ ΠΏΡΠ΅Π²ΡΡΡΠ°Π½Π΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ°.
- ΠΠΎ-Π³ΠΎΠ»ΡΠΌΠ°ΡΠ° ΡΠ°ΡΡ ΠΎΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΡΠ° ΡΠΊΡΠΈΡΠΈ ΠΈΠ»ΠΈ ΡΠ²ΠΈΡΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
