이것은 약간 걱정이됩니다 : 나는 파일과 디렉토리의 변경 사항을 CentOS 6 서버를 모니터링하기 위해 afick 을 사용 하고 있습니다. 바이너리 파일, 서버로 밀수되는 PHP 스크립트, 변경되는 구성 파일 등의 변경 사항을 감지하고 싶습니다. 매일 실행되며 변경 사항이 감지 된 이메일을받습니다. 일반적으로 웹 코드를 업데이트하거나 새 소프트웨어를 설치 한 후 로그 파일과 변경 사항 만 포함됩니다. 오늘 나는 대박을 치는 것 같았지만 확실하지 않습니다.
수백 개의 파일로 구성된 MD5 체크섬이 변경되었지만 타임 스탬프 나 크기가 변경되지 않은 이메일을 받았습니다. 여기에는 /bin/gawk
라이브러리와 같은 실행 파일 도 포함 됩니다 /lib/libasound.so.2.0.0
. 이 모든 것은 1 월 1 일 4:00과 1 월 2 일 4:00 사이에 발생했습니다 (약 4시에 실행).
테스트로 백업에서 / bin / gawk를 복원하고 수동 md5 체크섬을 실행했습니다. 실제로 파일이 변경되었습니다. 그러나 두 바이너리 사이의 차이점은 다소 결정적이지 않습니다.
--- old.gawk.hex 2017-01-02 15:56:06.000000000 +0100
+++ new.gawk.hex 2017-01-02 15:56:14.000000000 +0100
@@ -881,12 +881,12 @@
00003700 a6 03 00 00 00 00 00 00 d1 04 00 00 12 00 0d 00 |................|
00003710 f0 6d 42 00 00 00 00 00 2a 10 00 00 00 00 00 00 |.mB.....*.......|
00003720 01 00 00 00 b0 6b 5a 56 65 fd 1b 6d 00 00 00 00 |.....kZVe..m....|
-00003730 00 00 00 00 44 00 00 00 b0 6b 5a 56 b2 04 c4 e2 |....D....kZV....|
+00003730 00 00 00 00 44 00 00 00 56 e5 5d 58 82 a0 c7 cf |....D...V.]X....|
00003740 00 00 00 00 00 00 00 00 62 00 00 00 b0 6b 5a 56 |........b....kZV|
00003750 58 97 65 11 00 00 00 00 00 00 00 00 97 10 00 00 |X.e.............|
00003760 b0 6b 5a 56 30 fb 60 86 00 00 00 00 00 00 00 00 |.kZV0.`.........|
00003770 b0 2f 40 83 34 00 00 00 01 00 00 00 00 00 00 00 |./@.4...........|
-00003780 e0 08 65 00 00 00 00 00 e0 1f c8 83 34 00 00 00 |..e.........4...|
+00003780 e0 08 65 00 00 00 00 00 e0 1f 88 0a 35 00 00 00 |..e.........5...|
00003790 01 00 00 00 00 00 00 00 08 09 65 00 00 00 00 00 |..........e.....|
000037a0 50 2d 15 83 34 00 00 00 01 00 00 00 00 00 00 00 |P-..4...........|
000037b0 d0 ff ff ff ff ff ff ff 58 2d 15 83 34 00 00 00 |........X-..4...|
@@ -19806,13 +19806,13 @@
*
000501e0 28 00 65 00 00 00 00 00 1e 59 40 00 00 00 00 00 |(.e......Y@.....|
000501f0 00 00 00 00 00 00 00 00 00 b1 e8 82 34 00 00 00 |............4...|
-00050200 10 cd ec 82 34 00 00 00 50 32 a2 83 34 00 00 00 |....4...P2..4...|
-00050210 80 79 e6 82 34 00 00 00 e0 2f a2 83 34 00 00 00 |.y..4..../..4...|
+00050200 10 cd ec 82 34 00 00 00 50 32 62 0a 35 00 00 00 |....4...P2b.5...|
+00050210 80 79 e6 82 34 00 00 00 e0 2f 62 0a 35 00 00 00 |.y..4..../b.5...|
00050220 20 87 e7 82 34 00 00 00 20 bc e8 82 34 00 00 00 | ...4... ...4...|
00050230 20 9f e7 82 34 00 00 00 b0 05 e8 82 34 00 00 00 | ...4.......4...|
00050240 d0 af e9 82 34 00 00 00 20 5e ed 82 34 00 00 00 |....4... ^..4...|
00050250 40 7e ee 82 34 00 00 00 40 71 ec 82 34 00 00 00 |@~..4...@q..4...|
-00050260 10 9d e9 82 34 00 00 00 30 6f a1 83 34 00 00 00 |....4...0o..4...|
+00050260 10 9d e9 82 34 00 00 00 30 6f 61 0a 35 00 00 00 |....4...0oa.5...|
00050270 f0 d7 ec 82 34 00 00 00 60 19 e3 82 34 00 00 00 |....4...`...4...|
00050280 e0 b1 e9 82 34 00 00 00 10 85 ee 82 34 00 00 00 |....4.......4...|
00050290 30 84 ec 82 34 00 00 00 40 20 e6 82 34 00 00 00 |0...4...@ ..4...|
(etc)
물론, 나의 첫 번째 생각은 해킹이지만 diff를 보는 것은 나를 놀라게합니다. 실제 코드는 변경되지 않은 것 같습니다. ELF 바이너리에 대한 전문가는 아니지만 공유 라이브러리의 재배치 오프셋 테이블이라고 생각합니다.
그래서 실제로 어떻게 된 것 같아요? 해킹 외에도 내가 생각할 수있는 유일한 다른 가능성은 공유 라이브러리 오프셋이 무작위 화되고 연결된 바이너리도 업데이트되어야하는 '보안'측정입니다. 그런데 왜 지금? 내가 마지막으로 소프트웨어를 설치했을 때는 12 월 23 일이었고 그 사이에는 이상한 것이 없었습니다. 관련 될 수있는 유일한 cronjob은 /etc/cron.daily/prelink이지만, 그렇다면 왜 지금입니까?