ΠΠΎΠΌΠ°ΡΠ½ΠΈΠΉ ΡΠΎΡΡΠ΅Ρ (Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ FritzBox) ΡΠΌΠ΅Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ: ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ°ΡΠΈΠΊΠ° ΠΊΠΎΠ³Π΄Π° Ρ ΠΎΠ΄ΠΈΡ, ΠΊΡΠΎ Ρ ΠΊΠ°ΠΊΠΎΠΉ ΡΠΊΠΎΡΠΎΡΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΡΠ½ ΠΈ Ρ.ΠΏ. Π£Π·Π½Π°ΡΡ, ΡΡΠΎ ΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ΄ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΡΠΌΠΈ Π°Π΄ΡΠ΅ΡΠ°ΡΠ°ΠΌΠΈ, ΠΌΠ½Π΅ ΠΏΠΎΠΌΠΎΠ³ ΡΠ΅ΡΠ²Π΅Ρ Π΄ΠΎΠΌΠ΅Π½Π½ΡΡ ΠΈΠΌΡΠ½ (DNS) Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ.
Π ΡΠ΅Π»ΠΎΠΌ, DNS ΠΎΠΊΠ°Π·Π°Π» ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π½Π° Π΄ΠΎΠΌΠ°ΡΠ½ΡΡ ΡΠ΅ΡΡ: Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΡΠΊΠΎΡΠΎΡΡΡ, ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΡΡΡ.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ·Π²Π°Π»Π° Π²ΠΎΠΏΡΠΎΡΡ ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Π² ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠ΅ΠΌ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°Ρ ΡΠΆΠ΅ ΠΎΡΡΠΈΠ»ΡΡΡΠΎΠ²Π°Π½Ρ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΈ ΡΠ°Π±ΠΎΡΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌ Π΄ΠΎΠΌΠ΅Π½Π½ΡΡ ΠΈΠΌΡΠ½.
ΠΠΎ ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΄Π΅Π½Ρ ΠΎΠΏΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ 60 Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΡΡ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² Π²ΠΎ Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΠ³Π΄Π° Π²ΡΠ΅ Π΅ΡΡ ΡΠΏΡΡ?
ΠΠ°ΠΆΠ΄ΡΠΉ Π΄Π΅Π½Ρ ΠΎΠΏΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ 440 Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ
Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² Π² Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ. ΠΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΈΠ΅ ΠΈ ΡΡΠΎ ΠΎΠ½ΠΈ Π΄Π΅Π»Π°ΡΡ?
Π‘ΡΠ΅Π΄Π½Π΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² Π΄Π΅Π½Ρ ΠΏΠΎ ΡΠ°ΡΠ°ΠΌ
SQL Π·Π°ΠΏΡΠΎΡ ΠΎΡΡΡΡΠ°
WITH CLS AS ( /* prepare unique requests */
SELECT
DISTINCT DATE_NK,
STRFTIME( '%s', SUBSTR(DATE_NK,8,4) || '-' ||
CASE SUBSTR(DATE_NK,4,3)
WHEN 'Jan' THEN '01' WHEN 'Feb' THEN '02' WHEN 'Mar' THEN '03' WHEN 'Apr' THEN '04' WHEN 'May' THEN '05' WHEN 'Jun' THEN '06'
WHEN 'Jul' THEN '07' WHEN 'Aug' THEN '08' WHEN 'Sep' THEN '09' WHEN 'Oct' THEN '10' WHEN 'Nov' THEN '11'
ELSE '12' END || '-' || SUBSTR(DATE_NK,1,2) || ' ' || SUBSTR(TIME_NK,1,8) ) AS EVENT_DT,
REQUEST_NK, DOMAIN
FROM STG_BIND9_LOG )
SELECT
1 as 'Line: DNS Requests per Day for Hours',
strftime('%H:00', datetime(EVENT_DT, 'unixepoch')) AS 'Day',
ROUND(1.0*SUM(1)/COUNT(DISTINCT strftime('%d.%m', datetime(EVENT_DT, 'unixepoch'))), 1) AS 'Requests per Day'
FROM CLS
WHERE DOMAIN NOT IN ('in-addr.arpa', 'IN-ADDR.ARPA', 'local', 'dyndns', 'nas', 'ntp.org')
AND datetime(EVENT_DT, 'unixepoch') > date('now', '-20 days')
GROUP BY /* hour aggregate */
strftime('%H:00', datetime(EVENT_DT, 'unixepoch'))
ORDER BY strftime('%H:00', datetime(EVENT_DT, 'unixepoch'))
Π Π½ΠΎΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π±Π΅ΡΠΏΡΠΎΠ²ΠΎΠ΄Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΎΡΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΡΡΡΡΠΎΠΉΡΡ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠ°, Ρ.Π΅. Π½Π΅Ρ ΠΎΠΏΡΠΎΡΠ° Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΡΡ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ². ΠΠ½Π°ΡΠΈΡ, Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠ°Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΎΡ ΡΡΡΡΠΎΠΉΡΡΠ² Ρ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ, ΠΊΠ°ΠΊ Android, iOS ΠΈ Blackberry OS.
ΠΡΠ²Π΅Π΄Π΅ΠΌ Π΄ΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎ ΠΎΠΏΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ. ΠΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΡ Π±ΡΠ΄ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΊΠ°ΠΊ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² Π΄Π΅Π½Ρ, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄Π½Π΅ΠΉ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΈ Π² ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°ΡΠ°Ρ Π΄Π½Ρ Π±ΡΠ»ΠΈ Π·Π°ΠΌΠ΅ΡΠ΅Π½Ρ.
Π ΡΠΏΠΈΡΠΊΠ΅ ΠΎΠΊΠ°Π·Π°Π»ΠΈΡΡ Π²ΡΠ΅ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ·ΡΠ΅Π²Π°Π΅ΠΌΡΠ΅.
ΠΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎ ΠΎΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌΡΠ΅ Π΄ΠΎΠΌΠ΅Π½Ρ
SQL Π·Π°ΠΏΡΠΎΡ ΠΎΡΡΡΡΠ°
WITH CLS AS ( /* prepare unique requests */
SELECT
DISTINCT DATE_NK,
STRFTIME( '%s', SUBSTR(DATE_NK,8,4) || '-' ||
CASE SUBSTR(DATE_NK,4,3)
WHEN 'Jan' THEN '01' WHEN 'Feb' THEN '02' WHEN 'Mar' THEN '03' WHEN 'Apr' THEN '04' WHEN 'May' THEN '05' WHEN 'Jun' THEN '06'
WHEN 'Jul' THEN '07' WHEN 'Aug' THEN '08' WHEN 'Sep' THEN '09' WHEN 'Oct' THEN '10' WHEN 'Nov' THEN '11'
ELSE '12' END || '-' || SUBSTR(DATE_NK,1,2) || ' ' || SUBSTR(TIME_NK,1,8) ) AS EVENT_DT,
REQUEST_NK, DOMAIN
FROM STG_BIND9_LOG )
SELECT
1 as 'Table: Havy DNS Requests',
REQUEST_NK AS 'Request',
DOMAIN AS 'Domain',
REQ AS 'Requests per Day',
DH AS 'Hours per Day',
DAYS AS 'Active Days'
FROM (
SELECT
REQUEST_NK, MAX(DOMAIN) AS DOMAIN,
COUNT(DISTINCT REQUEST_NK) AS SUBD,
COUNT(DISTINCT strftime('%d.%m', datetime(EVENT_DT, 'unixepoch'))) AS DAYS,
ROUND(1.0*SUM(1)/COUNT(DISTINCT strftime('%d.%m', datetime(EVENT_DT, 'unixepoch'))), 1) AS REQ,
ROUND(1.0*COUNT(DISTINCT strftime('%d.%m %H', datetime(EVENT_DT, 'unixepoch')))/COUNT(DISTINCT strftime('%d.%m', datetime(EVENT_DT, 'unixepoch'))), 1) AS DH
FROM CLS
WHERE DOMAIN NOT IN ('in-addr.arpa', 'IN-ADDR.ARPA', 'local', 'dyndns', 'nas', 'ntp.org')
AND datetime(EVENT_DT, 'unixepoch') > date('now', '-20 days')
GROUP BY REQUEST_NK )
WHERE DAYS > 9 -- long period
ORDER BY 4 DESC, 5 DESC
LIMIT 20
ΠΠ»ΠΎΠΊΠΈΡΡΠ΅ΠΌ iΡΡ.blackberry.com ΠΈ iceberg.blackberry.com, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΎΠ±ΠΎΡΠ½ΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ: ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ WLAN, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ Π»ΠΎΠ³ΠΈΠ½Π° ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½ΠΈΠΊΡΠ΄Π° Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ. Π Π°Π·Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌ.
detectportal.firefox.com β ΡΡΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ, ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ Firefox. Π ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π»ΠΎΠ³ΠΈΠ½ΠΈΡΡΡΡ Π² ΡΠ΅ΡΡ WLAN, ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ ΡΠ½Π°ΡΠ°Π»Π° ΡΡΡΠ°Π½ΠΈΡΡ Π»ΠΎΠ³ΠΈΠ½Π°. ΠΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, Π·Π°ΡΠ΅ΠΌ ΡΠ°ΠΊ ΡΠ°ΡΡΠΎ ΠΏΠΈΠ½Π³ΠΎΠ²Π°ΡΡ Π°Π΄ΡΠ΅Ρ, Π½ΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Π½ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ.
skype. ΠΠ΅ΠΉΡΡΠ²ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎΡ ΠΎΠΆΠΈ Π½Π° ΡΠ΅ΡΠ²Ρ: ΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΠΈ Π½Π΅ Π΄Π°ΡΡ ΠΏΡΠΎΡΡΠΎ ΡΠ΅Π±Ρ ΡΠ±ΠΈΡΡ Π² ΠΏΠ°Π½Π΅Π»Π΅ Π·Π°Π΄Π°Ρ, Π² ΡΠ΅ΡΠΈ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ°ΡΠΈΠΊΠ°, ΠΊΠ°ΠΆΠ΄ΡΠ΅ 10 ΠΌΠΈΠ½ΡΡ ΠΏΠΈΠ½Π³ΡΠ΅Ρ 4 Π΄ΠΎΠΌΠ΅Π½Π°. ΠΡΠΈ Π²ΠΈΠ΄Π΅ΠΎ-Π·Π²ΠΎΠ½ΠΊΠ΅ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΌΠΎΠ±ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΎ ΡΠΆΠ΅ Π»ΡΡΡΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ. ΠΠΎΠΊΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΡΡΠ°ΡΡΡΡ.
upload.fp.measure.office.com β ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ Office 365, ΠΏΡΠΈΠ»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π½Π΅ Π½Π°ΡΡΠ».
browser.pipe.aria.microsoft.com β ΠΏΡΠΈΠ»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π½Π΅ Π½Π°ΡΡΠ».
ΠΠ±Π° Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌ.
connect.facebook.net β ΡΠ°Ρ-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ facebook. ΠΡΡΠ°ΡΡΡΡ.
mediator.mail.ru ΠΠ½Π°Π»ΠΈΠ· Π²ΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π΄ΠΎΠΌΠ΅Π½Π° mail.ru ΠΏΠΎΠΊΠ°Π·Π°Π» Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ΅ΠΊΠ»Π°ΠΌΠ½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΈ ΡΠ±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ, ΡΡΠΎ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π½Π΅Π΄ΠΎΠ²Π΅ΡΠΈΠ΅. ΠΠΎΠΌΠ΅Π½ mail.ru ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ Π² ΡΡΡΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ.
google-analytics.com β Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ, ΠΏΠΎΡΡΠΎΠΌΡ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌ.
doubleclick.net β ΡΡΠΈΡΠ°Π΅Ρ ΡΠ΅ΠΊΠ»Π°ΠΌΠ½ΡΠ΅ Π½Π°ΠΆΠ°ΡΠΈΡ. ΠΠ»ΠΎΠΊΠΈΡΡΠ΅ΠΌ.
ΠΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈΠ΄ΡΡ ΠΊ googleapis.com. ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ²Π΅Π»ΠΎ ΠΊ ΡΠ°Π΄ΠΎΡΡΠ½ΠΎΠΌΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΠΊΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² ΠΏΠ»Π°Π½ΡΠ΅ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ½Π΅ ΠΊΠ°ΠΆΡΡΡΡ Π΄ΡΡΠ°ΡΠΊΠΈΠΌΠΈ. ΠΠΎ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π» ΡΠ°Π±ΠΎΡΠ°ΡΡ playstore, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌ.
cloudflare.com β ΠΏΠΈΡΡΡ, ΡΡΠΎ Π»ΡΠ±ΡΡ ΠΎΡΠΊΡΡΡΡΠΉ ΠΊΠΎΠ΄ ΠΈ, Π²ΠΎΠΎΠ±ΡΠ΅, ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ ΡΠ΅Π±Π΅ ΠΏΠΈΡΡΡ. ΠΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΏΠΎΠ½ΡΡΠ½Π° ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΡ ΠΎΠΏΡΠΎΡΠ° Π΄ΠΎΠΌΠ΅Π½Π°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°ΡΡΠΎ ΡΠΈΠ»ΡΠ½ΠΎ Π²ΡΡΠ΅ ΡΠ°ΠΌΠΎΠΉ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅. ΠΠΎΠΊΠ° ΠΎΡΡΠ°Π²ΠΈΠΌ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΡΠ°ΡΡΠΎ ΡΠ²ΡΠ·Π°Π½Π° Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡΡ ΡΡΡΡΠΎΠΉΡΡΠ². ΠΠΎ Π±ΡΠ»ΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Ρ ΠΈ ΡΠ΅, ΠΊΡΠΎ ΠΏΠ΅ΡΠ΅ΡΡΠ°ΡΠ°Π»ΡΡ Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΡ.
Π‘Π°ΠΌΡΠ΅ ΠΏΠ΅ΡΠ²ΡΠ΅
Π ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π±Π΅ΡΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ° Π²ΡΠ΅ Π΅ΡΡ ΡΠΏΡΡ ΠΈ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΏΠ΅ΡΠ²ΡΠΌΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Π² ΡΠ΅ΡΡ. ΠΡΠ°ΠΊ, Π² 6:50 Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΈ Π² ΠΏΠ΅ΡΠ²ΡΠΉ Π΄Π΅ΡΡΡΠΈΠΌΠΈΠ½ΡΡΠ½ΡΠΉ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΠΊ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ ΠΎΠΏΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ 60 Π΄ΠΎΠΌΠ΅Π½ΠΎΠ²:
SQL Π·Π°ΠΏΡΠΎΡ ΠΎΡΡΡΡΠ°
WITH CLS AS ( /* prepare unique requests */
SELECT
DISTINCT DATE_NK,
STRFTIME( '%s', SUBSTR(DATE_NK,8,4) || '-' ||
CASE SUBSTR(DATE_NK,4,3)
WHEN 'Jan' THEN '01' WHEN 'Feb' THEN '02' WHEN 'Mar' THEN '03' WHEN 'Apr' THEN '04' WHEN 'May' THEN '05' WHEN 'Jun' THEN '06'
WHEN 'Jul' THEN '07' WHEN 'Aug' THEN '08' WHEN 'Sep' THEN '09' WHEN 'Oct' THEN '10' WHEN 'Nov' THEN '11'
ELSE '12' END || '-' || SUBSTR(DATE_NK,1,2) || ' ' || SUBSTR(TIME_NK,1,8) ) AS EVENT_DT,
REQUEST_NK, DOMAIN
FROM STG_BIND9_LOG )
SELECT
1 as 'Table: First DNS Requests at 06:00',
REQUEST_NK AS 'Request',
DOMAIN AS 'Domain',
REQ AS 'Requests',
DAYS AS 'Active Days',
strftime('%H:%M', datetime(MIN_DT, 'unixepoch')) AS 'First Ping',
strftime('%H:%M', datetime(MAX_DT, 'unixepoch')) AS 'Last Ping'
FROM (
SELECT
REQUEST_NK, MAX(DOMAIN) AS DOMAIN,
MIN(EVENT_DT) AS MIN_DT,
MAX(EVENT_DT) AS MAX_DT,
COUNT(DISTINCT strftime('%d.%m', datetime(EVENT_DT, 'unixepoch'))) AS DAYS,
ROUND(1.0*SUM(1)/COUNT(DISTINCT strftime('%d.%m', datetime(EVENT_DT, 'unixepoch'))), 1) AS REQ
FROM CLS
WHERE DOMAIN NOT IN ('in-addr.arpa', 'IN-ADDR.ARPA', 'local', 'dyndns', 'nas', 'ntp.org')
AND datetime(EVENT_DT, 'unixepoch') > date('now', '-20 days')
AND strftime('%H', datetime(EVENT_DT, 'unixepoch')) = strftime('%H', '2019-08-01 06:50:00')
GROUP BY REQUEST_NK
)
WHERE DAYS > 3 -- at least 4 days activity
ORDER BY 5 DESC, 4 DESC
Firefox ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ WLAN ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ Ρ Π»ΠΎΠ³ΠΈΠ½ΠΎΠΌ.
Citrix ΠΏΠΈΠ½Π³ΡΠ΅Ρ ΡΠ²ΠΎΠΉ ΡΠ΅ΡΠ²Π΅Ρ, Ρ
ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π°ΠΊΡΠΈΠ²Π½ΠΎ Π½Π΅ Π·Π°ΠΏΡΡΠ΅Π½ΠΎ.
Symantec ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ.
Mozilla ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, Ρ
ΠΎΡΡ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ
ΠΏΡΠΎΡΠΈΠ» Π½Π΅ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎΠ³ΠΎ.
mmo.de β ΠΈΠ³ΡΠΎΠ²ΠΎΠΉ ΡΠ΅ΡΠ²ΠΈΡ. Π‘ΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ Π·Π°ΠΏΡΠΎΡ ΠΈΠ½ΠΈΡΠΈΠΈΡΡΠ΅Ρ ΡΠ°Ρ facebook. ΠΠ»ΠΎΠΊΠΈΡΡΠ΅ΠΌ.
Apple Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅Ρ Π²ΡΠ΅ ΡΠ²ΠΎΠΈ ΡΠ΅ΡΠ²ΠΈΡΡ. api-glb-fra.smoot.apple.com β ΡΡΠ΄Ρ ΠΏΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ, ΡΡΠ΄Π° ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² ΡΠ΅Π»ΡΡ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΎΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ. Π‘ΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠ·ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ, Π½ΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡΡ. ΠΡΡΠ°Π²Π»ΡΠ΅ΠΌ.
ΠΠ°Π»Π΅Π΅ ΠΈΠ΄ΡΡ Π΄Π»ΠΈΠ½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΉ ΠΊ microsoft.com. ΠΡΠ΅ Π΄ΠΎΠΌΠ΅Π½Ρ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΡΠ΅ΡΡΠ΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ, Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌ.
ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² ΡΠ°ΠΌΡΡ
ΠΏΠ΅ΡΠ²ΡΡ
ΠΡΠ°ΠΊ, ΠΏΠ΅ΡΠ²ΡΠ΅ 10 ΠΌΠΈΠ½ΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π±Π΅ΡΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°.
ΠΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² ΠΎΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ iOS β 32. ΠΠ° Π½ΠΈΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Android β 24, Π΄Π°Π»Π΅Π΅ Windows β 15 ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Blackberry β 9.
ΠΠ΄Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ facebook ΠΎΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ 10 Π΄ΠΎΠΌΠ΅Π½ΠΎΠ², skype ΠΎΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ 9 Π΄ΠΎΠΌΠ΅Π½ΠΎΠ².
ΠΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ
ΠΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΠΎΡΠ»ΡΠΆΠΈΠ» Π»ΠΎΠ³ ΡΠ°ΠΉΠ» Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ° bind9, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΎΡΠΌΠ°Ρ:
01-Aug-2019 20:03:30.996 client 192.168.0.2#40693 (api.aps.skype.com): query: api.aps.skype.com IN A + (192.168.0.102)
Π€Π°ΠΉΠ» Π±ΡΠ» ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ Π² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
sqlite ΠΈ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ SQL Π·Π°ΠΏΡΠΎΡΠΎΠ².
Π‘Π΅ΡΠ²Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΊΡΡΠ°, Π·Π°ΠΏΡΠΎΡΡ ΠΏΡΠΈΡ
ΠΎΠ΄ΡΡ Ρ ΡΠΎΡΡΠ΅ΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ ΠΊΠ»ΠΈΠ΅Π½Ρ Π·Π°ΠΏΡΠΎΡΠ° Π²ΡΠ΅Π³Π΄Π° ΠΎΠ΄ΠΈΠ½. ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΏΡΠΎΡΡΠ½Π½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ, Ρ.Π΅. Π΄Π»Ρ ΠΎΡΡΡΡΠ° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°ΠΏΡΠΎΡΠ°, ΡΠ°ΠΌ Π·Π°ΠΏΡΠΎΡ ΠΈ Π΄ΠΎΠΌΠ΅Π½ Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π΄Π»Ρ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ.
DDL ΡΠ°Π±Π»ΠΈΡΡ
CREATE TABLE STG_BIND9_LOG (
LINE_NK INTEGER NOT NULL DEFAULT 1,
DATE_NK TEXT NOT NULL DEFAULT 'n.a.',
TIME_NK TEXT NOT NULL DEFAULT 'n.a.',
CLI TEXT, -- client
IP TEXT,
REQUEST_NK TEXT NOT NULL DEFAULT 'n.a.', -- requested domain
DOMAIN TEXT NOT NULL DEFAULT 'n.a.', -- domain second level
QUERY TEXT,
UNIQUE (LINE_NK, DATE_NK, TIME_NK, REQUEST_NK)
);
ΠΡΠ²ΠΎΠ΄
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π°Π½Π°Π»ΠΈΠ·Π° Π»ΠΎΠ³Π° ΡΠ΅ΡΠ²Π΅ΡΠ° Π΄ΠΎΠΌΠ΅Π½Π½ΡΡ ΠΈΠΌΡΠ½ Π±ΠΎΠ»Π΅Π΅ 50 Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π±ΡΠ»ΠΈ ΠΏΠΎΠ΄Π²Π΅ΡΠ³Π½ΡΡΡ ΡΠ΅Π½Π·ΡΡΠ΅ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Ρ Π² ΡΠΏΠΈΡΠΎΠΊ Π΄Π»Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ.
ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
Π·Π°ΠΏΡΠΎΡΠΎΠ² Ρ
ΠΎΡΠΎΡΠΎ ΠΎΠΏΠΈΡΠ°Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ Π²Π½ΡΡΠ°Π΅Ρ Π΄ΠΎΠ²Π΅ΡΠΈΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ, Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Π½Π΅ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½Π° ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠΎΠΌΠ½Π΅Π½ΠΈΠ΅.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com